diff --git a/docs/dev/.doctrees/api/gammapy.analysis.Analysis.doctree b/docs/dev/.doctrees/api/gammapy.analysis.Analysis.doctree index 40c22810244..dd0ba72e6e8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.analysis.Analysis.doctree and b/docs/dev/.doctrees/api/gammapy.analysis.Analysis.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.analysis.AnalysisConfig.doctree b/docs/dev/.doctrees/api/gammapy.analysis.AnalysisConfig.doctree index fc301bc62b2..70353075b79 100644 Binary files a/docs/dev/.doctrees/api/gammapy.analysis.AnalysisConfig.doctree and b/docs/dev/.doctrees/api/gammapy.analysis.AnalysisConfig.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.BurkertProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.BurkertProfile.doctree index 04c8c8a7128..aaf68078bbe 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.BurkertProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.BurkertProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DMProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DMProfile.doctree index b1fdd7e8c75..d870333792f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DMProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DMProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.doctree index 5e0ec8e7661..bc117b5c64c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.doctree index c8e64de33ed..2134586c4fb 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.EinastoProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.EinastoProfile.doctree index e608b785c67..45ca0c1d07e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.EinastoProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.EinastoProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.IsothermalProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.IsothermalProfile.doctree index 12feaa2bac8..06f2e4c4f47 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.IsothermalProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.IsothermalProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.JFactory.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.JFactory.doctree index 0580a598eaf..ed8f5aa7dcf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.JFactory.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.JFactory.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.MooreProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.MooreProfile.doctree index abf123bc96f..71a8c395ba1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.MooreProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.MooreProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.NFWProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.NFWProfile.doctree index 845a8b20cf5..b3571d78554 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.NFWProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.NFWProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.PrimaryFlux.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.PrimaryFlux.doctree index cc1ac990c03..7f674c6caf3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.PrimaryFlux.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.PrimaryFlux.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.ZhaoProfile.doctree b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.ZhaoProfile.doctree index add6d52ffc8..9abf16e3368 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.darkmatter.ZhaoProfile.doctree and b/docs/dev/.doctrees/api/gammapy.astro.darkmatter.ZhaoProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.CaseBattacharya1998.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.CaseBattacharya1998.doctree index 9eebdffc46f..90acaada1bc 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.CaseBattacharya1998.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.CaseBattacharya1998.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.Exponential.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.Exponential.doctree index 254a01d85de..b951ebec339 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.Exponential.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.Exponential.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006.doctree index f022f7bfe44..f97ca11de8d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.doctree index 7fabb9786e0..95acecafaf6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.doctree index 52f85080bc6..81acfbef055 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherSpiral.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherSpiral.doctree index 13b330c8fcc..2ee56a2a7b7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.FaucherSpiral.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.FaucherSpiral.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.LogSpiral.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.LogSpiral.doctree index efe079683aa..3f3598803fe 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.LogSpiral.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.LogSpiral.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.Lorimer2006.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.Lorimer2006.doctree index a66cb3088b2..c9fd95944f8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.Lorimer2006.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.Lorimer2006.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990.doctree index 6b500e95283..f11dfb79c69 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990Velocity.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990Velocity.doctree index a5aa6597942..d4d6d58e1fa 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990Velocity.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.Paczynski1990Velocity.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.ValleeSpiral.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.ValleeSpiral.doctree index d939f772eef..8125d43ded2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.ValleeSpiral.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.ValleeSpiral.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004.doctree index 69f682c7459..9344f706fe7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004B.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004B.doctree index b8e822e73e6..8c047579a93 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004B.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.YusifovKucuk2004B.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.add_observed_parameters.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.add_observed_parameters.doctree index 24963d85e19..a1628aac2c7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.add_observed_parameters.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.add_observed_parameters.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.add_pulsar_parameters.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.add_pulsar_parameters.doctree index e6f30616ad8..51c2e27f0d8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.add_pulsar_parameters.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.add_pulsar_parameters.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.add_pwn_parameters.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.add_pwn_parameters.doctree index bd5a441646c..8e39cbec8cf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.add_pwn_parameters.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.add_pwn_parameters.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.add_snr_parameters.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.add_snr_parameters.doctree index c2b09417d0b..8ae2d15f5a1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.add_snr_parameters.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.add_snr_parameters.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.make_base_catalog_galactic.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.make_base_catalog_galactic.doctree index 7b9de271327..dcb4d44142b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.make_base_catalog_galactic.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.make_base_catalog_galactic.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_cube.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_cube.doctree index 5218165708e..d270324bd43 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_cube.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_cube.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_sphere.doctree b/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_sphere.doctree index 144233c832a..bc3f5c7b1f3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_sphere.doctree and b/docs/dev/.doctrees/api/gammapy.astro.population.make_catalog_random_positions_sphere.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.source.PWN.doctree b/docs/dev/.doctrees/api/gammapy.astro.source.PWN.doctree index 1c58f4f7459..2f417b0786c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.source.PWN.doctree and b/docs/dev/.doctrees/api/gammapy.astro.source.PWN.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.source.Pulsar.doctree b/docs/dev/.doctrees/api/gammapy.astro.source.Pulsar.doctree index aff94a1b7d4..eb21fadac1c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.source.Pulsar.doctree and b/docs/dev/.doctrees/api/gammapy.astro.source.Pulsar.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.source.SNR.doctree b/docs/dev/.doctrees/api/gammapy.astro.source.SNR.doctree index 4d8da33f221..1147994c94e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.source.SNR.doctree and b/docs/dev/.doctrees/api/gammapy.astro.source.SNR.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.source.SNRTrueloveMcKee.doctree b/docs/dev/.doctrees/api/gammapy.astro.source.SNRTrueloveMcKee.doctree index f28a403e02a..17f27774372 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.source.SNRTrueloveMcKee.doctree and b/docs/dev/.doctrees/api/gammapy.astro.source.SNRTrueloveMcKee.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.astro.source.SimplePulsar.doctree b/docs/dev/.doctrees/api/gammapy.astro.source.SimplePulsar.doctree index e467ef73fe5..e1ac413240e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.astro.source.SimplePulsar.doctree and b/docs/dev/.doctrees/api/gammapy.astro.source.SimplePulsar.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog.doctree index 2222ae3cfd2..6fa7de95534 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog1LHAASO.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog1LHAASO.doctree index 4f15a680fc1..5869848ae15 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog1LHAASO.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog1LHAASO.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2FHL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2FHL.doctree index b146726a6e4..c8f1db8d2cc 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2FHL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2FHL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2HWC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2HWC.doctree index 2c920a52c46..98ec8cc1960 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2HWC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2HWC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2PC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2PC.doctree index 6961de3eea1..856ea2f7d87 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2PC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog2PC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FGL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FGL.doctree index 851ea173bf0..b0dd5d1b094 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FGL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FGL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FHL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FHL.doctree index 65f3679c3b4..a149b84d465 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FHL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3FHL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3HWC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3HWC.doctree index 5729f461e27..4b18cc4effd 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3HWC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3HWC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3PC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3PC.doctree index d9c885f9a75..efc14f8f37c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3PC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog3PC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog4FGL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog4FGL.doctree index 47c1ac0943b..767e4228c02 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog4FGL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalog4FGL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogGammaCat.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogGammaCat.doctree index b5656c3b176..a9a79bd0205 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogGammaCat.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogGammaCat.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogHGPS.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogHGPS.doctree index 85741f6cdf8..d1375efc08b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogHGPS.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogHGPS.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.doctree index 50346b0fcc5..5b6c79dc675 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject.doctree index 8090f92afb6..759b814b346 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject1LHAASO.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject1LHAASO.doctree index f7223b22aba..0aa810c8883 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject1LHAASO.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject1LHAASO.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2FHL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2FHL.doctree index 558fb66e47e..9364995a078 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2FHL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2FHL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2HWC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2HWC.doctree index 0c5a483d351..f71856b54b3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2HWC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2HWC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2PC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2PC.doctree index 9bca4d9c236..5a28aef5305 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2PC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject2PC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FGL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FGL.doctree index f39b843ff6b..0a927ecb7c3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FGL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FGL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FHL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FHL.doctree index 46a85bd8b6d..bf4ebcfa644 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FHL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3FHL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3HWC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3HWC.doctree index 7f33caf12b2..b6827ed0e35 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3HWC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3HWC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3PC.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3PC.doctree index 77e6f7334ab..0adc8befe5f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3PC.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject3PC.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject4FGL.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject4FGL.doctree index 59b292ddaed..4f3196279ed 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject4FGL.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObject4FGL.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectGammaCat.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectGammaCat.doctree index ce5c08d9a0f..73aa39453c4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectGammaCat.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectGammaCat.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPS.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPS.doctree index 2758d9f394c..7f04f1e00e7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPS.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPS.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.doctree b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.doctree index f2be3487dca..cd32a6797f6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.doctree and b/docs/dev/.doctrees/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.DataStore.doctree b/docs/dev/.doctrees/api/gammapy.data.DataStore.doctree index 54c6908941e..aba63c1f245 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.DataStore.doctree and b/docs/dev/.doctrees/api/gammapy.data.DataStore.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.EventList.doctree b/docs/dev/.doctrees/api/gammapy.data.EventList.doctree index 45006d781b9..e62e59aaeab 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.EventList.doctree and b/docs/dev/.doctrees/api/gammapy.data.EventList.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.EventListMetaData.doctree b/docs/dev/.doctrees/api/gammapy.data.EventListMetaData.doctree index 2c44baf82fb..ae02f0e2b04 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.EventListMetaData.doctree and b/docs/dev/.doctrees/api/gammapy.data.EventListMetaData.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.FixedPointingInfo.doctree b/docs/dev/.doctrees/api/gammapy.data.FixedPointingInfo.doctree index b4498619c47..42170ff7eda 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.FixedPointingInfo.doctree and b/docs/dev/.doctrees/api/gammapy.data.FixedPointingInfo.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.GTI.doctree b/docs/dev/.doctrees/api/gammapy.data.GTI.doctree index 7ed23aef9ed..4769b4a595d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.GTI.doctree and b/docs/dev/.doctrees/api/gammapy.data.GTI.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.HDUIndexTable.doctree b/docs/dev/.doctrees/api/gammapy.data.HDUIndexTable.doctree index aa2da329885..41b78992194 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.HDUIndexTable.doctree and b/docs/dev/.doctrees/api/gammapy.data.HDUIndexTable.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.Observation.doctree b/docs/dev/.doctrees/api/gammapy.data.Observation.doctree index 9ddf81213ec..e69eba6b4b1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.Observation.doctree and b/docs/dev/.doctrees/api/gammapy.data.Observation.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.ObservationFilter.doctree b/docs/dev/.doctrees/api/gammapy.data.ObservationFilter.doctree index 79d08e6d89d..95d0b8228ca 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.ObservationFilter.doctree and b/docs/dev/.doctrees/api/gammapy.data.ObservationFilter.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.ObservationMetaData.doctree b/docs/dev/.doctrees/api/gammapy.data.ObservationMetaData.doctree index 7b15ae5ae63..4c64b925aa1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.ObservationMetaData.doctree and b/docs/dev/.doctrees/api/gammapy.data.ObservationMetaData.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.ObservationTable.doctree b/docs/dev/.doctrees/api/gammapy.data.ObservationTable.doctree index 28eb9331d8b..a22756622ca 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.ObservationTable.doctree and b/docs/dev/.doctrees/api/gammapy.data.ObservationTable.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.Observations.doctree b/docs/dev/.doctrees/api/gammapy.data.Observations.doctree index 7e9ba673d50..73248f65820 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.Observations.doctree and b/docs/dev/.doctrees/api/gammapy.data.Observations.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.ObservationsEventsSampler.doctree b/docs/dev/.doctrees/api/gammapy.data.ObservationsEventsSampler.doctree index f87a28cf37b..1dbfc2c8e5a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.ObservationsEventsSampler.doctree and b/docs/dev/.doctrees/api/gammapy.data.ObservationsEventsSampler.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.PointingInfo.doctree b/docs/dev/.doctrees/api/gammapy.data.PointingInfo.doctree index 0e60c750c04..49a3aa68cf9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.PointingInfo.doctree and b/docs/dev/.doctrees/api/gammapy.data.PointingInfo.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.PointingMode.doctree b/docs/dev/.doctrees/api/gammapy.data.PointingMode.doctree index bfb97f4c984..2933b440a06 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.PointingMode.doctree and b/docs/dev/.doctrees/api/gammapy.data.PointingMode.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.data.get_irfs_features.doctree b/docs/dev/.doctrees/api/gammapy.data.get_irfs_features.doctree index c5f50c4a399..674de6264c4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.data.get_irfs_features.doctree and b/docs/dev/.doctrees/api/gammapy.data.get_irfs_features.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.Dataset.doctree b/docs/dev/.doctrees/api/gammapy.datasets.Dataset.doctree index 4945c61564e..2e23e6f8cbd 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.Dataset.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.Dataset.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.Datasets.doctree b/docs/dev/.doctrees/api/gammapy.datasets.Datasets.doctree index 1d11499c74e..0ac97d6a719 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.Datasets.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.Datasets.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.FluxPointsDataset.doctree b/docs/dev/.doctrees/api/gammapy.datasets.FluxPointsDataset.doctree index 03a0287ef19..62bfed97f80 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.FluxPointsDataset.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.FluxPointsDataset.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.MapDataset.doctree b/docs/dev/.doctrees/api/gammapy.datasets.MapDataset.doctree index 34eda1435fe..a0cb214666e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.MapDataset.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.MapDataset.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetEventSampler.doctree b/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetEventSampler.doctree index d16b72b7020..e50de4eaca8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetEventSampler.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetEventSampler.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetMetaData.doctree b/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetMetaData.doctree index 4a0e61ed5b4..197106a9ad7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetMetaData.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetMetaData.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetOnOff.doctree b/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetOnOff.doctree index dcee7f0d0bc..ec3f9f89f44 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetOnOff.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.MapDatasetOnOff.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetReader.doctree b/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetReader.doctree index 5fef74fedb0..d9b6ffaf804 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetReader.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetReader.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetWriter.doctree b/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetWriter.doctree index 99eccceb185..baab580d95c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetWriter.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.OGIPDatasetWriter.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.ObservationEventSampler.doctree b/docs/dev/.doctrees/api/gammapy.datasets.ObservationEventSampler.doctree index 9fa9eed4c8c..ee40a8bdb11 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.ObservationEventSampler.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.ObservationEventSampler.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDataset.doctree b/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDataset.doctree index a5e65fab737..b7422616e75 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDataset.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDataset.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDatasetOnOff.doctree b/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDatasetOnOff.doctree index ef00cd4f6e9..ebf00298f8d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDatasetOnOff.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.SpectrumDatasetOnOff.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.apply_edisp.doctree b/docs/dev/.doctrees/api/gammapy.datasets.apply_edisp.doctree index a566791553d..dc2dc7d87e6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.apply_edisp.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.apply_edisp.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.create_empty_map_dataset_from_irfs.doctree b/docs/dev/.doctrees/api/gammapy.datasets.create_empty_map_dataset_from_irfs.doctree index e35969fca95..b53bc74e0bb 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.create_empty_map_dataset_from_irfs.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.create_empty_map_dataset_from_irfs.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_from_observation.doctree b/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_from_observation.doctree index 3f0f600cb22..67b35ac06d3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_from_observation.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_from_observation.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_geoms.doctree b/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_geoms.doctree index 41b4f00b0ba..f832088e03d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_geoms.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.create_map_dataset_geoms.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.split_dataset.doctree b/docs/dev/.doctrees/api/gammapy.datasets.split_dataset.doctree index 846ce8a8d30..ac4a1bcd1c3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.split_dataset.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.split_dataset.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.utils.apply_edisp.doctree b/docs/dev/.doctrees/api/gammapy.datasets.utils.apply_edisp.doctree index b7d17ea3f67..346e0b491f2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.utils.apply_edisp.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.utils.apply_edisp.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.datasets.utils.split_dataset.doctree b/docs/dev/.doctrees/api/gammapy.datasets.utils.split_dataset.doctree index 33769ce31e0..215a9898688 100644 Binary files a/docs/dev/.doctrees/api/gammapy.datasets.utils.split_dataset.doctree and b/docs/dev/.doctrees/api/gammapy.datasets.utils.split_dataset.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.ASmoothMapEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.ASmoothMapEstimator.doctree index d80abd971ca..42822e205d1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.ASmoothMapEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.ASmoothMapEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.EnergyDependentMorphologyEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.EnergyDependentMorphologyEstimator.doctree index 86308c340b4..2b2cdeffc9d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.EnergyDependentMorphologyEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.EnergyDependentMorphologyEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.Estimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.Estimator.doctree index d57095cd0c7..67c7ef2cb5b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.Estimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.Estimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.ExcessMapEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.ExcessMapEstimator.doctree index d81325f8c19..40f0bbd9e18 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.ExcessMapEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.ExcessMapEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.FluxMaps.doctree b/docs/dev/.doctrees/api/gammapy.estimators.FluxMaps.doctree index 7d5618a1bfe..b70c066d748 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.FluxMaps.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.FluxMaps.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.FluxMetaData.doctree b/docs/dev/.doctrees/api/gammapy.estimators.FluxMetaData.doctree index ab60e313d64..40650c48829 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.FluxMetaData.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.FluxMetaData.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.FluxPoints.doctree b/docs/dev/.doctrees/api/gammapy.estimators.FluxPoints.doctree index 6cefe3c8e20..fe45be39abf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.FluxPoints.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.FluxPoints.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.FluxPointsEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.FluxPointsEstimator.doctree index b602acdfa08..45a275cd487 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.FluxPointsEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.FluxPointsEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.FluxProfileEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.FluxProfileEstimator.doctree index 19fa55084ce..9f52a64cde8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.FluxProfileEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.FluxProfileEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.ImageProfile.doctree b/docs/dev/.doctrees/api/gammapy.estimators.ImageProfile.doctree index 7c29b09db1c..d9c78a40014 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.ImageProfile.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.ImageProfile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.ImageProfileEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.ImageProfileEstimator.doctree index defa976cd6d..2447984130e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.ImageProfileEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.ImageProfileEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.LightCurveEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.LightCurveEstimator.doctree index 28f666c99fd..ea54b3e52f6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.LightCurveEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.LightCurveEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.ParameterEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.ParameterEstimator.doctree index 4b400488424..f14969edbe4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.ParameterEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.ParameterEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.SensitivityEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.SensitivityEstimator.doctree index 087326e5733..e1be998d0b9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.SensitivityEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.SensitivityEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.TSMapEstimator.doctree b/docs/dev/.doctrees/api/gammapy.estimators.TSMapEstimator.doctree index cbb7ddc9c2b..d8c28523850 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.TSMapEstimator.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.TSMapEstimator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_flux_maps.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_flux_maps.doctree index 3bcc5a7b98f..1b367a2df35 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_flux_maps.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_flux_maps.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_significance_maps.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_significance_maps.doctree index ce7e1434b44..6cc39299eba 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_significance_maps.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.combine_significance_maps.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.doctree index f74621f7042..652c41804d1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.doctree index d3a4746c4b7..a5e918b7f8b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fpp.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fpp.doctree index 4591831bce2..ab6ae85128e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fpp.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fpp.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fvar.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fvar.doctree index bbd2f7096a5..844d1b86c0f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fvar.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.compute_lightcurve_fvar.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.estimate_exposure_reco_energy.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.estimate_exposure_reco_energy.doctree index 102742f7912..a8d86901f4c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.estimate_exposure_reco_energy.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.estimate_exposure_reco_energy.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks.doctree index 0761c67f0b8..5e3729a9148 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks_in_flux_map.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks_in_flux_map.doctree index 782e4307b5f..ee282bf81e4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks_in_flux_map.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.find_peaks_in_flux_map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_flux_maps.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_flux_maps.doctree index 54cbd00bf47..9e0e00495b9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_flux_maps.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_flux_maps.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_significance_maps.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_significance_maps.doctree index 166590d5603..501a32dc6df 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_significance_maps.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.get_combined_significance_maps.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.get_rebinned_axis.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.get_rebinned_axis.doctree index 141144e97dc..c14bdfab148 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.get_rebinned_axis.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.get_rebinned_axis.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.estimators.utils.resample_energy_edges.doctree b/docs/dev/.doctrees/api/gammapy.estimators.utils.resample_energy_edges.doctree index f6368d4f4ce..a10446a04a7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.estimators.utils.resample_energy_edges.doctree and b/docs/dev/.doctrees/api/gammapy.estimators.utils.resample_energy_edges.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.Background2D.doctree b/docs/dev/.doctrees/api/gammapy.irf.Background2D.doctree index 6c4e2395669..ce7beee9a28 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.Background2D.doctree and b/docs/dev/.doctrees/api/gammapy.irf.Background2D.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.Background3D.doctree b/docs/dev/.doctrees/api/gammapy.irf.Background3D.doctree index 65a271a065c..eff4d4ff5f0 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.Background3D.doctree and b/docs/dev/.doctrees/api/gammapy.irf.Background3D.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.BackgroundIRF.doctree b/docs/dev/.doctrees/api/gammapy.irf.BackgroundIRF.doctree index dd59be2d333..f7807a5c613 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.BackgroundIRF.doctree and b/docs/dev/.doctrees/api/gammapy.irf.BackgroundIRF.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.EDispKernel.doctree b/docs/dev/.doctrees/api/gammapy.irf.EDispKernel.doctree index da385c02c10..f94bad3236b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.EDispKernel.doctree and b/docs/dev/.doctrees/api/gammapy.irf.EDispKernel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.EDispKernelMap.doctree b/docs/dev/.doctrees/api/gammapy.irf.EDispKernelMap.doctree index d46d2177830..a711c90240f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.EDispKernelMap.doctree and b/docs/dev/.doctrees/api/gammapy.irf.EDispKernelMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.EDispMap.doctree b/docs/dev/.doctrees/api/gammapy.irf.EDispMap.doctree index 4f05e2d8916..30aefbd5d54 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.EDispMap.doctree and b/docs/dev/.doctrees/api/gammapy.irf.EDispMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.EffectiveAreaTable2D.doctree b/docs/dev/.doctrees/api/gammapy.irf.EffectiveAreaTable2D.doctree index bb6683b7c09..84f49ebbf8b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.EffectiveAreaTable2D.doctree and b/docs/dev/.doctrees/api/gammapy.irf.EffectiveAreaTable2D.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.EnergyDependentMultiGaussPSF.doctree b/docs/dev/.doctrees/api/gammapy.irf.EnergyDependentMultiGaussPSF.doctree index 7cad94fd588..52c8a2716ce 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.EnergyDependentMultiGaussPSF.doctree and b/docs/dev/.doctrees/api/gammapy.irf.EnergyDependentMultiGaussPSF.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.EnergyDispersion2D.doctree b/docs/dev/.doctrees/api/gammapy.irf.EnergyDispersion2D.doctree index 56a5a848f35..a74ca89c239 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.EnergyDispersion2D.doctree and b/docs/dev/.doctrees/api/gammapy.irf.EnergyDispersion2D.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.FoVAlignment.doctree b/docs/dev/.doctrees/api/gammapy.irf.FoVAlignment.doctree index 0fbc838c485..327fa2c943a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.FoVAlignment.doctree and b/docs/dev/.doctrees/api/gammapy.irf.FoVAlignment.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.IRF.doctree b/docs/dev/.doctrees/api/gammapy.irf.IRF.doctree index c01f0061852..1231c1afa89 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.IRF.doctree and b/docs/dev/.doctrees/api/gammapy.irf.IRF.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.IRFMap.doctree b/docs/dev/.doctrees/api/gammapy.irf.IRFMap.doctree index da6e5b1eddd..2c595a2a9d4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.IRFMap.doctree and b/docs/dev/.doctrees/api/gammapy.irf.IRFMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.PSF3D.doctree b/docs/dev/.doctrees/api/gammapy.irf.PSF3D.doctree index e06968497a3..630110ec0af 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.PSF3D.doctree and b/docs/dev/.doctrees/api/gammapy.irf.PSF3D.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.PSFKernel.doctree b/docs/dev/.doctrees/api/gammapy.irf.PSFKernel.doctree index f22b03fdd62..4feff3a8359 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.PSFKernel.doctree and b/docs/dev/.doctrees/api/gammapy.irf.PSFKernel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.PSFKing.doctree b/docs/dev/.doctrees/api/gammapy.irf.PSFKing.doctree index 8fbdf8ea3f0..40f8fc00a42 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.PSFKing.doctree and b/docs/dev/.doctrees/api/gammapy.irf.PSFKing.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.PSFMap.doctree b/docs/dev/.doctrees/api/gammapy.irf.PSFMap.doctree index 3c37a05eeeb..1806b04f015 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.PSFMap.doctree and b/docs/dev/.doctrees/api/gammapy.irf.PSFMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.ParametricPSF.doctree b/docs/dev/.doctrees/api/gammapy.irf.ParametricPSF.doctree index 1c76e927c1c..d264a281bdf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.ParametricPSF.doctree and b/docs/dev/.doctrees/api/gammapy.irf.ParametricPSF.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.RadMax2D.doctree b/docs/dev/.doctrees/api/gammapy.irf.RadMax2D.doctree index fc90ebdbdd5..86df152b277 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.RadMax2D.doctree and b/docs/dev/.doctrees/api/gammapy.irf.RadMax2D.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.RecoPSFMap.doctree b/docs/dev/.doctrees/api/gammapy.irf.RecoPSFMap.doctree index 6e1862bcb3a..4d558b0c195 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.RecoPSFMap.doctree and b/docs/dev/.doctrees/api/gammapy.irf.RecoPSFMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.irf.load_irf_dict_from_file.doctree b/docs/dev/.doctrees/api/gammapy.irf.load_irf_dict_from_file.doctree index ba6788e358a..945805ed46e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.irf.load_irf_dict_from_file.doctree and b/docs/dev/.doctrees/api/gammapy.irf.load_irf_dict_from_file.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.AdaptiveRingBackgroundMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.AdaptiveRingBackgroundMaker.doctree index ceb79c4ae6f..b4c41238404 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.AdaptiveRingBackgroundMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.AdaptiveRingBackgroundMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.DatasetsMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.DatasetsMaker.doctree index 700184bc190..15796bcbe68 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.DatasetsMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.DatasetsMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.FoVBackgroundMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.FoVBackgroundMaker.doctree index 0e5eb8dc165..8ad179522cf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.FoVBackgroundMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.FoVBackgroundMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.Maker.doctree b/docs/dev/.doctrees/api/gammapy.makers.Maker.doctree index 16b8a153a69..bb82c089b5c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.Maker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.Maker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.MapDatasetMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.MapDatasetMaker.doctree index 85e5b8f2bbe..5387f5e9051 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.MapDatasetMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.MapDatasetMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.PhaseBackgroundMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.PhaseBackgroundMaker.doctree index c0acf5e520a..530a692a2e1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.PhaseBackgroundMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.PhaseBackgroundMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsBackgroundMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsBackgroundMaker.doctree index e5cefeb4f21..271b42d2cc5 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsBackgroundMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsBackgroundMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsFinder.doctree b/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsFinder.doctree index c82a8f09977..13e8d4bbc8c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsFinder.doctree and b/docs/dev/.doctrees/api/gammapy.makers.ReflectedRegionsFinder.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.RegionsFinder.doctree b/docs/dev/.doctrees/api/gammapy.makers.RegionsFinder.doctree index 42cbe0dc299..9df1736b911 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.RegionsFinder.doctree and b/docs/dev/.doctrees/api/gammapy.makers.RegionsFinder.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.RingBackgroundMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.RingBackgroundMaker.doctree index c758b6792b2..e0b4b24cec1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.RingBackgroundMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.RingBackgroundMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.SafeMaskMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.SafeMaskMaker.doctree index 1c2b90da15e..e25531a9136 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.SafeMaskMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.SafeMaskMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.SpectrumDatasetMaker.doctree b/docs/dev/.doctrees/api/gammapy.makers.SpectrumDatasetMaker.doctree index aa12bbaadac..1a75680ca00 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.SpectrumDatasetMaker.doctree and b/docs/dev/.doctrees/api/gammapy.makers.SpectrumDatasetMaker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.WobbleRegionsFinder.doctree b/docs/dev/.doctrees/api/gammapy.makers.WobbleRegionsFinder.doctree index 14123572a0c..4c61c37bc07 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.WobbleRegionsFinder.doctree and b/docs/dev/.doctrees/api/gammapy.makers.WobbleRegionsFinder.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_counts_rad_max.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_counts_rad_max.doctree index ebfc31f64ef..d6bb4a8c845 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_counts_rad_max.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_counts_rad_max.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_kernel_map.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_kernel_map.doctree index 314c4f64f57..d2fb5118b9e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_kernel_map.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_kernel_map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_map.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_map.doctree index 49ccbf25297..8a7bff6cbaf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_map.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_edisp_map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_effective_livetime_map.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_effective_livetime_map.doctree index f2cdf5e84e0..e819970e532 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_effective_livetime_map.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_effective_livetime_map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_background_irf.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_background_irf.doctree index 3e402659e9b..8b58d21d221 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_background_irf.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_background_irf.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_exposure_true_energy.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_exposure_true_energy.doctree index 63a193f37f5..4bf90d86e79 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_exposure_true_energy.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_map_exposure_true_energy.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_observation_time_map.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_observation_time_map.doctree index 9668a94a798..b3e24c64be5 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_observation_time_map.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_observation_time_map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_psf_map.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_psf_map.doctree index 3795b5a27c0..43e51087d20 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_psf_map.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_psf_map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.makers.utils.make_theta_squared_table.doctree b/docs/dev/.doctrees/api/gammapy.makers.utils.make_theta_squared_table.doctree index ff7d2664026..63bf4f08075 100644 Binary files a/docs/dev/.doctrees/api/gammapy.makers.utils.make_theta_squared_table.doctree and b/docs/dev/.doctrees/api/gammapy.makers.utils.make_theta_squared_table.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.Geom.doctree b/docs/dev/.doctrees/api/gammapy.maps.Geom.doctree index bbd050d43bd..87c8aff11b9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.Geom.doctree and b/docs/dev/.doctrees/api/gammapy.maps.Geom.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.HpxGeom.doctree b/docs/dev/.doctrees/api/gammapy.maps.HpxGeom.doctree index ff640ad5100..2bcfab78a41 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.HpxGeom.doctree and b/docs/dev/.doctrees/api/gammapy.maps.HpxGeom.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.HpxMap.doctree b/docs/dev/.doctrees/api/gammapy.maps.HpxMap.doctree index a149f80472a..3503ccc046b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.HpxMap.doctree and b/docs/dev/.doctrees/api/gammapy.maps.HpxMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.HpxNDMap.doctree b/docs/dev/.doctrees/api/gammapy.maps.HpxNDMap.doctree index 718d6a66bca..50b7442b544 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.HpxNDMap.doctree and b/docs/dev/.doctrees/api/gammapy.maps.HpxNDMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.LabelMapAxis.doctree b/docs/dev/.doctrees/api/gammapy.maps.LabelMapAxis.doctree index 3cb4e670aec..37a70d558c6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.LabelMapAxis.doctree and b/docs/dev/.doctrees/api/gammapy.maps.LabelMapAxis.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.Map.doctree b/docs/dev/.doctrees/api/gammapy.maps.Map.doctree index 72852335ff3..0a63facf81d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.Map.doctree and b/docs/dev/.doctrees/api/gammapy.maps.Map.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.MapAxes.doctree b/docs/dev/.doctrees/api/gammapy.maps.MapAxes.doctree index 6d80b4f886e..3e71b14ebd1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.MapAxes.doctree and b/docs/dev/.doctrees/api/gammapy.maps.MapAxes.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.MapAxis.doctree b/docs/dev/.doctrees/api/gammapy.maps.MapAxis.doctree index 26aeec2fe35..40726d6adca 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.MapAxis.doctree and b/docs/dev/.doctrees/api/gammapy.maps.MapAxis.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.MapCoord.doctree b/docs/dev/.doctrees/api/gammapy.maps.MapCoord.doctree index c0c9e3cbd2f..bf4667547a1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.MapCoord.doctree and b/docs/dev/.doctrees/api/gammapy.maps.MapCoord.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.Maps.doctree b/docs/dev/.doctrees/api/gammapy.maps.Maps.doctree index 9d6afe1fc48..0ccf45f32ec 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.Maps.doctree and b/docs/dev/.doctrees/api/gammapy.maps.Maps.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.RegionGeom.doctree b/docs/dev/.doctrees/api/gammapy.maps.RegionGeom.doctree index 329d6d5a7f3..eaaa5506b43 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.RegionGeom.doctree and b/docs/dev/.doctrees/api/gammapy.maps.RegionGeom.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.RegionNDMap.doctree b/docs/dev/.doctrees/api/gammapy.maps.RegionNDMap.doctree index b2abb3ccf1f..9e0a3ca483c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.RegionNDMap.doctree and b/docs/dev/.doctrees/api/gammapy.maps.RegionNDMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.TimeMapAxis.doctree b/docs/dev/.doctrees/api/gammapy.maps.TimeMapAxis.doctree index 69166b6f358..58758fb5118 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.TimeMapAxis.doctree and b/docs/dev/.doctrees/api/gammapy.maps.TimeMapAxis.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.WcsGeom.doctree b/docs/dev/.doctrees/api/gammapy.maps.WcsGeom.doctree index f83a7a9fcef..85ce12f0c4c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.WcsGeom.doctree and b/docs/dev/.doctrees/api/gammapy.maps.WcsGeom.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.WcsMap.doctree b/docs/dev/.doctrees/api/gammapy.maps.WcsMap.doctree index e2b2281f227..c7464c89c92 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.WcsMap.doctree and b/docs/dev/.doctrees/api/gammapy.maps.WcsMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.WcsNDMap.doctree b/docs/dev/.doctrees/api/gammapy.maps.WcsNDMap.doctree index bf3962f2b38..7906b4b4f6f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.WcsNDMap.doctree and b/docs/dev/.doctrees/api/gammapy.maps.WcsNDMap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.containment_radius.doctree b/docs/dev/.doctrees/api/gammapy.maps.containment_radius.doctree index 65f21451de6..2c83feb3398 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.containment_radius.doctree and b/docs/dev/.doctrees/api/gammapy.maps.containment_radius.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.maps.containment_region.doctree b/docs/dev/.doctrees/api/gammapy.maps.containment_region.doctree index 62204a74b55..64533678d78 100644 Binary files a/docs/dev/.doctrees/api/gammapy.maps.containment_region.doctree and b/docs/dev/.doctrees/api/gammapy.maps.containment_region.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.Covariance.doctree b/docs/dev/.doctrees/api/gammapy.modeling.Covariance.doctree index 6ec698b6284..e02f314cee2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.Covariance.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.Covariance.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.CovarianceResult.doctree b/docs/dev/.doctrees/api/gammapy.modeling.CovarianceResult.doctree index e84cc3c707c..22661a4ebb4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.CovarianceResult.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.CovarianceResult.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.Fit.doctree b/docs/dev/.doctrees/api/gammapy.modeling.Fit.doctree index 533767ac7d3..11c11516518 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.Fit.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.Fit.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.FitResult.doctree b/docs/dev/.doctrees/api/gammapy.modeling.FitResult.doctree index 685c8ee563e..f7933d2e923 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.FitResult.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.FitResult.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.OptimizeResult.doctree b/docs/dev/.doctrees/api/gammapy.modeling.OptimizeResult.doctree index 505e18e0bfe..025ab00160e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.OptimizeResult.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.OptimizeResult.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.Parameter.doctree b/docs/dev/.doctrees/api/gammapy.modeling.Parameter.doctree index b7cc8709d70..fea55ec4fe4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.Parameter.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.Parameter.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.Parameters.doctree b/docs/dev/.doctrees/api/gammapy.modeling.Parameters.doctree index 4f4c1f43e50..5fd5725882f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.Parameters.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.Parameters.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.PriorParameter.doctree b/docs/dev/.doctrees/api/gammapy.modeling.PriorParameter.doctree index 6c3f8805f79..2e94e28a613 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.PriorParameter.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.PriorParameter.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.PriorParameters.doctree b/docs/dev/.doctrees/api/gammapy.modeling.PriorParameters.doctree index e81fd1c05d6..8f012bc76e9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.PriorParameters.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.PriorParameters.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.doctree index b0cca1b825f..cf8e73ef8ca 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.CompoundSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.CompoundSpectralModel.doctree index a704d33a68a..262668f3a0c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.CompoundSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.CompoundSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantFluxSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantFluxSpatialModel.doctree index 76bee71f995..569a307e2cc 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantFluxSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantFluxSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpatialModel.doctree index b2770461957..e3bf008113f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpectralModel.doctree index 5b9cbe480e4..bbe1f897943 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantTemporalModel.doctree index 221b9f5bfb1..15ad8c6ce36 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ConstantTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.DatasetModels.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.DatasetModels.doctree index e764c89e35d..c0c950012ff 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.DatasetModels.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.DatasetModels.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.DiskSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.DiskSpatialModel.doctree index 722967b506a..c401c732a31 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.DiskSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.DiskSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.doctree index 12e645cf671..846b373bca4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.doctree index ac7589b5251..fda0a5d6d3c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.doctree index 8a9e45a2a04..09dce40597f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.doctree index d62ae5cc9c9..8d5fd8bf2e4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpDecayTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpDecayTemporalModel.doctree index db05a420eed..361565a3ac3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ExpDecayTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ExpDecayTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.FoVBackgroundModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.FoVBackgroundModel.doctree index 34446be2a38..a2478287362 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.FoVBackgroundModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.FoVBackgroundModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianPrior.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianPrior.doctree index 76991555618..4a5ea84bbaf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianPrior.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianPrior.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpatialModel.doctree index 018154525d5..967a028be8a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpectralModel.doctree index 8f2747e8b8f..9cd8d3a31f7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianTemporalModel.doctree index 236352e3164..d7deb4a8018 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.GaussianTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.doctree index d090e1edb86..997c31ec1b3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.doctree index 15015069d47..eb2c36cf36e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.doctree index 2f4d7acb145..18609c9e7c7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.LinearTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.LinearTemporalModel.doctree index 38cff2f11a4..b88775d1bd7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.LinearTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.LinearTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaNormSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaNormSpectralModel.doctree index 63c802e5a08..b7c13411740 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaNormSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaNormSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaSpectralModel.doctree index 79703f2cfce..f56a655c63e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.LogParabolaSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.MeyerCrabSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.MeyerCrabSpectralModel.doctree index 25cdd6aefe6..fcfc81443f1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.MeyerCrabSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.MeyerCrabSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.Model.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.Model.doctree index 111f1869e80..b0ee41a125d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.Model.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.Model.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ModelBase.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ModelBase.doctree index a557e8c9bf1..a39060b9582 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ModelBase.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ModelBase.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.Models.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.Models.doctree index 6e157d68ee8..50b9c6e2a65 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.Models.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.Models.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.NaimaSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.NaimaSpectralModel.doctree index bd2f551f6d4..72d629fe03a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.NaimaSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.NaimaSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpatialModel.doctree index 8b55c4ab49a..29afc7effe1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpectralModel.doctree index a60ac319d60..e6fd7795f8e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PiecewiseNormSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PointSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PointSpatialModel.doctree index af223a8bacc..2a88ab2c97b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PointSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PointSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLaw2SpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLaw2SpectralModel.doctree index 97d77acde5c..86b85a241d1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLaw2SpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLaw2SpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawNormSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawNormSpectralModel.doctree index 6c411211bcd..f7c99d31ef2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawNormSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawNormSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawSpectralModel.doctree index e47b1ee1410..096804bb796 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawTemporalModel.doctree index 5e1766f31f4..09d2241372a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.PowerLawTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.Prior.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.Prior.doctree index d08a146b4e6..251acd8612f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.Prior.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.Prior.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ScaleSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ScaleSpectralModel.doctree index a1d0ddc2416..51f45d84e21 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ScaleSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ScaleSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.Shell2SpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.Shell2SpatialModel.doctree index 9b56a9bc8c4..9bee56f2016 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.Shell2SpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.Shell2SpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.ShellSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.ShellSpatialModel.doctree index 090e576df27..d72ab47375f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.ShellSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.ShellSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SineTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SineTemporalModel.doctree index 4b77188cc80..39a1a387051 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SineTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SineTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SkyModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SkyModel.doctree index cd28595cde5..22083b4241d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SkyModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SkyModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.doctree index 868ac9fc410..37a9d0b26f7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SpatialModel.doctree index d10de938c35..05d3ec549b3 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SpectralModel.doctree index 9006cb238db..3d926467422 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.doctree index 60a4aa4b074..ac633cea031 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.doctree index b66ff43e0bb..978e9f780a8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.doctree index 2074e3c82e7..64792d63c76 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpatialModel.doctree index 89cc35dfbde..25a7f345ba1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpectralModel.doctree index f30b819e46c..38689154d66 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNDSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNPredModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNPredModel.doctree index d2c5cc439d7..e3e308a0572 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNPredModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateNPredModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.doctree index 5ae586b07e6..eb49bc652a0 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpatialModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpatialModel.doctree index 694dbed60bd..44312fe059e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpatialModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpatialModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpectralModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpectralModel.doctree index 30ea7eb46ce..cdaaef6510c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpectralModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemplateSpectralModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.TemporalModel.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.TemporalModel.doctree index 530c7058223..8156efa6c83 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.TemporalModel.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.TemporalModel.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.UniformPrior.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.UniformPrior.doctree index d45ccb84bcc..9a21c2ea115 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.UniformPrior.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.UniformPrior.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.doctree index 6f666e69e10..18fcd945ca8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.create_crab_spectral_model.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.create_crab_spectral_model.doctree index 4421331cb03..6a2cb93e637 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.create_crab_spectral_model.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.create_crab_spectral_model.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.doctree index ccd854d4b85..29a5e8d2976 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.integrate_spectrum.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.integrate_spectrum.doctree index 5dc92042534..23e022ecbe9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.integrate_spectrum.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.integrate_spectrum.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.read_hermes_cube.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.read_hermes_cube.doctree index 67b8c643d6a..5b7e3e7765e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.read_hermes_cube.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.read_hermes_cube.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.scale_plot_flux.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.scale_plot_flux.doctree index ea4da5fe84d..0a03540b866 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.scale_plot_flux.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.scale_plot_flux.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.models.utils.read_hermes_cube.doctree b/docs/dev/.doctrees/api/gammapy.modeling.models.utils.read_hermes_cube.doctree index cf958fcd1f6..448e752f458 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.models.utils.read_hermes_cube.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.models.utils.read_hermes_cube.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.select_nested_models.doctree b/docs/dev/.doctrees/api/gammapy.modeling.select_nested_models.doctree index e82a56268d5..fa8c69cac37 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.select_nested_models.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.select_nested_models.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.modeling.stat_profile_ul_scipy.doctree b/docs/dev/.doctrees/api/gammapy.modeling.stat_profile_ul_scipy.doctree index cad92d274ed..f61913bc914 100644 Binary files a/docs/dev/.doctrees/api/gammapy.modeling.stat_profile_ul_scipy.doctree and b/docs/dev/.doctrees/api/gammapy.modeling.stat_profile_ul_scipy.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.CashCountsStatistic.doctree b/docs/dev/.doctrees/api/gammapy.stats.CashCountsStatistic.doctree index c360facaf27..54e6b5bd7ba 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.CashCountsStatistic.doctree and b/docs/dev/.doctrees/api/gammapy.stats.CashCountsStatistic.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.TimmerKonig_lightcurve_simulator.doctree b/docs/dev/.doctrees/api/gammapy.stats.TimmerKonig_lightcurve_simulator.doctree index d3b73e072dc..165314107c8 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.TimmerKonig_lightcurve_simulator.doctree and b/docs/dev/.doctrees/api/gammapy.stats.TimmerKonig_lightcurve_simulator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.WStatCountsStatistic.doctree b/docs/dev/.doctrees/api/gammapy.stats.WStatCountsStatistic.doctree index 223a65556ac..ee9b5dfa8c1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.WStatCountsStatistic.doctree and b/docs/dev/.doctrees/api/gammapy.stats.WStatCountsStatistic.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.cash.doctree b/docs/dev/.doctrees/api/gammapy.stats.cash.doctree index 6a0de30d415..645b54fe917 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.cash.doctree and b/docs/dev/.doctrees/api/gammapy.stats.cash.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.compute_chisq.doctree b/docs/dev/.doctrees/api/gammapy.stats.compute_chisq.doctree index 2a51732d98d..77365e0c693 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.compute_chisq.doctree and b/docs/dev/.doctrees/api/gammapy.stats.compute_chisq.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.compute_flux_doubling.doctree b/docs/dev/.doctrees/api/gammapy.stats.compute_flux_doubling.doctree index 7e4cc58d4a3..3cd3d600b57 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.compute_flux_doubling.doctree and b/docs/dev/.doctrees/api/gammapy.stats.compute_flux_doubling.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.compute_fpp.doctree b/docs/dev/.doctrees/api/gammapy.stats.compute_fpp.doctree index 866e65029ad..9567278632e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.compute_fpp.doctree and b/docs/dev/.doctrees/api/gammapy.stats.compute_fpp.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.compute_fvar.doctree b/docs/dev/.doctrees/api/gammapy.stats.compute_fvar.doctree index 7b7d41341bf..e330faa622e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.compute_fvar.doctree and b/docs/dev/.doctrees/api/gammapy.stats.compute_fvar.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.cstat.doctree b/docs/dev/.doctrees/api/gammapy.stats.cstat.doctree index dcf626db226..a176443be05 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.cstat.doctree and b/docs/dev/.doctrees/api/gammapy.stats.cstat.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.discrete_correlation.doctree b/docs/dev/.doctrees/api/gammapy.stats.discrete_correlation.doctree index a09caf46ff9..defe640d2f5 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.discrete_correlation.doctree and b/docs/dev/.doctrees/api/gammapy.stats.discrete_correlation.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.get_wstat_gof_terms.doctree b/docs/dev/.doctrees/api/gammapy.stats.get_wstat_gof_terms.doctree index 623d64a779a..14614970682 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.get_wstat_gof_terms.doctree and b/docs/dev/.doctrees/api/gammapy.stats.get_wstat_gof_terms.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.get_wstat_mu_bkg.doctree b/docs/dev/.doctrees/api/gammapy.stats.get_wstat_mu_bkg.doctree index e6e57b9e02e..2c73b563e57 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.get_wstat_mu_bkg.doctree and b/docs/dev/.doctrees/api/gammapy.stats.get_wstat_mu_bkg.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.structure_function.doctree b/docs/dev/.doctrees/api/gammapy.stats.structure_function.doctree index a762ecb3faf..b4107fcabbc 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.structure_function.doctree and b/docs/dev/.doctrees/api/gammapy.stats.structure_function.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.stats.wstat.doctree b/docs/dev/.doctrees/api/gammapy.stats.wstat.doctree index 7e68a0cc7a6..796c98bf299 100644 Binary files a/docs/dev/.doctrees/api/gammapy.stats.wstat.doctree and b/docs/dev/.doctrees/api/gammapy.stats.wstat.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.cluster.hierarchical_clustering.doctree b/docs/dev/.doctrees/api/gammapy.utils.cluster.hierarchical_clustering.doctree index 6eb33763eed..b53d20fa44a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.cluster.hierarchical_clustering.doctree and b/docs/dev/.doctrees/api/gammapy.utils.cluster.hierarchical_clustering.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.cluster.standard_scaler.doctree b/docs/dev/.doctrees/api/gammapy.utils.cluster.standard_scaler.doctree index eb47b92f397..e8c3db6edda 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.cluster.standard_scaler.doctree and b/docs/dev/.doctrees/api/gammapy.utils.cluster.standard_scaler.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.cartesian.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.cartesian.doctree index 7e9d5ac5fad..3faf428103d 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.cartesian.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.cartesian.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.fov_to_sky.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.fov_to_sky.doctree index 9791850891e..bd73ee9cce0 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.fov_to_sky.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.fov_to_sky.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.galactic.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.galactic.doctree index 54b6cff1d79..11514533ebd 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.galactic.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.galactic.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.motion_since_birth.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.motion_since_birth.doctree index 06a91c5ff52..1976e830368 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.motion_since_birth.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.motion_since_birth.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.polar.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.polar.doctree index 514dccd29f6..d78b76a8f4c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.polar.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.polar.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.sky_to_fov.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.sky_to_fov.doctree index 3c6e6ab1e71..33b200b7cad 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.sky_to_fov.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.sky_to_fov.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.coordinates.velocity_glon_glat.doctree b/docs/dev/.doctrees/api/gammapy.utils.coordinates.velocity_glon_glat.doctree index 5cbbfeb1d84..457ab70cc63 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.coordinates.velocity_glon_glat.doctree and b/docs/dev/.doctrees/api/gammapy.utils.coordinates.velocity_glon_glat.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.fits.HDULocation.doctree b/docs/dev/.doctrees/api/gammapy.utils.fits.HDULocation.doctree index 89d2aecbc65..2da52cc6756 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.fits.HDULocation.doctree and b/docs/dev/.doctrees/api/gammapy.utils.fits.HDULocation.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.fits.LazyFitsData.doctree b/docs/dev/.doctrees/api/gammapy.utils.fits.LazyFitsData.doctree index ac40a1397d3..a8b3cec05e9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.fits.LazyFitsData.doctree and b/docs/dev/.doctrees/api/gammapy.utils.fits.LazyFitsData.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.fits.earth_location_from_dict.doctree b/docs/dev/.doctrees/api/gammapy.utils.fits.earth_location_from_dict.doctree index b5638b8a59e..5c768402ccd 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.fits.earth_location_from_dict.doctree and b/docs/dev/.doctrees/api/gammapy.utils.fits.earth_location_from_dict.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.integrate.trapz_loglog.doctree b/docs/dev/.doctrees/api/gammapy.utils.integrate.trapz_loglog.doctree index d8d6eb811fe..770a44a5294 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.integrate.trapz_loglog.doctree and b/docs/dev/.doctrees/api/gammapy.utils.integrate.trapz_loglog.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.doctree b/docs/dev/.doctrees/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.doctree index 08d29cc0b23..35a5ad6d1d5 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.doctree and b/docs/dev/.doctrees/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolate_profile.doctree b/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolate_profile.doctree index 995d1efc510..21f5b8188cd 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolate_profile.doctree and b/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolate_profile.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolation_scale.doctree b/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolation_scale.doctree index 455cfb7d30a..5bd24c91f65 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolation_scale.doctree and b/docs/dev/.doctrees/api/gammapy.utils.interpolation.interpolation_scale.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.parallel.multiprocessing_manager.doctree b/docs/dev/.doctrees/api/gammapy.utils.parallel.multiprocessing_manager.doctree index 76a0c8842cf..f577ab5298f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.parallel.multiprocessing_manager.doctree and b/docs/dev/.doctrees/api/gammapy.utils.parallel.multiprocessing_manager.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.parallel.run_multiprocessing.doctree b/docs/dev/.doctrees/api/gammapy.utils.parallel.run_multiprocessing.doctree index 055f7851e12..c9fffd7236a 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.parallel.run_multiprocessing.doctree and b/docs/dev/.doctrees/api/gammapy.utils.parallel.run_multiprocessing.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.InverseCDFSampler.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.InverseCDFSampler.doctree index ae7dab52a25..1acf3498077 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.InverseCDFSampler.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.InverseCDFSampler.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.draw.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.draw.doctree index d0086a9fe69..63e904cb191 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.draw.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.draw.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.get_random_state.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.get_random_state.doctree index 813997bfc2d..a472a52f6b0 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.get_random_state.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.get_random_state.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.normalize.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.normalize.doctree index d73b3923bed..3a9569877da 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.normalize.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.normalize.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.pdf.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.pdf.doctree index 50b6d7173f1..ece960a75f2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.pdf.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.pdf.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.sample_powerlaw.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.sample_powerlaw.doctree index cebb112ce07..a9f6da1b8b4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.sample_powerlaw.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.sample_powerlaw.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere.doctree index 56b178e9f11..600e9b51f2b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere_distance.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere_distance.doctree index 52955ce1140..7278d8cbd20 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere_distance.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.sample_sphere_distance.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.random.sample_times.doctree b/docs/dev/.doctrees/api/gammapy.utils.random.sample_times.doctree index 3a096f3452f..93944cfc7da 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.random.sample_times.doctree and b/docs/dev/.doctrees/api/gammapy.utils.random.sample_times.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.regions.compound_region_to_regions.doctree b/docs/dev/.doctrees/api/gammapy.utils.regions.compound_region_to_regions.doctree index 21e82545b97..9f110925267 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.regions.compound_region_to_regions.doctree and b/docs/dev/.doctrees/api/gammapy.utils.regions.compound_region_to_regions.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.doctree b/docs/dev/.doctrees/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.doctree index 6f861e7019a..37fc2924eca 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.doctree and b/docs/dev/.doctrees/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.doctree b/docs/dev/.doctrees/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.doctree index ee3c5800a76..cbcdde10d1c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.doctree and b/docs/dev/.doctrees/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.regions.region_to_frame.doctree b/docs/dev/.doctrees/api/gammapy.utils.regions.region_to_frame.doctree index 0630ba4e1aa..1daba2d4fc6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.regions.region_to_frame.doctree and b/docs/dev/.doctrees/api/gammapy.utils.regions.region_to_frame.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.regions.regions_to_compound_region.doctree b/docs/dev/.doctrees/api/gammapy.utils.regions.regions_to_compound_region.doctree index fd7daa3b9b9..f2c65446e3c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.regions.regions_to_compound_region.doctree and b/docs/dev/.doctrees/api/gammapy.utils.regions.regions_to_compound_region.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.from_yaml.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.from_yaml.doctree index 95396539cf1..43ea6030171 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.from_yaml.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.from_yaml.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.get_images_paths.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.get_images_paths.doctree index 65839eceb7a..6134809e5e6 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.get_images_paths.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.get_images_paths.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.make_path.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.make_path.doctree index ba0c6746b76..95ac8a1c725 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.make_path.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.make_path.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.read_yaml.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.read_yaml.doctree index 5579dbb9ad7..91afc523b53 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.read_yaml.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.read_yaml.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.recursive_merge_dicts.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.recursive_merge_dicts.doctree index fba2e23df6b..851bf475410 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.recursive_merge_dicts.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.recursive_merge_dicts.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.to_yaml.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.to_yaml.doctree index 88e783762b0..ec57f9dd0d5 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.to_yaml.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.to_yaml.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.scripts.write_yaml.doctree b/docs/dev/.doctrees/api/gammapy.utils.scripts.write_yaml.doctree index f03950fb760..4079cee4228 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.scripts.write_yaml.doctree and b/docs/dev/.doctrees/api/gammapy.utils.scripts.write_yaml.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.table.hstack_columns.doctree b/docs/dev/.doctrees/api/gammapy.utils.table.hstack_columns.doctree index 86e61d53ebc..c6e6db66ba1 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.table.hstack_columns.doctree and b/docs/dev/.doctrees/api/gammapy.utils.table.hstack_columns.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.table.table_row_to_dict.doctree b/docs/dev/.doctrees/api/gammapy.utils.table.table_row_to_dict.doctree index 7a79e8d43fa..0664dfb6cfb 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.table.table_row_to_dict.doctree and b/docs/dev/.doctrees/api/gammapy.utils.table.table_row_to_dict.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_copy.doctree b/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_copy.doctree index 70722720b50..fb6e224b024 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_copy.doctree and b/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_copy.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_inplace.doctree b/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_inplace.doctree index 3b8033ee779..c28449f7e28 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_inplace.doctree and b/docs/dev/.doctrees/api/gammapy.utils.table.table_standardise_units_inplace.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.Checker.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.Checker.doctree index 1f8ed141ea8..bff1219a585 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.Checker.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.Checker.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.assert_quantity_allclose.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.assert_quantity_allclose.doctree index 10eca7ffb9e..c18d198f781 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.assert_quantity_allclose.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.assert_quantity_allclose.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.assert_skycoord_allclose.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.assert_skycoord_allclose.doctree index 569265f4013..604fb759a05 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.assert_skycoord_allclose.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.assert_skycoord_allclose.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.assert_time_allclose.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.assert_time_allclose.doctree index ce4d4831c86..685d6c2e95c 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.assert_time_allclose.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.assert_time_allclose.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.mpl_plot_check.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.mpl_plot_check.doctree index 5bfbbb9146a..35ee524608f 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.mpl_plot_check.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.mpl_plot_check.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.requires_data.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.requires_data.doctree index e582209236c..8110c8e0086 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.requires_data.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.requires_data.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.testing.requires_dependency.doctree b/docs/dev/.doctrees/api/gammapy.utils.testing.requires_dependency.doctree index 9a738d0b5c2..c8302796972 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.testing.requires_dependency.doctree and b/docs/dev/.doctrees/api/gammapy.utils.testing.requires_dependency.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.time.absolute_time.doctree b/docs/dev/.doctrees/api/gammapy.utils.time.absolute_time.doctree index 0ffe642146d..95add380551 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.time.absolute_time.doctree and b/docs/dev/.doctrees/api/gammapy.utils.time.absolute_time.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_from_dict.doctree b/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_from_dict.doctree index e4b9aabcea9..ae02ea7ac9e 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_from_dict.doctree and b/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_from_dict.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_to_dict.doctree b/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_to_dict.doctree index ef1d2345b06..2d2f6147abc 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_to_dict.doctree and b/docs/dev/.doctrees/api/gammapy.utils.time.time_ref_to_dict.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.time.time_relative_to_ref.doctree b/docs/dev/.doctrees/api/gammapy.utils.time.time_relative_to_ref.doctree index f3f5ca9be70..0e33fb76ac7 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.time.time_relative_to_ref.doctree and b/docs/dev/.doctrees/api/gammapy.utils.time.time_relative_to_ref.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.units.standardise_unit.doctree b/docs/dev/.doctrees/api/gammapy.utils.units.standardise_unit.doctree index 96053a0c87f..db456e2be72 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.units.standardise_unit.doctree and b/docs/dev/.doctrees/api/gammapy.utils.units.standardise_unit.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.utils.units.unit_from_fits_image_hdu.doctree b/docs/dev/.doctrees/api/gammapy.utils.units.unit_from_fits_image_hdu.doctree index 093843a4472..0cc1b656721 100644 Binary files a/docs/dev/.doctrees/api/gammapy.utils.units.unit_from_fits_image_hdu.doctree and b/docs/dev/.doctrees/api/gammapy.utils.units.unit_from_fits_image_hdu.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.MapPanelPlotter.doctree b/docs/dev/.doctrees/api/gammapy.visualization.MapPanelPlotter.doctree index 373fe1df8b7..8906788d0e9 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.MapPanelPlotter.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.MapPanelPlotter.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.add_colorbar.doctree b/docs/dev/.doctrees/api/gammapy.visualization.add_colorbar.doctree index 998b7b1f2a5..19faf9f2edf 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.add_colorbar.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.add_colorbar.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.annotate_heatmap.doctree b/docs/dev/.doctrees/api/gammapy.visualization.annotate_heatmap.doctree index fded31326e0..596f43f4a24 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.annotate_heatmap.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.annotate_heatmap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.colormap_hess.doctree b/docs/dev/.doctrees/api/gammapy.visualization.colormap_hess.doctree index e44e258fe50..e988a28b779 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.colormap_hess.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.colormap_hess.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.colormap_milagro.doctree b/docs/dev/.doctrees/api/gammapy.visualization.colormap_milagro.doctree index 8180d7632b1..40854afaaae 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.colormap_milagro.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.colormap_milagro.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_contour_line.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_contour_line.doctree index 48a14ecb111..a9b709801f4 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_contour_line.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_contour_line.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_distribution.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_distribution.doctree index eab518b15da..07a727b3b92 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_distribution.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_distribution.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_heatmap.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_heatmap.doctree index 46489c00339..516a1c5fbb2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_heatmap.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_heatmap.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_map_rgb.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_map_rgb.doctree index b086914cbd4..5eb214637d2 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_map_rgb.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_map_rgb.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_npred_signal.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_npred_signal.doctree index 8a00850dced..ed85787c65b 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_npred_signal.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_npred_signal.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_spectrum_datasets_off_regions.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_spectrum_datasets_off_regions.doctree index 8e233ab6ed4..dcca1a03197 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_spectrum_datasets_off_regions.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_spectrum_datasets_off_regions.doctree differ diff --git a/docs/dev/.doctrees/api/gammapy.visualization.plot_theta_squared_table.doctree b/docs/dev/.doctrees/api/gammapy.visualization.plot_theta_squared_table.doctree index 085ab1a6ca8..09fd9f4cef0 100644 Binary files a/docs/dev/.doctrees/api/gammapy.visualization.plot_theta_squared_table.doctree and b/docs/dev/.doctrees/api/gammapy.visualization.plot_theta_squared_table.doctree differ diff --git a/docs/dev/.doctrees/environment.pickle b/docs/dev/.doctrees/environment.pickle index 3ec539a14d0..cbadf8b0c64 100644 Binary files a/docs/dev/.doctrees/environment.pickle and b/docs/dev/.doctrees/environment.pickle differ diff --git a/docs/dev/.doctrees/index.doctree b/docs/dev/.doctrees/index.doctree index 79e6507fbed..1ea08e4e81e 100644 Binary files a/docs/dev/.doctrees/index.doctree and b/docs/dev/.doctrees/index.doctree differ diff --git a/docs/dev/.doctrees/sg_execution_times.doctree b/docs/dev/.doctrees/sg_execution_times.doctree index 5ed979f3af7..6d43ee579ab 100644 Binary files a/docs/dev/.doctrees/sg_execution_times.doctree and b/docs/dev/.doctrees/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/cta_sensitivity.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/cta_sensitivity.doctree index ea14eff2cdc..76e1dc8ad31 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/cta_sensitivity.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/cta_sensitivity.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/ebl.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/ebl.doctree index f2559c67d88..cdf92160903 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/ebl.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/ebl.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/extended_source_spectral_analysis.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/extended_source_spectral_analysis.doctree index 6dc83c95a30..6d8a6d8af69 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/extended_source_spectral_analysis.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/extended_source_spectral_analysis.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/sed_fitting.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/sed_fitting.doctree index 2af30bcd11c..15998fb3837 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/sed_fitting.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/sed_fitting.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/sg_execution_times.doctree index d4f7ec6d707..723db58570a 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis.doctree index 634425b98d5..7fee8563ead 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_hli.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_hli.doctree index 3d64f10e591..60769692dc4 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_hli.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_hli.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_rad_max.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_rad_max.doctree index bc3adf6c870..9815ff8bb01 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_rad_max.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/spectral_analysis_rad_max.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-1d/spectrum_simulation.doctree b/docs/dev/.doctrees/tutorials/analysis-1d/spectrum_simulation.doctree index a384e936903..3252e97c6ee 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-1d/spectrum_simulation.doctree and b/docs/dev/.doctrees/tutorials/analysis-1d/spectrum_simulation.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-2d/detect.doctree b/docs/dev/.doctrees/tutorials/analysis-2d/detect.doctree index f79ea0ffbed..0755ca8bb10 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-2d/detect.doctree and b/docs/dev/.doctrees/tutorials/analysis-2d/detect.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-2d/modeling_2D.doctree b/docs/dev/.doctrees/tutorials/analysis-2d/modeling_2D.doctree index 135d81d2603..129b43cb1ee 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-2d/modeling_2D.doctree and b/docs/dev/.doctrees/tutorials/analysis-2d/modeling_2D.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-2d/ring_background.doctree b/docs/dev/.doctrees/tutorials/analysis-2d/ring_background.doctree index d1cb8e94bfb..5dcfe69043c 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-2d/ring_background.doctree and b/docs/dev/.doctrees/tutorials/analysis-2d/ring_background.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-2d/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/analysis-2d/sg_execution_times.doctree index ee8927aea12..9acc2eec38c 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-2d/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/analysis-2d/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/analysis_3d.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/analysis_3d.doctree index 65cd937fab4..b01a7891b46 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/analysis_3d.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/analysis_3d.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/analysis_mwl.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/analysis_mwl.doctree index 5e0ee3fe732..fc20d642313 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/analysis_mwl.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/analysis_mwl.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/cta_data_analysis.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/cta_data_analysis.doctree index e262e274fc4..98df8884fb6 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/cta_data_analysis.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/cta_data_analysis.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/energy_dependent_estimation.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/energy_dependent_estimation.doctree index 57a4f1e3734..c228758c0ac 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/energy_dependent_estimation.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/energy_dependent_estimation.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling.doctree index 1d23cf29aeb..064ee8c52c8 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling_nrg_depend_models.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling_nrg_depend_models.doctree index aa086cee794..e97f317f8c5 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling_nrg_depend_models.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/event_sampling_nrg_depend_models.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/flux_profiles.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/flux_profiles.doctree index 9d860ecde17..5c6e1e76824 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/flux_profiles.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/flux_profiles.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/sg_execution_times.doctree index 3461d0714bd..f3cea61ddc2 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-3d/simulate_3d.doctree b/docs/dev/.doctrees/tutorials/analysis-3d/simulate_3d.doctree index 3602f8ef572..641c16c0029 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-3d/simulate_3d.doctree and b/docs/dev/.doctrees/tutorials/analysis-3d/simulate_3d.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/light_curve.doctree b/docs/dev/.doctrees/tutorials/analysis-time/light_curve.doctree index d9fcd062ffd..6c75256e0b7 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/light_curve.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/light_curve.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/light_curve_flare.doctree b/docs/dev/.doctrees/tutorials/analysis-time/light_curve_flare.doctree index 01514b4970c..33f59238449 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/light_curve_flare.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/light_curve_flare.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/light_curve_simulation.doctree b/docs/dev/.doctrees/tutorials/analysis-time/light_curve_simulation.doctree index 3d3e13b4cf9..6c945047148 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/light_curve_simulation.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/light_curve_simulation.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/pulsar_analysis.doctree b/docs/dev/.doctrees/tutorials/analysis-time/pulsar_analysis.doctree index dbd2dff573a..c5eeff6ef99 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/pulsar_analysis.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/pulsar_analysis.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/analysis-time/sg_execution_times.doctree index cad81dd7031..8cd069edaa3 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/time_resolved_spectroscopy.doctree b/docs/dev/.doctrees/tutorials/analysis-time/time_resolved_spectroscopy.doctree index 15ffe469544..fa01440feab 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/time_resolved_spectroscopy.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/time_resolved_spectroscopy.doctree differ diff --git a/docs/dev/.doctrees/tutorials/analysis-time/variability_estimation.doctree b/docs/dev/.doctrees/tutorials/analysis-time/variability_estimation.doctree index d9bead7ccc1..79345e74b65 100644 Binary files a/docs/dev/.doctrees/tutorials/analysis-time/variability_estimation.doctree and b/docs/dev/.doctrees/tutorials/analysis-time/variability_estimation.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/astro_dark_matter.doctree b/docs/dev/.doctrees/tutorials/api/astro_dark_matter.doctree index 5665972e4b6..41bc3959f81 100644 Binary files a/docs/dev/.doctrees/tutorials/api/astro_dark_matter.doctree and b/docs/dev/.doctrees/tutorials/api/astro_dark_matter.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/catalog.doctree b/docs/dev/.doctrees/tutorials/api/catalog.doctree index 36d0d84c8d2..daa80bd794c 100644 Binary files a/docs/dev/.doctrees/tutorials/api/catalog.doctree and b/docs/dev/.doctrees/tutorials/api/catalog.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/datasets.doctree b/docs/dev/.doctrees/tutorials/api/datasets.doctree index 47a98bed851..4d7db55e487 100644 Binary files a/docs/dev/.doctrees/tutorials/api/datasets.doctree and b/docs/dev/.doctrees/tutorials/api/datasets.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/estimators.doctree b/docs/dev/.doctrees/tutorials/api/estimators.doctree index cad3e47d9fa..8f35824ca58 100644 Binary files a/docs/dev/.doctrees/tutorials/api/estimators.doctree and b/docs/dev/.doctrees/tutorials/api/estimators.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/fitting.doctree b/docs/dev/.doctrees/tutorials/api/fitting.doctree index 8a5c95179b4..0ac89938a6f 100644 Binary files a/docs/dev/.doctrees/tutorials/api/fitting.doctree and b/docs/dev/.doctrees/tutorials/api/fitting.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/makers.doctree b/docs/dev/.doctrees/tutorials/api/makers.doctree index 3e0ff5b728c..f7921b04730 100644 Binary files a/docs/dev/.doctrees/tutorials/api/makers.doctree and b/docs/dev/.doctrees/tutorials/api/makers.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/maps.doctree b/docs/dev/.doctrees/tutorials/api/maps.doctree index 5788505e1ea..2dc3f876b92 100644 Binary files a/docs/dev/.doctrees/tutorials/api/maps.doctree and b/docs/dev/.doctrees/tutorials/api/maps.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/mask_maps.doctree b/docs/dev/.doctrees/tutorials/api/mask_maps.doctree index 6ef1a328afb..c21497f035e 100644 Binary files a/docs/dev/.doctrees/tutorials/api/mask_maps.doctree and b/docs/dev/.doctrees/tutorials/api/mask_maps.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/model_management.doctree b/docs/dev/.doctrees/tutorials/api/model_management.doctree index 0f3d25c3efd..3ef8b907291 100644 Binary files a/docs/dev/.doctrees/tutorials/api/model_management.doctree and b/docs/dev/.doctrees/tutorials/api/model_management.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/models.doctree b/docs/dev/.doctrees/tutorials/api/models.doctree index 66eb5ee58cd..d485ea44003 100644 Binary files a/docs/dev/.doctrees/tutorials/api/models.doctree and b/docs/dev/.doctrees/tutorials/api/models.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/observation_clustering.doctree b/docs/dev/.doctrees/tutorials/api/observation_clustering.doctree index 18205b2009d..2fdc655a27d 100644 Binary files a/docs/dev/.doctrees/tutorials/api/observation_clustering.doctree and b/docs/dev/.doctrees/tutorials/api/observation_clustering.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/priors.doctree b/docs/dev/.doctrees/tutorials/api/priors.doctree index f9c9f8252f1..1eef413fb36 100644 Binary files a/docs/dev/.doctrees/tutorials/api/priors.doctree and b/docs/dev/.doctrees/tutorials/api/priors.doctree differ diff --git a/docs/dev/.doctrees/tutorials/api/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/api/sg_execution_times.doctree index bdd27080e5d..6d476716e44 100644 Binary files a/docs/dev/.doctrees/tutorials/api/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/api/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/data/cta.doctree b/docs/dev/.doctrees/tutorials/data/cta.doctree index 8373bf6f42f..0b26c316bca 100644 Binary files a/docs/dev/.doctrees/tutorials/data/cta.doctree and b/docs/dev/.doctrees/tutorials/data/cta.doctree differ diff --git a/docs/dev/.doctrees/tutorials/data/fermi_lat.doctree b/docs/dev/.doctrees/tutorials/data/fermi_lat.doctree index fc01c2bec1b..fb5767d2e6c 100644 Binary files a/docs/dev/.doctrees/tutorials/data/fermi_lat.doctree and b/docs/dev/.doctrees/tutorials/data/fermi_lat.doctree differ diff --git a/docs/dev/.doctrees/tutorials/data/hawc.doctree b/docs/dev/.doctrees/tutorials/data/hawc.doctree index 841b6ee21ff..23a97d3eb97 100644 Binary files a/docs/dev/.doctrees/tutorials/data/hawc.doctree and b/docs/dev/.doctrees/tutorials/data/hawc.doctree differ diff --git a/docs/dev/.doctrees/tutorials/data/hess.doctree b/docs/dev/.doctrees/tutorials/data/hess.doctree index 3704ccd56b0..968dd15b4d0 100644 Binary files a/docs/dev/.doctrees/tutorials/data/hess.doctree and b/docs/dev/.doctrees/tutorials/data/hess.doctree differ diff --git a/docs/dev/.doctrees/tutorials/data/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/data/sg_execution_times.doctree index 972fdb4cd45..c540030cef3 100644 Binary files a/docs/dev/.doctrees/tutorials/data/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/data/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/scripts/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/scripts/sg_execution_times.doctree index 295d7c79cbb..15ecb34be75 100644 Binary files a/docs/dev/.doctrees/tutorials/scripts/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/scripts/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/tutorials/starting/analysis_1.doctree b/docs/dev/.doctrees/tutorials/starting/analysis_1.doctree index 3f9b326b645..9c9b919f5da 100644 Binary files a/docs/dev/.doctrees/tutorials/starting/analysis_1.doctree and b/docs/dev/.doctrees/tutorials/starting/analysis_1.doctree differ diff --git a/docs/dev/.doctrees/tutorials/starting/analysis_2.doctree b/docs/dev/.doctrees/tutorials/starting/analysis_2.doctree index 1b150ac73aa..c2ddfe241f6 100644 Binary files a/docs/dev/.doctrees/tutorials/starting/analysis_2.doctree and b/docs/dev/.doctrees/tutorials/starting/analysis_2.doctree differ diff --git a/docs/dev/.doctrees/tutorials/starting/overview.doctree b/docs/dev/.doctrees/tutorials/starting/overview.doctree index e6bf698fbed..43fc0498cab 100644 Binary files a/docs/dev/.doctrees/tutorials/starting/overview.doctree and b/docs/dev/.doctrees/tutorials/starting/overview.doctree differ diff --git a/docs/dev/.doctrees/tutorials/starting/sg_execution_times.doctree b/docs/dev/.doctrees/tutorials/starting/sg_execution_times.doctree index 7b00550b8ad..21b8523d9df 100644 Binary files a/docs/dev/.doctrees/tutorials/starting/sg_execution_times.doctree and b/docs/dev/.doctrees/tutorials/starting/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_constant.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_constant.doctree index 20fbd414fd0..e7978b29e96 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_constant.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_constant.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_disk.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_disk.doctree index 034da8dd778..a4bc71ad539 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_disk.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_disk.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gauss.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gauss.doctree index df3be8d3743..a187971ebb5 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gauss.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gauss.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gen_gauss.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gen_gauss.doctree index d961358d552..f4b0f16522f 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gen_gauss.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_gen_gauss.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.doctree index 3aaa488e64d..e798d908b49 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_point.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_point.doctree index 8d8d9fe3ad6..207bda6a139 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_point.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_point.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell.doctree index e5a93f923fe..97de46cb6e7 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell2.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell2.doctree index d6686b12c54..485a386c967 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell2.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_shell2.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_template.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_template.doctree index 0a1be2f752f..080329e65e4 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_template.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/plot_template.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spatial/sg_execution_times.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spatial/sg_execution_times.doctree index 47d9d62812d..694e4c6aa88 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spatial/sg_execution_times.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spatial/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_absorbed.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_absorbed.doctree index beb6919fa17..962e6ccbb08 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_absorbed.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_absorbed.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_broken_powerlaw.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_broken_powerlaw.doctree index 41dc84b83ed..d36f029b18a 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_broken_powerlaw.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_broken_powerlaw.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_compound.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_compound.doctree index 101f2ab2285..ec5b289a69d 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_compound.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_compound.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_constant_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_constant_spectral.doctree index 9fde43996ae..776d5422c4a 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_constant_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_constant_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.doctree index 2fa1096bf31..7a2cee680ce 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.doctree index 7e49d970ea6..cd6a95b175c 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.doctree index 2a04ed68768..5306c5ab4f2 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_gauss_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_gauss_spectral.doctree index f20810d80b8..6b5f8298bbd 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_gauss_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_gauss_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola.doctree index e4aff3b43ce..f044262395e 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.doctree index a9992aa4881..047692f68bb 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_naima.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_naima.doctree index 23e08ee69a4..19cab549ece 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_naima.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_naima.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.doctree index 70cade7a7f6..350e086890f 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw.doctree index ad4ca851d61..6b0f76a1465 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw2.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw2.doctree index 5e7dd040be0..7d22c7c403d 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw2.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw2.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.doctree index c54db97750c..52cfc733636 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.doctree index e7c34c13ac5..9b41eebf96b 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.doctree index 34188f47e6b..a2acede9b46 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.doctree index ec5f60a4247..1e074ff6d43 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.doctree index ee1ac09f7fa..0372925616d 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_template_spectral.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_template_spectral.doctree index 60cd2e59284..e73543b4089 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_template_spectral.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/plot_template_spectral.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/spectral/sg_execution_times.doctree b/docs/dev/.doctrees/user-guide/model-gallery/spectral/sg_execution_times.doctree index a66c6906d6a..0f23c06be2b 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/spectral/sg_execution_times.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/spectral/sg_execution_times.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_constant_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_constant_temporal.doctree index a4876ed30b0..077435add33 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_constant_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_constant_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_expdecay_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_expdecay_temporal.doctree index d67f6abac1a..32bfa975d14 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_expdecay_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_expdecay_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_gaussian_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_gaussian_temporal.doctree index 380f49e8840..ccfa5bd8333 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_gaussian_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_gaussian_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.doctree index 1f5521858ef..2cbe6d0391d 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_linear_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_linear_temporal.doctree index 082a652ae0d..c43be0c946e 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_linear_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_linear_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_powerlaw_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_powerlaw_temporal.doctree index 1f4f7a82ea8..d8aa0f93378 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_powerlaw_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_powerlaw_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_sine_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_sine_temporal.doctree index 8efb064a4e2..7e0f6752f1a 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_sine_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_sine_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_phase_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_phase_temporal.doctree index 3c181611c9e..1e33953c07c 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_phase_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_phase_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_temporal.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_temporal.doctree index e386ecb367a..6c55892f0df 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_temporal.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/plot_template_temporal.doctree differ diff --git a/docs/dev/.doctrees/user-guide/model-gallery/temporal/sg_execution_times.doctree b/docs/dev/.doctrees/user-guide/model-gallery/temporal/sg_execution_times.doctree index 50d203689db..2b9e2f8ec98 100644 Binary files a/docs/dev/.doctrees/user-guide/model-gallery/temporal/sg_execution_times.doctree and b/docs/dev/.doctrees/user-guide/model-gallery/temporal/sg_execution_times.doctree differ diff --git a/docs/dev/_downloads/00d3ac5b41ed4f4efa15d4f26129de27/event_sampling_nrg_depend_models.zip b/docs/dev/_downloads/00d3ac5b41ed4f4efa15d4f26129de27/event_sampling_nrg_depend_models.zip index 5f78048e304..2970d312135 100644 Binary files a/docs/dev/_downloads/00d3ac5b41ed4f4efa15d4f26129de27/event_sampling_nrg_depend_models.zip and b/docs/dev/_downloads/00d3ac5b41ed4f4efa15d4f26129de27/event_sampling_nrg_depend_models.zip differ diff --git a/docs/dev/_downloads/00d8cba1967017b728f6c0777b24e13f/plot_exp_cutoff_powerlaw.zip b/docs/dev/_downloads/00d8cba1967017b728f6c0777b24e13f/plot_exp_cutoff_powerlaw.zip index 0e59ba6598b..bc98348ec54 100644 Binary files a/docs/dev/_downloads/00d8cba1967017b728f6c0777b24e13f/plot_exp_cutoff_powerlaw.zip and b/docs/dev/_downloads/00d8cba1967017b728f6c0777b24e13f/plot_exp_cutoff_powerlaw.zip differ diff --git a/docs/dev/_downloads/00e16d4c09559d67d10cd2e55c12eff8/plot_template_spectral.zip b/docs/dev/_downloads/00e16d4c09559d67d10cd2e55c12eff8/plot_template_spectral.zip index 5333f2b7df6..261402bfd4e 100644 Binary files a/docs/dev/_downloads/00e16d4c09559d67d10cd2e55c12eff8/plot_template_spectral.zip and b/docs/dev/_downloads/00e16d4c09559d67d10cd2e55c12eff8/plot_template_spectral.zip differ diff --git a/docs/dev/_downloads/041be2d7422101460b6f928b074608da/light_curve_flare.zip b/docs/dev/_downloads/041be2d7422101460b6f928b074608da/light_curve_flare.zip index 5358754b5b4..b8605b02db1 100644 Binary files a/docs/dev/_downloads/041be2d7422101460b6f928b074608da/light_curve_flare.zip and b/docs/dev/_downloads/041be2d7422101460b6f928b074608da/light_curve_flare.zip differ diff --git a/docs/dev/_downloads/04c95a075d9d6e0650a2f32554c276da/plot_super_exp_cutoff_powerlaw_3fgl.ipynb b/docs/dev/_downloads/04c95a075d9d6e0650a2f32554c276da/plot_super_exp_cutoff_powerlaw_3fgl.ipynb index a2651f652b7..ecde1b77b06 100644 --- a/docs/dev/_downloads/04c95a075d9d6e0650a2f32554c276da/plot_super_exp_cutoff_powerlaw_3fgl.ipynb +++ b/docs/dev/_downloads/04c95a075d9d6e0650a2f32554c276da/plot_super_exp_cutoff_powerlaw_3fgl.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/04f3ecb20bae1e7983af36784e65887d/plot_super_exp_cutoff_powerlaw_3fgl.zip b/docs/dev/_downloads/04f3ecb20bae1e7983af36784e65887d/plot_super_exp_cutoff_powerlaw_3fgl.zip index fe1b66055cb..cad2bcc9631 100644 Binary files a/docs/dev/_downloads/04f3ecb20bae1e7983af36784e65887d/plot_super_exp_cutoff_powerlaw_3fgl.zip and b/docs/dev/_downloads/04f3ecb20bae1e7983af36784e65887d/plot_super_exp_cutoff_powerlaw_3fgl.zip differ diff --git a/docs/dev/_downloads/0595e7d3ba49081161c8f9931701216b/sed_fitting.zip b/docs/dev/_downloads/0595e7d3ba49081161c8f9931701216b/sed_fitting.zip index d98a7e817e7..527cb105986 100644 Binary files a/docs/dev/_downloads/0595e7d3ba49081161c8f9931701216b/sed_fitting.zip and b/docs/dev/_downloads/0595e7d3ba49081161c8f9931701216b/sed_fitting.zip differ diff --git a/docs/dev/_downloads/062bafee8fcb97ea6e8ccd016a8baf1e/plot_bkg_3d.pdf b/docs/dev/_downloads/062bafee8fcb97ea6e8ccd016a8baf1e/plot_bkg_3d.pdf index 938e80651ef..520b2df5ef6 100644 Binary files a/docs/dev/_downloads/062bafee8fcb97ea6e8ccd016a8baf1e/plot_bkg_3d.pdf and b/docs/dev/_downloads/062bafee8fcb97ea6e8ccd016a8baf1e/plot_bkg_3d.pdf differ diff --git a/docs/dev/_downloads/068f4a465f9ece97104fde9df27a1c7b/model-gallery_jupyter.zip b/docs/dev/_downloads/068f4a465f9ece97104fde9df27a1c7b/model-gallery_jupyter.zip index 49192f97485..c3449b5ff78 100644 Binary files a/docs/dev/_downloads/068f4a465f9ece97104fde9df27a1c7b/model-gallery_jupyter.zip and b/docs/dev/_downloads/068f4a465f9ece97104fde9df27a1c7b/model-gallery_jupyter.zip differ diff --git a/docs/dev/_downloads/06ba2363ac6d8e23d2098c691bbc6e58/priors.zip b/docs/dev/_downloads/06ba2363ac6d8e23d2098c691bbc6e58/priors.zip index d41306dfbf9..324bd123d3c 100644 Binary files a/docs/dev/_downloads/06ba2363ac6d8e23d2098c691bbc6e58/priors.zip and b/docs/dev/_downloads/06ba2363ac6d8e23d2098c691bbc6e58/priors.zip differ diff --git a/docs/dev/_downloads/088ccc2817ab643e12f4e39275459a14/simulate_3d.zip b/docs/dev/_downloads/088ccc2817ab643e12f4e39275459a14/simulate_3d.zip index 3dcce6a90f0..5cc2bac75ea 100644 Binary files a/docs/dev/_downloads/088ccc2817ab643e12f4e39275459a14/simulate_3d.zip and b/docs/dev/_downloads/088ccc2817ab643e12f4e39275459a14/simulate_3d.zip differ diff --git a/docs/dev/_downloads/098bc90a45fe57da0e099cb72c52bbbb/plot_super_exp_cutoff_powerlaw_4fgl.ipynb b/docs/dev/_downloads/098bc90a45fe57da0e099cb72c52bbbb/plot_super_exp_cutoff_powerlaw_4fgl.ipynb index 87cbeba2c49..59513777b54 100644 --- a/docs/dev/_downloads/098bc90a45fe57da0e099cb72c52bbbb/plot_super_exp_cutoff_powerlaw_4fgl.ipynb +++ b/docs/dev/_downloads/098bc90a45fe57da0e099cb72c52bbbb/plot_super_exp_cutoff_powerlaw_4fgl.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/0b79fceaef4a0c3129e2815eefbe54d3/spectral_analysis_rad_max.ipynb b/docs/dev/_downloads/0b79fceaef4a0c3129e2815eefbe54d3/spectral_analysis_rad_max.ipynb index bbc76ff6daf..61b1aa79c95 100644 --- a/docs/dev/_downloads/0b79fceaef4a0c3129e2815eefbe54d3/spectral_analysis_rad_max.ipynb +++ b/docs/dev/_downloads/0b79fceaef4a0c3129e2815eefbe54d3/spectral_analysis_rad_max.ipynb @@ -330,7 +330,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/0c4afa10f7306271310df66616417cf8/spectral_analysis.zip b/docs/dev/_downloads/0c4afa10f7306271310df66616417cf8/spectral_analysis.zip index 243387d27a4..456efce416c 100644 Binary files a/docs/dev/_downloads/0c4afa10f7306271310df66616417cf8/spectral_analysis.zip and b/docs/dev/_downloads/0c4afa10f7306271310df66616417cf8/spectral_analysis.zip differ diff --git a/docs/dev/_downloads/0d466f90e7cf7ef35deeaf0e89037f5c/plot_compound.ipynb b/docs/dev/_downloads/0d466f90e7cf7ef35deeaf0e89037f5c/plot_compound.ipynb index bd7c758d54d..ad2ecd79b1a 100644 --- a/docs/dev/_downloads/0d466f90e7cf7ef35deeaf0e89037f5c/plot_compound.ipynb +++ b/docs/dev/_downloads/0d466f90e7cf7ef35deeaf0e89037f5c/plot_compound.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/0ee9d6f1024a6949ed84ed2823f76884/plot_constant_temporal.zip b/docs/dev/_downloads/0ee9d6f1024a6949ed84ed2823f76884/plot_constant_temporal.zip index 1d9c864a11c..f8544d70432 100644 Binary files a/docs/dev/_downloads/0ee9d6f1024a6949ed84ed2823f76884/plot_constant_temporal.zip and b/docs/dev/_downloads/0ee9d6f1024a6949ed84ed2823f76884/plot_constant_temporal.zip differ diff --git a/docs/dev/_downloads/0f9036aaf68738f4c3ddb4f5f178df4e/irfs.ipynb b/docs/dev/_downloads/0f9036aaf68738f4c3ddb4f5f178df4e/irfs.ipynb index 4e05eb22792..71e9c46d45a 100644 --- a/docs/dev/_downloads/0f9036aaf68738f4c3ddb4f5f178df4e/irfs.ipynb +++ b/docs/dev/_downloads/0f9036aaf68738f4c3ddb4f5f178df4e/irfs.ipynb @@ -398,7 +398,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/10f1f97c8b6423f5cd3c3dd929ba1c7d/plot_stack.pdf b/docs/dev/_downloads/10f1f97c8b6423f5cd3c3dd929ba1c7d/plot_stack.pdf index bf72091fac6..4e5e9944dd4 100644 Binary files a/docs/dev/_downloads/10f1f97c8b6423f5cd3c3dd929ba1c7d/plot_stack.pdf and b/docs/dev/_downloads/10f1f97c8b6423f5cd3c3dd929ba1c7d/plot_stack.pdf differ diff --git a/docs/dev/_downloads/122bdf569b4aa303497df51a1b7ad579/plot_expdecay_temporal.ipynb b/docs/dev/_downloads/122bdf569b4aa303497df51a1b7ad579/plot_expdecay_temporal.ipynb index 0603ec5bc4e..fc2dfc186e6 100644 --- a/docs/dev/_downloads/122bdf569b4aa303497df51a1b7ad579/plot_expdecay_temporal.ipynb +++ b/docs/dev/_downloads/122bdf569b4aa303497df51a1b7ad579/plot_expdecay_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/1369ed1d3d840a1191c042bbaa5b822e/event_sampling.ipynb b/docs/dev/_downloads/1369ed1d3d840a1191c042bbaa5b822e/event_sampling.ipynb index 6dd9689a382..86b30560d89 100644 --- a/docs/dev/_downloads/1369ed1d3d840a1191c042bbaa5b822e/event_sampling.ipynb +++ b/docs/dev/_downloads/1369ed1d3d840a1191c042bbaa5b822e/event_sampling.ipynb @@ -481,7 +481,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/1370bd9099a95d65461f2a665bb9decd/catalog.zip b/docs/dev/_downloads/1370bd9099a95d65461f2a665bb9decd/catalog.zip index b238cd9974c..7a535a80e6c 100644 Binary files a/docs/dev/_downloads/1370bd9099a95d65461f2a665bb9decd/catalog.zip and b/docs/dev/_downloads/1370bd9099a95d65461f2a665bb9decd/catalog.zip differ diff --git a/docs/dev/_downloads/141460ffae1bfde215476eba79957e7c/plot_shell2.ipynb b/docs/dev/_downloads/141460ffae1bfde215476eba79957e7c/plot_shell2.ipynb index abc5b9ee536..7610d030180 100644 --- a/docs/dev/_downloads/141460ffae1bfde215476eba79957e7c/plot_shell2.ipynb +++ b/docs/dev/_downloads/141460ffae1bfde215476eba79957e7c/plot_shell2.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/16d6399e308f3f4937d0512c9c9dd023/plot_psf.pdf b/docs/dev/_downloads/16d6399e308f3f4937d0512c9c9dd023/plot_psf.pdf index 5d83732034e..7f37a0d1700 100644 Binary files a/docs/dev/_downloads/16d6399e308f3f4937d0512c9c9dd023/plot_psf.pdf and b/docs/dev/_downloads/16d6399e308f3f4937d0512c9c9dd023/plot_psf.pdf differ diff --git a/docs/dev/_downloads/173b2147fa2a0402fd092316ab70a935/plot_smooth_broken_powerlaw.zip b/docs/dev/_downloads/173b2147fa2a0402fd092316ab70a935/plot_smooth_broken_powerlaw.zip index 428889f14e9..ea84b802df7 100644 Binary files a/docs/dev/_downloads/173b2147fa2a0402fd092316ab70a935/plot_smooth_broken_powerlaw.zip and b/docs/dev/_downloads/173b2147fa2a0402fd092316ab70a935/plot_smooth_broken_powerlaw.zip differ diff --git a/docs/dev/_downloads/190f6cf18a57711baf77208d0f63545a/plot_point.ipynb b/docs/dev/_downloads/190f6cf18a57711baf77208d0f63545a/plot_point.ipynb index 5260d21b1ae..0017fbf26fe 100644 --- a/docs/dev/_downloads/190f6cf18a57711baf77208d0f63545a/plot_point.ipynb +++ b/docs/dev/_downloads/190f6cf18a57711baf77208d0f63545a/plot_point.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/191e39c4584da5619df61ef94dbf1770/plot_spiral_arms.hires.png b/docs/dev/_downloads/191e39c4584da5619df61ef94dbf1770/plot_spiral_arms.hires.png index d29ffeb3a4b..35cb480fc8c 100644 Binary files a/docs/dev/_downloads/191e39c4584da5619df61ef94dbf1770/plot_spiral_arms.hires.png and b/docs/dev/_downloads/191e39c4584da5619df61ef94dbf1770/plot_spiral_arms.hires.png differ diff --git a/docs/dev/_downloads/19d15f4e879cd1df35998e08e7dddee1/plot_sine_temporal.ipynb b/docs/dev/_downloads/19d15f4e879cd1df35998e08e7dddee1/plot_sine_temporal.ipynb index b0f8c405087..46529c17624 100644 --- a/docs/dev/_downloads/19d15f4e879cd1df35998e08e7dddee1/plot_sine_temporal.ipynb +++ b/docs/dev/_downloads/19d15f4e879cd1df35998e08e7dddee1/plot_sine_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/1d3f6beaf08c01b5183c9c9291d0b28a/plot_piecewise_norm_spectral.zip b/docs/dev/_downloads/1d3f6beaf08c01b5183c9c9291d0b28a/plot_piecewise_norm_spectral.zip index 9c7d3bcbc4e..6908184ba5d 100644 Binary files a/docs/dev/_downloads/1d3f6beaf08c01b5183c9c9291d0b28a/plot_piecewise_norm_spectral.zip and b/docs/dev/_downloads/1d3f6beaf08c01b5183c9c9291d0b28a/plot_piecewise_norm_spectral.zip differ diff --git a/docs/dev/_downloads/1da2d20e4827cb929843382d29b4df4b/plot_naima.ipynb b/docs/dev/_downloads/1da2d20e4827cb929843382d29b4df4b/plot_naima.ipynb index 1ec5a994915..b7a23dbde46 100644 --- a/docs/dev/_downloads/1da2d20e4827cb929843382d29b4df4b/plot_naima.ipynb +++ b/docs/dev/_downloads/1da2d20e4827cb929843382d29b4df4b/plot_naima.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/21c6356dca773bb211972068bdd8edac/irfs.zip b/docs/dev/_downloads/21c6356dca773bb211972068bdd8edac/irfs.zip index b7b512fa9ac..e69ae03185a 100644 Binary files a/docs/dev/_downloads/21c6356dca773bb211972068bdd8edac/irfs.zip and b/docs/dev/_downloads/21c6356dca773bb211972068bdd8edac/irfs.zip differ diff --git a/docs/dev/_downloads/236c8b33d290c68e2153e8d9bd011656/plot_powerlaw.ipynb b/docs/dev/_downloads/236c8b33d290c68e2153e8d9bd011656/plot_powerlaw.ipynb index b62272b520a..3b73d6f54b5 100644 --- a/docs/dev/_downloads/236c8b33d290c68e2153e8d9bd011656/plot_powerlaw.ipynb +++ b/docs/dev/_downloads/236c8b33d290c68e2153e8d9bd011656/plot_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/23a95fa742150b45b73b7f187c1cc8a8/plot_broken_powerlaw.zip b/docs/dev/_downloads/23a95fa742150b45b73b7f187c1cc8a8/plot_broken_powerlaw.zip index 8ea8c610bc7..b80e117d9b2 100644 Binary files a/docs/dev/_downloads/23a95fa742150b45b73b7f187c1cc8a8/plot_broken_powerlaw.zip and b/docs/dev/_downloads/23a95fa742150b45b73b7f187c1cc8a8/plot_broken_powerlaw.zip differ diff --git a/docs/dev/_downloads/25f9c102794e0966d636f8ca130ecabc/extended_source_spectral_analysis.zip b/docs/dev/_downloads/25f9c102794e0966d636f8ca130ecabc/extended_source_spectral_analysis.zip index 66d07b7825a..2b1af57515f 100644 Binary files a/docs/dev/_downloads/25f9c102794e0966d636f8ca130ecabc/extended_source_spectral_analysis.zip and b/docs/dev/_downloads/25f9c102794e0966d636f8ca130ecabc/extended_source_spectral_analysis.zip differ diff --git a/docs/dev/_downloads/26224d3995e07325df7f0b64d1681fb9/regionmap-1.pdf b/docs/dev/_downloads/26224d3995e07325df7f0b64d1681fb9/regionmap-1.pdf index 5f7b2c5376c..066e194ebe7 100644 Binary files a/docs/dev/_downloads/26224d3995e07325df7f0b64d1681fb9/regionmap-1.pdf and b/docs/dev/_downloads/26224d3995e07325df7f0b64d1681fb9/regionmap-1.pdf differ diff --git a/docs/dev/_downloads/26b47ebfce2659a40c59a7d3296b8d9a/estimators.ipynb b/docs/dev/_downloads/26b47ebfce2659a40c59a7d3296b8d9a/estimators.ipynb index c85425af36d..9489c22c656 100644 --- a/docs/dev/_downloads/26b47ebfce2659a40c59a7d3296b8d9a/estimators.ipynb +++ b/docs/dev/_downloads/26b47ebfce2659a40c59a7d3296b8d9a/estimators.ipynb @@ -468,7 +468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/277e8d586c77a3ac9f6ad21ecdfc3485/detect.zip b/docs/dev/_downloads/277e8d586c77a3ac9f6ad21ecdfc3485/detect.zip index eac25621ed1..6eb64880585 100644 Binary files a/docs/dev/_downloads/277e8d586c77a3ac9f6ad21ecdfc3485/detect.zip and b/docs/dev/_downloads/277e8d586c77a3ac9f6ad21ecdfc3485/detect.zip differ diff --git a/docs/dev/_downloads/296ebb35e9dd7deb47d7997d9fed9214/event_sampling.zip b/docs/dev/_downloads/296ebb35e9dd7deb47d7997d9fed9214/event_sampling.zip index c8274d019ac..451a5ed219c 100644 Binary files a/docs/dev/_downloads/296ebb35e9dd7deb47d7997d9fed9214/event_sampling.zip and b/docs/dev/_downloads/296ebb35e9dd7deb47d7997d9fed9214/event_sampling.zip differ diff --git a/docs/dev/_downloads/308124d62c7b2dab7983acf8994eec17/plot_gen_gauss.ipynb b/docs/dev/_downloads/308124d62c7b2dab7983acf8994eec17/plot_gen_gauss.ipynb index 92e666d3d44..cc887474c48 100644 --- a/docs/dev/_downloads/308124d62c7b2dab7983acf8994eec17/plot_gen_gauss.ipynb +++ b/docs/dev/_downloads/308124d62c7b2dab7983acf8994eec17/plot_gen_gauss.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/315c4c52fb68082a731b192d944e2ede/tutorials_python.zip b/docs/dev/_downloads/315c4c52fb68082a731b192d944e2ede/tutorials_python.zip index bdd59d9ba51..7fdc6b13d70 100644 Binary files a/docs/dev/_downloads/315c4c52fb68082a731b192d944e2ede/tutorials_python.zip and b/docs/dev/_downloads/315c4c52fb68082a731b192d944e2ede/tutorials_python.zip differ diff --git a/docs/dev/_downloads/32c74d2ddc03eb7845452c426125141b/light_curve_simulation.ipynb b/docs/dev/_downloads/32c74d2ddc03eb7845452c426125141b/light_curve_simulation.ipynb index 0db4a8667b4..5b428a0ff32 100644 --- a/docs/dev/_downloads/32c74d2ddc03eb7845452c426125141b/light_curve_simulation.ipynb +++ b/docs/dev/_downloads/32c74d2ddc03eb7845452c426125141b/light_curve_simulation.ipynb @@ -337,7 +337,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/3338676e6d8c111c97ce305a66a4210c/plot_template.ipynb b/docs/dev/_downloads/3338676e6d8c111c97ce305a66a4210c/plot_template.ipynb index 554ed12b8e8..a6b485964af 100644 --- a/docs/dev/_downloads/3338676e6d8c111c97ce305a66a4210c/plot_template.ipynb +++ b/docs/dev/_downloads/3338676e6d8c111c97ce305a66a4210c/plot_template.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/33bb560bd3c93b9dd08e3984c7eb1b58/plot_disk.zip b/docs/dev/_downloads/33bb560bd3c93b9dd08e3984c7eb1b58/plot_disk.zip index 9acff8a2ac9..c5efbedc225 100644 Binary files a/docs/dev/_downloads/33bb560bd3c93b9dd08e3984c7eb1b58/plot_disk.zip and b/docs/dev/_downloads/33bb560bd3c93b9dd08e3984c7eb1b58/plot_disk.zip differ diff --git a/docs/dev/_downloads/341317315e7e4253fe9cdaa5bbc2c6e2/plot_constant.zip b/docs/dev/_downloads/341317315e7e4253fe9cdaa5bbc2c6e2/plot_constant.zip index 5bc3ce75f89..48b3c8bd57f 100644 Binary files a/docs/dev/_downloads/341317315e7e4253fe9cdaa5bbc2c6e2/plot_constant.zip and b/docs/dev/_downloads/341317315e7e4253fe9cdaa5bbc2c6e2/plot_constant.zip differ diff --git a/docs/dev/_downloads/346fe536153ddf4e1f253ab559e610d4/survey_map.zip b/docs/dev/_downloads/346fe536153ddf4e1f253ab559e610d4/survey_map.zip index 798e7c15411..3b45522799e 100644 Binary files a/docs/dev/_downloads/346fe536153ddf4e1f253ab559e610d4/survey_map.zip and b/docs/dev/_downloads/346fe536153ddf4e1f253ab559e610d4/survey_map.zip differ diff --git a/docs/dev/_downloads/34a038740d05769b089d7903a18fed6b/plot_exp_cutoff_powerlaw_norm_spectral.ipynb b/docs/dev/_downloads/34a038740d05769b089d7903a18fed6b/plot_exp_cutoff_powerlaw_norm_spectral.ipynb index 217f011c0de..24ad8220310 100644 --- a/docs/dev/_downloads/34a038740d05769b089d7903a18fed6b/plot_exp_cutoff_powerlaw_norm_spectral.ipynb +++ b/docs/dev/_downloads/34a038740d05769b089d7903a18fed6b/plot_exp_cutoff_powerlaw_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/3887251ea091cf5a495cbd0984520eec/hawc.zip b/docs/dev/_downloads/3887251ea091cf5a495cbd0984520eec/hawc.zip index c0c02d3bed7..e90d6bb77dc 100644 Binary files a/docs/dev/_downloads/3887251ea091cf5a495cbd0984520eec/hawc.zip and b/docs/dev/_downloads/3887251ea091cf5a495cbd0984520eec/hawc.zip differ diff --git a/docs/dev/_downloads/388f0fd944eebe1e0103655d9014c555/plot_gauss.zip b/docs/dev/_downloads/388f0fd944eebe1e0103655d9014c555/plot_gauss.zip index 3ab7db8d307..6a939687913 100644 Binary files a/docs/dev/_downloads/388f0fd944eebe1e0103655d9014c555/plot_gauss.zip and b/docs/dev/_downloads/388f0fd944eebe1e0103655d9014c555/plot_gauss.zip differ diff --git a/docs/dev/_downloads/38f1ac770d16c42884b7e4859603dd0b/plot_logparabola_norm_spectral.ipynb b/docs/dev/_downloads/38f1ac770d16c42884b7e4859603dd0b/plot_logparabola_norm_spectral.ipynb index 63ce8ffd448..d2f0fd0565a 100644 --- a/docs/dev/_downloads/38f1ac770d16c42884b7e4859603dd0b/plot_logparabola_norm_spectral.ipynb +++ b/docs/dev/_downloads/38f1ac770d16c42884b7e4859603dd0b/plot_logparabola_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/39983d17a2a11f56c5f5cc42710364f2/analysis_1.zip b/docs/dev/_downloads/39983d17a2a11f56c5f5cc42710364f2/analysis_1.zip index dae6f1fe369..f33361d0661 100644 Binary files a/docs/dev/_downloads/39983d17a2a11f56c5f5cc42710364f2/analysis_1.zip and b/docs/dev/_downloads/39983d17a2a11f56c5f5cc42710364f2/analysis_1.zip differ diff --git a/docs/dev/_downloads/3b10ba4ac6696d908bde0bbc7a89c9d7/plot_powerlaw_temporal.zip b/docs/dev/_downloads/3b10ba4ac6696d908bde0bbc7a89c9d7/plot_powerlaw_temporal.zip index 0ce1c8c7372..33374e5ed24 100644 Binary files a/docs/dev/_downloads/3b10ba4ac6696d908bde0bbc7a89c9d7/plot_powerlaw_temporal.zip and b/docs/dev/_downloads/3b10ba4ac6696d908bde0bbc7a89c9d7/plot_powerlaw_temporal.zip differ diff --git a/docs/dev/_downloads/3edea76cb3aefe6dfce230edb07b24e2/models.zip b/docs/dev/_downloads/3edea76cb3aefe6dfce230edb07b24e2/models.zip index 24ac69559f8..7d184bc512e 100644 Binary files a/docs/dev/_downloads/3edea76cb3aefe6dfce230edb07b24e2/models.zip and b/docs/dev/_downloads/3edea76cb3aefe6dfce230edb07b24e2/models.zip differ diff --git a/docs/dev/_downloads/408398be7d2e8fce69b0c175dfb7db6c/hess.zip b/docs/dev/_downloads/408398be7d2e8fce69b0c175dfb7db6c/hess.zip index c46f3b2f661..53b2a97556a 100644 Binary files a/docs/dev/_downloads/408398be7d2e8fce69b0c175dfb7db6c/hess.zip and b/docs/dev/_downloads/408398be7d2e8fce69b0c175dfb7db6c/hess.zip differ diff --git a/docs/dev/_downloads/419f3e4fc59d5dc03f9937998fb0fd8c/models.ipynb b/docs/dev/_downloads/419f3e4fc59d5dc03f9937998fb0fd8c/models.ipynb index 5e77aa70799..1d8ea0aaef6 100644 --- a/docs/dev/_downloads/419f3e4fc59d5dc03f9937998fb0fd8c/models.ipynb +++ b/docs/dev/_downloads/419f3e4fc59d5dc03f9937998fb0fd8c/models.ipynb @@ -1042,7 +1042,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/42555f9541a5db7dad86c4ed6f6927e4/plot_exp_cutoff_powerlaw_3fgl.ipynb b/docs/dev/_downloads/42555f9541a5db7dad86c4ed6f6927e4/plot_exp_cutoff_powerlaw_3fgl.ipynb index f2d97b95d67..d7f4f9c575a 100644 --- a/docs/dev/_downloads/42555f9541a5db7dad86c4ed6f6927e4/plot_exp_cutoff_powerlaw_3fgl.ipynb +++ b/docs/dev/_downloads/42555f9541a5db7dad86c4ed6f6927e4/plot_exp_cutoff_powerlaw_3fgl.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/42884adaf5dec1438e6da837d7acfad0/cta.zip b/docs/dev/_downloads/42884adaf5dec1438e6da837d7acfad0/cta.zip index 3917a8c06ce..1c9887ea028 100644 Binary files a/docs/dev/_downloads/42884adaf5dec1438e6da837d7acfad0/cta.zip and b/docs/dev/_downloads/42884adaf5dec1438e6da837d7acfad0/cta.zip differ diff --git a/docs/dev/_downloads/432ee3a608125ae95df2e8d950f07716/dl3-1.pdf b/docs/dev/_downloads/432ee3a608125ae95df2e8d950f07716/dl3-1.pdf index cc0262b7aef..b7b91ff5ca5 100644 Binary files a/docs/dev/_downloads/432ee3a608125ae95df2e8d950f07716/dl3-1.pdf and b/docs/dev/_downloads/432ee3a608125ae95df2e8d950f07716/dl3-1.pdf differ diff --git a/docs/dev/_downloads/433af26356d113135955314e89d75b5c/plot_template_temporal.ipynb b/docs/dev/_downloads/433af26356d113135955314e89d75b5c/plot_template_temporal.ipynb index cd9dee4caf9..9543f3f8c71 100644 --- a/docs/dev/_downloads/433af26356d113135955314e89d75b5c/plot_template_temporal.ipynb +++ b/docs/dev/_downloads/433af26356d113135955314e89d75b5c/plot_template_temporal.ipynb @@ -53,7 +53,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/440149f3931d426b0d9c554d4bb23c5b/light_curve_simulation.zip b/docs/dev/_downloads/440149f3931d426b0d9c554d4bb23c5b/light_curve_simulation.zip index 7ae0a9651b7..f16d3b19790 100644 Binary files a/docs/dev/_downloads/440149f3931d426b0d9c554d4bb23c5b/light_curve_simulation.zip and b/docs/dev/_downloads/440149f3931d426b0d9c554d4bb23c5b/light_curve_simulation.zip differ diff --git a/docs/dev/_downloads/440e264b73eac3e4291763a82299dcb1/model_management.zip b/docs/dev/_downloads/440e264b73eac3e4291763a82299dcb1/model_management.zip index 3c1e827a5f9..af9cfd56758 100644 Binary files a/docs/dev/_downloads/440e264b73eac3e4291763a82299dcb1/model_management.zip and b/docs/dev/_downloads/440e264b73eac3e4291763a82299dcb1/model_management.zip differ diff --git a/docs/dev/_downloads/471a23ea48282aca3ed18c0dab2c428f/plot_shell2.zip b/docs/dev/_downloads/471a23ea48282aca3ed18c0dab2c428f/plot_shell2.zip index f1ad77d4164..864bce42c23 100644 Binary files a/docs/dev/_downloads/471a23ea48282aca3ed18c0dab2c428f/plot_shell2.zip and b/docs/dev/_downloads/471a23ea48282aca3ed18c0dab2c428f/plot_shell2.zip differ diff --git a/docs/dev/_downloads/4722787c7fa105f0833ba203665f472d/maps.zip b/docs/dev/_downloads/4722787c7fa105f0833ba203665f472d/maps.zip index 7a4fc2d30f9..7767c8cb1ff 100644 Binary files a/docs/dev/_downloads/4722787c7fa105f0833ba203665f472d/maps.zip and b/docs/dev/_downloads/4722787c7fa105f0833ba203665f472d/maps.zip differ diff --git a/docs/dev/_downloads/48ee59a65537e53628a7fedbae5ba7cb/plot_gauss_spectral.ipynb b/docs/dev/_downloads/48ee59a65537e53628a7fedbae5ba7cb/plot_gauss_spectral.ipynb index 73db4f82cc3..e65766eed1c 100644 --- a/docs/dev/_downloads/48ee59a65537e53628a7fedbae5ba7cb/plot_gauss_spectral.ipynb +++ b/docs/dev/_downloads/48ee59a65537e53628a7fedbae5ba7cb/plot_gauss_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/4c5e33d8438fd5229f2e9205d79c47b5/create_region.pdf b/docs/dev/_downloads/4c5e33d8438fd5229f2e9205d79c47b5/create_region.pdf index 1dcdf780c40..ec5b3c6a167 100644 Binary files a/docs/dev/_downloads/4c5e33d8438fd5229f2e9205d79c47b5/create_region.pdf and b/docs/dev/_downloads/4c5e33d8438fd5229f2e9205d79c47b5/create_region.pdf differ diff --git a/docs/dev/_downloads/4ca2b61a566afaeee58839ee1563cdbe/detect.ipynb b/docs/dev/_downloads/4ca2b61a566afaeee58839ee1563cdbe/detect.ipynb index c05a9184a31..38fc8bb3ca7 100644 --- a/docs/dev/_downloads/4ca2b61a566afaeee58839ee1563cdbe/detect.ipynb +++ b/docs/dev/_downloads/4ca2b61a566afaeee58839ee1563cdbe/detect.ipynb @@ -240,7 +240,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/4ea9a264083bf99663b11b14fd6b5368/plot_constant_spectral.zip b/docs/dev/_downloads/4ea9a264083bf99663b11b14fd6b5368/plot_constant_spectral.zip index 9d3a410e889..923eb313357 100644 Binary files a/docs/dev/_downloads/4ea9a264083bf99663b11b14fd6b5368/plot_constant_spectral.zip and b/docs/dev/_downloads/4ea9a264083bf99663b11b14fd6b5368/plot_constant_spectral.zip differ diff --git a/docs/dev/_downloads/4f3c47ff11347e8788ce002c9c32adc3/plot_exp_cutoff_powerlaw_norm_spectral.zip b/docs/dev/_downloads/4f3c47ff11347e8788ce002c9c32adc3/plot_exp_cutoff_powerlaw_norm_spectral.zip index 83077687528..e8cd9acc605 100644 Binary files a/docs/dev/_downloads/4f3c47ff11347e8788ce002c9c32adc3/plot_exp_cutoff_powerlaw_norm_spectral.zip and b/docs/dev/_downloads/4f3c47ff11347e8788ce002c9c32adc3/plot_exp_cutoff_powerlaw_norm_spectral.zip differ diff --git a/docs/dev/_downloads/510a048c4a816c6ae25825e5dba9de2f/flux_profiles.ipynb b/docs/dev/_downloads/510a048c4a816c6ae25825e5dba9de2f/flux_profiles.ipynb index 9557a9b9963..f5bd632b292 100644 --- a/docs/dev/_downloads/510a048c4a816c6ae25825e5dba9de2f/flux_profiles.ipynb +++ b/docs/dev/_downloads/510a048c4a816c6ae25825e5dba9de2f/flux_profiles.ipynb @@ -449,7 +449,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/516bf201f6a6919c775e52bfb1dc805f/astro_dark_matter.ipynb b/docs/dev/_downloads/516bf201f6a6919c775e52bfb1dc805f/astro_dark_matter.ipynb index df8ba84497c..e2b6f292d3d 100644 --- a/docs/dev/_downloads/516bf201f6a6919c775e52bfb1dc805f/astro_dark_matter.ipynb +++ b/docs/dev/_downloads/516bf201f6a6919c775e52bfb1dc805f/astro_dark_matter.ipynb @@ -168,7 +168,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/5195feb3ff54e1188c53522657e57ed1/variability_estimation.zip b/docs/dev/_downloads/5195feb3ff54e1188c53522657e57ed1/variability_estimation.zip index 34e396a7b02..03032bfd828 100644 Binary files a/docs/dev/_downloads/5195feb3ff54e1188c53522657e57ed1/variability_estimation.zip and b/docs/dev/_downloads/5195feb3ff54e1188c53522657e57ed1/variability_estimation.zip differ diff --git a/docs/dev/_downloads/51d6cfa441dab374164568c0a25aafdf/plot_snr_radius_evolution.pdf b/docs/dev/_downloads/51d6cfa441dab374164568c0a25aafdf/plot_snr_radius_evolution.pdf index d14b8de0425..23b376d9185 100644 Binary files a/docs/dev/_downloads/51d6cfa441dab374164568c0a25aafdf/plot_snr_radius_evolution.pdf and b/docs/dev/_downloads/51d6cfa441dab374164568c0a25aafdf/plot_snr_radius_evolution.pdf differ diff --git a/docs/dev/_downloads/52e53cb3b1d1c503275623fde65790ea/survey_map.ipynb b/docs/dev/_downloads/52e53cb3b1d1c503275623fde65790ea/survey_map.ipynb index da7e7f2c5ef..43bde7b7c6e 100644 --- a/docs/dev/_downloads/52e53cb3b1d1c503275623fde65790ea/survey_map.ipynb +++ b/docs/dev/_downloads/52e53cb3b1d1c503275623fde65790ea/survey_map.ipynb @@ -35,7 +35,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/5375f8e9e54dd5a68d37e8a2fc4246b9/plot_spiral_arms.png b/docs/dev/_downloads/5375f8e9e54dd5a68d37e8a2fc4246b9/plot_spiral_arms.png index 1a68f1800c1..251ac358d13 100644 Binary files a/docs/dev/_downloads/5375f8e9e54dd5a68d37e8a2fc4246b9/plot_spiral_arms.png and b/docs/dev/_downloads/5375f8e9e54dd5a68d37e8a2fc4246b9/plot_spiral_arms.png differ diff --git a/docs/dev/_downloads/56ba903336cd27756c0da64de2f1f853/mask_maps.ipynb b/docs/dev/_downloads/56ba903336cd27756c0da64de2f1f853/mask_maps.ipynb index a744515f768..c09cef565ad 100644 --- a/docs/dev/_downloads/56ba903336cd27756c0da64de2f1f853/mask_maps.ipynb +++ b/docs/dev/_downloads/56ba903336cd27756c0da64de2f1f853/mask_maps.ipynb @@ -524,7 +524,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/5d70733460edff98657b0fd5d0eb69e4/modeling_2D.zip b/docs/dev/_downloads/5d70733460edff98657b0fd5d0eb69e4/modeling_2D.zip index b891f96fbb2..72134c16fd5 100644 Binary files a/docs/dev/_downloads/5d70733460edff98657b0fd5d0eb69e4/modeling_2D.zip and b/docs/dev/_downloads/5d70733460edff98657b0fd5d0eb69e4/modeling_2D.zip differ diff --git a/docs/dev/_downloads/5f320bc7e76a524223d801abe9ef46e6/maps.ipynb b/docs/dev/_downloads/5f320bc7e76a524223d801abe9ef46e6/maps.ipynb index 6bf4f489001..5c63934c1a3 100644 --- a/docs/dev/_downloads/5f320bc7e76a524223d801abe9ef46e6/maps.ipynb +++ b/docs/dev/_downloads/5f320bc7e76a524223d801abe9ef46e6/maps.ipynb @@ -1470,7 +1470,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/5f7885af4d03116bd8091cb6252eae48/analysis_3d.zip b/docs/dev/_downloads/5f7885af4d03116bd8091cb6252eae48/analysis_3d.zip index b97a8d195b7..bb135999268 100644 Binary files a/docs/dev/_downloads/5f7885af4d03116bd8091cb6252eae48/analysis_3d.zip and b/docs/dev/_downloads/5f7885af4d03116bd8091cb6252eae48/analysis_3d.zip differ diff --git a/docs/dev/_downloads/60399e3ce9aa0bfe3b7ca8f286fad1ce/plot_powerlaw_norm_spectral.zip b/docs/dev/_downloads/60399e3ce9aa0bfe3b7ca8f286fad1ce/plot_powerlaw_norm_spectral.zip index ad79a857c3e..42d60865888 100644 Binary files a/docs/dev/_downloads/60399e3ce9aa0bfe3b7ca8f286fad1ce/plot_powerlaw_norm_spectral.zip and b/docs/dev/_downloads/60399e3ce9aa0bfe3b7ca8f286fad1ce/plot_powerlaw_norm_spectral.zip differ diff --git a/docs/dev/_downloads/624f67a6339c97aafd7b74d77d3635a5/datasets.ipynb b/docs/dev/_downloads/624f67a6339c97aafd7b74d77d3635a5/datasets.ipynb index 457a09398c3..2a350256c32 100644 --- a/docs/dev/_downloads/624f67a6339c97aafd7b74d77d3635a5/datasets.ipynb +++ b/docs/dev/_downloads/624f67a6339c97aafd7b74d77d3635a5/datasets.ipynb @@ -845,7 +845,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/66ad9a060e067da15dee5cf2536ae998/spectral_analysis_rad_max.zip b/docs/dev/_downloads/66ad9a060e067da15dee5cf2536ae998/spectral_analysis_rad_max.zip index 17c897c95b4..35aa95a58b9 100644 Binary files a/docs/dev/_downloads/66ad9a060e067da15dee5cf2536ae998/spectral_analysis_rad_max.zip and b/docs/dev/_downloads/66ad9a060e067da15dee5cf2536ae998/spectral_analysis_rad_max.zip differ diff --git a/docs/dev/_downloads/67d2e7080c8b88e8cbe4ee86b4306a9f/event_sampling_nrg_depend_models.ipynb b/docs/dev/_downloads/67d2e7080c8b88e8cbe4ee86b4306a9f/event_sampling_nrg_depend_models.ipynb index 3baa260ad36..5879a6df448 100644 --- a/docs/dev/_downloads/67d2e7080c8b88e8cbe4ee86b4306a9f/event_sampling_nrg_depend_models.ipynb +++ b/docs/dev/_downloads/67d2e7080c8b88e8cbe4ee86b4306a9f/event_sampling_nrg_depend_models.ipynb @@ -305,7 +305,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/682e4483582d9fdb778dbd09a795d104/plot_compound.zip b/docs/dev/_downloads/682e4483582d9fdb778dbd09a795d104/plot_compound.zip index 8e8fa001902..7de0ac01c43 100644 Binary files a/docs/dev/_downloads/682e4483582d9fdb778dbd09a795d104/plot_compound.zip and b/docs/dev/_downloads/682e4483582d9fdb778dbd09a795d104/plot_compound.zip differ diff --git a/docs/dev/_downloads/68825ab9b133244e08ae983d8cad8b30/plot_template_phase_temporal.ipynb b/docs/dev/_downloads/68825ab9b133244e08ae983d8cad8b30/plot_template_phase_temporal.ipynb index f8fd603a91c..903a76129f0 100644 --- a/docs/dev/_downloads/68825ab9b133244e08ae983d8cad8b30/plot_template_phase_temporal.ipynb +++ b/docs/dev/_downloads/68825ab9b133244e08ae983d8cad8b30/plot_template_phase_temporal.ipynb @@ -53,7 +53,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/692bf70e2aa9caeb987bbb35050f71d2/astro_dark_matter.zip b/docs/dev/_downloads/692bf70e2aa9caeb987bbb35050f71d2/astro_dark_matter.zip index 0fe46eda7dd..371bd5472c3 100644 Binary files a/docs/dev/_downloads/692bf70e2aa9caeb987bbb35050f71d2/astro_dark_matter.zip and b/docs/dev/_downloads/692bf70e2aa9caeb987bbb35050f71d2/astro_dark_matter.zip differ diff --git a/docs/dev/_downloads/6937299d142b0f286cc35d9a0302e82a/plot_absorbed.ipynb b/docs/dev/_downloads/6937299d142b0f286cc35d9a0302e82a/plot_absorbed.ipynb index 38826d741a5..aca5b252f34 100644 --- a/docs/dev/_downloads/6937299d142b0f286cc35d9a0302e82a/plot_absorbed.ipynb +++ b/docs/dev/_downloads/6937299d142b0f286cc35d9a0302e82a/plot_absorbed.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/6cbb580c802d458206b6a0123d909650/energy_dependent_estimation.ipynb b/docs/dev/_downloads/6cbb580c802d458206b6a0123d909650/energy_dependent_estimation.ipynb index b67f0f99d1a..0978e0cce7f 100644 --- a/docs/dev/_downloads/6cbb580c802d458206b6a0123d909650/energy_dependent_estimation.ipynb +++ b/docs/dev/_downloads/6cbb580c802d458206b6a0123d909650/energy_dependent_estimation.ipynb @@ -204,7 +204,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/6e47fca124ba94afacd2e1f76cf61081/plot_template_phase_temporal.zip b/docs/dev/_downloads/6e47fca124ba94afacd2e1f76cf61081/plot_template_phase_temporal.zip index a07936e36d4..d6fea47609d 100644 Binary files a/docs/dev/_downloads/6e47fca124ba94afacd2e1f76cf61081/plot_template_phase_temporal.zip and b/docs/dev/_downloads/6e47fca124ba94afacd2e1f76cf61081/plot_template_phase_temporal.zip differ diff --git a/docs/dev/_downloads/7005cb7d15e1b931b441b7a6bac95441/modeling_2D.ipynb b/docs/dev/_downloads/7005cb7d15e1b931b441b7a6bac95441/modeling_2D.ipynb index 743fe2ab918..0d7297bdae2 100644 --- a/docs/dev/_downloads/7005cb7d15e1b931b441b7a6bac95441/modeling_2D.ipynb +++ b/docs/dev/_downloads/7005cb7d15e1b931b441b7a6bac95441/modeling_2D.ipynb @@ -204,7 +204,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/70db13717c83b8e636f99ad0018eeb90/plot_template.zip b/docs/dev/_downloads/70db13717c83b8e636f99ad0018eeb90/plot_template.zip index f1989f965ba..dc2bb00c165 100644 Binary files a/docs/dev/_downloads/70db13717c83b8e636f99ad0018eeb90/plot_template.zip and b/docs/dev/_downloads/70db13717c83b8e636f99ad0018eeb90/plot_template.zip differ diff --git a/docs/dev/_downloads/70f4f45e10d92d7ae2e6576d43cb98a7/variability_estimation.ipynb b/docs/dev/_downloads/70f4f45e10d92d7ae2e6576d43cb98a7/variability_estimation.ipynb index ea5aadf8706..d87ea0d7918 100644 --- a/docs/dev/_downloads/70f4f45e10d92d7ae2e6576d43cb98a7/variability_estimation.ipynb +++ b/docs/dev/_downloads/70f4f45e10d92d7ae2e6576d43cb98a7/variability_estimation.ipynb @@ -265,7 +265,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/71889302d3e711b17aa02988e7c91c6c/ebl.ipynb b/docs/dev/_downloads/71889302d3e711b17aa02988e7c91c6c/ebl.ipynb index 327de028e0f..9b012f74ff2 100644 --- a/docs/dev/_downloads/71889302d3e711b17aa02988e7c91c6c/ebl.ipynb +++ b/docs/dev/_downloads/71889302d3e711b17aa02988e7c91c6c/ebl.ipynb @@ -297,7 +297,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/73e595818811c6987149d60742eef584/make_reflected_regions.pdf b/docs/dev/_downloads/73e595818811c6987149d60742eef584/make_reflected_regions.pdf index a421fefdfb6..170c8397cff 100644 Binary files a/docs/dev/_downloads/73e595818811c6987149d60742eef584/make_reflected_regions.pdf and b/docs/dev/_downloads/73e595818811c6987149d60742eef584/make_reflected_regions.pdf differ diff --git a/docs/dev/_downloads/73e7de11148f573eeb51f279652f7b9b/make_rectangular_reflected_background.pdf b/docs/dev/_downloads/73e7de11148f573eeb51f279652f7b9b/make_rectangular_reflected_background.pdf index e59237be056..7cf856c041b 100644 Binary files a/docs/dev/_downloads/73e7de11148f573eeb51f279652f7b9b/make_rectangular_reflected_background.pdf and b/docs/dev/_downloads/73e7de11148f573eeb51f279652f7b9b/make_rectangular_reflected_background.pdf differ diff --git a/docs/dev/_downloads/74468ce448910c5a873be0e51cee13fb/plot_pwn_evolution.pdf b/docs/dev/_downloads/74468ce448910c5a873be0e51cee13fb/plot_pwn_evolution.pdf index 42bdae157c0..43df1b7c51b 100644 Binary files a/docs/dev/_downloads/74468ce448910c5a873be0e51cee13fb/plot_pwn_evolution.pdf and b/docs/dev/_downloads/74468ce448910c5a873be0e51cee13fb/plot_pwn_evolution.pdf differ diff --git a/docs/dev/_downloads/75d2bb5b3b165788e039bfbe735bfd8e/plot_gauss.ipynb b/docs/dev/_downloads/75d2bb5b3b165788e039bfbe735bfd8e/plot_gauss.ipynb index 77eb69eb65a..fe6f9bb7a82 100644 --- a/docs/dev/_downloads/75d2bb5b3b165788e039bfbe735bfd8e/plot_gauss.ipynb +++ b/docs/dev/_downloads/75d2bb5b3b165788e039bfbe735bfd8e/plot_gauss.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/760eb275a0d8a9d11ea857eb956132f2/plot_naima.zip b/docs/dev/_downloads/760eb275a0d8a9d11ea857eb956132f2/plot_naima.zip index 495449d7bbb..17eb951a1e4 100644 Binary files a/docs/dev/_downloads/760eb275a0d8a9d11ea857eb956132f2/plot_naima.zip and b/docs/dev/_downloads/760eb275a0d8a9d11ea857eb956132f2/plot_naima.zip differ diff --git a/docs/dev/_downloads/76153da86ed385aad547cab4e2efcf6f/plot_broken_powerlaw.ipynb b/docs/dev/_downloads/76153da86ed385aad547cab4e2efcf6f/plot_broken_powerlaw.ipynb index 618229b3d6d..b0c33fa725e 100644 --- a/docs/dev/_downloads/76153da86ed385aad547cab4e2efcf6f/plot_broken_powerlaw.ipynb +++ b/docs/dev/_downloads/76153da86ed385aad547cab4e2efcf6f/plot_broken_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/7757318506e3a6721d12df18db780f37/plot_sine_temporal.zip b/docs/dev/_downloads/7757318506e3a6721d12df18db780f37/plot_sine_temporal.zip index 8dbc123e27c..74f9532bd46 100644 Binary files a/docs/dev/_downloads/7757318506e3a6721d12df18db780f37/plot_sine_temporal.zip and b/docs/dev/_downloads/7757318506e3a6721d12df18db780f37/plot_sine_temporal.zip differ diff --git a/docs/dev/_downloads/785eb661f13057cb2af0601ee98d211c/plot_shell.ipynb b/docs/dev/_downloads/785eb661f13057cb2af0601ee98d211c/plot_shell.ipynb index eef2686be52..0cc4f3917c3 100644 --- a/docs/dev/_downloads/785eb661f13057cb2af0601ee98d211c/plot_shell.ipynb +++ b/docs/dev/_downloads/785eb661f13057cb2af0601ee98d211c/plot_shell.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/793e757f14a6d327265d02a9a7392cb3/plot_generalized_gaussian_temporal.ipynb b/docs/dev/_downloads/793e757f14a6d327265d02a9a7392cb3/plot_generalized_gaussian_temporal.ipynb index 1b80f0fe72d..9eb5a68e4a2 100644 --- a/docs/dev/_downloads/793e757f14a6d327265d02a9a7392cb3/plot_generalized_gaussian_temporal.ipynb +++ b/docs/dev/_downloads/793e757f14a6d327265d02a9a7392cb3/plot_generalized_gaussian_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/7e94f8b2b0ffa506c80c01c07e1c9579/analysis_3d.ipynb b/docs/dev/_downloads/7e94f8b2b0ffa506c80c01c07e1c9579/analysis_3d.ipynb index 8b542518759..97381a37031 100644 --- a/docs/dev/_downloads/7e94f8b2b0ffa506c80c01c07e1c9579/analysis_3d.ipynb +++ b/docs/dev/_downloads/7e94f8b2b0ffa506c80c01c07e1c9579/analysis_3d.ipynb @@ -563,7 +563,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/7f0f5ef8ba9bdfd9da1248f73ad010fe/overview.zip b/docs/dev/_downloads/7f0f5ef8ba9bdfd9da1248f73ad010fe/overview.zip index e2d6c21c378..202950a8467 100644 Binary files a/docs/dev/_downloads/7f0f5ef8ba9bdfd9da1248f73ad010fe/overview.zip and b/docs/dev/_downloads/7f0f5ef8ba9bdfd9da1248f73ad010fe/overview.zip differ diff --git a/docs/dev/_downloads/800707065c222d9fe3c88a38845901ae/regionmap-2.pdf b/docs/dev/_downloads/800707065c222d9fe3c88a38845901ae/regionmap-2.pdf index 3aeb4ee9c1d..fdf0f78e629 100644 Binary files a/docs/dev/_downloads/800707065c222d9fe3c88a38845901ae/regionmap-2.pdf and b/docs/dev/_downloads/800707065c222d9fe3c88a38845901ae/regionmap-2.pdf differ diff --git a/docs/dev/_downloads/81a654d573ff72781bb07018dd132f7b/makers.ipynb b/docs/dev/_downloads/81a654d573ff72781bb07018dd132f7b/makers.ipynb index ef777a17715..82c975fb883 100644 --- a/docs/dev/_downloads/81a654d573ff72781bb07018dd132f7b/makers.ipynb +++ b/docs/dev/_downloads/81a654d573ff72781bb07018dd132f7b/makers.ipynb @@ -269,7 +269,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/826bd3a3d93fed16f5346eb8262e0d9a/plot_smooth_broken_powerlaw.ipynb b/docs/dev/_downloads/826bd3a3d93fed16f5346eb8262e0d9a/plot_smooth_broken_powerlaw.ipynb index d32e95f1fb5..ed6f2c8fbcf 100644 --- a/docs/dev/_downloads/826bd3a3d93fed16f5346eb8262e0d9a/plot_smooth_broken_powerlaw.ipynb +++ b/docs/dev/_downloads/826bd3a3d93fed16f5346eb8262e0d9a/plot_smooth_broken_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/82a17c692c56b9472c842596eac69717/ring_background.ipynb b/docs/dev/_downloads/82a17c692c56b9472c842596eac69717/ring_background.ipynb index 2877ad67937..790858ea857 100644 --- a/docs/dev/_downloads/82a17c692c56b9472c842596eac69717/ring_background.ipynb +++ b/docs/dev/_downloads/82a17c692c56b9472c842596eac69717/ring_background.ipynb @@ -240,7 +240,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/83da3445f53cc2258537f3ea6b2b0970/regionmap-5.pdf b/docs/dev/_downloads/83da3445f53cc2258537f3ea6b2b0970/regionmap-5.pdf index 9be86ce9a82..111c97ccee4 100644 Binary files a/docs/dev/_downloads/83da3445f53cc2258537f3ea6b2b0970/regionmap-5.pdf and b/docs/dev/_downloads/83da3445f53cc2258537f3ea6b2b0970/regionmap-5.pdf differ diff --git a/docs/dev/_downloads/842e0322ccac0931d67ff31177561969/sed_fitting.ipynb b/docs/dev/_downloads/842e0322ccac0931d67ff31177561969/sed_fitting.ipynb index ec0c5ed199b..b4601d3da6c 100644 --- a/docs/dev/_downloads/842e0322ccac0931d67ff31177561969/sed_fitting.ipynb +++ b/docs/dev/_downloads/842e0322ccac0931d67ff31177561969/sed_fitting.ipynb @@ -236,7 +236,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/84424d59ec624940199b69d87a792d50/index-1.pdf b/docs/dev/_downloads/84424d59ec624940199b69d87a792d50/index-1.pdf index d494a0724d9..c421c47337e 100644 Binary files a/docs/dev/_downloads/84424d59ec624940199b69d87a792d50/index-1.pdf and b/docs/dev/_downloads/84424d59ec624940199b69d87a792d50/index-1.pdf differ diff --git a/docs/dev/_downloads/85ba5c20e2a7f5c813892c7156bd26f8/analysis_mwl.ipynb b/docs/dev/_downloads/85ba5c20e2a7f5c813892c7156bd26f8/analysis_mwl.ipynb index e564f409d76..8853ec262fa 100644 --- a/docs/dev/_downloads/85ba5c20e2a7f5c813892c7156bd26f8/analysis_mwl.ipynb +++ b/docs/dev/_downloads/85ba5c20e2a7f5c813892c7156bd26f8/analysis_mwl.ipynb @@ -251,7 +251,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/8755395ab1ca43f7e8444bdd5355f7fb/cta_sensitivity.zip b/docs/dev/_downloads/8755395ab1ca43f7e8444bdd5355f7fb/cta_sensitivity.zip index c818c9d9e3e..35eff6264ca 100644 Binary files a/docs/dev/_downloads/8755395ab1ca43f7e8444bdd5355f7fb/cta_sensitivity.zip and b/docs/dev/_downloads/8755395ab1ca43f7e8444bdd5355f7fb/cta_sensitivity.zip differ diff --git a/docs/dev/_downloads/879fb38cf085340a15de2c5c775d1fa2/pulsar_analysis.zip b/docs/dev/_downloads/879fb38cf085340a15de2c5c775d1fa2/pulsar_analysis.zip index 4f4354c3476..e5fba89e153 100644 Binary files a/docs/dev/_downloads/879fb38cf085340a15de2c5c775d1fa2/pulsar_analysis.zip and b/docs/dev/_downloads/879fb38cf085340a15de2c5c775d1fa2/pulsar_analysis.zip differ diff --git a/docs/dev/_downloads/8a9ae62d4481bef2294fabff4afc70cf/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf b/docs/dev/_downloads/8a9ae62d4481bef2294fabff4afc70cf/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf index ce8aa335119..e850a9f4c73 100644 Binary files a/docs/dev/_downloads/8a9ae62d4481bef2294fabff4afc70cf/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf and b/docs/dev/_downloads/8a9ae62d4481bef2294fabff4afc70cf/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf differ diff --git a/docs/dev/_downloads/8c78d4f64cfa2c2b3ea7a405cc42f44c/plot_disk.ipynb b/docs/dev/_downloads/8c78d4f64cfa2c2b3ea7a405cc42f44c/plot_disk.ipynb index eb0ee7258e5..fe4bbba4b8d 100644 --- a/docs/dev/_downloads/8c78d4f64cfa2c2b3ea7a405cc42f44c/plot_disk.ipynb +++ b/docs/dev/_downloads/8c78d4f64cfa2c2b3ea7a405cc42f44c/plot_disk.ipynb @@ -78,7 +78,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/8cb9e704c06d880971ef19599de17fb6/plot_powerlaw_temporal.ipynb b/docs/dev/_downloads/8cb9e704c06d880971ef19599de17fb6/plot_powerlaw_temporal.ipynb index 6e6726b43df..48089642640 100644 --- a/docs/dev/_downloads/8cb9e704c06d880971ef19599de17fb6/plot_powerlaw_temporal.ipynb +++ b/docs/dev/_downloads/8cb9e704c06d880971ef19599de17fb6/plot_powerlaw_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/8d795d04d6c1419b268a0a4676041f36/model-gallery_python.zip b/docs/dev/_downloads/8d795d04d6c1419b268a0a4676041f36/model-gallery_python.zip index 3fc6757a5ef..0395708b3c8 100644 Binary files a/docs/dev/_downloads/8d795d04d6c1419b268a0a4676041f36/model-gallery_python.zip and b/docs/dev/_downloads/8d795d04d6c1419b268a0a4676041f36/model-gallery_python.zip differ diff --git a/docs/dev/_downloads/8f7cba6e147ac68586bc14a007ba4cc5/plot_spiral_arms.pdf b/docs/dev/_downloads/8f7cba6e147ac68586bc14a007ba4cc5/plot_spiral_arms.pdf index 3e80e94daed..ccc7926c676 100644 Binary files a/docs/dev/_downloads/8f7cba6e147ac68586bc14a007ba4cc5/plot_spiral_arms.pdf and b/docs/dev/_downloads/8f7cba6e147ac68586bc14a007ba4cc5/plot_spiral_arms.pdf differ diff --git a/docs/dev/_downloads/90e01209a5243d5c972882c04584c8e3/plot_aeff_param.pdf b/docs/dev/_downloads/90e01209a5243d5c972882c04584c8e3/plot_aeff_param.pdf index 913d35d4f70..8172bd2765f 100644 Binary files a/docs/dev/_downloads/90e01209a5243d5c972882c04584c8e3/plot_aeff_param.pdf and b/docs/dev/_downloads/90e01209a5243d5c972882c04584c8e3/plot_aeff_param.pdf differ diff --git a/docs/dev/_downloads/920df746e67257657f5d44e868b95ff9/fitting.zip b/docs/dev/_downloads/920df746e67257657f5d44e868b95ff9/fitting.zip index d825a9bbf33..871894285d5 100644 Binary files a/docs/dev/_downloads/920df746e67257657f5d44e868b95ff9/fitting.zip and b/docs/dev/_downloads/920df746e67257657f5d44e868b95ff9/fitting.zip differ diff --git a/docs/dev/_downloads/922821654c8ba9bfa3b550cbf4e44e37/estimators.zip b/docs/dev/_downloads/922821654c8ba9bfa3b550cbf4e44e37/estimators.zip index 9c09069d1ac..33067c6883a 100644 Binary files a/docs/dev/_downloads/922821654c8ba9bfa3b550cbf4e44e37/estimators.zip and b/docs/dev/_downloads/922821654c8ba9bfa3b550cbf4e44e37/estimators.zip differ diff --git a/docs/dev/_downloads/947d48cd2a213f701fd804045a8e07ba/plot_template_temporal.zip b/docs/dev/_downloads/947d48cd2a213f701fd804045a8e07ba/plot_template_temporal.zip index ff36694d893..153df83d680 100644 Binary files a/docs/dev/_downloads/947d48cd2a213f701fd804045a8e07ba/plot_template_temporal.zip and b/docs/dev/_downloads/947d48cd2a213f701fd804045a8e07ba/plot_template_temporal.zip differ diff --git a/docs/dev/_downloads/97689216e51c6b88714828e3017abcd6/plot_expdecay_temporal.zip b/docs/dev/_downloads/97689216e51c6b88714828e3017abcd6/plot_expdecay_temporal.zip index 24efbed40bd..1a3c28e472e 100644 Binary files a/docs/dev/_downloads/97689216e51c6b88714828e3017abcd6/plot_expdecay_temporal.zip and b/docs/dev/_downloads/97689216e51c6b88714828e3017abcd6/plot_expdecay_temporal.zip differ diff --git a/docs/dev/_downloads/9784111b1a9a5c8f07b727039a6e8b82/plot_radial_distributions.pdf b/docs/dev/_downloads/9784111b1a9a5c8f07b727039a6e8b82/plot_radial_distributions.pdf index b04c90c1669..71932e6a42d 100644 Binary files a/docs/dev/_downloads/9784111b1a9a5c8f07b727039a6e8b82/plot_radial_distributions.pdf and b/docs/dev/_downloads/9784111b1a9a5c8f07b727039a6e8b82/plot_radial_distributions.pdf differ diff --git a/docs/dev/_downloads/9881fc418a8ff65abb21b42cdd40a75d/spectral_analysis_hli.ipynb b/docs/dev/_downloads/9881fc418a8ff65abb21b42cdd40a75d/spectral_analysis_hli.ipynb index f52325772c6..aef90f143e6 100644 --- a/docs/dev/_downloads/9881fc418a8ff65abb21b42cdd40a75d/spectral_analysis_hli.ipynb +++ b/docs/dev/_downloads/9881fc418a8ff65abb21b42cdd40a75d/spectral_analysis_hli.ipynb @@ -562,7 +562,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/9a86f782b420f47c383e0ccef22286f8/fermi_lat.ipynb b/docs/dev/_downloads/9a86f782b420f47c383e0ccef22286f8/fermi_lat.ipynb index 04f67495d4f..cd5c8904b16 100644 --- a/docs/dev/_downloads/9a86f782b420f47c383e0ccef22286f8/fermi_lat.ipynb +++ b/docs/dev/_downloads/9a86f782b420f47c383e0ccef22286f8/fermi_lat.ipynb @@ -445,7 +445,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/9a8e0db5863b1cd650d0b7bcb19d83a0/plot_linear_temporal.ipynb b/docs/dev/_downloads/9a8e0db5863b1cd650d0b7bcb19d83a0/plot_linear_temporal.ipynb index 9ea5769d49d..7f3552ed4e0 100644 --- a/docs/dev/_downloads/9a8e0db5863b1cd650d0b7bcb19d83a0/plot_linear_temporal.ipynb +++ b/docs/dev/_downloads/9a8e0db5863b1cd650d0b7bcb19d83a0/plot_linear_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/9b87dc4ad92a01355cc5cdce7c2881d3/ring_background.zip b/docs/dev/_downloads/9b87dc4ad92a01355cc5cdce7c2881d3/ring_background.zip index 515deed7052..8d18ddadbcb 100644 Binary files a/docs/dev/_downloads/9b87dc4ad92a01355cc5cdce7c2881d3/ring_background.zip and b/docs/dev/_downloads/9b87dc4ad92a01355cc5cdce7c2881d3/ring_background.zip differ diff --git a/docs/dev/_downloads/a066a347cd1e493fafd963d8711a7f52/priors.ipynb b/docs/dev/_downloads/a066a347cd1e493fafd963d8711a7f52/priors.ipynb index 7d23401cc11..8030a16fe62 100644 --- a/docs/dev/_downloads/a066a347cd1e493fafd963d8711a7f52/priors.ipynb +++ b/docs/dev/_downloads/a066a347cd1e493fafd963d8711a7f52/priors.ipynb @@ -301,7 +301,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/a28867a6c5c2c6d9e3f31c1c79412c84/plot_gen_gauss.zip b/docs/dev/_downloads/a28867a6c5c2c6d9e3f31c1c79412c84/plot_gen_gauss.zip index fe12655e8b8..9efcb32e214 100644 Binary files a/docs/dev/_downloads/a28867a6c5c2c6d9e3f31c1c79412c84/plot_gen_gauss.zip and b/docs/dev/_downloads/a28867a6c5c2c6d9e3f31c1c79412c84/plot_gen_gauss.zip differ diff --git a/docs/dev/_downloads/a47947ee6b2d772296fbe1dfefc5db1a/light_curve_flare.ipynb b/docs/dev/_downloads/a47947ee6b2d772296fbe1dfefc5db1a/light_curve_flare.ipynb index a51269d3a2c..1de7c64be41 100644 --- a/docs/dev/_downloads/a47947ee6b2d772296fbe1dfefc5db1a/light_curve_flare.ipynb +++ b/docs/dev/_downloads/a47947ee6b2d772296fbe1dfefc5db1a/light_curve_flare.ipynb @@ -319,7 +319,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/a5659940aa3f8f568547d47752a43172/tutorials_jupyter.zip b/docs/dev/_downloads/a5659940aa3f8f568547d47752a43172/tutorials_jupyter.zip index 49ecf39f025..ac582d3d45c 100644 Binary files a/docs/dev/_downloads/a5659940aa3f8f568547d47752a43172/tutorials_jupyter.zip and b/docs/dev/_downloads/a5659940aa3f8f568547d47752a43172/tutorials_jupyter.zip differ diff --git a/docs/dev/_downloads/a5b2ee0329e727a4750cc6807854a799/plot_snr_brightness_evolution.pdf b/docs/dev/_downloads/a5b2ee0329e727a4750cc6807854a799/plot_snr_brightness_evolution.pdf index 7d0a1440233..0ef77986680 100644 Binary files a/docs/dev/_downloads/a5b2ee0329e727a4750cc6807854a799/plot_snr_brightness_evolution.pdf and b/docs/dev/_downloads/a5b2ee0329e727a4750cc6807854a799/plot_snr_brightness_evolution.pdf differ diff --git a/docs/dev/_downloads/a60ac3367f6b8b4daf62f7767737c935/regionmap-3.pdf b/docs/dev/_downloads/a60ac3367f6b8b4daf62f7767737c935/regionmap-3.pdf index 3c703ab0452..55305e1c646 100644 Binary files a/docs/dev/_downloads/a60ac3367f6b8b4daf62f7767737c935/regionmap-3.pdf and b/docs/dev/_downloads/a60ac3367f6b8b4daf62f7767737c935/regionmap-3.pdf differ diff --git a/docs/dev/_downloads/a647e703f1c14b3b2be137109a402268/plot_wstat_significance.pdf b/docs/dev/_downloads/a647e703f1c14b3b2be137109a402268/plot_wstat_significance.pdf index a44c4fe6ec3..b322944cd6e 100644 Binary files a/docs/dev/_downloads/a647e703f1c14b3b2be137109a402268/plot_wstat_significance.pdf and b/docs/dev/_downloads/a647e703f1c14b3b2be137109a402268/plot_wstat_significance.pdf differ diff --git a/docs/dev/_downloads/a6ff1b10c982034bb913f63627b76412/plot_point.zip b/docs/dev/_downloads/a6ff1b10c982034bb913f63627b76412/plot_point.zip index 1bcb3700347..fb955d2a9f0 100644 Binary files a/docs/dev/_downloads/a6ff1b10c982034bb913f63627b76412/plot_point.zip and b/docs/dev/_downloads/a6ff1b10c982034bb913f63627b76412/plot_point.zip differ diff --git a/docs/dev/_downloads/a709c309775a5d408f560daefb7fce4a/plot_constant_spectral.ipynb b/docs/dev/_downloads/a709c309775a5d408f560daefb7fce4a/plot_constant_spectral.ipynb index b9b87cdcbe0..f752dea08e2 100644 --- a/docs/dev/_downloads/a709c309775a5d408f560daefb7fce4a/plot_constant_spectral.ipynb +++ b/docs/dev/_downloads/a709c309775a5d408f560daefb7fce4a/plot_constant_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/a8d3d4f5feeb61a133c2d557a3bdfd3c/plot_logparabola.ipynb b/docs/dev/_downloads/a8d3d4f5feeb61a133c2d557a3bdfd3c/plot_logparabola.ipynb index cf9c04940a5..d132ca3e399 100644 --- a/docs/dev/_downloads/a8d3d4f5feeb61a133c2d557a3bdfd3c/plot_logparabola.ipynb +++ b/docs/dev/_downloads/a8d3d4f5feeb61a133c2d557a3bdfd3c/plot_logparabola.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/a9d5014c13b41c72b29e8ab09728a51b/plot_logparabola_norm_spectral.zip b/docs/dev/_downloads/a9d5014c13b41c72b29e8ab09728a51b/plot_logparabola_norm_spectral.zip index fe5301a9676..d2a9d5e0138 100644 Binary files a/docs/dev/_downloads/a9d5014c13b41c72b29e8ab09728a51b/plot_logparabola_norm_spectral.zip and b/docs/dev/_downloads/a9d5014c13b41c72b29e8ab09728a51b/plot_logparabola_norm_spectral.zip differ diff --git a/docs/dev/_downloads/ac30ac3c375ddb5b0d1e27c90650e55b/spectral_analysis.ipynb b/docs/dev/_downloads/ac30ac3c375ddb5b0d1e27c90650e55b/spectral_analysis.ipynb index 6757aa54d3e..f0efffb3d27 100644 --- a/docs/dev/_downloads/ac30ac3c375ddb5b0d1e27c90650e55b/spectral_analysis.ipynb +++ b/docs/dev/_downloads/ac30ac3c375ddb5b0d1e27c90650e55b/spectral_analysis.ipynb @@ -531,7 +531,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/ac76b976c8eed3f5e3889db8bc14cf8e/makers.zip b/docs/dev/_downloads/ac76b976c8eed3f5e3889db8bc14cf8e/makers.zip index 1065a6cfc5a..fd3b9f387ba 100644 Binary files a/docs/dev/_downloads/ac76b976c8eed3f5e3889db8bc14cf8e/makers.zip and b/docs/dev/_downloads/ac76b976c8eed3f5e3889db8bc14cf8e/makers.zip differ diff --git a/docs/dev/_downloads/ad89d541901d6f48959e38416a90de29/catalog.ipynb b/docs/dev/_downloads/ad89d541901d6f48959e38416a90de29/catalog.ipynb index b3c3a66f13e..fe3d76f1595 100644 --- a/docs/dev/_downloads/ad89d541901d6f48959e38416a90de29/catalog.ipynb +++ b/docs/dev/_downloads/ad89d541901d6f48959e38416a90de29/catalog.ipynb @@ -658,7 +658,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/b3336d8a1b4e8487945a83d57e35ce6b/plot_exp_cutoff_powerlaw_3fgl.zip b/docs/dev/_downloads/b3336d8a1b4e8487945a83d57e35ce6b/plot_exp_cutoff_powerlaw_3fgl.zip index 85b6eacaaa7..ae1521685e6 100644 Binary files a/docs/dev/_downloads/b3336d8a1b4e8487945a83d57e35ce6b/plot_exp_cutoff_powerlaw_3fgl.zip and b/docs/dev/_downloads/b3336d8a1b4e8487945a83d57e35ce6b/plot_exp_cutoff_powerlaw_3fgl.zip differ diff --git a/docs/dev/_downloads/b42766168956e7468acc1a90b28cbc7e/analysis_2.ipynb b/docs/dev/_downloads/b42766168956e7468acc1a90b28cbc7e/analysis_2.ipynb index b3fcd71796b..52c12c8967e 100644 --- a/docs/dev/_downloads/b42766168956e7468acc1a90b28cbc7e/analysis_2.ipynb +++ b/docs/dev/_downloads/b42766168956e7468acc1a90b28cbc7e/analysis_2.ipynb @@ -467,7 +467,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/b498d620c9c8072e088d03e5b1f86f65/overview.ipynb b/docs/dev/_downloads/b498d620c9c8072e088d03e5b1f86f65/overview.ipynb index 5de421dbdb9..a564128cd6e 100644 --- a/docs/dev/_downloads/b498d620c9c8072e088d03e5b1f86f65/overview.ipynb +++ b/docs/dev/_downloads/b498d620c9c8072e088d03e5b1f86f65/overview.ipynb @@ -621,7 +621,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/b890295401cbef411f10b6a3a6c88835/plot_powerlaw2.ipynb b/docs/dev/_downloads/b890295401cbef411f10b6a3a6c88835/plot_powerlaw2.ipynb index 8e666c76312..2daa0252332 100644 --- a/docs/dev/_downloads/b890295401cbef411f10b6a3a6c88835/plot_powerlaw2.ipynb +++ b/docs/dev/_downloads/b890295401cbef411f10b6a3a6c88835/plot_powerlaw2.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/ba616a9da5fd4ea6727cee926df2b69e/ebl.zip b/docs/dev/_downloads/ba616a9da5fd4ea6727cee926df2b69e/ebl.zip index f3fb71b03a8..b28b063ba05 100644 Binary files a/docs/dev/_downloads/ba616a9da5fd4ea6727cee926df2b69e/ebl.zip and b/docs/dev/_downloads/ba616a9da5fd4ea6727cee926df2b69e/ebl.zip differ diff --git a/docs/dev/_downloads/bc7f4b2c8d9d79b35ecf0b38127aca8c/energy_dependent_estimation.zip b/docs/dev/_downloads/bc7f4b2c8d9d79b35ecf0b38127aca8c/energy_dependent_estimation.zip index b00b8ced170..cf8559fd311 100644 Binary files a/docs/dev/_downloads/bc7f4b2c8d9d79b35ecf0b38127aca8c/energy_dependent_estimation.zip and b/docs/dev/_downloads/bc7f4b2c8d9d79b35ecf0b38127aca8c/energy_dependent_estimation.zip differ diff --git a/docs/dev/_downloads/bdf1d26655475b9a1e8ea1fe423b5b51/spectrum_simulation.ipynb b/docs/dev/_downloads/bdf1d26655475b9a1e8ea1fe423b5b51/spectrum_simulation.ipynb index 328b3d29f71..dfadb8af112 100644 --- a/docs/dev/_downloads/bdf1d26655475b9a1e8ea1fe423b5b51/spectrum_simulation.ipynb +++ b/docs/dev/_downloads/bdf1d26655475b9a1e8ea1fe423b5b51/spectrum_simulation.ipynb @@ -229,7 +229,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/be73f34ea8068af3a10d3559a704a86c/plot_piecewise_norm_spatial.zip b/docs/dev/_downloads/be73f34ea8068af3a10d3559a704a86c/plot_piecewise_norm_spatial.zip index a089deda593..670ddef7677 100644 Binary files a/docs/dev/_downloads/be73f34ea8068af3a10d3559a704a86c/plot_piecewise_norm_spatial.zip and b/docs/dev/_downloads/be73f34ea8068af3a10d3559a704a86c/plot_piecewise_norm_spatial.zip differ diff --git a/docs/dev/_downloads/bf0a16a362522ed59ca5852f58d8d53c/plot_super_exp_cutoff_powerlaw_4fgl_dr1.zip b/docs/dev/_downloads/bf0a16a362522ed59ca5852f58d8d53c/plot_super_exp_cutoff_powerlaw_4fgl_dr1.zip index df55fad0889..e0ebde941c2 100644 Binary files a/docs/dev/_downloads/bf0a16a362522ed59ca5852f58d8d53c/plot_super_exp_cutoff_powerlaw_4fgl_dr1.zip and b/docs/dev/_downloads/bf0a16a362522ed59ca5852f58d8d53c/plot_super_exp_cutoff_powerlaw_4fgl_dr1.zip differ diff --git a/docs/dev/_downloads/bfccf196c2d1f29042d7c4be0b7abe79/extended_source_spectral_analysis.ipynb b/docs/dev/_downloads/bfccf196c2d1f29042d7c4be0b7abe79/extended_source_spectral_analysis.ipynb index 9fb13005ce2..23db21b1b8e 100644 --- a/docs/dev/_downloads/bfccf196c2d1f29042d7c4be0b7abe79/extended_source_spectral_analysis.ipynb +++ b/docs/dev/_downloads/bfccf196c2d1f29042d7c4be0b7abe79/extended_source_spectral_analysis.ipynb @@ -312,7 +312,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/bfe08b8785a83d00542b58588ba983b9/cta_data_analysis.ipynb b/docs/dev/_downloads/bfe08b8785a83d00542b58588ba983b9/cta_data_analysis.ipynb index d09a50d0ab8..679d0be9cc9 100644 --- a/docs/dev/_downloads/bfe08b8785a83d00542b58588ba983b9/cta_data_analysis.ipynb +++ b/docs/dev/_downloads/bfe08b8785a83d00542b58588ba983b9/cta_data_analysis.ipynb @@ -391,7 +391,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/bfe6aa14bdebe4f65370b05f400755e5/plot_cash_significance.pdf b/docs/dev/_downloads/bfe6aa14bdebe4f65370b05f400755e5/plot_cash_significance.pdf index da82b35a2e2..2af12360e9d 100644 Binary files a/docs/dev/_downloads/bfe6aa14bdebe4f65370b05f400755e5/plot_cash_significance.pdf and b/docs/dev/_downloads/bfe6aa14bdebe4f65370b05f400755e5/plot_cash_significance.pdf differ diff --git a/docs/dev/_downloads/c1da6aedff551cba26aafdf962f74127/plot_shell.zip b/docs/dev/_downloads/c1da6aedff551cba26aafdf962f74127/plot_shell.zip index 0b858171b3b..a7805cbddf1 100644 Binary files a/docs/dev/_downloads/c1da6aedff551cba26aafdf962f74127/plot_shell.zip and b/docs/dev/_downloads/c1da6aedff551cba26aafdf962f74127/plot_shell.zip differ diff --git a/docs/dev/_downloads/c2775618fc6e3f5a7b28e723a9132470/plot_aeff.pdf b/docs/dev/_downloads/c2775618fc6e3f5a7b28e723a9132470/plot_aeff.pdf index 6ec74c76769..75667af4bdc 100644 Binary files a/docs/dev/_downloads/c2775618fc6e3f5a7b28e723a9132470/plot_aeff.pdf and b/docs/dev/_downloads/c2775618fc6e3f5a7b28e723a9132470/plot_aeff.pdf differ diff --git a/docs/dev/_downloads/c2b61900ea448b3f1bbacb5848c7ae6e/plot_pulsar_spindown.pdf b/docs/dev/_downloads/c2b61900ea448b3f1bbacb5848c7ae6e/plot_pulsar_spindown.pdf index d1d6c1f67d5..9e2efaa2890 100644 Binary files a/docs/dev/_downloads/c2b61900ea448b3f1bbacb5848c7ae6e/plot_pulsar_spindown.pdf and b/docs/dev/_downloads/c2b61900ea448b3f1bbacb5848c7ae6e/plot_pulsar_spindown.pdf differ diff --git a/docs/dev/_downloads/c3e24f907cf5ba5950daf05c578e630c/plot_powerlaw.zip b/docs/dev/_downloads/c3e24f907cf5ba5950daf05c578e630c/plot_powerlaw.zip index 7f304146b0a..9da1689e88f 100644 Binary files a/docs/dev/_downloads/c3e24f907cf5ba5950daf05c578e630c/plot_powerlaw.zip and b/docs/dev/_downloads/c3e24f907cf5ba5950daf05c578e630c/plot_powerlaw.zip differ diff --git a/docs/dev/_downloads/c6bad13b7bd034ce07497e4d5025d5d2/edisp-1.pdf b/docs/dev/_downloads/c6bad13b7bd034ce07497e4d5025d5d2/edisp-1.pdf index eb97081a957..1fd88a0faad 100644 Binary files a/docs/dev/_downloads/c6bad13b7bd034ce07497e4d5025d5d2/edisp-1.pdf and b/docs/dev/_downloads/c6bad13b7bd034ce07497e4d5025d5d2/edisp-1.pdf differ diff --git a/docs/dev/_downloads/c75bf15e89ec700b2d11203b78d59396/light_curve.ipynb b/docs/dev/_downloads/c75bf15e89ec700b2d11203b78d59396/light_curve.ipynb index 7d082680cd3..2b192d00326 100644 --- a/docs/dev/_downloads/c75bf15e89ec700b2d11203b78d59396/light_curve.ipynb +++ b/docs/dev/_downloads/c75bf15e89ec700b2d11203b78d59396/light_curve.ipynb @@ -405,7 +405,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/c8b2c52022beac75de2a3a8b628986e3/plot_absorbed.zip b/docs/dev/_downloads/c8b2c52022beac75de2a3a8b628986e3/plot_absorbed.zip index f744ae3dde9..300f7e8332c 100644 Binary files a/docs/dev/_downloads/c8b2c52022beac75de2a3a8b628986e3/plot_absorbed.zip and b/docs/dev/_downloads/c8b2c52022beac75de2a3a8b628986e3/plot_absorbed.zip differ diff --git a/docs/dev/_downloads/c8dacdfbdf94c97cce7a5ee9555295b5/plot_cash_errors.pdf b/docs/dev/_downloads/c8dacdfbdf94c97cce7a5ee9555295b5/plot_cash_errors.pdf index c39f3688512..c61d9f8d1d3 100644 Binary files a/docs/dev/_downloads/c8dacdfbdf94c97cce7a5ee9555295b5/plot_cash_errors.pdf and b/docs/dev/_downloads/c8dacdfbdf94c97cce7a5ee9555295b5/plot_cash_errors.pdf differ diff --git a/docs/dev/_downloads/c9b72066179d4ce20b4ee80c56701372/hawc.ipynb b/docs/dev/_downloads/c9b72066179d4ce20b4ee80c56701372/hawc.ipynb index eab450d64b9..5b95b468b82 100644 --- a/docs/dev/_downloads/c9b72066179d4ce20b4ee80c56701372/hawc.ipynb +++ b/docs/dev/_downloads/c9b72066179d4ce20b4ee80c56701372/hawc.ipynb @@ -484,7 +484,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/cbf21326239e0fa794d51e4515e770f5/spectral_analysis_hli.zip b/docs/dev/_downloads/cbf21326239e0fa794d51e4515e770f5/spectral_analysis_hli.zip index b6899b26b04..e4614bc369b 100644 Binary files a/docs/dev/_downloads/cbf21326239e0fa794d51e4515e770f5/spectral_analysis_hli.zip and b/docs/dev/_downloads/cbf21326239e0fa794d51e4515e770f5/spectral_analysis_hli.zip differ diff --git a/docs/dev/_downloads/ccdc06d762dc1d0b38c832e8f42c4b5b/fitting.ipynb b/docs/dev/_downloads/ccdc06d762dc1d0b38c832e8f42c4b5b/fitting.ipynb index 7d089e54965..22e50d21742 100644 --- a/docs/dev/_downloads/ccdc06d762dc1d0b38c832e8f42c4b5b/fitting.ipynb +++ b/docs/dev/_downloads/ccdc06d762dc1d0b38c832e8f42c4b5b/fitting.ipynb @@ -560,7 +560,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/cf5378936d7b99b7fe53593751b0acf0/plot_piecewise_norm_spatial.ipynb b/docs/dev/_downloads/cf5378936d7b99b7fe53593751b0acf0/plot_piecewise_norm_spatial.ipynb index 75bccbb8c21..244bc4130e4 100644 --- a/docs/dev/_downloads/cf5378936d7b99b7fe53593751b0acf0/plot_piecewise_norm_spatial.ipynb +++ b/docs/dev/_downloads/cf5378936d7b99b7fe53593751b0acf0/plot_piecewise_norm_spatial.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/cf5e0af3c49d2fc1814cad3f9672e8d3/time_resolved_spectroscopy.ipynb b/docs/dev/_downloads/cf5e0af3c49d2fc1814cad3f9672e8d3/time_resolved_spectroscopy.ipynb index 06499332415..c8d8a2e8514 100644 --- a/docs/dev/_downloads/cf5e0af3c49d2fc1814cad3f9672e8d3/time_resolved_spectroscopy.ipynb +++ b/docs/dev/_downloads/cf5e0af3c49d2fc1814cad3f9672e8d3/time_resolved_spectroscopy.ipynb @@ -276,7 +276,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/cf72688370a27db6e3e5a36401e825da/plot_powerlaw2.zip b/docs/dev/_downloads/cf72688370a27db6e3e5a36401e825da/plot_powerlaw2.zip index 07344eb6d50..ece30c48087 100644 Binary files a/docs/dev/_downloads/cf72688370a27db6e3e5a36401e825da/plot_powerlaw2.zip and b/docs/dev/_downloads/cf72688370a27db6e3e5a36401e825da/plot_powerlaw2.zip differ diff --git a/docs/dev/_downloads/d0da679c6d748017e74a51a72190ec8f/spectrum_simulation.zip b/docs/dev/_downloads/d0da679c6d748017e74a51a72190ec8f/spectrum_simulation.zip index ecc7eac6b70..6e530313728 100644 Binary files a/docs/dev/_downloads/d0da679c6d748017e74a51a72190ec8f/spectrum_simulation.zip and b/docs/dev/_downloads/d0da679c6d748017e74a51a72190ec8f/spectrum_simulation.zip differ diff --git a/docs/dev/_downloads/d13abf6a1bf7bbce4089786015c37bf1/cta_sensitivity.ipynb b/docs/dev/_downloads/d13abf6a1bf7bbce4089786015c37bf1/cta_sensitivity.ipynb index 41134404fde..a15bf1c7d73 100644 --- a/docs/dev/_downloads/d13abf6a1bf7bbce4089786015c37bf1/cta_sensitivity.ipynb +++ b/docs/dev/_downloads/d13abf6a1bf7bbce4089786015c37bf1/cta_sensitivity.ipynb @@ -294,7 +294,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/d3f2b47ffbc735c23e8ffc373b698607/light_curve.zip b/docs/dev/_downloads/d3f2b47ffbc735c23e8ffc373b698607/light_curve.zip index 529cbd6088c..a4d67629c69 100644 Binary files a/docs/dev/_downloads/d3f2b47ffbc735c23e8ffc373b698607/light_curve.zip and b/docs/dev/_downloads/d3f2b47ffbc735c23e8ffc373b698607/light_curve.zip differ diff --git a/docs/dev/_downloads/d46f4cc1fb54f9148150a46cabce732a/plot_spiral_arm_models.pdf b/docs/dev/_downloads/d46f4cc1fb54f9148150a46cabce732a/plot_spiral_arm_models.pdf index d720a496468..852d78e906d 100644 Binary files a/docs/dev/_downloads/d46f4cc1fb54f9148150a46cabce732a/plot_spiral_arm_models.pdf and b/docs/dev/_downloads/d46f4cc1fb54f9148150a46cabce732a/plot_spiral_arm_models.pdf differ diff --git a/docs/dev/_downloads/d47b4b3bccd5fc1699bbc9406a3c4035/plot_edisp.pdf b/docs/dev/_downloads/d47b4b3bccd5fc1699bbc9406a3c4035/plot_edisp.pdf index db0950cd49f..fd1aaf8b3e1 100644 Binary files a/docs/dev/_downloads/d47b4b3bccd5fc1699bbc9406a3c4035/plot_edisp.pdf and b/docs/dev/_downloads/d47b4b3bccd5fc1699bbc9406a3c4035/plot_edisp.pdf differ diff --git a/docs/dev/_downloads/d4edefdda53749c77f9b579405ae3bcf/plot_constant_temporal.ipynb b/docs/dev/_downloads/d4edefdda53749c77f9b579405ae3bcf/plot_constant_temporal.ipynb index 79ae12bacb7..81d03ca46d0 100644 --- a/docs/dev/_downloads/d4edefdda53749c77f9b579405ae3bcf/plot_constant_temporal.ipynb +++ b/docs/dev/_downloads/d4edefdda53749c77f9b579405ae3bcf/plot_constant_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/d53bfce5727a0e2b74d381cfa51a554d/plot_template_spectral.ipynb b/docs/dev/_downloads/d53bfce5727a0e2b74d381cfa51a554d/plot_template_spectral.ipynb index c9a0f4395cd..56aed545926 100644 --- a/docs/dev/_downloads/d53bfce5727a0e2b74d381cfa51a554d/plot_template_spectral.ipynb +++ b/docs/dev/_downloads/d53bfce5727a0e2b74d381cfa51a554d/plot_template_spectral.ipynb @@ -96,7 +96,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/d84a1f60bef1b2a4d70bc60ed632228b/plot_generalized_gaussian_temporal.zip b/docs/dev/_downloads/d84a1f60bef1b2a4d70bc60ed632228b/plot_generalized_gaussian_temporal.zip index 2ac8b006de1..0400863ace7 100644 Binary files a/docs/dev/_downloads/d84a1f60bef1b2a4d70bc60ed632228b/plot_generalized_gaussian_temporal.zip and b/docs/dev/_downloads/d84a1f60bef1b2a4d70bc60ed632228b/plot_generalized_gaussian_temporal.zip differ diff --git a/docs/dev/_downloads/db1b8939ed2daf51041ae443439e89d3/analysis_1.ipynb b/docs/dev/_downloads/db1b8939ed2daf51041ae443439e89d3/analysis_1.ipynb index 7250f63f6b4..68d56d40b58 100644 --- a/docs/dev/_downloads/db1b8939ed2daf51041ae443439e89d3/analysis_1.ipynb +++ b/docs/dev/_downloads/db1b8939ed2daf51041ae443439e89d3/analysis_1.ipynb @@ -509,7 +509,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/db49dbe8386e235e780f90506f4c13d4/plot_gaussian_temporal.zip b/docs/dev/_downloads/db49dbe8386e235e780f90506f4c13d4/plot_gaussian_temporal.zip index 364e25c7516..215f3f163c4 100644 Binary files a/docs/dev/_downloads/db49dbe8386e235e780f90506f4c13d4/plot_gaussian_temporal.zip and b/docs/dev/_downloads/db49dbe8386e235e780f90506f4c13d4/plot_gaussian_temporal.zip differ diff --git a/docs/dev/_downloads/dc84ab4fb2154102a7b86605311ec685/plot_linear_temporal.zip b/docs/dev/_downloads/dc84ab4fb2154102a7b86605311ec685/plot_linear_temporal.zip index 07b79099d4f..177f532a46c 100644 Binary files a/docs/dev/_downloads/dc84ab4fb2154102a7b86605311ec685/plot_linear_temporal.zip and b/docs/dev/_downloads/dc84ab4fb2154102a7b86605311ec685/plot_linear_temporal.zip differ diff --git a/docs/dev/_downloads/dc889dafa0f60a201223634e8d485a12/mask_maps.zip b/docs/dev/_downloads/dc889dafa0f60a201223634e8d485a12/mask_maps.zip index 9eb46471012..4dc2b66ff45 100644 Binary files a/docs/dev/_downloads/dc889dafa0f60a201223634e8d485a12/mask_maps.zip and b/docs/dev/_downloads/dc889dafa0f60a201223634e8d485a12/mask_maps.zip differ diff --git a/docs/dev/_downloads/ddf4900ca46e50deae170060d7a15571/flux_profiles.zip b/docs/dev/_downloads/ddf4900ca46e50deae170060d7a15571/flux_profiles.zip index d0e8e7d98f7..b0f1e49a6a6 100644 Binary files a/docs/dev/_downloads/ddf4900ca46e50deae170060d7a15571/flux_profiles.zip and b/docs/dev/_downloads/ddf4900ca46e50deae170060d7a15571/flux_profiles.zip differ diff --git a/docs/dev/_downloads/de4d05bbe85aff1e78752dcb07da6402/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb b/docs/dev/_downloads/de4d05bbe85aff1e78752dcb07da6402/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb index caed86de454..8a33c6f072f 100644 --- a/docs/dev/_downloads/de4d05bbe85aff1e78752dcb07da6402/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb +++ b/docs/dev/_downloads/de4d05bbe85aff1e78752dcb07da6402/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/df937214d98218a68007eccea50ab49d/plot_logparabola.zip b/docs/dev/_downloads/df937214d98218a68007eccea50ab49d/plot_logparabola.zip index fab3ec6b862..e7773fff4d8 100644 Binary files a/docs/dev/_downloads/df937214d98218a68007eccea50ab49d/plot_logparabola.zip and b/docs/dev/_downloads/df937214d98218a68007eccea50ab49d/plot_logparabola.zip differ diff --git a/docs/dev/_downloads/e0b7c55d5fd94e156cf5d0143d49440e/plot_exp_cutoff_powerlaw.ipynb b/docs/dev/_downloads/e0b7c55d5fd94e156cf5d0143d49440e/plot_exp_cutoff_powerlaw.ipynb index 715cb9e8cbb..99ea5fe5eb3 100644 --- a/docs/dev/_downloads/e0b7c55d5fd94e156cf5d0143d49440e/plot_exp_cutoff_powerlaw.ipynb +++ b/docs/dev/_downloads/e0b7c55d5fd94e156cf5d0143d49440e/plot_exp_cutoff_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/e1ae92381427a3e34d582ae0a377cb19/time_resolved_spectroscopy.zip b/docs/dev/_downloads/e1ae92381427a3e34d582ae0a377cb19/time_resolved_spectroscopy.zip index 3fea900c769..454185c7ae9 100644 Binary files a/docs/dev/_downloads/e1ae92381427a3e34d582ae0a377cb19/time_resolved_spectroscopy.zip and b/docs/dev/_downloads/e1ae92381427a3e34d582ae0a377cb19/time_resolved_spectroscopy.zip differ diff --git a/docs/dev/_downloads/e2a4ade170c5e85b14ae39a9784b12b1/cta.ipynb b/docs/dev/_downloads/e2a4ade170c5e85b14ae39a9784b12b1/cta.ipynb index 94063b6f917..674205bd676 100644 --- a/docs/dev/_downloads/e2a4ade170c5e85b14ae39a9784b12b1/cta.ipynb +++ b/docs/dev/_downloads/e2a4ade170c5e85b14ae39a9784b12b1/cta.ipynb @@ -384,7 +384,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/e47f4539c92e8784bd241676d3b7ba20/plot_constant.ipynb b/docs/dev/_downloads/e47f4539c92e8784bd241676d3b7ba20/plot_constant.ipynb index 4ab4f74fd1c..a2c7b84b920 100644 --- a/docs/dev/_downloads/e47f4539c92e8784bd241676d3b7ba20/plot_constant.ipynb +++ b/docs/dev/_downloads/e47f4539c92e8784bd241676d3b7ba20/plot_constant.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/e4ae628be6bb0732f7ed85da29b2a1e9/hess.ipynb b/docs/dev/_downloads/e4ae628be6bb0732f7ed85da29b2a1e9/hess.ipynb index 5dc42019caf..b90d4e7478e 100644 --- a/docs/dev/_downloads/e4ae628be6bb0732f7ed85da29b2a1e9/hess.ipynb +++ b/docs/dev/_downloads/e4ae628be6bb0732f7ed85da29b2a1e9/hess.ipynb @@ -236,7 +236,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/e62e3d07400cc367a5dd87acd8e51755/analysis_mwl.zip b/docs/dev/_downloads/e62e3d07400cc367a5dd87acd8e51755/analysis_mwl.zip index 2a1457e9e0e..2c77160b55f 100644 Binary files a/docs/dev/_downloads/e62e3d07400cc367a5dd87acd8e51755/analysis_mwl.zip and b/docs/dev/_downloads/e62e3d07400cc367a5dd87acd8e51755/analysis_mwl.zip differ diff --git a/docs/dev/_downloads/e70cbbbc7e5076450d85dba47e48c39d/cta_data_analysis.zip b/docs/dev/_downloads/e70cbbbc7e5076450d85dba47e48c39d/cta_data_analysis.zip index beebdd3afc2..446e5d3999d 100644 Binary files a/docs/dev/_downloads/e70cbbbc7e5076450d85dba47e48c39d/cta_data_analysis.zip and b/docs/dev/_downloads/e70cbbbc7e5076450d85dba47e48c39d/cta_data_analysis.zip differ diff --git a/docs/dev/_downloads/e884a68cd2b1aa1840f521f78fbe0c00/plot_powerlaw_norm_spectral.ipynb b/docs/dev/_downloads/e884a68cd2b1aa1840f521f78fbe0c00/plot_powerlaw_norm_spectral.ipynb index c64956c0dbe..7442750884c 100644 --- a/docs/dev/_downloads/e884a68cd2b1aa1840f521f78fbe0c00/plot_powerlaw_norm_spectral.ipynb +++ b/docs/dev/_downloads/e884a68cd2b1aa1840f521f78fbe0c00/plot_powerlaw_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/e8a68734048b7e0ceca7060951d52b8d/regionmap-4.pdf b/docs/dev/_downloads/e8a68734048b7e0ceca7060951d52b8d/regionmap-4.pdf index a22336ad105..36c34a6e5d1 100644 Binary files a/docs/dev/_downloads/e8a68734048b7e0ceca7060951d52b8d/regionmap-4.pdf and b/docs/dev/_downloads/e8a68734048b7e0ceca7060951d52b8d/regionmap-4.pdf differ diff --git a/docs/dev/_downloads/e91c6a55acd94e0e8b0019a37008ed49/plot_wstat_errors.pdf b/docs/dev/_downloads/e91c6a55acd94e0e8b0019a37008ed49/plot_wstat_errors.pdf index de78e34dc35..9d3fe6b4bf8 100644 Binary files a/docs/dev/_downloads/e91c6a55acd94e0e8b0019a37008ed49/plot_wstat_errors.pdf and b/docs/dev/_downloads/e91c6a55acd94e0e8b0019a37008ed49/plot_wstat_errors.pdf differ diff --git a/docs/dev/_downloads/e9a1b16d92240aed069574aa6cac746b/datasets.zip b/docs/dev/_downloads/e9a1b16d92240aed069574aa6cac746b/datasets.zip index cbe9d4f6a81..c3a07d4d4be 100644 Binary files a/docs/dev/_downloads/e9a1b16d92240aed069574aa6cac746b/datasets.zip and b/docs/dev/_downloads/e9a1b16d92240aed069574aa6cac746b/datasets.zip differ diff --git a/docs/dev/_downloads/ea5b2f05e9a567fd47f2974e4a873455/simulate_3d.ipynb b/docs/dev/_downloads/ea5b2f05e9a567fd47f2974e4a873455/simulate_3d.ipynb index 334245772a7..54aa2acbbc0 100644 --- a/docs/dev/_downloads/ea5b2f05e9a567fd47f2974e4a873455/simulate_3d.ipynb +++ b/docs/dev/_downloads/ea5b2f05e9a567fd47f2974e4a873455/simulate_3d.ipynb @@ -168,7 +168,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/eb19cb5408f087142ac49ad54845bd9f/plot_gaussian_temporal.ipynb b/docs/dev/_downloads/eb19cb5408f087142ac49ad54845bd9f/plot_gaussian_temporal.ipynb index a4b3ea4c1ba..580dd467db2 100644 --- a/docs/dev/_downloads/eb19cb5408f087142ac49ad54845bd9f/plot_gaussian_temporal.ipynb +++ b/docs/dev/_downloads/eb19cb5408f087142ac49ad54845bd9f/plot_gaussian_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/ebd45185ed3e93103504e3303364e3ef/plot_velocity_distributions.pdf b/docs/dev/_downloads/ebd45185ed3e93103504e3303364e3ef/plot_velocity_distributions.pdf index bed4e73cf11..f45992dc730 100644 Binary files a/docs/dev/_downloads/ebd45185ed3e93103504e3303364e3ef/plot_velocity_distributions.pdf and b/docs/dev/_downloads/ebd45185ed3e93103504e3303364e3ef/plot_velocity_distributions.pdf differ diff --git a/docs/dev/_downloads/ec6ec35ddc2c98b82ef77dc71701733a/pulsar_analysis.ipynb b/docs/dev/_downloads/ec6ec35ddc2c98b82ef77dc71701733a/pulsar_analysis.ipynb index 5301b900b99..daee1bbb5b1 100644 --- a/docs/dev/_downloads/ec6ec35ddc2c98b82ef77dc71701733a/pulsar_analysis.ipynb +++ b/docs/dev/_downloads/ec6ec35ddc2c98b82ef77dc71701733a/pulsar_analysis.ipynb @@ -373,7 +373,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/ed7bde2ff141344785aacd1fbd5ee6cf/plot_piecewise_norm_spectral.ipynb b/docs/dev/_downloads/ed7bde2ff141344785aacd1fbd5ee6cf/plot_piecewise_norm_spectral.ipynb index 9e78935c3f6..fcc760adc32 100644 --- a/docs/dev/_downloads/ed7bde2ff141344785aacd1fbd5ee6cf/plot_piecewise_norm_spectral.ipynb +++ b/docs/dev/_downloads/ed7bde2ff141344785aacd1fbd5ee6cf/plot_piecewise_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/f35633996f4b1e73bdc201360d64927f/observation_clustering.ipynb b/docs/dev/_downloads/f35633996f4b1e73bdc201360d64927f/observation_clustering.ipynb index f3d2e67c751..937403b6c08 100644 --- a/docs/dev/_downloads/f35633996f4b1e73bdc201360d64927f/observation_clustering.ipynb +++ b/docs/dev/_downloads/f35633996f4b1e73bdc201360d64927f/observation_clustering.ipynb @@ -211,7 +211,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/f48159f5f5e15c2ab4d4c84f71fb7688/plot_edisp_kernel_param.pdf b/docs/dev/_downloads/f48159f5f5e15c2ab4d4c84f71fb7688/plot_edisp_kernel_param.pdf index 3a2ef242f0f..456f954e8e5 100644 Binary files a/docs/dev/_downloads/f48159f5f5e15c2ab4d4c84f71fb7688/plot_edisp_kernel_param.pdf and b/docs/dev/_downloads/f48159f5f5e15c2ab4d4c84f71fb7688/plot_edisp_kernel_param.pdf differ diff --git a/docs/dev/_downloads/f49aa1b6b6eeb66ac89f34f562b16f06/observation_clustering.zip b/docs/dev/_downloads/f49aa1b6b6eeb66ac89f34f562b16f06/observation_clustering.zip index fa7d3d27f37..20ce634ef93 100644 Binary files a/docs/dev/_downloads/f49aa1b6b6eeb66ac89f34f562b16f06/observation_clustering.zip and b/docs/dev/_downloads/f49aa1b6b6eeb66ac89f34f562b16f06/observation_clustering.zip differ diff --git a/docs/dev/_downloads/f5a9665c6b3d034a7c33a9ef624a6185/plot_edisp_kernel.pdf b/docs/dev/_downloads/f5a9665c6b3d034a7c33a9ef624a6185/plot_edisp_kernel.pdf index c11feb1205a..6abca5b84b3 100644 Binary files a/docs/dev/_downloads/f5a9665c6b3d034a7c33a9ef624a6185/plot_edisp_kernel.pdf and b/docs/dev/_downloads/f5a9665c6b3d034a7c33a9ef624a6185/plot_edisp_kernel.pdf differ diff --git a/docs/dev/_downloads/f859fe731238e2fbe18ae0bd172f1eb8/fermi_lat.zip b/docs/dev/_downloads/f859fe731238e2fbe18ae0bd172f1eb8/fermi_lat.zip index 545f4329654..4c13ab54800 100644 Binary files a/docs/dev/_downloads/f859fe731238e2fbe18ae0bd172f1eb8/fermi_lat.zip and b/docs/dev/_downloads/f859fe731238e2fbe18ae0bd172f1eb8/fermi_lat.zip differ diff --git a/docs/dev/_downloads/f9c68c424e775be9a0733268e0a48a8e/plot_gauss_spectral.zip b/docs/dev/_downloads/f9c68c424e775be9a0733268e0a48a8e/plot_gauss_spectral.zip index a6a1c0f4673..b8f3a70e687 100644 Binary files a/docs/dev/_downloads/f9c68c424e775be9a0733268e0a48a8e/plot_gauss_spectral.zip and b/docs/dev/_downloads/f9c68c424e775be9a0733268e0a48a8e/plot_gauss_spectral.zip differ diff --git a/docs/dev/_downloads/fa410a677fef6fd07291dc8cbe82151e/model_management.ipynb b/docs/dev/_downloads/fa410a677fef6fd07291dc8cbe82151e/model_management.ipynb index 49b6cdeba11..19efc0ecd73 100644 --- a/docs/dev/_downloads/fa410a677fef6fd07291dc8cbe82151e/model_management.ipynb +++ b/docs/dev/_downloads/fa410a677fef6fd07291dc8cbe82151e/model_management.ipynb @@ -506,7 +506,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/_downloads/fc59bdccd0cfc40136461f8aea2aa6fe/colormap_example.pdf b/docs/dev/_downloads/fc59bdccd0cfc40136461f8aea2aa6fe/colormap_example.pdf index dfb33c1e1ad..2e566abe26e 100644 Binary files a/docs/dev/_downloads/fc59bdccd0cfc40136461f8aea2aa6fe/colormap_example.pdf and b/docs/dev/_downloads/fc59bdccd0cfc40136461f8aea2aa6fe/colormap_example.pdf differ diff --git a/docs/dev/_downloads/fcaf31b314fb2e9a9a35ee9755b2f688/plot_super_exp_cutoff_powerlaw_4fgl.zip b/docs/dev/_downloads/fcaf31b314fb2e9a9a35ee9755b2f688/plot_super_exp_cutoff_powerlaw_4fgl.zip index 7eaeee93469..0622fdbfb0a 100644 Binary files a/docs/dev/_downloads/fcaf31b314fb2e9a9a35ee9755b2f688/plot_super_exp_cutoff_powerlaw_4fgl.zip and b/docs/dev/_downloads/fcaf31b314fb2e9a9a35ee9755b2f688/plot_super_exp_cutoff_powerlaw_4fgl.zip differ diff --git a/docs/dev/_downloads/ff119672161c3dc35004bc7de3874a4d/analysis_2.zip b/docs/dev/_downloads/ff119672161c3dc35004bc7de3874a4d/analysis_2.zip index 11646929d85..5bf44719af8 100644 Binary files a/docs/dev/_downloads/ff119672161c3dc35004bc7de3874a4d/analysis_2.zip and b/docs/dev/_downloads/ff119672161c3dc35004bc7de3874a4d/analysis_2.zip differ diff --git a/docs/dev/_images/plot_spiral_arms.png b/docs/dev/_images/plot_spiral_arms.png index 1a68f1800c1..251ac358d13 100644 Binary files a/docs/dev/_images/plot_spiral_arms.png and b/docs/dev/_images/plot_spiral_arms.png differ diff --git a/docs/dev/_images/sphx_glr_light_curve_simulation_001.png b/docs/dev/_images/sphx_glr_light_curve_simulation_001.png index aaf08ac8f69..efd4c315327 100644 Binary files a/docs/dev/_images/sphx_glr_light_curve_simulation_001.png and b/docs/dev/_images/sphx_glr_light_curve_simulation_001.png differ diff --git a/docs/dev/_images/sphx_glr_light_curve_simulation_002.png b/docs/dev/_images/sphx_glr_light_curve_simulation_002.png index 8acffe18f68..a3def246c8e 100644 Binary files a/docs/dev/_images/sphx_glr_light_curve_simulation_002.png and b/docs/dev/_images/sphx_glr_light_curve_simulation_002.png differ diff --git a/docs/dev/_images/sphx_glr_light_curve_simulation_thumb.png b/docs/dev/_images/sphx_glr_light_curve_simulation_thumb.png index 67215e3dca1..4aca6f59137 100644 Binary files a/docs/dev/_images/sphx_glr_light_curve_simulation_thumb.png and b/docs/dev/_images/sphx_glr_light_curve_simulation_thumb.png differ diff --git a/docs/dev/_images/sphx_glr_plot_constant_temporal_001.png b/docs/dev/_images/sphx_glr_plot_constant_temporal_001.png index 06f7faacb6b..6032a2671c0 100644 Binary files a/docs/dev/_images/sphx_glr_plot_constant_temporal_001.png and b/docs/dev/_images/sphx_glr_plot_constant_temporal_001.png differ diff --git a/docs/dev/_images/sphx_glr_plot_constant_temporal_thumb.png b/docs/dev/_images/sphx_glr_plot_constant_temporal_thumb.png index 126548c3e95..5d948459cfc 100644 Binary files a/docs/dev/_images/sphx_glr_plot_constant_temporal_thumb.png and b/docs/dev/_images/sphx_glr_plot_constant_temporal_thumb.png differ diff --git a/docs/dev/_images/sphx_glr_plot_linear_temporal_001.png b/docs/dev/_images/sphx_glr_plot_linear_temporal_001.png index ec1f99fe32b..f026de22e19 100644 Binary files a/docs/dev/_images/sphx_glr_plot_linear_temporal_001.png and b/docs/dev/_images/sphx_glr_plot_linear_temporal_001.png differ diff --git a/docs/dev/_images/sphx_glr_plot_linear_temporal_thumb.png b/docs/dev/_images/sphx_glr_plot_linear_temporal_thumb.png index 65c85ab5485..03df085f486 100644 Binary files a/docs/dev/_images/sphx_glr_plot_linear_temporal_thumb.png and b/docs/dev/_images/sphx_glr_plot_linear_temporal_thumb.png differ diff --git a/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_001.png b/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_001.png index adc26d7e090..4709ce362de 100644 Binary files a/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_001.png and b/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_001.png differ diff --git a/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_thumb.png b/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_thumb.png index 831a5e99c8a..3523c2e431e 100644 Binary files a/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_thumb.png and b/docs/dev/_images/sphx_glr_plot_powerlaw_temporal_thumb.png differ diff --git a/docs/dev/_images/sphx_glr_plot_sine_temporal_001.png b/docs/dev/_images/sphx_glr_plot_sine_temporal_001.png index f84ba28ed46..21c3bc79c44 100644 Binary files a/docs/dev/_images/sphx_glr_plot_sine_temporal_001.png and b/docs/dev/_images/sphx_glr_plot_sine_temporal_001.png differ diff --git a/docs/dev/_images/sphx_glr_plot_sine_temporal_thumb.png b/docs/dev/_images/sphx_glr_plot_sine_temporal_thumb.png index 484fe90ac77..6c1f064c4c0 100644 Binary files a/docs/dev/_images/sphx_glr_plot_sine_temporal_thumb.png and b/docs/dev/_images/sphx_glr_plot_sine_temporal_thumb.png differ diff --git a/docs/dev/_images/sphx_glr_priors_002.png b/docs/dev/_images/sphx_glr_priors_002.png index b0d3e8bacaf..c3b0e2cf1d5 100644 Binary files a/docs/dev/_images/sphx_glr_priors_002.png and b/docs/dev/_images/sphx_glr_priors_002.png differ diff --git a/docs/dev/_images/sphx_glr_priors_004.png b/docs/dev/_images/sphx_glr_priors_004.png index f64a467e995..44867671bea 100644 Binary files a/docs/dev/_images/sphx_glr_priors_004.png and b/docs/dev/_images/sphx_glr_priors_004.png differ diff --git a/docs/dev/_images/sphx_glr_simulate_3d_001.png b/docs/dev/_images/sphx_glr_simulate_3d_001.png index 8d0841d52de..0a02a545912 100644 Binary files a/docs/dev/_images/sphx_glr_simulate_3d_001.png and b/docs/dev/_images/sphx_glr_simulate_3d_001.png differ diff --git a/docs/dev/_images/sphx_glr_simulate_3d_002.png b/docs/dev/_images/sphx_glr_simulate_3d_002.png index 4f42043ea54..51cb68c9414 100644 Binary files a/docs/dev/_images/sphx_glr_simulate_3d_002.png and b/docs/dev/_images/sphx_glr_simulate_3d_002.png differ diff --git a/docs/dev/_images/sphx_glr_simulate_3d_thumb.png b/docs/dev/_images/sphx_glr_simulate_3d_thumb.png index cd0fe1b683a..2c00d039035 100644 Binary files a/docs/dev/_images/sphx_glr_simulate_3d_thumb.png and b/docs/dev/_images/sphx_glr_simulate_3d_thumb.png differ diff --git a/docs/dev/_images/sphx_glr_spectral_analysis_rad_max_005.png b/docs/dev/_images/sphx_glr_spectral_analysis_rad_max_005.png index 23d09a8ffa4..0c55aa36fda 100644 Binary files a/docs/dev/_images/sphx_glr_spectral_analysis_rad_max_005.png and b/docs/dev/_images/sphx_glr_spectral_analysis_rad_max_005.png differ diff --git a/docs/dev/_modules/gammapy/analysis/config.html b/docs/dev/_modules/gammapy/analysis/config.html new file mode 100644 index 00000000000..575050f2b45 --- /dev/null +++ b/docs/dev/_modules/gammapy/analysis/config.html @@ -0,0 +1,879 @@ + + + + + + + + + + gammapy.analysis.config — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.analysis.config

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import json
+import logging
+from collections import defaultdict
+from collections.abc import Mapping
+from enum import Enum
+from pathlib import Path
+from typing import List, Optional
+import yaml
+from pydantic import BaseModel, ConfigDict
+from gammapy.makers import MapDatasetMaker
+from gammapy.utils.scripts import read_yaml, to_yaml, write_yaml
+from gammapy.utils.types import AngleType, EnergyType, PathType, TimeType
+
+__all__ = ["AnalysisConfig"]
+
+CONFIG_PATH = Path(__file__).resolve().parent / "config"
+DOCS_FILE = CONFIG_PATH / "docs.yaml"
+
+log = logging.getLogger(__name__)
+
+
+def deep_update(d, u):
+    """Recursively update a nested dictionary.
+
+    Taken from: https://stackoverflow.com/a/3233356/19802442
+    """
+    for k, v in u.items():
+        if isinstance(v, Mapping):
+            d[k] = deep_update(d.get(k, {}), v)
+        else:
+            d[k] = v
+    return d
+
+
+class ReductionTypeEnum(str, Enum):
+    spectrum = "1d"
+    cube = "3d"
+
+
+class FrameEnum(str, Enum):
+    icrs = "icrs"
+    galactic = "galactic"
+
+
+class RequiredHDUEnum(str, Enum):
+    events = "events"
+    gti = "gti"
+    aeff = "aeff"
+    bkg = "bkg"
+    edisp = "edisp"
+    psf = "psf"
+    rad_max = "rad_max"
+
+
+class BackgroundMethodEnum(str, Enum):
+    reflected = "reflected"
+    fov = "fov_background"
+    ring = "ring"
+
+
+class SafeMaskMethodsEnum(str, Enum):
+    aeff_default = "aeff-default"
+    aeff_max = "aeff-max"
+    edisp_bias = "edisp-bias"
+    offset_max = "offset-max"
+    bkg_peak = "bkg-peak"
+
+
+class MapSelectionEnum(str, Enum):
+    counts = "counts"
+    exposure = "exposure"
+    background = "background"
+    psf = "psf"
+    edisp = "edisp"
+
+
+class GammapyBaseConfig(BaseModel):
+    model_config = ConfigDict(
+        arbitrary_types_allowed=True,
+        validate_assignment=True,
+        extra="forbid",
+        validate_default=True,
+        use_enum_values=True,
+    )
+
+    def _repr_html_(self):
+        try:
+            return self.to_html()
+        except AttributeError:
+            return f"<pre>{html.escape(str(self))}</pre>"
+
+
+class SkyCoordConfig(GammapyBaseConfig):
+    frame: Optional[FrameEnum] = None
+    lon: Optional[AngleType] = None
+    lat: Optional[AngleType] = None
+
+
+class EnergyAxisConfig(GammapyBaseConfig):
+    min: Optional[EnergyType] = None
+    max: Optional[EnergyType] = None
+    nbins: Optional[int] = None
+
+
+class SpatialCircleConfig(GammapyBaseConfig):
+    frame: Optional[FrameEnum] = None
+    lon: Optional[AngleType] = None
+    lat: Optional[AngleType] = None
+    radius: Optional[AngleType] = None
+
+
+class EnergyRangeConfig(GammapyBaseConfig):
+    min: Optional[EnergyType] = None
+    max: Optional[EnergyType] = None
+
+
+class TimeRangeConfig(GammapyBaseConfig):
+    start: Optional[TimeType] = None
+    stop: Optional[TimeType] = None
+
+
+class FluxPointsConfig(GammapyBaseConfig):
+    energy: EnergyAxisConfig = EnergyAxisConfig()
+    source: str = "source"
+    parameters: dict = {"selection_optional": "all"}
+
+
+class LightCurveConfig(GammapyBaseConfig):
+    time_intervals: TimeRangeConfig = TimeRangeConfig()
+    energy_edges: EnergyAxisConfig = EnergyAxisConfig()
+    source: str = "source"
+    parameters: dict = {"selection_optional": "all"}
+
+
+class FitConfig(GammapyBaseConfig):
+    fit_range: EnergyRangeConfig = EnergyRangeConfig()
+
+
+class ExcessMapConfig(GammapyBaseConfig):
+    correlation_radius: AngleType = "0.1 deg"
+    parameters: dict = {}
+    energy_edges: EnergyAxisConfig = EnergyAxisConfig()
+
+
+class BackgroundConfig(GammapyBaseConfig):
+    method: Optional[BackgroundMethodEnum] = None
+    exclusion: Optional[PathType] = None
+    parameters: dict = {}
+
+
+class SafeMaskConfig(GammapyBaseConfig):
+    methods: List[SafeMaskMethodsEnum] = [SafeMaskMethodsEnum.aeff_default]
+    parameters: dict = {}
+
+
+class EnergyAxesConfig(GammapyBaseConfig):
+    energy: EnergyAxisConfig = EnergyAxisConfig(min="1 TeV", max="10 TeV", nbins=5)
+    energy_true: EnergyAxisConfig = EnergyAxisConfig(
+        min="0.5 TeV", max="20 TeV", nbins=16
+    )
+
+
+class SelectionConfig(GammapyBaseConfig):
+    offset_max: AngleType = "2.5 deg"
+
+
+class WidthConfig(GammapyBaseConfig):
+    width: AngleType = "5 deg"
+    height: AngleType = "5 deg"
+
+
+class WcsConfig(GammapyBaseConfig):
+    skydir: SkyCoordConfig = SkyCoordConfig()
+    binsize: AngleType = "0.02 deg"
+    width: WidthConfig = WidthConfig()
+    binsize_irf: AngleType = "0.2 deg"
+
+
+class GeomConfig(GammapyBaseConfig):
+    wcs: WcsConfig = WcsConfig()
+    selection: SelectionConfig = SelectionConfig()
+    axes: EnergyAxesConfig = EnergyAxesConfig()
+
+
+class DatasetsConfig(GammapyBaseConfig):
+    type: ReductionTypeEnum = ReductionTypeEnum.spectrum
+    stack: bool = True
+    geom: GeomConfig = GeomConfig()
+    map_selection: List[MapSelectionEnum] = MapDatasetMaker.available_selection
+    background: BackgroundConfig = BackgroundConfig()
+    safe_mask: SafeMaskConfig = SafeMaskConfig()
+    on_region: SpatialCircleConfig = SpatialCircleConfig()
+    containment_correction: bool = True
+
+
+class ObservationsConfig(GammapyBaseConfig):
+    datastore: PathType = Path("$GAMMAPY_DATA/hess-dl3-dr1/")
+    obs_ids: List[int] = []
+    obs_file: Optional[PathType] = None
+    obs_cone: SpatialCircleConfig = SpatialCircleConfig()
+    obs_time: TimeRangeConfig = TimeRangeConfig()
+    required_irf: List[RequiredHDUEnum] = ["aeff", "edisp", "psf", "bkg"]
+
+
+class LogConfig(GammapyBaseConfig):
+    level: str = "info"
+    filename: Optional[PathType] = None
+    filemode: Optional[str] = None
+    format: Optional[str] = None
+    datefmt: Optional[str] = None
+
+
+class GeneralConfig(GammapyBaseConfig):
+    log: LogConfig = LogConfig()
+    outdir: str = "."
+    n_jobs: int = 1
+    datasets_file: Optional[PathType] = None
+    models_file: Optional[PathType] = None
+
+
+
+[docs] +class AnalysisConfig(GammapyBaseConfig): + """Gammapy analysis configuration.""" + + general: GeneralConfig = GeneralConfig() + observations: ObservationsConfig = ObservationsConfig() + datasets: DatasetsConfig = DatasetsConfig() + fit: FitConfig = FitConfig() + flux_points: FluxPointsConfig = FluxPointsConfig() + excess_map: ExcessMapConfig = ExcessMapConfig() + light_curve: LightCurveConfig = LightCurveConfig() + + def __str__(self): + """Display settings in pretty YAML format.""" + info = self.__class__.__name__ + "\n\n\t" + data = self.to_yaml() + data = data.replace("\n", "\n\t") + info += data + return info.expandtabs(tabsize=4) + +
+[docs] + @classmethod + def read(cls, path): + """Read from YAML file. + + Parameters + ---------- + path : str + input filepath + """ + config = read_yaml(path) + config.pop("metadata", None) + return AnalysisConfig(**config)
+ + +
+[docs] + @classmethod + def from_yaml(cls, config_str): + """Create from YAML string. + + Parameters + ---------- + config_str : str + yaml str + + """ + settings = yaml.safe_load(config_str) + return AnalysisConfig(**settings)
+ + +
+[docs] + def write(self, path, overwrite=False): + """Write to YAML file. + + Parameters + ---------- + path : `pathlib.Path` or str + Path to write files. + overwrite : bool, optional + Overwrite existing file. Default is False. + """ + yaml_str = self.to_yaml() + write_yaml(yaml_str, path, overwrite=overwrite)
+ + +
+[docs] + def to_yaml(self): + """Convert to YAML string.""" + data = json.loads(self.model_dump_json()) + return to_yaml(data)
+ + +
+[docs] + def set_logging(self): + """Set logging config. + + Calls ``logging.basicConfig``, i.e. adjusts global logging state. + """ + self.general.log.level = self.general.log.level.upper() + logging.basicConfig(**self.general.log.model_dump()) + log.info("Setting logging config: {!r}".format(self.general.log.model_dump()))
+ + +
+[docs] + def update(self, config=None): + """Update config with provided settings. + + Parameters + ---------- + config : str or `AnalysisConfig` object, optional + Configuration settings provided in dict() syntax. Default is None. + """ + if isinstance(config, str): + other = AnalysisConfig.from_yaml(config) + elif isinstance(config, AnalysisConfig): + other = config + else: + raise TypeError(f"Invalid type: {config}") + + config_new = deep_update( + self.model_dump(exclude_defaults=True), + other.model_dump(exclude_defaults=True), + ) + return AnalysisConfig(**config_new)
+ + + @staticmethod + def _get_doc_sections(): + """Return dictionary with commented docs from docs file.""" + doc = defaultdict(str) + with open(DOCS_FILE) as f: + for line in filter(lambda line: not line.startswith("---"), f): + line = line.strip("\n") + if line.startswith("# Section: "): + keyword = line.replace("# Section: ", "") + doc[keyword] += line + "\n" + return doc
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/analysis/core.html b/docs/dev/_modules/gammapy/analysis/core.html new file mode 100644 index 00000000000..1d1f3b83eb2 --- /dev/null +++ b/docs/dev/_modules/gammapy/analysis/core.html @@ -0,0 +1,1180 @@ + + + + + + + + + + gammapy.analysis.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.analysis.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Session class driving the high level interface API."""
+import html
+import logging
+from astropy.coordinates import SkyCoord
+from astropy.table import Table
+from regions import CircleSkyRegion
+from gammapy.analysis.config import AnalysisConfig
+from gammapy.data import DataStore
+from gammapy.datasets import Datasets, FluxPointsDataset, MapDataset, SpectrumDataset
+from gammapy.estimators import (
+    ExcessMapEstimator,
+    FluxPointsEstimator,
+    LightCurveEstimator,
+)
+from gammapy.makers import (
+    DatasetsMaker,
+    FoVBackgroundMaker,
+    MapDatasetMaker,
+    ReflectedRegionsBackgroundMaker,
+    RingBackgroundMaker,
+    SafeMaskMaker,
+    SpectrumDatasetMaker,
+)
+from gammapy.maps import Map, MapAxis, RegionGeom, WcsGeom
+from gammapy.modeling import Fit
+from gammapy.modeling.models import DatasetModels, FoVBackgroundModel, Models
+from gammapy.utils.pbar import progress_bar
+from gammapy.utils.scripts import make_path
+
+__all__ = ["Analysis"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class Analysis: + """Config-driven high level analysis interface. + + It is initialized by default with a set of configuration parameters and values declared in + an internal high level interface model, though the user can also provide configuration + parameters passed as a nested dictionary at the moment of instantiation. In that case these + parameters will overwrite the default values of those present in the configuration file. + + Parameters + ---------- + config : dict or `~gammapy.analysis.AnalysisConfig` + Configuration options following `AnalysisConfig` schema. + """ + + def __init__(self, config): + self.config = config + self.config.set_logging() + self.datastore = None + self.observations = None + self.datasets = None + self.fit = Fit() + self.fit_result = None + self.flux_points = None + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def models(self): + if not self.datasets: + raise RuntimeError("No datasets defined. Impossible to set models.") + return self.datasets.models + + @models.setter + def models(self, models): + self.set_models(models, extend=False) + + @property + def config(self): + """Analysis configuration as an `~gammapy.analysis.AnalysisConfig` object.""" + return self._config + + @config.setter + def config(self, value): + if isinstance(value, dict): + self._config = AnalysisConfig(**value) + elif isinstance(value, AnalysisConfig): + self._config = value + else: + raise TypeError("config must be dict or AnalysisConfig.") + + def _set_data_store(self): + """Set the datastore on the Analysis object.""" + path = make_path(self.config.observations.datastore) + if path.is_file(): + log.debug(f"Setting datastore from file: {path}") + self.datastore = DataStore.from_file(path) + elif path.is_dir(): + log.debug(f"Setting datastore from directory: {path}") + self.datastore = DataStore.from_dir(path) + else: + raise FileNotFoundError(f"Datastore not found: {path}") + + def _make_obs_table_selection(self): + """Return list of obs_ids after filtering on datastore observation table.""" + obs_settings = self.config.observations + + # Reject configs with list of obs_ids and obs_file set at the same time + if len(obs_settings.obs_ids) and obs_settings.obs_file is not None: + raise ValueError( + "Values for both parameters obs_ids and obs_file are not accepted." + ) + + # First select input list of observations from obs_table + if len(obs_settings.obs_ids): + selected_obs_table = self.datastore.obs_table.select_obs_id( + obs_settings.obs_ids + ) + elif obs_settings.obs_file is not None: + path = make_path(obs_settings.obs_file) + ids = list(Table.read(path, format="ascii", data_start=0).columns[0]) + selected_obs_table = self.datastore.obs_table.select_obs_id(ids) + else: + selected_obs_table = self.datastore.obs_table + + # Apply cone selection + if obs_settings.obs_cone.lon is not None: + cone = dict( + type="sky_circle", + frame=obs_settings.obs_cone.frame, + lon=obs_settings.obs_cone.lon, + lat=obs_settings.obs_cone.lat, + radius=obs_settings.obs_cone.radius, + border="0 deg", + ) + selected_obs_table = selected_obs_table.select_observations(cone) + + return selected_obs_table["OBS_ID"].tolist() + +
+[docs] + def get_observations(self): + """Fetch observations from the data store according to criteria defined in the configuration.""" + observations_settings = self.config.observations + self._set_data_store() + + log.info("Fetching observations.") + ids = self._make_obs_table_selection() + required_irf = observations_settings.required_irf + self.observations = self.datastore.get_observations( + ids, skip_missing=True, required_irf=required_irf + ) + + if observations_settings.obs_time.start is not None: + start = observations_settings.obs_time.start + stop = observations_settings.obs_time.stop + if len(start.shape) == 0: + time_intervals = [(start, stop)] + else: + time_intervals = [(tstart, tstop) for tstart, tstop in zip(start, stop)] + self.observations = self.observations.select_time(time_intervals) + + log.info(f"Number of selected observations: {len(self.observations)}") + + for obs in self.observations: + log.debug(obs)
+ + +
+[docs] + def get_datasets(self): + """ + Produce reduced datasets. + + Notes + ----- + The progress bar can be displayed for this function. + """ + datasets_settings = self.config.datasets + if not self.observations or len(self.observations) == 0: + raise RuntimeError("No observations have been selected.") + + if datasets_settings.type == "1d": + self._spectrum_extraction() + else: # 3d + self._map_making()
+ + +
+[docs] + def set_models(self, models, extend=True): + """Set models on datasets. + + Adds `FoVBackgroundModel` if not present already + + Parameters + ---------- + models : `~gammapy.modeling.models.Models` or str + Models object or YAML models string. + extend : bool, optional + Extend the exiting models on the datasets or replace them. + Default is True. + """ + if not self.datasets or len(self.datasets) == 0: + raise RuntimeError("Missing datasets") + + log.info("Reading model.") + if isinstance(models, str): + models = Models.from_yaml(models) + elif isinstance(models, Models): + pass + elif isinstance(models, DatasetModels) or isinstance(models, list): + models = Models(models) + else: + raise TypeError(f"Invalid type: {models!r}") + + if extend: + models.extend(self.datasets.models) + + self.datasets.models = models + + bkg_models = [] + for dataset in self.datasets: + if dataset.tag == "MapDataset" and dataset.background_model is None: + bkg_models.append(FoVBackgroundModel(dataset_name=dataset.name)) + if bkg_models: + models.extend(bkg_models) + self.datasets.models = models + + log.info(models)
+ + +
+[docs] + def read_models(self, path, extend=True): + """Read models from YAML file. + + Parameters + ---------- + path : str + Path to the model file. + extend : bool, optional + Extend the exiting models on the datasets or replace them. + Default is True. + """ + path = make_path(path) + models = Models.read(path) + self.set_models(models, extend=extend) + log.info(f"Models loaded from {path}.")
+ + +
+[docs] + def write_models(self, overwrite=True, write_covariance=True): + """Write models to YAML file. + + File name is taken from the configuration file. + """ + filename_models = self.config.general.models_file + if filename_models is not None: + self.models.write( + filename_models, overwrite=overwrite, write_covariance=write_covariance + ) + log.info(f"Models loaded from {filename_models}.") + else: + raise RuntimeError("Missing models_file in config.general")
+ + +
+[docs] + def read_datasets(self): + """Read datasets from YAML file. + + File names are taken from the configuration file. + """ + filename = self.config.general.datasets_file + filename_models = self.config.general.models_file + if filename is not None: + self.datasets = Datasets.read(filename) + log.info(f"Datasets loaded from {filename}.") + if filename_models is not None: + self.read_models(filename_models, extend=False) + else: + raise RuntimeError("Missing datasets_file in config.general")
+ + +
+[docs] + def write_datasets(self, overwrite=True, write_covariance=True): + """Write datasets to YAML file. + + File names are taken from the configuration file. + + Parameters + ---------- + overwrite : bool, optional + Overwrite existing file. Default is True. + write_covariance : bool, optional + Save covariance or not. Default is True. + """ + filename = self.config.general.datasets_file + filename_models = self.config.general.models_file + if filename is not None: + self.datasets.write( + filename, + filename_models, + overwrite=overwrite, + write_covariance=write_covariance, + ) + log.info(f"Datasets stored to {filename}.") + log.info(f"Datasets stored to {filename_models}.") + else: + raise RuntimeError("Missing datasets_file in config.general")
+ + +
+[docs] + def run_fit(self): + """Fitting reduced datasets to model.""" + if not self.models: + raise RuntimeError("Missing models") + + fit_settings = self.config.fit + for dataset in self.datasets: + if fit_settings.fit_range: + energy_min = fit_settings.fit_range.min + energy_max = fit_settings.fit_range.max + geom = dataset.counts.geom + dataset.mask_fit = geom.energy_mask(energy_min, energy_max) + + log.info("Fitting datasets.") + result = self.fit.run(datasets=self.datasets) + self.fit_result = result + log.info(self.fit_result)
+ + +
+[docs] + def get_flux_points(self): + """Calculate flux points for a specific model component.""" + if not self.datasets: + raise RuntimeError( + "No datasets defined. Impossible to compute flux points." + ) + + fp_settings = self.config.flux_points + log.info("Calculating flux points.") + energy_edges = self._make_energy_axis(fp_settings.energy).edges + flux_point_estimator = FluxPointsEstimator( + energy_edges=energy_edges, + source=fp_settings.source, + fit=self.fit, + n_jobs=self.config.general.n_jobs, + **fp_settings.parameters, + ) + + fp = flux_point_estimator.run(datasets=self.datasets) + + self.flux_points = FluxPointsDataset( + data=fp, models=self.models[fp_settings.source] + ) + cols = ["e_ref", "dnde", "dnde_ul", "dnde_err", "sqrt_ts"] + table = self.flux_points.data.to_table(sed_type="dnde") + log.info("\n{}".format(table[cols]))
+ + +
+[docs] + def get_excess_map(self): + """Calculate excess map with respect to the current model.""" + excess_settings = self.config.excess_map + log.info("Computing excess maps.") + + # TODO: Here we could possibly stack the datasets if needed + # or allow to compute the excess map for each dataset + if len(self.datasets) > 1: + raise ValueError("Datasets must be stacked to compute the excess map") + + if self.datasets[0].tag not in ["MapDataset", "MapDatasetOnOff"]: + raise ValueError("Cannot compute excess map for 1D dataset") + + energy_edges = self._make_energy_axis(excess_settings.energy_edges) + if energy_edges is not None: + energy_edges = energy_edges.edges + + excess_map_estimator = ExcessMapEstimator( + correlation_radius=excess_settings.correlation_radius, + energy_edges=energy_edges, + **excess_settings.parameters, + ) + self.excess_map = excess_map_estimator.run(self.datasets[0])
+ + +
+[docs] + def get_light_curve(self): + """Calculate light curve for a specific model component.""" + lc_settings = self.config.light_curve + log.info("Computing light curve.") + energy_edges = self._make_energy_axis(lc_settings.energy_edges).edges + + if ( + lc_settings.time_intervals.start is None + or lc_settings.time_intervals.stop is None + ): + log.info( + "Time intervals not defined. Extract light curve on datasets GTIs." + ) + time_intervals = None + else: + time_intervals = [ + (t1, t2) + for t1, t2 in zip( + lc_settings.time_intervals.start, lc_settings.time_intervals.stop + ) + ] + + light_curve_estimator = LightCurveEstimator( + time_intervals=time_intervals, + energy_edges=energy_edges, + source=lc_settings.source, + fit=self.fit, + n_jobs=self.config.general.n_jobs, + **lc_settings.parameters, + ) + lc = light_curve_estimator.run(datasets=self.datasets) + self.light_curve = lc + log.info( + "\n{}".format( + self.light_curve.to_table(format="lightcurve", sed_type="flux") + ) + )
+ + +
+[docs] + def update_config(self, config): + """Update the configuration.""" + self.config = self.config.update(config=config)
+ + + @staticmethod + def _create_wcs_geometry(wcs_geom_settings, axes): + """Create the WCS geometry.""" + geom_params = {} + skydir_settings = wcs_geom_settings.skydir + if skydir_settings.lon is not None: + skydir = SkyCoord( + skydir_settings.lon, skydir_settings.lat, frame=skydir_settings.frame + ) + geom_params["skydir"] = skydir + + if skydir_settings.frame in ["icrs", "galactic"]: + geom_params["frame"] = skydir_settings.frame + else: + raise ValueError( + f"Incorrect skydir frame: expect 'icrs' or 'galactic'. Got {skydir_settings.frame}" + ) + + geom_params["axes"] = axes + geom_params["binsz"] = wcs_geom_settings.binsize + width = wcs_geom_settings.width.width.to("deg").value + height = wcs_geom_settings.width.height.to("deg").value + geom_params["width"] = (width, height) + + return WcsGeom.create(**geom_params) + + @staticmethod + def _create_region_geometry(on_region_settings, axes): + """Create the region geometry.""" + on_lon = on_region_settings.lon + on_lat = on_region_settings.lat + on_center = SkyCoord(on_lon, on_lat, frame=on_region_settings.frame) + on_region = CircleSkyRegion(on_center, on_region_settings.radius) + + return RegionGeom.create(region=on_region, axes=axes) + + def _create_geometry(self): + """Create the geometry.""" + log.debug("Creating geometry.") + datasets_settings = self.config.datasets + geom_settings = datasets_settings.geom + axes = [self._make_energy_axis(geom_settings.axes.energy)] + if datasets_settings.type == "3d": + geom = self._create_wcs_geometry(geom_settings.wcs, axes) + elif datasets_settings.type == "1d": + geom = self._create_region_geometry(datasets_settings.on_region, axes) + else: + raise ValueError( + f"Incorrect dataset type. Expect '1d' or '3d'. Got {datasets_settings.type}." + ) + return geom + + def _create_reference_dataset(self, name=None): + """Create the reference dataset for the current analysis.""" + log.debug("Creating target Dataset.") + geom = self._create_geometry() + + geom_settings = self.config.datasets.geom + geom_irf = dict(energy_axis_true=None, binsz_irf=None) + if geom_settings.axes.energy_true.min is not None: + geom_irf["energy_axis_true"] = self._make_energy_axis( + geom_settings.axes.energy_true, name="energy_true" + ) + if geom_settings.wcs.binsize_irf is not None: + geom_irf["binsz_irf"] = geom_settings.wcs.binsize_irf.to("deg").value + + if self.config.datasets.type == "1d": + return SpectrumDataset.create(geom, name=name, **geom_irf) + else: + return MapDataset.create(geom, name=name, **geom_irf) + + def _create_dataset_maker(self): + """Create the Dataset Maker.""" + log.debug("Creating the target Dataset Maker.") + + datasets_settings = self.config.datasets + if datasets_settings.type == "3d": + maker = MapDatasetMaker(selection=datasets_settings.map_selection) + elif datasets_settings.type == "1d": + maker_config = {} + if datasets_settings.containment_correction: + maker_config["containment_correction"] = ( + datasets_settings.containment_correction + ) + + maker_config["selection"] = ["counts", "exposure", "edisp"] + + maker = SpectrumDatasetMaker(**maker_config) + + return maker + + def _create_safe_mask_maker(self): + """Create the SafeMaskMaker.""" + log.debug("Creating the mask_safe Maker.") + + safe_mask_selection = self.config.datasets.safe_mask.methods + safe_mask_settings = self.config.datasets.safe_mask.parameters + return SafeMaskMaker(methods=safe_mask_selection, **safe_mask_settings) + + def _create_background_maker(self): + """Create the Background maker.""" + log.info("Creating the background Maker.") + + datasets_settings = self.config.datasets + bkg_maker_config = {} + if datasets_settings.background.exclusion: + path = make_path(datasets_settings.background.exclusion) + exclusion_mask = Map.read(path) + exclusion_mask.data = exclusion_mask.data.astype(bool) + bkg_maker_config["exclusion_mask"] = exclusion_mask + bkg_maker_config.update(datasets_settings.background.parameters) + + bkg_method = datasets_settings.background.method + + bkg_maker = None + if bkg_method == "fov_background": + log.debug(f"Creating FoVBackgroundMaker with arguments {bkg_maker_config}") + bkg_maker = FoVBackgroundMaker(**bkg_maker_config) + elif bkg_method == "ring": + bkg_maker = RingBackgroundMaker(**bkg_maker_config) + log.debug(f"Creating RingBackgroundMaker with arguments {bkg_maker_config}") + if datasets_settings.geom.axes.energy.nbins > 1: + raise ValueError( + "You need to define a single-bin energy geometry for your dataset." + ) + elif bkg_method == "reflected": + bkg_maker = ReflectedRegionsBackgroundMaker(**bkg_maker_config) + log.debug( + f"Creating ReflectedRegionsBackgroundMaker with arguments {bkg_maker_config}" + ) + else: + log.warning("No background maker set. Check configuration.") + return bkg_maker + + def _map_making(self): + """Make maps and datasets for 3d analysis.""" + datasets_settings = self.config.datasets + offset_max = datasets_settings.geom.selection.offset_max + + log.info("Creating reference dataset and makers.") + stacked = self._create_reference_dataset(name="stacked") + + maker = self._create_dataset_maker() + maker_safe_mask = self._create_safe_mask_maker() + bkg_maker = self._create_background_maker() + + makers = [maker, maker_safe_mask, bkg_maker] + makers = [maker for maker in makers if maker is not None] + + log.info("Start the data reduction loop.") + + datasets_maker = DatasetsMaker( + makers, + stack_datasets=datasets_settings.stack, + n_jobs=self.config.general.n_jobs, + cutout_mode="trim", + cutout_width=2 * offset_max, + ) + self.datasets = datasets_maker.run(stacked, self.observations) + + def _spectrum_extraction(self): + """Run all steps for the spectrum extraction.""" + log.info("Reducing spectrum datasets.") + datasets_settings = self.config.datasets + dataset_maker = self._create_dataset_maker() + safe_mask_maker = self._create_safe_mask_maker() + bkg_maker = self._create_background_maker() + + reference = self._create_reference_dataset() + + datasets = [] + for obs in progress_bar(self.observations, desc="Observations"): + log.debug(f"Processing observation {obs.obs_id}") + dataset = dataset_maker.run(reference.copy(), obs) + if bkg_maker is not None: + dataset = bkg_maker.run(dataset, obs) + if dataset.counts_off is None: + log.debug( + f"No OFF region found for observation {obs.obs_id}. Discarding." + ) + continue + dataset = safe_mask_maker.run(dataset, obs) + log.debug(dataset) + datasets.append(dataset) + self.datasets = Datasets(datasets) + + if datasets_settings.stack: + stacked = self.datasets.stack_reduce(name="stacked") + self.datasets = Datasets([stacked]) + + @staticmethod + def _make_energy_axis(axis, name="energy"): + if axis.min is None or axis.max is None: + return None + elif axis.nbins is None or axis.nbins < 1: + return None + else: + return MapAxis.from_bounds( + name=name, + lo_bnd=axis.min.value, + hi_bnd=axis.max.to_value(axis.min.unit), + nbin=axis.nbins, + unit=axis.min.unit, + interp="log", + node_type="edges", + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/darkmatter/profiles.html b/docs/dev/_modules/gammapy/astro/darkmatter/profiles.html new file mode 100644 index 00000000000..33e93317851 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/darkmatter/profiles.html @@ -0,0 +1,938 @@ + + + + + + + + + + gammapy.astro.darkmatter.profiles — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.darkmatter.profiles

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Dark matter profiles."""
+import abc
+import html
+import numpy as np
+import astropy.units as u
+from gammapy.modeling import Parameter, Parameters
+from gammapy.utils.integrate import trapz_loglog
+
+__all__ = [
+    "BurkertProfile",
+    "DMProfile",
+    "EinastoProfile",
+    "IsothermalProfile",
+    "MooreProfile",
+    "NFWProfile",
+    "ZhaoProfile",
+]
+
+
+
+[docs] +class DMProfile(abc.ABC): + """DMProfile model base class.""" + + LOCAL_DENSITY = 0.3 * u.GeV / (u.cm**3) + """Local dark matter density as given in reference 2""" + DISTANCE_GC = 8.33 * u.kpc + """Distance to the Galactic Center as given in reference 2""" + +
+[docs] + def __call__(self, radius): + """Call evaluate method of derived classes.""" + kwargs = {par.name: par.quantity for par in self.parameters} + return self.evaluate(radius, **kwargs)
+ + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def scale_to_local_density(self): + """Scale to local density.""" + scale = (self.LOCAL_DENSITY / self(self.DISTANCE_GC)).to_value("") + self.parameters["rho_s"].value *= scale
+ + + def _eval_substitution(self, radius, separation, squared): + """Density at given radius together with the substitution part.""" + exponent = 2 if squared else 1 + return ( + self(radius) ** exponent + * radius + / np.sqrt(radius**2 - (self.DISTANCE_GC * np.sin(separation)) ** 2) + ) + +
+[docs] + def integral(self, rmin, rmax, separation, ndecade, squared=True): + r"""Integrate dark matter profile numerically. + + .. math:: + F(r_{min}, r_{max}) = \int_{r_{min}}^{r_{max}}\rho(r)^\gamma dr \\ + \gamma = 2 \text{for annihilation} \\ + \gamma = 1 \text{for decay} + + Parameters + ---------- + rmin, rmax : `~astropy.units.Quantity` + Lower and upper bound of integration range. + separation : `~numpy.ndarray` + Separation angle in radians. + ndecade : int, optional + Number of grid points per decade used for the integration. + Default is 10000. + squared : bool, optional + Square the profile before integration. + Default is True. + """ + integral = self.integrate_spectrum_separation( + self._eval_substitution, rmin, rmax, separation, ndecade, squared + ) + inegral_unit = u.Unit("GeV2 cm-5") if squared else u.Unit("GeV cm-2") + return integral.to(inegral_unit)
+ + +
+[docs] + def integrate_spectrum_separation( + self, func, xmin, xmax, separation, ndecade, squared=True + ): + """Squared dark matter profile integral. + + Parameters + ---------- + xmin, xmax : `~astropy.units.Quantity` + Lower and upper bound of integration range. + separation : `~numpy.ndarray` + Separation angle in radians. + ndecade : int + Number of grid points per decade used for the integration. + squared : bool + Square the profile before integration. + Default is True. + """ + unit = xmin.unit + xmin = xmin.value + xmax = xmax.to_value(unit) + logmin = np.log10(xmin) + logmax = np.log10(xmax) + n = np.int32((logmax - logmin) * ndecade) + x = np.logspace(logmin, logmax, n) * unit + y = func(x, separation, squared) + val = trapz_loglog(y, x) + return val.sum()
+
+ + + +
+[docs] +class ZhaoProfile(DMProfile): + r"""Zhao Profile. + + This is taken from equation 1 from Zhao (1996). It is a generalization of the NFW profile. The volume density + is parametrized with a double power-law. Scale radii smaller than the scale radius are described with a slope of + :math:`-\gamma` and scale radii larger than the scale radius are described with a slope of :math:`-\beta`. + :math:`\alpha` is a measure for the width of the transition region. + + .. math:: + \rho(r) = \rho_s \left(\frac{r_s}{r}\right)^\gamma \left(1 + \left(\frac{r}{r_s}\right)^\frac{1}{\alpha} \right)^{(\gamma - \beta) \alpha} + + Parameters + ---------- + r_s : `~astropy.units.Quantity` + Scale radius, :math:`r_s`. + alpha : `~astropy.units.Quantity` + :math:`\alpha`. + beta: `~astropy.units.Quantity` + :math:`\beta`. + gamma : `~astropy.units.Quantity` + :math:`\gamma`. + rho_s : `~astropy.units.Quantity` + Characteristic density, :math:`\rho_s`. + + References + ---------- + * `1996MNRAS.278..488Z <https://ui.adsabs.harvard.edu/abs/1996MNRAS.278..488Z>`_ + * `2011JCAP...03..051C <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + DEFAULT_SCALE_RADIUS = 24.42 * u.kpc + DEFAULT_ALPHA = 1 + DEFAULT_BETA = 3 + DEFAULT_GAMMA = 1 + """ + (alpha, beta, gamma) = (1,3,1) is NFW profile. + Default scale radius as given in reference 2 (same as for NFW profile) + """ + + def __init__( + self, r_s=None, alpha=None, beta=None, gamma=None, rho_s=1 * u.Unit("GeV / cm3") + ): + r_s = self.DEFAULT_SCALE_RADIUS if r_s is None else r_s + alpha = self.DEFAULT_ALPHA if alpha is None else alpha + beta = self.DEFAULT_BETA if beta is None else beta + gamma = self.DEFAULT_GAMMA if gamma is None else gamma + self.parameters = Parameters( + [ + Parameter("r_s", u.Quantity(r_s)), + Parameter("rho_s", u.Quantity(rho_s)), + Parameter("alpha", alpha), + Parameter("beta", beta), + Parameter("gamma", gamma), + ] + ) + +
+[docs] + @staticmethod + def evaluate(radius, r_s, alpha, beta, gamma, rho_s): + """Evaluate the profile.""" + rr = radius / r_s + return rho_s / (rr**gamma * (1 + rr ** (1 / alpha)) ** ((beta - gamma) * alpha))
+
+ + + +
+[docs] +class NFWProfile(DMProfile): + r"""NFW Profile. + + .. math:: + \rho(r) = \rho_s \frac{r_s}{r}\left(1 + \frac{r}{r_s}\right)^{-2} + + Parameters + ---------- + r_s : `~astropy.units.Quantity` + Scale radius, :math:`r_s`. + rho_s : `~astropy.units.Quantity` + Characteristic density, :math:`\rho_s`. + + References + ---------- + * `1997ApJ...490..493 <https://ui.adsabs.harvard.edu/abs/1997ApJ...490..493N>`_ + * `2011JCAP...03..051C <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + DEFAULT_SCALE_RADIUS = 24.42 * u.kpc + """Default scale radius as given in reference 2""" + + def __init__(self, r_s=None, rho_s=1 * u.Unit("GeV / cm3")): + r_s = self.DEFAULT_SCALE_RADIUS if r_s is None else r_s + self.parameters = Parameters( + [Parameter("r_s", u.Quantity(r_s)), Parameter("rho_s", u.Quantity(rho_s))] + ) + +
+[docs] + @staticmethod + def evaluate(radius, r_s, rho_s): + """Evaluate the profile.""" + rr = radius / r_s + return rho_s / (rr * (1 + rr) ** 2)
+
+ + + +
+[docs] +class EinastoProfile(DMProfile): + r"""Einasto Profile. + + .. math:: + \rho(r) = \rho_s \exp{ + \left(-\frac{2}{\alpha}\left[ + \left(\frac{r}{r_s}\right)^{\alpha} - 1\right] \right)} + + Parameters + ---------- + r_s : `~astropy.units.Quantity` + Scale radius, :math:`r_s`. + alpha : `~astropy.units.Quantity` + :math:`\alpha`. + rho_s : `~astropy.units.Quantity` + Characteristic density, :math:`\rho_s`. + + References + ---------- + * `1965TrAlm...5...87E <https://ui.adsabs.harvard.edu/abs/1965TrAlm...5...87E>`_ + * `2011JCAP...03..051C <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + DEFAULT_SCALE_RADIUS = 28.44 * u.kpc + """Default scale radius as given in reference 2""" + DEFAULT_ALPHA = 0.17 + """Default scale radius as given in reference 2""" + + def __init__(self, r_s=None, alpha=None, rho_s=1 * u.Unit("GeV / cm3")): + alpha = self.DEFAULT_ALPHA if alpha is None else alpha + r_s = self.DEFAULT_SCALE_RADIUS if r_s is None else r_s + + self.parameters = Parameters( + [ + Parameter("r_s", u.Quantity(r_s)), + Parameter("alpha", u.Quantity(alpha)), + Parameter("rho_s", u.Quantity(rho_s)), + ] + ) + +
+[docs] + @staticmethod + def evaluate(radius, r_s, alpha, rho_s): + """Evaluate the profile.""" + rr = radius / r_s + exponent = (2 / alpha) * (rr**alpha - 1) + return rho_s * np.exp(-1 * exponent)
+
+ + + +
+[docs] +class IsothermalProfile(DMProfile): + r"""Isothermal Profile. + + .. math:: \rho(r) = \frac{\rho_s}{1 + (r/r_s)^2} + + Parameters + ---------- + r_s : `~astropy.units.Quantity` + Scale radius, :math:`r_s`. + + References + ---------- + * `1991MNRAS.249..523B <https://ui.adsabs.harvard.edu/abs/1991MNRAS.249..523B>`_ + * `2011JCAP...03..051C <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + DEFAULT_SCALE_RADIUS = 4.38 * u.kpc + """Default scale radius as given in reference 2""" + + def __init__(self, r_s=None, rho_s=1 * u.Unit("GeV / cm3")): + r_s = self.DEFAULT_SCALE_RADIUS if r_s is None else r_s + + self.parameters = Parameters( + [Parameter("r_s", u.Quantity(r_s)), Parameter("rho_s", u.Quantity(rho_s))] + ) + +
+[docs] + @staticmethod + def evaluate(radius, r_s, rho_s): + """Evaluate the profile.""" + rr = radius / r_s + return rho_s / (1 + rr**2)
+
+ + + +
+[docs] +class BurkertProfile(DMProfile): + r"""Burkert Profile. + + .. math:: \rho(r) = \frac{\rho_s}{(1 + r/r_s)(1 + (r/r_s)^2)} + + Parameters + ---------- + r_s : `~astropy.units.Quantity` + Scale radius, :math:`r_s`. + + References + ---------- + * `1995ApJ...447L..25B <https://ui.adsabs.harvard.edu/abs/1995ApJ...447L..25B>`_ + * `2011JCAP...03..051C <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + DEFAULT_SCALE_RADIUS = 12.67 * u.kpc + """Default scale radius as given in reference 2""" + + def __init__(self, r_s=None, rho_s=1 * u.Unit("GeV / cm3")): + r_s = self.DEFAULT_SCALE_RADIUS if r_s is None else r_s + + self.parameters = Parameters( + [Parameter("r_s", u.Quantity(r_s)), Parameter("rho_s", u.Quantity(rho_s))] + ) + +
+[docs] + @staticmethod + def evaluate(radius, r_s, rho_s): + """Evaluate the profile.""" + rr = radius / r_s + return rho_s / ((1 + rr) * (1 + rr**2))
+
+ + + +
+[docs] +class MooreProfile(DMProfile): + r"""Moore Profile. + + .. math:: + \rho(r) = \rho_s \left(\frac{r_s}{r}\right)^{1.16} + \left(1 + \frac{r}{r_s} \right)^{-1.84} + + Parameters + ---------- + r_s : `~astropy.units.Quantity` + Scale radius, :math:`r_s`. + + References + ---------- + * `2004MNRAS.353..624D <https://ui.adsabs.harvard.edu/abs/2004MNRAS.353..624D>`_ + * `2011JCAP...03..051C <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + DEFAULT_SCALE_RADIUS = 30.28 * u.kpc + """Default scale radius as given in reference 2""" + + def __init__(self, r_s=None, rho_s=1 * u.Unit("GeV / cm3")): + r_s = self.DEFAULT_SCALE_RADIUS if r_s is None else r_s + + self.parameters = Parameters( + [Parameter("r_s", u.Quantity(r_s)), Parameter("rho_s", u.Quantity(rho_s))] + ) + +
+[docs] + @staticmethod + def evaluate(radius, r_s, rho_s): + """Evaluate the profile.""" + rr = radius / r_s + rr_ = r_s / radius + return rho_s * rr_**1.16 * (1 + rr) ** (-1.84)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/darkmatter/spectra.html b/docs/dev/_modules/gammapy/astro/darkmatter/spectra.html new file mode 100644 index 00000000000..ae9c3724ce7 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/darkmatter/spectra.html @@ -0,0 +1,934 @@ + + + + + + + + + + gammapy.astro.darkmatter.spectra — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.darkmatter.spectra

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Dark matter spectra."""
+
+import numpy as np
+import astropy.units as u
+from astropy.table import Table
+from gammapy.maps import Map, MapAxis, RegionGeom
+from gammapy.modeling import Parameter
+from gammapy.modeling.models import SpectralModel, TemplateNDSpectralModel
+from gammapy.utils.scripts import make_path
+
+__all__ = ["PrimaryFlux", "DarkMatterAnnihilationSpectralModel"]
+
+
+
+[docs] +class PrimaryFlux(TemplateNDSpectralModel): + """DM-annihilation gamma-ray spectra. + + Based on the precomputed models by Cirelli et al. (2016). All available + annihilation channels can be found there. The dark matter mass will be set + to the nearest available value. The spectra will be available as + `~gammapy.modeling.models.TemplateNDSpectralModel` for a chosen dark matter mass and + annihilation channel. Using a `~gammapy.modeling.models.TemplateNDSpectralModel` + allows the interpolation between different dark matter masses. + + Parameters + ---------- + mDM : `~astropy.units.Quantity` + Dark matter particle mass as rest mass energy. + channel: str + Annihilation channel. List available channels with `~gammapy.spectrum.PrimaryFlux.allowed_channels`. + + References + ---------- + * `2011JCAP...03..051 <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + * Cirelli et al (2016): http://www.marcocirelli.net/PPPC4DMID.html + """ + + channel_registry = { + "eL": "eL", + "eR": "eR", + "e": "e", + "muL": r"\[Mu]L", + "muR": r"\[Mu]R", + "mu": r"\[Mu]", + "tauL": r"\[Tau]L", + "tauR": r"\[Tau]R", + "tau": r"\[Tau]", + "q": "q", + "c": "c", + "b": "b", + "t": "t", + "WL": "WL", + "WT": "WT", + "W": "W", + "ZL": "ZL", + "ZT": "ZT", + "Z": "Z", + "g": "g", + "gamma": r"\[Gamma]", + "h": "h", + "nu_e": r"\[Nu]e", + "nu_mu": r"\[Nu]\[Mu]", + "nu_tau": r"\[Nu]\[Tau]", + "V->e": "V->e", + "V->mu": r"V->\[Mu]", + "V->tau": r"V->\[Tau]", + } + + table_filename = "$GAMMAPY_DATA/dark_matter_spectra/AtProduction_gammas.dat" + + tag = ["PrimaryFlux", "dm-pf"] + + def __init__(self, mDM, channel): + self.table_path = make_path(self.table_filename) + if not self.table_path.exists(): + raise FileNotFoundError( + f"\n\nFile not found: {self.table_filename}\n" + "You may download the dataset needed with the following command:\n" + "gammapy download datasets --src dark_matter_spectra" + ) + else: + self.table = Table.read( + str(self.table_path), + format="ascii.fast_basic", + guess=False, + delimiter=" ", + ) + + self.channel = channel + + # create RegionNDMap for channel + + masses = np.unique(self.table["mDM"]) + log10x = np.unique(self.table["Log[10,x]"]) + + mass_axis = MapAxis.from_nodes(masses, name="mass", interp="log", unit="GeV") + log10x_axis = MapAxis.from_nodes(log10x, name="energy_true") + + channel_name = self.channel_registry[self.channel] + + geom = RegionGeom(region=None, axes=[log10x_axis, mass_axis]) + region_map = Map.from_geom( + geom=geom, data=self.table[channel_name].reshape(geom.data_shape) + ) + + interp_kwargs = {"extrapolate": True, "fill_value": 0, "values_scale": "lin"} + super().__init__(region_map, interp_kwargs=interp_kwargs) + self.mDM = mDM + self.mass.frozen = True + + @property + def mDM(self): + """Dark matter mass.""" + return u.Quantity(self.mass.value, "GeV") + + @mDM.setter + def mDM(self, mDM): + unit = self.mass.unit + _mDM = u.Quantity(mDM).to(unit) + _mDM_val = _mDM.to_value(unit) + + min_mass = u.Quantity(self.mass.min, unit) + max_mass = u.Quantity(self.mass.max, unit) + + if _mDM_val < self.mass.min or _mDM_val > self.mass.max: + raise ValueError( + f"The mass {_mDM} is out of the bounds of the model. Please choose a mass between {min_mass} < `mDM` < {max_mass}" + ) + + self.mass.value = _mDM_val + + @property + def allowed_channels(self): + """List of allowed annihilation channels.""" + return list(self.channel_registry.keys()) + + @property + def channel(self): + """Annihilation channel as a string.""" + return self._channel + + @channel.setter + def channel(self, channel): + if channel not in self.allowed_channels: + raise ValueError( + f"Invalid channel: {channel}\nAvailable: {self.allowed_channels}\n" + ) + else: + self._channel = channel + +
+[docs] + def evaluate(self, energy, **kwargs): + """Evaluate the primary flux.""" + mass = {"mass": self.mDM} + kwargs.update(mass) + + log10x = np.log10(energy / self.mDM) + + dN_dlogx = super().evaluate(log10x, **kwargs) + dN_dE = dN_dlogx / (energy * np.log(10)) + return dN_dE
+
+ + + +
+[docs] +class DarkMatterAnnihilationSpectralModel(SpectralModel): + r"""Dark matter annihilation spectral model. + + The gamma-ray flux is computed as follows: + + .. math:: + \frac{\mathrm d \phi}{\mathrm d E} = + \frac{\langle \sigma\nu \rangle}{4\pi k m^2_{\mathrm{DM}}} + \frac{\mathrm d N}{\mathrm dE} \times J(\Delta\Omega) + + Parameters + ---------- + mass : `~astropy.units.Quantity` + Dark matter mass. + channel : str + Annihilation channel for `~gammapy.astro.darkmatter.PrimaryFlux`, e.g. "b" for "bbar". + See `PrimaryFlux.channel_registry` for more. + scale : float + Scale parameter for model fitting. + jfactor : `~astropy.units.Quantity` + Integrated J-Factor needed when `~gammapy.modeling.models.PointSpatialModel` + is used. + z: float + Redshift value. + k: int + Type of dark matter particle (k:2 Majorana, k:4 Dirac). + + Examples + -------- + This is how to instantiate a `DarkMatterAnnihilationSpectralModel` model:: + + >>> import astropy.units as u + >>> from gammapy.astro.darkmatter import DarkMatterAnnihilationSpectralModel + + >>> channel = "b" + >>> massDM = 5000*u.Unit("GeV") + >>> jfactor = 3.41e19 * u.Unit("GeV2 cm-5") + >>> modelDM = DarkMatterAnnihilationSpectralModel(mass=massDM, channel=channel, jfactor=jfactor) # noqa: E501 + + References + ---------- + * `2011JCAP...03..051 <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + THERMAL_RELIC_CROSS_SECTION = 3e-26 * u.Unit("cm3 s-1") + """Thermally averaged annihilation cross-section""" + + scale = Parameter( + "scale", + 1, + unit="", + interp="log", + ) + tag = ["DarkMatterAnnihilationSpectralModel", "dm-annihilation"] + + def __init__(self, mass, channel, scale=scale.quantity, jfactor=1, z=0, k=2): + self.k = k + self.z = z + self.mass = u.Quantity(mass) + self.channel = channel + self.jfactor = u.Quantity(jfactor) + self.primary_flux = PrimaryFlux(mass, channel=self.channel) + super().__init__(scale=scale) + +
+[docs] + def evaluate(self, energy, scale): + """Evaluate dark matter annihilation model.""" + flux = ( + scale + * self.jfactor + * self.THERMAL_RELIC_CROSS_SECTION + * self.primary_flux(energy=energy * (1 + self.z)) + / self.k + / self.mass + / self.mass + / (4 * np.pi) + ) + return flux
+ + +
+[docs] + def to_dict(self, full_output=False): + """Convert to dictionary.""" + data = super().to_dict(full_output=full_output) + data["spectral"]["channel"] = self.channel + data["spectral"]["mass"] = self.mass.to_string() + data["spectral"]["jfactor"] = self.jfactor.to_string() + data["spectral"]["z"] = self.z + data["spectral"]["k"] = self.k + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create spectral model from a dictionary. + + Parameters + ---------- + data : dict + Dictionary with model data. + + Returns + ------- + model : `DarkMatterAnnihilationSpectralModel` + Dark matter annihilation spectral model. + """ + data = data["spectral"] + data.pop("type") + parameters = data.pop("parameters") + scale = [p["value"] for p in parameters if p["name"] == "scale"][0] + return cls(scale=scale, **data)
+
+ + + +
+[docs] +class DarkMatterDecaySpectralModel(SpectralModel): + r"""Dark matter decay spectral model. + + The gamma-ray flux is computed as follows: + + .. math:: + \frac{\mathrm d \phi}{\mathrm d E} = + \frac{\Gamma}{4\pi m_{\mathrm{DM}}} + \frac{\mathrm d N}{\mathrm dE} \times J(\Delta\Omega) + + Parameters + ---------- + mass : `~astropy.units.Quantity` + Dark matter mass. + channel : str + Annihilation channel for `~gammapy.astro.darkmatter.PrimaryFlux`, e.g. "b" for "bbar". + See `PrimaryFlux.channel_registry` for more. + scale : float + Scale parameter for model fitting + jfactor : `~astropy.units.Quantity` + Integrated J-Factor needed when `~gammapy.modeling.models.PointSpatialModel` + is used. + z: float + Redshift value. + + Examples + -------- + This is how to instantiate a `DarkMatterAnnihilationSpectralModel` model:: + + >>> import astropy.units as u + >>> from gammapy.astro.darkmatter import DarkMatterDecaySpectralModel + + >>> channel = "b" + >>> massDM = 5000*u.Unit("GeV") + >>> jfactor = 3.41e19 * u.Unit("GeV cm-2") + >>> modelDM = DarkMatterDecaySpectralModel(mass=massDM, channel=channel, jfactor=jfactor) # noqa: E501 + + References + ---------- + * `2011JCAP...03..051 <https://ui.adsabs.harvard.edu/abs/2011JCAP...03..051C>`_ + """ + + LIFETIME_AGE_OF_UNIVERSE = 4.3e17 * u.Unit("s") + """Use age of univserse as lifetime""" + + scale = Parameter( + "scale", + 1, + unit="", + interp="log", + ) + + tag = ["DarkMatterDecaySpectralModel", "dm-decay"] + + def __init__(self, mass, channel, scale=scale.quantity, jfactor=1, z=0): + self.z = z + self.mass = u.Quantity(mass) + self.channel = channel + self.jfactor = u.Quantity(jfactor) + self.primary_flux = PrimaryFlux(mass, channel=self.channel) + super().__init__(scale=scale) + +
+[docs] + def evaluate(self, energy, scale): + """Evaluate dark matter decay model.""" + flux = ( + scale + * self.jfactor + * self.primary_flux(energy=energy * (1 + self.z)) + / self.LIFETIME_AGE_OF_UNIVERSE + / self.mass + / (4 * np.pi) + ) + return flux
+ + +
+[docs] + def to_dict(self, full_output=False): + data = super().to_dict(full_output=full_output) + data["spectral"]["channel"] = self.channel + data["spectral"]["mass"] = self.mass.to_string() + data["spectral"]["jfactor"] = self.jfactor.to_string() + data["spectral"]["z"] = self.z + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create spectral model from dictionary. + + Parameters + ---------- + data : dict + Dictionary with model data. + + Returns + ------- + model : `DarkMatterDecaySpectralModel` + Dark matter decay spectral model. + """ + data = data["spectral"] + data.pop("type") + parameters = data.pop("parameters") + scale = [p["value"] for p in parameters if p["name"] == "scale"][0] + return cls(scale=scale, **data)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/darkmatter/utils.html b/docs/dev/_modules/gammapy/astro/darkmatter/utils.html new file mode 100644 index 00000000000..bb3c79696f0 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/darkmatter/utils.html @@ -0,0 +1,631 @@ + + + + + + + + + + gammapy.astro.darkmatter.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.darkmatter.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Utilities to compute J-factor maps."""
+import html
+import numpy as np
+import astropy.units as u
+
+__all__ = ["JFactory"]
+
+
+
+[docs] +class JFactory: + """Compute J-Factor or D-Factor maps. + + J-Factors are computed for annihilation and D-Factors for decay. + Set the argument `annihilation` to `False` to compute D-Factors. + The assumed dark matter profiles will be centered on the center of the map. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Reference geometry. + profile : `~gammapy.astro.darkmatter.profiles.DMProfile` + Dark matter profile. + distance : `~astropy.units.Quantity` + Distance to convert angular scale of the map. + annihilation: bool, optional + Decay or annihilation. Default is True. + """ + + def __init__(self, geom, profile, distance, annihilation=True): + self.geom = geom + self.profile = profile + self.distance = distance + self.annihilation = annihilation + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def compute_differential_jfactor(self, ndecade=1e4): + r"""Compute differential J-Factor. + + .. math:: + \frac{\mathrm d J_\text{ann}}{\mathrm d \Omega} = + \int_{\mathrm{LoS}} \mathrm d l \rho(l)^2 + + .. math:: + \frac{\mathrm d J_\text{decay}}{\mathrm d \Omega} = + \int_{\mathrm{LoS}} \mathrm d l \rho(l) + """ + separation = self.geom.separation(self.geom.center_skydir).rad + rmin = u.Quantity( + value=np.tan(separation) * self.distance, unit=self.distance.unit + ) + rmax = self.distance + val = [ + ( + 2 + * self.profile.integral( + _.value * u.kpc, + rmax, + np.arctan(_.value / self.distance.value), + ndecade, + self.annihilation, + ) + + self.profile.integral( + self.distance, + 4 * rmax, + np.arctan(_.value / self.distance.value), + ndecade, + self.annihilation, + ) + ) + for _ in rmin.ravel() + ] + integral_unit = u.Unit("GeV2 cm-5") if self.annihilation else u.Unit("GeV cm-2") + jfact = u.Quantity(val).to(integral_unit).reshape(rmin.shape) + return jfact / u.steradian
+ + +
+[docs] + def compute_jfactor(self, ndecade=1e4): + r"""Compute astrophysical J-Factor. + + .. math:: + J(\Delta\Omega) = + \int_{\Delta\Omega} \mathrm d \Omega^{\prime} + \frac{\mathrm d J}{\mathrm d \Omega^{\prime}} + """ + diff_jfact = self.compute_differential_jfactor(ndecade) + return diff_jfact * self.geom.to_image().solid_angle()
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/population/simulate.html b/docs/dev/_modules/gammapy/astro/population/simulate.html new file mode 100644 index 00000000000..e2008969494 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/population/simulate.html @@ -0,0 +1,1040 @@ + + + + + + + + + + gammapy.astro.population.simulate — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.population.simulate

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Simulate source catalogs."""
+import numpy as np
+from astropy.coordinates import SkyCoord
+from astropy.table import Column, Table
+from astropy.units import Quantity
+from gammapy.astro.source import PWN, SNR, Pulsar, SNRTrueloveMcKee
+from gammapy.utils import coordinates as astrometry
+from gammapy.utils.random import (
+    draw,
+    get_random_state,
+    pdf,
+    sample_sphere,
+    sample_sphere_distance,
+)
+from .spatial import (
+    RMAX,
+    RMIN,
+    ZMAX,
+    ZMIN,
+    Exponential,
+    FaucherSpiral,
+    radial_distributions,
+)
+from .velocity import VMAX, VMIN, velocity_distributions
+
+__all__ = [
+    "add_observed_parameters",
+    "add_pulsar_parameters",
+    "add_pwn_parameters",
+    "add_snr_parameters",
+    "make_base_catalog_galactic",
+    "make_catalog_random_positions_cube",
+    "make_catalog_random_positions_sphere",
+]
+
+
+
+[docs] +def make_catalog_random_positions_cube( + size=100, dimension=3, distance_max="1 pc", random_state="random-seed" +): + """Make a catalog of sources randomly distributed on a line, square or cube. + + This can be used to study basic source population distribution effects, + e.g. what the distance distribution looks like, or for a given luminosity + function what the resulting flux distributions are for different spatial + configurations. + + Parameters + ---------- + size : int, optional + Number of sources. Default is 100. + dimension : {1, 2, 3} + Number of dimensions. Default is 3. + distance_max : `~astropy.units.Quantity`, optional + Maximum distance. Default is "1 pc". + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Default is 'random-seed'. + Passed to `~gammapy.utils.random.get_random_state`. + + Returns + ------- + table : `~astropy.table.Table` + Table with 3D position cartesian coordinates. + Columns: x (pc), y (pc), z (pc). + """ + distance_max = Quantity(distance_max).to_value("pc") + random_state = get_random_state(random_state) + + # Generate positions 1D, 2D, or 3D + if dimension == 1: + x = random_state.uniform(-distance_max, distance_max, size) + y, z = 0, 0 + elif dimension == 2: + x = random_state.uniform(-distance_max, distance_max, size) + y = random_state.uniform(-distance_max, distance_max, size) + z = 0 + elif dimension == 3: + x = random_state.uniform(-distance_max, distance_max, size) + y = random_state.uniform(-distance_max, distance_max, size) + z = random_state.uniform(-distance_max, distance_max, size) + else: + raise ValueError(f"Invalid dimension: {dimension}") + + table = Table() + table["x"] = Column(x, unit="pc", description="Cartesian coordinate") + table["y"] = Column(y, unit="pc", description="Cartesian coordinate") + table["z"] = Column(z, unit="pc", description="Cartesian coordinate") + + return table
+ + + +
+[docs] +def make_catalog_random_positions_sphere( + size=100, distance_min="0 pc", distance_max="1 pc", random_state="random-seed" +): + """Sample random source locations in a sphere. + + This can be used to generate an isotropic source population + in a sphere, e.g. to represent extra-galactic sources. + + Parameters + ---------- + size : int, optional + Number of sources. Default is 100. + distance_min, distance_max : `~astropy.units.Quantity`, optional + Minimum and maximum distance. Default is "0 pc" and "1 pc", respectively. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Default is "random-state". + Passed to `~gammapy.utils.random.get_random_state`. + + Returns + ------- + catalog : `~astropy.table.Table` + Table with 3D position spherical coordinates. + Columns: lon (deg), lat (deg), distance(pc). + """ + distance_min = Quantity(distance_min).to_value("pc") + distance_max = Quantity(distance_max).to_value("pc") + random_state = get_random_state(random_state) + + lon, lat = sample_sphere(size, random_state=random_state) + distance = sample_sphere_distance(distance_min, distance_max, size, random_state) + + table = Table() + + table["lon"] = Column(lon, unit="rad", description="Spherical coordinate") + table["lat"] = Column(lat, unit="rad", description="Spherical coordinate") + table["distance"] = Column(distance, unit="pc", description="Spherical coordinate") + + return table
+ + + +
+[docs] +def make_base_catalog_galactic( + n_sources, + rad_dis="YK04", + vel_dis="H05", + max_age="1e6 yr", + spiralarms=True, + n_ISM="1 cm-3", + random_state="random-seed", +): + """Make a catalog of Galactic sources, with basic source parameters. + + Choose a radial distribution, a velocity distribution, the number + of sources ``n_sources`` and the maximum age ``max_age`` in years. If ``spiralarms`` + is True a spiral arm modeling after Faucher&Kaspi is included. + + ``max_age`` and ``n_sources`` effectively correspond to a SN rate: + SN_rate = ``n_sources`` / ``max_age`` + + Parameters + ---------- + n_sources : int + Number of sources to simulate. + rad_dis : callable, optional + Radial surface density distribution of sources. + Default is "YK04". + vel_dis : callable, optional + Proper motion velocity distribution of sources. + Default is "H05". + max_age : `~astropy.units.Quantity`, optional + Maximal age of the source. + Default is "1e6 yr". + spiralarms : bool, optional + Include a spiral arm model in the catalog. + Default is True. + n_ISM : `~astropy.units.Quantity`, optional + Density of the interstellar medium. + Default is "1 cm-3". + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Default is "random-state". + Passed to `~gammapy.utils.random.get_random_state`. + + Returns + ------- + table : `~astropy.table.Table` + Catalog of simulated source positions and proper velocities. + """ + max_age = Quantity(max_age).to_value("yr") + n_ISM = Quantity(n_ISM).to("cm-3") + random_state = get_random_state(random_state) + + if isinstance(rad_dis, str): + rad_dis = radial_distributions[rad_dis] + + if isinstance(vel_dis, str): + vel_dis = velocity_distributions[vel_dis] + + # Draw random values for the age + age = random_state.uniform(0, max_age, n_sources) + age = Quantity(age, "yr") + + # Draw spatial distribution + r = draw( + RMIN.to_value("kpc"), + RMAX.to_value("kpc"), + n_sources, + pdf(rad_dis()), + random_state=random_state, + ) + r = Quantity(r, "kpc") + + if spiralarms: + r, theta, spiralarm = FaucherSpiral()(r, random_state=random_state) + else: + theta = Quantity(random_state.uniform(0, 2 * np.pi, n_sources), "rad") + spiralarm = None + + x, y = astrometry.cartesian(r, theta) + + z = draw( + ZMIN.to_value("kpc"), + ZMAX.to_value("kpc"), + n_sources, + Exponential(), + random_state=random_state, + ) + z = Quantity(z, "kpc") + + # Draw values from velocity distribution + v = draw( + VMIN.to_value("km/s"), + VMAX.to_value("km/s"), + n_sources, + vel_dis(), + random_state=random_state, + ) + v = Quantity(v, "km/s") + + # Draw random direction of initial velocity + theta = Quantity(random_state.uniform(0, np.pi, x.size), "rad") + phi = Quantity(random_state.uniform(0, 2 * np.pi, x.size), "rad") + + # Compute new position + dx, dy, dz, vx, vy, vz = astrometry.motion_since_birth(v, age, theta, phi) + + # Add displacement to birth position + x_moved = x + dx + y_moved = y + dy + z_moved = z + dz + + table = Table() + table["age"] = Column(age, unit="yr", description="Age of the source") + table["n_ISM"] = Column(n_ISM, description="Interstellar medium density") + if spiralarms: + table["spiralarm"] = Column(spiralarm, description="Which spiralarm?") + + table["x_birth"] = Column(x, description="Galactocentric x coordinate at birth") + table["y_birth"] = Column(y, description="Galactocentric y coordinate at birth") + table["z_birth"] = Column(z, description="Galactocentric z coordinate at birth") + + table["x"] = Column(x_moved.to("kpc"), description="Galactocentric x coordinate") + table["y"] = Column(y_moved.to("kpc"), description="Galactocentric y coordinate") + table["z"] = Column(z_moved.to("kpc"), description="Galactocentric z coordinate") + + table["vx"] = Column(vx, description="Galactocentric velocity in x direction") + table["vy"] = Column(vy, description="Galactocentric velocity in y direction") + table["vz"] = Column(vz, description="Galactocentric velocity in z direction") + table["v_abs"] = Column(v, description="Galactocentric velocity (absolute)") + + return table
+ + + +
+[docs] +def add_snr_parameters(table): + """Add SNR parameters to the table. + + Parameters + ---------- + table : `~astropy.table.Table` + Table that requires at least columns "age" and "n_ISM" to be defined. + + Returns + ------- + table : `~astropy.table.Table` + Table with the following entries: + + * "E_SN" : SNR kinetic energy + * "r_out" : SNR outer radius + * "r_in" : SNR inner radius + * "L_SNR" : SNR photon rate above 1 TeV + + """ + # Read relevant columns + age = table["age"].quantity + n_ISM = table["n_ISM"].quantity + + # Compute properties + snr = SNR(n_ISM=n_ISM) + E_SN = snr.e_sn * np.ones(len(table)) + r_out = snr.radius(age) + r_in = snr.radius_inner(age) + L_SNR = snr.luminosity_tev(age) + + # Add columns to table + table["E_SN"] = Column(E_SN, description="SNR kinetic energy") + table["r_out"] = Column(r_out.to("pc"), description="SNR outer radius") + table["r_in"] = Column(r_in.to("pc"), description="SNR inner radius") + table["L_SNR"] = Column(L_SNR, description="SNR photon rate above 1 TeV") + return table
+ + + +
+[docs] +def add_pulsar_parameters( + table, + B_mean=12.05, + B_stdv=0.55, + P_mean=0.3, + P_stdv=0.15, + random_state="random-seed", +): + """Add pulsar parameters to the table. + + For the initial normal distribution of period and logB is given with + the default values. + + Parameters + ---------- + B_mean : float, optional + The mean magnetic field. Default is 12.05 (log Gauss). + B_stdv : float, optional + The standard deviation magnetic field. Default is 0.55. + P_mean : float, optional + The mean period. Default is 0.3 (seconds). + P_stdv : float, optional + The standard deviation period. Default is 0.15. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + """ + random_state = get_random_state(random_state) + # Read relevant columns + age = table["age"].quantity + + # Draw the initial values for the period and magnetic field + def p_dist(x): + return np.exp(-0.5 * ((x - P_mean) / P_stdv) ** 2) + + p0_birth = draw(0, 2, len(table), p_dist, random_state=random_state) + p0_birth = Quantity(p0_birth, "s") + + log10_b_psr = random_state.normal(B_mean, B_stdv, len(table)) + b_psr = Quantity(10**log10_b_psr, "G") + + # Compute pulsar parameters + psr = Pulsar(p0_birth, b_psr) + p0 = psr.period(age) + p1 = psr.period_dot(age) + p1_birth = psr.P_dot_0 + tau = psr.tau(age) + tau_0 = psr.tau_0 + l_psr = psr.luminosity_spindown(age) + l0_psr = psr.L_0 + + # Add columns to table + table["P0"] = Column(p0, unit="s", description="Pulsar period") + table["P1"] = Column(p1, unit="", description="Pulsar period derivative") + table["P0_birth"] = Column(p0_birth, unit="s", description="Pulsar birth period") + table["P1_birth"] = Column( + p1_birth, unit="", description="Pulsar birth period derivative" + ) + table["CharAge"] = Column(tau, unit="yr", description="Pulsar characteristic age") + table["Tau0"] = Column(tau_0, unit="yr") + table["L_PSR"] = Column(l_psr, unit="erg s-1") + table["L0_PSR"] = Column(l0_psr, unit="erg s-1") + table["B_PSR"] = Column( + b_psr, unit="Gauss", description="Pulsar magnetic field at the poles" + ) + return table
+ + + +
+[docs] +def add_pwn_parameters(table): + """Add PWN parameters to the table. + + Parameters + ---------- + table : `~astropy.table.Table` + Table that requires at least the following columns to be defined: + "age", "E_SN", "n_ISM", "P0_birth" and "B_PSR". + + Returns + ------- + table : `~astropy.table.Table` + Table with the additional entry "r_out_PWN" which is the outer radius + of the PWN. + """ + # Some of the computations (specifically `pwn.radius`) aren't vectorised + # across all parameters; so here we loop over source parameters explicitly + + results = [] + + for idx in range(len(table)): + age = table["age"].quantity[idx] + E_SN = table["E_SN"].quantity[idx] + n_ISM = table["n_ISM"].quantity[idx] + P0_birth = table["P0_birth"].quantity[idx] + b_psr = table["B_PSR"].quantity[idx] + + # Compute properties + pulsar = Pulsar(P0_birth, b_psr) + snr = SNRTrueloveMcKee(e_sn=E_SN, n_ISM=n_ISM) + pwn = PWN(pulsar, snr) + r_out_pwn = pwn.radius(age).to_value("pc") + results.append(dict(r_out_pwn=r_out_pwn)) + + # Add columns to table + table["r_out_PWN"] = Column( + [_["r_out_pwn"] for _ in results], unit="pc", description="PWN outer radius" + ) + return table
+ + + +
+[docs] +def add_observed_parameters(table, obs_pos=None): + """Add observable parameters (such as sky position or distance). + + Input table columns: x, y, z, extension, luminosity. + + Output table columns: distance, glon, glat, flux, angular_extension. + + Position of observer in cartesian coordinates. + Center of galaxy as origin, x-axis goes through sun. + + Parameters + ---------- + table : `~astropy.table.Table` + Input table. + obs_pos : tuple, optional + Observation position (X, Y, Z) in Galactocentric coordinates. + Default is None, which uses the Earth's position. + + Returns + ------- + table : `~astropy.table.Table` + Modified input table with columns added. + """ + obs_pos = obs_pos or [astrometry.D_SUN_TO_GALACTIC_CENTER, 0, 0] + + # Get data + x, y, z = table["x"].quantity, table["y"].quantity, table["z"].quantity + vx, vy, vz = table["vx"].quantity, table["vy"].quantity, table["vz"].quantity + + distance, glon, glat = astrometry.galactic(x, y, z, obs_pos=obs_pos) + + # Compute projected velocity + v_glon, v_glat = astrometry.velocity_glon_glat(x, y, z, vx, vy, vz) + + coordinate = SkyCoord(glon, glat, unit="deg", frame="galactic").transform_to("icrs") + ra, dec = coordinate.ra.deg, coordinate.dec.deg + + # Add columns to table + table["distance"] = Column( + distance, unit="pc", description="Distance observer to source center" + ) + table["GLON"] = Column(glon, unit="deg", description="Galactic longitude") + table["GLAT"] = Column(glat, unit="deg", description="Galactic latitude") + table["VGLON"] = Column( + v_glon.to("deg/Myr"), + unit="deg/Myr", + description="Velocity in Galactic longitude", + ) + table["VGLAT"] = Column( + v_glat.to("deg/Myr"), + unit="deg/Myr", + description="Velocity in Galactic latitude", + ) + table["RA"] = Column(ra, unit="deg", description="Right ascension") + table["DEC"] = Column(dec, unit="deg", description="Declination") + + try: + luminosity = table["luminosity"] + flux = luminosity / (4 * np.pi * distance**2) + table["flux"] = Column(flux.value, unit=flux.unit, description="Source flux") + except KeyError: + pass + + try: + extension = table["extension"] + angular_extension = np.degrees(np.arctan(extension / distance)) + table["angular_extension"] = Column( + angular_extension, + unit="deg", + description="Source angular radius (i.e. half-diameter)", + ) + except KeyError: + pass + + return table
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/population/spatial.html b/docs/dev/_modules/gammapy/astro/population/spatial.html new file mode 100644 index 00000000000..a7b7b7f42fb --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/population/spatial.html @@ -0,0 +1,1149 @@ + + + + + + + + + + gammapy.astro.population.spatial — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.population.spatial

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Galactic radial source distribution probability density functions."""
+import numpy as np
+from astropy.modeling import Fittable1DModel, Parameter
+from astropy.units import Quantity
+from gammapy.utils.coordinates import D_SUN_TO_GALACTIC_CENTER, cartesian, polar
+from gammapy.utils.random import get_random_state
+
+__all__ = [
+    "CaseBattacharya1998",
+    "Exponential",
+    "FaucherKaspi2006",
+    "FaucherSpiral",
+    "LogSpiral",
+    "Lorimer2006",
+    "Paczynski1990",
+    "radial_distributions",
+    "ValleeSpiral",
+    "YusifovKucuk2004",
+    "YusifovKucuk2004B",
+]
+
+# Simulation range used for random number drawing
+RMIN, RMAX = Quantity([0, 20], "kpc")
+ZMIN, ZMAX = Quantity([-0.5, 0.5], "kpc")
+
+
+
+[docs] +class Paczynski1990(Fittable1DModel): + r"""Radial distribution of the birth surface density of neutron stars. + + .. math:: + f(r) = A r_{exp}^{-2} \exp \left(-\frac{r}{r_{exp}} \right) + + Formula (2) [Paczynski1990]_. + + Parameters + ---------- + amplitude : float + See formula. + r_exp : float + See formula. + + See Also + -------- + CaseBattacharya1998, YusifovKucuk2004, Lorimer2006, YusifovKucuk2004B, + FaucherKaspi2006, Exponential + + References + ---------- + .. [Paczynski1990] https://ui.adsabs.harvard.edu/abs/1990ApJ...348..485P + """ + + amplitude = Parameter() + r_exp = Parameter() + evolved = False + + def __init__(self, amplitude=1, r_exp=4.5, **kwargs): + super().__init__(amplitude=amplitude, r_exp=r_exp, **kwargs) + +
+[docs] + @staticmethod + def evaluate(r, amplitude, r_exp): + """Evaluate model.""" + return amplitude * r_exp**-2 * np.exp(-r / r_exp)
+
+ + + +
+[docs] +class CaseBattacharya1998(Fittable1DModel): + r"""Radial distribution of the surface density of supernova remnants in the galaxy. + + .. math:: + f(r) = A \left( \frac{r}{r_{\odot}} \right) ^ \alpha \exp + \left[ -\beta \left( \frac{ r - r_{\odot}}{r_{\odot}} \right) \right] + + Formula (14) [CaseBattacharya1998]_. + + Parameters + ---------- + amplitude : float + See model formula. + alpha : float + See model formula. + beta : float + See model formula. + + See Also + -------- + Paczynski1990, YusifovKucuk2004, Lorimer2006, YusifovKucuk2004B, + FaucherKaspi2006, Exponential + + References + ---------- + .. [CaseBattacharya1998] https://ui.adsabs.harvard.edu/abs/1998ApJ...504..761C + """ + + amplitude = Parameter() + alpha = Parameter() + beta = Parameter() + evolved = True + + def __init__(self, amplitude=1.0, alpha=2, beta=3.53, **kwargs): + super().__init__(amplitude=amplitude, alpha=alpha, beta=beta, **kwargs) + +
+[docs] + @staticmethod + def evaluate(r, amplitude, alpha, beta): + """Evaluate model.""" + d_sun = D_SUN_TO_GALACTIC_CENTER.value + term1 = (r / d_sun) ** alpha + term2 = np.exp(-beta * (r - d_sun) / d_sun) + return amplitude * term1 * term2
+
+ + + +
+[docs] +class YusifovKucuk2004(Fittable1DModel): + r"""Radial distribution of the surface density of pulsars in the galaxy. + + .. math:: + f(r) = A \left ( \frac{r + r_1}{r_{\odot} + r_1} \right )^a \exp + \left [-b \left( \frac{r - r_{\odot}}{r_{\odot} + r_1} \right ) \right ] + + Used by Faucher-Guigere and Kaspi. Density at ``r = 0`` is nonzero. + + Formula (15) [YusifovKucuk2004]_. + + Parameters + ---------- + amplitude : float + See model formula. + a : float + See model formula. + b : float + See model formula. + r_1 : float + See model formula. + + See Also + -------- + CaseBattacharya1998, Paczynski1990, Lorimer2006, YusifovKucuk2004B, + FaucherKaspi2006, Exponential + + References + ---------- + .. [YusifovKucuk2004] https://ui.adsabs.harvard.edu/abs/2004A%26A...422..545Y + """ + + amplitude = Parameter() + a = Parameter() + b = Parameter() + r_1 = Parameter() + evolved = True + + def __init__(self, amplitude=1, a=1.64, b=4.01, r_1=0.55, **kwargs): + super().__init__(amplitude=amplitude, a=a, b=b, r_1=r_1, **kwargs) + +
+[docs] + @staticmethod + def evaluate(r, amplitude, a, b, r_1): + """Evaluate model.""" + d_sun = D_SUN_TO_GALACTIC_CENTER.value + term1 = ((r + r_1) / (d_sun + r_1)) ** a + term2 = np.exp(-b * (r - d_sun) / (d_sun + r_1)) + return amplitude * term1 * term2
+
+ + + +
+[docs] +class YusifovKucuk2004B(Fittable1DModel): + r"""Radial distribution of the surface density of OB stars in the galaxy. + + .. math:: + f(r) = A \left( \frac{r}{r_{\odot}} \right) ^ a + \exp \left[ -b \left( \frac{r}{r_{\odot}} \right) \right] + + Derived empirically from OB-stars distribution. + + Formula (17) [YusifovKucuk2004]_. + + Parameters + ---------- + amplitude : float + See model formula. + a : float + See model formula. + b : float + See model formula. + + See Also + -------- + CaseBattacharya1998, Paczynski1990, YusifovKucuk2004, Lorimer2006, + FaucherKaspi2006, Exponential + + References + ---------- + .. [YusifovKucuk2004] https://ui.adsabs.harvard.edu/abs/2004A%26A...422..545Y + + """ + + amplitude = Parameter() + a = Parameter() + b = Parameter() + evolved = False + + def __init__(self, amplitude=1, a=4, b=6.8, **kwargs): + super().__init__(amplitude=amplitude, a=a, b=b, **kwargs) + +
+[docs] + @staticmethod + def evaluate(r, amplitude, a, b): + """Evaluate model.""" + d_sun = D_SUN_TO_GALACTIC_CENTER.value + return amplitude * (r / d_sun) ** a * np.exp(-b * (r / d_sun))
+
+ + + +
+[docs] +class FaucherKaspi2006(Fittable1DModel): + r""" + Radial distribution of the birth surface density of pulsars in the galaxy. + + .. math:: + f(r) = A \frac{1}{\sqrt{2 \pi} \sigma} \exp + \left(- \frac{(r - r_0)^2}{2 \sigma ^ 2}\right) + + Appendix B [FaucherKaspi2006]_. + + Parameters + ---------- + amplitude : float + See model formula. + r_0 : float + See model formula. + sigma : float + See model formula. + + See Also + -------- + CaseBattacharya1998, Paczynski1990, YusifovKucuk2004, Lorimer2006, + YusifovKucuk2004B, Exponential + + References + ---------- + .. [FaucherKaspi2006] https://ui.adsabs.harvard.edu/abs/2006ApJ...643..332F + """ + + amplitude = Parameter() + r_0 = Parameter() + sigma = Parameter() + evolved = False + + def __init__(self, amplitude=1, r_0=7.04, sigma=1.83, **kwargs): + super().__init__(amplitude=amplitude, r_0=r_0, sigma=sigma, **kwargs) + +
+[docs] + @staticmethod + def evaluate(r, amplitude, r_0, sigma): + """Evaluate model.""" + term1 = 1.0 / np.sqrt(2 * np.pi * sigma) + term2 = np.exp(-((r - r_0) ** 2) / (2 * sigma**2)) + return amplitude * term1 * term2
+
+ + + +
+[docs] +class Lorimer2006(Fittable1DModel): + r"""Radial distribution of the surface density of pulsars in the galaxy. + + .. math:: + f(r) = A \left( \frac{r}{r_{\odot}} \right) ^ B \exp + \left[ -C \left( \frac{r - r_{\odot}}{r_{\odot}} \right) \right] + + Formula (10) [Lorimer2006]_. + + Parameters + ---------- + amplitude : float + See model formula. + B : float + See model formula. + C : float + See model formula. + + See Also + -------- + CaseBattacharya1998, Paczynski1990, YusifovKucuk2004, Lorimer2006, + YusifovKucuk2004B, FaucherKaspi2006 + + References + ---------- + .. [Lorimer2006] https://ui.adsabs.harvard.edu/abs/2006MNRAS.372..777L + """ + + amplitude = Parameter() + B = Parameter() + C = Parameter() + evolved = True + + def __init__(self, amplitude=1, B=1.9, C=5.0, **kwargs): + super().__init__(amplitude=amplitude, B=B, C=C, **kwargs) + +
+[docs] + @staticmethod + def evaluate(r, amplitude, B, C): + """Evaluate model.""" + d_sun = D_SUN_TO_GALACTIC_CENTER.value + term1 = (r / d_sun) ** B + term2 = np.exp(-C * (r - d_sun) / d_sun) + return amplitude * term1 * term2
+
+ + + +
+[docs] +class Exponential(Fittable1DModel): + r"""Exponential distribution. + + .. math:: + f(z) = A \exp \left(- \frac{|z|}{z_0} \right) + + Usually used for height distribution above the Galactic plane, + with 0.05 kpc as a commonly used birth height distribution. + + Parameters + ---------- + amplitude : float + See model formula. + z_0 : float + Scale height of the distribution. + + See Also + -------- + CaseBattacharya1998, Paczynski1990, YusifovKucuk2004, Lorimer2006, + YusifovKucuk2004B, FaucherKaspi2006, Exponential + """ + + amplitude = Parameter() + z_0 = Parameter() + evolved = False + + def __init__(self, amplitude=1, z_0=0.05, **kwargs): + super().__init__(amplitude=amplitude, z_0=z_0, **kwargs) + +
+[docs] + @staticmethod + def evaluate(z, amplitude, z_0): + """Evaluate model.""" + return amplitude * np.exp(-np.abs(z) / z_0)
+
+ + + +
+[docs] +class LogSpiral: + """Logarithmic spiral. + + Reference: http://en.wikipedia.org/wiki/Logarithmic_spiral + """ + +
+[docs] + def xy_position(self, theta=None, radius=None, spiralarm_index=0): + """Compute (x, y) position for a given angle or radius. + + Parameters + ---------- + theta : `~astropy.units.Quantity`, optional + Angle (deg). Default is None. + radius : `~astropy.units.Quantity`, optional + Radius (kpc). Default is None. + spiralarm_index : int, optional + Spiral arm index. Default is 0. + + Returns + ------- + x, y : `~numpy.ndarray` + Position (x, y). + """ + if (theta is None) and radius is not None: + theta = self.theta(radius, spiralarm_index=spiralarm_index) + elif (radius is None) and theta is not None: + radius = self.radius(theta, spiralarm_index=spiralarm_index) + else: + raise ValueError("Specify only one of: theta, radius") + + theta = np.radians(theta) + x = radius * np.cos(theta) + y = radius * np.sin(theta) + return x, y
+ + +
+[docs] + def radius(self, theta, spiralarm_index): + """Radius for a given angle. + + Parameters + ---------- + theta : `~astropy.units.Quantity` + Angle (deg). + spiralarm_index : int + Spiral arm index. + + Returns + ------- + radius : `~numpy.ndarray` + Radius (kpc). + """ + k = self.k[spiralarm_index] + r_0 = self.r_0[spiralarm_index] + theta_0 = self.theta_0[spiralarm_index] + d_theta = np.radians(theta - theta_0) + radius = r_0 * np.exp(d_theta / k) + return radius
+ + +
+[docs] + def theta(self, radius, spiralarm_index): + """Angle for a given radius. + + Parameters + ---------- + radius : `~astropy.units.Quantity` + Radius (kpc). + spiralarm_index : int + Spiral arm index. + + Returns + ------- + theta : `~numpy.ndarray` + Angle (deg). + """ + k = self.k[spiralarm_index] + r_0 = self.r_0[spiralarm_index] + theta_0 = self.theta_0[spiralarm_index] + theta_0 = np.radians(theta_0) + theta = k * np.log(radius / r_0) + theta_0 + return np.degrees(theta)
+
+ + + +
+[docs] +class FaucherSpiral(LogSpiral): + """Milky way spiral arm used in Faucher et al (2006). + + Reference: https://ui.adsabs.harvard.edu/abs/2006ApJ...643..332F + """ + + # Parameters + k = Quantity([4.25, 4.25, 4.89, 4.89], "rad") + r_0 = Quantity([3.48, 3.48, 4.9, 4.9], "kpc") + theta_0 = Quantity([1.57, 4.71, 4.09, 0.95], "rad") + spiralarms = np.array(["Norma", "Carina Sagittarius", "Perseus", "Crux Scutum"]) + + @staticmethod + def _blur(radius, theta, amount=0.07, random_state="random-seed"): + """Blur the positions around the centroid of the spiral arm. + + The given positions are blurred by drawing a displacement in radius from + a normal distribution, with sigma = amount * radius. And a direction + theta from a uniform distribution in the interval [0, 2 * pi]. + + Parameters + ---------- + radius : `~astropy.units.Quantity` + Radius coordinate. + theta : `~astropy.units.Quantity` + Angle coordinate. + amount : float, optional + Amount of blurring of the position, given as a fraction of `radius`. + Default is 0.07. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is 'random-seed'. + """ + random_state = get_random_state(random_state) + + dr = Quantity(abs(random_state.normal(0, amount * radius, radius.size)), "kpc") + dtheta = Quantity(random_state.uniform(0, 2 * np.pi, radius.size), "rad") + x, y = cartesian(radius, theta) + dx, dy = cartesian(dr, dtheta) + return polar(x + dx, y + dy) + + @staticmethod + def _gc_correction( + radius, theta, r_corr=Quantity(2.857, "kpc"), random_state="random-seed" + ): + """Correction of source distribution towards the galactic center. + + To avoid spiral arm features near the Galactic Center, the position angle theta + is blurred by a certain amount towards the GC. + + Parameters + ---------- + radius : `~astropy.units.Quantity` + Radius coordinate. + theta : `~astropy.units.Quantity` + Angle coordinate. + r_corr : `~astropy.units.Quantity`, optional + Scale of the correction towards the GC. + Default is 2.857 * u.kpc. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is 'random-seed'. + """ + random_state = get_random_state(random_state) + + theta_corr = Quantity(random_state.uniform(0, 2 * np.pi, radius.size), "rad") + return radius, theta + theta_corr * np.exp(-radius / r_corr) + +
+[docs] + def __call__(self, radius, blur=True, random_state="random-seed"): + """Draw random position from spiral arm distribution. + + Returns the corresponding angle theta[rad] to a given radius[kpc] and number of spiral arm. + Possible numbers are: + + * Norma = 0, + * Carina Sagittarius = 1, + * Perseus = 2 + * Crux Scutum = 3. + + Parameters + ---------- + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is 'random-seed'. + + Returns + ------- + Returns dx and dy, if blurring= true. + """ + random_state = get_random_state(random_state) + + # Choose spiral arm + N = random_state.randint(0, 4, radius.size) + theta = self.k[N] * np.log(radius / self.r_0[N]) + self.theta_0[N] + spiralarm = self.spiralarms[N] + + if blur: # Apply blurring model according to Faucher + radius, theta = self._blur(radius, theta, random_state=random_state) + radius, theta = self._gc_correction( + radius, theta, random_state=random_state + ) + return radius, theta, spiralarm
+
+ + + +
+[docs] +class ValleeSpiral(LogSpiral): + """Milky way spiral arm model from Vallee (2008). + + Reference: https://ui.adsabs.harvard.edu/abs/2008AJ....135.1301V + """ + + # Model parameters + p = Quantity(12.8, "deg") # pitch angle in deg + m = 4 # number of spiral arms + r_sun = Quantity(7.6, "kpc") # distance sun to Galactic center in kpc + r_0 = Quantity(2.1, "kpc") # spiral inner radius in kpc + theta_0 = Quantity(-20, "deg") # Norma spiral arm start angle + bar_radius = Quantity(3.0, "kpc") # Radius of the galactic bar (not equal r_0!) + + spiralarms = np.array(["Norma", "Perseus", "Carina Sagittarius", "Crux Scutum"]) + + def __init__(self): + self.r_0 = self.r_0 * np.ones(4) + self.theta_0 = self.theta_0 + Quantity([0, 90, 180, 270], "deg") + self.k = Quantity(1.0 / np.tan(np.radians(self.p.value)) * np.ones(4), "rad") + + # Compute start and end point of the bar + x_0, y_0 = self.xy_position(radius=self.bar_radius, spiralarm_index=0) + x_1, y_1 = self.xy_position(radius=self.bar_radius, spiralarm_index=2) + self.bar = dict(x=Quantity([x_0, x_1]), y=Quantity([y_0, y_1]))
+ + + +"""Radial distribution (dict mapping names to classes).""" +radial_distributions = { + "CB98": CaseBattacharya1998, + "F06": FaucherKaspi2006, + "L06": Lorimer2006, + "P90": Paczynski1990, + "YK04": YusifovKucuk2004, + "YK04B": YusifovKucuk2004B, +} +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/population/velocity.html b/docs/dev/_modules/gammapy/astro/population/velocity.html new file mode 100644 index 00000000000..212938128d5 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/population/velocity.html @@ -0,0 +1,681 @@ + + + + + + + + + + gammapy.astro.population.velocity — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.population.velocity

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Pulsar velocity distribution models."""
+import numpy as np
+from astropy.modeling import Fittable1DModel, Parameter
+from astropy.units import Quantity
+
+__all__ = [
+    "FaucherKaspi2006VelocityBimodal",
+    "FaucherKaspi2006VelocityMaxwellian",
+    "Paczynski1990Velocity",
+    "velocity_distributions",
+]
+
+# Simulation range used for random number drawing
+VMIN, VMAX = Quantity([0, 4000], "km/s")
+
+
+
+[docs] +class FaucherKaspi2006VelocityMaxwellian(Fittable1DModel): + r"""Maxwellian pulsar velocity distribution. + + .. math:: + f(v) = A \sqrt{ \frac{2}{\pi}} \frac{v ^ 2}{\sigma ^ 3 } + \exp \left(-\frac{v ^ 2}{2 \sigma ^ 2} \right) + + Reference: https://ui.adsabs.harvard.edu/abs/2006ApJ...643..332F + + Parameters + ---------- + amplitude : float + Value of the integral. + sigma : float + Velocity parameter (km s^-1). + """ + + amplitude = Parameter() + sigma = Parameter() + + def __init__(self, amplitude=1, sigma=265, **kwargs): + super().__init__(amplitude=amplitude, sigma=sigma, **kwargs) + +
+[docs] + @staticmethod + def evaluate(v, amplitude, sigma): + """One dimensional velocity model function.""" + term1 = np.sqrt(2 / np.pi) * v**2 / sigma**3 + term2 = np.exp(-(v**2) / (2 * sigma**2)) + return term1 * term2
+
+ + + +
+[docs] +class FaucherKaspi2006VelocityBimodal(Fittable1DModel): + r"""Bimodal pulsar velocity distribution. - Faucher & Kaspi (2006). + + .. math:: + f(v) = A\sqrt{\frac{2}{\pi}} v^2 \left[\frac{w}{\sigma_1^3} + \exp \left(-\frac{v^2}{2\sigma_1^2} \right) + \frac{1-w}{\sigma_2^3} + \exp \left(-\frac{v^2}{2\sigma_2^2} \right) \right] + + Formula (7) [FaucherKaspi2006]_. + + Parameters + ---------- + amplitude : float + Value of the integral. + sigma1 : float + See model formula. + sigma2 : float + See model formula. + w : float + See model formula. + + References + ---------- + .. [FaucherKaspi2006] https://ui.adsabs.harvard.edu/abs/2006ApJ...643..332F + """ + + amplitude = Parameter() + sigma_1 = Parameter() + sigma_2 = Parameter() + w = Parameter() + + def __init__(self, amplitude=1, sigma_1=160, sigma_2=780, w=0.9, **kwargs): + super().__init__( + amplitude=amplitude, sigma_1=sigma_1, sigma_2=sigma_2, w=w, **kwargs + ) + +
+[docs] + @staticmethod + def evaluate(v, amplitude, sigma_1, sigma_2, w): + """One dimensional Faucher-Guigere & Kaspi 2006 velocity model function.""" + A = amplitude * np.sqrt(2 / np.pi) * v**2 + term1 = (w / sigma_1**3) * np.exp(-(v**2) / (2 * sigma_1**2)) + term2 = (1 - w) / sigma_2**3 * np.exp(-(v**2) / (2 * sigma_2**2)) + return A * (term1 + term2)
+
+ + + +
+[docs] +class Paczynski1990Velocity(Fittable1DModel): + r"""Distribution by Lyne 1982 and adopted by Paczynski and Faucher. + + .. math:: + f(v) = A\frac{4}{\pi} \frac{1}{v_0 \left[1 + (v / v_0) ^ 2 \right] ^ 2} + + Formula (3) [Paczynski1990]_. + + Parameters + ---------- + amplitude : float + Value of the integral. + v_0 : float + Velocity parameter (km s^-1). + + References + ---------- + .. [Paczynski1990] https://ui.adsabs.harvard.edu/abs/1990ApJ...348..485P + """ + + amplitude = Parameter() + v_0 = Parameter() + + def __init__(self, amplitude=1, v_0=560, **kwargs): + super().__init__(amplitude=amplitude, v_0=v_0, **kwargs) + +
+[docs] + @staticmethod + def evaluate(v, amplitude, v_0): + """One dimensional Paczynski 1990 velocity model function.""" + return amplitude * 4.0 / (np.pi * v_0 * (1 + (v / v_0) ** 2) ** 2)
+
+ + + +"""Velocity distributions (dict mapping names to classes).""" +velocity_distributions = { + "H05": FaucherKaspi2006VelocityMaxwellian, + "F06B": FaucherKaspi2006VelocityBimodal, + "F06P": Paczynski1990Velocity, +} +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/source/pulsar.html b/docs/dev/_modules/gammapy/astro/source/pulsar.html new file mode 100644 index 00000000000..c5257b8776d --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/source/pulsar.html @@ -0,0 +1,754 @@ + + + + + + + + + + gammapy.astro.source.pulsar — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.source.pulsar

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Pulsar source models."""
+import html
+import numpy as np
+from astropy.units import Quantity
+
+__all__ = ["Pulsar", "SimplePulsar"]
+
+DEFAULT_I = Quantity(1e45, "g cm2")
+"""Pulsar default moment of inertia"""
+
+DEFAULT_R = Quantity(1e6, "cm")
+"""Pulsar default radius of the neutron star"""
+
+B_CONST = Quantity(3.2e19, "gauss s^(-1/2)")
+"""Pulsar default magnetic field constant"""
+
+
+
+[docs] +class SimplePulsar: + """Magnetic dipole spin-down model for a pulsar. + + Parameters + ---------- + P : `~astropy.units.Quantity` + Rotation period (sec). + P_dot : `~astropy.units.Quantity` + Rotation period derivative (sec sec^-1). + I : `~astropy.units.Quantity` + Moment of inertia (g cm^2). + R : `~astropy.units.Quantity` + Radius of the pulsar (cm). + """ + + def __init__(self, P, P_dot, I=DEFAULT_I, R=DEFAULT_R): # noqa: E741 + self.P = Quantity(P, "s") + self.P_dot = P_dot + self.I = I # noqa: E741 + self.R = R + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def luminosity_spindown(self): + r"""Spin-down luminosity as a `~astropy.units.Quantity`. + + .. math:: \dot{L} = 4\pi^2 I \frac{\dot{P}}{P^{3}} + """ + return 4 * np.pi**2 * self.I * self.P_dot / self.P**3 + + @property + def tau(self): + r"""Characteristic age as a `~astropy.units.Quantity`. + + .. math:: \tau = \frac{P}{2\dot{P}} + """ + return (self.P / (2 * self.P_dot)).to("yr") + + @property + def magnetic_field(self): + r"""Magnetic field strength at the polar cap as a `~astropy.units.Quantity`. + + .. math:: B = 3.2 \cdot 10^{19} (P\dot{P})^{1/2} \text{ Gauss} + """ + return B_CONST * np.sqrt(self.P * self.P_dot)
+ + + +
+[docs] +class Pulsar: + """Magnetic dipole spin-down pulsar model. + + Parameters + ---------- + P_0 : float + Period at birth. + B : `~astropy.units.Quantity` + Magnetic field strength at the poles (Gauss). + n : float + Spin-down braking index. + I : float + Moment of inertia. + R : float + Radius. + """ + + def __init__( + self, + P_0="0.1 s", + B="1e10 G", + n=3, + I=DEFAULT_I, # noqa: E741 + R=DEFAULT_R, + age=None, + L_0=None, # noqa: E741 + ): + P_0 = Quantity(P_0, "s") + B = Quantity(B, "G") + + self.I = I # noqa: E741 + self.R = R + self.P_0 = P_0 + self.B = B + self.P_dot_0 = (B / B_CONST) ** 2 / P_0 + self.tau_0 = P_0 / (2 * self.P_dot_0) + self.n = float(n) + self.beta = -(n + 1.0) / (n - 1.0) + if age is not None: + self.age = Quantity(age, "yr") + if L_0 is None: + self.L_0 = 4 * np.pi**2 * self.I * self.P_dot_0 / self.P_0**3 + +
+[docs] + def luminosity_spindown(self, t): + r"""Spin down luminosity. + + .. math:: + \dot{L}(t) = \dot{L}_0 \left(1 + \frac{t}{\tau_0}\right)^{-\frac{n + 1}{n - 1}} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the pulsar. + """ + t = Quantity(t, "yr") + return self.L_0 * (1 + (t / self.tau_0)) ** self.beta
+ + +
+[docs] + def energy_integrated(self, t): + r"""Total energy released by a given time. + + Time-integrated spin-down luminosity since birth. + + .. math:: E(t) = \dot{L}_0 \tau_0 \frac{t}{t + \tau_0} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the pulsar. + """ + t = Quantity(t, "yr") + return self.L_0 * self.tau_0 * (t / (t + self.tau_0))
+ + +
+[docs] + def period(self, t): + r"""Rotation period. + + .. math:: + P(t) = P_0 \left(1 + \frac{t}{\tau_0}\right)^{\frac{1}{n - 1}} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the pulsar. + """ + t = Quantity(t, "yr") + return self.P_0 * (1 + (t / self.tau_0)) ** (1.0 / (self.n - 1))
+ + +
+[docs] + def period_dot(self, t): + r"""Period derivative at age t. + + P_dot for a given period and magnetic field B, assuming a dipole + spin-down. + + .. math:: \dot{P}(t) = \frac{B^2}{3.2 \cdot 10^{19} P(t)} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the pulsar. + """ + t = Quantity(t, "yr") + return self.B**2 / (self.period(t) * B_CONST**2)
+ + +
+[docs] + def tau(self, t): + r"""Characteristic age at real age t. + + .. math:: \tau = \frac{P}{2\dot{P}} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the pulsar. + """ + t = Quantity(t, "yr") + return self.period(t) / 2 * self.period_dot(t)
+ + +
+[docs] + def magnetic_field(self, t): + r"""Magnetic field at polar cap (assumed constant). + + .. math:: + B = 3.2 \cdot 10^{19} (P\dot{P})^{1/2} \text{ Gauss} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the pulsar. + """ + t = Quantity(t, "yr") + return B_CONST * np.sqrt(self.period(t) * self.period_dot(t))
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/source/pwn.html b/docs/dev/_modules/gammapy/astro/source/pwn.html new file mode 100644 index 00000000000..da08c16c9a4 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/source/pwn.html @@ -0,0 +1,671 @@ + + + + + + + + + + gammapy.astro.source.pwn — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.source.pwn

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Pulsar wind nebula (PWN) source models."""
+import html
+import numpy as np
+import scipy.optimize
+import astropy.constants
+from astropy.units import Quantity
+from astropy.utils import lazyproperty
+from .pulsar import Pulsar
+from .snr import SNRTrueloveMcKee
+
+__all__ = ["PWN"]
+
+
+
+[docs] +class PWN: + """Simple pulsar wind nebula (PWN) evolution model. + + Parameters + ---------- + pulsar : `~gammapy.astro.source.Pulsar` + Pulsar model instance. + snr : `~gammapy.astro.source.SNRTrueloveMcKee` + SNR model instance. + eta_e : float + Fraction of energy going into electrons. + eta_B : float + Fraction of energy going into magnetic fields. + age : `~astropy.units.Quantity` + Age of the PWN. + morphology : str + Morphology model of the PWN. + """ + + def __init__( + self, + pulsar=Pulsar(), + snr=SNRTrueloveMcKee(), + eta_e=0.999, + eta_B=0.001, + morphology="Gaussian2D", + age=None, + ): + self.pulsar = pulsar + if not isinstance(snr, SNRTrueloveMcKee): + raise ValueError("SNR must be instance of SNRTrueloveMcKee") + self.snr = snr + self.eta_e = eta_e + self.eta_B = eta_B + self.morphology = morphology + if age is not None: + self.age = Quantity(age, "yr") + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def _radius_free_expansion(self, t): + """Radius at age t during free expansion phase. + + Reference: https://ui.adsabs.harvard.edu/abs/2006ARA%26A..44...17G (Formula 8). + """ + term1 = (self.snr.e_sn**3 * self.pulsar.L_0**2) / (self.snr.m_ejecta**5) + return (1.44 * term1 ** (1.0 / 10) * t ** (6.0 / 5)).cgs + + @lazyproperty + def _collision_time(self): + """Time of collision between the PWN and the reverse shock of the SNR. + + Returns + ------- + t_coll : `~astropy.units.Quantity` + Time of collision. + """ + + def time_coll(t): + t = Quantity(t, "yr") + r_pwn = self._radius_free_expansion(t).to_value("cm") + r_shock = self.snr.radius_reverse_shock(t).to_value("cm") + return r_pwn - r_shock + + # 4e3 years is a typical value that works for fsolve + return Quantity(scipy.optimize.fsolve(time_coll, 4e3), "yr") + +
+[docs] + def radius(self, t): + r"""Radius of the PWN at age t. + + During the free expansion phase the radius of the PWN evolves like: + + .. math:: + R_{PWN}(t) = 1.44 \left(\frac{E_{SN}^3\dot{E}_0^2} + {M_{ej}^5}\right)^{1/10}t^{6/5} + \text{pc} + + After the collision with the reverse shock of the SNR, the radius is + assumed to be constant (See `~gammapy.astro.source.SNRTrueloveMcKee.radius_reverse_shock`). + + Reference: https://ui.adsabs.harvard.edu/abs/2006ARA%26A..44...17G (Formula 8). + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + t = Quantity(t, "yr") + r_collision = self._radius_free_expansion(self._collision_time) + r = np.where( + t < self._collision_time, + self._radius_free_expansion(t).value, + r_collision.value, + ) + return Quantity(r, "cm")
+ + +
+[docs] + def magnetic_field(self, t): + """Estimate of the magnetic field inside the PWN. + + By assuming that a certain fraction of the spin down energy is + converted to magnetic field energy an estimation of the magnetic + field can be derived. + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + t = Quantity(t, "yr") + energy = self.pulsar.energy_integrated(t) + volume = 4.0 / 3 * np.pi * self.radius(t) ** 3 + return np.sqrt(2 * astropy.constants.mu0 * self.eta_B * energy / volume)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/astro/source/snr.html b/docs/dev/_modules/gammapy/astro/source/snr.html new file mode 100644 index 00000000000..bfb379d89a4 --- /dev/null +++ b/docs/dev/_modules/gammapy/astro/source/snr.html @@ -0,0 +1,876 @@ + + + + + + + + + + gammapy.astro.source.snr — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.astro.source.snr

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Supernova remnant (SNR) source models."""
+import html
+import numpy as np
+import astropy.constants
+from astropy.units import Quantity
+from astropy.utils import lazyproperty
+
+__all__ = ["SNR", "SNRTrueloveMcKee"]
+
+
+
+[docs] +class SNR: + """Simple supernova remnant (SNR) evolution model. + + The model is based on the Sedov-Taylor solution for strong explosions. + + Reference: https://ui.adsabs.harvard.edu/abs/1950RSPSA.201..159T + + Parameters + ---------- + e_sn : `~astropy.units.Quantity` + SNR energy (erg), equal to the SN energy after neutrino losses. + theta : `~astropy.units.Quantity` + Fraction of E_SN that goes into cosmic rays. + n_ISM : `~astropy.units.Quantity` + ISM density (g cm^-3). + m_ejecta : `~astropy.units.Quantity` + Ejecta mass (g). + t_stop : `~astropy.units.Quantity` + Post-shock temperature where gamma-ray emission stops. + """ + + def __init__( + self, + e_sn="1e51 erg", + theta=Quantity(0.1), + n_ISM=Quantity(1, "cm-3"), + m_ejecta=astropy.constants.M_sun, + t_stop=Quantity(1e6, "K"), + age=None, + morphology="Shell2D", + spectral_index=2.1, + ): + self.e_sn = Quantity(e_sn, "erg") + self.theta = theta + self.rho_ISM = n_ISM * astropy.constants.m_p + self.n_ISM = n_ISM + self.m_ejecta = m_ejecta + self.t_stop = t_stop + self.morphology = morphology + self.spectral_index = spectral_index + if age is not None: + self.age = Quantity(age, "yr") + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def radius(self, t): + r"""Outer shell radius at age t. + + The radius during the free expansion phase is given by: + + .. math:: + r_{SNR}(t) \approx 0.01 + \left(\frac{E_{SN}}{10^{51}erg}\right)^{1/2} + \left(\frac{M_{ej}}{M_{\odot}}\right)^{-1/2} t + \text{ pc} + + The radius during the Sedov-Taylor phase evolves like: + + .. math:: + r_{SNR}(t) \approx \left(\frac{E_{SN}}{\rho_{ISM}}\right)^{1/5}t^{2/5} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + t = Quantity(t, "yr") + r = np.where( + t > self.sedov_taylor_begin, + self._radius_sedov_taylor(t).to_value("cm"), + self._radius_free_expansion(t).to_value("cm"), + ) + return Quantity(r, "cm")
+ + + def _radius_free_expansion(self, t): + """Shock radius at age t during free expansion phase. + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + # proportional constant for the free expansion phase + term_1 = (self.e_sn / Quantity(1e51, "erg")) ** (1.0 / 2) + term_2 = (self.m_ejecta / astropy.constants.M_sun) ** (-1.0 / 2) + return Quantity(0.01, "pc/yr") * term_1 * term_2 * t + + def _radius_sedov_taylor(self, t): + """Shock radius at age t during Sedov Taylor phase. + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + R_FE = self._radius_free_expansion(self.sedov_taylor_begin) + return R_FE * (t / self.sedov_taylor_begin) ** (2.0 / 5) + +
+[docs] + def radius_inner(self, t, fraction=0.0914): + """Inner radius at age t of the SNR shell. + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + return self.radius(t) * (1 - fraction)
+ + +
+[docs] + def luminosity_tev(self, t, energy_min="1 TeV"): + r"""Gamma-ray luminosity above ``energy_min`` at age ``t``. + + The luminosity is assumed constant in a given age interval and zero + before and after. The assumed spectral index is 2.1. + + The gamma-ray luminosity above 1 TeV is given by: + + .. math:: + L_{\gamma}(\geq 1TeV) \approx 10^{34} \theta + \left(\frac{E_{SN}}{10^{51} erg}\right) + \left(\frac{\rho_{ISM}}{1.66\cdot 10^{-24} g/cm^{3}} \right) + \text{ s}^{-1} + + Reference: https://ui.adsabs.harvard.edu/abs/1994A%26A...287..959D (Formula (7)). + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + energy_min : `~astropy.units.Quantity` + Lower energy limit for the luminosity. + """ + t = Quantity(t, "yr") + energy_min = Quantity(energy_min, "TeV") + + # Flux in 1 k distance according to Drury formula 9 + term_0 = energy_min / Quantity(1, "TeV") + term_1 = self.e_sn / Quantity(1e51, "erg") + term_2 = self.rho_ISM / (Quantity(1, "cm-3") * astropy.constants.m_p) + L = self.theta * term_0 ** (1 - self.spectral_index) * term_1 * term_2 + + # Corresponding luminosity + L = np.select( + [t <= self.sedov_taylor_begin, t <= self.sedov_taylor_end], [0, L] + ) + return Quantity(1.0768e34, "s-1") * L
+ + + @lazyproperty + def sedov_taylor_begin(self): + r"""Characteristic time scale when the Sedov-Taylor phase of the SNR's evolution begins. + + The beginning of the Sedov-Taylor phase of the SNR is defined by the condition, + that the swept up mass of the surrounding medium equals the mass of the + ejected mass. + + The time scale is given by: + + .. math:: + t_{begin} \approx 200 + \left(\frac{E_{SN}}{10^{51}erg}\right)^{-1/2} + \left(\frac{M_{ej}}{M_{\odot}}\right)^{5/6} + \left(\frac{\rho_{ISM}}{10^{-24}g/cm^3}\right)^{-1/3} + \text{yr} + """ + term1 = (self.e_sn / Quantity(1e51, "erg")) ** (-1.0 / 2) + term2 = (self.m_ejecta / astropy.constants.M_sun) ** (5.0 / 6) + term3 = (self.rho_ISM / (Quantity(1, "cm-3") * astropy.constants.m_p)) ** ( + -1.0 / 3 + ) + return Quantity(200, "yr") * term1 * term2 * term3 + + @lazyproperty + def sedov_taylor_end(self): + r"""Characteristic time scale when the Sedov-Taylor phase of the SNR's evolution ends. + + The end of the Sedov-Taylor phase of the SNR is defined by the condition, that the + temperature at the shock drops below T = 10^6 K. + + The time scale is given by: + + .. math:: + t_{end} \approx 43000 + \left(\frac{m}{1.66\cdot 10^{-24}g}\right)^{5/6} + \left(\frac{E_{SN}}{10^{51}erg}\right)^{1/3} + \left(\frac{\rho_{ISM}}{1.66\cdot 10^{-24}g/cm^3}\right)^{-1/3} + \text{yr} + """ + term1 = ( + 3 + * astropy.constants.m_p.cgs + / (100 * astropy.constants.k_B.cgs * self.t_stop) + ) + term2 = (self.e_sn / self.rho_ISM) ** (2.0 / 5) + return ((term1 * term2) ** (5.0 / 6)).to("yr")
+ + + +
+[docs] +class SNRTrueloveMcKee(SNR): + """SNR model according to Truelove & McKee (1999). + + Reference: https://ui.adsabs.harvard.edu/abs/1999ApJS..120..299T + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Characteristic dimensions + self.r_c = self.m_ejecta ** (1.0 / 3) * self.rho_ISM ** (-1.0 / 3) + self.t_c = ( + self.e_sn ** (-1.0 / 2) + * self.m_ejecta ** (5.0 / 6) + * self.rho_ISM ** (-1.0 / 3) + ) + +
+[docs] + def radius(self, t): + r"""Outer shell radius at age t. + + The radius during the free expansion phase is given by: + + .. math:: + R_{SNR}(t) = 1.12R_{ch}\left(\frac{t}{t_{ch}}\right)^{2/3} + + The radius during the Sedov-Taylor phase evolves like: + + .. math:: + R_{SNR}(t) = \left[R_{SNR, ST}^{5/2} + \left(2.026\frac{E_{SN}} + {\rho_{ISM}}\right)^{1/2}(t - t_{ST})\right]^{2/5} + + Using the characteristic dimensions: + + .. math:: + R_{ch} = M_{ej}^{1/3}\rho_{ISM}^{-1/3} \ \ + \text{and} \ \ t_{ch} = E_{SN}^{-1/2}M_{ej}^{5/6}\rho_{ISM}^{-1/3} + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + t = Quantity(t, "yr") + + # Evaluate `_radius_sedov_taylor` on `t > self.sedov_taylor_begin` + # only to avoid a warning + r = np.empty(t.shape, dtype=np.float64) + mask = t > self.sedov_taylor_begin + r[mask] = self._radius_sedov_taylor(t[mask]).to_value("cm") + r[~mask] = self._radius_free_expansion(t[~mask]).to_value("cm") + return Quantity(r, "cm")
+ + + def _radius_free_expansion(self, t): + """Shock radius at age t during free expansion phase. + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + return 1.12 * self.r_c * (t / self.t_c) ** (2.0 / 3) + + def _radius_sedov_taylor(self, t): + """Shock radius at age t during Sedov Taylor phase. + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + term1 = self._radius_free_expansion(self.sedov_taylor_begin) ** (5.0 / 2) + term2 = (2.026 * (self.e_sn / self.rho_ISM)) ** (1.0 / 2) + return (term1 + term2 * (t - self.sedov_taylor_begin)) ** (2.0 / 5) + + @lazyproperty + def sedov_taylor_begin(self): + r"""Characteristic time scale when the Sedov-Taylor phase starts. + + Given by :math:`t_{ST} \approx 0.52 t_{ch}`. + """ + return 0.52 * self.t_c + +
+[docs] + def radius_reverse_shock(self, t): + r"""Reverse shock radius at age t. + + Initially the reverse shock co-evolves with the radius of the SNR: + + .. math:: + R_{RS}(t) = \frac{1}{1.19}r_{SNR}(t) + + After a time :math:`t_{core} \simeq 0.25t_{ch}` the reverse shock reaches + the core and then propagates as: + + .. math:: + R_{RS}(t) = \left[1.49 - 0.16 \frac{t - t_{core}}{t_{ch}} - 0.46 + \ln \left(\frac{t}{t_{core}}\right)\right]\frac{R_{ch}}{t_{ch}}t + + Parameters + ---------- + t : `~astropy.units.Quantity` + Time after birth of the SNR. + """ + t = Quantity(t, "yr") + + # Time when reverse shock reaches the "core" + t_core = 0.25 * self.t_c + + term1 = (t - t_core) / (self.t_c) + term2 = 1.49 - 0.16 * term1 - 0.46 * np.log(t / t_core) + R_1 = self._radius_free_expansion(t) / 1.19 + R_RS = term2 * (self.r_c / self.t_c) * t + r = np.where(t < t_core, R_1.to_value("cm"), R_RS.to_value("cm")) + return Quantity(r, "cm")
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/catalog/core.html b/docs/dev/_modules/gammapy/catalog/core.html new file mode 100644 index 00000000000..85a786afcf9 --- /dev/null +++ b/docs/dev/_modules/gammapy/catalog/core.html @@ -0,0 +1,889 @@ + + + + + + + + + + gammapy.catalog.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.catalog.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Source catalog and object base classes."""
+import abc
+import html
+import numbers
+from copy import deepcopy
+import numpy as np
+from astropy.coordinates import SkyCoord
+from astropy.table import Table
+from astropy.utils import lazyproperty
+from gammapy.maps import TimeMapAxis
+from gammapy.modeling.models import Models
+from gammapy.utils.table import table_row_to_dict
+
+__all__ = ["SourceCatalog", "SourceCatalogObject"]
+
+
+# https://pydanny.blogspot.com/2011/11/loving-bunch-class.html
+class Bunch(dict):
+    def __init__(self, **kw):
+        dict.__init__(self, kw)
+        self.__dict__.update(kw)
+
+
+def format_flux_points_table(table):
+    for column in table.colnames:
+        if column.startswith(("dnde", "eflux", "flux", "e2dnde", "ref")):
+            table[column].format = ".3e"
+        elif column.startswith(
+            ("e_min", "e_max", "e_ref", "sqrt_ts", "norm", "ts", "stat")
+        ):
+            table[column].format = ".3f"
+
+    return table
+
+
+
+[docs] +class SourceCatalogObject: + """Source catalog object. + + This class can be used directly, but it is mostly used as a + base class for the other source catalog classes. + + The catalog data on this source is stored in the `source.data` + attribute as a dict. + + The source catalog object is decoupled from the source catalog, + it doesn't hold a reference back to it, except for a key + ``_row_index`` of type ``int`` that links to the catalog table + row the source information comes from. + + Parameters + ---------- + data : dict + Dictionary of data from a catalog for a given source. + data_extended : dict + Dictionary of data from a catalog for a given source in the case where the + catalog contains an extended sources table (Fermi-LAT). + data_spectral : dict + Dictionary of data from a catalof for a given source in the case where the + catalog contains a spectral table (Fermi-LAT 2PC and 3PC). + """ + + _source_name_key = "Source_Name" + _row_index_key = "_row_index" + + def __init__(self, data, data_extended=None, data_spectral=None): + self.data = Bunch(**data) + if data_extended: + self.data_extended = Bunch(**data_extended) + self.data_spectral = Bunch(**data_spectral) if data_spectral else None + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def name(self): + """Source name as a string.""" + name = self.data[self._source_name_key] + return name.strip() + + @property + def row_index(self): + """Row index of source in catalog as an integer.""" + return self.data[self._row_index_key] + + @property + def position(self): + """Source position as an `~astropy.coordinates.SkyCoord` object.""" + table = Table([self.data]) + return _skycoord_from_table(table)[0]
+ + + +
+[docs] +class SourceCatalog(abc.ABC): + """Generic source catalog. + + This class can be used directly, but it is mostly used as a + base class for the other source catalog classes. + + This is a thin wrapper around `~astropy.table.Table`, + which is stored in the ``catalog.table`` attribute. + + Parameters + ---------- + table : `~astropy.table.Table` + Table with catalog data. + source_name_key : str + Column with source name information. + source_name_alias : tuple of str + Columns with source name aliases. This will allow accessing the source + row by alias names as well. + """ + +
+[docs] + @classmethod + @abc.abstractmethod + def description(cls): + """Catalog description as a string.""" + pass
+ + + @property + @abc.abstractmethod + def tag(self): + pass + + source_object_class = SourceCatalogObject + """Source class (`SourceCatalogObject`).""" + + def __init__(self, table, source_name_key="Source_Name", source_name_alias=()): + self.table = table + self._source_name_key = source_name_key + self._source_name_alias = source_name_alias + + def __str__(self): + return ( + f"{self.__class__.__name__}:\n" + f" name: {self.tag}\n" + f" description: {self.description}\n" + f" sources: {len(self.table)}\n" + ) + + @lazyproperty + def _name_to_index_cache(self): + # Make a dict for quick lookup: source name -> row index + names = {} + for idx, row in enumerate(self.table): + name = row[self._source_name_key] + names[name.strip()] = idx + for alias_column in self._source_name_alias: + for alias in str(row[alias_column]).split(","): + if not alias == "": + names[alias.strip()] = idx + return names + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def row_index(self, name): + """Look up row index of source by name. + + Parameters + ---------- + name : str + Source name. + + Returns + ------- + index : int + Row index of source in table. + """ + index = self._name_to_index_cache[name] + row = self.table[index] + # check if name lookup is correct other wise recompute _name_to_index_cache + + possible_names = [row[self._source_name_key]] + for alias_column in self._source_name_alias: + possible_names += str(row[alias_column]).split(",") + + if name not in possible_names: + self.__dict__.pop("_name_to_index_cache") + index = self._name_to_index_cache[name] + + return index
+ + +
+[docs] + def source_name(self, index): + """Look up source name by row index. + + Parameters + ---------- + index : int + Row index of source in table. + """ + source_name_col = self.table[self._source_name_key] + name = source_name_col[index] + return name.strip()
+ + + def __getitem__(self, key): + """Get source by name. + + Parameters + ---------- + key : str or int + Source name or row index. + + Returns + ------- + source : `SourceCatalogObject` + An object representing one source. + """ + if isinstance(key, str): + index = self.row_index(key) + elif isinstance(key, numbers.Integral): + index = key + elif isinstance(key, np.ndarray) and key.dtype == bool: + new = deepcopy(self) + new.table = self.table[key] + return new + else: + raise TypeError(f"Invalid key: {key!r}, {type(key)}\n") + + return self._make_source_object(index) + + def _make_source_object(self, index): + """Make one source object. + + Parameters + ---------- + index : int + Row index. + + Returns + ------- + source : `SourceCatalogObject` + Source object. + """ + data = table_row_to_dict(self.table[index]) + data[SourceCatalogObject._row_index_key] = index + + fp_energy_edges = getattr(self, "flux_points_energy_edges", None) + + if fp_energy_edges is not None: + data["fp_energy_edges"] = fp_energy_edges + + hist_table = getattr(self, "hist_table", None) + hist2_table = getattr(self, "hist2_table", None) + + if hist_table: + try: + data["time_axis"] = TimeMapAxis.from_table( + hist_table, format="fermi-fgl" + ) + except KeyError: + pass + + if hist2_table: + try: + data["time_axis_2"] = TimeMapAxis.from_table( + hist2_table, format="fermi-fgl" + ) + except KeyError: + pass + if "Extended_Source_Name" in data: + name_extended = data["Extended_Source_Name"].strip() + elif "Source_Name" in data: + name_extended = data["Source_Name"].strip() + else: + name_extended = None + + name_spectral = self._get_name_spectral(data) + + try: + idx = self._lookup_additional_table( + self.extended_sources_table[self._source_name_key] + )[name_extended] + data_extended = table_row_to_dict(self.extended_sources_table[idx]) + except (KeyError, AttributeError): + data_extended = None + + try: + idx = self._lookup_additional_table( + self.spectral_table[self._get_source_name_key] + )[name_spectral] + data_spectral = table_row_to_dict(self.spectral_table[idx]) + except (KeyError, AttributeError): + data_spectral = None + + source = self.source_object_class(data, data_extended, data_spectral) + return source + + @property + def _get_source_name_key(self): + return self._source_name_key + + def _get_name_spectral(self, data): + if "Source_name" in data: + name_spectral = data["Source_name"].strip() + else: + name_spectral = None + return name_spectral + + def _lookup_additional_table(self, selected_table): + """""" + names = [_.strip() for _ in selected_table] + idx = range(len(names)) + return dict(zip(names, idx)) + + @property + def positions(self): + """Source positions as a `~astropy.coordinates.SkyCoord` object.""" + return _skycoord_from_table(self.table) + +
+[docs] + def to_models(self, **kwargs): + """Create Models object from catalog.""" + return Models([_.sky_model(**kwargs) for _ in self])
+
+ + + +def _skycoord_from_table(table): + keys = table.colnames + + if {"RAJ2000", "DEJ2000"}.issubset(keys): + lon, lat, frame = "RAJ2000", "DEJ2000", "icrs" + elif {"RAJ2000", "DECJ2000"}.issubset(keys): + lon, lat, frame = "RAJ2000", "DECJ2000", "fk5" + elif {"RA", "DEC"}.issubset(keys): + lon, lat, frame = "RA", "DEC", "icrs" + elif {"ra", "dec"}.issubset(keys): + lon, lat, frame = "ra", "dec", "icrs" + elif {"RAJD", "DECJD"}.issubset(keys): + lon, lat, frame = "RAJD", "DECJD", "icrs" + else: + raise KeyError("No column GLON / GLAT or RA / DEC or RAJ2000 / DEJ2000 found.") + + unit = table[lon].unit.to_string() if table[lon].unit else "deg" + + return SkyCoord(table[lon], table[lat], unit=unit, frame=frame) +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/catalog/fermi.html b/docs/dev/_modules/gammapy/catalog/fermi.html new file mode 100644 index 00000000000..dd9c0eb43a1 --- /dev/null +++ b/docs/dev/_modules/gammapy/catalog/fermi.html @@ -0,0 +1,2633 @@ + + + + + + + + + + gammapy.catalog.fermi — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.catalog.fermi

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Fermi catalog and source classes."""
+
+import abc
+import logging
+import warnings
+import numpy as np
+import astropy.units as u
+from astropy.table import Table
+from astropy.wcs import FITSFixedWarning
+from gammapy.estimators import FluxPoints
+from gammapy.maps import MapAxis, Maps, RegionGeom
+from gammapy.modeling.models import (
+    DiskSpatialModel,
+    GaussianSpatialModel,
+    Model,
+    Models,
+    PointSpatialModel,
+    SkyModel,
+    TemplateSpatialModel,
+)
+from gammapy.utils.gauss import Gauss2DPDF
+from gammapy.utils.scripts import make_path
+from gammapy.utils.table import table_standardise_units_inplace
+from .core import SourceCatalog, SourceCatalogObject, format_flux_points_table
+
+__all__ = [
+    "SourceCatalog2FHL",
+    "SourceCatalog3FGL",
+    "SourceCatalog3FHL",
+    "SourceCatalog4FGL",
+    "SourceCatalog2PC",
+    "SourceCatalog3PC",
+    "SourceCatalogObject2FHL",
+    "SourceCatalogObject3FGL",
+    "SourceCatalogObject3FHL",
+    "SourceCatalogObject4FGL",
+    "SourceCatalogObject2PC",
+    "SourceCatalogObject3PC",
+]
+
+log = logging.getLogger(__name__)
+
+
+def compute_flux_points_ul(quantity, quantity_errp):
+    """Compute UL value for fermi flux points.
+
+    See https://arxiv.org/pdf/1501.02003.pdf (page 30).
+    """
+    return 2 * quantity_errp + quantity
+
+
+class SourceCatalogObjectFermiPCBase(SourceCatalogObject, abc.ABC):
+    """Base class for Fermi-LAT Pulsar catalogs."""
+
+    def __str__(self):
+        return self.info()
+
+    def info(self, info="all"):
+        if info == "all":
+            info = "basic,more,position,pulsar,spectral,lightcurve"
+
+        ss = ""
+        ops = info.split(",")
+        if "basic" in ops:
+            ss += self._info_basic()
+        if "more" in ops:
+            ss += self._info_more()
+        if "pulsar" in ops:
+            ss += self._info_pulsar()
+        if "position" in ops:
+            ss += self._info_position()
+        if "spectral" in ops:
+            ss += self._info_spectral_fit()
+            ss += self._info_spectral_points()
+        if "lightcurve" in ops:
+            ss += self._info_phasogram()
+        return ss
+
+    def _info_basic(self):
+        ss = "\n*** Basic info ***\n\n"
+        ss += "Catalog row index (zero-based) : {}\n".format(self.row_index)
+        ss += "{:<20s} : {}\n".format("Source name", self.name)
+        return ss
+
+    def _info_more(self):
+        return ""
+
+    def _info_pulsar(self):
+        return "\n"
+
+    def _info_position(self):
+        source_pos = self.position
+        ss = "\n*** Position info ***\n\n"
+        ss += "{:<20s} : {:.3f}\n".format("RA", source_pos.ra)
+        ss += "{:<20s} : {:.3f}\n".format("DEC", source_pos.dec)
+        ss += "{:<20s} : {:.3f}\n".format("GLON", source_pos.galactic.l)
+        ss += "{:<20s} : {:.3f}\n".format("GLAT", source_pos.galactic.b)
+        return ss
+
+    def _info_spectral_fit(self):
+        return "\n"
+
+    def _info_spectral_points(self):
+        ss = "\n*** Spectral points ***\n\n"
+        if self.flux_points_table is None:
+            ss += "No spectral points available.\n"
+            return ss
+        lines = format_flux_points_table(self.flux_points_table).pformat(
+            max_width=-1, max_lines=-1
+        )
+        ss += "\n".join(lines)
+        ss += "\n"
+        return ss
+
+    def _info_phasogram(self):
+        return ""
+
+    def spatial_model(self):
+        source_pos = self.position
+        ra = source_pos.ra
+        dec = source_pos.dec
+
+        model = PointSpatialModel(lon_0=ra, lat_0=dec, frame="icrs")
+        return model
+
+    def sky_model(self, name=None):
+        """Sky model (`~gammapy.modeling.models.SkyModel`)."""
+        spectral_model = self.spectral_model()
+        if spectral_model is None:
+            return None
+
+        if name is None:
+            name = self.name
+
+        return SkyModel(
+            spatial_model=self.spatial_model(),
+            spectral_model=spectral_model,
+            name=name,
+        )
+
+    @property
+    def flux_points(self):
+        """Flux points (`~gammapy.estimators.FluxPoints`)."""
+        if self.flux_points_table is None:
+            return None
+
+        return FluxPoints.from_table(
+            table=self.flux_points_table,
+            reference_model=self.sky_model(),
+            format="gadf-sed",
+        )
+
+    @property
+    def lightcurve(self):
+        """Light-curve."""
+        pass
+
+
+class SourceCatalogObjectFermiBase(SourceCatalogObject, abc.ABC):
+    """Base class for Fermi-LAT catalogs."""
+
+    asso = ["ASSOC1", "ASSOC2", "ASSOC_TEV", "ASSOC_GAM1", "ASSOC_GAM2", "ASSOC_GAM3"]
+    flux_points_meta = {
+        "sed_type_init": "flux",
+        "n_sigma": 1,
+        "sqrt_ts_threshold_ul": 1,
+        "n_sigma_ul": 2,
+    }
+
+    def __str__(self):
+        return self.info()
+
+    def info(self, info="all"):
+        """Summary information string.
+
+        Parameters
+        ----------
+        info : {'all', 'basic', 'more', 'position', 'spectral', 'lightcurve'}
+            Comma separated list of options.
+        """
+        if info == "all":
+            info = "basic,more,position,spectral,lightcurve"
+
+        ss = ""
+        ops = info.split(",")
+        if "basic" in ops:
+            ss += self._info_basic()
+        if "more" in ops:
+            ss += self._info_more()
+        if "position" in ops:
+            ss += self._info_position()
+            if not self.is_pointlike:
+                ss += self._info_morphology()
+        if "spectral" in ops:
+            ss += self._info_spectral_fit()
+            ss += self._info_spectral_points()
+        if "lightcurve" in ops:
+            ss += self._info_lightcurve()
+        return ss
+
+    def _info_basic(self):
+        d = self.data
+        keys = self.asso
+        ss = "\n*** Basic info ***\n\n"
+        ss += "Catalog row index (zero-based) : {}\n".format(self.row_index)
+        ss += "{:<20s} : {}\n".format("Source name", self.name)
+        if "Extended_Source_Name" in d:
+            ss += "{:<20s} : {}\n".format("Extended name", d["Extended_Source_Name"])
+
+        def get_nonentry_keys(keys):
+            vals = [str(d[_]).strip() for _ in keys]
+            return ", ".join([_ for _ in vals if _ != ""])
+
+        associations = get_nonentry_keys(keys)
+        ss += "{:<16s} : {}\n".format("Associations", associations)
+        try:
+            ss += "{:<16s} : {:.3f}\n".format("ASSOC_PROB_BAY", d["ASSOC_PROB_BAY"])
+            ss += "{:<16s} : {:.3f}\n".format("ASSOC_PROB_LR", d["ASSOC_PROB_LR"])
+        except KeyError:
+            pass
+        try:
+            ss += "{:<16s} : {}\n".format("Class1", d["CLASS1"])
+        except KeyError:
+            ss += "{:<16s} : {}\n".format("Class", d["CLASS"])
+        try:
+            ss += "{:<16s} : {}\n".format("Class2", d["CLASS2"])
+        except KeyError:
+            pass
+        ss += "{:<16s} : {}\n".format("TeVCat flag", d.get("TEVCAT_FLAG", "N/A"))
+        return ss
+
+    @abc.abstractmethod
+    def _info_more(self):
+        pass
+
+    def _info_position(self):
+        d = self.data
+        ss = "\n*** Position info ***\n\n"
+        ss += "{:<20s} : {:.3f}\n".format("RA", d["RAJ2000"])
+        ss += "{:<20s} : {:.3f}\n".format("DEC", d["DEJ2000"])
+        ss += "{:<20s} : {:.3f}\n".format("GLON", d["GLON"])
+        ss += "{:<20s} : {:.3f}\n".format("GLAT", d["GLAT"])
+
+        ss += "\n"
+        ss += "{:<20s} : {:.4f}\n".format("Semimajor (68%)", d["Conf_68_SemiMajor"])
+        ss += "{:<20s} : {:.4f}\n".format("Semiminor (68%)", d["Conf_68_SemiMinor"])
+        ss += "{:<20s} : {:.2f}\n".format("Position angle (68%)", d["Conf_68_PosAng"])
+        ss += "{:<20s} : {:.4f}\n".format("Semimajor (95%)", d["Conf_95_SemiMajor"])
+        ss += "{:<20s} : {:.4f}\n".format("Semiminor (95%)", d["Conf_95_SemiMinor"])
+        ss += "{:<20s} : {:.2f}\n".format("Position angle (95%)", d["Conf_95_PosAng"])
+        ss += "{:<20s} : {:.0f}\n".format("ROI number", d["ROI_num"])
+        return ss
+
+    def _info_morphology(self):
+        e = self.data_extended
+        ss = "\n*** Extended source information ***\n\n"
+        ss += "{:<16s} : {}\n".format("Model form", e["Model_Form"])
+        ss += "{:<16s} : {:.4f}\n".format("Model semimajor", e["Model_SemiMajor"])
+        ss += "{:<16s} : {:.4f}\n".format("Model semiminor", e["Model_SemiMinor"])
+        ss += "{:<16s} : {:.4f}\n".format("Position angle", e["Model_PosAng"])
+        try:
+            ss += "{:<16s} : {}\n".format("Spatial function", e["Spatial_Function"])
+        except KeyError:
+            pass
+        ss += "{:<16s} : {}\n\n".format("Spatial filename", e["Spatial_Filename"])
+        return ss
+
+    def _info_spectral_fit(self):
+        return "\n"
+
+    def _info_spectral_points(self):
+        ss = "\n*** Spectral points ***\n\n"
+        lines = format_flux_points_table(self.flux_points_table).pformat(
+            max_width=-1, max_lines=-1
+        )
+        ss += "\n".join(lines)
+        return ss
+
+    def _info_lightcurve(self):
+        return "\n"
+
+    @property
+    def is_pointlike(self):
+        return self.data["Extended_Source_Name"].strip() == ""
+
+    # FIXME: this should be renamed `set_position_error`,
+    # and `phi_0` isn't filled correctly, other parameters missing
+    # see https://github.com/gammapy/gammapy/pull/2533#issuecomment-553329049
+    def _set_spatial_errors(self, model):
+        d = self.data
+
+        if "Pos_err_68" in d:
+            percent = 0.68
+            semi_minor = d["Pos_err_68"]
+            semi_major = d["Pos_err_68"]
+            phi_0 = 0.0
+        else:
+            percent = 0.95
+            semi_minor = d["Conf_95_SemiMinor"]
+            semi_major = d["Conf_95_SemiMajor"]
+            phi_0 = d["Conf_95_PosAng"]
+
+        if np.isnan(phi_0):
+            phi_0 = 0.0 * u.deg
+
+        scale_1sigma = Gauss2DPDF().containment_radius(percent)
+        lat_err = semi_major / scale_1sigma
+        lon_err = semi_minor / scale_1sigma / np.cos(d["DEJ2000"])
+
+        if "TemplateSpatialModel" not in model.tag:
+            model.parameters["lon_0"].error = lon_err
+            model.parameters["lat_0"].error = lat_err
+            model.phi_0 = phi_0
+
+    def sky_model(self, name=None):
+        """Sky model as a `~gammapy.modeling.models.SkyModel` object."""
+        if name is None:
+            name = self.name
+
+        return SkyModel(
+            spatial_model=self.spatial_model(),
+            spectral_model=self.spectral_model(),
+            name=name,
+        )
+
+    @property
+    def flux_points(self):
+        """Flux points as a `~gammapy.estimators.FluxPoints` object."""
+        return FluxPoints.from_table(
+            table=self.flux_points_table,
+            reference_model=self.sky_model(),
+            format="gadf-sed",
+        )
+
+
+
+[docs] +class SourceCatalogObject4FGL(SourceCatalogObjectFermiBase): + """One source from the Fermi-LAT 4FGL catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog4FGL`. + """ + + asso = [ + "ASSOC1", + "ASSOC2", + "ASSOC_TEV", + "ASSOC_FGL", + "ASSOC_FHL", + "ASSOC_GAM1", + "ASSOC_GAM2", + "ASSOC_GAM3", + ] + + def _info_more(self): + d = self.data + ss = "\n*** Other info ***\n\n" + fmt = "{:<32s} : {:.3f}\n" + ss += fmt.format("Significance (100 MeV - 1 TeV)", d["Signif_Avg"]) + ss += "{:<32s} : {:.1f}\n".format("Npred", d["Npred"]) + ss += "\n{:<20s} : {}\n".format("Other flags", d["Flags"]) + return ss + + def _info_spectral_fit(self): + d = self.data + spec_type = d["SpectrumType"].strip() + + ss = "\n*** Spectral info ***\n\n" + + ss += "{:<45s} : {}\n".format("Spectrum type", d["SpectrumType"]) + fmt = "{:<45s} : {:.3f}\n" + ss += fmt.format("Detection significance (100 MeV - 1 TeV)", d["Signif_Avg"]) + + if spec_type == "PowerLaw": + tag = "PL" + elif spec_type == "LogParabola": + tag = "LP" + ss += "{:<45s} : {:.4f} +- {:.5f}\n".format( + "beta", d["LP_beta"], d["Unc_LP_beta"] + ) + ss += "{:<45s} : {:.1f}\n".format("Significance curvature", d["LP_SigCurv"]) + + elif spec_type == "PLSuperExpCutoff": + tag = "PLEC" + fmt = "{:<45s} : {:.4f} +- {:.4f}\n" + if "PLEC_ExpfactorS" in d: + ss += fmt.format( + "Exponential factor", d["PLEC_ExpfactorS"], d["Unc_PLEC_ExpfactorS"] + ) + else: + ss += fmt.format( + "Exponential factor", d["PLEC_Expfactor"], d["Unc_PLEC_Expfactor"] + ) + ss += "{:<45s} : {:.4f} +- {:.4f}\n".format( + "Super-exponential cutoff index", + d["PLEC_Exp_Index"], + d["Unc_PLEC_Exp_Index"], + ) + ss += "{:<45s} : {:.1f}\n".format( + "Significance curvature", d["PLEC_SigCurv"] + ) + + else: + raise ValueError(f"Invalid spec_type: {spec_type!r}") + + ss += "{:<45s} : {:.0f} {}\n".format( + "Pivot energy", d["Pivot_Energy"].value, d["Pivot_Energy"].unit + ) + + fmt = "{:<45s} : {:.3f} +- {:.3f}\n" + if f"{tag}_ExpfactorS" in d: + ss += fmt.format( + "Spectral index", d[tag + "_IndexS"], d["Unc_" + tag + "_IndexS"] + ) + else: + ss += fmt.format( + "Spectral index", d[tag + "_Index"], d["Unc_" + tag + "_Index"] + ) + + fmt = "{:<45s} : {:.3} +- {:.3} {}\n" + ss += fmt.format( + "Flux Density at pivot energy", + d[tag + "_Flux_Density"].value, + d["Unc_" + tag + "_Flux_Density"].value, + "cm-2 MeV-1 s-1", + ) + + fmt = "{:<45s} : {:.3} +- {:.3} {}\n" + ss += fmt.format( + "Integral flux (1 - 100 GeV)", + d["Flux1000"].value, + d["Unc_Flux1000"].value, + "cm-2 s-1", + ) + + fmt = "{:<45s} : {:.3} +- {:.3} {}\n" + ss += fmt.format( + "Energy flux (100 MeV - 100 GeV)", + d["Energy_Flux100"].value, + d["Unc_Energy_Flux100"].value, + "erg cm-2 s-1", + ) + + return ss + + def _info_lightcurve(self): + d = self.data + ss = "\n*** Lightcurve info ***\n\n" + ss += "Lightcurve measured in the energy band: 100 MeV - 100 GeV\n\n" + + ss += "{:<15s} : {:.3f}\n".format("Variability index", d["Variability_Index"]) + + if np.isfinite(d["Flux_Peak"]): + ss += "{:<40s} : {:.3f}\n".format( + "Significance peak (100 MeV - 100 GeV)", d["Signif_Peak"] + ) + + fmt = "{:<40s} : {:.3} +- {:.3} cm^-2 s^-1\n" + ss += fmt.format( + "Integral flux peak (100 MeV - 100 GeV)", + d["Flux_Peak"].value, + d["Unc_Flux_Peak"].value, + ) + + # TODO: give time as UTC string, not MET + ss += "{:<40s} : {:.3} s (Mission elapsed time)\n".format( + "Time peak", d["Time_Peak"].value + ) + peak_interval = d["Peak_Interval"].to_value("day") + ss += "{:<40s} : {:.3} day\n".format("Peak interval", peak_interval) + else: + ss += "\nNo peak measured for this source.\n" + + # TODO: Add a lightcurve table with d['Flux_History'] and d['Unc_Flux_History'] + + return ss + +
+[docs] + def spatial_model(self): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object.""" + d = self.data + ra = d["RAJ2000"] + dec = d["DEJ2000"] + + if self.is_pointlike: + model = PointSpatialModel(lon_0=ra, lat_0=dec, frame="icrs") + else: + de = self.data_extended + morph_type = de["Model_Form"].strip() + e = (1 - (de["Model_SemiMinor"] / de["Model_SemiMajor"]) ** 2.0) ** 0.5 + sigma = de["Model_SemiMajor"] + phi = de["Model_PosAng"] + if morph_type == "Disk": + r_0 = de["Model_SemiMajor"] + model = DiskSpatialModel( + lon_0=ra, lat_0=dec, r_0=r_0, e=e, phi=phi, frame="icrs" + ) + elif morph_type in ["Map", "Ring", "2D Gaussian x2"]: + filename = de["Spatial_Filename"].strip() + ".gz" + if de["version"] < 28: + path_extended = "$GAMMAPY_DATA/catalogs/fermi/LAT_extended_sources_8years/Templates/" + elif de["version"] < 32: + path_extended = ( + "$GAMMAPY_DATA/catalogs/fermi/Extended_12years/Templates/" + ) + else: + path_extended = ( + "$GAMMAPY_DATA/catalogs/fermi/Extended_14years/Templates/" + ) + path = make_path(path_extended) + with warnings.catch_warnings(): # ignore FITS units warnings + warnings.simplefilter("ignore", FITSFixedWarning) + model = TemplateSpatialModel.read(path / filename) + elif morph_type == "2D Gaussian": + model = GaussianSpatialModel( + lon_0=ra, lat_0=dec, sigma=sigma, e=e, phi=phi, frame="icrs" + ) + else: + raise ValueError(f"Invalid spatial model: {morph_type!r}") + self._set_spatial_errors(model) + return model
+ + +
+[docs] + def spectral_model(self): + """Best fit spectral model as a `~gammapy.modeling.models.SpectralModel` object.""" + spec_type = self.data["SpectrumType"].strip() + + if spec_type == "PowerLaw": + tag = "PowerLawSpectralModel" + pars = { + "reference": self.data["Pivot_Energy"], + "amplitude": self.data["PL_Flux_Density"], + "index": self.data["PL_Index"], + } + errs = { + "amplitude": self.data["Unc_PL_Flux_Density"], + "index": self.data["Unc_PL_Index"], + } + elif spec_type == "LogParabola": + tag = "LogParabolaSpectralModel" + pars = { + "reference": self.data["Pivot_Energy"], + "amplitude": self.data["LP_Flux_Density"], + "alpha": self.data["LP_Index"], + "beta": self.data["LP_beta"], + } + errs = { + "amplitude": self.data["Unc_LP_Flux_Density"], + "alpha": self.data["Unc_LP_Index"], + "beta": self.data["Unc_LP_beta"], + } + elif spec_type == "PLSuperExpCutoff": + if "PLEC_ExpfactorS" in self.data: + tag = "SuperExpCutoffPowerLaw4FGLDR3SpectralModel" + expfactor = self.data["PLEC_ExpfactorS"] + expfactor_err = self.data["Unc_PLEC_ExpfactorS"] + index_1 = self.data["PLEC_IndexS"] + index_1_err = self.data["Unc_PLEC_IndexS"] + else: + tag = "SuperExpCutoffPowerLaw4FGLSpectralModel" + expfactor = self.data["PLEC_Expfactor"] + expfactor_err = self.data["Unc_PLEC_Expfactor"] + index_1 = self.data["PLEC_Index"] + index_1_err = self.data["Unc_PLEC_Index"] + + pars = { + "reference": self.data["Pivot_Energy"], + "amplitude": self.data["PLEC_Flux_Density"], + "index_1": index_1, + "index_2": self.data["PLEC_Exp_Index"], + "expfactor": expfactor, + } + errs = { + "amplitude": self.data["Unc_PLEC_Flux_Density"], + "index_1": index_1_err, + "index_2": np.nan_to_num(float(self.data["Unc_PLEC_Exp_Index"])), + "expfactor": expfactor_err, + } + else: + raise ValueError(f"Invalid spec_type: {spec_type!r}") + + model = Model.create(tag, "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + + @property + def flux_points_table(self): + """Flux points as a `~astropy.table.Table`.""" + table = Table() + table.meta.update(self.flux_points_meta) + + table["e_min"] = self.data["fp_energy_edges"][:-1] + table["e_max"] = self.data["fp_energy_edges"][1:] + + flux = self._get_flux_values("Flux_Band") + flux_err = self._get_flux_values("Unc_Flux_Band") + table["flux"] = flux + table["flux_errn"] = np.abs(flux_err[:, 0]) + table["flux_errp"] = flux_err[:, 1] + + nuFnu = self._get_flux_values("nuFnu_Band", "erg cm-2 s-1") + table["e2dnde"] = nuFnu + table["e2dnde_errn"] = np.abs(nuFnu * flux_err[:, 0] / flux) + table["e2dnde_errp"] = nuFnu * flux_err[:, 1] / flux + + is_ul = np.isnan(table["flux_errn"]) + table["is_ul"] = is_ul + + # handle upper limits + table["flux_ul"] = np.nan * flux_err.unit + flux_ul = compute_flux_points_ul(table["flux"], table["flux_errp"]) + table["flux_ul"][is_ul] = flux_ul[is_ul] + + # handle upper limits + table["e2dnde_ul"] = np.nan * nuFnu.unit + e2dnde_ul = compute_flux_points_ul(table["e2dnde"], table["e2dnde_errp"]) + table["e2dnde_ul"][is_ul] = e2dnde_ul[is_ul] + + # Square root of test statistic + table["sqrt_ts"] = self.data["Sqrt_TS_Band"] + return table + + def _get_flux_values(self, prefix, unit="cm-2 s-1"): + values = self.data[prefix] + return u.Quantity(values, unit) + +
+[docs] + def lightcurve(self, interval="1-year"): + """Lightcurve as a `~gammapy.estimators.FluxPoints` object. + + Parameters + ---------- + interval : {'1-year', '2-month'} + Time interval of the lightcurve. Default is '1-year'. + Note that '2-month' is not available for all catalogue version. + """ + if interval == "1-year": + tag = "Flux_History" + if tag not in self.data or "time_axis" not in self.data: + raise ValueError( + "'1-year' interval is not available for this catalogue version" + ) + time_axis = self.data["time_axis"] + tag_sqrt_ts = "Sqrt_TS_History" + + elif interval == "2-month": + tag = "Flux2_History" + if tag not in self.data or "time_axis_2" not in self.data: + raise ValueError( + "2-month interval is not available for this catalog version" + ) + time_axis = self.data["time_axis_2"] + tag_sqrt_ts = "Sqrt_TS2_History" + else: + raise ValueError("Time intervals available are '1-year' or '2-month'") + + energy_axis = MapAxis.from_energy_edges([50, 300000] * u.MeV) + geom = RegionGeom.create(region=self.position, axes=[energy_axis, time_axis]) + + names = ["flux", "flux_errp", "flux_errn", "flux_ul", "ts"] + maps = Maps.from_geom(geom=geom, names=names) + + maps["flux"].quantity = self.data[tag].reshape(geom.data_shape) + maps["flux_errp"].quantity = self.data[f"Unc_{tag}"][:, 1].reshape( + geom.data_shape + ) + maps["flux_errn"].quantity = -self.data[f"Unc_{tag}"][:, 0].reshape( + geom.data_shape + ) + maps["flux_ul"].quantity = compute_flux_points_ul( + maps["flux"].quantity, maps["flux_errp"].quantity + ).reshape(geom.data_shape) + maps["ts"].quantity = (self.data[tag_sqrt_ts] ** 2).reshape(geom.data_shape) + + return FluxPoints.from_maps( + maps=maps, + sed_type="flux", + reference_model=self.sky_model(), + meta=self.flux_points.meta.copy(), + )
+
+ + + +
+[docs] +class SourceCatalogObject3FGL(SourceCatalogObjectFermiBase): + """One source from the Fermi-LAT 3FGL catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog3FGL`. + """ + + _energy_edges = u.Quantity([100, 300, 1000, 3000, 10000, 100000], "MeV") + _energy_edges_suffix = [ + "100_300", + "300_1000", + "1000_3000", + "3000_10000", + "10000_100000", + ] + energy_range = u.Quantity([100, 100000], "MeV") + """Energy range used for the catalog. + + Paper says that analysis uses data up to 300 GeV, + but results are all quoted up to 100 GeV only to + be consistent with previous catalogs. + """ + + def _info_more(self): + d = self.data + ss = "\n*** Other info ***\n\n" + ss += "{:<20s} : {}\n".format("Other flags", d["Flags"]) + return ss + + def _info_spectral_fit(self): + d = self.data + spec_type = d["SpectrumType"].strip() + + ss = "\n*** Spectral info ***\n\n" + + ss += "{:<45s} : {}\n".format("Spectrum type", d["SpectrumType"]) + fmt = "{:<45s} : {:.3f}\n" + ss += fmt.format("Detection significance (100 MeV - 300 GeV)", d["Signif_Avg"]) + ss += "{:<45s} : {:.1f}\n".format("Significance curvature", d["Signif_Curve"]) + + if spec_type == "PowerLaw": + pass + elif spec_type == "LogParabola": + ss += "{:<45s} : {} +- {}\n".format("beta", d["beta"], d["Unc_beta"]) + elif spec_type in ["PLExpCutoff", "PlSuperExpCutoff"]: + fmt = "{:<45s} : {:.0f} +- {:.0f} {}\n" + ss += fmt.format( + "Cutoff energy", + d["Cutoff"].value, + d["Unc_Cutoff"].value, + d["Cutoff"].unit, + ) + elif spec_type == "PLSuperExpCutoff": + ss += "{:<45s} : {} +- {}\n".format( + "Super-exponential cutoff index", d["Exp_Index"], d["Unc_Exp_Index"] + ) + else: + raise ValueError(f"Invalid spec_type: {spec_type!r}") + + ss += "{:<45s} : {:.0f} {}\n".format( + "Pivot energy", d["Pivot_Energy"].value, d["Pivot_Energy"].unit + ) + + ss += "{:<45s} : {:.3f}\n".format( + "Power law spectral index", d["PowerLaw_Index"] + ) + + fmt = "{:<45s} : {:.3f} +- {:.3f}\n" + ss += fmt.format("Spectral index", d["Spectral_Index"], d["Unc_Spectral_Index"]) + + fmt = "{:<45s} : {:.3} +- {:.3} {}\n" + ss += fmt.format( + "Flux Density at pivot energy", + d["Flux_Density"].value, + d["Unc_Flux_Density"].value, + "cm-2 MeV-1 s-1", + ) + + fmt = "{:<45s} : {:.3} +- {:.3} {}\n" + ss += fmt.format( + "Integral flux (1 - 100 GeV)", + d["Flux1000"].value, + d["Unc_Flux1000"].value, + "cm-2 s-1", + ) + + fmt = "{:<45s} : {:.3} +- {:.3} {}\n" + ss += fmt.format( + "Energy flux (100 MeV - 100 GeV)", + d["Energy_Flux100"].value, + d["Unc_Energy_Flux100"].value, + "erg cm-2 s-1", + ) + + return ss + + def _info_lightcurve(self): + d = self.data + ss = "\n*** Lightcurve info ***\n\n" + ss += "Lightcurve measured in the energy band: 100 MeV - 100 GeV\n\n" + + ss += "{:<15s} : {:.3f}\n".format("Variability index", d["Variability_Index"]) + + if np.isfinite(d["Flux_Peak"]): + ss += "{:<40s} : {:.3f}\n".format( + "Significance peak (100 MeV - 100 GeV)", d["Signif_Peak"] + ) + + fmt = "{:<40s} : {:.3} +- {:.3} cm^-2 s^-1\n" + ss += fmt.format( + "Integral flux peak (100 MeV - 100 GeV)", + d["Flux_Peak"].value, + d["Unc_Flux_Peak"].value, + ) + + # TODO: give time as UTC string, not MET + ss += "{:<40s} : {:.3} s (Mission elapsed time)\n".format( + "Time peak", d["Time_Peak"].value + ) + peak_interval = d["Peak_Interval"].to_value("day") + ss += "{:<40s} : {:.3} day\n".format("Peak interval", peak_interval) + else: + ss += "\nNo peak measured for this source.\n" + + # TODO: Add a lightcurve table with d['Flux_History'] and d['Unc_Flux_History'] + + return ss + +
+[docs] + def spectral_model(self): + """Best fit spectral model as a `~gammapy.modeling.models.SpectralModel` object.""" + spec_type = self.data["SpectrumType"].strip() + + if spec_type == "PowerLaw": + tag = "PowerLawSpectralModel" + pars = { + "amplitude": self.data["Flux_Density"], + "reference": self.data["Pivot_Energy"], + "index": self.data["Spectral_Index"], + } + errs = { + "amplitude": self.data["Unc_Flux_Density"], + "index": self.data["Unc_Spectral_Index"], + } + elif spec_type == "PLExpCutoff": + tag = "ExpCutoffPowerLaw3FGLSpectralModel" + pars = { + "amplitude": self.data["Flux_Density"], + "reference": self.data["Pivot_Energy"], + "index": self.data["Spectral_Index"], + "ecut": self.data["Cutoff"], + } + errs = { + "amplitude": self.data["Unc_Flux_Density"], + "index": self.data["Unc_Spectral_Index"], + "ecut": self.data["Unc_Cutoff"], + } + elif spec_type == "LogParabola": + tag = "LogParabolaSpectralModel" + pars = { + "amplitude": self.data["Flux_Density"], + "reference": self.data["Pivot_Energy"], + "alpha": self.data["Spectral_Index"], + "beta": self.data["beta"], + } + errs = { + "amplitude": self.data["Unc_Flux_Density"], + "alpha": self.data["Unc_Spectral_Index"], + "beta": self.data["Unc_beta"], + } + elif spec_type == "PLSuperExpCutoff": + tag = "SuperExpCutoffPowerLaw3FGLSpectralModel" + pars = { + "amplitude": self.data["Flux_Density"], + "reference": self.data["Pivot_Energy"], + "index_1": self.data["Spectral_Index"], + "index_2": self.data["Exp_Index"], + "ecut": self.data["Cutoff"], + } + errs = { + "amplitude": self.data["Unc_Flux_Density"], + "index_1": self.data["Unc_Spectral_Index"], + "index_2": self.data["Unc_Exp_Index"], + "ecut": self.data["Unc_Cutoff"], + } + else: + raise ValueError(f"Invalid spec_type: {spec_type!r}") + + model = Model.create(tag, "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def spatial_model(self): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object.""" + d = self.data + ra = d["RAJ2000"] + dec = d["DEJ2000"] + + if self.is_pointlike: + model = PointSpatialModel(lon_0=ra, lat_0=dec, frame="icrs") + else: + de = self.data_extended + morph_type = de["Model_Form"].strip() + e = (1 - (de["Model_SemiMinor"] / de["Model_SemiMajor"]) ** 2.0) ** 0.5 + sigma = de["Model_SemiMajor"] + phi = de["Model_PosAng"] + if morph_type == "Disk": + r_0 = de["Model_SemiMajor"] + model = DiskSpatialModel( + lon_0=ra, lat_0=dec, r_0=r_0, e=e, phi=phi, frame="icrs" + ) + elif morph_type in ["Map", "Ring", "2D Gaussian x2"]: + filename = de["Spatial_Filename"].strip() + path = make_path( + "$GAMMAPY_DATA/catalogs/fermi/Extended_archive_v15/Templates/" + ) + model = TemplateSpatialModel.read(path / filename) + elif morph_type == "2D Gaussian": + model = GaussianSpatialModel( + lon_0=ra, lat_0=dec, sigma=sigma, e=e, phi=phi, frame="icrs" + ) + else: + raise ValueError(f"Invalid spatial model: {morph_type!r}") + self._set_spatial_errors(model) + return model
+ + + @property + def flux_points_table(self): + """Flux points as a `~astropy.table.Table`.""" + table = Table() + table.meta.update(self.flux_points_meta) + + table["e_min"] = self._energy_edges[:-1] + table["e_max"] = self._energy_edges[1:] + + flux = self._get_flux_values("Flux") + flux_err = self._get_flux_values("Unc_Flux") + table["flux"] = flux + table["flux_errn"] = np.abs(flux_err[:, 0]) + table["flux_errp"] = flux_err[:, 1] + + nuFnu = self._get_flux_values("nuFnu", "erg cm-2 s-1") + table["e2dnde"] = nuFnu + table["e2dnde_errn"] = np.abs(nuFnu * flux_err[:, 0] / flux) + table["e2dnde_errp"] = nuFnu * flux_err[:, 1] / flux + + is_ul = np.isnan(table["flux_errn"]) + table["is_ul"] = is_ul + + # handle upper limits + table["flux_ul"] = np.nan * flux_err.unit + flux_ul = compute_flux_points_ul(table["flux"], table["flux_errp"]) + table["flux_ul"][is_ul] = flux_ul[is_ul] + + # handle upper limits + table["e2dnde_ul"] = np.nan * nuFnu.unit + e2dnde_ul = compute_flux_points_ul(table["e2dnde"], table["e2dnde_errp"]) + table["e2dnde_ul"][is_ul] = e2dnde_ul[is_ul] + + # Square root of test statistic + table["sqrt_ts"] = [self.data["Sqrt_TS" + _] for _ in self._energy_edges_suffix] + return table + + def _get_flux_values(self, prefix, unit="cm-2 s-1"): + values = [self.data[prefix + _] for _ in self._energy_edges_suffix] + return u.Quantity(values, unit) + +
+[docs] + def lightcurve(self): + """Lightcurve as a `~gammapy.estimators.FluxPoints` object.""" + time_axis = self.data["time_axis"] + tag = "Flux_History" + + energy_axis = MapAxis.from_energy_edges(self.energy_range) + geom = RegionGeom.create(region=self.position, axes=[energy_axis, time_axis]) + + names = ["flux", "flux_errp", "flux_errn", "flux_ul"] + maps = Maps.from_geom(geom=geom, names=names) + + maps["flux"].quantity = self.data[tag].reshape(geom.data_shape) + maps["flux_errp"].quantity = self.data[f"Unc_{tag}"][:, 1].reshape( + geom.data_shape + ) + maps["flux_errn"].quantity = -self.data[f"Unc_{tag}"][:, 0].reshape( + geom.data_shape + ) + maps["flux_ul"].quantity = compute_flux_points_ul( + maps["flux"].quantity, maps["flux_errp"].quantity + ).reshape(geom.data_shape) + is_ul = np.isnan(maps["flux_errn"]) + maps["flux_ul"].data[~is_ul] = np.nan + + return FluxPoints.from_maps( + maps=maps, + sed_type="flux", + reference_model=self.sky_model(), + meta=self.flux_points_meta.copy(), + )
+
+ + + +
+[docs] +class SourceCatalogObject2FHL(SourceCatalogObjectFermiBase): + """One source from the Fermi-LAT 2FHL catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog2FHL`. + """ + + asso = ["ASSOC", "3FGL_Name", "1FHL_Name", "TeVCat_Name"] + _energy_edges = u.Quantity([50, 171, 585, 2000], "GeV") + _energy_edges_suffix = ["50_171", "171_585", "585_2000"] + energy_range = u.Quantity([0.05, 2], "TeV") + """Energy range used for the catalog.""" + + def _info_more(self): + d = self.data + ss = "\n*** Other info ***\n\n" + fmt = "{:<32s} : {:.3f}\n" + ss += fmt.format("Test statistic (50 GeV - 2 TeV)", d["TS"]) + return ss + + def _info_position(self): + d = self.data + ss = "\n*** Position info ***\n\n" + ss += "{:<20s} : {:.3f}\n".format("RA", d["RAJ2000"]) + ss += "{:<20s} : {:.3f}\n".format("DEC", d["DEJ2000"]) + ss += "{:<20s} : {:.3f}\n".format("GLON", d["GLON"]) + ss += "{:<20s} : {:.3f}\n".format("GLAT", d["GLAT"]) + + ss += "\n" + ss += "{:<20s} : {:.4f}\n".format("Error on position (68%)", d["Pos_err_68"]) + ss += "{:<20s} : {:.0f}\n".format("ROI number", d["ROI"]) + return ss + + def _info_spectral_fit(self): + d = self.data + + ss = "\n*** Spectral fit info ***\n\n" + + fmt = "{:<32s} : {:.3f} +- {:.3f}\n" + ss += fmt.format( + "Power-law spectral index", d["Spectral_Index"], d["Unc_Spectral_Index"] + ) + + ss += "{:<32s} : {:.3} +- {:.3} {}\n".format( + "Integral flux (50 GeV - 2 TeV)", + d["Flux50"].value, + d["Unc_Flux50"].value, + "cm-2 s-1", + ) + + ss += "{:<32s} : {:.3} +- {:.3} {}\n".format( + "Energy flux (50 GeV - 2 TeV)", + d["Energy_Flux50"].value, + d["Unc_Energy_Flux50"].value, + "erg cm-2 s-1", + ) + + return ss + + @property + def is_pointlike(self): + return self.data["Source_Name"].strip()[-1] != "e" + +
+[docs] + def spatial_model(self): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object.""" + d = self.data + ra = d["RAJ2000"] + dec = d["DEJ2000"] + + if self.is_pointlike: + model = PointSpatialModel(lon_0=ra, lat_0=dec, frame="icrs") + else: + de = self.data_extended + morph_type = de["Model_Form"].strip() + e = (1 - (de["Model_SemiMinor"] / de["Model_SemiMajor"]) ** 2.0) ** 0.5 + sigma = de["Model_SemiMajor"] + phi = de["Model_PosAng"] + if morph_type in ["Disk", "Elliptical Disk"]: + r_0 = de["Model_SemiMajor"] + model = DiskSpatialModel( + lon_0=ra, lat_0=dec, r_0=r_0, e=e, phi=phi, frame="icrs" + ) + elif morph_type in ["Map", "Ring", "2D Gaussian x2"]: + filename = de["Spatial_Filename"].strip() + path = make_path( + "$GAMMAPY_DATA/catalogs/fermi/Extended_archive_v15/Templates/" + ) + return TemplateSpatialModel.read(path / filename) + elif morph_type in ["2D Gaussian", "Elliptical 2D Gaussian"]: + model = GaussianSpatialModel( + lon_0=ra, lat_0=dec, sigma=sigma, e=e, phi=phi, frame="icrs" + ) + else: + raise ValueError(f"Invalid spatial model: {morph_type!r}") + + self._set_spatial_errors(model) + return model
+ + +
+[docs] + def spectral_model(self): + """Best fit spectral model as a `~gammapy.modeling.models.SpectralModel`.""" + tag = "PowerLaw2SpectralModel" + pars = { + "amplitude": self.data["Flux50"], + "emin": self.energy_range[0], + "emax": self.energy_range[1], + "index": self.data["Spectral_Index"], + } + errs = { + "amplitude": self.data["Unc_Flux50"], + "index": self.data["Unc_Spectral_Index"], + } + + model = Model.create(tag, "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + + @property + def flux_points_table(self): + """Flux points as a `~astropy.table.Table`.""" + table = Table() + table.meta.update(self.flux_points_meta) + table["e_min"] = self._energy_edges[:-1] + table["e_max"] = self._energy_edges[1:] + table["flux"] = self._get_flux_values("Flux") + flux_err = self._get_flux_values("Unc_Flux") + table["flux_errn"] = np.abs(flux_err[:, 0]) + table["flux_errp"] = flux_err[:, 1] + + # handle upper limits + is_ul = np.isnan(table["flux_errn"]) + table["is_ul"] = is_ul + table["flux_ul"] = np.nan * flux_err.unit + flux_ul = compute_flux_points_ul(table["flux"], table["flux_errp"]) + table["flux_ul"][is_ul] = flux_ul[is_ul] + return table + + def _get_flux_values(self, prefix, unit="cm-2 s-1"): + values = [self.data[prefix + _ + "GeV"] for _ in self._energy_edges_suffix] + return u.Quantity(values, unit)
+ + + +
+[docs] +class SourceCatalogObject3FHL(SourceCatalogObjectFermiBase): + """One source from the Fermi-LAT 3FHL catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog3FHL`. + """ + + asso = ["ASSOC1", "ASSOC2", "ASSOC_TEV", "ASSOC_GAM"] + energy_range = u.Quantity([0.01, 2], "TeV") + """Energy range used for the catalog.""" + + _energy_edges = u.Quantity([10, 20, 50, 150, 500, 2000], "GeV") + + def _info_position(self): + d = self.data + ss = "\n*** Position info ***\n\n" + ss += "{:<20s} : {:.3f}\n".format("RA", d["RAJ2000"]) + ss += "{:<20s} : {:.3f}\n".format("DEC", d["DEJ2000"]) + ss += "{:<20s} : {:.3f}\n".format("GLON", d["GLON"]) + ss += "{:<20s} : {:.3f}\n".format("GLAT", d["GLAT"]) + + # TODO: All sources are non-elliptical; just give one number for radius? + ss += "\n" + ss += "{:<20s} : {:.4f}\n".format("Semimajor (95%)", d["Conf_95_SemiMajor"]) + ss += "{:<20s} : {:.4f}\n".format("Semiminor (95%)", d["Conf_95_SemiMinor"]) + ss += "{:<20s} : {:.2f}\n".format("Position angle (95%)", d["Conf_95_PosAng"]) + ss += "{:<20s} : {:.0f}\n".format("ROI number", d["ROI_num"]) + + return ss + + def _info_spectral_fit(self): + d = self.data + spec_type = d["SpectrumType"].strip() + + ss = "\n*** Spectral fit info ***\n\n" + + ss += "{:<32s} : {}\n".format("Spectrum type", d["SpectrumType"]) + ss += "{:<32s} : {:.1f}\n".format("Significance curvature", d["Signif_Curve"]) + + # Power-law parameters are always given; give in any case + fmt = "{:<32s} : {:.3f} +- {:.3f}\n" + ss += fmt.format( + "Power-law spectral index", d["PowerLaw_Index"], d["Unc_PowerLaw_Index"] + ) + + if spec_type == "PowerLaw": + pass + elif spec_type == "LogParabola": + fmt = "{:<32s} : {:.3f} +- {:.3f}\n" + ss += fmt.format( + "LogParabolaSpectralModel spectral index", + d["Spectral_Index"], + d["Unc_Spectral_Index"], + ) + + ss += "{:<32s} : {:.3f} +- {:.3f}\n".format( + "LogParabolaSpectralModel beta", d["beta"], d["Unc_beta"] + ) + else: + raise ValueError(f"Invalid spec_type: {spec_type!r}") + + ss += "{:<32s} : {:.1f} {}\n".format( + "Pivot energy", d["Pivot_Energy"].value, d["Pivot_Energy"].unit + ) + + ss += "{:<32s} : {:.3} +- {:.3} {}\n".format( + "Flux Density at pivot energy", + d["Flux_Density"].value, + d["Unc_Flux_Density"].value, + "cm-2 GeV-1 s-1", + ) + + ss += "{:<32s} : {:.3} +- {:.3} {}\n".format( + "Integral flux (10 GeV - 1 TeV)", + d["Flux"].value, + d["Unc_Flux"].value, + "cm-2 s-1", + ) + + ss += "{:<32s} : {:.3} +- {:.3} {}\n".format( + "Energy flux (10 GeV - TeV)", + d["Energy_Flux"].value, + d["Unc_Energy_Flux"].value, + "erg cm-2 s-1", + ) + + return ss + + def _info_more(self): + d = self.data + ss = "\n*** Other info ***\n\n" + + fmt = "{:<32s} : {:.3f}\n" + ss += fmt.format("Significance (10 GeV - 2 TeV)", d["Signif_Avg"]) + ss += "{:<32s} : {:.1f}\n".format("Npred", d["Npred"]) + + ss += "\n{:<16s} : {:.3f} {}\n".format( + "HEP Energy", d["HEP_Energy"].value, d["HEP_Energy"].unit + ) + ss += "{:<16s} : {:.3f}\n".format("HEP Probability", d["HEP_Prob"]) + + ss += "{:<16s} : {}\n".format("Bayesian Blocks", d["Variability_BayesBlocks"]) + + ss += "{:<16s} : {:.3f}\n".format("Redshift", d["Redshift"]) + ss += "{:<16s} : {:.3} {}\n".format( + "NuPeak_obs", d["NuPeak_obs"].value, d["NuPeak_obs"].unit + ) + + return ss + +
+[docs] + def spectral_model(self): + """Best fit spectral model as a `~gammapy.modeling.models.SpectralModel` object.""" + d = self.data + spec_type = self.data["SpectrumType"].strip() + + if spec_type == "PowerLaw": + tag = "PowerLawSpectralModel" + pars = { + "reference": d["Pivot_Energy"], + "amplitude": d["Flux_Density"], + "index": d["PowerLaw_Index"], + } + errs = { + "amplitude": d["Unc_Flux_Density"], + "index": d["Unc_PowerLaw_Index"], + } + elif spec_type == "LogParabola": + tag = "LogParabolaSpectralModel" + pars = { + "reference": d["Pivot_Energy"], + "amplitude": d["Flux_Density"], + "alpha": d["Spectral_Index"], + "beta": d["beta"], + } + errs = { + "amplitude": d["Unc_Flux_Density"], + "alpha": d["Unc_Spectral_Index"], + "beta": d["Unc_beta"], + } + else: + raise ValueError(f"Invalid spec_type: {spec_type!r}") + + model = Model.create(tag, "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + + @property + def flux_points_table(self): + """Flux points as a `~astropy.table.Table`.""" + table = Table() + table.meta.update(self.flux_points_meta) + table["e_min"] = self._energy_edges[:-1] + table["e_max"] = self._energy_edges[1:] + + flux = self.data["Flux_Band"] + flux_err = self.data["Unc_Flux_Band"] + e2dnde = self.data["nuFnu"] + + table["flux"] = flux + table["flux_errn"] = np.abs(flux_err[:, 0]) + table["flux_errp"] = flux_err[:, 1] + + table["e2dnde"] = e2dnde + table["e2dnde_errn"] = np.abs(e2dnde * flux_err[:, 0] / flux) + table["e2dnde_errp"] = e2dnde * flux_err[:, 1] / flux + + is_ul = np.isnan(table["flux_errn"]) + table["is_ul"] = is_ul + + # handle upper limits + table["flux_ul"] = np.nan * flux_err.unit + flux_ul = compute_flux_points_ul(table["flux"], table["flux_errp"]) + table["flux_ul"][is_ul] = flux_ul[is_ul] + + table["e2dnde_ul"] = np.nan * e2dnde.unit + e2dnde_ul = compute_flux_points_ul(table["e2dnde"], table["e2dnde_errp"]) + table["e2dnde_ul"][is_ul] = e2dnde_ul[is_ul] + + # Square root of test statistic + table["sqrt_ts"] = self.data["Sqrt_TS_Band"] + return table + +
+[docs] + def spatial_model(self): + """Source spatial model as a `~gammapy.modeling.models.SpatialModel` object.""" + d = self.data + ra = d["RAJ2000"] + dec = d["DEJ2000"] + + if self.is_pointlike: + model = PointSpatialModel(lon_0=ra, lat_0=dec, frame="icrs") + else: + de = self.data_extended + morph_type = de["Spatial_Function"].strip() + e = (1 - (de["Model_SemiMinor"] / de["Model_SemiMajor"]) ** 2.0) ** 0.5 + sigma = de["Model_SemiMajor"] + phi = de["Model_PosAng"] + if morph_type == "RadialDisk": + r_0 = de["Model_SemiMajor"] + model = DiskSpatialModel( + lon_0=ra, lat_0=dec, r_0=r_0, e=e, phi=phi, frame="icrs" + ) + elif morph_type in ["SpatialMap"]: + filename = de["Spatial_Filename"].strip() + path = make_path( + "$GAMMAPY_DATA/catalogs/fermi/Extended_archive_v18/Templates/" + ) + model = TemplateSpatialModel.read(path / filename) + elif morph_type == "RadialGauss": + model = GaussianSpatialModel( + lon_0=ra, lat_0=dec, sigma=sigma, e=e, phi=phi, frame="icrs" + ) + else: + raise ValueError(f"Invalid morph_type: {morph_type!r}") + self._set_spatial_errors(model) + return model
+
+ + + +
+[docs] +class SourceCatalogObject2PC(SourceCatalogObjectFermiPCBase): + """One source from the 2PC catalog.""" + + @property + def _auxiliary_filename(self): + return make_path( + f"$GAMMAPY_DATA/catalogs/fermi/2PC_auxiliary/PSR{self.name}_2PC_data.fits.gz" + ) + + def _info_more(self): + d = self.data + ss = "\n*** Other info ***\n\n" + ss += "{:<20s} : {:s}\n".format("Binary", d["Binary"]) + return ss + + def _info_pulsar(self): + d = self.data + ss = "\n*** Pulsar info ***\n\n" + ss += "{:<20s} : {:.3f}\n".format("Period", d["Period"]) + ss += "{:<20s} : {:.3e}\n".format("P_Dot", d["P_Dot"]) + ss += "{:<20s} : {:.3e}\n".format("E_Dot", d["E_Dot"]) + ss += "{:<20s} : {}\n".format("Type", d["Type"]) + return ss + + def _info_spectral_fit(self): + d = self.data_spectral + ss = "\n*** Spectral info ***\n\n" + if d is None: + ss += "No spectral info available.\n" + return ss + ss += "{:<20s} : {}\n".format("On peak", d["On_Peak"]) + ss += "{:<20s} : {:.0f}\n".format("TS DC", d["TS_DC"]) + ss += "{:<20s} : {:.0f}\n".format("TS cutoff", d["TS_Cutoff"]) + ss += "{:<20s} : {:.0f}\n".format("TS b free", d["TS_bfree"]) + + indentation = " " * 4 + fmt_e = "{}{:<20s} : {:.3e} +- {:.3e}\n" + fmt_f = "{}{:<20s} : {:.3f} +- {:.3f}\n" + + if not isinstance(d["PLEC1_Prefactor"], np.ma.core.MaskedConstant): + ss += "\n{}* PLSuperExpCutoff b = 1 *\n\n".format(indentation) + ss += fmt_e.format( + indentation, "Amplitude", d["PLEC1_Prefactor"], d["Unc_PLEC1_Prefactor"] + ) + ss += fmt_f.format( + indentation, + "Index 1", + d["PLEC1_Photon_Index"], + d["Unc_PLEC1_Photon_Index"], + ) + ss += "{}{:<20s} : {:.3f}\n".format(indentation, "Index 2", 1) + ss += "{}{:<20s} : {:.3f}\n".format( + indentation, "Reference", d["PLEC1_Scale"] + ) + ss += fmt_f.format( + indentation, "Ecut", d["PLEC1_Cutoff"], d["Unc_PLEC1_Cutoff"] + ) + + if not isinstance(d["PLEC_Prefactor"], np.ma.core.MaskedConstant): + ss += "\n{}* PLSuperExpCutoff b free *\n\n".format(indentation) + ss += fmt_e.format( + indentation, "Amplitude", d["PLEC_Prefactor"], d["Unc_PLEC_Prefactor"] + ) + ss += fmt_f.format( + indentation, + "Index 1", + d["PLEC_Photon_Index"], + d["Unc_PLEC_Photon_Index"], + ) + ss += fmt_f.format( + indentation, + "Index 2", + d["PLEC_Exponential_Index"], + d["Unc_PLEC_Exponential_Index"], + ) + + ss += "{}{:<20s} : {:.3f}\n".format( + indentation, "Reference", d["PLEC_Scale"] + ) + ss += fmt_f.format( + indentation, "Ecut", d["PLEC_Cutoff"], d["Unc_PLEC_Cutoff"] + ) + + if not isinstance(d["PL_Prefactor"], np.ma.core.MaskedConstant): + ss += "\n{}* PowerLaw *\n\n".format(indentation) + ss += fmt_e.format( + indentation, "Amplitude", d["PL_Prefactor"], d["Unc_PL_Prefactor"] + ) + ss += fmt_f.format( + indentation, "Index", d["PL_Photon_Index"], d["Unc_PL_Photon_Index"] + ) + ss += "{}{:<20s} : {:.3f}\n".format(indentation, "Reference", d["PL_Scale"]) + + return ss + + def _info_phasogram(self): + d = self.data + ss = "\n*** Phasogram info ***\n\n" + ss += "{:<20s} : {:d}\n".format("Number of peaks", d["Num_Peaks"]) + ss += "{:<20s} : {:.3f}\n".format("Peak separation", d["Peak_Sep"]) + return ss + +
+[docs] + def spectral_model(self): + d = self.data_spectral + if d is None: + log.warning(f"No spectral model available for source {self.name}") + return None + if d["TS_Cutoff"] < 9: + tag = "PowerLawSpectralModel" + pars = { + "reference": d["PL_Scale"], + "amplitude": d["PL_Prefactor"], + "index": d["PL_Photon_Index"], + } + errs = { + "amplitude": d["Unc_PL_Prefactor"], + "index": d["Unc_PL_Photon_Index"], + } + elif d["TS_bfree"] >= 9: + tag = "SuperExpCutoffPowerLaw3FGLSpectralModel" + pars = { + "index_1": d["PLEC_Photon_Index"], + "index_2": d["PLEC_Exponential_Index"], + "amplitude": d["PLEC_Prefactor"], + "reference": d["PLEC_Scale"], + "ecut": d["PLEC_Cutoff"], + } + errs = { + "index_1": d["Unc_PLEC_Photon_Index"], + "index_2": d["Unc_PLEC_Exponential_Index"], + "amplitude": d["Unc_PLEC_Prefactor"], + "ecut": d["Unc_PLEC_Cutoff"], + } + elif d["TS_bfree"] < 9: + tag = "SuperExpCutoffPowerLaw3FGLSpectralModel" + pars = { + "index_1": d["PLEC1_Photon_Index"], + "index_2": 1, + "amplitude": d["PLEC1_Prefactor"], + "reference": d["PLEC1_Scale"], + "ecut": d["PLEC1_Cutoff"], + } + errs = { + "index_1": d["Unc_PLEC1_Photon_Index"], + "amplitude": d["Unc_PLEC1_Prefactor"], + "ecut": d["Unc_PLEC1_Cutoff"], + } + else: + log.warning(f"No spectral model available for source {self.name}") + return None + + model = Model.create(tag, "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + + @property + def flux_points_table(self): + """Flux points (`~astropy.table.Table`).""" + + try: + with warnings.catch_warnings(): + warnings.simplefilter("ignore", u.UnitsWarning) + fp_data = Table.read(self._auxiliary_filename, hdu="PULSAR_SED") + except (KeyError, FileNotFoundError): + log.warning(f"No flux points available for source {self.name}") + return None + table = Table() + + table["e_min"] = fp_data["Energy_Min"] + table["e_max"] = fp_data["Energy_Max"] + table["e_ref"] = fp_data["Center_Energy"] + + table["flux"] = fp_data["PhotonFlux"] + table["flux_err"] = fp_data["Unc_PhotonFlux"] + + table["e2dnde"] = fp_data["EnergyFlux"] + table["e2dnde_err"] = fp_data["Unc_EnergyFlux"] + + is_ul = np.where(table["e2dnde_err"] == 0, True, False) + table["is_ul"] = is_ul + + table["flux_ul"] = np.nan * table["flux_err"].unit + flux_ul = compute_flux_points_ul(table["flux"], table["flux_err"]) + table["flux_ul"][is_ul] = flux_ul[is_ul] + + table["e2dnde_ul"] = np.nan * table["e2dnde"].unit + e2dnde_ul = compute_flux_points_ul(table["e2dnde"], table["e2dnde_err"]) + table["e2dnde_ul"][is_ul] = e2dnde_ul[is_ul] + + return table
+ + + +
+[docs] +class SourceCatalogObject3PC(SourceCatalogObjectFermiPCBase): + """One source from the 3PC catalog.""" + + asso = ["assoc_new"] + + _energy_edges = u.Quantity([50, 100, 300, 1_000, 3e3, 1e4, 3e4, 1e5, 1e6], "MeV") + + @property + def _auxiliary_filename(self): + return make_path( + f"$GAMMAPY_DATA/catalogs/fermi/3PC_auxiliary_20230728/{self.name}_3PC_data.fits.gz" + ) + + def _info_pulsar(self): + d = self.data + ss = "\n*** Pulsar info ***\n\n" + ss += "{:<20s} : {:.3f}\n".format("Period", d["P0"]) + ss += "{:<20s} : {:.3e}\n".format("P_Dot", d["P1"]) + ss += "{:<20s} : {:.3e}\n".format("E_Dot", d["EDOT"]) + return ss + + def _info_phasogram(self): + d = self.data + ss = "\n*** Phasogram info ***\n\n" + if not isinstance(d["NPEAK"], np.ma.core.MaskedConstant): + npeak = d["NPEAK"] + ss += "{:<20s} : {:.3f}\n".format("Number of peaks", npeak) + if npeak > 1: + ss += "{:<20s} : {:.3f}\n".format("Ph1 (peak one)", d["PHI1"]) + ss += "{:<20s} : {:.3f}\n".format( + "Ph2 (peak two)", d["PHI1"] + d["PKSEP"] + ) + ss += "{:<20s} : {:.3f}\n".format("Peak separation", d["PKSEP"]) + else: + if not isinstance(d["PHI1"], np.ma.core.MaskedConstant): + ss += "{:<20s} : {:.3f}\n".format("Ph1 (peak one)", d["PHI1"]) + else: + ss += "No phasogram info available.\n" + return ss + + def _info_spectral_fit(self): + d = self.data_spectral + ss = "\n*** Spectral info ***\n\n" + if d is None: + ss += "No spectral info available.\n" + return ss + ss += "{:<20s} : {:.0f}\n".format("TS", d["Test_Statistic"]) + ss += "{:<20s} : {:.0f}\n".format("Significance (DC)", d["Signif_Avg"]) + ss += "{:<20s} : {:s}\n".format("Spectrum Type", d["SpectrumType"]) + + indentation = " " * 4 + fmt_e = "{}{:<20s} : {:.3e} +- {:.3e}\n" + fmt_f = "{}{:<20s} : {:.3f} +- {:.3f}\n" + + if not isinstance(d["PLEC_Flux_Density_b23"], np.ma.core.MaskedConstant): + ss += "\n{}* SuperExpCutoffPowerLaw4FGLDR3 b = 2/3 *\n\n".format( + indentation + ) + ss += fmt_e.format( + indentation, + "Amplitude", + d["PLEC_Flux_Density_b23"], + d["Unc_PLEC_Flux_Density_b23"], + ) + ss += fmt_f.format( + indentation, + "Index 1", + -d["PLEC_IndexS_b23"], + d["Unc_PLEC_IndexS_b23"], + ) + ss += "{}{:<20s} : {:.3f}\n".format(indentation, "Index 2", 0.6667) + ss += "{}{:<20s} : {:.3f}\n".format( + indentation, "Reference", d["Pivot_Energy_b23"] + ) + ss += fmt_f.format( + indentation, + "Expfactor", + d["PLEC_ExpfactorS_b23"], + d["Unc_PLEC_ExpfactorS_b23"], + ) + + if not isinstance(d["PLEC_Flux_Density_bfr"], np.ma.core.MaskedConstant): + ss += "\n{}* SuperExpCutoffPowerLaw4FGLDR3 b free *\n\n".format(indentation) + ss += fmt_e.format( + indentation, + "Amplitude", + d["PLEC_Flux_Density_bfr"], + d["Unc_PLEC_Flux_Density_bfr"], + ) + ss += fmt_f.format( + indentation, + "Index 1", + -d["PLEC_IndexS_bfr"], + d["Unc_PLEC_IndexS_bfr"], + ) + ss += fmt_f.format( + indentation, + "Index 2", + d["PLEC_Exp_Index_bfr"], + d["Unc_PLEC_Exp_Index_bfr"], + ) + ss += "{}{:<20s} : {:.3f}\n".format( + indentation, "Reference", d["Pivot_Energy_bfr"] + ) + ss += fmt_f.format( + indentation, + "Expfactor", + d["PLEC_ExpfactorS_bfr"], + d["Unc_PLEC_ExpfactorS_bfr"], + ) + return ss + +
+[docs] + def spectral_model(self, fit="auto"): + """ + In the 3PC, Fermi-LAT collaboration tried to fit a + `~gammapy.modelling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel` with the + exponential index `index_2` free, or fixed to 2/3. These two models are referred + as "b free" and "b 23". For most pulsars, both models are available. However, + in some cases the "b free" model did not fit correctly. + + Parameters + ---------- + + fit : str, optional + Which fitted model to return. The user can choose between "auto", "b free" + and "b 23". "auto" will always try to return the "b free" first and fall + back to the "b 23" fit if "b free" is not available. Default is "auto". + """ + d = self.data_spectral + if d is None or d["SpectrumType"] != "PLSuperExpCutoff4": + log.warning(f"No spectral model available for source {self.name}") + return None + + tag = "SuperExpCutoffPowerLaw4FGLDR3SpectralModel" + if not ( + isinstance(d["PLEC_IndexS_bfr"], np.ma.core.masked_array) or (fit == "b 23") + ): + pars = { + "reference": d["Pivot_Energy_bfr"], + "amplitude": d["PLEC_Flux_Density_bfr"], + "index_1": -d["PLEC_IndexS_bfr"], + "index_2": d["PLEC_Exp_Index_bfr"], + "expfactor": d["PLEC_ExpfactorS_bfr"], + } + errs = { + "amplitude": d["Unc_PLEC_Flux_Density_bfr"], + "index_1": d["Unc_PLEC_IndexS_bfr"], + "index_2": d["Unc_PLEC_Exp_Index_bfr"], + "expfactor": d["Unc_PLEC_ExpfactorS_bfr"], + } + else: + pars = { + "reference": d["Pivot_Energy_b23"], + "amplitude": d["PLEC_Flux_Density_b23"], + "index_1": -d["PLEC_IndexS_b23"], + "index_2": d["PLEC_Exp_Index_b23"], + "expfactor": d["PLEC_ExpfactorS_b23"], + } + errs = { + "amplitude": d["Unc_PLEC_Flux_Density_b23"], + "index_1": d["Unc_PLEC_IndexS_b23"], + "expfactor": d["Unc_PLEC_ExpfactorS_b23"], + } + + model = Model.create(tag, "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + + @property + def flux_points_table(self): + """Flux points (`~astropy.table.Table`). Flux point is an upper limit if + its significance is less than 2.""" + fp_data = self.data_spectral + if fp_data is None: + log.warning(f"No flux points available for source {self.name}") + return None + table = Table() + + table["e_min"] = self._energy_edges[:-1] + table["e_max"] = self._energy_edges[1:] + table["e_ref"] = np.sqrt(table["e_min"] * table["e_max"]) + + fgl_cols = ["Flux_Band", "Unc_Flux_Band", "Sqrt_TS_Band", "nuFnu_Band"] + flux, flux_err, sig, nuFnu = [fp_data[col] for col in fgl_cols] + + table["flux"] = flux + table["flux_errn"] = np.abs(flux_err[:, 0]) + table["flux_errp"] = flux_err[:, 1] + + table["e2dnde"] = nuFnu + table["e2dnde_errn"] = np.abs(nuFnu * flux_err[:, 0] / flux) + table["e2dnde_errp"] = nuFnu * flux_err[:, 1] / flux + + is_ul = np.isnan(flux_err[:, 0]) | (sig < 2) + table["is_ul"] = is_ul + + table["flux_ul"] = np.nan * flux_err.unit + flux_ul = compute_flux_points_ul(table["flux"], table["flux_errp"]) + table["flux_ul"][is_ul] = flux_ul[is_ul] + + table["e2dnde_ul"] = np.nan * table["e2dnde"].unit + e2dnde_ul = compute_flux_points_ul(table["e2dnde"], table["e2dnde_errp"]) + table["e2dnde_ul"][is_ul] = e2dnde_ul[is_ul] + + table["sqrt_ts"] = fp_data["Sqrt_TS_Band"] + + return table
+ + + +
+[docs] +class SourceCatalog3FGL(SourceCatalog): + """Fermi-LAT 3FGL source catalog. + + - https://ui.adsabs.harvard.edu/abs/2015ApJS..218...23A + - https://fermi.gsfc.nasa.gov/ssc/data/access/lat/4yr_catalog/ + + One source is represented by `~gammapy.catalog.SourceCatalogObject3FGL`. + """ + + tag = "3fgl" + description = "LAT 4-year point source catalog" + source_object_class = SourceCatalogObject3FGL + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/fermi/gll_psc_v16.fit.gz"): + filename = make_path(filename) + + with warnings.catch_warnings(): # ignore FITS units warnings + warnings.simplefilter("ignore", u.UnitsWarning) + table = Table.read(filename, hdu="LAT_Point_Source_Catalog") + + table_standardise_units_inplace(table) + + source_name_key = "Source_Name" + source_name_alias = ( + "Extended_Source_Name", + "0FGL_Name", + "1FGL_Name", + "2FGL_Name", + "1FHL_Name", + "ASSOC_TEV", + "ASSOC1", + "ASSOC2", + ) + super().__init__( + table=table, + source_name_key=source_name_key, + source_name_alias=source_name_alias, + ) + + self.extended_sources_table = Table.read(filename, hdu="ExtendedSources") + self.hist_table = Table.read(filename, hdu="Hist_Start")
+ + + +
+[docs] +class SourceCatalog4FGL(SourceCatalog): + """Fermi-LAT 4FGL source catalog. + + - https://arxiv.org/abs/1902.10045 (DR1) + - https://arxiv.org/abs/2005.11208 (DR2) + - https://arxiv.org/abs/2201.11184 (DR3) + - https://arxiv.org/abs/2307.12546 (DR4) + + By default we use the file of the DR4 initial release + from https://fermi.gsfc.nasa.gov/ssc/data/access/lat/14yr_catalog/ + + One source is represented by `~gammapy.catalog.SourceCatalogObject4FGL`. + """ + + tag = "4fgl" + description = "LAT 14-year point source catalog" + source_object_class = SourceCatalogObject4FGL + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/fermi/gll_psc_v32.fit.gz"): + filename = make_path(filename) + table = Table.read(filename, hdu="LAT_Point_Source_Catalog") + table_standardise_units_inplace(table) + + source_name_key = "Source_Name" + source_name_alias = ( + "Extended_Source_Name", + "ASSOC_FGL", + "ASSOC_FHL", + "ASSOC_GAM1", + "ASSOC_GAM2", + "ASSOC_GAM3", + "ASSOC_TEV", + "ASSOC1", + "ASSOC2", + ) + super().__init__( + table=table, + source_name_key=source_name_key, + source_name_alias=source_name_alias, + ) + + self.extended_sources_table = Table.read(filename, hdu="ExtendedSources") + self.extended_sources_table["version"] = int( + "".join(filter(str.isdigit, table.meta["VERSION"])) + ) + try: + self.hist_table = Table.read(filename, hdu="Hist_Start") + if "MJDREFI" not in self.hist_table.meta: + self.hist_table.meta = Table.read(filename, hdu="GTI").meta + except KeyError: + pass + try: + self.hist2_table = Table.read(filename, hdu="Hist2_Start") + if "MJDREFI" not in self.hist_table.meta: + self.hist2_table.meta = Table.read(filename, hdu="GTI").meta + except KeyError: + pass + + table = Table.read(filename, hdu="EnergyBounds") + self.flux_points_energy_edges = np.unique( + np.c_[table["LowerEnergy"].quantity, table["UpperEnergy"].quantity] + )
+ + + +
+[docs] +class SourceCatalog2FHL(SourceCatalog): + """Fermi-LAT 2FHL source catalog. + + - https://ui.adsabs.harvard.edu/abs/2016ApJS..222....5A + - https://fermi.gsfc.nasa.gov/ssc/data/access/lat/2FHL/ + + One source is represented by `~gammapy.catalog.SourceCatalogObject2FHL`. + """ + + tag = "2fhl" + description = "LAT second high-energy source catalog" + source_object_class = SourceCatalogObject2FHL + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/fermi/gll_psch_v09.fit.gz"): + filename = make_path(filename) + + with warnings.catch_warnings(): # ignore FITS units warnings + warnings.simplefilter("ignore", u.UnitsWarning) + table = Table.read(filename, hdu="2FHL Source Catalog") + + table_standardise_units_inplace(table) + + source_name_key = "Source_Name" + source_name_alias = ("ASSOC", "3FGL_Name", "1FHL_Name", "TeVCat_Name") + super().__init__( + table=table, + source_name_key=source_name_key, + source_name_alias=source_name_alias, + ) + + self.extended_sources_table = Table.read(filename, hdu="Extended Sources") + self.rois = Table.read(filename, hdu="ROIs")
+ + + +
+[docs] +class SourceCatalog3FHL(SourceCatalog): + """Fermi-LAT 3FHL source catalog. + + - https://ui.adsabs.harvard.edu/abs/2017ApJS..232...18A + - https://fermi.gsfc.nasa.gov/ssc/data/access/lat/3FHL/ + + One source is represented by `~gammapy.catalog.SourceCatalogObject3FHL`. + """ + + tag = "3fhl" + description = "LAT third high-energy source catalog" + source_object_class = SourceCatalogObject3FHL + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/fermi/gll_psch_v13.fit.gz"): + filename = make_path(filename) + + with warnings.catch_warnings(): # ignore FITS units warnings + warnings.simplefilter("ignore", u.UnitsWarning) + table = Table.read(filename, hdu="LAT_Point_Source_Catalog") + + table_standardise_units_inplace(table) + + source_name_key = "Source_Name" + source_name_alias = ("ASSOC1", "ASSOC2", "ASSOC_TEV", "ASSOC_GAM") + super().__init__( + table=table, + source_name_key=source_name_key, + source_name_alias=source_name_alias, + ) + + self.extended_sources_table = Table.read(filename, hdu="ExtendedSources") + self.rois = Table.read(filename, hdu="ROIs") + self.energy_bounds_table = Table.read(filename, hdu="EnergyBounds")
+ + + +
+[docs] +class SourceCatalog2PC(SourceCatalog): + """Fermi-LAT 2nd pulsar catalog. + + - https://ui.adsabs.harvard.edu/abs/2013ApJS..208...17A + - https://fermi.gsfc.nasa.gov/ssc/data/access/lat/2nd_PSR_catalog/ + + One source is represented by `~gammapy.catalog.SourceCatalogObject2PC`. + """ + + tag = "2PC" + description = "LAT 2nd pulsar catalog" + source_object_class = SourceCatalogObject2PC + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/fermi/2PC_catalog_v04.fits.gz"): + filename = make_path(filename) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", u.UnitsWarning) + table_psr = Table.read(filename, hdu="PULSAR_CATALOG") + table_spectral = Table.read(filename, hdu="SPECTRAL") + table_off_peak = Table.read(filename, hdu="OFF_PEAK") + + table_standardise_units_inplace(table_psr) + table_standardise_units_inplace(table_spectral) + table_standardise_units_inplace(table_off_peak) + + source_name_key = "PSR_Name" + + super().__init__(table=table_psr, source_name_key=source_name_key) + + self.source_object_class._source_name_key = source_name_key + + self.off_peak_table = table_off_peak + self.spectral_table = table_spectral + +
+[docs] + def to_models(self, **kwargs): + models = Models() + for m in self: + sky_model = m.sky_model() + if sky_model is not None: + models.append(sky_model) + return models
+ + + def _get_name_spectral(self, data): + return f"{data[self._source_name_key].strip()}"
+ + + +
+[docs] +class SourceCatalog3PC(SourceCatalog): + """Fermi-LAT 3rd pulsar catalog. + + - https://arxiv.org/abs/2307.11132 + - https://fermi.gsfc.nasa.gov/ssc/data/access/lat/3rd_PSR_catalog/ + + One source is represented by `~gammapy.catalog.SourceCatalogObject3PC`. + """ + + tag = "3PC" + description = "LAT 3rd pulsar catalog" + source_object_class = SourceCatalogObject3PC + + def __init__( + self, filename="$GAMMAPY_DATA/catalogs/fermi/3PC_Catalog+SEDs_20230803.fits.gz" + ): + filename = make_path(filename) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", u.UnitsWarning) + table_psr = Table.read(filename, hdu="PULSARS_BIGFILE") + table_spectral = Table.read(filename, hdu="LAT_Point_Source_Catalog") + table_bigfile_config = Table.read(filename, hdu="BIGFILE_CONFIG") + + table_standardise_units_inplace(table_psr) + table_standardise_units_inplace(table_spectral) + table_standardise_units_inplace(table_bigfile_config) + + source_name_key = "PSRJ" + super().__init__(table=table_psr, source_name_key=source_name_key) + + self.source_object_class._source_name_key = source_name_key + + self.spectral_table = table_spectral + self.off_bigfile_config = table_bigfile_config + +
+[docs] + def to_models(self, **kwargs): + models = Models() + for m in self: + sky_model = m.sky_model() + if sky_model is not None: + models.append(sky_model) + return models
+ + + @property + def _get_source_name_key(self): + return "NickName" + + def _get_name_spectral(self, data): + return f"PSR{data[self._source_name_key].strip()}"
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/catalog/gammacat.html b/docs/dev/_modules/gammapy/catalog/gammacat.html new file mode 100644 index 00000000000..af142f710bc --- /dev/null +++ b/docs/dev/_modules/gammapy/catalog/gammacat.html @@ -0,0 +1,930 @@ + + + + + + + + + + gammapy.catalog.gammacat — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.catalog.gammacat

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Gammacat open TeV source catalog.
+
+https://github.com/gammapy/gamma-cat
+"""
+import logging
+import numpy as np
+from astropy import units as u
+from astropy.table import Table
+from gammapy.estimators import FluxPoints
+from gammapy.modeling.models import Model, SkyModel
+from gammapy.utils.scripts import make_path
+from .core import SourceCatalog, SourceCatalogObject, format_flux_points_table
+
+__all__ = ["SourceCatalogGammaCat", "SourceCatalogObjectGammaCat"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class SourceCatalogObjectGammaCat(SourceCatalogObject): + """One object from the gamma-cat source catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalogGammaCat`. + """ + + _source_name_key = "common_name" + + def __str__(self): + return self.info() + + @property + def flux_points(self): + """Flux points (`~gammapy.estimators.FluxPoints`).""" + return FluxPoints.from_table( + table=self.flux_points_table, + reference_model=self.sky_model(), + format="gadf-sed", + ) + +
+[docs] + def info(self, info="all"): + """Information string. + + Parameters + ---------- + info : {'all', 'basic', 'position, 'model'} + Comma separated list of options + """ + if info == "all": + info = "basic,position,model" + + ss = "" + ops = info.split(",") + if "basic" in ops: + ss += self._info_basic() + if "position" in ops: + ss += self._info_position() + if "model" in ops: + ss += self._info_morph() + ss += self._info_spectral_fit() + ss += self._info_spectral_points() + + return ss
+ + + def _info_basic(self): + """Print basic info.""" + d = self.data + return ( + f"\n*** Basic info ***\n\n" + f"Catalog row index (zero-based): {self.row_index}\n" + f"Common name: {self.name}\n" + f"Gamma names: {d.gamma_names}\n" + f"Fermi names: {d.fermi_names}\n" + f"Other names: {d.other_names}\n" + f"Location: {d.where}\n" + f"Class: {d.classes}\n\n" + f"TeVCat ID: {d.tevcat_id}\n" + f"TeVCat 2 ID: {d.tevcat2_id}\n" + f"TeVCat name: {d.tevcat_name}\n\n" + f"TGeVCat ID: {d.tgevcat_id}\n" + f"TGeVCat name: {d.tgevcat_name}\n\n" + f"Discoverer: {d.discoverer}\n" + f"Discovery date: {d.discovery_date}\n" + f"Seen by: {d.seen_by}\n" + f"Reference: {d.reference_id}\n" + ) + + def _info_position(self): + """Print position information.""" + d = self.data + return ( + f"\n*** Position info ***\n\n" + f"SIMBAD:\n" + f"RA: {d.ra:.3f}\n" + f"DEC: {d.dec:.3f}\n" + f"GLON: {d.glon:.3f}\n" + f"GLAT: {d.glat:.3f}\n" + f"\nMeasurement:\n" + f"RA: {d.pos_ra:.3f}\n" + f"DEC: {d.pos_dec:.3f}\n" + f"GLON: {d.pos_glon:.3f}\n" + f"GLAT: {d.pos_glat:.3f}\n" + f"Position error: {d.pos_err:.3f}\n" + ) + + def _info_morph(self): + """Print morphology information.""" + d = self.data + return ( + f"\n*** Morphology info ***\n\n" + f"Morphology model type: {d.morph_type}\n" + f"Sigma: {d.morph_sigma:.3f}\n" + f"Sigma error: {d.morph_sigma_err:.3f}\n" + f"Sigma2: {d.morph_sigma2:.3f}\n" + f"Sigma2 error: {d.morph_sigma2_err:.3f}\n" + f"Position angle: {d.morph_pa:.3f}\n" + f"Position angle error: {d.morph_pa_err:.3f}\n" + f"Position angle frame: {d.morph_pa_frame}\n" + ) + + def _info_spectral_fit(self): + """Print spectral information.""" + d = self.data + ss = "\n*** Spectral info ***\n\n" + ss += f"Significance: {d.significance:.3f}\n" + ss += f"Livetime: {d.livetime:.3f}\n" + + spec_type = d["spec_type"] + ss += f"\nSpectrum type: {spec_type}\n" + if spec_type == "pl": + ss += f"norm: {d.spec_pl_norm:.3} +- {d.spec_pl_norm_err:.3} (stat) +- {d.spec_pl_norm_err_sys:.3} (sys) cm-2 s-1 TeV-1\n" # noqa: E501 + ss += f"index: {d.spec_pl_index:.3} +- {d.spec_pl_index_err:.3} (stat) +- {d.spec_pl_index_err_sys:.3} (sys)\n" # noqa: E501 + ss += f"reference: {d.spec_pl_e_ref:.3}\n" + elif spec_type == "pl2": + ss += f"flux: {d.spec_pl2_flux.value:.3} +- {d.spec_pl2_flux_err.value:.3} (stat) +- {d.spec_pl2_flux_err_sys.value:.3} (sys) cm-2 s-1\n" # noqa: E501 + ss += f"index: {d.spec_pl2_index:.3} +- {d.spec_pl2_index_err:.3} (stat) +- {d.spec_pl2_index_err_sys:.3} (sys)\n" # noqa: E501 + ss += f"e_min: {d.spec_pl2_e_min:.3}\n" + ss += f"e_max: {d.spec_pl2_e_max:.3}\n" + elif spec_type == "ecpl": + ss += f"norm: {d.spec_ecpl_norm.value:.3g} +- {d.spec_ecpl_norm_err.value:.3g} (stat) +- {d.spec_ecpl_norm_err_sys.value:.03g} (sys) cm-2 s-1 TeV-1\n" # noqa: E501 + ss += f"index: {d.spec_ecpl_index:.3} +- {d.spec_ecpl_index_err:.3} (stat) +- {d.spec_ecpl_index_err_sys:.3} (sys)\n" # noqa: E501 + ss += f"e_cut: {d.spec_ecpl_e_cut.value:.3} +- {d.spec_ecpl_e_cut_err.value:.3} (stat) +- {d.spec_ecpl_e_cut_err_sys.value:.3} (sys) TeV\n" # noqa: E501 + ss += f"reference: {d.spec_ecpl_e_ref:.3}\n" + elif spec_type == "none": + pass + else: + raise ValueError(f"Invalid spec_type: {spec_type}") + + ss += f"\nEnergy range: ({d.spec_erange_min.value:.3}, {d.spec_erange_max.value:.3}) TeV\n" + ss += f"theta: {d.spec_theta:.3}\n" + + ss += "\n\nDerived fluxes:\n" + + ss += f"Spectral model norm (1 TeV): {d.spec_dnde_1TeV:.3} +- {d.spec_dnde_1TeV_err:.3} (stat) cm-2 s-1 TeV-1\n" # noqa: E501 + ss += f"Integrated flux (>1 TeV): {d.spec_flux_1TeV.value:.3} +- {d.spec_flux_1TeV_err.value:.3} (stat) cm-2 s-1\n" # noqa: E501 + ss += f"Integrated flux (>1 TeV): {d.spec_flux_1TeV_crab:.3f} +- {d.spec_flux_1TeV_crab_err:.3f} (% Crab)\n" # noqa: E501 + ss += f"Integrated flux (1-10 TeV): {d.spec_eflux_1TeV_10TeV.value:.3} +- {d.spec_eflux_1TeV_10TeV_err.value:.3} (stat) erg cm-2 s-1\n" # noqa: E501 + + return ss + + def _info_spectral_points(self): + """Print spectral points information.""" + d = self.data + ss = "\n*** Spectral points ***\n\n" + ss += f"SED reference ID: {d.sed_reference_id}\n" + ss += f"Number of spectral points: {d.sed_n_points}\n" + ss += f"Number of upper limits: {d.sed_n_ul}\n\n" + + table = self.flux_points_table + if table is None: + ss += "\nNo spectral points available for this source." + else: + lines = format_flux_points_table(table).pformat(max_width=-1, max_lines=-1) + ss += "\n".join(lines) + + return ss + "\n" + +
+[docs] + def spectral_model(self): + """Source spectral model (`~gammapy.modeling.models.SpectralModel`). + + Parameter errors are statistical errors only. + """ + data = self.data + spec_type = data["spec_type"] + + if spec_type == "pl": + tag = "PowerLawSpectralModel" + pars = { + "amplitude": data["spec_pl_norm"], + "index": data["spec_pl_index"], + "reference": data["spec_pl_e_ref"], + } + errs = { + "amplitude": data["spec_pl_norm_err"], + "index": data["spec_pl_index_err"], + } + elif spec_type == "pl2": + e_max = data["spec_pl2_e_max"] + DEFAULT_E_MAX = u.Quantity(1e5, "TeV") + + if np.isnan(e_max.value) or e_max.value == 0: + e_max = DEFAULT_E_MAX + + tag = "PowerLaw2SpectralModel" + pars = { + "amplitude": data["spec_pl2_flux"], + "index": data["spec_pl2_index"], + "emin": data["spec_pl2_e_min"], + "emax": e_max, + } + errs = { + "amplitude": data["spec_pl2_flux_err"], + "index": data["spec_pl2_index_err"], + } + elif spec_type == "ecpl": + tag = "ExpCutoffPowerLawSpectralModel" + pars = { + "amplitude": data["spec_ecpl_norm"], + "index": data["spec_ecpl_index"], + "lambda_": 1.0 / data["spec_ecpl_e_cut"], + "reference": data["spec_ecpl_e_ref"], + } + errs = { + "amplitude": data["spec_ecpl_norm_err"], + "index": data["spec_ecpl_index_err"], + "lambda_": data["spec_ecpl_e_cut_err"] / data["spec_ecpl_e_cut"] ** 2, + } + elif spec_type == "none": + return None + else: + raise ValueError(f"Invalid spec_type: {spec_type}") + + model = Model.create(tag, "spectral", **pars) + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def spatial_model(self): + """Source spatial model (`~gammapy.modeling.models.SpatialModel`). + + TODO: add parameter errors! + """ + d = self.data + morph_type = d["morph_type"] + + pars = {"lon_0": d["glon"], "lat_0": d["glat"], "frame": "galactic"} + errs = { + "lat_0": self.data["pos_err"], + "lon_0": self.data["pos_err"] / np.cos(self.data["glat"]), + } + + if morph_type == "point": + tag = "PointSpatialModel" + elif morph_type == "gauss": + # TODO: add infos back once model support elongation + # pars['x_stddev'] = d['morph_sigma'] + # pars['y_stddev'] = d['morph_sigma'] + # if not np.isnan(d['morph_sigma2']): + # pars['y_stddev'] = d['morph_sigma2'] + # if not np.isnan(d['morph_pa']): + # # TODO: handle reference frame for rotation angle + # pars['theta'] = Angle(d['morph_pa'], 'deg').rad + tag = "GaussianSpatialModel" + pars["sigma"] = d["morph_sigma"] + elif morph_type == "shell": + tag = "ShellSpatialModel" + # TODO: probably we shouldn't guess a shell width here! + pars["radius"] = 0.8 * d["morph_sigma"] + pars["width"] = 0.2 * d["morph_sigma"] + elif morph_type == "none": + return None + else: + raise ValueError(f"Invalid morph_type: {morph_type!r}") + + model = Model.create(tag, "spatial", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def sky_model(self): + """Source sky model (`~gammapy.modeling.models.SkyModel`).""" + return SkyModel( + spatial_model=self.spatial_model(), + spectral_model=self.spectral_model(), + name=self.name, + )
+ + + def _add_source_meta(self, table): + """Copy over some information to `table.meta`.""" + d = self.data + m = table.meta + m["origin"] = "Data from gamma-cat" + m["source_id"] = d["source_id"] + m["common_name"] = d["common_name"] + m["reference_id"] = d["reference_id"] + + @property + def flux_points_table(self): + """Differential flux points (`~gammapy.estimators.FluxPoints`).""" + d = self.data + table = Table() + table.meta["SED_TYPE"] = "dnde" + self._add_source_meta(table) + + valid = np.isfinite(d["sed_e_ref"].value) + + if valid.sum() == 0: + return None + + table["e_ref"] = d["sed_e_ref"] + table["e_min"] = d["sed_e_min"] + table["e_max"] = d["sed_e_max"] + + table["dnde"] = d["sed_dnde"] + table["dnde_err"] = d["sed_dnde_err"] + table["dnde_errn"] = d["sed_dnde_errn"] + table["dnde_errp"] = d["sed_dnde_errp"] + table["dnde_ul"] = d["sed_dnde_ul"] + + # Only keep rows that actually contain information + table = table[valid] + + for colname in table.colnames: + if not np.isfinite(table[colname]).any(): + table.remove_column(colname) + + return table
+ + + +
+[docs] +class SourceCatalogGammaCat(SourceCatalog): + """Gammacat open TeV source catalog. + + See: https://github.com/gammapy/gamma-cat + + One source is represented by `~gammapy.catalog.SourceCatalogObjectGammaCat`. + + Parameters + ---------- + filename : str + Path to the gamma-cat fits file. + + Examples + -------- + Load the catalog data: + + >>> import matplotlib.pyplot as plt + >>> import astropy.units as u + >>> from gammapy.catalog import SourceCatalogGammaCat + >>> cat = SourceCatalogGammaCat() + + Access a source by name: + + >>> source = cat['Vela Junior'] + + Access source spectral data and plot it: + + >>> ax = plt.subplot() + >>> energy_range = [1, 10] * u.TeV + >>> source.spectral_model().plot(energy_range, ax=ax) # doctest: +SKIP + >>> source.spectral_model().plot_error(energy_range, ax=ax) # doctest: +SKIP + >>> source.flux_points.plot(ax=ax) # doctest: +SKIP + """ + + tag = "gamma-cat" + description = "An open catalog of gamma-ray sources" + source_object_class = SourceCatalogObjectGammaCat + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/gammacat/gammacat.fits.gz"): + filename = make_path(filename) + table = Table.read(filename, hdu=1) + + source_name_key = "common_name" + source_name_alias = ("other_names", "gamma_names") + super().__init__( + table=table, + source_name_key=source_name_key, + source_name_alias=source_name_alias, + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/catalog/hawc.html b/docs/dev/_modules/gammapy/catalog/hawc.html new file mode 100644 index 00000000000..a38f762b86b --- /dev/null +++ b/docs/dev/_modules/gammapy/catalog/hawc.html @@ -0,0 +1,899 @@ + + + + + + + + + + gammapy.catalog.hawc — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.catalog.hawc

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""HAWC catalogs (https://www.hawc-observatory.org)."""
+import abc
+import numpy as np
+from astropy.table import Table
+from gammapy.modeling.models import Model, SkyModel
+from gammapy.utils.scripts import make_path
+from .core import SourceCatalog, SourceCatalogObject
+
+__all__ = [
+    "SourceCatalog2HWC",
+    "SourceCatalog3HWC",
+    "SourceCatalogObject2HWC",
+    "SourceCatalogObject3HWC",
+]
+
+
+class SourceCatalogObjectHWCBase(SourceCatalogObject, abc.ABC):
+    """Base class for the HAWC catalogs objects."""
+
+    _source_name_key = "source_name"
+
+    def __str__(self):
+        return self.info()
+
+    def info(self, info="all"):
+        """Summary information string.
+
+        Parameters
+        ----------
+        info : {'all', 'basic', 'position', 'spectrum'}
+            Comma separated list of options
+        """
+        if info == "all":
+            info = "basic,position,spectrum"
+
+        ss = ""
+        ops = info.split(",")
+        if "basic" in ops:
+            ss += self._info_basic()
+        if "position" in ops:
+            ss += self._info_position()
+        if "spectrum" in ops:
+            ss += self._info_spectrum()
+
+        return ss
+
+    def _info_basic(self):
+        """Print basic information."""
+        return (
+            f"\n*** Basic info ***\n\n"
+            f"Catalog row index (zero-based) : {self.row_index}\n"
+            f"Source name : {self.name}\n"
+        )
+
+    def _info_position(self):
+        """Print position information."""
+        return (
+            f"\n*** Position info ***\n\n"
+            f"RA: {self.data.ra:.3f}\n"
+            f"DEC: {self.data.dec:.3f}\n"
+            f"GLON: {self.data.glon:.3f}\n"
+            f"GLAT: {self.data.glat:.3f}\n"
+            f"Position error: {self.data.pos_err:.3f}\n"
+        )
+
+    def _info_spectrum(self):
+        """Print spectral information."""
+        ss = "\n*** Spectral info ***\n\n"
+        ss += self._info_spectrum_one(0)
+
+        if self.n_models == 2:
+            ss += self._info_spectrum_one(1)
+        else:
+            ss += "No second spectrum available"
+
+        return ss
+
+
+
+[docs] +class SourceCatalogObject2HWC(SourceCatalogObjectHWCBase): + """One source from the HAWC 2HWC catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog2HWC`. + """ + + @property + def n_models(self): + """Number of models (1 or 2).""" + if hasattr(self.data, "spec1_dnde"): + return 1 if np.isnan(self.data.spec1_dnde) else 2 + else: + return 1 + + def _get_idx(self, which): + if which == "point": + return 0 + elif which == "extended": + if self.n_models == 2: + return 1 + else: + raise ValueError(f"No extended source analysis available: {self.name}") + else: + raise ValueError(f"Invalid which: {which!r}") + + def _info_spectrum_one(self, idx): + d = self.data + ss = f"Spectrum {idx}:\n" + val, err = d[f"spec{idx}_dnde"].value, d[f"spec{idx}_dnde_err"].value + ss += f"Flux at 7 TeV: {val:.3} +- {err:.3} cm-2 s-1 TeV-1\n" + val, err = d[f"spec{idx}_index"], d[f"spec{idx}_index_err"] + ss += f"Spectral index: {val:.3f} +- {err:.3f}\n" + radius = d[f"spec{idx}_radius"] + ss += f"Test Radius: {radius:1}\n\n" + return ss + +
+[docs] + def spectral_model(self, which="point"): + """Spectral model (`~gammapy.modeling.models.PowerLawSpectralModel`). + + * ``which="point"`` -- Spectral model under the point source assumption. + * ``which="extended"`` -- Spectral model under the extended source assumption. + Only available for some sources. Raise ValueError if not available. + """ + idx = self._get_idx(which) + + pars = { + "reference": "7 TeV", + "amplitude": self.data[f"spec{idx}_dnde"], + "index": -self.data[f"spec{idx}_index"], + } + + errs = { + "amplitude": self.data[f"spec{idx}_dnde_err"], + "index": self.data[f"spec{idx}_index_err"], + } + + model = Model.create("PowerLawSpectralModel", "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def spatial_model(self, which="point"): + """Spatial model (`~gammapy.modeling.models.SpatialModel`). + + * ``which="point"`` - `~gammapy.modeling.models.PointSpatialModel`. + * ``which="extended"`` - `~gammapy.modeling.models.DiskSpatialModel`. + Only available for some sources. Raise ValueError if not available. + """ + idx = self._get_idx(which) + pars = {"lon_0": self.data.glon, "lat_0": self.data.glat, "frame": "galactic"} + + if idx == 0: + tag = "PointSpatialModel" + else: + tag = "DiskSpatialModel" + pars["r_0"] = self.data[f"spec{idx}_radius"] + + errs = { + "lat_0": self.data.pos_err, + "lon_0": self.data.pos_err / np.cos(self.data.glat), + } + + model = Model.create(tag, "spatial", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def sky_model(self, which="point"): + """Sky model (`~gammapy.modeling.models.SkyModel`). + + * ``which="point"`` - Sky model for point source analysis. + * ``which="extended"`` - Sky model for extended source analysis. + Only available for some sources. Raise ValueError if not available. + + According to the paper, the radius of the extended source model is only a rough estimate + of the source size, based on the residual excess. + """ + return SkyModel( + spatial_model=self.spatial_model(which), + spectral_model=self.spectral_model(which), + name=self.name, + )
+
+ + + +
+[docs] +class SourceCatalog2HWC(SourceCatalog): + """HAWC 2HWC catalog. + + One source is represented by `~gammapy.catalog.SourceCatalogObject2HWC`. + + The data is from tables 2 and 3 in the paper [1]_. + + The catalog table contains 40 rows / sources. + The paper mentions 39 sources e.g. in the abstract. + The difference is due to Geminga, which was detected as two "sources" by the algorithm + used to make the catalog, but then in the discussion considered as one source. + + References + ---------- + .. [1] Abeysekara et al, "The 2HWC HAWC Observatory Gamma Ray Catalog", + On ADS: `2017ApJ...843...40A <https://ui.adsabs.harvard.edu/abs/2017ApJ...843...40A>`__ + """ + + tag = "2hwc" + """Catalog name""" + + description = "2HWC catalog from the HAWC observatory" + """Catalog description""" + + source_object_class = SourceCatalogObject2HWC + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/2HWC.ecsv"): + table = Table.read(make_path(filename), format="ascii.ecsv") + + source_name_key = "source_name" + + super().__init__(table=table, source_name_key=source_name_key)
+ + + +
+[docs] +class SourceCatalogObject3HWC(SourceCatalogObjectHWCBase): + """One source from the HAWC 3HWC catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog3HWC`. + """ + + @property + def n_models(self): + """Number of models.""" + return 1 + + def _info_spectrum_one(self, idx): + d = self.data + ss = f"Spectrum {idx}:\n" + val, errn, errp = ( + d[f"spec{idx}_dnde"].value, + d[f"spec{idx}_dnde_errn"].value, + d[f"spec{idx}_dnde_errp"].value, + ) + ss += f"Flux at 7 TeV: {val:.3} {errn:.3} + {errp:.3} cm-2 s-1 TeV-1\n" + val, errn, errp = ( + d[f"spec{idx}_index"], + d[f"spec{idx}_index_errn"], + d[f"spec{idx}_index_errp"], + ) + ss += f"Spectral index: {val:.3f} {errn:.3f} + {errp:.3f}\n" + radius = d[f"spec{idx}_radius"] + ss += f"Test Radius: {radius:1}\n\n" + return ss + + @property + def is_pointlike(self): + return self.data["spec0_radius"] == 0.0 + +
+[docs] + def spectral_model(self): + """Spectral model as a `~gammapy.modeling.models.PowerLawSpectralModel` object.""" + pars = { + "reference": "7 TeV", + "amplitude": self.data["spec0_dnde"], + "index": -self.data["spec0_index"], + } + + errs = { + "index": 0.5 + * (self.data["spec0_index_errp"] + np.abs(self.data["spec0_index_errn"])), + "amplitude": 0.5 + * (self.data["spec0_dnde_errp"] + np.abs(self.data["spec0_dnde_errn"])), + } + + model = Model.create("PowerLawSpectralModel", "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def spatial_model(self): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object.""" + pars = {"lon_0": self.data.glon, "lat_0": self.data.glat, "frame": "galactic"} + + if self.is_pointlike: + tag = "PointSpatialModel" + else: + tag = "DiskSpatialModel" + pars["r_0"] = self.data["spec0_radius"] + + errs = { + "lat_0": self.data.pos_err, + "lon_0": self.data.pos_err / np.cos(self.data.glat), + } + + model = Model.create(tag, "spatial", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def sky_model(self): + """Sky model as a `~gammapy.modeling.models.SkyModel` object.""" + return SkyModel( + spatial_model=self.spatial_model(), + spectral_model=self.spectral_model(), + name=self.name, + )
+
+ + + +
+[docs] +class SourceCatalog3HWC(SourceCatalog): + """HAWC 3HWC catalog. + + One source is represented by `~gammapy.catalog.SourceCatalogObject3HWC`. + + The data is from tables 2 and 3 in the paper [1]_. + + The catalog table contains 65 rows / sources. + + References + ---------- + .. [1] 3HWC: The Third HAWC Catalog of Very-High-Energy Gamma-ray Sources", + https://data.hawc-observatory.org/datasets/3hwc-survey/index.php + """ + + tag = "3hwc" + """Catalog name""" + + description = "3HWC catalog from the HAWC observatory" + """Catalog description""" + + source_object_class = SourceCatalogObject3HWC + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/3HWC.ecsv"): + table = Table.read(make_path(filename), format="ascii.ecsv") + + source_name_key = "source_name" + + super().__init__(table=table, source_name_key=source_name_key)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/catalog/hess.html b/docs/dev/_modules/gammapy/catalog/hess.html new file mode 100644 index 00000000000..7c57c75c1db --- /dev/null +++ b/docs/dev/_modules/gammapy/catalog/hess.html @@ -0,0 +1,1604 @@ + + + + + + + + + + gammapy.catalog.hess — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.catalog.hess

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""HESS Galactic plane survey (HGPS) catalog."""
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import Angle
+from astropy.modeling.models import Gaussian1D
+from astropy.table import Table
+from gammapy.estimators import FluxPoints
+from gammapy.maps import MapAxis, RegionGeom
+from gammapy.modeling.models import Model, Models, SkyModel
+from gammapy.utils.interpolation import ScaledRegularGridInterpolator
+from gammapy.utils.scripts import make_path
+from gammapy.utils.table import table_row_to_dict
+from .core import SourceCatalog, SourceCatalogObject, format_flux_points_table
+
+__all__ = [
+    "SourceCatalogHGPS",
+    "SourceCatalogLargeScaleHGPS",
+    "SourceCatalogObjectHGPS",
+    "SourceCatalogObjectHGPSComponent",
+]
+
+# Flux factor, used for printing
+FF = 1e-12
+
+# Multiplicative factor to go from cm^-2 s^-1 to % Crab for integral flux > 1 TeV
+# Here we use the same Crab reference that's used in the HGPS paper
+# CRAB = crab_integral_flux(energy_min=1, reference='hess_ecpl')
+FLUX_TO_CRAB = 100 / 2.26e-11
+FLUX_TO_CRAB_DIFF = 100 / 3.5060459323111307e-11
+
+
+
+[docs] +class SourceCatalogObjectHGPSComponent(SourceCatalogObject): + """One Gaussian component from the HGPS catalog. + + See Also + -------- + SourceCatalogHGPS, SourceCatalogObjectHGPS + """ + + _source_name_key = "Component_ID" + + def __init__(self, data): + self.data = data + + def __repr__(self): + return f"{self.__class__.__name__}({self.name!r})" + + def __str__(self): + """Pretty-print source data.""" + d = self.data + ss = "Component {}:\n".format(d["Component_ID"]) + fmt = "{:<20s} : {:8.3f} +/- {:.3f} deg\n" + ss += fmt.format("GLON", d["GLON"].value, d["GLON_Err"].value) + ss += fmt.format("GLAT", d["GLAT"].value, d["GLAT_Err"].value) + fmt = "{:<20s} : {:.3f} +/- {:.3f} deg\n" + ss += fmt.format("Size", d["Size"].value, d["Size_Err"].value) + val, err = d["Flux_Map"].value, d["Flux_Map_Err"].value + fmt = "{:<20s} : ({:.2f} +/- {:.2f}) x 10^-12 cm^-2 s^-1 = ({:.1f} +/- {:.1f}) % Crab" + ss += fmt.format( + "Flux (>1 TeV)", val / FF, err / FF, val * FLUX_TO_CRAB, err * FLUX_TO_CRAB + ) + return ss + + @property + def name(self): + """Source name as a string.""" + return self.data[self._source_name_key] + +
+[docs] + def spatial_model(self): + """Component spatial model as a `~gammapy.modeling.models.GaussianSpatialModel` object.""" + d = self.data + tag = "GaussianSpatialModel" + pars = { + "lon_0": d["GLON"], + "lat_0": d["GLAT"], + "sigma": d["Size"], + "frame": "galactic", + } + errs = {"lon_0": d["GLON_Err"], "lat_0": d["GLAT_Err"], "sigma": d["Size_Err"]} + model = Model.create(tag, "spatial", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+
+ + + +
+[docs] +class SourceCatalogObjectHGPS(SourceCatalogObject): + """One object from the HGPS catalog. + + The catalog is represented by `SourceCatalogHGPS`. + Examples are given there. + """ + + def __repr__(self): + return f"{self.__class__.__name__}({self.name!r})" + + def __str__(self): + return self.info() + + @property + def flux_points(self): + """Flux points as a `~gammapy.estimators.FluxPoints` object.""" + reference_model = SkyModel(spectral_model=self.spectral_model(), name=self.name) + return FluxPoints.from_table( + self.flux_points_table, + reference_model=reference_model, + ) + +
+[docs] + def info(self, info="all"): + """Information string. + + Parameters + ---------- + info : {'all', 'basic', 'map', 'spec', 'flux_points', 'components', 'associations', 'id'} + Comma separated list of options. + """ + if info == "all": + info = "basic,associations,id,map,spec,flux_points,components" + + ss = "" + ops = info.split(",") + if "basic" in ops: + ss += self._info_basic() + if "map" in ops: + ss += self._info_map() + if "spec" in ops: + ss += self._info_spec() + if "flux_points" in ops: + ss += self._info_flux_points() + if "components" in ops and hasattr(self, "components"): + ss += self._info_components() + if "associations" in ops: + ss += self._info_associations() + if "id" in ops and hasattr(self, "identification_info"): + ss += self._info_id() + return ss
+ + + def _info_basic(self): + """Print basic information.""" + d = self.data + ss = "\n*** Basic info ***\n\n" + ss += "Catalog row index (zero-based) : {}\n".format(self.row_index) + ss += "{:<20s} : {}\n".format("Source name", self.name) + + ss += "{:<20s} : {}\n".format("Analysis reference", d["Analysis_Reference"]) + ss += "{:<20s} : {}\n".format("Source class", d["Source_Class"]) + ss += "{:<20s} : {}\n".format("Identified object", d["Identified_Object"]) + ss += "{:<20s} : {}\n".format("Gamma-Cat id", d["Gamma_Cat_Source_ID"]) + ss += "\n" + return ss + + def _info_associations(self): + ss = "\n*** Source associations info ***\n\n" + lines = self.associations.pformat(max_width=-1, max_lines=-1) + ss += "\n".join(lines) + return ss + "\n" + + def _info_id(self): + ss = "\n*** Source identification info ***\n\n" + ss += "\n".join(f"{k}: {v}" for k, v in self.identification_info.items()) + return ss + "\n" + + def _info_map(self): + """Print information from map analysis.""" + d = self.data + ss = "\n*** Info from map analysis ***\n\n" + + ra_str = Angle(d["RAJ2000"], "deg").to_string(unit="hour", precision=0) + dec_str = Angle(d["DEJ2000"], "deg").to_string(unit="deg", precision=0) + ss += "{:<20s} : {:8.3f} = {}\n".format("RA", d["RAJ2000"], ra_str) + ss += "{:<20s} : {:8.3f} = {}\n".format("DEC", d["DEJ2000"], dec_str) + + ss += "{:<20s} : {:8.3f} +/- {:.3f} deg\n".format( + "GLON", d["GLON"].value, d["GLON_Err"].value + ) + ss += "{:<20s} : {:8.3f} +/- {:.3f} deg\n".format( + "GLAT", d["GLAT"].value, d["GLAT_Err"].value + ) + + ss += "{:<20s} : {:.3f}\n".format("Position Error (68%)", d["Pos_Err_68"]) + ss += "{:<20s} : {:.3f}\n".format("Position Error (95%)", d["Pos_Err_95"]) + + ss += "{:<20s} : {:.0f}\n".format("ROI number", d["ROI_Number"]) + ss += "{:<20s} : {}\n".format("Spatial model", d["Spatial_Model"]) + ss += "{:<20s} : {}\n".format("Spatial components", d["Components"]) + + ss += "{:<20s} : {:.1f}\n".format("TS", d["Sqrt_TS"] ** 2) + ss += "{:<20s} : {:.1f}\n".format("sqrt(TS)", d["Sqrt_TS"]) + + ss += "{:<20s} : {:.3f} +/- {:.3f} (UL: {:.3f}) deg\n".format( + "Size", d["Size"].value, d["Size_Err"].value, d["Size_UL"].value + ) + + ss += "{:<20s} : {:.3f}\n".format("R70", d["R70"]) + ss += "{:<20s} : {:.3f}\n".format("RSpec", d["RSpec"]) + + ss += "{:<20s} : {:.1f}\n".format("Total model excess", d["Excess_Model_Total"]) + ss += "{:<20s} : {:.1f}\n".format("Excess in RSpec", d["Excess_RSpec"]) + ss += "{:<20s} : {:.1f}\n".format( + "Model Excess in RSpec", d["Excess_RSpec_Model"] + ) + ss += "{:<20s} : {:.1f}\n".format("Background in RSpec", d["Background_RSpec"]) + + ss += "{:<20s} : {:.1f} hours\n".format("Livetime", d["Livetime"].value) + + ss += "{:<20s} : {:.2f}\n".format("Energy threshold", d["Energy_Threshold"]) + + val, err = d["Flux_Map"].value, d["Flux_Map_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: 501 + "Source flux (>1 TeV)", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB, + ) + + ss += "\nFluxes in RSpec (> 1 TeV):\n" + + ss += "{:<30s} : {:.3f} x 10^-12 cm^-2 s^-1 = {:5.2f} % Crab\n".format( + "Map measurement", + d["Flux_Map_RSpec_Data"].value / FF, + d["Flux_Map_RSpec_Data"].value * FLUX_TO_CRAB, + ) + + ss += "{:<30s} : {:.3f} x 10^-12 cm^-2 s^-1 = {:5.2f} % Crab\n".format( + "Source model", + d["Flux_Map_RSpec_Source"].value / FF, + d["Flux_Map_RSpec_Source"].value * FLUX_TO_CRAB, + ) + + ss += "{:<30s} : {:.3f} x 10^-12 cm^-2 s^-1 = {:5.2f} % Crab\n".format( + "Other component model", + d["Flux_Map_RSpec_Other"].value / FF, + d["Flux_Map_RSpec_Other"].value * FLUX_TO_CRAB, + ) + + ss += "{:<30s} : {:.3f} x 10^-12 cm^-2 s^-1 = {:5.2f} % Crab\n".format( + "Large scale component model", + d["Flux_Map_RSpec_LS"].value / FF, + d["Flux_Map_RSpec_LS"].value * FLUX_TO_CRAB, + ) + + ss += "{:<30s} : {:.3f} x 10^-12 cm^-2 s^-1 = {:5.2f} % Crab\n".format( + "Total model", + d["Flux_Map_RSpec_Total"].value / FF, + d["Flux_Map_RSpec_Total"].value * FLUX_TO_CRAB, + ) + + ss += "{:<35s} : {:5.1f} %\n".format( + "Containment in RSpec", 100 * d["Containment_RSpec"] + ) + ss += "{:<35s} : {:5.1f} %\n".format( + "Contamination in RSpec", 100 * d["Contamination_RSpec"] + ) + label, val = ( + "Flux correction (RSpec -> Total)", + 100 * d["Flux_Correction_RSpec_To_Total"], + ) + ss += f"{label:<35s} : {val:5.1f} %\n" + label, val = ( + "Flux correction (Total -> RSpec)", + 100 * (1 / d["Flux_Correction_RSpec_To_Total"]), + ) + ss += f"{label:<35s} : {val:5.1f} %\n" + + return ss + + def _info_spec(self): + """Print information from spectral analysis.""" + d = self.data + ss = "\n*** Info from spectral analysis ***\n\n" + + ss += "{:<20s} : {:.1f} hours\n".format("Livetime", d["Livetime_Spec"].value) + + lo = d["Energy_Range_Spec_Min"].value + hi = d["Energy_Range_Spec_Max"].value + ss += "{:<20s} : {:.2f} to {:.2f} TeV\n".format("Energy range:", lo, hi) + + ss += "{:<20s} : {:.1f}\n".format("Background", d["Background_Spec"]) + ss += "{:<20s} : {:.1f}\n".format("Excess", d["Excess_Spec"]) + ss += "{:<20s} : {}\n".format("Spectral model", d["Spectral_Model"]) + + val = d["TS_ECPL_over_PL"] + ss += "{:<20s} : {:.1f}\n".format("TS ECPL over PL", val) + + val = d["Flux_Spec_Int_1TeV"].value + err = d["Flux_Spec_Int_1TeV_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: E501 + "Best-fit model flux(> 1 TeV)", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB, + ) + + val = d["Flux_Spec_Energy_1_10_TeV"].value + err = d["Flux_Spec_Energy_1_10_TeV_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 erg cm^-2 s^-1\n".format( + "Best-fit model energy flux(1 to 10 TeV)", val / FF, err / FF + ) + + ss += self._info_spec_pl() + ss += self._info_spec_ecpl() + + return ss + + def _info_spec_pl(self): + d = self.data + ss = "{:<20s} : {:.2f}\n".format("Pivot energy", d["Energy_Spec_PL_Pivot"]) + + val = d["Flux_Spec_PL_Diff_Pivot"].value + err = d["Flux_Spec_PL_Diff_Pivot_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 TeV^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: E501 + "Flux at pivot energy", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB_DIFF, + ) + + val = d["Flux_Spec_PL_Int_1TeV"].value + err = d["Flux_Spec_PL_Int_1TeV_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: E501 + "PL Flux(> 1 TeV)", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB, + ) + + val = d["Flux_Spec_PL_Diff_1TeV"].value + err = d["Flux_Spec_PL_Diff_1TeV_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 TeV^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: E501 + "PL Flux(@ 1 TeV)", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB_DIFF, + ) + + val = d["Index_Spec_PL"] + err = d["Index_Spec_PL_Err"] + ss += "{:<20s} : {:.2f} +/- {:.2f}\n".format("PL Index", val, err) + + return ss + + def _info_spec_ecpl(self): + d = self.data + ss = "" + # ss = '{:<20s} : {:.1f}\n'.format('Pivot energy', d['Energy_Spec_ECPL_Pivot']) + + val = d["Flux_Spec_ECPL_Diff_1TeV"].value + err = d["Flux_Spec_ECPL_Diff_1TeV_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 TeV^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: E501 + "ECPL Flux(@ 1 TeV)", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB_DIFF, + ) + + val = d["Flux_Spec_ECPL_Int_1TeV"].value + err = d["Flux_Spec_ECPL_Int_1TeV_Err"].value + ss += "{:<20s} : ({:.3f} +/- {:.3f}) x 10^-12 cm^-2 s^-1 = ({:.2f} +/- {:.2f}) % Crab\n".format( # noqa: E501 + "ECPL Flux(> 1 TeV)", + val / FF, + err / FF, + val * FLUX_TO_CRAB, + err * FLUX_TO_CRAB, + ) + + val = d["Index_Spec_ECPL"] + err = d["Index_Spec_ECPL_Err"] + ss += "{:<20s} : {:.2f} +/- {:.2f}\n".format("ECPL Index", val, err) + + val = d["Lambda_Spec_ECPL"].value + err = d["Lambda_Spec_ECPL_Err"].value + ss += "{:<20s} : {:.3f} +/- {:.3f} TeV^-1\n".format("ECPL Lambda", val, err) + + # Use Gaussian analytical error propagation, + # tested against the uncertainties package + err = err / val**2 + val = 1.0 / val + + ss += "{:<20s} : {:.2f} +/- {:.2f} TeV\n".format("ECPL E_cut", val, err) + + return ss + + def _info_flux_points(self): + """Print flux point results.""" + d = self.data + ss = "\n*** Flux points info ***\n\n" + ss += "Number of flux points: {}\n".format(d["N_Flux_Points"]) + ss += "Flux points table: \n\n" + lines = format_flux_points_table(self.flux_points_table).pformat( + max_width=-1, max_lines=-1 + ) + ss += "\n".join(lines) + return ss + "\n" + + def _info_components(self): + """Print information about the components.""" + ss = "\n*** Gaussian component info ***\n\n" + ss += "Number of components: {}\n".format(len(self.components)) + ss += "{:<20s} : {}\n\n".format("Spatial components", self.data["Components"]) + + for component in self.components: + ss += str(component) + ss += "\n\n" + + return ss + + @property + def energy_range(self): + """Spectral model energy range as a `~astropy.units.Quantity` with length 2.""" + energy_min, energy_max = ( + self.data["Energy_Range_Spec_Min"], + self.data["Energy_Range_Spec_Max"], + ) + + if np.isnan(energy_min): + energy_min = u.Quantity(0.2, "TeV") + + if np.isnan(energy_max): + energy_max = u.Quantity(50, "TeV") + + return u.Quantity([energy_min, energy_max], "TeV") + +
+[docs] + def spectral_model(self, which="best"): + """Spectral model as a `~gammapy.modeling.models.SpectralModel` object. + + One of the following models (given by ``Spectral_Model`` in the catalog): + + - ``PL`` : `~gammapy.modeling.models.PowerLawSpectralModel` + - ``ECPL`` : `~gammapy.modeling.models.ExpCutoffPowerLawSpectralModel` + + Parameters + ---------- + which : {'best', 'pl', 'ecpl'} + Which spectral model. + """ + data = self.data + + if which == "best": + spec_type = self.data["Spectral_Model"].strip().lower() + elif which in {"pl", "ecpl"}: + spec_type = which + else: + raise ValueError(f"Invalid selection: which = {which!r}") + + if spec_type == "pl": + tag = "PowerLawSpectralModel" + pars = { + "index": data["Index_Spec_PL"], + "amplitude": data["Flux_Spec_PL_Diff_Pivot"], + "reference": data["Energy_Spec_PL_Pivot"], + } + errs = { + "amplitude": data["Flux_Spec_PL_Diff_Pivot_Err"], + "index": data["Index_Spec_PL_Err"], + } + elif spec_type == "ecpl": + tag = "ExpCutoffPowerLawSpectralModel" + pars = { + "index": data["Index_Spec_ECPL"], + "amplitude": data["Flux_Spec_ECPL_Diff_Pivot"], + "reference": data["Energy_Spec_ECPL_Pivot"], + "lambda_": data["Lambda_Spec_ECPL"], + } + errs = { + "index": data["Index_Spec_ECPL_Err"], + "amplitude": data["Flux_Spec_ECPL_Diff_Pivot_Err"], + "lambda_": data["Lambda_Spec_ECPL_Err"], + } + else: + raise ValueError(f"Invalid spec_type: {spec_type}") + + model = Model.create(tag, "spectral", **pars) + errs["reference"] = 0 * u.TeV + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def spatial_model(self): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object. + + One of the following models (given by ``Spatial_Model`` in the catalog): + + - ``Point-Like`` or has a size upper limit : `~gammapy.modeling.models.PointSpatialModel` + - ``Gaussian``: `~gammapy.modeling.models.GaussianSpatialModel` + - ``2-Gaussian`` or ``3-Gaussian``: composite model (using ``+`` with Gaussians) + - ``Shell``: `~gammapy.modeling.models.ShellSpatialModel` + """ + d = self.data + pars = {"lon_0": d["GLON"], "lat_0": d["GLAT"], "frame": "galactic"} + errs = {"lon_0": d["GLON_Err"], "lat_0": d["GLAT_Err"]} + + spatial_type = self.data["Spatial_Model"] + + if spatial_type == "Point-Like": + tag = "PointSpatialModel" + elif spatial_type == "Gaussian": + tag = "GaussianSpatialModel" + pars["sigma"] = d["Size"] + errs["sigma"] = d["Size_Err"] + elif spatial_type in {"2-Gaussian", "3-Gaussian"}: + raise ValueError("For Gaussian or Multi-Gaussian models, use sky_model()!") + elif spatial_type == "Shell": + # HGPS contains no information on shell width + # Here we assume a 5% shell width for all shells. + tag = "ShellSpatialModel" + pars["radius"] = 0.95 * d["Size"] + pars["width"] = d["Size"] - pars["radius"] + errs["radius"] = d["Size_Err"] + else: + raise ValueError(f"Invalid spatial_type: {spatial_type}") + + model = Model.create(tag, "spatial", **pars) + for name, value in errs.items(): + model.parameters[name].error = value + return model
+ + +
+[docs] + def sky_model(self, which="best"): + """Source sky model. + + Parameters + ---------- + which : {'best', 'pl', 'ecpl'} + Which spectral model. + + Returns + ------- + sky_model : `~gammapy.modeling.models.Models` + Models of the catalog object. + """ + models = self.components_models(which=which) + if len(models) > 1: + geom = self._get_components_geom(models) + return models.to_template_sky_model(geom=geom, name=self.name) + else: + return models[0]
+ + +
+[docs] + def components_models(self, which="best", linked=False): + """Models of the source components. + + Parameters + ---------- + which : {'best', 'pl', 'ecpl'} + Which spectral model. + + linked : bool + Each subcomponent of a source is given as a different `SkyModel`. + If True, the spectral parameters except the normalisation are linked. + Default is False. + + Returns + ------- + sky_model : `~gammapy.modeling.models.Models` + Models of the catalog object. + """ + spatial_type = self.data["Spatial_Model"] + missing_size = ( + spatial_type == "Gaussian" and self.spatial_model().sigma.value == 0 + ) + if spatial_type in {"2-Gaussian", "3-Gaussian"} or missing_size: + models = [] + spectral_model = self.spectral_model(which=which) + for component in self.components: + spec_component = spectral_model.copy() + weight = component.data["Flux_Map"] / self.data["Flux_Map"] + spec_component.parameters["amplitude"].value *= weight + if linked: + for name in spec_component.parameters.names: + if name not in ["norm", "amplitude"]: + spec_component.__dict__[name] = spectral_model.parameters[ + name + ] + model = SkyModel( + spatial_model=component.spatial_model(), + spectral_model=spec_component, + name=component.name, + ) + models.append(model) + else: + models = [ + SkyModel( + spatial_model=self.spatial_model(), + spectral_model=self.spectral_model(which=which), + name=self.name, + ) + ] + return Models(models)
+ + + @staticmethod + def _get_components_geom(models): + energy_axis = MapAxis.from_energy_bounds( + "100 GeV", "100 TeV", nbin=10, per_decade=True, name="energy_true" + ) + regions = [m.spatial_model.evaluation_region for m in models] + geom = RegionGeom.from_regions( + regions, binsz_wcs="0.02 deg", axes=[energy_axis] + ) + return geom.to_wcs_geom() + + @property + def flux_points_table(self): + """Flux points table as a `~astropy.table.Table`.""" + table = Table() + table.meta["sed_type_init"] = "dnde" + table.meta["n_sigma_ul"] = 2 + table.meta["n_sigma"] = 1 + table.meta["sqrt_ts_threshold_ul"] = 1 + mask = ~np.isnan(self.data["Flux_Points_Energy"]) + + table["e_ref"] = self.data["Flux_Points_Energy"][mask] + table["e_min"] = self.data["Flux_Points_Energy_Min"][mask] + table["e_max"] = self.data["Flux_Points_Energy_Max"][mask] + + table["dnde"] = self.data["Flux_Points_Flux"][mask] + table["dnde_errn"] = self.data["Flux_Points_Flux_Err_Lo"][mask] + table["dnde_errp"] = self.data["Flux_Points_Flux_Err_Hi"][mask] + table["dnde_ul"] = self.data["Flux_Points_Flux_UL"][mask] + table["is_ul"] = self.data["Flux_Points_Flux_Is_UL"][mask].astype("bool") + return table
+ + + +
+[docs] +class SourceCatalogHGPS(SourceCatalog): + """HESS Galactic plane survey (HGPS) source catalog. + + Reference: https://www.mpi-hd.mpg.de/hfm/HESS/hgps/ + + One source is represented by `SourceCatalogObjectHGPS`. + + Examples + -------- + Let's assume you have downloaded the HGPS catalog FITS file, e.g. via: + + .. code-block:: bash + + curl -O https://www.mpi-hd.mpg.de/hfm/HESS/hgps/data/hgps_catalog_v1.fits.gz + + Then you can load it like this: + + >>> import matplotlib.pyplot as plt + >>> from gammapy.catalog import SourceCatalogHGPS + >>> filename = '$GAMMAPY_DATA/catalogs/hgps_catalog_v1.fits.gz' + >>> cat = SourceCatalogHGPS(filename) + + Access a source by name: + + >>> source = cat['HESS J1843-033'] + >>> print(source) + <BLANKLINE> + *** Basic info *** + <BLANKLINE> + Catalog row index (zero-based) : 64 + Source name : HESS J1843-033 + Analysis reference : HGPS + Source class : Unid + Identified object : -- + Gamma-Cat id : 126 + <BLANKLINE> + <BLANKLINE> + *** Info from map analysis *** + <BLANKLINE> + RA : 280.952 deg = 18h43m48s + DEC : -3.554 deg = -3d33m15s + GLON : 28.899 +/- 0.072 deg + GLAT : 0.075 +/- 0.036 deg + Position Error (68%) : 0.122 deg + Position Error (95%) : 0.197 deg + ROI number : 3 + Spatial model : 2-Gaussian + Spatial components : HGPSC 083, HGPSC 084 + TS : 256.6 + sqrt(TS) : 16.0 + Size : 0.239 +/- 0.063 (UL: 0.000) deg + R70 : 0.376 deg + RSpec : 0.376 deg + Total model excess : 979.5 + Excess in RSpec : 775.6 + Model Excess in RSpec : 690.2 + Background in RSpec : 1742.4 + Livetime : 41.8 hours + Energy threshold : 0.38 TeV + Source flux (>1 TeV) : (2.882 +/- 0.305) x 10^-12 cm^-2 s^-1 = (12.75 +/- 1.35) % Crab + <BLANKLINE> + Fluxes in RSpec (> 1 TeV): + Map measurement : 2.267 x 10^-12 cm^-2 s^-1 = 10.03 % Crab + Source model : 2.018 x 10^-12 cm^-2 s^-1 = 8.93 % Crab + Other component model : 0.004 x 10^-12 cm^-2 s^-1 = 0.02 % Crab + Large scale component model : 0.361 x 10^-12 cm^-2 s^-1 = 1.60 % Crab + Total model : 2.383 x 10^-12 cm^-2 s^-1 = 10.54 % Crab + Containment in RSpec : 70.0 % + Contamination in RSpec : 15.3 % + Flux correction (RSpec -> Total) : 121.0 % + Flux correction (Total -> RSpec) : 82.7 % + <BLANKLINE> + *** Info from spectral analysis *** + <BLANKLINE> + Livetime : 16.8 hours + Energy range: : 0.22 to 61.90 TeV + Background : 5126.9 + Excess : 980.1 + Spectral model : PL + TS ECPL over PL : -- + Best-fit model flux(> 1 TeV) : (3.043 +/- 0.196) x 10^-12 cm^-2 s^-1 = (13.47 +/- 0.87) % Crab + Best-fit model energy flux(1 to 10 TeV) : (10.918 +/- 0.733) x 10^-12 erg cm^-2 s^-1 + Pivot energy : 1.87 TeV + Flux at pivot energy : (0.914 +/- 0.058) x 10^-12 cm^-2 s^-1 TeV^-1 = (4.04 +/- 0.17) % Crab + PL Flux(> 1 TeV) : (3.043 +/- 0.196) x 10^-12 cm^-2 s^-1 = (13.47 +/- 0.87) % Crab + PL Flux(@ 1 TeV) : (3.505 +/- 0.247) x 10^-12 cm^-2 s^-1 TeV^-1 = (15.51 +/- 0.70) % Crab + PL Index : 2.15 +/- 0.05 + ECPL Flux(@ 1 TeV) : (0.000 +/- 0.000) x 10^-12 cm^-2 s^-1 TeV^-1 = (0.00 +/- 0.00) % Crab + ECPL Flux(> 1 TeV) : (0.000 +/- 0.000) x 10^-12 cm^-2 s^-1 = (0.00 +/- 0.00) % Crab + ECPL Index : -- +/- -- + ECPL Lambda : 0.000 +/- 0.000 TeV^-1 + ECPL E_cut : inf +/- nan TeV + <BLANKLINE> + *** Flux points info *** + <BLANKLINE> + Number of flux points: 6 + Flux points table: + <BLANKLINE> + e_ref e_min e_max dnde dnde_errn dnde_errp dnde_ul is_ul + TeV TeV TeV 1 / (TeV s cm2) 1 / (TeV s cm2) 1 / (TeV s cm2) 1 / (TeV s cm2) + ------ ------ ------ --------------- --------------- --------------- --------------- ----- + 0.332 0.215 0.511 3.048e-11 6.890e-12 7.010e-12 4.455e-11 False + 0.787 0.511 1.212 5.383e-12 6.655e-13 6.843e-13 6.739e-12 False + 1.957 1.212 3.162 9.160e-13 9.732e-14 1.002e-13 1.120e-12 False + 4.870 3.162 7.499 1.630e-13 2.001e-14 2.097e-14 2.054e-13 False + 12.115 7.499 19.573 1.648e-14 3.124e-15 3.348e-15 2.344e-14 False + 30.142 19.573 46.416 7.777e-16 4.468e-16 5.116e-16 1.883e-15 False + <BLANKLINE> + *** Gaussian component info *** + <BLANKLINE> + Number of components: 2 + Spatial components : HGPSC 083, HGPSC 084 + <BLANKLINE> + Component HGPSC 083: + GLON : 29.047 +/- 0.026 deg + GLAT : 0.244 +/- 0.027 deg + Size : 0.125 +/- 0.021 deg + Flux (>1 TeV) : (1.34 +/- 0.36) x 10^-12 cm^-2 s^-1 = (5.9 +/- 1.6) % Crab + <BLANKLINE> + Component HGPSC 084: + GLON : 28.770 +/- 0.059 deg + GLAT : -0.073 +/- 0.069 deg + Size : 0.229 +/- 0.046 deg + Flux (>1 TeV) : (1.54 +/- 0.47) x 10^-12 cm^-2 s^-1 = (6.8 +/- 2.1) % Crab + <BLANKLINE> + <BLANKLINE> + *** Source associations info *** + <BLANKLINE> + Source_Name Association_Catalog Association_Name Separation + deg + ---------------- ------------------- --------------------- ---------- + HESS J1843-033 3FGL 3FGL J1843.7-0322 0.178442 + HESS J1843-033 3FGL 3FGL J1844.3-0344 0.242835 + HESS J1843-033 SNR G28.6-0.1 0.330376 + + + Access source spectral data and plot it: + + >>> ax = plt.subplot() + >>> source.spectral_model().plot(source.energy_range, ax=ax) # doctest: +SKIP + >>> source.spectral_model().plot_error(source.energy_range, ax=ax) # doctest: +SKIP + >>> source.flux_points.plot(ax=ax) # doctest: +SKIP + + Gaussian component information can be accessed as well, + either via the source, or via the catalog: + + >>> source.components + [SourceCatalogObjectHGPSComponent('HGPSC 083'), SourceCatalogObjectHGPSComponent('HGPSC 084')] + + >>> cat.gaussian_component(83) + SourceCatalogObjectHGPSComponent('HGPSC 084') + """ + + tag = "hgps" + """Source catalog name (str).""" + + description = "H.E.S.S. Galactic plane survey (HGPS) source catalog" + """Source catalog description (str).""" + + source_object_class = SourceCatalogObjectHGPS + + def __init__( + self, + filename="$GAMMAPY_DATA/catalogs/hgps_catalog_v1.fits.gz", + hdu="HGPS_SOURCES", + ): + filename = make_path(filename) + table = Table.read(filename, hdu=hdu) + + source_name_alias = ("Identified_Object",) + super().__init__(table=table, source_name_alias=source_name_alias) + + self._table_components = Table.read(filename, hdu="HGPS_GAUSS_COMPONENTS") + self._table_associations = Table.read(filename, hdu="HGPS_ASSOCIATIONS") + self._table_associations["Separation"].format = ".6f" + self._table_identifications = Table.read(filename, hdu="HGPS_IDENTIFICATIONS") + self._table_large_scale_component = Table.read( + filename, hdu="HGPS_LARGE_SCALE_COMPONENT" + ) + + @property + def table_components(self): + """Gaussian component table as a `~astropy.table.Table`.""" + return self._table_components + + @property + def table_associations(self): + """Source association table as a `~astropy.table.Table`.""" + return self._table_associations + + @property + def table_identifications(self): + """Source identification table as a `~astropy.table.Table`.""" + return self._table_identifications + + @property + def table_large_scale_component(self): + """Large scale component table as a `~astropy.table.Table`.""" + return self._table_large_scale_component + + @property + def large_scale_component(self): + """Large scale component model as a `~gammapy.catalog.SourceCatalogLargeScaleHGPS` object.""" + return SourceCatalogLargeScaleHGPS(self.table_large_scale_component) + + def _make_source_object(self, index): + """Make `SourceCatalogObject` for given row index.""" + source = super()._make_source_object(index) + + if source.data["Components"] != "": + source.components = list(self._get_gaussian_components(source)) + + self._attach_association_info(source) + + if source.data["Source_Class"] != "Unid": + self._attach_identification_info(source) + + return source + + def _get_gaussian_components(self, source): + for name in source.data["Components"].split(", "): + row_index = int(name.split()[-1]) - 1 + yield self.gaussian_component(row_index) + + def _attach_association_info(self, source): + t = self.table_associations + mask = source.data["Source_Name"] == t["Source_Name"] + source.associations = t[mask] + + def _attach_identification_info(self, source): + t = self._table_identifications + idx = np.nonzero(source.name == t["Source_Name"])[0][0] + source.identification_info = table_row_to_dict(t[idx]) + +
+[docs] + def gaussian_component(self, row_idx): + """Gaussian component as a `SourceCatalogObjectHGPSComponent` object.""" + data = table_row_to_dict(self.table_components[row_idx]) + data[SourceCatalogObject._row_index_key] = row_idx + return SourceCatalogObjectHGPSComponent(data=data)
+ + +
+[docs] + def to_models(self, which="best", components_status="independent"): + """Create Models object from catalog. + + Parameters + ---------- + which : {'best', 'pl', 'ecpl'} + Which spectral model. + + components_status : {'independent', 'linked', 'merged'} + Relation between the sources components. Available options are: + * 'independent': each subcomponent of a source is given as a different `SkyModel` (Default). + * 'linked': each subcomponent of a source is given as a different `SkyModel` but the spectral + parameters except the normalisation are linked. + * 'merged': the subcomponents are merged into a single `SkyModel` given as a + `~gammapy.modeling.models.TemplateSpatialModel` with a `~gammapy.modeling.models.PowerLawNormSpectralModel`. + In that case the relative weights between the components cannot be adjusted. + + Returns + ------- + models : `~gammapy.modeling.models.Models` + Models of the catalog. + """ + models = [] + for source in self: + if components_status == "merged": + m = [source.sky_model(which=which)] + else: + m = source.components_models( + which=which, linked=components_status == "linked" + ) + models.extend(m) + return Models(models)
+
+ + + +
+[docs] +class SourceCatalogLargeScaleHGPS: + """Gaussian band model. + + This 2-dimensional model is Gaussian in ``y`` for a given ``x``, + and the Gaussian parameters can vary in ``x``. + + One application of this model is the diffuse emission along the + Galactic plane, i.e. ``x = GLON`` and ``y = GLAT``. + + Parameters + ---------- + table : `~astropy.table.Table` + Table of Gaussian parameters. + ``x``, ``amplitude``, ``mean``, ``stddev``. + interp_kwargs : dict + Keyword arguments passed to `ScaledRegularGridInterpolator`. + """ + + def __init__(self, table, interp_kwargs=None): + interp_kwargs = interp_kwargs or {} + interp_kwargs.setdefault("values_scale", "lin") + + self.table = table + glon = Angle(self.table["GLON"]).wrap_at("180d") + + interps = {} + + for column in table.colnames: + values = self.table[column].quantity + interp = ScaledRegularGridInterpolator((glon,), values, **interp_kwargs) + interps[column] = interp + + self._interp = interps + + def _interpolate_parameter(self, parname, glon): + glon = glon.wrap_at("180d") + return self._interp[parname]((np.asanyarray(glon),), clip=False) + +
+[docs] + def peak_brightness(self, glon): + """Peak brightness at a given longitude. + + Parameters + ---------- + glon : `~astropy.coordinates.Angle` + Galactic Longitude. + """ + return self._interpolate_parameter("Surface_Brightness", glon)
+ + +
+[docs] + def peak_brightness_error(self, glon): + """Peak brightness error at a given longitude. + + Parameters + ---------- + glon : `~astropy.coordinates.Angle` + Galactic Longitude. + """ + return self._interpolate_parameter("Surface_Brightness_Err", glon)
+ + +
+[docs] + def width(self, glon): + """Width at a given longitude. + + Parameters + ---------- + glon : `~astropy.coordinates.Angle` + Galactic Longitude. + """ + return self._interpolate_parameter("Width", glon)
+ + +
+[docs] + def width_error(self, glon): + """Width error at a given longitude. + + Parameters + ---------- + glon : `~astropy.coordinates.Angle` + Galactic Longitude. + """ + return self._interpolate_parameter("Width_Err", glon)
+ + +
+[docs] + def peak_latitude(self, glon): + """Peak position at a given longitude. + + Parameters + ---------- + glon : `~astropy.coordinates.Angle` + Galactic Longitude. + """ + return self._interpolate_parameter("GLAT", glon)
+ + +
+[docs] + def peak_latitude_error(self, glon): + """Peak position error at a given longitude. + + Parameters + ---------- + glon : `~astropy.coordinates.Angle` + Galactic Longitude. + """ + return self._interpolate_parameter("GLAT_Err", glon)
+ + +
+[docs] + def evaluate(self, position): + """Evaluate model at a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Position on the sky. + """ + glon, glat = position.galactic.l, position.galactic.b + width = self.width(glon) + amplitude = self.peak_brightness(glon) + mean = self.peak_latitude(glon) + return Gaussian1D.evaluate(glat, amplitude=amplitude, mean=mean, stddev=width)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/catalog/lhaaso.html b/docs/dev/_modules/gammapy/catalog/lhaaso.html new file mode 100644 index 00000000000..58ed3a89dc6 --- /dev/null +++ b/docs/dev/_modules/gammapy/catalog/lhaaso.html @@ -0,0 +1,739 @@ + + + + + + + + + + gammapy.catalog.lhaaso — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.catalog.lhaaso

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import astropy.units as u
+from astropy.table import Table
+from gammapy.maps import MapAxis, RegionGeom
+from gammapy.modeling.models import Model, Models, SkyModel
+from gammapy.utils.gauss import Gauss2DPDF
+from gammapy.utils.scripts import make_path
+from .core import SourceCatalog, SourceCatalogObject
+
+__all__ = [
+    "SourceCatalogObject1LHAASO",
+    "SourceCatalog1LHAASO",
+]
+
+
+
+[docs] +class SourceCatalogObject1LHAASO(SourceCatalogObject): + """One source from the 1LHAASO catalog. + + Catalog is represented by `~gammapy.catalog.SourceCatalog1LHAASO`. + """ + + _source_name_key = "Source_Name" + + def _parse(self, name, which): + if which in self.data["Model_a"]: + tag = "" + elif which in self.data["Model_b"]: + tag = "_b" + else: + raise ValueError("Invalid model component name") + is_ul = False + value = u.Quantity(self.data[f"{name}{tag}"]) + if ( + np.isnan(value) or value == 0 * value.unit + ) and f"{name}_ul{tag}" in self.data: + value = self.data[f"{name}_ul{tag}"] + is_ul = True + return value, is_ul + + def _get(self, name, which): + value, _ = self._parse(name, which) + return value + +
+[docs] + def spectral_model(self, which): + """Spectral model as a `~gammapy.modeling.models.PowerLawSpectralModel` object. + + * ``which="KM2A"`` - Sky model for KM2A analysis only. + * ``which="WCDA"`` - Sky model for WCDA analysis only. + + """ + pars = { + "reference": self._get("E0", which), + "amplitude": self._get("N0", which), + "index": self._get("gamma", which), + } + + errs = { + "amplitude": self._get("N0_err", which), + "index": self._get("gamma_err", which), + } + + model = Model.create("PowerLawSpectralModel", "spectral", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + +
+[docs] + def spatial_model(self, which): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object. + + * ``which="KM2A"`` - Sky model for KM2A analysis only. + * ``which="WCDA"`` - Sky model for WCDA analysis only. + + """ + lat_0 = self._get("DECJ2000", which) + pars = {"lon_0": self._get("RAJ2000", which), "lat_0": lat_0, "frame": "fk5"} + + pos_err = self._get("pos_err", which) + scale_r95 = Gauss2DPDF().containment_radius(0.95) + + errs = { + "lat_0": pos_err / scale_r95, + "lon_0": pos_err / scale_r95 / np.cos(lat_0), + } + + r39, is_ul = self._parse("r39", which) + if not is_ul: + pars["sigma"] = r39 + model = Model.create("GaussianSpatialModel", "spatial", **pars) + else: + model = Model.create("PointSpatialModel", "spatial", **pars) + + for name, value in errs.items(): + model.parameters[name].error = value + + return model
+ + + @staticmethod + def _get_components_geom(models): + energy_axis = MapAxis.from_energy_bounds( + "0.1 TeV", "2000 TeV", nbin=10, per_decade=True, name="energy" + ) + regions = [m.spatial_model.evaluation_region for m in models] + geom = RegionGeom.from_regions( + regions, binsz_wcs="0.05 deg", axes=[energy_axis] + ) + return geom.to_wcs_geom() + +
+[docs] + def sky_model(self, which="both"): + """Sky model as a `~gammapy.modeling.models.SkyModel` object. + + * ``which="both"`` - Create a composite template if both models are available, or, use the available one + if only one is present. + * ``which="KM2A"`` - Sky model for KM2A analysis if available. + * ``which="WCDA"`` - Sky model for WCDA analysis if available. + + """ + if which == "both": + wcda = self.sky_model(which="WCDA") + km2a = self.sky_model(which="KM2A") + models = [m for m in [wcda, km2a] if m is not None] + if len(models) == 2: + geom = self._get_components_geom(models) + mask = geom.energy_mask(energy_max=25 * u.TeV) + geom = geom.as_energy_true + wcda_map = Models(wcda).to_template_sky_model(geom).spatial_model.map + model = Models(km2a).to_template_sky_model(geom, name=km2a.name) + model.spatial_model.map.data[mask] = wcda_map.data[mask] + model.spatial_model.filename = f"{model.name}.fits" + return model + else: + return models[0] + else: + _, is_ul = self._parse("N0", which) + if is_ul: + return None + else: + return SkyModel( + spatial_model=self.spatial_model(which), + spectral_model=self.spectral_model(which), + name=self.name, + )
+
+ + + +
+[docs] +class SourceCatalog1LHAASO(SourceCatalog): + """First LHAASO catalog. + + One source is represented by `~gammapy.catalog.SourceCatalogObject1LHAASO`. + + The data is from table 1 in the paper [1]_. + + The catalog table contains 90 rows / sources. + + References + ---------- + .. [1] 1LHAASO: The First LHAASO Catalog of Gamma-Ray Sources, + https://ui.adsabs.harvard.edu/abs/2023arXiv230517030C/abstract + """ + + tag = "1LHAASO" + """Catalog name""" + + description = "1LHAASO catalog from the LHAASO observatory" + """Catalog description""" + + source_object_class = SourceCatalogObject1LHAASO + + def __init__(self, filename="$GAMMAPY_DATA/catalogs/1LHAASO_catalog.fits"): + table = Table.read(make_path(filename)) + + source_name_key = "Source_Name" + + super().__init__(table=table, source_name_key=source_name_key) + +
+[docs] + def to_models(self, which="both"): + """Create Models object from catalog. + + * ``which="both"`` - Use first model or create a composite template if both models are available. + * ``which="KM2A"`` - Sky model for KM2A analysis if available. + * ``which="WCDA"`` - Sky model for WCDA analysis if available. + """ + models = Models() + for _ in self: + model = _.sky_model(which) + if model: + models.append(model) + return models
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/data_store.html b/docs/dev/_modules/gammapy/data/data_store.html new file mode 100644 index 00000000000..8747952299d --- /dev/null +++ b/docs/dev/_modules/gammapy/data/data_store.html @@ -0,0 +1,1314 @@ + + + + + + + + + + gammapy.data.data_store — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.data_store

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import logging
+import subprocess
+from copy import copy
+from pathlib import Path
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import SkyCoord
+from astropy.io import fits
+import gammapy.utils.time as tu
+from gammapy.utils.pbar import progress_bar
+from gammapy.utils.scripts import make_path
+from gammapy.utils.testing import Checker
+from .hdu_index_table import HDUIndexTable
+from .obs_table import ObservationTable, ObservationTableChecker
+from .observations import Observation, ObservationChecker, Observations
+
+__all__ = ["DataStore"]
+
+ALL_IRFS = ["aeff", "edisp", "psf", "bkg", "rad_max"]
+ALL_HDUS = ["events", "gti", "pointing"] + ALL_IRFS
+REQUIRED_IRFS = {
+    "full-enclosure": {"aeff", "edisp", "psf", "bkg"},
+    "point-like": {"aeff", "edisp"},
+    "all-optional": {},
+}
+
+
+class MissingRequiredHDU(IOError):
+    pass
+
+
+log = logging.getLogger(__name__)
+log.setLevel(logging.INFO)
+
+
+
+[docs] +class DataStore: + """IACT data store. + + The data selection and access happens using an observation + and an HDU index file as described at :ref:`gadf:iact-storage`. + + Parameters + ---------- + hdu_table : `~gammapy.data.HDUIndexTable` + HDU index table. + obs_table : `~gammapy.data.ObservationTable` + Observation index table. + + Examples + -------- + Here's an example how to create a `DataStore` to access H.E.S.S. data: + + >>> from gammapy.data import DataStore + >>> data_store = DataStore.from_dir('$GAMMAPY_DATA/hess-dl3-dr1') + >>> data_store.info() #doctest: +SKIP + Data store: + HDU index table: + BASE_DIR: /Users/ASinha/Gammapy-dev/gammapy-data/hess-dl3-dr1 + Rows: 630 + OBS_ID: 20136 -- 47829 + HDU_TYPE: ['aeff', 'bkg', 'edisp', 'events', 'gti', 'psf'] + HDU_CLASS: ['aeff_2d', 'bkg_3d', 'edisp_2d', 'events', 'gti', 'psf_table'] + <BLANKLINE> + <BLANKLINE> + Observation table: + Observatory name: 'N/A' + Number of observations: 105 + <BLANKLINE> + + For further usage example see :doc:`/tutorials/data/cta` tutorial. + """ + + DEFAULT_HDU_TABLE = "hdu-index.fits.gz" + """Default HDU table filename.""" + + DEFAULT_OBS_TABLE = "obs-index.fits.gz" + """Default observation table filename.""" + + def __init__(self, hdu_table=None, obs_table=None): + self.hdu_table = hdu_table + self.obs_table = obs_table + + def __str__(self): + return self.info(show=False) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def obs_ids(self): + """Return the sorted obs_ids contained in the datastore.""" + return np.unique(self.hdu_table["OBS_ID"].data) + +
+[docs] + @classmethod + def from_file(cls, filename, hdu_hdu="HDU_INDEX", hdu_obs="OBS_INDEX"): + """Create a Datastore from a FITS file. + + The FITS file must contain both index files. + + Parameters + ---------- + filename : str or `~pathlib.Path` + FITS filename. + hdu_hdu : str or int, optional + FITS HDU name or number for the HDU index table. Default is "HDU_INDEX". + hdu_obs : str or int, optional + FITS HDU name or number for the observation index table. Default is "OBS_INDEX". + + Returns + ------- + data_store : `DataStore` + Data store. + """ + filename = make_path(filename) + + hdu_table = HDUIndexTable.read(filename, hdu=hdu_hdu, format="fits") + + obs_table = None + if hdu_obs: + obs_table = ObservationTable.read(filename, hdu=hdu_obs, format="fits") + + return cls(hdu_table=hdu_table, obs_table=obs_table)
+ + +
+[docs] + @classmethod + def from_dir(cls, base_dir, hdu_table_filename=None, obs_table_filename=None): + """Create from a directory. + + Parameters + ---------- + base_dir : str or `~pathlib.Path` + Base directory of the data files. + hdu_table_filename : str or `~pathlib.Path`, optional + Filename of the HDU index file. May be specified either relative + to `base_dir` or as an absolute path. If None, default is "hdu-index.fits.gz". + obs_table_filename : str or `~pathlib.Path`, optional + Filename of the observation index file. May be specified either relative + to `base_dir` or as an absolute path. If None, default is obs-index.fits.gz. + + Returns + ------- + data_store : `DataStore` + Data store. + + Examples + -------- + >>> from gammapy.data import DataStore + >>> data_store = DataStore.from_dir('$GAMMAPY_DATA/hess-dl3-dr1') + """ + base_dir = make_path(base_dir) + + if hdu_table_filename: + hdu_table_filename = make_path(hdu_table_filename) + if (base_dir / hdu_table_filename).exists(): + hdu_table_filename = base_dir / hdu_table_filename + else: + hdu_table_filename = base_dir / cls.DEFAULT_HDU_TABLE + + if obs_table_filename: + obs_table_filename = make_path(obs_table_filename) + if (base_dir / obs_table_filename).exists(): + obs_table_filename = base_dir / obs_table_filename + elif not obs_table_filename.exists(): + raise IOError(f"File not found : {obs_table_filename}") + else: + obs_table_filename = base_dir / cls.DEFAULT_OBS_TABLE + + if not hdu_table_filename.exists(): + raise OSError(f"File not found: {hdu_table_filename}") + log.debug(f"Reading {hdu_table_filename}") + hdu_table = HDUIndexTable.read(hdu_table_filename, format="fits") + hdu_table.meta["BASE_DIR"] = str(base_dir) + + if not obs_table_filename.exists(): + log.info("Cannot find default obs-index table.") + obs_table = None + else: + log.debug(f"Reading {obs_table_filename}") + obs_table = ObservationTable.read(obs_table_filename, format="fits") + + return cls(hdu_table=hdu_table, obs_table=obs_table)
+ + +
+[docs] + @classmethod + def from_events_files(cls, events_paths, irfs_paths=None): + """Create from a list of event filenames. + + HDU and observation index tables will be created from the EVENTS header. + + IRFs are found only if you have a ``CALDB`` environment variable set, + and if the EVENTS files contain the following keys: + + - ``TELESCOP`` (example: ``TELESCOP = CTA``) + - ``CALDB`` (example: ``CALDB = 1dc``) + - ``IRF`` (example: ``IRF = South_z20_50h``) + + Parameters + ---------- + events_paths : list of str or `~pathlib.Path` + List of paths to the events files. + irfs_paths : str or `~pathlib.Path`, or list of str or list of `~pathlib.Path`, optional + Path to the IRFs file. If a list is provided it must be the same length + as `events_paths`. If None the events files have to contain CALDB and + IRF header keywords to locate the IRF files, otherwise the IRFs are + assumed to be contained in the events files. + + Returns + ------- + data_store : `DataStore` + Data store. + + Examples + -------- + This is how you can access a single event list:: + + >>> from gammapy.data import DataStore + >>> import os + >>> os.environ["CALDB"] = os.environ["GAMMAPY_DATA"] + "/cta-1dc/caldb" + >>> path = "$GAMMAPY_DATA/cta-1dc/data/baseline/gps/gps_baseline_110380.fits" + >>> data_store = DataStore.from_events_files([path]) + >>> observations = data_store.get_observations() + + You can now analyse this data as usual (see any Gammapy tutorial). + + If you have multiple event files, you have to make the list. Here's an example + using ``Path.glob`` to get a list of all events files in a given folder:: + + >>> import os + >>> from pathlib import Path + >>> path = Path(os.environ["GAMMAPY_DATA"]) / "cta-1dc/data" + >>> paths = list(path.rglob("*.fits")) + >>> data_store = DataStore.from_events_files(paths) + >>> observations = data_store.get_observations() + + >>> #Note that you have a lot of flexibility to select the observations you want, + >>> # by having a few lines of custom code to prepare ``paths``, or to select a + >>> # subset via a method on the ``data_store`` or the ``observations`` objects. + >>> # If you want to generate HDU and observation index files, write the tables to disk:: + + >>> data_store.hdu_table.write("hdu-index.fits.gz") # doctest: +SKIP + >>> data_store.obs_table.write("obs-index.fits.gz") # doctest: +SKIP + """ + return DataStoreMaker(events_paths, irfs_paths).run()
+ + +
+[docs] + def info(self, show=True): + """Print some info.""" + s = "Data store:\n" + s += self.hdu_table.summary() + s += "\n\n" + if self.obs_table: + s += self.obs_table.summary() + else: + s += "No observation index table." + + if show: + print(s) + else: + return s
+ + +
+[docs] + def obs(self, obs_id, required_irf="full-enclosure", require_events=True): + """Access a given `~gammapy.data.Observation`. + + Parameters + ---------- + obs_id : int + Observation ID. + required_irf : list of str or str, optional + The list can include the following options: + + * `"events"` : Events + * `"gti"` : Good time intervals + * `"aeff"` : Effective area + * `"bkg"` : Background + * `"edisp"` : Energy dispersion + * `"psf"` : Point Spread Function + * `"rad_max"` : Maximal radius + + Alternatively single string can be used as shortcut: + + * `"full-enclosure"` : includes `["events", "gti", "aeff", "edisp", "psf", "bkg"]` + * `"point-like"` : includes `["events", "gti", "aeff", "edisp"]` + + Default is `"full-enclosure"`. + require_events : bool, optional + Require events and gti table or not. Default is True. + + Returns + ------- + observation : `~gammapy.data.Observation` + Observation container. + + """ + if obs_id not in self.hdu_table["OBS_ID"]: + raise ValueError(f"OBS_ID = {obs_id} not in HDU index table.") + + kwargs = {"obs_id": int(obs_id)} + + # check for the "short forms" + if isinstance(required_irf, str): + required_irf = REQUIRED_IRFS[required_irf] + + if not set(required_irf).issubset(ALL_IRFS): + difference = set(required_irf).difference(ALL_IRFS) + raise ValueError( + f"{difference} is not a valid hdu key. Choose from: {ALL_IRFS}" + ) + + if require_events: + required_hdus = {"events", "gti"}.union(required_irf) + else: + required_hdus = required_irf + + missing_hdus = [] + for hdu in ALL_HDUS: + hdu_location = self.hdu_table.hdu_location( + obs_id=obs_id, + hdu_type=hdu, + warn_missing=False, + ) + if hdu_location is not None: + kwargs[hdu] = hdu_location + elif hdu in required_hdus: + missing_hdus.append(hdu) + + if len(missing_hdus) > 0: + raise MissingRequiredHDU( + f"Required HDUs {missing_hdus} not found in observation {obs_id}" + ) + + # TODO: right now, gammapy doesn't support using the pointing table of GADF + # so we always pass the events location here to be read into a FixedPointingInfo + if "events" in kwargs: + pointing_location = copy(kwargs["events"]) + pointing_location.hdu_class = "pointing" + kwargs["pointing"] = pointing_location + + return Observation(**kwargs)
+ + +
+[docs] + def get_observations( + self, + obs_id=None, + skip_missing=False, + required_irf="full-enclosure", + require_events=True, + ): + """Generate a `~gammapy.data.Observations`. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + obs_id : list, optional + Observation IDs. + If None, default is all observations ordered by OBS_ID are returned. + This is not necessarily the order in the ``obs_table``. + skip_missing : bool, optional + Skip missing observations. Default is False. + required_irf : list of str or str, optional + Runs will be added to the list of observations only if the + required HDUs are present. Otherwise, the given run will be skipped + The list can include the following options: + + * `"events"` : Events + * `"gti"` : Good time intervals + * `"aeff"` : Effective area + * `"bkg"` : Background + * `"edisp"` : Energy dispersion + * `"psf"` : Point Spread Function + * `"rad_max"` : Maximal radius + + Alternatively single string can be used as shortcut: + + * `"full-enclosure"` : includes `["events", "gti", "aeff", "edisp", "psf", "bkg"]` + * `"point-like"` : includes `["events", "gti", "aeff", "edisp"]` + * `"all-optional"` : no HDUs are required, only warnings will be emitted + for missing HDUs among all possibilities. + + Default is `"full-enclosure"`. + require_events : bool, optional + Require events and gti table or not. Default is True. + + Returns + ------- + observations : `~gammapy.data.Observations` + Container holding a list of `~gammapy.data.Observation`. + """ + if obs_id is None: + obs_id = self.obs_ids + + obs_list = [] + + for _ in progress_bar(obs_id, desc="Obs Id"): + try: + obs = self.obs(_, required_irf, require_events) + except ValueError as err: + if skip_missing: + log.warning(f"Skipping missing obs_id: {_!r}") + continue + else: + raise err + except MissingRequiredHDU as e: + log.warning(f"Skipping run with missing HDUs; {e}") + continue + + obs_list.append(obs) + + log.info(f"Observations selected: {len(obs_list)} out of {len(obs_id)}.") + return Observations(obs_list)
+ + +
+[docs] + def copy_obs(self, obs_id, outdir, hdu_class=None, verbose=False, overwrite=False): + """Create a new `~gammapy.data.DataStore` containing a subset of observations. + + Parameters + ---------- + obs_id : array-like, `~gammapy.data.ObservationTable` + List of observations to copy. + outdir : str or `~pathlib.Path` + Directory for the new store. + hdu_class : list of str, optional + see :attr:`gammapy.data.HDUIndexTable.VALID_HDU_CLASS`. + verbose : bool, optional + Print copied files. Default is False. + overwrite : bool, optional + Overwrite. Default is False. + """ + outdir = make_path(outdir) + + if not outdir.is_dir(): + raise OSError(f"Not a directory: outdir={outdir}") + + if isinstance(obs_id, ObservationTable): + obs_id = obs_id["OBS_ID"].data + + hdutable = self.hdu_table + hdutable.add_index("OBS_ID") + with hdutable.index_mode("discard_on_copy"): + subhdutable = hdutable.loc[obs_id] + if hdu_class is not None: + subhdutable.add_index("HDU_CLASS") + with subhdutable.index_mode("discard_on_copy"): + subhdutable = subhdutable.loc[hdu_class] + if self.obs_table: + subobstable = self.obs_table.select_obs_id(obs_id) + + for idx in range(len(subhdutable)): + # Changes to the file structure could be made here + loc = subhdutable.location_info(idx) + targetdir = outdir / loc.file_dir + targetdir.mkdir(exist_ok=True, parents=True) + cmd = ["cp"] + if verbose: + cmd += ["-v"] + if not overwrite: + cmd += ["-n"] + cmd += [str(loc.path()), str(targetdir)] + subprocess.run(cmd) + + filename = outdir / self.DEFAULT_HDU_TABLE + subhdutable.write(filename, format="fits", overwrite=overwrite) + + if self.obs_table: + filename = outdir / self.DEFAULT_OBS_TABLE + subobstable.write(str(filename), format="fits", overwrite=overwrite)
+ + +
+[docs] + def check(self, checks="all"): + """Check index tables and data files. + + This is a generator that yields a list of dicts. + """ + checker = DataStoreChecker(self) + return checker.run(checks=checks)
+
+ + + +class DataStoreChecker(Checker): + """Check data store. + + Checks data format and a bit about the content. + """ + + CHECKS = { + "obs_table": "check_obs_table", + "hdu_table": "check_hdu_table", + "observations": "check_observations", + "consistency": "check_consistency", + } + + def __init__(self, data_store): + self.data_store = data_store + + def check_obs_table(self): + """Check for the observation index table.""" + yield from ObservationTableChecker(self.data_store.obs_table).run() + + def check_hdu_table(self): + """Check for the HDU index table.""" + t = self.data_store.hdu_table + m = t.meta + if m.get("HDUCLAS1", "") != "INDEX": + yield { + "level": "error", + "hdu": "hdu-index", + "msg": "Invalid header key. Must have HDUCLAS1=INDEX", + } + if m.get("HDUCLAS2", "") != "HDU": + yield { + "level": "error", + "hdu": "hdu-index", + "msg": "Invalid header key. Must have HDUCLAS2=HDU", + } + + # Check that all HDU in the data files exist + for idx in range(len(t)): + location_info = t.location_info(idx) + try: + location_info.get_hdu() + except KeyError: + yield { + "level": "error", + "msg": f"HDU not found: {location_info.__dict__!r}", + } + + def check_consistency(self): + """Check consistency between multiple HDUs.""" + # obs and HDU index should have the same OBS_ID + obs_table_obs_id = set(self.data_store.obs_table["OBS_ID"]) + hdu_table_obs_id = set(self.data_store.hdu_table["OBS_ID"]) + if not obs_table_obs_id == hdu_table_obs_id: + yield { + "level": "error", + "msg": "Inconsistent OBS_ID in obs and HDU index tables", + } + # TODO: obs table and events header should have the same times + + def check_observations(self): + """Perform some sanity checks for all observations.""" + for obs_id in self.data_store.obs_table["OBS_ID"]: + obs = self.data_store.obs(obs_id) + yield from ObservationChecker(obs).run() + + +class DataStoreMaker: + """Create data store index tables. + + This is a multistep process coded as a class. + Users will usually call this via `DataStore.from_events_files`. + """ + + def __init__(self, events_paths, irfs_paths=None): + if isinstance(events_paths, (str, Path)): + raise TypeError("Need list of paths, not a single string or Path object.") + + self.events_paths = [make_path(path) for path in events_paths] + if irfs_paths is None or isinstance(irfs_paths, (str, Path)): + self.irfs_paths = [make_path(irfs_paths)] * len(events_paths) + else: + self.irfs_paths = [make_path(path) for path in irfs_paths] + + # Cache for EVENTS file header information, to avoid multiple reads + self._events_info = {} + + def run(self): + """Run all steps.""" + hdu_table = self.make_hdu_table() + obs_table = self.make_obs_table() + return DataStore(hdu_table=hdu_table, obs_table=obs_table) + + def get_events_info(self, events_path, irf_path=None): + """Read events header information.""" + if events_path not in self._events_info: + self._events_info[events_path] = self.read_events_info( + events_path, irf_path + ) + + return self._events_info[events_path] + + def get_obs_info(self, events_path, irf_path=None): + """Read events header information and add some extra information.""" + # We could add or remove info here depending on what we want in the obs table + return self.get_events_info(events_path, irf_path) + + @staticmethod + def read_events_info(events_path, irf_path=None): + """Read mandatory events header information.""" + log.debug(f"Reading {events_path}") + + with fits.open(events_path, memmap=False) as hdu_list: + header = hdu_list["EVENTS"].header + + na_int, na_str = -1, "NOT AVAILABLE" + + info = {} + # Note: for some reason `header["OBS_ID"]` is sometimes `str`, maybe trailing whitespace + # mandatory header info: + info["OBS_ID"] = int(header["OBS_ID"]) + info["TSTART"] = header["TSTART"] * u.s + info["TSTOP"] = header["TSTOP"] * u.s + info["ONTIME"] = header["ONTIME"] * u.s + info["LIVETIME"] = header["LIVETIME"] * u.s + info["DEADC"] = header["DEADC"] + info["TELESCOP"] = header.get("TELESCOP", na_str) + + obs_mode = header.get("OBS_MODE", "POINTING") + if obs_mode == "DRIFT": + info["ALT_PNT"] = header["ALT_PNT"] * u.deg + info["AZ_PNT"] = header["AZ_PNT"] * u.deg + info["ZEN_PNT"] = 90 * u.deg - info["ALT_PNT"] + else: + info["RA_PNT"] = header["RA_PNT"] * u.deg + info["DEC_PNT"] = header["DEC_PNT"] * u.deg + + # optional header info + pos = SkyCoord(info["RA_PNT"], info["DEC_PNT"], unit="deg").galactic + info["GLON_PNT"] = pos.l + info["GLAT_PNT"] = pos.b + info["DATE-OBS"] = header.get("DATE_OBS", na_str) + info["TIME-OBS"] = header.get("TIME_OBS", na_str) + info["DATE-END"] = header.get("DATE_END", na_str) + info["TIME-END"] = header.get("TIME_END", na_str) + info["N_TELS"] = header.get("N_TELS", na_int) + info["OBJECT"] = header.get("OBJECT", na_str) + + # Not part of the spec, but good to know from which file the info comes + info["EVENTS_FILENAME"] = str(events_path) + info["EVENT_COUNT"] = header["NAXIS2"] + + # This is the info needed to link from EVENTS to IRFs + info["CALDB"] = header.get("CALDB", na_str) + info["IRF"] = header.get("IRF", na_str) + if irf_path is not None: + info["IRF_FILENAME"] = str(irf_path) + elif info["CALDB"] != na_str and info["IRF"] != na_str: + caldb_irf = CalDBIRF.from_meta(info) + info["IRF_FILENAME"] = str(caldb_irf.file_path) + else: + info["IRF_FILENAME"] = info["EVENTS_FILENAME"] + + # Mandatory fields defining the time data + for name in tu.TIME_KEYWORDS: + info[name] = header.get(name, None) + + return info + + def make_obs_table(self): + """Make observation index table.""" + rows = [] + time_rows = [] + for events_path, irf_path in zip(self.events_paths, self.irfs_paths): + row = self.get_obs_info(events_path, irf_path) + rows.append(row) + time_row = tu.extract_time_info(row) + time_rows.append(time_row) + + names = list(rows[0].keys()) + table = ObservationTable(rows=rows, names=names) + + m = table.meta + if not tu.unique_time_info(time_rows): + raise RuntimeError( + "The time information in the EVENT header are not consistent between observations" + ) + for name in tu.TIME_KEYWORDS: + m[name] = time_rows[0][name] + + m["HDUCLASS"] = "GADF" + m["HDUDOC"] = "https://github.com/open-gamma-ray-astro/gamma-astro-data-formats" + m["HDUVERS"] = "0.2" + m["HDUCLAS1"] = "INDEX" + m["HDUCLAS2"] = "OBS" + + return table + + def make_hdu_table(self): + """Make HDU index table.""" + rows = [] + for events_path, irf_path in zip(self.events_paths, self.irfs_paths): + rows.extend(self.get_hdu_table_rows(events_path, irf_path)) + + names = list(rows[0].keys()) + # names = ['OBS_ID', 'HDU_TYPE', 'HDU_CLASS', 'FILE_DIR', 'FILE_NAME', 'HDU_NAME'] + + table = HDUIndexTable(rows=rows, names=names) + + m = table.meta + m["HDUCLASS"] = "GADF" + m["HDUDOC"] = "https://github.com/open-gamma-ray-astro/gamma-astro-data-formats" + m["HDUVERS"] = "0.2" + m["HDUCLAS1"] = "INDEX" + m["HDUCLAS2"] = "HDU" + + return table + + def get_hdu_table_rows(self, events_path, irf_path=None): + """Make HDU index table rows for one observation.""" + events_info = self.get_obs_info(events_path, irf_path) + + info = dict( + OBS_ID=events_info["OBS_ID"], + FILE_DIR=events_path.parent.as_posix(), + FILE_NAME=events_path.name, + ) + yield dict(HDU_TYPE="events", HDU_CLASS="events", HDU_NAME="EVENTS", **info) + yield dict(HDU_TYPE="gti", HDU_CLASS="gti", HDU_NAME="GTI", **info) + + irf_path = Path(events_info["IRF_FILENAME"]) + info = dict( + OBS_ID=events_info["OBS_ID"], + FILE_DIR=irf_path.parent.as_posix(), + FILE_NAME=irf_path.name, + ) + yield dict( + HDU_TYPE="aeff", HDU_CLASS="aeff_2d", HDU_NAME="EFFECTIVE AREA", **info + ) + yield dict( + HDU_TYPE="edisp", HDU_CLASS="edisp_2d", HDU_NAME="ENERGY DISPERSION", **info + ) + yield dict( + HDU_TYPE="psf", + HDU_CLASS="psf_3gauss", + HDU_NAME="POINT SPREAD FUNCTION", + **info, + ) + yield dict(HDU_TYPE="bkg", HDU_CLASS="bkg_3d", HDU_NAME="BACKGROUND", **info) + + +class CalDBIRF: + """Helper class to work with IRFs in CALDB format.""" + + def __init__(self, telescop, caldb, irf): + self.telescop = telescop + self.caldb = caldb + self.irf = irf + + @classmethod + def from_meta(cls, meta): + return cls(telescop=meta["TELESCOP"], caldb=meta["CALDB"], irf=meta["IRF"]) + + @property + def file_dir(self): + # In CTA 1DC the header key is "CTA", but the directory is lower-case "cta" + telescop = self.telescop.lower() + return f"$CALDB/data/{telescop}/{self.caldb}/bcf/{self.irf}" + + @property + def file_path(self): + return Path(f"{self.file_dir}/{self.file_name}") + + @property + def file_name(self): + path = make_path(self.file_dir) + return list(path.iterdir())[0].name +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/event_list.html b/docs/dev/_modules/gammapy/data/event_list.html new file mode 100644 index 00000000000..bf03d66f1b3 --- /dev/null +++ b/docs/dev/_modules/gammapy/data/event_list.html @@ -0,0 +1,1643 @@ + + + + + + + + + + gammapy.data.event_list — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.event_list

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import collections
+import copy
+import html
+import logging
+import warnings
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import AltAz, Angle, SkyCoord, angular_separation
+from astropy.io import fits
+from astropy.table import Table
+from astropy.table import vstack as vstack_tables
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from gammapy.maps import MapAxis, MapCoord, RegionGeom, WcsNDMap
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.utils.fits import earth_location_from_dict
+from gammapy.utils.scripts import make_path
+from gammapy.utils.testing import Checker
+from gammapy.utils.time import time_ref_from_dict
+from .metadata import EventListMetaData
+
+__all__ = ["EventList"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class EventList: + """Event list. + + Event list data is stored as ``table`` (`~astropy.table.Table`) data member. + + The most important reconstructed event parameters + are available as the following columns: + + - ``TIME`` - Mission elapsed time (sec) + - ``RA``, ``DEC`` - ICRS system position (deg) + - ``ENERGY`` - Energy (usually MeV for Fermi and TeV for IACTs) + + Note that ``TIME`` is usually sorted, but sometimes it is not. + E.g. when simulating data, or processing it in certain ways. + So generally any analysis code should assume ``TIME`` is not sorted. + + Other optional (columns) that are sometimes useful for high level analysis: + + - ``GLON``, ``GLAT`` - Galactic coordinates (deg) + - ``DETX``, ``DETY`` - Field of view coordinates (deg) + + Note that when reading data for analysis you shouldn't use those + values directly, but access them via properties which create objects + of the appropriate class: + + - `time` for ``TIME`` + - `radec` for ``RA``, ``DEC`` + - `energy` for ``ENERGY`` + - `galactic` for ``GLON``, ``GLAT`` + + Parameters + ---------- + table : `~astropy.table.Table` + Event list table. + meta : `~gammapy.data.EventListMetaData` + The metadata. Default is None. + + Examples + -------- + >>> from gammapy.data import EventList + >>> events = EventList.read("$GAMMAPY_DATA/cta-1dc/data/baseline/gps/gps_baseline_110380.fits") + >>> print(events) + EventList + --------- + <BLANKLINE> + Instrument : None + Telescope : CTA + Obs. ID : 110380 + <BLANKLINE> + Number of events : 106217 + Event rate : 59.273 1 / s + <BLANKLINE> + Time start : 59235.5 + Time stop : 59235.52074074074 + <BLANKLINE> + Min. energy : 3.00e-02 TeV + Max. energy : 1.46e+02 TeV + Median energy : 1.02e-01 TeV + <BLANKLINE> + Max. offset : 5.0 deg + <BLANKLINE> + + """ + + def __init__(self, table, meta=None): + self.table = table + self.meta = meta + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + @classmethod + def read(cls, filename, hdu="EVENTS", checksum=False, **kwargs): + """Read from FITS file. + + Format specification: :ref:`gadf:iact-events` + + Parameters + ---------- + filename : `pathlib.Path`, str + Filename + hdu : str + Name of events HDU. Default is "EVENTS". + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + """ + filename = make_path(filename) + + with fits.open(filename) as hdulist: + events_hdu = hdulist[hdu] + if checksum: + if events_hdu.verify_checksum() != 1: + warnings.warn( + f"Checksum verification failed for HDU {hdu} of {filename}.", + UserWarning, + ) + + table = Table.read(events_hdu) + meta = EventListMetaData.from_header(table.meta) + + return cls(table=table, meta=meta)
+ + +
+[docs] + def to_table_hdu(self, format="gadf"): + """ + Convert event list to a `~astropy.io.fits.BinTableHDU`. + + Parameters + ---------- + format : str, optional + Output format, currently only "gadf" is supported. Default is "gadf". + + Returns + ------- + hdu : `astropy.io.fits.BinTableHDU` + EventList converted to FITS representation. + """ + if format != "gadf": + raise ValueError(f"Only the 'gadf' format supported, got {format}") + + return fits.BinTableHDU(self.table, name="EVENTS")
+ + + # TODO: Pass metadata here. Also check that specific meta contents are consistent +
+[docs] + @classmethod + def from_stack(cls, event_lists, **kwargs): + """Stack (concatenate) list of event lists. + + Calls `~astropy.table.vstack`. + + Parameters + ---------- + event_lists : list + List of `~gammapy.data.EventList` to stack. + **kwargs : dict, optional + Keyword arguments passed to `~astropy.table.vstack`. + """ + tables = [_.table for _ in event_lists] + stacked_table = vstack_tables(tables, **kwargs) + log.warning("The meta information will be empty here.") + return cls(stacked_table)
+ + +
+[docs] + def stack(self, other): + """Stack with another EventList in place. + + Calls `~astropy.table.vstack`. + + Parameters + ---------- + other : `~gammapy.data.EventList` + Event list to stack to self. + """ + self.table = vstack_tables([self.table, other.table])
+ + + def __str__(self): + info = self.__class__.__name__ + "\n" + info += "-" * len(self.__class__.__name__) + "\n\n" + + instrument = self.table.meta.get("INSTRUME") + info += f"\tInstrument : {instrument}\n" + + telescope = self.table.meta.get("TELESCOP") + info += f"\tTelescope : {telescope}\n" + + obs_id = self.table.meta.get("OBS_ID", "") + info += f"\tObs. ID : {obs_id}\n\n" + + info += f"\tNumber of events : {len(self.table)}\n" + + rate = len(self.table) / self.observation_time_duration + info += f"\tEvent rate : {rate:.3f}\n\n" + + info += f"\tTime start : {self.observation_time_start}\n" + info += f"\tTime stop : {self.observation_time_stop}\n\n" + + info += f"\tMin. energy : {np.min(self.energy):.2e}\n" + info += f"\tMax. energy : {np.max(self.energy):.2e}\n" + info += f"\tMedian energy : {np.median(self.energy):.2e}\n\n" + + if self.is_pointed_observation: + offset_max = np.max(self.offset) + info += f"\tMax. offset : {offset_max:.1f}\n" + return info.expandtabs(tabsize=2) + + @property + def time_ref(self): + """Time reference as a `~astropy.time.Time` object.""" + return time_ref_from_dict(self.table.meta) + + @property + def time(self): + """Event times as a `~astropy.time.Time` object. + + Notes + ----- + Times are automatically converted to 64-bit floats. + With 32-bit floats times will be incorrect by a few seconds + when e.g. adding them to the reference time. + """ + met = u.Quantity(self.table["TIME"].astype("float64"), "second") + return self.time_ref + met + + @property + def observation_time_start(self): + """Observation start time as a `~astropy.time.Time` object.""" + return self.time_ref + u.Quantity(self.table.meta["TSTART"], "second") + + @property + def observation_time_stop(self): + """Observation stop time as a `~astropy.time.Time` object.""" + return self.time_ref + u.Quantity(self.table.meta["TSTOP"], "second") + + @property + def radec(self): + """Event RA / DEC sky coordinates as a `~astropy.coordinates.SkyCoord` object.""" + lon, lat = self.table["RA"], self.table["DEC"] + return SkyCoord(lon, lat, unit="deg", frame="icrs") + + @property + def galactic(self): + """Event Galactic sky coordinates as a `~astropy.coordinates.SkyCoord` object. + + Always computed from RA / DEC using Astropy. + """ + return self.radec.galactic + + @property + def energy(self): + """Event energies as a `~astropy.units.Quantity`.""" + return self.table["ENERGY"].quantity + + @property + def galactic_median(self): + """Median position as a `~astropy.coordinates.SkyCoord` object.""" + galactic = self.galactic + median_lon = np.median(galactic.l.wrap_at("180d")) + median_lat = np.median(galactic.b) + return SkyCoord(median_lon, median_lat, frame="galactic") + +
+[docs] + def select_row_subset(self, row_specifier): + """Select table row subset. + + Parameters + ---------- + row_specifier : slice or int or array of int + Specification for rows to select, + passed to ``self.table[row_specifier]``. + + Returns + ------- + event_list : `EventList` + New event list with table row subset selected. + + Examples + -------- + >>> from gammapy.data import EventList + >>> import numpy as np + >>> filename = "$GAMMAPY_DATA/cta-1dc/data/baseline/gps/gps_baseline_110380.fits" + >>> events = EventList.read(filename) + >>> #Use a boolean mask as ``row_specifier``: + >>> mask = events.table['MC_ID'] == 1 + >>> events2 = events.select_row_subset(mask) + >>> print(len(events2.table)) + 97978 + >>> #Use row index array as ``row_specifier``: + >>> idx = np.where(events.table['MC_ID'] == 1)[0] + >>> events2 = events.select_row_subset(idx) + >>> print(len(events2.table)) + 97978 + """ + table = self.table[row_specifier] + return self.__class__(table=table)
+ + +
+[docs] + def select_energy(self, energy_range): + """Select events in energy band. + + Parameters + ---------- + energy_range : `~astropy.units.Quantity` + Energy range ``[energy_min, energy_max)``. + + Returns + ------- + event_list : `EventList` + Copy of event list with selection applied. + + Examples + -------- + >>> from astropy import units as u + >>> from gammapy.data import EventList + >>> filename = "$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_events_selected.fits.gz" + >>> event_list = EventList.read(filename) + >>> energy_range =[1, 20] * u.TeV + >>> event_list = event_list.select_energy(energy_range=energy_range) + """ + energy = self.energy + mask = energy_range[0] <= energy + mask &= energy < energy_range[1] + return self.select_row_subset(mask)
+ + +
+[docs] + def select_time(self, time_interval): + """Select events in time interval. + + Parameters + ---------- + time_interval : `astropy.time.Time` + Start time (inclusive) and stop time (exclusive) for the selection. + + Returns + ------- + events : `EventList` + Copy of event list with selection applied. + """ + time = self.time + mask = time_interval[0] <= time + mask &= time < time_interval[1] + return self.select_row_subset(mask)
+ + +
+[docs] + def select_region(self, regions, wcs=None): + """Select events in given region. + + Parameters + ---------- + regions : str or `~regions.Region` or list of `~regions.Region` + Region or list of regions (pixel or sky regions accepted). + A region can be defined as a string in the DS9 format as well. + See http://ds9.si.edu/doc/ref/region.html for details. + wcs : `~astropy.wcs.WCS`, optional + World coordinate system transformation. Default is None. + + Returns + ------- + event_list : `EventList` + Copy of event list with selection applied. + """ + geom = RegionGeom.from_regions(regions, wcs=wcs) + mask = geom.contains(self.radec) + return self.select_row_subset(mask)
+ + +
+[docs] + def select_parameter(self, parameter, band): + """Select events with respect to a specified parameter. + + Parameters + ---------- + parameter : str + Parameter used for the selection. Must be present in `self.table`. + band : tuple or `astropy.units.Quantity` + Minimum and maximum value for the parameter to be selected (minimum <= parameter < maximum). + If parameter is not dimensionless, a Quantity is required. + + Returns + ------- + event_list : `EventList` + Copy of event list with selection applied. + + Examples + -------- + >>> from astropy import units as u + >>> from gammapy.data import EventList + >>> filename = "$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_events_selected.fits.gz" + >>> event_list = EventList.read(filename) + >>> zd = (0, 30) * u.deg + >>> event_list = event_list.select_parameter(parameter='ZENITH_ANGLE', band=zd) + >>> print(len(event_list.table)) + 123944 + """ + mask = band[0] <= self.table[parameter].quantity + mask &= self.table[parameter].quantity < band[1] + return self.select_row_subset(mask)
+ + + @property + def _default_plot_energy_axis(self): + energy = self.energy + return MapAxis.from_energy_bounds( + energy_min=energy.min(), energy_max=energy.max(), nbin=50 + ) + +
+[docs] + def plot_energy(self, ax=None, **kwargs): + """Plot counts as a function of energy. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.hist`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + energy_axis = self._default_plot_energy_axis + + kwargs.setdefault("log", True) + kwargs.setdefault("histtype", "step") + kwargs.setdefault("bins", energy_axis.edges) + + with quantity_support(): + ax.hist(self.energy, **kwargs) + + energy_axis.format_plot_xaxis(ax=ax) + ax.set_ylabel("Counts") + ax.set_yscale("log") + return ax
+ + +
+[docs] + def plot_time(self, ax=None, **kwargs): + """Plot an event rate time curve. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.errorbar`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + # Note the events are not necessarily in time order + time = self.table["TIME"] + time = time - np.min(time) + + ax.set_xlabel(f"Time [{u.s.to_string(UNIT_STRING_FORMAT)}]") + ax.set_ylabel("Counts") + y, x_edges = np.histogram(time, bins=20) + + xerr = np.diff(x_edges) / 2 + x = x_edges[:-1] + xerr + yerr = np.sqrt(y) + + kwargs.setdefault("fmt", "none") + + ax.errorbar(x=x, y=y, xerr=xerr, yerr=yerr, **kwargs) + + return ax
+ + +
+[docs] + def plot_offset2_distribution( + self, ax=None, center=None, max_percentile=98, **kwargs + ): + """Plot offset^2 distribution of the events. + + The distribution shown in this plot is for this quantity:: + + offset = center.separation(events.radec).deg + offset2 = offset ** 2 + + Note that this method is just for a quicklook plot. + + If you want to do computations with the offset or offset^2 values, you can + use the line above. As an example, here's how to compute the 68% event + containment radius using `numpy.percentile`:: + + import numpy as np + r68 = np.percentile(offset, q=68) + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + center : `astropy.coordinates.SkyCoord`, optional + Center position for the offset^2 distribution. + Default is the observation pointing position. + max_percentile : float, optional + Define the percentile of the offset^2 distribution used to define the maximum offset^2 value. + Default is 98. + **kwargs : dict, optional + Extra keyword arguments are passed to `~matplotlib.pyplot.hist`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + + Examples + -------- + Load an example event list: + + >>> from gammapy.data import EventList + >>> from astropy import units as u + >>> filename = "$GAMMAPY_DATA/hess-dl3-dr1/data/hess_dl3_dr1_obs_id_023523.fits.gz" + >>> events = EventList.read(filename) + + >>> #Plot the offset^2 distribution wrt. the observation pointing position + >>> #(this is a commonly used plot to check the background spatial distribution): + >>> events.plot_offset2_distribution() # doctest: +SKIP + Plot the offset^2 distribution wrt. the Crab pulsar position (this is + commonly used to check both the gamma-ray signal and the background + spatial distribution): + + >>> import numpy as np + >>> from astropy.coordinates import SkyCoord + >>> center = SkyCoord(83.63307, 22.01449, unit='deg') + >>> bins = np.linspace(start=0, stop=0.3 ** 2, num=30) * u.deg ** 2 + >>> events.plot_offset2_distribution(center=center, bins=bins) # doctest: +SKIP + + Note how we passed the ``bins`` option of `matplotlib.pyplot.hist` to control + the histogram binning, in this case 30 bins ranging from 0 to (0.3 deg)^2. + """ + ax = plt.gca() if ax is None else ax + + if center is None: + center = self._plot_center + + offset2 = center.separation(self.radec) ** 2 + max2 = np.percentile(offset2, q=max_percentile) + + kwargs.setdefault("histtype", "step") + kwargs.setdefault("bins", 30) + kwargs.setdefault("range", (0.0, max2.value)) + + with quantity_support(): + ax.hist(offset2, **kwargs) + + ax.set_xlabel(rf"Offset$^2$ [{ax.xaxis.units.to_string(UNIT_STRING_FORMAT)}]") + ax.set_ylabel("Counts") + return ax
+ + +
+[docs] + def plot_energy_offset(self, ax=None, center=None, **kwargs): + """Plot counts histogram with energy and offset axes. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axis`, optional + Plot axis. Default is None. + center : `~astropy.coordinates.SkyCoord`, optional + Sky coord from which offset is computed. Default is None. + **kwargs : dict, optional + Keyword arguments forwarded to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Plot axis. + """ + from matplotlib.colors import LogNorm + + ax = plt.gca() if ax is None else ax + + if center is None: + center = self._plot_center + + energy_axis = self._default_plot_energy_axis + + offset = center.separation(self.radec) + offset_axis = MapAxis.from_bounds( + 0 * u.deg, offset.max(), nbin=30, name="offset" + ) + + counts = np.histogram2d( + x=self.energy, + y=offset, + bins=(energy_axis.edges, offset_axis.edges), + )[0] + + kwargs.setdefault("norm", LogNorm()) + + with quantity_support(): + ax.pcolormesh(energy_axis.edges, offset_axis.edges, counts.T, **kwargs) + + energy_axis.format_plot_xaxis(ax=ax) + offset_axis.format_plot_yaxis(ax=ax) + return ax
+ + +
+[docs] + def check(self, checks="all"): + """Run checks. + + This is a generator that yields a list of dicts. + """ + checker = EventListChecker(self) + return checker.run(checks=checks)
+ + +
+[docs] + def map_coord(self, geom): + """Event map coordinates for a given geometry. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Geometry. + + Returns + ------- + coord : `~gammapy.maps.MapCoord` + Coordinates. + """ + coord = {"skycoord": self.radec} + + cols = {k.upper(): v for k, v in self.table.columns.items()} + + for axis in geom.axes: + try: + col = cols[axis.name.upper()] + coord[axis.name] = u.Quantity(col).to(axis.unit) + except KeyError: + raise KeyError(f"Column not found in event list: {axis.name!r}") + + return MapCoord.create(coord)
+ + +
+[docs] + def select_mask(self, mask): + """Select events inside a mask (`EventList`). + + Parameters + ---------- + mask : `~gammapy.maps.Map` + Mask. + + Returns + ------- + event_list : `EventList` + Copy of event list with selection applied. + + Examples + -------- + >>> from gammapy.data import EventList + >>> from gammapy.maps import WcsGeom, Map + >>> geom = WcsGeom.create(skydir=(0,0), width=(4, 4), frame="galactic") + >>> mask = geom.region_mask("galactic;circle(0, 0, 0.5)") + >>> filename = "$GAMMAPY_DATA/cta-1dc/data/baseline/gps/gps_baseline_110380.fits" + >>> events = EventList.read(filename) + >>> masked_event = events.select_mask(mask) + >>> len(masked_event.table) + 5594 + """ + coord = self.map_coord(mask.geom) + values = mask.get_by_coord(coord) + valid = values > 0 + return self.select_row_subset(valid)
+ + + @property + def observatory_earth_location(self): + """Observatory location as an `~astropy.coordinates.EarthLocation` object.""" + return earth_location_from_dict(self.table.meta) + + @property + def observation_time_duration(self): + """Observation time duration in seconds as a `~astropy.units.Quantity`. + + This is a keyword related to IACTs. + The wall time, including dead-time. + """ + time_delta = (self.observation_time_stop - self.observation_time_start).sec + return u.Quantity(time_delta, "s") + + @property + def observation_live_time_duration(self): + """Live-time duration in seconds as a `~astropy.units.Quantity`. + + The dead-time-corrected observation time. + + - In Fermi-LAT it is automatically provided in the header of the event list. + - In IACTs is computed as ``t_live = t_observation * (1 - f_dead)`` where ``f_dead`` is the dead-time fraction. + """ + return u.Quantity(self.table.meta["LIVETIME"], "second") + + @property + def observation_dead_time_fraction(self): + """Dead-time fraction as a float. + + This is a keyword related to IACTs. + Defined as dead-time over observation time. + + Dead-time is defined as the time during the observation + where the detector didn't record events: + http://en.wikipedia.org/wiki/Dead_time + https://ui.adsabs.harvard.edu/abs/2004APh....22..285F + + The dead-time fraction is used in the live-time computation, + which in turn is used in the exposure and flux computation. + """ + return 1 - self.table.meta["DEADC"] + + @property + def altaz_frame(self): + """ALT / AZ frame as an `~astropy.coordinates.AltAz` object.""" + return AltAz(obstime=self.time, location=self.observatory_earth_location) + + @property + def altaz(self): + """ALT / AZ position computed from RA / DEC as a `~astropy.coordinates.SkyCoord` object.""" + return self.radec.transform_to(self.altaz_frame) + + @property + def altaz_from_table(self): + """ALT / AZ position from table as a `~astropy.coordinates.SkyCoord` object.""" + lon = self.table["AZ"] + lat = self.table["ALT"] + return SkyCoord(lon, lat, unit="deg", frame=self.altaz_frame) + + @property + def pointing_radec(self): + """Pointing RA / DEC sky coordinates as a `~astropy.coordinates.SkyCoord` object.""" + info = self.table.meta + lon, lat = info["RA_PNT"], info["DEC_PNT"] + return SkyCoord(lon, lat, unit="deg", frame="icrs") + + @property + def offset(self): + """Event offset from the array pointing position as an `~astropy.coordinates.Angle`.""" + position = self.radec + center = self.pointing_radec + offset = center.separation(position) + return Angle(offset, unit="deg") + + @property + def offset_from_median(self): + """Event offset from the median position as an `~astropy.coordinates.Angle`.""" + position = self.radec + center = self.galactic_median + offset = center.separation(position) + return Angle(offset, unit="deg") + +
+[docs] + def select_offset(self, offset_band): + """Select events in offset band. + + Parameters + ---------- + offset_band : `~astropy.coordinates.Angle` + offset band ``[offset_min, offset_max)``. + + Returns + ------- + event_list : `EventList` + Copy of event list with selection applied. + + Examples + -------- + >>> from gammapy.data import EventList + >>> import astropy.units as u + >>> filename = "$GAMMAPY_DATA/cta-1dc/data/baseline/gps/gps_baseline_110380.fits" + >>> events = EventList.read(filename) + >>> selected_events = events.select_offset([0.3, 0.9]*u.deg) + >>> len(selected_events.table) + 12688 + + """ + offset = self.offset + mask = offset_band[0] <= offset + mask &= offset < offset_band[1] + return self.select_row_subset(mask)
+ + +
+[docs] + def select_rad_max(self, rad_max, position=None): + """Select energy dependent offset. + + Parameters + ---------- + rad_max : `~gamapy.irf.RadMax2D` + Rad max definition. + position : `~astropy.coordinates.SkyCoord`, optional + Center position. Default is the pointing position. + + Returns + ------- + event_list : `EventList` + Copy of event list with selection applied. + """ + if position is None: + position = self.pointing_radec + + offset = position.separation(self.pointing_radec) + separation = position.separation(self.radec) + + rad_max_for_events = rad_max.evaluate( + method="nearest", energy=self.energy, offset=offset + ) + + selected = separation <= rad_max_for_events + return self.select_row_subset(selected)
+ + + @property + def is_pointed_observation(self): + """Whether observation is pointed.""" + return "RA_PNT" in self.table.meta + +
+[docs] + def peek(self, allsky=False): + """Quick look plots. + + Parameters + ---------- + allsky : bool, optional + Whether to look at the events all-sky. Default is False. + """ + import matplotlib.gridspec as gridspec + + if allsky: + gs = gridspec.GridSpec(nrows=2, ncols=2) + fig = plt.figure(figsize=(8, 8)) + else: + gs = gridspec.GridSpec(nrows=2, ncols=3) + fig = plt.figure(figsize=(12, 8)) + + # energy plot + ax_energy = fig.add_subplot(gs[1, 0]) + self.plot_energy(ax=ax_energy) + + # offset plots + if not allsky: + ax_offset = fig.add_subplot(gs[0, 1]) + self.plot_offset2_distribution(ax=ax_offset) + ax_energy_offset = fig.add_subplot(gs[0, 2]) + self.plot_energy_offset(ax=ax_energy_offset) + + # time plot + ax_time = fig.add_subplot(gs[1, 1]) + self.plot_time(ax=ax_time) + + # image plot + m = self._counts_image(allsky=allsky) + if allsky: + ax_image = fig.add_subplot(gs[0, :], projection=m.geom.wcs) + else: + ax_image = fig.add_subplot(gs[0, 0], projection=m.geom.wcs) + m.plot(ax=ax_image, stretch="sqrt", vmin=0) + plt.subplots_adjust(wspace=0.3)
+ + + @property + def _plot_center(self): + if self.is_pointed_observation: + return self.pointing_radec + else: + return self.galactic_median + + @property + def _plot_width(self): + if self.is_pointed_observation: + offset = self.offset + else: + offset = self.offset_from_median + + return 2 * offset.max() + + def _counts_image(self, allsky): + if allsky: + opts = { + "npix": (360, 180), + "binsz": 1.0, + "proj": "AIT", + "frame": "galactic", + } + else: + opts = { + "width": self._plot_width, + "binsz": 0.05, + "proj": "TAN", + "frame": "galactic", + "skydir": self._plot_center, + } + + m = WcsNDMap.create(**opts) + m.fill_by_coord(self.radec) + m = m.smooth(width=0.5) + return m + +
+[docs] + def plot_image(self, ax=None, allsky=False): + """Quick look counts map sky plot. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axes`, optional + Matplotlib axes. + allsky : bool, optional + Whether to plot on an all sky geom. Default is False. + """ + if ax is None: + ax = plt.gca() + m = self._counts_image(allsky=allsky) + m.plot(ax=ax, stretch="sqrt")
+ + +
+[docs] + def copy(self): + """Copy event list (`EventList`).""" + return copy.deepcopy(self)
+
+ + + +class EventListChecker(Checker): + """Event list checker. + + Data format specification: ref:`gadf:iact-events`. + + Parameters + ---------- + event_list : `~gammapy.data.EventList` + Event list. + """ + + CHECKS = { + "meta": "check_meta", + "columns": "check_columns", + "times": "check_times", + "coordinates_galactic": "check_coordinates_galactic", + "coordinates_altaz": "check_coordinates_altaz", + } + + accuracy = {"angle": Angle("1 arcsec"), "time": u.Quantity(1, "microsecond")} + + # https://gamma-astro-data-formats.readthedocs.io/en/latest/events/events.html#mandatory-header-keywords # noqa: E501 + meta_required = [ + "HDUCLASS", + "HDUDOC", + "HDUVERS", + "HDUCLAS1", + "OBS_ID", + "TSTART", + "TSTOP", + "ONTIME", + "LIVETIME", + "DEADC", + "RA_PNT", + "DEC_PNT", + # TODO: what to do about these? + # They are currently listed as required in the spec, + # but I think we should just require ICRS and those + # are irrelevant, should not be used. + # 'RADECSYS', + # 'EQUINOX', + "ORIGIN", + "TELESCOP", + "INSTRUME", + "CREATOR", + # https://gamma-astro-data-formats.readthedocs.io/en/latest/general/time.html#time-formats # noqa: E501 + "MJDREFI", + "MJDREFF", + "TIMEUNIT", + "TIMESYS", + "TIMEREF", + # https://gamma-astro-data-formats.readthedocs.io/en/latest/general/coordinates.html#coords-location # noqa: E501 + "GEOLON", + "GEOLAT", + "ALTITUDE", + ] + + _col = collections.namedtuple("col", ["name", "unit"]) + columns_required = [ + _col(name="EVENT_ID", unit=""), + _col(name="TIME", unit="s"), + _col(name="RA", unit="deg"), + _col(name="DEC", unit="deg"), + _col(name="ENERGY", unit="TeV"), + ] + + def __init__(self, event_list): + self.event_list = event_list + + def _record(self, level="info", msg=None): + obs_id = self.event_list.table.meta["OBS_ID"] + return {"level": level, "obs_id": obs_id, "msg": msg} + + def check_meta(self): + meta_missing = sorted(set(self.meta_required) - set(self.event_list.table.meta)) + if meta_missing: + yield self._record( + level="error", msg=f"Missing meta keys: {meta_missing!r}" + ) + + def check_columns(self): + t = self.event_list.table + + if len(t) == 0: + yield self._record(level="error", msg="Events table has zero rows") + + for name, unit in self.columns_required: + if name not in t.colnames: + yield self._record(level="error", msg=f"Missing table column: {name!r}") + else: + if u.Unit(unit) != (t[name].unit or ""): + yield self._record( + level="error", msg=f"Invalid unit for column: {name!r}" + ) + + def check_times(self): + dt = (self.event_list.time - self.event_list.observation_time_start).sec + if dt.min() < self.accuracy["time"].to_value("s"): + yield self._record(level="error", msg="Event times before obs start time") + + dt = (self.event_list.time - self.event_list.observation_time_stop).sec + if dt.max() > self.accuracy["time"].to_value("s"): + yield self._record(level="error", msg="Event times after the obs end time") + + if np.min(np.diff(dt)) <= 0: + yield self._record(level="error", msg="Events are not time-ordered.") + + def check_coordinates_galactic(self): + """Check if RA / DEC matches GLON / GLAT.""" + t = self.event_list.table + + if "GLON" not in t.colnames: + return + + galactic = SkyCoord(t["GLON"], t["GLAT"], unit="deg", frame="galactic") + separation = self.event_list.radec.separation(galactic).to("arcsec") + if separation.max() > self.accuracy["angle"]: + yield self._record( + level="error", msg="GLON / GLAT not consistent with RA / DEC" + ) + + def check_coordinates_altaz(self): + """Check if ALT / AZ matches RA / DEC.""" + t = self.event_list.table + + if "AZ" not in t.colnames: + return + + altaz_astropy = self.event_list.altaz + separation = angular_separation( + altaz_astropy.data.lon, + altaz_astropy.data.lat, + t["AZ"].quantity, + t["ALT"].quantity, + ) + if separation.max() > self.accuracy["angle"]: + yield self._record( + level="error", msg="ALT / AZ not consistent with RA / DEC" + ) +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/filters.html b/docs/dev/_modules/gammapy/data/filters.html new file mode 100644 index 00000000000..bcb3b75684d --- /dev/null +++ b/docs/dev/_modules/gammapy/data/filters.html @@ -0,0 +1,666 @@ + + + + + + + + + + gammapy.data.filters — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.filters

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+import html
+import logging
+
+__all__ = ["ObservationFilter"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class ObservationFilter: + """Holds and applies filters to observation data. + + Parameters + ---------- + time_filter : `astropy.time.Time`, optional + Start and stop time of the selected time interval. Currently, we only support + a single time interval. Default is None. + event_filters : list of dict, optional + An event filter dictionary needs two keys: + + - **type** : str, one of the keys in `~gammapy.data.ObservationFilter.EVENT_FILTER_TYPES` + - **opts** : dict, it is passed on to the method of the `~gammapy.data.EventListBase` + class that corresponds to the filter type + (see `~gammapy.data.ObservationFilter.EVENT_FILTER_TYPES`) + + The filtered event list will be an intersection of all filters. A union + of filters is not supported yet. Default is None. + + Examples + -------- + >>> from gammapy.data import ObservationFilter, DataStore, Observation + >>> from astropy.time import Time + >>> from astropy.coordinates import Angle + >>> + >>> time_filter = Time(['2021-03-27T20:10:00', '2021-03-27T20:20:00']) + >>> phase_filter = {'type': 'custom', 'opts': dict(parameter='PHASE', band=(0.2, 0.8))} + >>> + >>> my_obs_filter = ObservationFilter(time_filter=time_filter, event_filters=[phase_filter]) + >>> + >>> ds = DataStore.from_dir("$GAMMAPY_DATA/cta-1dc/index/gps") + >>> my_obs = ds.obs(obs_id=111630) + >>> my_obs.obs_filter = my_obs_filter + """ + + EVENT_FILTER_TYPES = dict(sky_region="select_region", custom="select_parameter") + + def __init__(self, time_filter=None, event_filters=None): + self.time_filter = time_filter + self.event_filters = event_filters or [] + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def livetime_fraction(self): + """Fraction of the livetime kept when applying the event_filters.""" + return self._check_filter_phase(self.event_filters) + +
+[docs] + def filter_events(self, events): + """Apply filters to an event list. + + Parameters + ---------- + events : `~gammapy.data.EventListBase` + Event list to which the filters will be applied. + + Returns + ------- + filtered_events : `~gammapy.data.EventListBase` + The filtered event list. + """ + filtered_events = self._filter_by_time(events) + + for f in self.event_filters: + method_str = self.EVENT_FILTER_TYPES[f["type"]] + filtered_events = getattr(filtered_events, method_str)(**f["opts"]) + + return filtered_events
+ + +
+[docs] + def filter_gti(self, gti): + """Apply filters to a GTI table. + + Parameters + ---------- + gti : `~gammapy.data.GTI` + GTI table to which the filters will be applied. + + Returns + ------- + filtered_gti : `~gammapy.data.GTI` + The filtered GTI table. + """ + return self._filter_by_time(gti)
+ + + def _filter_by_time(self, data): + """Return a new time filtered data object. + + Calls the `select_time` method of the data object. + """ + if self.time_filter: + return data.select_time(self.time_filter) + else: + return data + +
+[docs] + def copy(self): + """Copy the `ObservationFilter` object.""" + return copy.deepcopy(self)
+ + + @staticmethod + def _check_filter_phase(event_filter): + if not event_filter: + return 1 + for f in event_filter: + if f.get("opts").get("parameter") == "PHASE": + band = f.get("opts").get("band") + return band[1] - band[0] + else: + return 1
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/gti.html b/docs/dev/_modules/gammapy/data/gti.html new file mode 100644 index 00000000000..fee6994cf21 --- /dev/null +++ b/docs/dev/_modules/gammapy/data/gti.html @@ -0,0 +1,1064 @@ + + + + + + + + + + gammapy.data.gti — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.gti

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+import html
+import warnings
+from operator import le, lt
+import numpy as np
+import astropy.units as u
+from astropy.io import fits
+from astropy.table import Table, vstack
+from astropy.time import Time
+from gammapy.utils.scripts import make_path
+from gammapy.utils.time import TIME_REF_DEFAULT, time_ref_from_dict, time_ref_to_dict
+from .metadata import GTIMetaData
+
+__all__ = ["GTI"]
+
+
+
+[docs] +class GTI: + """Good time intervals (GTI) `~astropy.table.Table`. + + Data format specification: :ref:`gadf:iact-gti`. + + Note: at the moment dead-time and live-time is in the + EVENTS header ... the GTI header just deals with + observation times. + + Parameters + ---------- + table : `~astropy.table.Table` + GTI table. + reference_time : `~astropy.time.Time`, optional + The reference time. Default is None. + If None, use TIME_REF_DEFAULT. + + Examples + -------- + Load GTIs for a H.E.S.S. event list: + + >>> from gammapy.data import GTI + >>> gti = GTI.read('$GAMMAPY_DATA/hess-dl3-dr1//data/hess_dl3_dr1_obs_id_023523.fits.gz') + >>> print(gti) + GTI info: + - Number of GTIs: 1 + - Duration: 1687.0000000000016 s + - Start: 123890826.00000001 s MET + - Start: 2004-12-04T22:08:10.184 (time standard: TT) + - Stop: 123892513.00000001 s MET + - Stop: 2004-12-04T22:36:17.184 (time standard: TT) + <BLANKLINE> + + Load GTIs for a Fermi-LAT event list: + + >>> gti = GTI.read("$GAMMAPY_DATA/fermi-3fhl-gc/fermi-3fhl-gc-events.fits.gz") + >>> print(gti) + GTI info: + - Number of GTIs: 39042 + - Duration: 183139597.9032163 s + - Start: 239557417.49417615 s MET + - Start: 2008-08-04T15:44:41.678 (time standard: TT) + - Stop: 460249999.99999994 s MET + - Stop: 2015-08-02T23:14:24.184 (time standard: TT) + <BLANKLINE> + """ + + def __init__(self, table, reference_time=None): + self.table = self._validate_table(table) + + if reference_time is None: + reference_time = TIME_REF_DEFAULT + + meta = GTIMetaData() + meta.reference_time = reference_time + + self._meta = meta + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @staticmethod + def _validate_table(table): + """Check that the input GTI fits the gammapy internal model.""" + if not isinstance(table, Table): + raise TypeError("GTI table is not an astropy Table.") + + colnames = ["START", "STOP"] + + if not set(colnames).issubset(table.colnames): + raise ValueError("GTI table not correctly defined.") + + if len(table) == 0: + return table + + for name in colnames: + if not isinstance(table[name], Time): + raise TypeError(f"Column {name} is not a Time object.") + + return table + +
+[docs] + def copy(self): + """Deep copy of the `~gammapy.data.GIT` object.""" + return copy.deepcopy(self)
+ + +
+[docs] + @classmethod + def create(cls, start, stop, reference_time=None): + """Create a GTI table from start and stop times. + + Parameters + ---------- + start : `~astropy.time.Time` or `~astropy.units.Quantity` + Start times, if a quantity then w.r.t. reference time. + stop : `~astropy.time.Time` or `~astropy.units.Quantity` + Stop times, if a quantity then w.r.t. reference time. + reference_time : `~astropy.time.Time`, optional + The reference time to use in GTI definition. Default is None. + If None, use TIME_REF_DEFAULT. + """ + if reference_time is None: + reference_time = TIME_REF_DEFAULT + reference_time = Time(reference_time) + reference_time.format = "mjd" + + if not isinstance(start, Time): + start = reference_time + u.Quantity(start) + + if not isinstance(stop, Time): + stop = reference_time + u.Quantity(stop) + + table = Table({"START": np.atleast_1d(start), "STOP": np.atleast_1d(stop)}) + + return cls(table, reference_time=reference_time)
+ + +
+[docs] + @classmethod + def read(cls, filename, hdu="GTI", format="gadf", checksum=False): + """Read from FITS file. + + Parameters + ---------- + filename : `pathlib.Path` or str + Filename + hdu : str + hdu name. Default is "GTI". + format: str + Input format, currently only "gadf" is supported. Default is "gadf". + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + """ + filename = make_path(filename) + with fits.open(str(make_path(filename)), memmap=False) as hdulist: + gti_hdu = hdulist[hdu] + if checksum: + if gti_hdu.verify_checksum() != 1: + warnings.warn( + f"Checksum verification failed for HDU {hdu} of {filename}.", + UserWarning, + ) + + return cls.from_table_hdu(gti_hdu, format=format)
+ + +
+[docs] + @classmethod + def from_table_hdu(cls, table_hdu, format="gadf"): + """Read from table HDU. + + Parameters + ---------- + table_hdu : `~astropy.io.fits.BinTableHDU` + table hdu. + format : {"gadf"} + Input format, currently only "gadf" is supported. Default is "gadf". + """ + if format != "gadf": + raise ValueError(f'Only the "gadf" format supported, got {format}') + + table = Table.read(table_hdu) + time_ref = time_ref_from_dict(table.meta, format="mjd", scale="tt") + + # Check if TIMEUNIT keyword is present, otherwise assume seconds + unit = table.meta.pop("TIMEUNIT", "s") + start = u.Quantity(table["START"], unit) + stop = u.Quantity(table["STOP"], unit) + + return cls.create(start, stop, time_ref)
+ + +
+[docs] + def to_table_hdu(self, format="gadf"): + """ + Convert this GTI instance to a `astropy.io.fits.BinTableHDU`. + + Parameters + ---------- + format : str, optional + Output format, currently only "gadf" is supported. Default is "gadf". + + Returns + ------- + hdu : `astropy.io.fits.BinTableHDU` + GTI table converted to FITS representation. + """ + if format != "gadf": + raise ValueError(f'Only the "gadf" format supported, got {format}') + + # Don't impose the scale. GADF does not require it to be TT + meta = time_ref_to_dict(self.time_ref, scale=self.time_ref.scale) + start = self.time_start - self.time_ref + stop = self.time_stop - self.time_ref + table = Table({"START": start.to("s"), "STOP": stop.to("s")}, meta=meta) + + return fits.BinTableHDU(table, name="GTI")
+ + +
+[docs] + def write(self, filename, **kwargs): + """Write to file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + Filename. + **kwargs : dict, optional + Keyword arguments passed to `~astropy.io.fits.HDUList.writeto`. + """ + hdu = self.to_table_hdu() + hdulist = fits.HDUList([fits.PrimaryHDU(), hdu]) + hdulist.writeto(make_path(filename), **kwargs)
+ + + def __str__(self): + t_start_met = self.met_start[0] + t_stop_met = self.met_stop[-1] + t_start = self.time_start[0].fits + t_stop = self.time_stop[-1].fits + return ( + "GTI info:\n" + f"- Number of GTIs: {len(self.table)}\n" + f"- Duration: {self.time_sum}\n" + f"- Start: {t_start_met} MET\n" + f"- Start: {t_start} (time standard: {self.time_start[-1].scale.upper()})\n" + f"- Stop: {t_stop_met} MET\n" + f"- Stop: {t_stop} (time standard: {self.time_stop[-1].scale.upper()})\n" + ) + + @property + def time_delta(self): + """GTI durations in seconds as a `~astropy.units.Quantity`.""" + delta = self.time_stop - self.time_start + return delta.to("s") + + @property + def time_ref(self): + """Time reference as a `~astropy.time.Time` object.""" + return self._meta.reference_time + + @property + def time_sum(self): + """Sum of GTIs in seconds as a `~astropy.units.Quantity`.""" + return self.time_delta.sum() + + @property + def time_start(self): + """GTI start times as a `~astropy.time.Time` object.""" + return self.table["START"] + + @property + def time_stop(self): + """GTI end times as a `~astropy.time.Time` object.""" + return self.table["STOP"] + + @property + def met_start(self): + """GTI start time difference with reference time in seconds, MET as a `~astropy.units.Quantity`.""" + return (self.time_start - self.time_ref).to("s") + + @property + def met_stop(self): + """GTI start time difference with reference time in seconds, MET as a `~astropy.units.Quantity`.""" + return (self.time_stop - self.time_ref).to("s") + + @property + def time_intervals(self): + """List of time intervals.""" + return [ + (t_start, t_stop) + for t_start, t_stop in zip(self.time_start, self.time_stop) + ] + +
+[docs] + @classmethod + def from_time_intervals(cls, time_intervals, reference_time=None): + """From list of time intervals. + + Parameters + ---------- + time_intervals : list of `~astropy.time.Time` objects + Time intervals. + reference_time : `~astropy.time.Time`, optional + Reference time to use in GTI definition. Default is None. + If None, use TIME_REF_DEFAULT. + + Returns + ------- + gti : `GTI` + GTI table. + """ + start = Time([_[0] for _ in time_intervals]) + stop = Time([_[1] for _ in time_intervals]) + + if reference_time is None: + reference_time = TIME_REF_DEFAULT + + return cls.create(start, stop, reference_time)
+ + +
+[docs] + def select_time(self, time_interval): + """Select and crop GTIs in time interval. + + Parameters + ---------- + time_interval : `astropy.time.Time` + Start and stop time for the selection. + + Returns + ------- + gti : `GTI` + Copy of the GTI table with selection applied. + """ + interval_start, interval_stop = time_interval + interval_start.format = self.time_start.format + interval_stop.format = self.time_stop.format + + # get GTIs that fall within the time_interval + mask = self.time_start < interval_stop + mask &= self.time_stop > interval_start + gti_within = self.table[mask] + + # crop the GTIs + gti_within["START"] = np.clip( + gti_within["START"], interval_start, interval_stop + ) + + gti_within["STOP"] = np.clip(gti_within["STOP"], interval_start, interval_stop) + + return self.__class__(gti_within)
+ + +
+[docs] + def delete_interval(self, time_interval): + """Select and crop GTIs in time interval. + + Parameters + ---------- + time_interval : [`astropy.time.Time`, `astropy.time.Time`] + Start and stop time for the selection. + + Returns + ------- + gti : `GTI` + Copy of the GTI table with the bad time interval deleted. + """ + interval_start, interval_stop = time_interval + interval_start.format = self.time_start.format + interval_stop.format = self.time_stop.format + + trim_table = self.table.copy() + + trim_table["STOP"][ + (self.time_start < interval_start) & (self.time_stop > interval_start) + ] = interval_start + trim_table["START"][ + (self.time_start < interval_stop) & (self.time_stop > interval_stop) + ] = interval_stop + mask = (self.time_stop > interval_stop) | (self.time_start < interval_start) + + return self.__class__(trim_table[mask])
+ + +
+[docs] + def stack(self, other): + """Stack with another GTI in place. + + This simply changes the time reference of the second GTI table + and stack the two tables. No logic is applied to the intervals. + + Parameters + ---------- + other : `~gammapy.data.GTI` + GTI to stack to self. + """ + self.table = self._validate_table(vstack([self.table, other.table]))
+ + +
+[docs] + @classmethod + def from_stack(cls, gtis, **kwargs): + """Stack (concatenate) list of GTIs. + + Calls `~astropy.table.vstack`. + + Parameters + ---------- + gtis : list of `GTI` + List of good time intervals to stack. + **kwargs : dict, optional + Keywords passed on to `~astropy.table.vstack`. + + Returns + ------- + gti : `GTI` + Stacked good time intervals. + """ + tables = [_.table for _ in gtis] + stacked_table = vstack(tables, **kwargs) + return cls(stacked_table)
+ + +
+[docs] + def union(self, overlap_ok=True, merge_equal=True): + """Union of overlapping time intervals. + + Returns a new `~gammapy.data.GTI` object. + + Parameters + ---------- + overlap_ok : bool, optional + Whether to raise an error when overlapping time bins are found. Default is True. + merge_equal : bool; optional + Whether to merge touching time bins e.g. ``(1, 2)`` and ``(2, 3)`` + will result in ``(1, 3)``. Default is True. + """ + # Algorithm to merge overlapping intervals is well-known, + # see e.g. https://stackoverflow.com/a/43600953/498873 + + table = self.table.copy() + table.sort("START") + + compare = lt if merge_equal else le + + # We use Python dict instead of astropy.table.Row objects, + # because on some versions modifying Row entries doesn't behave as expected + merged = [{"START": table[0]["START"], "STOP": table[0]["STOP"]}] + for row in table[1:]: + interval = {"START": row["START"], "STOP": row["STOP"]} + if compare(merged[-1]["STOP"], interval["START"]): + merged.append(interval) + else: + if not overlap_ok: + raise ValueError("Overlapping time bins") + + merged[-1]["STOP"] = max(interval["STOP"], merged[-1]["STOP"]) + + merged = Table(rows=merged, names=["START", "STOP"], meta=self.table.meta) + return self.__class__(merged, reference_time=self.time_ref)
+ + +
+[docs] + def group_table(self, time_intervals, atol="1e-6 s"): + """Compute the table with the info on the group to which belong each time interval. + + The t_start and t_stop are stored in MJD from a scale in "utc". + + Parameters + ---------- + time_intervals : list of `astropy.time.Time` + Start and stop time for each interval to compute the LC. + atol : `~astropy.units.Quantity` + Tolerance value for time comparison with different scale. Default is "1e-6 s". + + Returns + ------- + group_table : `~astropy.table.Table` + Contains the grouping info. + """ + atol = u.Quantity(atol) + + group_table = Table( + names=("group_idx", "time_min", "time_max", "bin_type"), + dtype=("i8", "f8", "f8", "S10"), + ) + time_intervals_lowedges = Time( + [time_interval[0] for time_interval in time_intervals] + ) + time_intervals_upedges = Time( + [time_interval[1] for time_interval in time_intervals] + ) + + for t_start, t_stop in zip(self.time_start, self.time_stop): + mask1 = t_start >= time_intervals_lowedges - atol + mask2 = t_stop <= time_intervals_upedges + atol + mask = mask1 & mask2 + if np.any(mask): + group_index = np.where(mask)[0] + bin_type = "" + else: + group_index = -1 + if np.any(mask1): + bin_type = "overflow" + elif np.any(mask2): + bin_type = "underflow" + else: + bin_type = "outflow" + group_table.add_row( + [group_index, t_start.utc.mjd, t_stop.utc.mjd, bin_type] + ) + + return group_table
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/hdu_index_table.html b/docs/dev/_modules/gammapy/data/hdu_index_table.html new file mode 100644 index 00000000000..d5d16ac60a9 --- /dev/null +++ b/docs/dev/_modules/gammapy/data/hdu_index_table.html @@ -0,0 +1,761 @@ + + + + + + + + + + gammapy.data.hdu_index_table — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.hdu_index_table

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+from astropy.table import Table
+from astropy.utils import lazyproperty
+from gammapy.utils.fits import HDULocation
+from gammapy.utils.scripts import make_path
+
+__all__ = ["HDUIndexTable"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class HDUIndexTable(Table): + """HDU index table. + + See :ref:`gadf:hdu-index`. + """ + + VALID_HDU_TYPE = [ + "events", + "gti", + "aeff", + "edisp", + "psf", + "bkg", + "rad_max", + "pointing", + ] + """Valid values for `HDU_TYPE`.""" + + VALID_HDU_CLASS = [ + "events", + "gti", + "aeff_2d", + "edisp_2d", + "psf_table", + "psf_3gauss", + "psf_king", + "bkg_2d", + "bkg_3d", + "rad_max_2d", + "pointing", + ] + """Valid values for `HDU_CLASS`.""" + +
+[docs] + @classmethod + def read(cls, filename, **kwargs): + """Read :ref:`gadf:hdu-index`. + + Parameters + ---------- + filename : `pathlib.Path` or str + Filename. + **kwargs : dict, optional + Keyword arguments passed to `~astropy.table.Table.read`. + """ + filename = make_path(filename) + table = super().read(filename, **kwargs) + table.meta["BASE_DIR"] = filename.parent.as_posix() + + # TODO: this is a workaround for the joint-crab validation with astropy>4.0. + # TODO: Remove when handling of empty columns is clarified + table["FILE_DIR"].fill_value = "" + + return table.filled()
+ + + @property + def base_dir(self): + """Base directory.""" + return make_path(self.meta.get("BASE_DIR", "")) + +
+[docs] + def hdu_location(self, obs_id, hdu_type=None, hdu_class=None, warn_missing=True): + """Create `HDULocation` for a given selection. + + Parameters + ---------- + obs_id : int + Observation ID. + hdu_type : str, optional + HDU type (see `~gammapy.data.HDUIndexTable.VALID_HDU_TYPE`). Default is None. + hdu_class : str, optional + HDU class (see `~gammapy.data.HDUIndexTable.VALID_HDU_CLASS`). Default is None. + warn_missing : bool, optional + Warn if no HDU is found matching the selection. Default is True. + + Returns + ------- + location : `~gammapy.data.HDULocation` + HDU location. + """ + self._validate_selection(obs_id=obs_id, hdu_type=hdu_type, hdu_class=hdu_class) + + idx = self.row_idx(obs_id=obs_id, hdu_type=hdu_type, hdu_class=hdu_class) + + if len(idx) == 1: + idx = idx[0] + elif len(idx) == 0: + if warn_missing: + log.warning( + f"No HDU found matching: OBS_ID = {obs_id}, HDU_TYPE = {hdu_type}," + " HDU_CLASS = {hdu_class}" + ) + return None + else: + idx = idx[0] + log.warning( + f"Found multiple HDU matching: OBS_ID = {obs_id}, HDU_TYPE = {hdu_type}," + " HDU_CLASS = {hdu_class}." + f" Returning the first entry, which has " + f"HDU_TYPE = {self[idx]['HDU_TYPE']} and HDU_CLASS = {self[idx]['HDU_CLASS']}" + ) + + return self.location_info(idx)
+ + + def _validate_selection(self, obs_id, hdu_type, hdu_class): + """Validate HDU selection. + + The goal is to give helpful error messages to the user. + """ + if hdu_type is None and hdu_class is None: + raise ValueError("You have to specify `hdu_type` or `hdu_class`.") + + if hdu_type and hdu_type not in self.VALID_HDU_TYPE: + valid = [str(_) for _ in self.VALID_HDU_TYPE] + raise ValueError(f"Invalid hdu_type: {hdu_type}. Valid values are: {valid}") + + if hdu_class and hdu_class not in self.VALID_HDU_CLASS: + valid = [str(_) for _ in self.VALID_HDU_CLASS] + raise ValueError( + f"Invalid hdu_class: {hdu_class}. Valid values are: {valid}" + ) + + if obs_id not in self["OBS_ID"]: + raise IndexError(f"No entry available with OBS_ID = {obs_id}") + +
+[docs] + def row_idx(self, obs_id, hdu_type=None, hdu_class=None): + """Table row indices for a given selection. + + Parameters + ---------- + obs_id : int + Observation ID. + hdu_type : str, optional + HDU type (see `~gammapy.data.HDUIndexTable.VALID_HDU_TYPE`). Default is None. + hdu_class : str, optional + HDU class (see `~gammapy.data.HDUIndexTable.VALID_HDU_CLASS`). Default is None. + + Returns + ------- + idx : list of int + List of row indices matching the selection. + """ + selection = self["OBS_ID"] == obs_id + + if hdu_class: + is_hdu_class = self._hdu_class_stripped == hdu_class + selection &= is_hdu_class + + if hdu_type: + is_hdu_type = self._hdu_type_stripped == hdu_type + selection &= is_hdu_type + + idx = np.where(selection)[0] + return list(idx)
+ + +
+[docs] + def location_info(self, idx): + """Create `HDULocation` for a given row index.""" + row = self[idx] + return HDULocation( + hdu_class=row["HDU_CLASS"].strip(), + base_dir=self.base_dir.as_posix(), + file_dir=row["FILE_DIR"].strip(), + file_name=row["FILE_NAME"].strip(), + hdu_name=row["HDU_NAME"].strip(), + )
+ + + @lazyproperty + def _hdu_class_stripped(self): + return np.array([_.strip() for _ in self["HDU_CLASS"]]) + + @lazyproperty + def _hdu_type_stripped(self): + return np.array([_.strip() for _ in self["HDU_TYPE"]]) + + @lazyproperty + def obs_id_unique(self): + """Observation IDs (unique).""" + return np.unique(np.sort(self["OBS_ID"])) + + @lazyproperty + def hdu_type_unique(self): + """HDU types (unique).""" + return list(np.unique(np.sort([_.strip() for _ in self["HDU_TYPE"]]))) + + @lazyproperty + def hdu_class_unique(self): + """HDU classes (unique).""" + return list(np.unique(np.sort([_.strip() for _ in self["HDU_CLASS"]]))) + +
+[docs] + def summary(self): + """Summary report as a string.""" + obs_id = self.obs_id_unique + return ( + "HDU index table:\n" + f"BASE_DIR: {self.base_dir}\n" + f"Rows: {len(self)}\n" + f"OBS_ID: {obs_id[0]} -- {obs_id[-1]}\n" + f"HDU_TYPE: {self.hdu_type_unique}\n" + f"HDU_CLASS: {self.hdu_class_unique}\n" + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/metadata.html b/docs/dev/_modules/gammapy/data/metadata.html new file mode 100644 index 00000000000..b8135cc260f --- /dev/null +++ b/docs/dev/_modules/gammapy/data/metadata.html @@ -0,0 +1,717 @@ + + + + + + + + + + gammapy.data.metadata — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.metadata

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+from typing import ClassVar, Literal, Optional
+from pydantic import Field
+from gammapy.utils.fits import earth_location_from_dict
+from gammapy.utils.metadata import (
+    METADATA_FITS_KEYS,
+    CreatorMetaData,
+    MetaData,
+    ObsInfoMetaData,
+    PointingInfoMetaData,
+    TargetMetaData,
+    TimeInfoMetaData,
+)
+from gammapy.utils.types import EarthLocationType, TimeType
+
+__all__ = ["ObservationMetaData", "GTIMetaData", "EventListMetaData"]
+
+OBSERVATION_METADATA_FITS_KEYS = {
+    "location": {
+        "input": lambda v: earth_location_from_dict(v),
+        "output": lambda v: {
+            "GEOLON": v.lon.deg,
+            "GEOLAT": v.lat.deg,
+            "ALTITUDE": v.height.to_value("m"),
+        },
+    },
+    "deadtime_fraction": {
+        "input": lambda v: 1 - v["DEADC"],
+        "output": lambda v: {"DEADC": 1 - v},
+    },
+}
+
+METADATA_FITS_KEYS["observation"] = OBSERVATION_METADATA_FITS_KEYS
+
+
+EVENTLIST_METADATA_FITS_KEYS = {
+    "event_class": "EV_CLASS",
+}
+
+METADATA_FITS_KEYS["eventlist"] = EVENTLIST_METADATA_FITS_KEYS
+
+
+
+[docs] +class ObservationMetaData(MetaData): + """Metadata containing information about the Observation. + + Parameters + ---------- + obs_info : `~gammapy.utils.ObsInfoMetaData` + The general observation information. + pointing : `~gammapy.utils.PointingInfoMetaData` + The pointing metadata. + target : `~gammapy.utils.TargetMetaData` + The target metadata. + creation : `~gammapy.utils.CreatorMetaData` + The creation metadata. + location : `~astropy.coordinates.EarthLocation` or str, optional + The observatory location. + deadtime_fraction : float + The observation deadtime fraction. Default is 0. + optional : dict, optional + Additional optional metadata. + """ + + _tag: ClassVar[Literal["observation"]] = "observation" + obs_info: Optional[ObsInfoMetaData] = None + pointing: Optional[PointingInfoMetaData] = None + target: Optional[TargetMetaData] = None + location: Optional[EarthLocationType] = None + deadtime_fraction: float = Field(0.0, ge=0, le=1.0) + time_info: Optional[TimeInfoMetaData] = None + creation: Optional[CreatorMetaData] = None + optional: Optional[dict] = None + +
+[docs] + @classmethod + def from_header(cls, header, format="gadf"): + """Create and fill the observation metadata from the event list metadata. + + Parameters + ---------- + header : dict + Input FITS header. + format : str + The header data format. Default is gadf. + """ + meta = super().from_header(header, format) + + meta.creation = CreatorMetaData() + # Include additional gadf keywords not specified as ObservationMetaData attributes + optional_keywords = [ + "OBSERVER", + "EV_CLASS", + "TELAPSE", + "TELLIST", + "N_TELS", + "TASSIGN", + "DST_VER", + "ANA_VER", + "CAL_VER", + "CONV_DEP", + "CONV_RA", + "CONV_DEC", + "TRGRATE", + "ZTRGRATE", + "MUONEFF", + "BROKPIX", + "AIRTEMP", + "PRESSURE", + "RELHUM", + "NSBLEVEL", + "CREATOR", + "HDUVERS", + ] + optional = dict() + for key in optional_keywords: + if key in header.keys(): + optional[key] = header[key] + meta.optional = optional + + return meta
+
+ + + +class GTIMetaData(MetaData): + """Metadata containing information about the GTI. + + Parameters + ---------- + reference_time : Time, str + The GTI reference time. + """ + + _tag: ClassVar[Literal["GTI"]] = "GTI" + reference_time: Optional[TimeType] = None + + def from_header(cls, header, format="gadf"): + meta = super().from_header(header, format) + + return meta + + +
+[docs] +class EventListMetaData(MetaData): + """ + Metadata containing information about the EventList. + + Parameters + ---------- + event_class : str + The event class metadata. + creation : `~gammapy.utils.metadata.CreatorMetaData` + The creation metadata. + """ + + _tag: ClassVar[Literal["EventList"]] = "eventlist" + event_class: Optional[str] = None + creation: Optional[CreatorMetaData] = None + optional: Optional[dict] = None + +
+[docs] + @classmethod + def from_header(cls, header, format="gadf"): + meta = super().from_header(header, format) + + # Include additional gadf keywords + optional_keywords = [ + "DST_VER", + "ANA_VER", + "CAL_VER", + ] + optional = dict() + for key in optional_keywords: + if key in header.keys(): + optional[key] = header[key] + meta.optional = optional + + return meta
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/obs_table.html b/docs/dev/_modules/gammapy/data/obs_table.html new file mode 100644 index 00000000000..3718960d2ea --- /dev/null +++ b/docs/dev/_modules/gammapy/data/obs_table.html @@ -0,0 +1,958 @@ + + + + + + + + + + gammapy.data.obs_table — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.obs_table

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+from collections import namedtuple
+import numpy as np
+from astropy.coordinates import Angle, SkyCoord
+from astropy.table import Table
+from astropy.units import Quantity, Unit
+from gammapy.utils.regions import SphericalCircleSkyRegion
+from gammapy.utils.scripts import make_path
+from gammapy.utils.testing import Checker
+from gammapy.utils.time import time_ref_from_dict
+
+__all__ = ["ObservationTable"]
+
+
+
+[docs] +class ObservationTable(Table): + """Observation table. + + Data format specification: :ref:`gadf:obs-index`. + """ + +
+[docs] + @classmethod + def read(cls, filename, **kwargs): + """Read an observation table from file. + + Parameters + ---------- + filename : `pathlib.Path` or str + Filename. + **kwargs : dict, optional + Keyword arguments passed to `~astropy.table.Table.read`. + """ + return super().read(make_path(filename), **kwargs)
+ + + @property + def pointing_radec(self): + """Pointing positions in ICRS as a `~astropy.coordinates.SkyCoord` object.""" + return SkyCoord(self["RA_PNT"], self["DEC_PNT"], unit="deg", frame="icrs") + + @property + def pointing_galactic(self): + """Pointing positions in Galactic coordinates as a `~astropy.coordinates.SkyCoord` object.""" + return SkyCoord( + self["GLON_PNT"], self["GLAT_PNT"], unit="deg", frame="galactic" + ) + + @property + def time_ref(self): + """Time reference as a `~astropy.time.Time` object.""" + return time_ref_from_dict(self.meta) + + @property + def time_start(self): + """Observation start time as a `~astropy.time.Time` object.""" + return self.time_ref + Quantity(self["TSTART"], "second") + + @property + def time_stop(self): + """Observation stop time as a `~astropy.time.Time` object.""" + return self.time_ref + Quantity(self["TSTOP"], "second") + +
+[docs] + def select_obs_id(self, obs_id): + """Get `~gammapy.data.ObservationTable` containing only ``obs_id``. + + Raises KeyError if observation is not available. + + Parameters + ---------- + obs_id : int or list of int + Observation ids. + """ + try: + self.indices["OBS_ID"] + except IndexError: + self.add_index("OBS_ID") + return self.__class__(self.loc["OBS_ID", obs_id])
+ + +
+[docs] + def summary(self): + """Summary information string.""" + obs_name = self.meta.get( + "OBSERVATORY_NAME", "N/A" + ) # This is not GADF compliant + if "N/A" in obs_name: + obs_name = self.meta.get( + "OBSERVATORY_NAME", self.meta.get("OBSERVER", "N/A") + ) + + return ( + f"Observation table:\n" + f"Observatory name: {obs_name!r}\n" + f"Number of observations: {len(self)}\n" + )
+ + +
+[docs] + def select_range(self, selection_variable, value_range, inverted=False): + """Make an observation table, applying some selection. + + Generic function to apply a 1D box selection (min, max) to a + table on any variable that is in the observation table and can + be cast into a `~astropy.units.Quantity` object. + + If the range length is 0 (min = max), the selection is applied + to the exact value indicated by the min value. This is useful + for selection of exact values, for instance in discrete + variables like the number of telescopes. + + If the inverted flag is activated, the selection is applied to + keep all elements outside the selected range. + + Parameters + ---------- + selection_variable : str + Name of variable to apply a cut (it should exist on the table). + value_range : `~astropy.units.Quantity`-like + Allowed range of values (min, max). The type should be + consistent with the selection_variable. + inverted : bool, optional + Invert selection: keep all entries outside the (min, max) range. + Default is False. + + Returns + ------- + obs_table : `~gammapy.data.ObservationTable` + Observation table after selection. + """ + value_range = Quantity(value_range) + + # read values into a quantity in case units have to be taken into account + value = Quantity(self[selection_variable]) + + mask = (value_range[0] <= value) & (value < value_range[1]) + + if np.allclose(value_range[0].value, value_range[1].value): + mask = value_range[0] == value + + if inverted: + mask = np.invert(mask) + + return self[mask]
+ + +
+[docs] + def select_time_range(self, time_range, partial_overlap=False, inverted=False): + """Make an observation table, applying a time selection. + + Apply a 1D box selection (min, max) to a + table on any time variable that is in the observation table. + It supports absolute times in `~astropy.time.Time` format. + + If the inverted flag is activated, the selection is applied to + keep all elements outside the selected range. + + Parameters + ---------- + time_range : `~astropy.time.Time` + Allowed time range (min, max). + partial_overlap : bool, optional + Include partially overlapping observations. Default is False. + inverted : bool, optional + Invert selection: keep all entries outside the (min, max) range. + Default is False. + + Returns + ------- + obs_table : `~gammapy.data.ObservationTable` + Observation table after selection. + """ + tstart = self.time_start + tstop = self.time_stop + + if not partial_overlap: + mask1 = time_range[0] <= tstart + mask2 = time_range[1] >= tstop + else: + mask1 = time_range[0] <= tstop + mask2 = time_range[1] >= tstart + + mask = mask1 & mask2 + + if inverted: + mask = np.invert(mask) + + return self[mask]
+ + +
+[docs] + def select_sky_circle(self, center, radius, inverted=False): + """Make an observation table, applying a cone selection. + + Apply a selection based on the separation between the cone center + and the observation pointing stored in the table. + + If the inverted flag is activated, the selection is applied to + keep all elements outside the selected range. + + Parameters + ---------- + center : `~astropy.coordinates.SkyCoord` + Cone center coordinate. + radius : `~astropy.coordinates.Angle` + Cone opening angle. The maximal separation allowed between the center + and the observation pointing direction. + inverted : bool, optional + Invert selection: keep all entries outside the cone. Default is False. + + Returns + ------- + obs_table : `~gammapy.data.ObservationTable` + Observation table after selection. + """ + region = SphericalCircleSkyRegion(center=center, radius=radius) + mask = region.contains(self.pointing_radec) + if inverted: + mask = np.invert(mask) + return self[mask]
+ + +
+[docs] + def select_observations(self, selections=None): + """Select subset of observations from a list of selection criteria. + + Returns a new observation table representing the subset. + + There are 3 main kinds of selection criteria, according to the + value of the **type** keyword in the **selection** dictionary: + + - circular region + + - time intervals (min, max) + + - intervals (min, max) on any other parameter present in the + observation table, that can be cast into an + `~astropy.units.Quantity` object + + Allowed selection criteria are interpreted using the following + keywords in the **selection** dictionary under the **type** key. + + - ``sky_circle`` is a circular region centered in the coordinate + marked by the **lon** and **lat** keywords, and radius **radius** + + - ``time_box`` is a 1D selection criterion acting on the observation + start time (**TSTART**); the interval is set via the + **time_range** keyword; uses + `~gammapy.data.ObservationTable.select_time_range` + + - ``par_box`` is a 1D selection criterion acting on any + parameter defined in the observation table that can be casted + into an `~astropy.units.Quantity` object; the parameter name + and interval can be specified using the keywords **variable** and + **value_range** respectively; min = max selects exact + values of the parameter; uses + `~gammapy.data.ObservationTable.select_range` + + In all cases, the selection can be inverted by activating the + **inverted** flag, in which case, the selection is applied to keep all + elements outside the selected range. + + A few examples of selection criteria are given below. + + Parameters + ---------- + selections : list of dict, optional + Dictionary of selection criteria. Default is None. + + Returns + ------- + obs_table : `~gammapy.data.ObservationTable` + Observation table after selection. + + Examples + -------- + >>> from gammapy.data import ObservationTable + >>> obs_table = ObservationTable.read('$GAMMAPY_DATA/hess-dl3-dr1/obs-index.fits.gz') + >>> from astropy.coordinates import Angle + >>> selection = dict(type='sky_circle', frame='galactic', + ... lon=Angle(0, 'deg'), + ... lat=Angle(0, 'deg'), + ... radius=Angle(5, 'deg'), + ... border=Angle(2, 'deg')) + >>> selected_obs_table = obs_table.select_observations(selection) + + >>> from astropy.time import Time + >>> time_range = Time(['2012-01-01T01:00:00', '2012-01-01T02:00:00']) + >>> selection = dict(type='time_box', time_range=time_range) + >>> selected_obs_table = obs_table.select_observations(selection) + + >>> value_range = Angle([60., 70.], 'deg') + >>> selection = dict(type='par_box', variable='ALT_PNT', value_range=value_range) + >>> selected_obs_table = obs_table.select_observations(selection) + + >>> selection = dict(type='par_box', variable='OBS_ID', value_range=[2, 5]) + >>> selected_obs_table = obs_table.select_observations(selection) + + >>> selection = dict(type='par_box', variable='N_TELS', value_range=[4, 4]) + >>> selected_obs_table = obs_table.select_observations(selection) + """ + if isinstance(selections, dict): + selections = [selections] + + obs_table = self + for selection in selections: + obs_table = obs_table._apply_simple_selection(selection) + + return obs_table
+ + + def _apply_simple_selection(self, selection): + """Select subset of observations from a single selection criterion.""" + selection = selection.copy() + type = selection.pop("type") + if type == "sky_circle": + lon = Angle(selection.pop("lon"), "deg") + lat = Angle(selection.pop("lat"), "deg") + radius = Angle(selection.pop("radius"), "deg") + radius += Angle(selection.pop("border", 0), "deg") + center = SkyCoord(lon, lat, frame=selection.pop("frame")) + return self.select_sky_circle(center, radius, **selection) + elif type == "time_box": + time_range = selection.pop("time_range") + return self.select_time_range(time_range, **selection) + elif type == "par_box": + variable = selection.pop("variable") + return self.select_range(variable, **selection) + else: + raise ValueError(f"Invalid selection type: {type}")
+ + + +class ObservationTableChecker(Checker): + """Event list checker. + + Data format specification: ref:`gadf:iact-events`. + + Parameters + ---------- + obs_table : `~gammapy.data.ObservationTable` + Observation table. + """ + + CHECKS = { + "meta": "check_meta", + "columns": "check_columns", + # "times": "check_times", + # "coordinates_galactic": "check_coordinates_galactic", + # "coordinates_altaz": "check_coordinates_altaz", + } + + # accuracy = {"angle": Angle("1 arcsec"), "time": Quantity(1, "microsecond")} + + # https://gamma-astro-data-formats.readthedocs.io/en/latest/events/events.html#mandatory-header-keywords + meta_required = [ + "HDUCLASS", + "HDUDOC", + "HDUVERS", + "HDUCLAS1", + "HDUCLAS2", + # https://gamma-astro-data-formats.readthedocs.io/en/latest/general/time.html#time-formats + "MJDREFI", + "MJDREFF", + "TIMEUNIT", + "TIMESYS", + "TIMEREF", + # https://gamma-astro-data-formats.readthedocs.io/en/latest/general/coordinates.html#coords-location + "GEOLON", + "GEOLAT", + "ALTITUDE", + ] + + _col = namedtuple("col", ["name", "unit"]) + columns_required = [ + _col(name="OBS_ID", unit=""), + _col(name="RA_PNT", unit="deg"), + _col(name="DEC_PNT", unit="deg"), + _col(name="TSTART", unit="s"), + _col(name="TSTOP", unit="s"), + ] + + def __init__(self, obs_table): + self.obs_table = obs_table + + @staticmethod + def _record(level="info", msg=None): + return {"level": level, "hdu": "obs-index", "msg": msg} + + def check_meta(self): + m = self.obs_table.meta + + meta_missing = sorted(set(self.meta_required) - set(m)) + if meta_missing: + yield self._record( + level="error", msg=f"Missing meta keys: {meta_missing!r}" + ) + + if m.get("HDUCLAS1", "") != "INDEX": + yield self._record(level="error", msg="HDUCLAS1 must be INDEX") + if m.get("HDUCLAS2", "") != "OBS": + yield self._record(level="error", msg="HDUCLAS2 must be OBS") + + def check_columns(self): + t = self.obs_table + + if len(t) == 0: + yield self._record(level="error", msg="Observation table has zero rows") + + for name, unit in self.columns_required: + if name not in t.colnames: + yield self._record(level="error", msg=f"Missing table column: {name!r}") + else: + if Unit(unit) != (t[name].unit or ""): + yield self._record( + level="error", msg=f"Invalid unit for column: {name!r}" + ) +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/observations.html b/docs/dev/_modules/gammapy/data/observations.html new file mode 100644 index 00000000000..02652a3ba46 --- /dev/null +++ b/docs/dev/_modules/gammapy/data/observations.html @@ -0,0 +1,1495 @@ + + + + + + + + + + gammapy.data.observations — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.observations

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import collections.abc
+import copy
+import html
+import inspect
+import itertools
+import logging
+import warnings
+from itertools import zip_longest
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import SkyCoord
+from astropy.io import fits
+from astropy.time import Time
+from astropy.units import Quantity
+from astropy.utils import lazyproperty
+import matplotlib.pyplot as plt
+from gammapy.utils.deprecation import GammapyDeprecationWarning
+from gammapy.utils.fits import LazyFitsData, earth_location_to_dict
+from gammapy.utils.metadata import CreatorMetaData, TargetMetaData, TimeInfoMetaData
+from gammapy.utils.scripts import make_path
+from gammapy.utils.testing import Checker
+from gammapy.utils.time import time_ref_to_dict, time_relative_to_ref
+from .event_list import EventList, EventListChecker
+from .filters import ObservationFilter
+from .gti import GTI
+from .metadata import ObservationMetaData
+from .pointing import FixedPointingInfo
+
+__all__ = ["Observation", "Observations"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class Observation: + """In-memory observation. + + Parameters + ---------- + obs_id : int, optional + Observation id. Default is None + aeff : `~gammapy.irf.EffectiveAreaTable2D`, optional + Effective area. Default is None. + edisp : `~gammapy.irf.EnergyDispersion2D`, optional + Energy dispersion. Default is None. + psf : `~gammapy.irf.PSF3D`, optional + Point spread function. Default is None. + bkg : `~gammapy.irf.Background3D`, optional + Background rate model. Default is None. + rad_max : `~gammapy.irf.RadMax2D`, optional + Only for point-like IRFs: RAD_MAX table (energy dependent RAD_MAX) + For a fixed RAD_MAX, create a RadMax2D with a single bin. Default is None. + gti : `~gammapy.data.GTI`, optional + Table with GTI start and stop time. Default is None. + events : `~gammapy.data.EventList`, optional + Event list. Default is None. + obs_filter : `ObservationFilter`, optional + Observation filter. Default is None. + pointing : `~gammapy.data.FixedPointingInfo`, optional + Pointing information. Default is None. + location : `~astropy.coordinates.EarthLocation`, optional + Earth location of the observatory. Default is None. + """ + + aeff = LazyFitsData(cache=False) + edisp = LazyFitsData(cache=False) + psf = LazyFitsData(cache=False) + _bkg = LazyFitsData(cache=False) + _rad_max = LazyFitsData(cache=True) + _events = LazyFitsData(cache=False) + _gti = LazyFitsData(cache=True) + _pointing = LazyFitsData(cache=True) + + def __init__( + self, + obs_id=None, + meta=None, + gti=None, + aeff=None, + edisp=None, + psf=None, + bkg=None, + rad_max=None, + events=None, + obs_filter=None, + pointing=None, + location=None, + ): + self.obs_id = obs_id + self.aeff = aeff + self.edisp = edisp + self.psf = psf + self._bkg = bkg + self._rad_max = rad_max + self._gti = gti + self._events = events + self._pointing = pointing + self._location = location # this is part of the meta or is it data? + self.obs_filter = obs_filter or ObservationFilter() + self._meta = meta + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def bkg(self): + """Background of the observation.""" + from gammapy.irf import FoVAlignment + + bkg = self._bkg + # used for backward compatibility of old HESS data + try: + if ( + bkg + and self._meta + and self._meta.optional + and self._meta.optional["CREATOR"] == "SASH FITS::EventListWriter" + and self._meta.optional["HDUVERS"] == "0.2" + ): + bkg._fov_alignment = FoVAlignment.REVERSE_LON_RADEC + except KeyError: + pass + return bkg + + @bkg.setter + def bkg(self, value): + self._bkg = value + + @property + def meta(self): + """Return metadata container.""" + if self._meta is None and self.events: + self._meta = ObservationMetaData.from_header(self.events.table.meta) + return self._meta + + @property + def rad_max(self): + """Rad max IRF. None if not available.""" + # prevent circular import + from gammapy.irf import RadMax2D + + if self._rad_max is not None: + return self._rad_max + + # load once to avoid trigger lazy loading it three times + aeff = self.aeff + if aeff is not None and aeff.is_pointlike: + self._rad_max = RadMax2D.from_irf(aeff) + return self._rad_max + + edisp = self.edisp + if edisp is not None and edisp.is_pointlike: + self._rad_max = RadMax2D.from_irf(self.edisp) + + return self._rad_max + + @property + def available_hdus(self): + """Which HDUs are available.""" + available_hdus = [] + keys = ["_events", "_gti", "aeff", "edisp", "psf", "_bkg", "_rad_max"] + hdus = ["events", "gti", "aeff", "edisp", "psf", "bkg", "rad_max"] + for key, hdu in zip(keys, hdus): + available = self.__dict__.get(key, False) + available_hdu = self.__dict__.get(f"_{hdu}_hdu", False) + available_hdu_ = self.__dict__.get(f"_{key}_hdu", False) + if available or available_hdu or available_hdu_: + available_hdus.append(hdu) + return available_hdus + + @property + def available_irfs(self): + """Which IRFs are available.""" + return [_ for _ in self.available_hdus if _ not in ["events", "gti"]] + + @property + def events(self): + """Event list of the observation as an `~gammapy.data.EventList`.""" + events = self.obs_filter.filter_events(self._events) + return events + + @events.setter + def events(self, value): + if not isinstance(value, EventList): + raise TypeError(f"events must be an EventList instance, got: {type(value)}") + self._events = value + + @property + def gti(self): + """GTI of the observation as a `~gammapy.data.GTI`.""" + gti = self.obs_filter.filter_gti(self._gti) + return gti + + @staticmethod + def _get_obs_info( + pointing, deadtime_fraction, time_start, time_stop, reference_time, location + ): + """Create observation information dictionary from in memory data.""" + obs_info = { + "DEADC": 1 - deadtime_fraction, + } + if isinstance(pointing, SkyCoord): + obs_info["RA_PNT"] = pointing.icrs.ra.deg + obs_info["DEC_PNT"] = pointing.icrs.dec.deg + + obs_info.update(time_ref_to_dict(reference_time)) + obs_info["TSTART"] = time_relative_to_ref(time_start, obs_info).to_value(u.s) + obs_info["TSTOP"] = time_relative_to_ref(time_stop, obs_info).to_value(u.s) + + if location is not None: + obs_info.update(earth_location_to_dict(location)) + + return obs_info + +
+[docs] + @classmethod + def create( + cls, + pointing, + location=None, + obs_id=0, + livetime=None, + tstart=None, + tstop=None, + irfs=None, + deadtime_fraction=0.0, + reference_time=Time("2000-01-01 00:00:00"), + ): + """Create an observation. + + User must either provide the livetime, or the start and stop times. + + Parameters + ---------- + pointing : `~gammapy.data.FixedPointingInfo` or `~astropy.coordinates.SkyCoord` + Pointing information. + location : `~astropy.coordinates.EarthLocation`, optional + Earth location of the observatory. Default is None. + obs_id : int, optional + Observation ID as identifier. Default is 0. + livetime : ~astropy.units.Quantity`, optional + Livetime exposure of the simulated observation. Default is None. + tstart : `~astropy.time.Time` or `~astropy.units.Quantity`, optional + Start time of observation as `~astropy.time.Time` or duration + relative to `reference_time`. Default is None. + tstop : `astropy.time.Time` or `~astropy.units.Quantity`, optional + Stop time of observation as `~astropy.time.Time` or duration + relative to `reference_time`. Default is None. + irfs : dict, optional + IRFs used for simulating the observation: `bkg`, `aeff`, `psf`, `edisp`, `rad_max`. Default is None. + deadtime_fraction : float, optional + Deadtime fraction. Default is 0. + reference_time : `~astropy.time.Time`, optional + the reference time to use in GTI definition. Default is `~astropy.time.Time("2000-01-01 00:00:00")`. + + Returns + ------- + obs : `gammapy.data.MemoryObservation` + Observation. + """ + if tstart is None: + tstart = reference_time.copy() + + if tstop is None: + tstop = tstart + Quantity(livetime) + + gti = GTI.create(tstart, tstop, reference_time=reference_time) + obs_info = cls._get_obs_info( + pointing=pointing, + deadtime_fraction=deadtime_fraction, + time_start=gti.time_start[0], + time_stop=gti.time_stop[0], + reference_time=reference_time, + location=location, + ) + + time_info = TimeInfoMetaData( + time_start=gti.time_start[0], + time_stop=gti.time_stop[-1], + reference_time=reference_time, + ) + + meta = ObservationMetaData( + deadtime_fraction=deadtime_fraction, + location=location, + time_info=time_info, + creation=CreatorMetaData(), + target=TargetMetaData(), + ) + + if not isinstance(pointing, FixedPointingInfo): + warnings.warn( + "Pointing will be required to be provided as FixedPointingInfo", + GammapyDeprecationWarning, + ) + pointing = FixedPointingInfo.from_fits_header(obs_info) + + return cls( + obs_id=obs_id, + meta=meta, + gti=gti, + aeff=irfs.get("aeff"), + bkg=irfs.get("bkg"), + edisp=irfs.get("edisp"), + psf=irfs.get("psf"), + rad_max=irfs.get("rad_max"), + pointing=pointing, + location=location, + )
+ + + @property + def tstart(self): + """Observation start time as a `~astropy.time.Time` object.""" + return self.gti.time_start[0] + + @property + def tstop(self): + """Observation stop time as a `~astropy.time.Time` object.""" + return self.gti.time_stop[0] + + @property + def tmid(self): + """Midpoint between start and stop time as a `~astropy.time.Time` object.""" + return self.tstart + 0.5 * (self.tstop - self.tstart) + + @property + def observation_time_duration(self): + """Observation time duration in seconds as a `~astropy.units.Quantity`. + + The wall time, including dead-time. + """ + return self.gti.time_sum + + @property + def observation_live_time_duration(self): + """Live-time duration in seconds as a `~astropy.units.Quantity`. + + The dead-time-corrected observation time. + + Computed as ``t_live = t_observation * (1 - f_dead)`` + where ``f_dead`` is the dead-time fraction. + """ + return ( + self.observation_time_duration + * (1 - self.observation_dead_time_fraction) + * self.obs_filter.livetime_fraction + ) + + @property + def observation_dead_time_fraction(self): + """Dead-time fraction (float). + + Defined as dead-time over observation time. + + Dead-time is defined as the time during the observation + where the detector didn't record events: + https://en.wikipedia.org/wiki/Dead_time + https://ui.adsabs.harvard.edu/abs/2004APh....22..285F + + The dead-time fraction is used in the live-time computation, + which in turn is used in the exposure and flux computation. + """ + return self.meta.deadtime_fraction + + @property + def pointing(self): + """Get the pointing for the observation as a `~gammapy.data.FixedPointingInfo` object.""" + if self._pointing is None: + self._pointing = FixedPointingInfo.from_fits_header(self.events.table.meta) + return self._pointing + +
+[docs] + def get_pointing_altaz(self, time): + """Get the pointing in alt-az for given time.""" + return self.pointing.get_altaz(time, self.observatory_earth_location)
+ + +
+[docs] + def get_pointing_icrs(self, time): + """Get the pointing in ICRS for given time.""" + return self.pointing.get_icrs(time, self.observatory_earth_location)
+ + + @property + def observatory_earth_location(self): + """Observatory location as an `~astropy.coordinates.EarthLocation` object.""" + if self._location is None: + return self.meta.location + return self._location + + @lazyproperty + def target_radec(self): + """Target RA / DEC sky coordinates as a `~astropy.coordinates.SkyCoord` object.""" + return self.meta.target.position + + def __str__(self): + pointing = self.get_pointing_icrs(self.tmid) + ra = pointing.ra.deg + dec = pointing.dec.deg + + pointing = f"{ra:.1f} deg, {dec:.1f} deg\n" + # TODO: Which target was observed? + # TODO: print info about available HDUs for this observation ... + return ( + f"{self.__class__.__name__}\n\n" + f"\tobs id : {self.obs_id} \n " + f"\ttstart : {self.tstart.mjd:.2f}\n" + f"\ttstop : {self.tstop.mjd:.2f}\n" + f"\tduration : {self.observation_time_duration:.2f}\n" + f"\tpointing (icrs) : {pointing}\n" + f"\tdeadtime fraction : {self.observation_dead_time_fraction:.1%}\n" + ) + +
+[docs] + def check(self, checks="all"): + """Run checks. + + This is a generator that yields a list of dictionary. + """ + checker = ObservationChecker(self) + return checker.run(checks=checks)
+ + +
+[docs] + def peek(self, figsize=(15, 10)): + """Quick-look plots in a few panels. + + Parameters + ---------- + figsize : tuple, optional + Figure size. Default is (15, 10). + """ + plottable_hds = ["events", "aeff", "psf", "edisp", "bkg", "rad_max"] + + plot_hdus = list(set(plottable_hds) & set(self.available_hdus)) + plot_hdus.sort() + + n_irfs = len(plot_hdus) + nrows = n_irfs // 2 + ncols = 2 + n_irfs % 2 + + fig, axes = plt.subplots( + nrows=nrows, + ncols=ncols, + figsize=figsize, + gridspec_kw={"wspace": 0.3, "hspace": 0.3}, + ) + + for idx, (ax, name) in enumerate(zip_longest(axes.flat, plot_hdus)): + if name == "aeff": + self.aeff.plot(ax=ax) + ax.set_title("Effective area") + + if name == "bkg": + bkg = self.bkg + if not bkg.has_offset_axis: + bkg = bkg.to_2d() + bkg.plot(ax=ax) + ax.set_title("Background rate") + + if name == "psf": + self.psf.plot_containment_radius_vs_energy(ax=ax) + ax.set_title("Point spread function") + + if name == "edisp": + self.edisp.plot_bias(ax=ax, add_cbar=True) + ax.set_title("Energy dispersion") + + if name == "rad_max": + self.rad_max.plot_rad_max_vs_energy(ax=ax) + ax.set_title("Rad max") + + if name == "events": + m = self.events._counts_image(allsky=False) + ax.remove() + ax = fig.add_subplot(nrows, ncols, idx + 1, projection=m.geom.wcs) + m.plot(ax=ax, stretch="sqrt", vmin=0, add_cbar=True) + ax.set_title("Events") + + if name is None: + ax.set_visible(False)
+ + +
+[docs] + def select_time(self, time_interval): + """Select a time interval of the observation. + + Parameters + ---------- + time_interval : `astropy.time.Time` + Start and stop time of the selected time interval. + For now, we only support a single time interval. + + Returns + ------- + new_obs : `~gammapy.data.Observation` + A new observation instance of the specified time interval. + """ + new_obs_filter = self.obs_filter.copy() + new_obs_filter.time_filter = time_interval + obs = copy.deepcopy(self) + obs.obs_filter = new_obs_filter + return obs
+ + +
+[docs] + @classmethod + def read(cls, event_file, irf_file=None, checksum=False): + """Create an Observation from a Event List and an (optional) IRF file. + + Parameters + ---------- + event_file : str or `~pathlib.Path` + Path to the FITS file containing the event list and the GTI. + irf_file : str or `~pathlib.Path`, optional + Path to the FITS file containing the IRF components. Default is None. + If None, the IRFs will be read from the event file. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + observation : `~gammapy.data.Observation` + Observation with the events and the IRF read from the file. + """ + from gammapy.irf.io import load_irf_dict_from_file + + events = EventList.read(event_file, checksum=checksum) + + gti = GTI.read(event_file, checksum=checksum) + + irf_file = irf_file if irf_file is not None else event_file + irf_dict = load_irf_dict_from_file(irf_file) + + obs_info = events.table.meta + + meta = ObservationMetaData.from_header(obs_info) + return cls( + events=events, + gti=gti, + obs_id=meta.obs_info.obs_id, + pointing=FixedPointingInfo.from_fits_header(obs_info), + meta=meta, + location=meta.location, + **irf_dict, + )
+ + +
+[docs] + def write( + self, path, overwrite=False, format="gadf", include_irfs=True, checksum=False + ): + """ + Write this observation into `~pathlib.Path` using the specified format. + + Parameters + ---------- + path : str or `~pathlib.Path` + Path for the output file. + overwrite : bool, optional + Overwrite existing file. Default is False. + format : {"gadf"} + Output format, currently only "gadf" is supported. Default is "gadf". + include_irfs : bool, optional + Whether to include irf components in the output file. Default is True. + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + if format != "gadf": + raise ValueError(f'Only the "gadf" format is supported, got {format}') + + path = make_path(path) + + primary = fits.PrimaryHDU() + + primary.header.update(self.meta.creation.to_header(format)) + + hdul = fits.HDUList([primary]) + + events = self.events + if events is not None: + events_hdu = events.to_table_hdu(format=format) + events_hdu.header.update( + self.pointing.to_fits_header(time_ref=events.time_ref) + ) + hdul.append(events_hdu) + + gti = self.gti + if gti is not None: + hdul.append(gti.to_table_hdu(format=format)) + + if include_irfs: + for irf_name in self.available_irfs: + irf = getattr(self, irf_name) + if irf is not None: + hdul.append(irf.to_table_hdu(format="gadf-dl3")) + + hdul.writeto(path, overwrite=overwrite, checksum=checksum)
+ + +
+[docs] + def copy(self, in_memory=False, **kwargs): + """Copy observation. + + Overwriting `Observation` arguments requires the ``in_memory`` argument to be true. + + Parameters + ---------- + in_memory : bool, optional + Copy observation in memory. Default is False. + **kwargs : dict, optional + Keyword arguments passed to `Observation`. + + Examples + -------- + >>> from gammapy.data import Observation + >>> obs = Observation.read("$GAMMAPY_DATA/hess-dl3-dr1/data/hess_dl3_dr1_obs_id_020136.fits.gz") + >>> obs_copy = obs.copy(in_memory=True, obs_id=1234) + >>> print(obs_copy) # doctest: +SKIP + + Returns + ------- + obs : `Observation` + Copied observation. + """ + if in_memory: + argnames = inspect.getfullargspec(self.__init__).args + # TODO: remove once obs_info is removed from the list of arguments in __init__ + argnames.remove("self") + + for name in argnames: + if name == "location": + attr = "observatory_earth_location" + else: + attr = name + value = getattr(self, attr) + kwargs.setdefault(name, copy.deepcopy(value)) + return self.__class__(**kwargs) + + if kwargs: + raise ValueError("Overwriting arguments requires to set 'in_memory=True'") + + return copy.deepcopy(self)
+
+ + + +
+[docs] +class Observations(collections.abc.MutableSequence): + """Container class that holds a list of observations. + + Parameters + ---------- + observations : list + A list of `~gammapy.data.Observation`. + """ + + def __init__(self, observations=None): + self._observations = [] + + if observations is None: + observations = [] + + for obs in observations: + self.append(obs) + + def __getitem__(self, item): + if isinstance(item, (list, np.ndarray)) and all( + isinstance(x, str) for x in item + ): + return self.__class__([self._observations[self.index(_)] for _ in item]) + elif isinstance(item, (slice, list, np.ndarray)): + return self.__class__(list(np.array(self._observations)[item])) + else: + return self._observations[self.index(item)] + + def __delitem__(self, key): + del self._observations[self.index(key)] + + def __setitem__(self, key, obs): + if isinstance(obs, Observation): + if obs in self: + log.warning( + f"Observation with obs_id {obs.obs_id} already belongs to Observations." + ) + self._observations[self.index(key)] = obs + else: + raise TypeError(f"Invalid type: {type(obs)!r}") + +
+[docs] + def insert(self, idx, obs): + if isinstance(obs, Observation): + if obs in self: + log.warning( + f"Observation with obs_id {obs.obs_id} already belongs to Observations." + ) + self._observations.insert(idx, obs) + else: + raise TypeError(f"Invalid type: {type(obs)!r}")
+ + + def __len__(self): + return len(self._observations) + + def __str__(self): + s = self.__class__.__name__ + "\n" + s += "Number of observations: {}\n".format(len(self)) + for obs in self: + s += str(obs) + return s + +
+[docs] + def index(self, key): + if isinstance(key, (int, slice)): + return key + elif isinstance(key, str): + return self.ids.index(key) + elif isinstance(key, Observation): + return self._observations.index(key) + else: + raise TypeError(f"Invalid type: {type(key)!r}")
+ + + @property + def ids(self): + """List of observation IDs (`list`).""" + return [str(obs.obs_id) for obs in self] + +
+[docs] + def select_time(self, time_intervals): + """Select a time interval of the observations. + + Parameters + ---------- + time_intervals : `astropy.time.Time` or list of `astropy.time.Time` + List of start and stop time of the time intervals or one time interval. + + Returns + ------- + new_observations : `~gammapy.data.Observations` + A new Observations instance of the specified time intervals. + """ + new_obs_list = [] + if isinstance(time_intervals, Time): + time_intervals = [time_intervals] + + for time_interval in time_intervals: + for obs in self: + if (obs.tstart < time_interval[1]) & (obs.tstop > time_interval[0]): + new_obs = obs.select_time(time_interval) + new_obs_list.append(new_obs) + + return self.__class__(new_obs_list)
+ + + def _ipython_key_completions_(self): + return self.ids + +
+[docs] + def group_by_label(self, labels): + """Split observations in multiple groups of observations. + + Parameters + ---------- + labels : list or `numpy.ndarray` + Array of group labels. + + Returns + ------- + obs_clusters : dict of `~gammapy.data.Observations` + Dictionary of Observations instance, one instance for each group. + """ + obs_groups = {} + for label in np.unique(labels): + observations = self.__class__( + [obs for k, obs in enumerate(self) if labels[k] == label] + ) + obs_groups[f"group_{label}"] = observations + return obs_groups
+ + +
+[docs] + @classmethod + def from_stack(cls, observations_list): + # TODO : Do more check when stacking observations when we have metadata. + """Create a new `Observations` instance by concatenating a list of `Observations` objects. + + Parameters + ---------- + observations_list : list of `~gammapy.data.Observations` + The list of `Observations` to stack. + + Returns + ------- + observations : `~gammapy.data.Observations` + The `Observations` object resulting from stacking all the `Observations` in `observation_list`. + """ + obs = itertools.chain(*observations_list) + return cls(list(obs))
+ + +
+[docs] + def in_memory_generator(self): + """A generator that iterates over observation. Yield an in memory copy of the observation.""" + for obs in self: + obs_copy = obs.copy(in_memory=True) + yield obs_copy
+
+ + + +class ObservationChecker(Checker): + """Check an observation. + + Checks data format and a bit about the content. + """ + + CHECKS = { + "events": "check_events", + "gti": "check_gti", + "aeff": "check_aeff", + "edisp": "check_edisp", + "psf": "check_psf", + } + + def __init__(self, observation): + self.observation = observation + + def _record(self, level="info", msg=None): + return {"level": level, "obs_id": self.observation.obs_id, "msg": msg} + + def check_events(self): + yield self._record(level="debug", msg="Starting events check") + + try: + events = self.observation.events + except Exception: + yield self._record(level="warning", msg="Loading events failed") + return + + yield from EventListChecker(events).run() + + # TODO: split this out into a GTIChecker + def check_gti(self): + yield self._record(level="debug", msg="Starting gti check") + + try: + gti = self.observation.gti + except Exception: + yield self._record(level="warning", msg="Loading GTI failed") + return + + if len(gti.table) == 0: + yield self._record(level="error", msg="GTI table has zero rows") + + columns_required = ["START", "STOP"] + for name in columns_required: + if name not in gti.table.colnames: + yield self._record(level="error", msg=f"Missing table column: {name!r}") + + # TODO: Check that header keywords agree with table entries + # TSTART, TSTOP, MJDREFI, MJDREFF + + # Check that START and STOP times are consecutive + # times = np.ravel(self.table['START'], self.table['STOP']) + # # TODO: not sure this is correct ... add test with a multi-gti table from Fermi. + # if not np.all(np.diff(times) >= 0): + # yield 'GTIs are not consecutive or sorted.' + + # TODO: add reference times for all instruments and check for this + # Use TELESCOP header key to check which instrument it is. + def _check_times(self): + """Check if various times are consistent. + + The headers and tables of the FITS EVENTS and GTI extension + contain various observation and event time information. + """ + # http://fermi.gsfc.nasa.gov/ssc/data/analysis/documentation/Cicerone/Cicerone_Data/Time_in_ScienceTools.html + # https://hess-confluence.desy.de/confluence/display/HESS/HESS+FITS+data+-+References+and+checks#HESSFITSdata-Referencesandchecks-Time + telescope_met_refs = { + "FERMI": Time("2001-01-01T00:00:00"), + "HESS": Time("2001-01-01T00:00:00"), + } + + meta = self.dset.event_list.table.meta + telescope = meta["TELESCOP"] + + if telescope in telescope_met_refs.keys(): + dt = self.time_ref - telescope_met_refs[telescope] + if dt > self.accuracy["time"]: + yield self._record( + level="error", msg="Reference time incorrect for telescope" + ) + + def check_aeff(self): + yield self._record(level="debug", msg="Starting aeff check") + + try: + aeff = self.observation.aeff + except Exception: + yield self._record(level="warning", msg="Loading aeff failed") + return + + # Check that thresholds are meaningful for aeff + if ( + "LO_THRES" in aeff.meta + and "HI_THRES" in aeff.meta + and aeff.meta["LO_THRES"] >= aeff.meta["HI_THRES"] + ): + yield self._record( + level="error", msg="LO_THRES >= HI_THRES in effective area meta data" + ) + + # Check that data isn't all null + if np.max(aeff.data.data) <= 0: + yield self._record( + level="error", msg="maximum entry of effective area is <= 0" + ) + + def check_edisp(self): + yield self._record(level="debug", msg="Starting edisp check") + + try: + edisp = self.observation.edisp + except Exception: + yield self._record(level="warning", msg="Loading edisp failed") + return + + # Check that data isn't all null + if np.max(edisp.data.data) <= 0: + yield self._record(level="error", msg="maximum entry of edisp is <= 0") + + def check_psf(self): + yield self._record(level="debug", msg="Starting psf check") + + try: + self.observation.psf + except Exception: + yield self._record(level="warning", msg="Loading psf failed") + return +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/pointing.html b/docs/dev/_modules/gammapy/data/pointing.html new file mode 100644 index 00000000000..c738a24b889 --- /dev/null +++ b/docs/dev/_modules/gammapy/data/pointing.html @@ -0,0 +1,1248 @@ + + + + + + + + + + gammapy.data.pointing — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.pointing

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import logging
+import warnings
+from enum import Enum, auto
+import numpy as np
+import scipy.interpolate
+import astropy.units as u
+from astropy.coordinates import (
+    ICRS,
+    AltAz,
+    BaseCoordinateFrame,
+    CartesianRepresentation,
+    SkyCoord,
+    UnitSphericalRepresentation,
+)
+from astropy.io import fits
+from astropy.table import Table
+from astropy.units import Quantity
+from astropy.utils import lazyproperty
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.deprecation import GammapyDeprecationWarning
+from gammapy.utils.fits import earth_location_from_dict, earth_location_to_dict
+from gammapy.utils.scripts import make_path
+from gammapy.utils.time import time_ref_from_dict, time_ref_to_dict, time_to_fits_header
+
+log = logging.getLogger(__name__)
+
+__all__ = ["FixedPointingInfo", "PointingInfo", "PointingMode"]
+
+
+def _check_coord_frame(coord_or_frame, expected_frame, name):
+    """Check if a skycoord or frame is given in expected_frame."""
+    is_coord = isinstance(coord_or_frame, SkyCoord)
+    is_frame = isinstance(coord_or_frame, BaseCoordinateFrame)
+
+    if not (is_frame or is_coord):
+        raise TypeError(
+            f"{name} must be a 'astropy.coordinates.SkyCoord'"
+            "or {expected_frame} instance"
+        )
+
+    if is_coord:
+        frame = coord_or_frame.frame
+    else:
+        frame = coord_or_frame
+
+    if not isinstance(frame, expected_frame):
+        raise ValueError(
+            f"{name} is in wrong frame, expected {expected_frame}, got {frame}"
+        )
+
+
+
+[docs] +class PointingMode(Enum): + """ + Describes the behavior of the pointing during the observation. + + See :ref:`gadf:iact-events-obs-mode`. + + For ground-based instruments, the most common options will be: + * POINTING: The telescope observes a fixed position in the ICRS frame + * DRIFT: The telescope observes a fixed position in the alt-az frame + + Gammapy only supports fixed pointing positions over the whole observation + (either in equatorial or horizontal coordinates). + OGIP also defines RASTER, SLEW and SCAN. These cannot be treated using + a fixed pointing position in either frame, so they would require the + pointing table, which is at the moment not supported by gammapy. + + Data releases based on gadf v0.2 do not have consistent OBS_MODE keyword + e.g. the H.E.S.S. data releases uses the not-defined value "WOBBLE". + For all gadf data, we assume OBS_MODE to be the same as "POINTING", + unless it is set to "DRIFT", making the assumption that one observation + only contains a single fixed position. + """ + + POINTING = auto() + DRIFT = auto() + + @staticmethod + def from_gadf_string(val): + """Parse a string from the GADF header into a PointingMode.""" + # OBS_MODE is not well-defined and not mandatory in GADF 0.2 + # We always assume that the observations are pointing observations + # unless the OBS_MODE is set to DRIFT + if val.upper() == "DRIFT": + return PointingMode.DRIFT + else: + return PointingMode.POINTING
+ + + +
+[docs] +class FixedPointingInfo: + """IACT array pointing info. + + Data format specification: :ref:`gadf:iact-pnt` + + Parameters + ---------- + meta : `~astropy.table.Table.meta` + Meta header info from Table on pointing. + Passing this is deprecated, provide ``mode`` and ``fixed_icrs`` or ``fixed_altaz`` + instead or use `FixedPointingInfo.from_fits_header` instead. + mode : `PointingMode` + How the telescope was pointing during the observation. + fixed_icrs : `~astropy.coordinates.SkyCoord`, optional + The coordinates of the observation in ICRS as a `~astropy.coordinates.SkyCoord` object. Default is None. + Required if mode is `PointingMode.POINTING`. + fixed_altaz : `~astropy.coordinates.SkyCoord`, optional + The coordinates of the observation in alt-az as a `~astropy.coordinates.SkyCoord` object. Default is None. + Required if mode is `PointingMode.DRIFT`. + + Examples + -------- + >>> from gammapy.data import FixedPointingInfo, PointingMode + >>> from astropy.coordinates import SkyCoord + >>> import astropy.units as u + >>> fixed_icrs = SkyCoord(83.633 * u.deg, 22.014 * u.deg, frame="icrs") + >>> pointing_info = FixedPointingInfo(fixed_icrs=fixed_icrs) + >>> print(pointing_info) + FixedPointingInfo: + <BLANKLINE> + mode: PointingMode.POINTING + coordinates: <SkyCoord (ICRS): (ra, dec) in deg + (83.633, 22.014)> + """ + + def __init__( + self, + meta=None, + *, + mode=None, + fixed_icrs=None, + fixed_altaz=None, + # these have nothing really to do with pointing_info + # needed for backwards compatibility but should be removed and accessed + # from the observation, not the pointing info. + location=None, + time_start=None, + time_stop=None, + time_ref=None, + legacy_altaz=None, # store altaz given for mode=POINTING separately so it can be removed easily + ): + self._meta = None + + # TODO: for backwards compatibility, remove in 2.0 + # and make other keywards required + if meta is not None: + warnings.warn( + "Initializing a FixedPointingInfo using a `meta` dict is deprecated", + GammapyDeprecationWarning, + ) + self._meta = meta + self.__dict__.update(self.from_fits_header(meta).__dict__) + return + + if mode is not None: + warnings.warn( + "Passing mode is deprecated and the argument will be removed in Gammapy 1.3." + " pointing mode is deduced from whether fixed_icrs or fixed_altaz is given", + GammapyDeprecationWarning, + ) + + self._location = location + self._time_start = time_start + self._time_stop = time_stop + self._time_ref = time_ref + self._legacy_altaz = legacy_altaz or AltAz(np.nan * u.deg, np.nan * u.deg) + + if fixed_icrs is not None and fixed_altaz is not None: + raise ValueError("fixed_icrs and fixed_altaz are mutually exclusive") + + if fixed_icrs is not None: + _check_coord_frame(fixed_icrs, ICRS, "fixed_icrs") + + if np.isnan(fixed_icrs.ra.value) or np.isnan(fixed_icrs.dec.value): + warnings.warn( + "In future, fixed_icrs must have non-nan values", + GammapyDeprecationWarning, + ) + + self._mode = PointingMode.POINTING + self._fixed_icrs = fixed_icrs + self._fixed_altaz = None + + else: + _check_coord_frame(fixed_altaz, AltAz, "fixed_altaz") + self._mode = PointingMode.DRIFT + self._fixed_icrs = None + self._fixed_altaz = fixed_altaz + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + @classmethod + def from_fits_header(cls, header): + """ + Parse `~gammapy.data.FixedPointingInfo` from the given FITS header. + + Parameters + ---------- + header : `astropy.fits.Header` + Header to parse, e.g. from a GADF EVENTS HDU. + Currently, only the GADF format is supported. + + Returns + ------- + pointing : `~gammapy.data.FixedPointingInfo` + The FixedPointingInfo instance filled from the given header. + """ + obs_mode = header.get("OBS_MODE", "POINTING") + mode = PointingMode.from_gadf_string(obs_mode) + try: + location = earth_location_from_dict(header) + except KeyError: + location = None + + # we allow missing RA_PNT / DEC_PNT in POINTING for some reason... + # FIXME: actually enforce this to be present instead of using nan + ra = u.Quantity(header.get("RA_PNT", np.nan), u.deg) + dec = u.Quantity(header.get("DEC_PNT", np.nan), u.deg) + alt = header.get("ALT_PNT") + az = header.get("AZ_PNT") + legacy_altaz = None + + fixed_icrs = None + pointing_altaz = None + + # we can be more strict with DRIFT, as support was only added recently + if mode is PointingMode.DRIFT: + if alt is None or az is None: + raise IOError( + "Keywords ALT_PNT and AZ_PNT are required for OBSMODE=DRIFT" + ) + pointing_altaz = AltAz(alt=alt * u.deg, az=az * u.deg) + else: + fixed_icrs = SkyCoord(ra, dec) + if np.isnan(ra.value) or np.isnan(dec.value): + warnings.warn( + "RA_PNT / DEC_PNT will be required in a future version of" + " gammapy for pointing-mode POINTING", + GammapyDeprecationWarning, + ) + # store given altaz also for POINTING for backwards compatibility, + # FIXME: remove in 2.0 + if alt is not None and az is not None: + legacy_altaz = AltAz(alt=alt * u.deg, az=az * u.deg) + + time_start = header.get("TSTART") + time_stop = header.get("TSTOP") + time_ref = None + + if time_start is not None or time_stop is not None: + time_ref = time_ref_from_dict(header) + time_unit = u.Unit(header.get("TIMEUNIT", "s"), format="fits") + + if time_start is not None: + time_start = time_ref + u.Quantity(time_start, time_unit) + + if time_stop is not None: + time_stop = time_ref + u.Quantity(time_stop, time_unit) + + return cls( + location=location, + fixed_icrs=fixed_icrs, + fixed_altaz=pointing_altaz, + time_start=time_start, + time_stop=time_stop, + time_ref=time_ref, + legacy_altaz=legacy_altaz, + )
+ + +
+[docs] + def to_fits_header(self, format="gadf", version="0.3", time_ref=None): + """ + Convert this FixedPointingInfo object into a fits header for the given format. + + Parameters + ---------- + format : {"gadf"} + Format, currently only "gadf" is supported. Default is "gadf". + version : str, optional + Version of the ``format``, this function currently supports + gadf versions 0.2 and 0.3. Default is "0.3". + time_ref : `astropy.time.Time`, optional + Reference time for storing the time related information in fits format. Default is None. + + Returns + ------- + header : `astropy.fits.Header` + Header with fixed pointing information filled for the requested format. + """ + if format != "gadf": + raise ValueError(f'Only the "gadf" format supported, got {format}') + + if version not in {"0.2", "0.3"}: + raise ValueError(f"Unsupported version {version} for format {format}") + + if self.mode == PointingMode.DRIFT and version == "0.2": + raise ValueError("mode=DRIFT is only supported by GADF 0.3") + + header = fits.Header() + if self.mode is PointingMode.POINTING: + header["OBS_MODE"] = "POINTING" + header["RA_PNT"] = self.fixed_icrs.ra.deg, u.deg.to_string("fits") + header["DEC_PNT"] = self.fixed_icrs.dec.deg, u.deg.to_string("fits") + elif self.mode is PointingMode.DRIFT: + header["OBS_MODE"] = "DRIFT" + header["AZ_PNT"] = self.fixed_altaz.az.deg, u.deg.to_string("fits") + header["ALT_PNT"] = self.fixed_altaz.alt.deg, u.deg.to_string("fits") + + # FIXME: remove in 2.0 + if self._legacy_altaz is not None and not np.isnan( + self._legacy_altaz.alt.value + ): + header["AZ_PNT"] = self._legacy_altaz.az.deg, u.deg.to_string("fits") + header["ALT_PNT"] = self._legacy_altaz.alt.deg, u.deg.to_string("fits") + + if self._time_start is not None: + header["TSTART"] = time_to_fits_header(self._time_start, epoch=time_ref) + if self._time_stop is not None: + header["TSTOP"] = time_to_fits_header(self._time_stop, epoch=time_ref) + + if self._time_start is not None or self._time_stop is not None: + header.update(time_ref_to_dict(time_ref)) + + if self._location is not None: + header.update(earth_location_to_dict(self._location)) + + return header
+ + +
+[docs] + @classmethod + def read(cls, filename, hdu="EVENTS"): + """Read pointing information table from file to obtain the metadata. + + Parameters + ---------- + filename : str + Filename. + hdu : int or str, optional + HDU number or name. Default is "EVENTS". + + Returns + ------- + pointing_info : `PointingInfo` + Pointing information. + """ + filename = make_path(filename) + header = fits.getheader(filename, extname=hdu) + return cls.from_fits_header(header)
+ + + @property + def mode(self): + """See `PointingMode`, if not present, assume POINTING.""" + return self._mode + + @property + def fixed_altaz(self): + """The fixed coordinates of the observation in alt-az as a `~astropy.coordinates.SkyCoord` object. + + None if not a DRIFT observation. + """ + return self._fixed_altaz + + @property + def fixed_icrs(self): + """ + The fixed coordinates of the observation in ICRS as a `~astropy.coordinates.SkyCoord` object. + + None if not a POINTING observation. + """ + return self._fixed_icrs + +
+[docs] + def get_icrs(self, obstime=None, location=None) -> SkyCoord: + """ + Get the pointing position in ICRS frame for a given time. + + If the observation was performed tracking a fixed position in ICRS, + the icrs pointing is returned with the given obstime attached. + + If the observation was performed in drift mode, the fixed alt-az coordinates + are transformed to ICRS using the observation location and the given time. + + + Parameters + ---------- + obstime : `astropy.time.Time`, optional + Time for which to get the pointing position in ICRS frame. Default is None. + location : `astropy.coordinates.EarthLocation`, optional + Observatory location, only needed for drift observations to transform + from horizontal coordinates to ICRS. Default is None. + + Returns + ------- + icrs : `astropy.coordinates.SkyCoord` + Pointing position in ICRS frame. + """ + if self.mode == PointingMode.POINTING: + return SkyCoord(self._fixed_icrs.data, location=location, obstime=obstime) + + if self.mode == PointingMode.DRIFT: + if obstime is None: + obstime = self.obstime + + return self.get_altaz(obstime, location=location).icrs + + raise ValueError(f"Unsupported pointing mode: {self.mode}.")
+ + +
+[docs] + def get_altaz(self, obstime=None, location=None) -> SkyCoord: + """ + Get the pointing position in alt-az frame for a given time. + + If the observation was performed tracking a fixed position in ICRS, + the icrs pointing is transformed at the given time using the location + of the observation. + + If the observation was performed in drift mode, + the fixed alt-az coordinate is returned with `obstime` attached. + + Parameters + ---------- + obstime : `astropy.time.Time`, optional + Time for which to get the pointing position in alt-az frame. Default is None. + location : `astropy.coordinates.EarthLocation`, optional + Observatory location, only needed for pointing observations to transform + from ICRS to horizontal coordinates. Default is None. + + Returns + ------- + altaz : `astropy.coordinates.SkyCoord` + Pointing position in alt-az frame. + """ + location = location if location is not None else self._location + + frame = AltAz(location=location, obstime=obstime) + + if self.mode == PointingMode.POINTING: + return self.fixed_icrs.transform_to(frame) + + if self.mode == PointingMode.DRIFT: + # see https://github.com/astropy/astropy/issues/12965 + alt = self.fixed_altaz.alt + az = self.fixed_altaz.az + return SkyCoord( + alt=u.Quantity( + np.full(obstime.shape, alt.deg), u.deg, copy=COPY_IF_NEEDED + ), + az=u.Quantity( + np.full(obstime.shape, az.deg), u.deg, copy=COPY_IF_NEEDED + ), + frame=frame, + ) + + raise ValueError(f"Unsupported pointing mode: {self.mode}.")
+ + + def __str__(self): + coordinates = ( + self.fixed_icrs if self.mode == PointingMode.POINTING else self.fixed_altaz + ) + return ( + "FixedPointingInfo:\n\n" + f"mode: {self.mode}\n" + f"coordinates: {coordinates}" + )
+ + + +
+[docs] +class PointingInfo: + """IACT array pointing info. + + Data format specification: :ref:`gadf:iact-pnt`. + + Parameters + ---------- + table : `~astropy.table.Table` + Table (with meta header information) on pointing. + + Examples + -------- + >>> from gammapy.data import PointingInfo + >>> pointing_info = PointingInfo.read('$GAMMAPY_DATA/tests/pointing_table.fits.gz') + >>> print(pointing_info) + Pointing info: + <BLANKLINE> + Location: GeodeticLocation(lon=<Longitude 16.50022222 deg>, lat=<Latitude -23.27177778 deg>, height=<Quantity 1835. m>) + MJDREFI, MJDREFF, TIMESYS = (51910, 0.000742870370370241, 'TT') + Time ref: 2001-01-01T00:01:04.184 + Time ref: 51910.00074287037 MJD (TT) + Duration: 1586.0000000000018 sec = 0.44055555555555603 hours + Table length: 100 + <BLANKLINE> + START: + Time: 2004-01-21T19:50:02.184 + Time: 53025.826414166666 MJD (TT) + RADEC: 83.6333 24.5144 deg + ALTAZ: 11.4575 41.3409 deg + <BLANKLINE> + <BLANKLINE> + END: + Time: 2004-01-21T20:16:28.184 + Time: 53025.844770648146 MJD (TT) + RADEC: 83.6333 24.5144 deg + ALTAZ: 3.44573 42.1319 deg + <BLANKLINE> + <BLANKLINE> + + Note: In order to reproduce the example you need the tests datasets folder. + You may download it with the command + ``gammapy download datasets --tests --out $GAMMAPY_DATA`` + """ + + def __init__(self, table): + self.table = table + +
+[docs] + @classmethod + def read(cls, filename, hdu="POINTING"): + """Read `PointingInfo` table from file. + + Parameters + ---------- + filename : str + Filename. + hdu : int or str, optional + HDU number or name. Default is "POINTING". + + Returns + ------- + pointing_info : `PointingInfo` + Pointing information. + """ + filename = make_path(filename) + table = Table.read(filename, hdu=hdu) + return cls(table=table)
+ + + def __str__(self): + ss = "Pointing info:\n\n" + ss += f"Location: {self.location.geodetic}\n" + m = self.table.meta + ss += "MJDREFI, MJDREFF, TIMESYS = {}\n".format( + (m["MJDREFI"], m["MJDREFF"], m["TIMESYS"]) + ) + ss += f"Time ref: {self.time_ref.fits}\n" + ss += f"Time ref: {self.time_ref.mjd} MJD (TT)\n" + sec = self.duration.to("second").value + hour = self.duration.to("hour").value + ss += f"Duration: {sec} sec = {hour} hours\n" + ss += "Table length: {}\n".format(len(self.table)) + + ss += "\nSTART:\n" + self._str_for_index(0) + "\n" + ss += "\nEND:\n" + self._str_for_index(-1) + "\n" + + return ss + + def _str_for_index(self, idx): + """Information for one point in the pointing table.""" + ss = "Time: {}\n".format(self.time[idx].fits) + ss += "Time: {} MJD (TT)\n".format(self.time[idx].mjd) + ss += "RADEC: {} deg\n".format(self.radec[idx].to_string()) + ss += "ALTAZ: {} deg\n".format(self.altaz[idx].to_string()) + return ss + + @lazyproperty + def location(self): + """Observatory location as an `~astropy.coordinates.EarthLocation` object.""" + return earth_location_from_dict(self.table.meta) + + @lazyproperty + def time_ref(self): + """Time reference as a `~astropy.time.Time` object.""" + return time_ref_from_dict(self.table.meta) + + @lazyproperty + def duration(self): + """Pointing table duration as a `~astropy.time.TimeDelta` object. + + The time difference between the first and last entry. + """ + return self.time[-1] - self.time[0] + + @lazyproperty + def time(self): + """Time array as a `~astropy.time.Time` object.""" + met = Quantity(self.table["TIME"].astype("float64"), "second") + time = self.time_ref + met + return time.tt + + @lazyproperty + def radec(self): + """RA / DEC position from table as a `~astropy.coordinates.SkyCoord`.""" + lon = self.table["RA_PNT"] + lat = self.table["DEC_PNT"] + return SkyCoord(lon, lat, unit="deg", frame="icrs") + + @lazyproperty + def altaz_frame(self): + """ALT / AZ frame as a `~astropy.coordinates.AltAz` object.""" + return AltAz(obstime=self.time, location=self.location) + + @lazyproperty + def altaz(self): + """ALT / AZ position computed from RA / DEC as a`~astropy.coordinates.SkyCoord`.""" + return self.radec.transform_to(self.altaz_frame) + + @lazyproperty + def altaz_from_table(self): + """ALT / AZ position from table as a `~astropy.coordinates.SkyCoord`.""" + lon = self.table["AZ_PNT"] + lat = self.table["ALT_PNT"] + return SkyCoord(lon, lat, unit="deg", frame=self.altaz_frame) + + @staticmethod + def _interpolate_cartesian(mjd_support, coord_support, mjd): + xyz = coord_support.cartesian + x_new = scipy.interpolate.interp1d(mjd_support, xyz.x)(mjd) + y_new = scipy.interpolate.interp1d(mjd_support, xyz.y)(mjd) + z_new = scipy.interpolate.interp1d(mjd_support, xyz.z)(mjd) + return CartesianRepresentation(x_new, y_new, z_new).represent_as( + UnitSphericalRepresentation + ) + +
+[docs] + def altaz_interpolate(self, time): + """Interpolate pointing for a given time.""" + altaz_frame = AltAz(obstime=time, location=self.location) + return SkyCoord( + self._interpolate_cartesian(self.time.mjd, self.altaz, time.mjd), + frame=altaz_frame, + )
+ + +
+[docs] + def get_icrs(self, obstime): + """ + Get the pointing position in ICRS frame for a given time. + + Parameters + ---------- + obstime : `astropy.time.Time` + Time for which to get the pointing position in ICRS frame. + + Returns + ------- + icrs : `astropy.coordinates.SkyCoord` + Pointing position in ICRS frame. + """ + return SkyCoord( + self._interpolate_cartesian(self.time.mjd, self.radec, obstime.mjd), + obstime=obstime, + frame="icrs", + )
+ + +
+[docs] + def get_altaz(self, obstime): + """ + Get the pointing position in alt-az frame for a given time. + + If the observation was performed tracking a fixed position in ICRS, + the icrs pointing is transformed at the given time using the location + of the observation. + + If the observation was performed in drift mode, + the fixed alt-az coordinate is returned with `obstime` attached. + + Parameters + ---------- + obstime : `astropy.time.Time` + Time for which to get the pointing position in alt-az frame. + + Returns + ------- + altaz : `astropy.coordinates.SkyCoord` + Pointing position in alt-az frame. + """ + # give precedence to ALT_PNT / AZ_PNT if present + if "ALT_PNT" in self.table and "AZ_PNT" in self.table: + altaz = self.altaz_from_table + frame = AltAz(obstime=obstime, location=self.location) + return SkyCoord( + self._interpolate_cartesian(self.time.mjd, altaz, obstime.mjd), + frame=frame, + ) + + # fallback to transformation from required ICRS if not + return self.altaz_interpolate(time=obstime)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/simulate.html b/docs/dev/_modules/gammapy/data/simulate.html new file mode 100644 index 00000000000..56a0397907d --- /dev/null +++ b/docs/dev/_modules/gammapy/data/simulate.html @@ -0,0 +1,645 @@ + + + + + + + + + + gammapy.data.simulate — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.simulate

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Simulate observations"""
+
+from itertools import repeat
+from gammapy.utils import parallel as parallel
+from gammapy.utils.scripts import make_path
+
+
+
+[docs] +class ObservationsEventsSampler(parallel.ParallelMixin): + """Run event sampling for an emsemble of observations + + Parameters + ---------- + sampler_kwargs : dict, optional + Arguments passed to `~gammapy.datasets.MapDatasetEventSampler`. + dataset_kwargs : dict, optional + Arguments passed to `~gammapy.datasets.create_map_dataset_from_observation()`. + outdir : str, Path + path of the output files created. Default is "./simulated_data/". + If None a list of `~gammapy.data.Observation` is returned. + overwrite : bool + Overwrite the output files or not + n_jobs : int, optional + Number of processes to run in parallel. + Default is one, unless `~gammapy.utils.parallel.N_JOBS_DEFAULT` was modified. + parallel_backend : {'multiprocessing', 'ray'}, optional + Which backend to use for multiprocessing. + Default is None. + """ + + def __init__( + self, + sampler_kwargs=None, + dataset_kwargs=None, + outdir="./simulated_data/", + overwrite=True, + n_jobs=None, + parallel_backend=None, + ): + if outdir is not None: + outdir = make_path(outdir) + outdir.mkdir(exist_ok=True, parents=True) + self.outdir = outdir + self.n_jobs = n_jobs + self.parallel_backend = parallel_backend + self.overwrite = overwrite + + if sampler_kwargs is None: + sampler_kwargs = {} + self.sampler_kwargs = sampler_kwargs + self.dataset_kwargs = dataset_kwargs + +
+[docs] + def simulate_observation(self, observation, models=None): + """Simulate a single observation. + + Parameters + ---------- + observation : `~gammapy.data.Observation` + Observation to be simulated. + models : `~gammapy.modeling.Models`, optional + Models to simulate. + Can be None to only sample background events. Default is None. + """ + from gammapy.datasets import ObservationEventSampler + + sampler = ObservationEventSampler( + **self.sampler_kwargs, dataset_kwargs=self.dataset_kwargs + ) + observation = sampler.run(observation, models=models) + + if self.outdir is not None: + observation.write( + self.outdir / f"obs_{observation.obs_id}.fits", + overwrite=self.overwrite, + ) + else: + return observation
+ + +
+[docs] + def run(self, observations, models=None): + """Run event sampling for an ensemble of onservations + + Parameters + ---------- + observation : `~gammapy.data.Observation` + Observation to be simulated. + models : `~gammapy.modeling.Models`, optional + Models to simulate. + Can be None to only sample background events. Default is None. + """ + + n_jobs = min(self.n_jobs, len(observations)) + + observations = parallel.run_multiprocessing( + self.simulate_observation, + zip( + observations, + repeat(models), + ), + backend=self.parallel_backend, + pool_kwargs=dict(processes=n_jobs), + task_name="Simulate observations", + ) + if self.outdir is None: + return observations
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/data/utils.html b/docs/dev/_modules/gammapy/data/utils.html new file mode 100644 index 00000000000..2fa2914ff93 --- /dev/null +++ b/docs/dev/_modules/gammapy/data/utils.html @@ -0,0 +1,688 @@ + + + + + + + + + + gammapy.data.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.data.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import astropy.units as u
+from astropy.table import Table
+from gammapy.utils.cluster import standard_scaler
+
+__all__ = ["get_irfs_features"]
+
+
+
+[docs] +def get_irfs_features( + observations, + energy_true, + position=None, + fixed_offset=None, + names=None, + containment_fraction=0.68, + apply_standard_scaler=False, +): + """Get features from IRFs properties at a given position. Used for observations clustering. + + Parameters + ---------- + observations : `~gammapy.data.Observations` + Container holding a list of `~gammapy.data.Observation`. + energy_true : `~astropy.units.Quantity` + Energy true at which to compute the containment radius. + position : `~astropy.coordinates.SkyCoord`, optional + Sky position. Default is None. + fixed_offset : `~astropy.coordinates.Angle`, optional + Offset calculated from the pointing position. Default is None. + If neither the `position` nor the `fixed_offset` is specified, + it uses the position of the center of the map by default. + names : {"edisp-bias", "edisp-res", "psf-radius"} + IRFs properties to be considered. + Default is None. If None, all the features are computed. + containment_fraction : float, optional + Containment_fraction to compute the `psf-radius`. + Default is 68%. + apply_standard_scaler : bool, optional + Compute standardize features by removing the mean and scaling to unit variance. + Default is False. + + Returns + ------- + features : `~astropy.table.Table` + Features table. + + Examples + -------- + Compute the IRF features for "edisp-bias", "edisp-res" and "psf-radius" at 1 TeV:: + + >>> from gammapy.data.utils import get_irfs_features + >>> from gammapy.data import DataStore + >>> from gammapy.utils.cluster import standard_scaler + >>> from astropy.coordinates import SkyCoord + >>> import astropy.units as u + + >>> selection = dict( + ... type="sky_circle", + ... frame="icrs", + ... lon="329.716 deg", + ... lat="-30.225 deg", + ... radius="2 deg", + ... ) + + >>> data_store = DataStore.from_dir("$GAMMAPY_DATA/hess-dl3-dr1/") + >>> obs_table = data_store.obs_table.select_observations(selection) + >>> obs = data_store.get_observations(obs_table["OBS_ID"][:3]) + + >>> position = SkyCoord(329.716 * u.deg, -30.225 * u.deg, frame="icrs") + >>> names = ["edisp-bias", "edisp-res", "psf-radius"] + >>> features_irfs = get_irfs_features( + ... obs, + ... energy_true="1 TeV", + ... position=position, + ... names=names, + ... ) + + >>> print(features_irfs) + edisp-bias obs_id edisp-res psf-radius + deg + ------------------- ------ ------------------- ------------------- + 0.11587179071752986 33787 0.368346217294295 0.14149953611195087 + 0.04897634344908595 33788 0.33983991887701287 0.11553325504064559 + 0.033176650892097 33789 0.32377509405904137 0.10262943822890519 + + """ + from gammapy.irf import EDispKernelMap, PSFMap + + if names is None: + names = ["edisp-bias", "edisp-res", "psf-radius"] + + if position and fixed_offset: + raise ValueError( + "`position` and `fixed_offset` arguments are mutually exclusive" + ) + + rows = [] + + for obs in observations: + psf_kwargs = dict(fraction=containment_fraction, energy_true=energy_true) + if isinstance(obs.psf, PSFMap) and isinstance(obs.edisp, EDispKernelMap): + if position is None: + position = obs.psf.psf_map.geom.center_skydir + edisp_kernel = obs.edisp.get_edisp_kernel(position=position) + psf_kwargs["position"] = position + else: + if fixed_offset is None: + if position is None: + offset = 0 * u.deg + else: + offset_max = np.minimum( + obs.psf.axes["offset"].center[-1], + obs.edisp.axes["offset"].center[-1], + ) + offset = np.minimum( + position.separation(obs.get_pointing_icrs(obs.tmid)), offset_max + ) + else: + offset = fixed_offset + edisp_kernel = obs.edisp.to_edisp_kernel(offset) + psf_kwargs["offset"] = offset + + data = {} + for name in names: + if name == "edisp-bias": + data[name] = edisp_kernel.get_bias(energy_true)[0] + if name == "edisp-res": + data[name] = edisp_kernel.get_resolution(energy_true)[0] + if name == "psf-radius": + data[name] = obs.psf.containment_radius(**psf_kwargs).to("deg") + data["obs_id"] = obs.obs_id + + rows.append(data) + + features = Table(rows) + + if apply_standard_scaler: + features = standard_scaler(features) + + features.meta = dict( + energy_true=energy_true, + fixed_offset=fixed_offset, + containment_fraction=containment_fraction, + apply_standard_scaler=apply_standard_scaler, + ) + + if position: + features.meta["lon"] = position.galactic.l + features.meta["lat"] = position.galactic.b + features.meta["frame"] = "galactic" + + return features
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/core.html b/docs/dev/_modules/gammapy/datasets/core.html new file mode 100644 index 00000000000..08f728e9e87 --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/core.html @@ -0,0 +1,1192 @@ + + + + + + + + + + gammapy.datasets.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import collections.abc
+import copy
+import html
+import logging
+import numpy as np
+from astropy import units as u
+from astropy.table import Table, vstack
+from gammapy.data import GTI
+from gammapy.modeling.models import DatasetModels, Models
+from gammapy.utils.scripts import make_name, make_path, read_yaml, to_yaml, write_yaml
+
+log = logging.getLogger(__name__)
+
+
+__all__ = ["Dataset", "Datasets"]
+
+
+
+[docs] +class Dataset(abc.ABC): + """Dataset abstract base class. + For now, see existing examples of type of datasets: + + - `gammapy.datasets.MapDataset` + - `gammapy.datasets.SpectrumDataset` + - `gammapy.datasets.FluxPointsDataset` + + For more information see :ref:`datasets`. + + TODO: add tutorial how to create your own dataset types. + """ + + _residuals_labels = { + "diff": "data - model", + "diff/model": "(data - model) / model", + "diff/sqrt(model)": "(data - model) / sqrt(model)", + } + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + @abc.abstractmethod + def tag(self): + pass + + @property + def name(self): + return self._name + +
+[docs] + def to_dict(self): + """Convert to dict for YAML serialization.""" + name = self.name.replace(" ", "_") + filename = f"{name}.fits" + return {"name": self.name, "type": self.tag, "filename": filename}
+ + + @property + def mask(self): + """Combined fit and safe mask.""" + if self.mask_safe is not None and self.mask_fit is not None: + return self.mask_safe & self.mask_fit + elif self.mask_fit is not None: + return self.mask_fit + elif self.mask_safe is not None: + return self.mask_safe + +
+[docs] + def stat_sum(self): + """Total statistic given the current model parameters and priors.""" + stat = self.stat_array() + + if self.mask is not None: + stat = stat[self.mask.data] + prior_stat_sum = 0.0 + if self.models is not None: + prior_stat_sum = self.models.parameters.prior_stat_sum() + return np.sum(stat, dtype=np.float64) + prior_stat_sum
+ + +
+[docs] + @abc.abstractmethod + def stat_array(self): + """Statistic array, one value per data point."""
+ + +
+[docs] + def copy(self, name=None): + """A deep copy. + + Parameters + ---------- + name : str, optional + Name of the copied dataset. Default is None. + + Returns + ------- + dataset : `Dataset` + Copied datasets. + """ + new = copy.deepcopy(self) + name = make_name(name) + new._name = name + # TODO: check the model behaviour? + new.models = None + return new
+ + + @staticmethod + def _compute_residuals(data, model, method="diff"): + with np.errstate(invalid="ignore"): + if method == "diff": + residuals = data - model + elif method == "diff/model": + residuals = (data - model) / model + elif method == "diff/sqrt(model)": + residuals = (data - model) / np.sqrt(model) + else: + raise AttributeError( + f"Invalid method: {method!r} for computing residuals" + ) + return residuals
+ + + +
+[docs] +class Datasets(collections.abc.MutableSequence): + """Container class that holds a list of datasets. + + Parameters + ---------- + datasets : `Dataset` or list of `Dataset` + Datasets. + """ + + def __init__(self, datasets=None): + if datasets is None: + datasets = [] + + if isinstance(datasets, Datasets): + datasets = datasets._datasets + elif isinstance(datasets, Dataset): + datasets = [datasets] + elif not isinstance(datasets, list): + raise TypeError(f"Invalid type: {datasets!r}") + + unique_names = [] + for dataset in datasets: + if dataset.name in unique_names: + raise (ValueError("Dataset names must be unique")) + unique_names.append(dataset.name) + + self._datasets = datasets + self._covariance = None + + @property + def parameters(self): + """Unique parameters (`~gammapy.modeling.Parameters`). + + Duplicate parameter objects have been removed. + The order of the unique parameters remains. + """ + return self.models.parameters.unique_parameters + + @property + def models(self): + """Unique models (`~gammapy.modeling.Models`). + + Duplicate model objects have been removed. + The order of the unique models remains. + """ + models = {} + + for dataset in self: + if dataset.models is not None: + for model in dataset.models: + models[model] = model + models = DatasetModels(list(models.keys())) + + if self._covariance and self._covariance.parameters == models.parameters: + return DatasetModels(models, covariance_data=self._covariance.data) + else: + return models + + @models.setter + def models(self, models): + """Unique models (`~gammapy.modeling.Models`). + + Duplicate model objects have been removed. + The order of the unique models remains. + """ + if models: + self._covariance = DatasetModels(models).covariance + for dataset in self: + dataset.models = models + + @property + def names(self): + return [d.name for d in self._datasets] + + @property + def is_all_same_type(self): + """Whether all contained datasets are of the same type.""" + return len(set(_.__class__ for _ in self)) == 1 + + @property + def is_all_same_shape(self): + """Whether all contained datasets have the same data shape.""" + return len(set(_.data_shape for _ in self)) == 1 + + @property + def is_all_same_energy_shape(self): + """Whether all contained datasets have the same data shape.""" + return len(set(_.data_shape[0] for _ in self)) == 1 + + @property + def energy_axes_are_aligned(self): + """Whether all contained datasets have aligned energy axis.""" + axes = [d.counts.geom.axes["energy"] for d in self] + return np.all([axes[0].is_aligned(ax) for ax in axes]) + + @property + def contributes_to_stat(self): + """Stat contributions. + + Returns + ------- + contributions : `~numpy.array` + Array indicating which dataset contributes to the likelihood. + """ + contributions = [] + + for dataset in self: + if dataset.mask is not None: + value = np.any(dataset.mask) + else: + value = True + contributions.append(value) + return np.array(contributions) + +
+[docs] + def stat_sum(self): + """Compute joint statistic function value.""" + stat_sum = 0 + # TODO: add parallel evaluation of likelihoods + for dataset in self: + stat_sum += dataset.stat_sum() + return stat_sum
+ + +
+[docs] + def select_time(self, time_min, time_max, atol="1e-6 s"): + """Select datasets in a given time interval. + + Parameters + ---------- + time_min, time_max : `~astropy.time.Time` + Time interval. + atol : `~astropy.units.Quantity` + Tolerance value for time comparison with different scale. Default 1e-6 sec. + + Returns + ------- + datasets : `Datasets` + Datasets in the given time interval. + + """ + atol = u.Quantity(atol) + + datasets = [] + + for dataset in self: + t_start = dataset.gti.time_start[0] + t_stop = dataset.gti.time_stop[-1] + + if t_start >= (time_min - atol) and t_stop <= (time_max + atol): + datasets.append(dataset) + + return self.__class__(datasets)
+ + +
+[docs] + def slice_by_energy(self, energy_min, energy_max): + """Select and slice datasets in energy range. + + The method keeps the current dataset names. Datasets that do not + contribute to the selected energy range are dismissed. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Energy bounds to compute the flux point for. + + Returns + ------- + datasets : Datasets + Datasets. + + """ + datasets = [] + + for dataset in self: + try: + dataset_sliced = dataset.slice_by_energy( + energy_min=energy_min, + energy_max=energy_max, + name=dataset.name, + ) + except ValueError: + log.info( + f"Dataset {dataset.name} does not contribute in the energy range" + ) + continue + + datasets.append(dataset_sliced) + + return self.__class__(datasets=datasets)
+ + +
+[docs] + def to_spectrum_datasets(self, region): + """Extract spectrum datasets for the given region. + + To get more detailed information, see the corresponding function associated to each dataset type: + `~gammapy.datasets.MapDataset.to_spectrum_dataset` or `~gammapy.datasets.MapDatasetOnOff.to_spectrum_dataset`. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region definition. + + Returns + ------- + datasets : `Datasets` + List of `~gammapy.datasets.SpectrumDataset`. + """ + datasets = Datasets() + + for dataset in self: + spectrum_dataset = dataset.to_spectrum_dataset( + on_region=region, name=dataset.name + ) + datasets.append(spectrum_dataset) + + return datasets
+ + + @property + # TODO: make this a method to support different methods? + def energy_ranges(self): + """Get global energy range of datasets. + + The energy range is derived as the minimum / maximum of the energy + ranges of all datasets. + + Returns + ------- + energy_min, energy_max : `~astropy.units.Quantity` + Energy range. + """ + + energy_mins, energy_maxs = [], [] + + for dataset in self: + energy_axis = dataset.counts.geom.axes["energy"] + energy_mins.append(energy_axis.edges[0]) + energy_maxs.append(energy_axis.edges[-1]) + + return u.Quantity(energy_mins), u.Quantity(energy_maxs) + + def __str__(self): + str_ = self.__class__.__name__ + "\n" + str_ += "--------\n\n" + + for idx, dataset in enumerate(self): + str_ += f"Dataset {idx}: \n\n" + str_ += f"\tType : {dataset.tag}\n" + str_ += f"\tName : {dataset.name}\n" + try: + instrument = set(dataset.meta_table["TELESCOP"]).pop() + except (KeyError, TypeError): + instrument = "" + str_ += f"\tInstrument : {instrument}\n" + if dataset.models: + names = dataset.models.names + else: + names = "" + str_ += f"\tModels : {names}\n\n" + + return str_.expandtabs(tabsize=2) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def copy(self): + """A deep copy.""" + return copy.deepcopy(self)
+ + +
+[docs] + @classmethod + def read(cls, filename, filename_models=None, lazy=True, cache=True, checksum=True): + """De-serialize datasets from YAML and FITS files. + + Parameters + ---------- + filename : str or `~pathlib.Path` + File path or name of datasets yaml file. + filename_models : str or `~pathlib.Path`, optional + File path or name of models yaml file. Default is None. + lazy : bool + Whether to lazy load data into memory. Default is True. + cache : bool + Whether to cache the data after loading. Default is True. + checksum : bool + Whether to perform checksum verification. Default is False. + + Returns + ------- + dataset : `gammapy.datasets.Datasets` + Datasets. + """ + from . import DATASET_REGISTRY + + filename = make_path(filename) + data_list = read_yaml(filename, checksum=checksum) + + datasets = [] + for data in data_list["datasets"]: + path = filename.parent + + if (path / data["filename"]).exists(): + data["filename"] = str(make_path(path / data["filename"])) + + dataset_cls = DATASET_REGISTRY.get_cls(data["type"]) + dataset = dataset_cls.from_dict(data, lazy=lazy, cache=cache) + datasets.append(dataset) + + datasets = cls(datasets) + + if filename_models: + datasets.models = Models.read(filename_models, checksum=checksum) + + return datasets
+ + +
+[docs] + def write( + self, + filename, + filename_models=None, + overwrite=False, + write_covariance=True, + checksum=False, + ): + """Serialize datasets to YAML and FITS files. + + Parameters + ---------- + filename : str or `~pathlib.Path` + File path or name of datasets yaml file. + filename_models : str or `~pathlib.Path`, optional + File path or name of models yaml file. Default is None. + overwrite : bool, optional + Overwrite existing file. Default is False. + write_covariance : bool + save covariance or not. Default is False. + checksum : bool + When True adds both DATASUM and CHECKSUM cards to the headers written to the FITS files. + Default is False. + """ + path = make_path(filename) + + data = {"datasets": []} + + for dataset in self._datasets: + d = dataset.to_dict() + filename = d["filename"] + dataset.write( + path.parent / filename, overwrite=overwrite, checksum=checksum + ) + data["datasets"].append(d) + + if path.exists() and not overwrite: + raise IOError(f"File exists already: {path}") + yaml_str = to_yaml(data) + write_yaml(yaml_str, path, checksum=checksum, overwrite=overwrite) + + if filename_models: + self.models.write( + filename_models, + overwrite=overwrite, + write_covariance=write_covariance, + checksum=checksum, + )
+ + +
+[docs] + def stack_reduce(self, name=None, nan_to_num=True): + """Reduce the Datasets to a unique Dataset by stacking them together. + + This works only if all datasets are of the same type and with aligned geometries, and if a proper + in-place stack method exists for the Dataset type. + + For details, see :ref:`stack`. + + Parameters + ---------- + name : str, optional + Name of the stacked dataset. Default is None. + nan_to_num : bool + Non-finite values are replaced by zero if True. Default is True. + + Returns + ------- + dataset : `~gammapy.datasets.Dataset` + The stacked dataset. + """ + if not self.is_all_same_type: + raise ValueError( + "Stacking impossible: all Datasets contained are not of a unique type." + ) + + stacked = self[0].to_masked(name=name, nan_to_num=nan_to_num) + + for dataset in self[1:]: + stacked.stack(dataset, nan_to_num=nan_to_num) + + return stacked
+ + +
+[docs] + def info_table(self, cumulative=False): + """Get info table for datasets. + + Parameters + ---------- + cumulative : bool + Cumulate information across all datasets. If True, all model-dependent + information will be lost. Default is False. + + Returns + ------- + info_table : `~astropy.table.Table` + Info table. + """ + if not self.is_all_same_type: + raise ValueError("Info table not supported for mixed dataset type.") + + rows = [] + + if cumulative: + name = "stacked" + stacked = self[0].to_masked(name=name) + rows.append(stacked.info_dict()) + for dataset in self[1:]: + stacked.stack(dataset) + rows.append(stacked.info_dict()) + else: + for dataset in self: + rows.append(dataset.info_dict()) + + return Table(rows)
+ + + # TODO: merge with meta table? + @property + def gti(self): + """GTI table.""" + time_intervals = [] + + for dataset in self: + if dataset.gti is not None and len(dataset.gti.table) > 0: + interval = (dataset.gti.time_start[0], dataset.gti.time_stop[-1]) + time_intervals.append(interval) + + if len(time_intervals) == 0: + return None + + return GTI.from_time_intervals(time_intervals) + + @property + def meta_table(self): + """Meta table.""" + tables = [d.meta_table for d in self] + + if np.all([table is None for table in tables]): + meta_table = Table() + else: + meta_table = vstack(tables).copy() + + meta_table.add_column([d.tag for d in self], index=0, name="TYPE") + meta_table.add_column(self.names, index=0, name="NAME") + return meta_table + + def __getitem__(self, key): + return self._datasets[self.index(key)] + + def __delitem__(self, key): + del self._datasets[self.index(key)] + + def __setitem__(self, key, dataset): + if isinstance(dataset, Dataset): + if dataset.name in self.names: + raise (ValueError("Dataset names must be unique")) + self._datasets[self.index(key)] = dataset + else: + raise TypeError(f"Invalid type: {type(dataset)!r}") + +
+[docs] + def insert(self, idx, dataset): + if isinstance(dataset, Dataset): + if dataset.name in self.names: + raise (ValueError("Dataset names must be unique")) + self._datasets.insert(idx, dataset) + else: + raise TypeError(f"Invalid type: {type(dataset)!r}")
+ + +
+[docs] + def index(self, key): + if isinstance(key, (int, slice)): + return key + elif isinstance(key, str): + return self.names.index(key) + elif isinstance(key, Dataset): + return self._datasets.index(key) + else: + raise TypeError(f"Invalid type: {type(key)!r}")
+ + + def __len__(self): + return len(self._datasets)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/flux_points.html b/docs/dev/_modules/gammapy/datasets/flux_points.html new file mode 100644 index 00000000000..ee198ed505a --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/flux_points.html @@ -0,0 +1,1262 @@ + + + + + + + + + + gammapy.datasets.flux_points — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.flux_points

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+from scipy.special import erfc
+from astropy import units as u
+from astropy.io import fits
+from astropy.table import Table
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from matplotlib.gridspec import GridSpec
+from gammapy.maps.axes import UNIT_STRING_FORMAT, MapAxis
+from gammapy.modeling.models import (
+    DatasetModels,
+    Models,
+    SkyModel,
+    TemplateSpatialModel,
+)
+from gammapy.utils.interpolation import interpolate_profile
+from gammapy.utils.scripts import make_name, make_path
+from .core import Dataset
+
+log = logging.getLogger(__name__)
+
+__all__ = ["FluxPointsDataset"]
+
+
+def _get_reference_model(model, energy_bounds, margin_percent=70):
+    if isinstance(model.spatial_model, TemplateSpatialModel):
+        geom = model.spatial_model.map.geom
+        emin = energy_bounds[0] * (1 - margin_percent / 100)
+        emax = energy_bounds[-1] * (1 + margin_percent / 100)
+        energy_axis = MapAxis.from_energy_bounds(
+            emin, emax, nbin=20, per_decade=True, name="energy_true"
+        )
+        geom = geom.to_image().to_cube([energy_axis])
+        return Models([model]).to_template_spectral_model(geom)
+    else:
+        return model.spectral_model
+
+
+
+[docs] +class FluxPointsDataset(Dataset): + """Bundle a set of flux points with a parametric model, to compute fit statistic function using different statistics (see ``stat_type``). + + For more information see :ref:`datasets`. + + Parameters + ---------- + models : `~gammapy.modeling.models.Models` + Models (only spectral part needs to be set). + data : `~gammapy.estimators.FluxPoints` + Flux points. Must be sorted along the energy axis. + mask_fit : `numpy.ndarray` + Mask to apply for fitting. + mask_safe : `numpy.ndarray` + Mask defining the safe data range. By default, upper limit values are excluded. + meta_table : `~astropy.table.Table` + Table listing information on observations used to create the dataset. + One line per observation for stacked datasets. + stat_type : str + Method used to compute the statistics: + + * chi2 : estimate from chi2 statistics. + * profile : estimate from interpolation of the likelihood profile. + * distrib : Assuming gaussian errors the likelihood is given by the probability density function + of the normal distribution. For the upper limit case it is necessary to marginalize over the unknown + measurement, so we integrate the normal distribution up to the upper limit value which gives the + complementary error function. See eq. C7 of `Mohanty et al (2013) <https://iopscience.iop.org/article/10.1088/0004-637X/773/2/168/pdf>`__ + + Default is `chi2`, in that case upper limits are ignored and the mean of asymetrics error is used. + However, it is recommended to use `profile` if `stat_scan` is available on flux points. + The `distrib` case provides an approximation if the profile is not available. + stat_kwargs : dict + Extra arguments specifying the interpolation scheme of the likelihood profile. + Used only if `stat_type=="profile"`. In that case the default is : + `stat_kwargs={"interp_scale":"sqrt", "extrapolate":True}` + + Examples + -------- + Load flux points from file and fit with a power-law model:: + + >>> from gammapy.modeling import Fit + >>> from gammapy.modeling.models import PowerLawSpectralModel, SkyModel + >>> from gammapy.estimators import FluxPoints + >>> from gammapy.datasets import FluxPointsDataset + >>> filename = "$GAMMAPY_DATA/tests/spectrum/flux_points/diff_flux_points.fits" + >>> dataset = FluxPointsDataset.read(filename) + >>> model = SkyModel(spectral_model=PowerLawSpectralModel()) + >>> dataset.models = model + + Make the fit: + + >>> fit = Fit() + >>> result = fit.run([dataset]) + >>> print(result) + OptimizeResult + <BLANKLINE> + backend : minuit + method : migrad + success : True + message : Optimization terminated successfully. + nfev : 135 + total stat : 25.21 + <BLANKLINE> + CovarianceResult + <BLANKLINE> + backend : minuit + method : hesse + success : True + message : Hesse terminated successfully. + + >>> print(result.parameters.to_table()) + type name value unit ... frozen link prior + ---- --------- ---------- -------------- ... ------ ---- ----- + index 2.2159e+00 ... False + amplitude 2.1619e-13 TeV-1 s-1 cm-2 ... False + reference 1.0000e+00 TeV ... True + + Note: In order to reproduce the example, you need the tests datasets folder. + You may download it with the command: + ``gammapy download datasets --tests --out $GAMMAPY_DATA`` + """ + + tag = "FluxPointsDataset" + + def __init__( + self, + models=None, + data=None, + mask_fit=None, + mask_safe=None, + name=None, + meta_table=None, + stat_type="chi2", + stat_kwargs=None, + ): + if not data.geom.has_energy_axis: + raise ValueError("FluxPointsDataset needs an energy axis") + self.data = data + self.mask_fit = mask_fit + self._name = make_name(name) + self.models = models + self.meta_table = meta_table + + self._available_stat_type = dict( + chi2=self._stat_array_chi2, + profile=self._stat_array_profile, + distrib=self._stat_array_distrib, + ) + + if stat_kwargs is None: + stat_kwargs = dict() + self.stat_kwargs = stat_kwargs + + self.stat_type = stat_type + + if mask_safe is None: + mask_safe = np.ones(self.data.dnde.data.shape, dtype=bool) + self.mask_safe = mask_safe + + @property + def available_stat_type(self): + return list(self._available_stat_type.keys()) + + @property + def stat_type(self): + return self._stat_type + + @stat_type.setter + def stat_type(self, stat_type): + if stat_type not in self.available_stat_type: + raise ValueError( + f"Invalid stat_type: possible options are {self.available_stat_type}" + ) + + if stat_type == "chi2": + self._mask_valid = (~self.data.is_ul).data & np.isfinite(self.data.dnde) + elif stat_type == "distrib": + self._mask_valid = ( + self.data.is_ul.data & np.isfinite(self.data.dnde_ul) + ) | np.isfinite(self.data.dnde) + elif stat_type == "profile": + self.stat_kwargs.setdefault("interp_scale", "sqrt") + self.stat_kwargs.setdefault("extrapolate", True) + self._profile_interpolators = self._get_valid_profile_interpolators() + self._stat_type = stat_type + + @property + def mask_valid(self): + return self._mask_valid + + @property + def mask_safe(self): + return self._mask_safe & self.mask_valid + + @mask_safe.setter + def mask_safe(self, mask_safe): + self._mask_safe = mask_safe + + @property + def name(self): + return self._name + + @property + def gti(self): + """Good time interval info (`GTI`).""" + return self.data.gti + + @property + def models(self): + return self._models + + @models.setter + def models(self, models): + if models is None: + self._models = None + else: + models = DatasetModels(models) + self._models = models.select(datasets_names=self.name) + +
+[docs] + def write(self, filename, overwrite=False, checksum=False, **kwargs): + """Write flux point dataset to file. + + Parameters + ---------- + filename : str + Filename to write to. + overwrite : bool, optional + Overwrite existing file. Default is False. + checksum : bool + When True adds both DATASUM and CHECKSUM cards to the headers written to the FITS file. + Applies only if filename has .fits suffix. Default is False. + **kwargs : dict, optional + Keyword arguments passed to `~astropy.table.Table.write`. + """ + table = self.data.to_table() + + if self.mask_fit is None: + mask_fit = self.mask_safe + else: + mask_fit = self.mask_fit + + table["mask_fit"] = mask_fit + table["mask_safe"] = self.mask_safe + + filename = make_path(filename) + + if "fits" in filename.suffixes: + primary_hdu = fits.PrimaryHDU() + hdu_table = fits.BinTableHDU(table, name="TABLE") + fits.HDUList([primary_hdu, hdu_table]).writeto( + filename, overwrite=overwrite, checksum=checksum + ) + else: + table.write(make_path(filename), overwrite=overwrite, **kwargs)
+ + +
+[docs] + @classmethod + def read(cls, filename, name=None): + """Read pre-computed flux points and create a dataset. + + Parameters + ---------- + filename : str + Filename to read from. + name : str, optional + Name of the new dataset. Default is None. + Returns + ------- + dataset : `FluxPointsDataset` + FluxPointsDataset. + """ + from gammapy.estimators import FluxPoints + + filename = make_path(filename) + table = Table.read(filename) + mask_fit = None + mask_safe = None + + if "mask_safe" in table.colnames: + mask_safe = table["mask_safe"].data.astype("bool") + + if "mask_fit" in table.colnames: + mask_fit = table["mask_fit"].data.astype("bool") + + return cls( + name=make_name(name), + data=FluxPoints.from_table(table), + mask_fit=mask_fit, + mask_safe=mask_safe, + )
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create flux point dataset from dict. + + Parameters + ---------- + data : dict + Dictionary containing data to create dataset from. + Returns + ------- + dataset : `FluxPointsDataset` + Flux point datasets. + """ + from gammapy.estimators import FluxPoints + + filename = make_path(data["filename"]) + table = Table.read(filename) + mask_fit = table["mask_fit"].data.astype("bool") + mask_safe = table["mask_safe"].data.astype("bool") + table.remove_columns(["mask_fit", "mask_safe"]) + return cls( + name=data["name"], + data=FluxPoints.from_table(table), + mask_fit=mask_fit, + mask_safe=mask_safe, + )
+ + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += "-" * len(self.__class__.__name__) + "\n" + str_ += "\n" + + str_ += "\t{:32}: {} \n\n".format("Name", self.name) + + # data section + n_bins = 0 + if self.data is not None: + n_bins = np.prod(self.data.geom.data_shape) + str_ += "\t{:32}: {} \n".format("Number of total flux points", n_bins) + + n_fit_bins = 0 + if self.mask is not None: + n_fit_bins = np.sum(self.mask.data) + str_ += "\t{:32}: {} \n\n".format("Number of fit bins", n_fit_bins) + + # likelihood section + str_ += "\t{:32}: {}\n".format("Fit statistic type", self.stat_type) + + stat = np.nan + if self.data is not None and self.models is not None: + stat = self.stat_sum() + str_ += "\t{:32}: {:.2f}\n\n".format("Fit statistic value (-2 log(L))", stat) + + # model section + n_models = 0 + if self.models is not None: + n_models = len(self.models) + + str_ += "\t{:32}: {} \n".format("Number of models", n_models) + + if self.models is not None: + str_ += "\t{:32}: {}\n".format( + "Number of parameters", len(self.models.parameters) + ) + str_ += "\t{:32}: {}\n\n".format( + "Number of free parameters", len(self.models.parameters.free_parameters) + ) + str_ += "\t" + "\n\t".join(str(self.models).split("\n")[2:]) + + return str_.expandtabs(tabsize=2) + +
+[docs] + def data_shape(self): + """Shape of the flux points data (tuple).""" + return self.data.energy_ref.shape
+ + +
+[docs] + def flux_pred(self): + """Compute predicted flux.""" + flux = 0.0 + for model in self.models: + reference_model = _get_reference_model(model, self._energy_bounds) + sky_model = SkyModel( + spectral_model=reference_model, temporal_model=model.temporal_model + ) + flux_model = sky_model.evaluate_geom( + self.data.geom.as_energy_true, self.gti + ) + flux += flux_model + return flux
+ + +
+[docs] + def stat_array(self): + """Fit statistic array.""" + return self._available_stat_type[self.stat_type]()
+ + + def _stat_array_chi2(self): + """Chi2 statistics.""" + model = self.flux_pred() + data = self.data.dnde.quantity + try: + sigma = self.data.dnde_err.quantity + except AttributeError: + sigma = (self.data.dnde_errn + self.data.dnde_errp).quantity / 2 + return ((data - model) / sigma).to_value("") ** 2 + + def _stat_array_profile(self): + """Estimate statitistic from interpolation of the likelihood profile.""" + model = np.zeros(self.data.dnde.data.shape) + ( + self.flux_pred() / self.data.dnde_ref + ).to_value("") + stat = np.zeros(model.shape) + for idx in np.ndindex(self._profile_interpolators.shape): + stat[idx] = self._profile_interpolators[idx](model[idx]) + return stat + + def _get_valid_profile_interpolators(self): + value_scan = self.data.stat_scan.geom.axes["norm"].center + shape_axes = self.data.stat_scan.geom._shape[slice(3, None)][::-1] + interpolators = np.empty(shape_axes, dtype=object) + self._mask_valid = np.ones(self.data.dnde.data.shape, dtype=bool) + for idx in np.ndindex(shape_axes): + stat_scan = np.abs( + self.data.stat_scan.data[idx].squeeze() + - self.data.stat.data[idx].squeeze() + ) + self._mask_valid[idx] = np.all(np.isfinite(stat_scan)) + interpolators[idx] = interpolate_profile( + value_scan, + stat_scan, + interp_scale=self.stat_kwargs["interp_scale"], + extrapolate=self.stat_kwargs["extrapolate"], + ) + return interpolators + + def _stat_array_distrib(self): + """Estimate statistic from probability distributions, + assumes that flux points correspond to asymmetric gaussians + and upper limits complementary error functions. + """ + + model = np.zeros(self.data.dnde.data.shape) + self.flux_pred().to_value( + self.data.dnde.unit + ) + + stat = np.zeros(model.shape) + + mask_valid = ~np.isnan(self.data.dnde.data) + loc = self.data.dnde.data[mask_valid] + value = model[mask_valid] + try: + mask_p = (model >= self.data.dnde.data)[mask_valid] + scale = np.zeros(mask_p.shape) + scale[mask_p] = self.data.dnde_errp.data[mask_valid][mask_p] + scale[~mask_p] = self.data.dnde_errn.data[mask_valid][~mask_p] + + mask_invalid = np.isnan(scale) + scale[mask_invalid] = self.data.dnde_err.data[mask_valid][mask_invalid] + except AttributeError: + scale = self.data.dnde_err.data[mask_valid] + + stat[mask_valid] = ((value - loc) / scale) ** 2 + + mask_ul = self.data.is_ul.data + value = model[mask_ul] + loc_ul = self.data.dnde_ul.data[mask_ul] + scale_ul = self.data.dnde_ul.data[mask_ul] + stat[mask_ul] = 2 * np.log( + (erfc((loc_ul - value) / scale_ul) / 2) + / (erfc((loc_ul - 0) / scale_ul) / 2) + ) + + stat[np.isnan(stat.data)] = 0 + return stat + +
+[docs] + def residuals(self, method="diff"): + """Compute flux point residuals. + + Parameters + ---------- + method: {"diff", "diff/model"} + Method used to compute the residuals. Available options are: + + - ``"diff"`` (default): data - model. + - ``"diff/model"``: (data - model) / model. + + Returns + ------- + residuals : `~numpy.ndarray` + Residuals array. + """ + fp = self.data + + model = self.flux_pred() + + residuals = self._compute_residuals(fp.dnde.quantity, model, method) + # Remove residuals for upper_limits + residuals[fp.is_ul.data] = np.nan + return residuals
+ + +
+[docs] + def plot_fit( + self, + ax_spectrum=None, + ax_residuals=None, + kwargs_spectrum=None, + kwargs_residuals=None, + ): + """Plot flux points, best fit model and residuals in two panels. + + Calls `~FluxPointsDataset.plot_spectrum` and `~FluxPointsDataset.plot_residuals`. + + Parameters + ---------- + ax_spectrum : `~matplotlib.axes.Axes`, optional + Axes to plot flux points and best fit model on. Default is None. + ax_residuals : `~matplotlib.axes.Axes`, optional + Axes to plot residuals on. Default is None. + kwargs_spectrum : dict, optional + Keyword arguments passed to `~FluxPointsDataset.plot_spectrum`. Default is None. + kwargs_residuals : dict, optional + Keyword arguments passed to `~FluxPointsDataset.plot_residuals`. Default is None. + + Returns + ------- + ax_spectrum, ax_residuals : `~matplotlib.axes.Axes` + Flux points, best fit model and residuals plots. + + Examples + -------- + >>> from gammapy.modeling.models import PowerLawSpectralModel, SkyModel + >>> from gammapy.estimators import FluxPoints + >>> from gammapy.datasets import FluxPointsDataset + + >>> #load precomputed flux points + >>> filename = "$GAMMAPY_DATA/tests/spectrum/flux_points/diff_flux_points.fits" + >>> flux_points = FluxPoints.read(filename) + >>> model = SkyModel(spectral_model=PowerLawSpectralModel()) + >>> dataset = FluxPointsDataset(model, flux_points) + >>> #configuring optional parameters + >>> kwargs_spectrum = {"kwargs_model": {"color":"red", "ls":"--"}, "kwargs_fp":{"color":"green", "marker":"o"}} + >>> kwargs_residuals = {"color": "blue", "markersize":4, "marker":'s', } + >>> dataset.plot_fit(kwargs_residuals=kwargs_residuals, kwargs_spectrum=kwargs_spectrum) # doctest: +SKIP + """ + + if self.data.geom.ndim > 3: + raise ValueError("Plot fit works with only one energy axis") + fig = plt.figure(figsize=(9, 7)) + + gs = GridSpec(7, 1) + if ax_spectrum is None: + ax_spectrum = fig.add_subplot(gs[:5, :]) + if ax_residuals is None: + plt.setp(ax_spectrum.get_xticklabels(), visible=False) + + if ax_residuals is None: + ax_residuals = fig.add_subplot(gs[5:, :], sharex=ax_spectrum) + + kwargs_spectrum = kwargs_spectrum or {} + kwargs_residuals = kwargs_residuals or {} + kwargs_residuals.setdefault("method", "diff/model") + + self.plot_spectrum(ax=ax_spectrum, **kwargs_spectrum) + self.plot_residuals(ax=ax_residuals, **kwargs_residuals) + return ax_spectrum, ax_residuals
+ + + @property + def _energy_bounds(self): + try: + return u.Quantity([self.data.energy_min.min(), self.data.energy_max.max()]) + except KeyError: + return u.Quantity([self.data.energy_ref.min(), self.data.energy_ref.max()]) + + @property + def _energy_unit(self): + return self.data.energy_ref.unit + +
+[docs] + def plot_residuals(self, ax=None, method="diff", **kwargs): + """Plot flux point residuals. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axes to plot on. Default is None. + method : {"diff", "diff/model"} + Normalization used to compute the residuals, see `FluxPointsDataset.residuals`. Default is "diff". + **kwargs : dict + Keyword arguments passed to `~matplotlib.axes.Axes.errorbar`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axes object. + + """ + if self.data.geom.ndim > 3: + raise ValueError("Plot residuals works with only one energy axis") + ax = ax or plt.gca() + + fp = self.data + residuals = self.residuals(method) + + xerr = self.data.energy_axis.as_plot_xerr + + yerr = fp._plot_get_flux_err(sed_type="dnde") + + if method == "diff/model": + model = self.flux_pred() + yerr = ( + (yerr[0].quantity / model).squeeze(), + (yerr[1].quantity / model).squeeze(), + ) + elif method == "diff": + yerr = yerr[0].quantity.squeeze(), yerr[1].quantity.squeeze() + else: + raise ValueError('Invalid method, choose between "diff" and "diff/model"') + + kwargs.setdefault("color", kwargs.pop("c", "black")) + kwargs.setdefault("marker", "+") + kwargs.setdefault("linestyle", kwargs.pop("ls", "none")) + + with quantity_support(): + ax.errorbar( + fp.energy_ref, residuals.squeeze(), xerr=xerr, yerr=yerr, **kwargs + ) + + ax.axhline(0, color=kwargs["color"], lw=0.5) + + # format axes + ax.set_xlabel(f"Energy [{self._energy_unit.to_string(UNIT_STRING_FORMAT)}]") + ax.set_xscale("log") + label = self._residuals_labels[method] + ax.set_ylabel(f"Residuals\n {label}") + ymin = np.nanmin(residuals - yerr[0]) + ymax = np.nanmax(residuals + yerr[1]) + ymax = max(abs(ymin), ymax) + ax.set_ylim(-1.05 * ymax, 1.05 * ymax) + return ax
+ + +
+[docs] + def plot_spectrum( + self, ax=None, kwargs_fp=None, kwargs_model=None, axis_name="energy" + ): + """Plot flux points and model. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axes to plot on. Default is None. + kwargs_fp : dict, optional + Keyword arguments passed to `gammapy.estimators.FluxPoints.plot` to configure the plot style. + Default is None. + kwargs_model : dict, optional + Keyword arguments passed to `gammapy.modeling.models.SpectralModel.plot` and + `gammapy.modeling.models.SpectralModel.plot_error` to configure the plot style. Default is None. + axis_name : str + Axis along which to plot the flux points for multiple axes. Default is energy. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axes object. + + Examples + -------- + >>> from gammapy.modeling.models import PowerLawSpectralModel, SkyModel + >>> from gammapy.estimators import FluxPoints + >>> from gammapy.datasets import FluxPointsDataset + + >>> #load precomputed flux points + >>> filename = "$GAMMAPY_DATA/tests/spectrum/flux_points/diff_flux_points.fits" + >>> flux_points = FluxPoints.read(filename) + >>> model = SkyModel(spectral_model=PowerLawSpectralModel()) + >>> dataset = FluxPointsDataset(model, flux_points) + >>> #configuring optional parameters + >>> kwargs_model = {"color":"red", "ls":"--"} + >>> kwargs_fp = {"color":"green", "marker":"o"} + >>> dataset.plot_spectrum(kwargs_fp=kwargs_fp, kwargs_model=kwargs_model) # doctest: +SKIP + """ + kwargs_fp = (kwargs_fp or {}).copy() + kwargs_model = (kwargs_model or {}).copy() + + # plot flux points + kwargs_fp.setdefault("sed_type", "e2dnde") + if axis_name == "time": + kwargs_fp["sed_type"] = "norm" + ax = self.data.plot(ax=ax, **kwargs_fp, axis_name=axis_name) + + kwargs_model.setdefault("label", "Best fit model") + + kwargs_model.setdefault("zorder", 10) + + for model in self.models: + if model.datasets_names is None or self.name in model.datasets_names: + if axis_name == "energy": + kwargs_model.setdefault("sed_type", "e2dnde") + kwargs_model.setdefault("energy_bounds", self._energy_bounds) + model.spectral_model.plot(ax=ax, **kwargs_model) + if axis_name == "time": + kwargs_model.setdefault( + "time_range", self.data.geom.axes["time"].time_bounds + ) + model.temporal_model.plot(ax=ax, **kwargs_model) + + if axis_name == "energy": + kwargs_model["color"] = ax.lines[-1].get_color() + kwargs_model.pop("label") + for model in self.models: + if model.datasets_names is None or self.name in model.datasets_names: + model.spectral_model.plot_error(ax=ax, **kwargs_model) + + return ax
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/io.html b/docs/dev/_modules/gammapy/datasets/io.html new file mode 100644 index 00000000000..2033b202ed6 --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/io.html @@ -0,0 +1,1057 @@ + + + + + + + + + + gammapy.datasets.io — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.io

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import numpy as np
+from astropy import units as u
+from astropy.io import fits
+from astropy.table import Table
+from gammapy.data import GTI
+from gammapy.irf import EDispKernel, EDispKernelMap
+from gammapy.maps import RegionNDMap
+from gammapy.utils.scripts import make_path
+from .spectrum import SpectrumDatasetOnOff
+
+__all__ = [
+    "DatasetReader",
+    "DatasetWriter",
+    "OGIPDatasetReader",
+    "OGIPDatasetWriter",
+]
+
+
+class DatasetReader(abc.ABC):
+    """Dataset reader base class."""
+
+    @property
+    @abc.abstractmethod
+    def tag(self):
+        pass
+
+    @abc.abstractmethod
+    def read(self):
+        pass
+
+
+class DatasetWriter(abc.ABC):
+    """Dataset writer base class."""
+
+    @property
+    @abc.abstractmethod
+    def tag(self):
+        pass
+
+    @abc.abstractmethod
+    def write(self, dataset):
+        pass
+
+
+
+[docs] +class OGIPDatasetWriter(DatasetWriter): + """Write OGIP files. + + If you want to use the written files with Sherpa, you have to use the + ``ogip-sherpa`` format. Then all files will be written in units of 'keV' and + 'cm2'. + + The naming scheme is fixed as following: + + * PHA file is named filename.fits + * BKG file is named filename_bkg.fits + * ARF file is named filename_arf.fits + * RMF file is named filename_rmf.fits + + Parameters + ---------- + filename : `~pathlib.Path` or str + Filename. + format : {"ogip", "ogip-sherpa"} + Which format to use. Default is 'ogip'. + overwrite : bool, optional + Overwrite existing files. Default is False. + checksum : bool + When True adds both DATASUM and CHECKSUM cards to the headers written to the files. + Default is False. + """ + + tag = ["ogip", "ogip-sherpa"] + + def __init__(self, filename, format="ogip", overwrite=False, checksum=False): + filename = make_path(filename) + filename.parent.mkdir(exist_ok=True, parents=True) + + self.filename = filename + self.format = format + self.overwrite = overwrite + self.checksum = checksum + +
+[docs] + @staticmethod + def get_filenames(filename): + """Get filenames. + + Parameters + ---------- + filename : `~pathlib.Path` + Filename. + + Returns + ------- + filenames : dict + Dictionary of filenames. + """ + suffix = "".join(filename.suffixes) + name = filename.name.replace(suffix, "") + name = f"{name}{{}}{suffix}" + return { + "respfile": name.format("_rmf"), + "backfile": name.format("_bkg"), + "ancrfile": name.format("_arf"), + }
+ + +
+[docs] + def get_ogip_meta(self, dataset, is_bkg=False): + """Meta info for the OGIP data format.""" + try: + livetime = dataset.exposure.meta["livetime"] + except KeyError: + raise ValueError( + "Storing in ogip format require the livetime " + "to be defined in the exposure meta data" + ) + + hdu_class = "BKG" if is_bkg else "TOTAL" + + meta = { + "HDUCLAS2": hdu_class, + "HDUCLAS3": "COUNT", + "HDUCLAS4": "TYPE:1", + "EXPOSURE": livetime.to_value("s"), + "OBS_ID": dataset.name, + } + + filenames = OGIPDatasetWriter.get_filenames(self.filename) + meta["ANCRFILE"] = filenames["ancrfile"] + + if dataset.counts_off: + meta["BACKFILE"] = filenames["backfile"] + + if dataset.edisp: + meta["RESPFILE"] = filenames["respfile"] + + return meta
+ + +
+[docs] + def write(self, dataset): + """Write dataset to file. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to write. + """ + filenames = self.get_filenames(self.filename) + + self.write_pha(dataset, filename=self.filename) + + path = self.filename.parent + self.write_arf(dataset, filename=path / filenames["ancrfile"]) + + if dataset.counts_off: + self.write_bkg(dataset, filename=path / filenames["backfile"]) + + if dataset.edisp: + self.write_rmf(dataset, filename=path / filenames["respfile"])
+ + +
+[docs] + def write_rmf(self, dataset, filename): + """Write energy dispersion. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to write. + filename : str or `~pathlib.Path` + Filename to use. + """ + kernel = dataset.edisp.get_edisp_kernel() + kernel.write( + filename=filename, + format=self.format, + checksum=self.checksum, + overwrite=self.overwrite, + )
+ + +
+[docs] + def write_arf(self, dataset, filename): + """Write effective area. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to write. + filename : str or `~pathlib.Path` + Filename to use. + + """ + aeff = dataset.exposure / dataset.exposure.meta["livetime"] + aeff.write( + filename=filename, + overwrite=self.overwrite, + format=self.format.replace("ogip", "ogip-arf"), + checksum=self.checksum, + )
+ + +
+[docs] + def to_counts_hdulist(self, dataset, is_bkg=False): + """Convert counts region map to hdulist. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to write. + is_bkg : bool + Whether to use counts off. Default is False. + """ + counts = dataset.counts_off if is_bkg else dataset.counts + acceptance = dataset.acceptance_off if is_bkg else dataset.acceptance + + hdulist = counts.to_hdulist(format=self.format) + + table = Table.read(hdulist["SPECTRUM"]) + meta = self.get_ogip_meta(dataset, is_bkg=is_bkg) + + if dataset.mask_safe is not None: + mask_array = dataset.mask_safe.data[:, 0, 0] + else: + mask_array = np.ones(acceptance.data.size) + + table["QUALITY"] = np.logical_not(mask_array) + del table.meta["QUALITY"] + + table["BACKSCAL"] = acceptance.data[:, 0, 0] + del table.meta["BACKSCAL"] + + # adapt meta data + table.meta.update(meta) + hdulist["SPECTRUM"] = fits.BinTableHDU(table) + return hdulist
+ + +
+[docs] + def write_pha(self, dataset, filename): + """Write counts file. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to write. + filename : str or `~pathlib.Path` + Filename to use. + + """ + hdulist = self.to_counts_hdulist(dataset) + + if dataset.gti: + hdu = dataset.gti.to_table_hdu() + hdulist.append(hdu) + + hdulist.writeto(filename, overwrite=self.overwrite, checksum=self.checksum)
+ + +
+[docs] + def write_bkg(self, dataset, filename): + """Write off counts file. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to write. + filename : str or `~pathlib.Path` + Filename to use. + """ + hdulist = self.to_counts_hdulist(dataset, is_bkg=True) + hdulist.writeto(filename, overwrite=self.overwrite, checksum=self.checksum)
+
+ + + +
+[docs] +class OGIPDatasetReader(DatasetReader): + """Read `~gammapy.datasets.SpectrumDatasetOnOff` from OGIP files. + + BKG file, ARF, and RMF must be set in the PHA header and be present in + the same folder. + + The naming scheme is fixed to the following scheme: + + * PHA file is named ``pha_obs{name}.fits`` + * BKG file is named ``bkg_obs{name}.fits`` + * ARF file is named ``arf_obs{name}.fits`` + * RMF file is named ``rmf_obs{name}.fits`` + with ``{name}`` the dataset name. + + Parameters + ---------- + filename : str or `~pathlib.Path` + OGIP PHA file to read. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + """ + + tag = "ogip" + + def __init__(self, filename, checksum=False, name=None): + self.filename = make_path(filename) + self.checksum = checksum + self.name = name + +
+[docs] + def get_valid_path(self, filename): + """Get absolute or relative path. + + The relative path is with respect to the name of the reference file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + Filename. + + Returns + ------- + filename : `~pathlib.Path` + Valid path. + """ + filename = make_path(filename) + + if not filename.exists(): + return self.filename.parent / filename + else: + return filename
+ + +
+[docs] + def get_filenames(self, pha_meta): + """Get filenames. + + Parameters + ---------- + pha_meta : dict + Metadata from the PHA file. + + Returns + ------- + filenames : dict + Dictionary with filenames of "arffile", "rmffile" (optional) + and "bkgfile" (optional). + """ + filenames = {"arffile": self.get_valid_path(pha_meta["ANCRFILE"])} + + if "BACKFILE" in pha_meta: + filenames["bkgfile"] = self.get_valid_path(pha_meta["BACKFILE"]) + + if "RESPFILE" in pha_meta: + filenames["rmffile"] = self.get_valid_path(pha_meta["RESPFILE"]) + + return filenames
+ + +
+[docs] + @staticmethod + def read_pha(filename, checksum=False): + """Read PHA file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + PHA file name. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + data : dict + Dictionary with counts, acceptance and mask_safe. + """ + data = {} + + with fits.open(filename, memmap=False, checksum=checksum) as hdulist: + data["counts"] = RegionNDMap.from_hdulist(hdulist, format="ogip") + data["acceptance"] = RegionNDMap.from_hdulist( + hdulist, format="ogip", ogip_column="BACKSCAL" + ) + + if "GTI" in hdulist: + data["gti"] = GTI.from_table_hdu(hdulist["GTI"]) + + data["mask_safe"] = RegionNDMap.from_hdulist( + hdulist, format="ogip", ogip_column="QUALITY" + ) + + return data
+ + +
+[docs] + @staticmethod + def read_bkg(filename, checksum=False): + """Read PHA background file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + PHA file name. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + data : dict + Dictionary with counts_off and acceptance_off. + """ + with fits.open(filename, memmap=False, checksum=checksum) as hdulist: + counts_off = RegionNDMap.from_hdulist(hdulist, format="ogip") + acceptance_off = RegionNDMap.from_hdulist( + hdulist, ogip_column="BACKSCAL", format="ogip" + ) + return {"counts_off": counts_off, "acceptance_off": acceptance_off}
+ + +
+[docs] + @staticmethod + def read_rmf(filename, exposure, checksum=False): + """Read RMF file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + PHA file name. + exposure : `RegionNDMap` + Exposure map. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + data : `EDispKernelMap` + Dictionary with edisp. + """ + kernel = EDispKernel.read(filename, checksum=checksum) + edisp = EDispKernelMap.from_edisp_kernel(kernel, geom=exposure.geom) + + # TODO: resolve this separate handling of exposure for edisp + edisp.exposure_map.data = exposure.data[:, :, np.newaxis, :] + return edisp
+ + +
+[docs] + @staticmethod + def read_arf(filename, livetime, checksum=False): + """Read ARF file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + PHA file name. + livetime : `Quantity` + Livetime. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + data : `RegionNDMap` + Exposure map. + """ + aeff = RegionNDMap.read(filename, format="ogip-arf", checksum=checksum) + exposure = aeff * livetime + exposure.meta["livetime"] = livetime + return exposure
+ + +
+[docs] + def read(self): + """Read dataset. + + Returns + ------- + dataset : SpectrumDatasetOnOff + Spectrum dataset. + """ + kwargs = self.read_pha(self.filename, checksum=self.checksum) + pha_meta = kwargs["counts"].meta + + if self.name is not None: + name = self.name + else: + name = str(pha_meta["OBS_ID"]) + livetime = pha_meta["EXPOSURE"] * u.s + + filenames = self.get_filenames(pha_meta=pha_meta) + exposure = self.read_arf( + filenames["arffile"], livetime=livetime, checksum=self.checksum + ) + + if "bkgfile" in filenames: + bkg = self.read_bkg(filenames["bkgfile"], checksum=self.checksum) + kwargs.update(bkg) + + if "rmffile" in filenames: + kwargs["edisp"] = self.read_rmf( + filenames["rmffile"], exposure=exposure, checksum=self.checksum + ) + + return SpectrumDatasetOnOff(name=name, exposure=exposure, **kwargs)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/map.html b/docs/dev/_modules/gammapy/datasets/map.html new file mode 100644 index 00000000000..a2e586dacde --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/map.html @@ -0,0 +1,3925 @@ + + + + + + + + + + gammapy.datasets.map — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.map

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+from scipy.stats import median_abs_deviation as mad
+import astropy.units as u
+from astropy.io import fits
+from astropy.table import Table
+from regions import CircleSkyRegion
+import matplotlib.pyplot as plt
+from gammapy.data import GTI, PointingMode
+from gammapy.irf import EDispKernelMap, EDispMap, PSFKernel, PSFMap, RecoPSFMap
+from gammapy.maps import LabelMapAxis, Map, MapAxes, MapAxis, WcsGeom
+from gammapy.modeling.models import DatasetModels, FoVBackgroundModel, Models
+from gammapy.stats import (
+    CashCountsStatistic,
+    WStatCountsStatistic,
+    cash,
+    cash_sum_cython,
+    get_wstat_mu_bkg,
+    wstat,
+)
+from gammapy.utils.fits import HDULocation, LazyFitsData
+from gammapy.utils.random import get_random_state
+from gammapy.utils.scripts import make_name, make_path
+from gammapy.utils.table import hstack_columns
+from .core import Dataset
+from .evaluator import MapEvaluator
+from .metadata import MapDatasetMetaData
+from .utils import get_axes
+
+__all__ = [
+    "MapDataset",
+    "MapDatasetOnOff",
+    "create_empty_map_dataset_from_irfs",
+    "create_map_dataset_geoms",
+    "create_map_dataset_from_observation",
+]
+
+log = logging.getLogger(__name__)
+
+
+RAD_MAX = 0.66
+RAD_AXIS_DEFAULT = MapAxis.from_bounds(
+    0, RAD_MAX, nbin=66, node_type="edges", name="rad", unit="deg"
+)
+MIGRA_AXIS_DEFAULT = MapAxis.from_bounds(
+    0.2, 5, nbin=48, node_type="edges", name="migra"
+)
+
+BINSZ_IRF_DEFAULT = 0.2 * u.deg
+
+EVALUATION_MODE = "local"
+USE_NPRED_CACHE = True
+
+
+
+[docs] +def create_map_dataset_geoms( + geom, + energy_axis_true=None, + migra_axis=None, + rad_axis=None, + binsz_irf=BINSZ_IRF_DEFAULT, + reco_psf=False, +): + """Create map geometries for a `MapDataset`. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Reference target geometry with a reconstructed energy axis. It is used for counts and background maps. + Additional external data axes can be added to support e.g. event types. + energy_axis_true : `~gammapy.maps.MapAxis` + True energy axis used for IRF maps. + migra_axis : `~gammapy.maps.MapAxis` + If set, this provides the migration axis for the energy dispersion map. + If not set, an EDispKernelMap is produced instead. Default is None. + rad_axis : `~gammapy.maps.MapAxis` + Rad axis for the PSF map. + binsz_irf : float + IRF Map pixel size in degrees. + reco_psf : bool + Use reconstructed energy for the PSF geometry. Default is False. + + Returns + ------- + geoms : dict + Dictionary with map geometries. + """ + rad_axis = rad_axis or RAD_AXIS_DEFAULT + + if energy_axis_true is not None: + energy_axis_true.assert_name("energy_true") + else: + energy_axis_true = geom.axes["energy"].copy(name="energy_true") + + external_axes = geom.axes.drop("energy") + geom_image = geom.to_image() + geom_exposure = geom_image.to_cube(MapAxes([energy_axis_true]) + external_axes) + geom_irf = geom_image.to_binsz(binsz=binsz_irf) + + if reco_psf: + geom_psf = geom_irf.to_cube( + MapAxes([rad_axis, geom.axes["energy"]]) + external_axes + ) + else: + geom_psf = geom_irf.to_cube( + MapAxes([rad_axis, energy_axis_true]) + external_axes + ) + + if migra_axis: + geom_edisp = geom_irf.to_cube( + MapAxes([migra_axis, energy_axis_true]) + external_axes + ) + else: + geom_edisp = geom_irf.to_cube( + MapAxes([geom.axes["energy"], energy_axis_true]) + external_axes + ) + + return { + "geom": geom, + "geom_exposure": geom_exposure, + "geom_psf": geom_psf, + "geom_edisp": geom_edisp, + }
+ + + +def _default_energy_axis(observation, energy_bin_per_decade_max=30, position=None): + # number of bins per decade estimated from the energy resolution + # such as diff(ereco.edges)/ereco.center ~ min(eres) + + if isinstance(observation.psf, PSFMap): + etrue = observation.psf.psf_map.geom.axes[observation.psf.energy_name] + if isinstance(observation.edisp, EDispKernelMap): + ekern = observation.edisp.get_edisp_kernel( + energy_axis=None, position=position + ) + if isinstance(observation.edisp, EDispMap): + ekern = observation.edisp.get_edisp_kernel( + energy_axis=etrue.rename("energy"), position=position + ) + eres = ekern.get_resolution(etrue.center) + elif hasattr(observation.psf, "axes"): + etrue = observation.psf.axes[0] # only where psf is defined + if position: + offset = observation.pointing.fixed_icrs.separation(position) + else: + offset = 0 * u.deg + ekern = observation.edisp.to_edisp_kernel(offset) + eres = ekern.get_resolution(etrue.center) + + eres = eres[np.isfinite(eres) & (eres > 0.0)] + if eres.size > 0: + # remove outliers + beyond_mad = np.median(eres) - mad(eres) * eres.unit + eres[eres < beyond_mad] = np.nan + nbin_per_decade = np.nan_to_num( + int(np.rint(2.0 / np.nanmin(eres.value))), nan=np.inf + ) + nbin_per_decade = np.minimum(nbin_per_decade, energy_bin_per_decade_max) + else: + nbin_per_decade = energy_bin_per_decade_max + + energy_axis_true = MapAxis.from_energy_bounds( + etrue.edges[0], + etrue.edges[-1], + nbin=nbin_per_decade, + per_decade=True, + name="energy_true", + ) + if hasattr(observation, "bkg") and observation.bkg: + ereco = observation.bkg.axes["energy"] + energy_axis = MapAxis.from_energy_bounds( + ereco.edges[0], + ereco.edges[-1], + nbin=nbin_per_decade, + per_decade=True, + name="energy", + ) + else: + energy_axis = energy_axis_true.rename("energy") + + return energy_axis, energy_axis_true + + +def _default_binsz(observation, spatial_bin_size_min=0.01 * u.deg): + # bin size estimated from the minimal r68 of the psf + if isinstance(observation.psf, PSFMap): + energy_axis = observation.psf.psf_map.geom.axes[observation.psf.energy_name] + psf_r68 = observation.psf.containment_radius(0.68, energy_axis.edges) + elif hasattr(observation.psf, "axes"): + etrue = observation.psf.axes[0] # only where psf is defined + psf_r68 = observation.psf.containment_radius( + 0.68, energy_true=etrue.edges, offset=0.0 * u.deg + ) + + psf_r68 = psf_r68[np.isfinite(psf_r68)] + if psf_r68.size > 0: + # remove outliers + beyond_mad = np.median(psf_r68) - mad(psf_r68) * psf_r68.unit + psf_r68[psf_r68 < beyond_mad] = np.nan + binsz = np.nan_to_num(np.nanmin(psf_r68), nan=-np.inf) + binsz = np.maximum(binsz, spatial_bin_size_min) + else: + binsz = spatial_bin_size_min + return binsz + + +def _default_width(observation, spatial_width_max=12 * u.deg): + # width estimated from the rad_max or the offset_max + if isinstance(observation.psf, PSFMap): + width = 2.0 * np.max(observation.psf.psf_map.geom.width) + elif hasattr(observation.psf, "axes"): + width = 2.0 * observation.psf.axes["offset"].edges[-1] + else: + width = spatial_width_max + return np.minimum(width, spatial_width_max) + + +
+[docs] +def create_empty_map_dataset_from_irfs( + observation, + dataset_name=None, + energy_axis_true=None, + energy_axis=None, + energy_bin_per_decade_max=30, + spatial_width=None, + spatial_width_max=12 * u.deg, + spatial_bin_size=None, + spatial_bin_size_min=0.01 * u.deg, + position=None, + frame="icrs", +): + """Create a MapDataset, if energy axes, spatial width or bin size are not given + they are determined automatically from the IRFs, + but the estimated value cannot exceed the given limits. + + Parameters + ---------- + observation : `~gammapy.data.Observation` + Observation containing the IRFs. + dataset_name : str, optional + Default is None. If None it is determined from the observation ID. + energy_axis_true : `~gammapy.maps.MapAxis`, optional + True energy axis. Default is None. + If None it is determined from the observation IRFs. + energy_axis : `~gammapy.maps.MapAxis`, optional + Reconstructed energy axis. Default is None. + If None it is determined from the observation IRFs. + energy_bin_per_decade_max : int, optional + Maximal number of bin per decade in energy for the reference dataset + spatial_width : `~astropy.units.Quantity`, optional + Spatial window size. Default is None. + If None it is determined from the observation offset max or rad max. + spatial_width_max : `~astropy.quantity.Quantity`, optional + Maximal spatial width. Default is 12 degree. + spatial_bin_size : `~astropy.units.Quantity`, optional + Pixel size. Default is None. + If None it is determined from the observation PSF R68. + spatial_bin_size_min : `~astropy.quantity.Quantity`, optional + Minimal spatial bin size. Default is 0.01 degree. + position : `~astropy.coordinates.SkyCoord`, optional + Center of the geometry. Default is the observation pointing at mid-observation time. + frame: str, optional + frame of the coordinate system. Default is "icrs". + """ + + if position is None: + if hasattr(observation, "pointing"): + if observation.pointing.mode is not PointingMode.POINTING: + raise NotImplementedError( + "Only datas with fixed pointing in ICRS are supported" + ) + position = observation.pointing.fixed_icrs + + if spatial_width is None: + spatial_width = _default_width(observation, spatial_width_max) + if spatial_bin_size is None: + spatial_bin_size = _default_binsz(observation, spatial_bin_size_min) + + if energy_axis is None or energy_axis_true is None: + energy_axis_, energy_axis_true_ = _default_energy_axis( + observation, energy_bin_per_decade_max, position + ) + + if energy_axis is None: + energy_axis = energy_axis_ + + if energy_axis_true is None: + energy_axis_true = energy_axis_true_ + + if dataset_name is None: + dataset_name = f"obs_{observation.obs_id}" + + geom = WcsGeom.create( + skydir=position.transform_to(frame), + width=spatial_width, + binsz=spatial_bin_size.to_value(u.deg), + frame=frame, + axes=[energy_axis], + ) + + axes = dict( + energy_axis_true=energy_axis_true, + ) + if observation.edisp is not None: + if isinstance(observation.edisp, EDispMap): + axes["migra_axis"] = observation.edisp.edisp_map.geom.axes["migra"] + elif hasattr(observation.edisp, "axes"): + axes["migra_axis"] = observation.edisp.axes["migra"] + + dataset = MapDataset.create( + geom, + name=dataset_name, + **axes, + ) + return dataset
+ + + +
+[docs] +def create_map_dataset_from_observation( + observation, + models=None, + dataset_name=None, + energy_axis_true=None, + energy_axis=None, + energy_bin_per_decade_max=30, + spatial_width=None, + spatial_width_max=12 * u.deg, + spatial_bin_size=None, + spatial_bin_size_min=0.01 * u.deg, + position=None, + frame="icrs", +): + """Create a MapDataset, if energy axes, spatial width or bin size are not given + they are determined automatically from the observation IRFs, + but the estimated value cannot exceed the given limits. + + Parameters + ---------- + observation : `~gammapy.data.Observation` + Observation to be simulated. + models : `~gammapy.modeling.Models`, optional + Models. Default is None. + dataset_name : str, optional + If `models` contains one or multiple `FoVBackgroundModel` + it should match the `dataset_name` of the background model to use. + Default is None. If None it is determined from the observation ID. + energy_axis_true : `~gammapy.maps.MapAxis`, optional + True energy axis. Default is None. + If None it is determined from the observation IRFs. + energy_axis : `~gammapy.maps.MapAxis`, optional + Reconstructed energy axis. Default is None. + If None it is determined from the observation IRFs. + energy_bin_per_decade_max : int, optional + Maximal number of bin per decade in energy for the reference dataset + spatial_width : `~astropy.units.Quantity`, optional + Spatial window size. Default is None. + If None it is determined from the observation offset max or rad max. + spatial_width_max : `~astropy.quantity.Quantity`, optional + Maximal spatial width. Default is 12 degree. + spatial_bin_size : `~astropy.units.Quantity`, optional + Pixel size. Default is None. + If None it is determined from the observation PSF R68. + spatial_bin_size_min : `~astropy.quantity.Quantity`, optional + Minimal spatial bin size. Default is 0.01 degree. + position : `~astropy.coordinates.SkyCoord`, optional + Center of the geometry. Defalut is the observation pointing. + frame: str, optional + frame of the coordinate system. Default is "icrs". + """ + from gammapy.makers import MapDatasetMaker + + dataset = create_empty_map_dataset_from_irfs( + observation, + dataset_name=dataset_name, + energy_axis_true=energy_axis_true, + energy_axis=energy_axis, + energy_bin_per_decade_max=energy_bin_per_decade_max, + spatial_width=spatial_width, + spatial_width_max=spatial_width_max, + spatial_bin_size=spatial_bin_size, + spatial_bin_size_min=spatial_bin_size_min, + position=position, + frame=frame, + ) + + if models is None: + models = Models() + if not np.any( + [ + isinstance(m, FoVBackgroundModel) and m.datasets_names[0] == dataset.name + for m in models + ] + ): + models.append(FoVBackgroundModel(dataset_name=dataset.name)) + + components = ["exposure"] + if observation.edisp is not None: + components.append("edisp") + if observation.bkg is not None: + components.append("background") + if observation.psf is not None: + components.append("psf") + + maker = MapDatasetMaker(selection=components) + dataset = maker.run(dataset, observation) + dataset.models = models + return dataset
+ + + +
+[docs] +class MapDataset(Dataset): + """Main map dataset for likelihood fitting. + + It bundles together binned counts, background, IRFs in the form of `~gammapy.maps.Map`. + A safe mask and a fit mask can be added to exclude bins during the analysis. + If models are assigned to it, it can compute predicted counts in each bin of the counts `Map` and compute + the associated statistic function, here the Cash statistic (see `~gammapy.stats.cash`). + + For more information see :ref:`datasets`. + + Parameters + ---------- + models : `~gammapy.modeling.models.Models` + Source sky models. + counts : `~gammapy.maps.WcsNDMap` or `~gammapy.utils.fits.HDULocation` + Counts cube. + exposure : `~gammapy.maps.WcsNDMap` or `~gammapy.utils.fits.HDULocation` + Exposure cube. + background : `~gammapy.maps.WcsNDMap` or `~gammapy.utils.fits.HDULocation` + Background cube. + mask_fit : `~gammapy.maps.WcsNDMap` or `~gammapy.utils.fits.HDULocation` + Mask to apply to the likelihood for fitting. + psf : `~gammapy.irf.PSFMap` or `~gammapy.utils.fits.HDULocation` + PSF kernel. + edisp : `~gammapy.irf.EDispMap` or `~gammapy.utils.fits.HDULocation` + Energy dispersion kernel + mask_safe : `~gammapy.maps.WcsNDMap` or `~gammapy.utils.fits.HDULocation` + Mask defining the safe data range. + gti : `~gammapy.data.GTI` + GTI of the observation or union of GTI if it is a stacked observation. + meta_table : `~astropy.table.Table` + Table listing information on observations used to create the dataset. + One line per observation for stacked datasets. + meta : `~gammapy.datasets.MapDatasetMetaData` + Associated meta data container + + + Notes + ----- + + If an `HDULocation` is passed the map is loaded lazily. This means the + map data is only loaded in memory as the corresponding data attribute + on the MapDataset is accessed. If it was accessed once it is cached for + the next time. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> filename = "$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz" + >>> dataset = MapDataset.read(filename, name="cta-dataset") + >>> print(dataset) + MapDataset + ---------- + <BLANKLINE> + Name : cta-dataset + <BLANKLINE> + Total counts : 104317 + Total background counts : 91507.70 + Total excess counts : 12809.30 + <BLANKLINE> + Predicted counts : 91507.69 + Predicted background counts : 91507.70 + Predicted excess counts : nan + <BLANKLINE> + Exposure min : 6.28e+07 m2 s + Exposure max : 1.90e+10 m2 s + <BLANKLINE> + Number of total bins : 768000 + Number of fit bins : 691680 + <BLANKLINE> + Fit statistic type : cash + Fit statistic value (-2 log(L)) : nan + <BLANKLINE> + Number of models : 0 + Number of parameters : 0 + Number of free parameters : 0 + + + See Also + -------- + MapDatasetOnOff, SpectrumDataset, FluxPointsDataset. + """ + + stat_type = "cash" + tag = "MapDataset" + counts = LazyFitsData(cache=True) + exposure = LazyFitsData(cache=True) + edisp = LazyFitsData(cache=True) + background = LazyFitsData(cache=True) + psf = LazyFitsData(cache=True) + mask_fit = LazyFitsData(cache=True) + mask_safe = LazyFitsData(cache=True) + + _lazy_data_members = [ + "counts", + "exposure", + "edisp", + "psf", + "mask_fit", + "mask_safe", + "background", + ] + # TODO: shoule be part of the LazyFitsData no ? + gti = None + meta_table = None + + def __init__( + self, + models=None, + counts=None, + exposure=None, + background=None, + psf=None, + edisp=None, + mask_safe=None, + mask_fit=None, + gti=None, + meta_table=None, + name=None, + meta=None, + ): + self._name = make_name(name) + self._evaluators = {} + + self.counts = counts + self.exposure = exposure + self.background = background + self._background_cached = None + self._background_parameters_cached = None + + self.mask_fit = mask_fit + + if psf and not isinstance(psf, (PSFMap, HDULocation)): + raise ValueError( + f"'psf' must be a 'PSFMap' or `HDULocation` object, got {type(psf)}" + ) + self.psf = psf + + if edisp and not isinstance(edisp, (EDispMap, EDispKernelMap, HDULocation)): + raise ValueError( + "'edisp' must be a 'EDispMap', `EDispKernelMap` or 'HDULocation' " + f"object, got `{type(edisp)}` instead." + ) + + self.edisp = edisp + self.mask_safe = mask_safe + self.gti = gti + self.models = models + self.meta_table = meta_table + if meta is None: + self._meta = MapDatasetMetaData() + else: + self._meta = meta + + @property + def _psf_kernel(self): + """Precompute PSFkernel if there is only one spatial bin in the PSFmap""" + if self.psf and self.psf.has_single_spatial_bin: + if self.psf.energy_name == "energy_true": + map_ref = self.exposure + else: + map_ref = self.counts + if map_ref and not map_ref.geom.is_region: + return self.psf.get_psf_kernel(map_ref.geom) + + @property + def meta(self): + return self._meta + + @meta.setter + def meta(self, value): + self._meta = value + + # TODO: keep or remove? + @property + def background_model(self): + try: + return self.models[f"{self.name}-bkg"] + except (ValueError, TypeError): + pass + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += "-" * len(self.__class__.__name__) + "\n" + str_ += "\n" + str_ += "\t{:32}: {{name}} \n\n".format("Name") + str_ += "\t{:32}: {{counts:.0f}} \n".format("Total counts") + str_ += "\t{:32}: {{background:.2f}}\n".format("Total background counts") + str_ += "\t{:32}: {{excess:.2f}}\n\n".format("Total excess counts") + + str_ += "\t{:32}: {{npred:.2f}}\n".format("Predicted counts") + str_ += "\t{:32}: {{npred_background:.2f}}\n".format( + "Predicted background counts" + ) + str_ += "\t{:32}: {{npred_signal:.2f}}\n\n".format("Predicted excess counts") + + str_ += "\t{:32}: {{exposure_min:.2e}}\n".format("Exposure min") + str_ += "\t{:32}: {{exposure_max:.2e}}\n\n".format("Exposure max") + + str_ += "\t{:32}: {{n_bins}} \n".format("Number of total bins") + str_ += "\t{:32}: {{n_fit_bins}} \n\n".format("Number of fit bins") + + # likelihood section + str_ += "\t{:32}: {{stat_type}}\n".format("Fit statistic type") + str_ += "\t{:32}: {{stat_sum:.2f}}\n\n".format( + "Fit statistic value (-2 log(L))" + ) + + info = self.info_dict() + str_ = str_.format(**info) + + # model section + n_models, n_pars, n_free_pars = 0, 0, 0 + if self.models is not None: + n_models = len(self.models) + n_pars = len(self.models.parameters) + n_free_pars = len(self.models.parameters.free_parameters) + + str_ += "\t{:32}: {} \n".format("Number of models", n_models) + str_ += "\t{:32}: {}\n".format("Number of parameters", n_pars) + str_ += "\t{:32}: {}\n\n".format("Number of free parameters", n_free_pars) + + if self.models is not None: + str_ += "\t" + "\n\t".join(str(self.models).split("\n")[2:]) + + return str_.expandtabs(tabsize=2) + + @property + def geoms(self): + """Map geometries. + + Returns + ------- + geoms : dict + Dictionary of map geometries involved in the dataset. + """ + geoms = {} + + geoms["geom"] = self._geom + + if self.exposure: + geoms["geom_exposure"] = self.exposure.geom + + if self.psf: + geoms["geom_psf"] = self.psf.psf_map.geom + + if self.edisp: + geoms["geom_edisp"] = self.edisp.edisp_map.geom + + return geoms + + @property + def models(self): + """Models set on the dataset (`~gammapy.modeling.models.Models`).""" + return self._models + + @property + def excess(self): + """Observed excess: counts-background.""" + return self.counts - self.background + + @models.setter + def models(self, models): + """Models setter.""" + self._evaluators = {} + if models is not None: + models = DatasetModels(models) + models = models.select(datasets_names=self.name) + if models: + psf = self._psf_kernel + for model in models: + if not isinstance(model, FoVBackgroundModel): + evaluator = MapEvaluator( + model=model, + psf=psf, + evaluation_mode=EVALUATION_MODE, + gti=self.gti, + use_cache=USE_NPRED_CACHE, + ) + self._evaluators[model.name] = evaluator + + self._models = models + + @property + def evaluators(self): + """Model evaluators.""" + return self._evaluators + + @property + def _geom(self): + """Main analysis geometry.""" + if self.counts is not None: + return self.counts.geom + elif self.background is not None: + return self.background.geom + elif self.mask_safe is not None: + return self.mask_safe.geom + elif self.mask_fit is not None: + return self.mask_fit.geom + else: + raise ValueError( + "Either 'counts', 'background', 'mask_fit'" + " or 'mask_safe' must be defined." + ) + + @property + def data_shape(self): + """Shape of the counts or background data (tuple).""" + return self._geom.data_shape + + def _energy_range(self, mask_map=None): + """Compute the energy range maps with or without the fit mask.""" + geom = self._geom + energy = geom.axes["energy"].edges + e_i = geom.axes.index_data("energy") + geom = geom.drop("energy") + + if mask_map is not None: + mask = mask_map.data + if mask.any(): + idx = mask.argmax(e_i) + energy_min = energy.value[idx] + mask_nan = ~mask.any(e_i) + energy_min[mask_nan] = np.nan + + mask = np.flip(mask, e_i) + idx = mask.argmax(e_i) + energy_max = energy.value[::-1][idx] + energy_max[mask_nan] = np.nan + else: + energy_min = np.full(geom.data_shape, np.nan) + energy_max = energy_min.copy() + else: + data_shape = geom.data_shape + energy_min = np.full(data_shape, energy.value[0]) + energy_max = np.full(data_shape, energy.value[-1]) + + map_min = Map.from_geom(geom, data=energy_min, unit=energy.unit) + map_max = Map.from_geom(geom, data=energy_max, unit=energy.unit) + return map_min, map_max + + @property + def energy_range(self): + """Energy range maps defined by the mask_safe and mask_fit.""" + return self._energy_range(self.mask) + + @property + def energy_range_safe(self): + """Energy range maps defined by the mask_safe only.""" + return self._energy_range(self.mask_safe) + + @property + def energy_range_fit(self): + """Energy range maps defined by the mask_fit only.""" + return self._energy_range(self.mask_fit) + + @property + def energy_range_total(self): + """Largest energy range among all pixels, defined by mask_safe and mask_fit.""" + energy_min_map, energy_max_map = self.energy_range + return np.nanmin(energy_min_map.quantity), np.nanmax(energy_max_map.quantity) + +
+[docs] + def npred(self): + """Total predicted source and background counts. + + Returns + ------- + npred : `Map` + Total predicted counts. + """ + npred_total = self.npred_signal() + + if self.background: + npred_total += self.npred_background() + npred_total.data[npred_total.data < 0.0] = 0 + return npred_total
+ + +
+[docs] + def npred_background(self): + """Predicted background counts. + + The predicted background counts depend on the parameters + of the `FoVBackgroundModel` defined in the dataset. + + Returns + ------- + npred_background : `Map` + Predicted counts from the background. + """ + background = self.background + if self.background_model and background: + if self._background_parameters_changed: + values = self.background_model.evaluate_geom(geom=self.background.geom) + if self._background_cached is None: + self._background_cached = background * values + else: + self._background_cached.quantity = ( + background.quantity * values.value + ) + return self._background_cached + else: + return background + + return background
+ + + @property + def _background_parameters_changed(self): + values = self.background_model.parameters.value + changed = ~np.all(self._background_parameters_cached == values) + + if changed: + self._background_parameters_cached = values + return changed + +
+[docs] + def npred_signal(self, model_names=None, stack=True): + """Model predicted signal counts. + + If a list of model name is passed, predicted counts from these components are returned. + If stack is set to True, a map of the sum of all the predicted counts is returned. + If stack is set to False, a map with an additional axis representing the models is returned. + + Parameters + ---------- + model_names : list of str + List of name of SkyModel for which to compute the npred. + If none, all the SkyModel predicted counts are computed. + stack : bool + Whether to stack the npred maps upon each other. + + Returns + ------- + npred_sig : `gammapy.maps.Map` + Map of the predicted signal counts. + """ + npred_total = Map.from_geom(self._geom, dtype=float) + + evaluators = self.evaluators + if model_names is not None: + if isinstance(model_names, str): + model_names = [model_names] + evaluators = {name: self.evaluators[name] for name in model_names} + + npred_list = [] + labels = [] + for evaluator_name, evaluator in evaluators.items(): + if evaluator.needs_update: + evaluator.update( + self.exposure, + self.psf, + self.edisp, + self._geom, + self.mask_image, + ) + + if evaluator.contributes: + npred = evaluator.compute_npred() + if stack: + npred_total.stack(npred) + else: + npred_geom = Map.from_geom(self._geom, dtype=float) + npred_geom.stack(npred) + labels.append(evaluator_name) + npred_list.append(npred_geom) + if not USE_NPRED_CACHE: + evaluator.reset_cache_properties() + + if npred_list != []: + label_axis = LabelMapAxis(labels=labels, name="models") + npred_total = Map.from_stack(npred_list, axis=label_axis) + + return npred_total
+ + +
+[docs] + @classmethod + def from_geoms( + cls, + geom, + geom_exposure=None, + geom_psf=None, + geom_edisp=None, + reference_time="2000-01-01", + name=None, + **kwargs, + ): + """ + Create a MapDataset object with zero filled maps according to the specified geometries. + + Parameters + ---------- + geom : `Geom` + Geometry for the counts and background maps. + geom_exposure : `Geom` + Geometry for the exposure map. Default is None. + geom_psf : `Geom` + Geometry for the PSF map. Default is None. + geom_edisp : `Geom` + Geometry for the energy dispersion kernel map. + If geom_edisp has a migra axis, this will create an EDispMap instead. Default is None. + reference_time : `~astropy.time.Time` + The reference time to use in GTI definition. Default is "2000-01-01". + name : str + Name of the returned dataset. Default is None. + kwargs : dict, optional + Keyword arguments to be passed. + + + Returns + ------- + dataset : `MapDataset` or `SpectrumDataset` + A dataset containing zero filled maps. + """ + name = make_name(name) + kwargs = kwargs.copy() + kwargs["name"] = name + kwargs["counts"] = Map.from_geom(geom, unit="") + kwargs["background"] = Map.from_geom(geom, unit="") + + if geom_exposure: + kwargs["exposure"] = Map.from_geom(geom_exposure, unit="m2 s") + + if geom_edisp: + if "energy" in geom_edisp.axes.names: + kwargs["edisp"] = EDispKernelMap.from_geom(geom_edisp) + else: + kwargs["edisp"] = EDispMap.from_geom(geom_edisp) + + if geom_psf: + if "energy_true" in geom_psf.axes.names: + kwargs["psf"] = PSFMap.from_geom(geom_psf) + elif "energy" in geom_psf.axes.names: + kwargs["psf"] = RecoPSFMap.from_geom(geom_psf) + + kwargs.setdefault( + "gti", GTI.create([] * u.s, [] * u.s, reference_time=reference_time) + ) + kwargs["mask_safe"] = Map.from_geom(geom, unit="", dtype=bool) + return cls(**kwargs)
+ + +
+[docs] + @classmethod + def create( + cls, + geom, + energy_axis_true=None, + migra_axis=None, + rad_axis=None, + binsz_irf=BINSZ_IRF_DEFAULT, + reference_time="2000-01-01", + name=None, + meta_table=None, + reco_psf=False, + **kwargs, + ): + """Create a MapDataset object with zero filled maps. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Reference target geometry in reco energy, used for counts and background maps. + energy_axis_true : `~gammapy.maps.MapAxis`, optional + True energy axis used for IRF maps. Default is None. + migra_axis : `~gammapy.maps.MapAxis`, optional + If set, this provides the migration axis for the energy dispersion map. + If not set, an EDispKernelMap is produced instead. Default is None. + rad_axis : `~gammapy.maps.MapAxis`, optional + Rad axis for the PSF map. Default is None. + binsz_irf : float + IRF Map pixel size in degrees. Default is BINSZ_IRF_DEFAULT. + reference_time : `~astropy.time.Time` + The reference time to use in GTI definition. Default is "2000-01-01". + name : str, optional + Name of the returned dataset. Default is None. + meta_table : `~astropy.table.Table`, optional + Table listing information on observations used to create the dataset. + One line per observation for stacked datasets. Default is None. + reco_psf : bool + Use reconstructed energy for the PSF geometry. Default is False. + + Returns + ------- + empty_maps : `MapDataset` + A MapDataset containing zero filled maps. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> from gammapy.maps import WcsGeom, MapAxis + + >>> energy_axis = MapAxis.from_energy_bounds(1.0, 10.0, 4, unit="TeV") + >>> energy_axis_true = MapAxis.from_energy_bounds( + ... 0.5, 20, 10, unit="TeV", name="energy_true" + ... ) + >>> geom = WcsGeom.create( + ... skydir=(83.633, 22.014), + ... binsz=0.02, width=(2, 2), + ... frame="icrs", + ... proj="CAR", + ... axes=[energy_axis] + ... ) + >>> empty = MapDataset.create(geom=geom, energy_axis_true=energy_axis_true, name="empty") + """ + + geoms = create_map_dataset_geoms( + geom=geom, + energy_axis_true=energy_axis_true, + rad_axis=rad_axis, + migra_axis=migra_axis, + binsz_irf=binsz_irf, + reco_psf=reco_psf, + ) + + kwargs.update(geoms) + return cls.from_geoms( + reference_time=reference_time, name=name, meta_table=meta_table, **kwargs + )
+ + + @property + def mask_safe_image(self): + """Reduced safe mask.""" + if self.mask_safe is None: + return None + return self.mask_safe.reduce_over_axes(func=np.logical_or) + + @property + def mask_fit_image(self): + """Reduced fit mask.""" + if self.mask_fit is None: + return None + return self.mask_fit.reduce_over_axes(func=np.logical_or) + + @property + def mask_image(self): + """Reduced mask.""" + if self.mask is None: + mask = Map.from_geom(self._geom.to_image(), dtype=bool) + mask.data |= True + return mask + + return self.mask.reduce_over_axes(func=np.logical_or) + + @property + def mask_safe_psf(self): + """Safe mask for PSF maps.""" + if self.mask_safe is None or self.psf is None: + return None + + geom = self.psf.psf_map.geom.squash("energy_true").squash("rad") + mask_safe_psf = self.mask_safe_image.interp_to_geom(geom.to_image()) + return mask_safe_psf.to_cube(geom.axes) + + @property + def mask_safe_edisp(self): + """Safe mask for edisp maps.""" + if self.mask_safe is None or self.edisp is None: + return None + + if self.mask_safe.geom.is_region: + return self.mask_safe + + geom = self.edisp.edisp_map.geom.squash("energy_true") + + if "migra" in geom.axes.names: + geom = geom.squash("migra") + mask_safe_edisp = self.mask_safe_image.interp_to_geom( + geom.to_image(), fill_value=None + ) + return mask_safe_edisp.to_cube(geom.axes) + + # allow extrapolation only along spatial dimension + # to support case where mask_safe geom and irfs geom are different + geom_same_axes = geom.to_image().to_cube(self.mask_safe.geom.axes) + mask_safe_edisp = self.mask_safe.interp_to_geom(geom_same_axes, fill_value=None) + mask_safe_edisp = mask_safe_edisp.interp_to_geom(geom) + return mask_safe_edisp + +
+[docs] + def to_masked(self, name=None, nan_to_num=True): + """Return masked dataset. + + Parameters + ---------- + name : str, optional + Name of the masked dataset. Default is None. + nan_to_num : bool + Non-finite values are replaced by zero if True. Default is True. + + Returns + ------- + dataset : `MapDataset` or `SpectrumDataset` + Masked dataset. + """ + dataset = self.__class__.from_geoms(**self.geoms, name=name) + dataset.stack(self, nan_to_num=nan_to_num) + return dataset
+ + +
+[docs] + def stack(self, other, nan_to_num=True): + r"""Stack another dataset in place. The original dataset is modified. + + Safe mask is applied to the other dataset to compute the stacked counts data. + Counts outside the safe mask are lost. + + Note that the masking is not applied to the current dataset. If masking needs + to be applied to it, use `~gammapy.MapDataset.to_masked()` first. + + The stacking of 2 datasets is implemented as follows. Here, :math:`k` + denotes a bin in reconstructed energy and :math:`j = {1,2}` is the dataset number. + + The ``mask_safe`` of each dataset is defined as: + + .. math:: + + \epsilon_{jk} =\left\{\begin{array}{cl} 1, & + \mbox{if bin k is inside the thresholds}\\ 0, & + \mbox{otherwise} \end{array}\right. + + Then the total ``counts`` and model background ``bkg`` are computed according to: + + .. math:: + + \overline{\mathrm{n_{on}}}_k = \mathrm{n_{on}}_{1k} \cdot \epsilon_{1k} + + \mathrm{n_{on}}_{2k} \cdot \epsilon_{2k}. + + \overline{bkg}_k = bkg_{1k} \cdot \epsilon_{1k} + + bkg_{2k} \cdot \epsilon_{2k}. + + The stacked ``safe_mask`` is then: + + .. math:: + + \overline{\epsilon_k} = \epsilon_{1k} OR \epsilon_{2k}. + + For details, see :ref:`stack`. + + Parameters + ---------- + other : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.MapDatasetOnOff` + Map dataset to be stacked with this one. If other is an on-off + dataset alpha * counts_off is used as a background model. + nan_to_num : bool + Non-finite values are replaced by zero if True. Default is True. + + """ + if self.counts and other.counts: + self.counts.stack( + other.counts, weights=other.mask_safe, nan_to_num=nan_to_num + ) + + if self.exposure and other.exposure: + self.exposure.stack( + other.exposure, weights=other.mask_safe_image, nan_to_num=nan_to_num + ) + # TODO: check whether this can be improved e.g. handling this in GTI + + if "livetime" in other.exposure.meta and np.any(other.mask_safe_image): + if "livetime" in self.exposure.meta: + self.exposure.meta["livetime"] += other.exposure.meta["livetime"] + else: + self.exposure.meta["livetime"] = other.exposure.meta[ + "livetime" + ].copy() + + if self.stat_type == "cash": + if self.background and other.background: + background = self.npred_background() + background.stack( + other.npred_background(), + weights=other.mask_safe, + nan_to_num=nan_to_num, + ) + self.background = background + + if self.psf and other.psf: + self.psf.stack(other.psf, weights=other.mask_safe_psf) + + if self.edisp and other.edisp: + self.edisp.stack(other.edisp, weights=other.mask_safe_edisp) + + if self.mask_safe and other.mask_safe: + self.mask_safe.stack(other.mask_safe) + + if self.mask_fit and other.mask_fit: + self.mask_fit.stack(other.mask_fit) + elif other.mask_fit: + self.mask_fit = other.mask_fit.copy() + + if self.gti and other.gti: + self.gti.stack(other.gti) + self.gti = self.gti.union() + + if self.meta_table and other.meta_table: + self.meta_table = hstack_columns(self.meta_table, other.meta_table) + elif other.meta_table: + self.meta_table = other.meta_table.copy() + + if self.meta and other.meta: + self.meta.stack(other.meta)
+ + +
+[docs] + def stat_array(self): + """Statistic function value per bin given the current model parameters.""" + return cash(n_on=self.counts.data, mu_on=self.npred().data)
+ + +
+[docs] + def residuals(self, method="diff", **kwargs): + """Compute residuals map. + + Parameters + ---------- + method : {"diff", "diff/model", "diff/sqrt(model)"} + Method used to compute the residuals. Available options are: + + - "diff" (default): data - model. + - "diff/model": (data - model) / model. + - "diff/sqrt(model)": (data - model) / sqrt(model). + + Default is "diff". + + **kwargs : dict, optional + Keyword arguments forwarded to `Map.smooth()`. + + Returns + ------- + residuals : `gammapy.maps.Map` + Residual map. + """ + npred, counts = self.npred(), self.counts.copy() + + if self.mask: + npred = npred * self.mask + counts = counts * self.mask + + if kwargs: + kwargs.setdefault("mode", "constant") + kwargs.setdefault("width", "0.1 deg") + kwargs.setdefault("kernel", "gauss") + with np.errstate(invalid="ignore", divide="ignore"): + npred = npred.smooth(**kwargs) + counts = counts.smooth(**kwargs) + if self.mask: + mask = self.mask.smooth(**kwargs) + npred /= mask + counts /= mask + + residuals = self._compute_residuals(counts, npred, method=method) + + if self.mask: + residuals.data[~self.mask.data] = np.nan + + return residuals
+ + +
+[docs] + def plot_residuals_spatial( + self, + ax=None, + method="diff", + smooth_kernel="gauss", + smooth_radius="0.1 deg", + **kwargs, + ): + """Plot spatial residuals. + + The normalization used for the residuals computation can be controlled + using the method parameter. + + Parameters + ---------- + ax : `~astropy.visualization.wcsaxes.WCSAxes`, optional + Axes to plot on. Default is None. + method : {"diff", "diff/model", "diff/sqrt(model)"} + Normalization used to compute the residuals, see `MapDataset.residuals`. Default is "diff". + smooth_kernel : {"gauss", "box"} + Kernel shape. Default is "gauss". + smooth_radius: `~astropy.units.Quantity`, str or float + Smoothing width given as quantity or float. If a float is given, it + is interpreted as smoothing width in pixels. Default is "0.1 deg". + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.axes.Axes.imshow`. + + Returns + ------- + ax : `~astropy.visualization.wcsaxes.WCSAxes` + WCSAxes object. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> kwargs = {"cmap": "RdBu_r", "vmin":-5, "vmax":5, "add_cbar": True} + >>> dataset.plot_residuals_spatial(method="diff/sqrt(model)", **kwargs) # doctest: +SKIP + """ + counts, npred = self.counts.copy(), self.npred() + + if counts.geom.is_region: + raise ValueError("Cannot plot spatial residuals for RegionNDMap") + + if self.mask is not None: + counts *= self.mask + npred *= self.mask + + counts_spatial = counts.sum_over_axes().smooth( + width=smooth_radius, kernel=smooth_kernel + ) + npred_spatial = npred.sum_over_axes().smooth( + width=smooth_radius, kernel=smooth_kernel + ) + residuals = self._compute_residuals(counts_spatial, npred_spatial, method) + + if self.mask_safe is not None: + mask = self.mask_safe.reduce_over_axes(func=np.logical_or, keepdims=True) + residuals.data[~mask.data] = np.nan + + kwargs.setdefault("add_cbar", True) + kwargs.setdefault("cmap", "coolwarm") + kwargs.setdefault("vmin", -5) + kwargs.setdefault("vmax", 5) + ax = residuals.plot(ax, **kwargs) + return ax
+ + +
+[docs] + def plot_residuals_spectral(self, ax=None, method="diff", region=None, **kwargs): + """Plot spectral residuals. + + The residuals are extracted from the provided region, and the normalization + used for its computation can be controlled using the method parameter. + + The error bars are computed using the uncertainty on the excess with a symmetric assumption. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axes to plot on. Default is None. + method : {"diff", "diff/sqrt(model)"} + Normalization used to compute the residuals, see `SpectrumDataset.residuals`. Default is "diff". + region : `~regions.SkyRegion` (required) + Target sky region. Default is None. + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.axes.Axes.errorbar`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axes object. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> kwargs = {"markerfacecolor": "blue", "markersize":8, "marker":'s'} + >>> dataset.plot_residuals_spectral(method="diff/sqrt(model)", **kwargs) # doctest: +SKIP + + """ + counts, npred = self.counts.copy(), self.npred() + counts_spec = counts.get_spectrum(region) + npred_spec = npred.get_spectrum(region) + residuals = self._compute_residuals(counts_spec, npred_spec, method) + + if self.stat_type == "wstat": + counts_off = (self.counts_off).get_spectrum(region) + + with np.errstate(invalid="ignore"): + alpha = self.background.get_spectrum(region) / counts_off + + mu_sig = self.npred_signal().get_spectrum(region) + stat = WStatCountsStatistic( + n_on=counts_spec, + n_off=counts_off, + alpha=alpha, + mu_sig=mu_sig, + ) + elif self.stat_type == "cash": + stat = CashCountsStatistic(counts_spec.data, npred_spec.data) + excess_error = stat.error + + if method == "diff": + yerr = excess_error + elif method == "diff/sqrt(model)": + yerr = excess_error / np.sqrt(npred_spec.data) + else: + raise ValueError( + 'Invalid method, choose between "diff" and "diff/sqrt(model)"' + ) + + kwargs.setdefault("color", kwargs.pop("c", "black")) + ax = residuals.plot(ax, yerr=yerr, **kwargs) + ax.axhline(0, color=kwargs["color"], lw=0.5) + + label = self._residuals_labels[method] + ax.set_ylabel(f"Residuals ({label})") + ax.set_yscale("linear") + ymin = 1.05 * np.nanmin(residuals.data - yerr) + ymax = 1.05 * np.nanmax(residuals.data + yerr) + ax.set_ylim(ymin, ymax) + return ax
+ + +
+[docs] + def plot_residuals( + self, + ax_spatial=None, + ax_spectral=None, + kwargs_spatial=None, + kwargs_spectral=None, + ): + """Plot spatial and spectral residuals in two panels. + + Calls `~MapDataset.plot_residuals_spatial` and `~MapDataset.plot_residuals_spectral`. + The spectral residuals are extracted from the provided region, and the + normalization used for its computation can be controlled using the method + parameter. The region outline is overlaid on the residuals map. If no region is passed, + the residuals are computed for the entire map. + + Parameters + ---------- + ax_spatial : `~astropy.visualization.wcsaxes.WCSAxes`, optional + Axes to plot spatial residuals on. Default is None. + ax_spectral : `~matplotlib.axes.Axes`, optional + Axes to plot spectral residuals on. Default is None. + kwargs_spatial : dict, optional + Keyword arguments passed to `~MapDataset.plot_residuals_spatial`. Default is None. + kwargs_spectral : dict, optional + Keyword arguments passed to `~MapDataset.plot_residuals_spectral`. + The region should be passed as a dictionary key. Default is None. + + Returns + ------- + ax_spatial, ax_spectral : `~astropy.visualization.wcsaxes.WCSAxes`, `~matplotlib.axes.Axes` + Spatial and spectral residuals plots. + + Examples + -------- + >>> from regions import CircleSkyRegion + >>> from astropy.coordinates import SkyCoord + >>> import astropy.units as u + >>> from gammapy.datasets import MapDataset + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> reg = CircleSkyRegion(SkyCoord(0,0, unit="deg", frame="galactic"), radius=1.0 * u.deg) + >>> kwargs_spatial = {"cmap": "RdBu_r", "vmin":-5, "vmax":5, "add_cbar": True} + >>> kwargs_spectral = {"region":reg, "markerfacecolor": "blue", "markersize": 8, "marker": "s"} + >>> dataset.plot_residuals(kwargs_spatial=kwargs_spatial, kwargs_spectral=kwargs_spectral) # doctest: +SKIP + """ + ax_spatial, ax_spectral = get_axes( + ax_spatial, + ax_spectral, + 12, + 4, + [1, 2, 1], + [1, 2, 2], + {"projection": self._geom.to_image().wcs}, + ) + kwargs_spatial = kwargs_spatial or {} + kwargs_spectral = kwargs_spectral or {} + + self.plot_residuals_spatial(ax_spatial, **kwargs_spatial) + self.plot_residuals_spectral(ax_spectral, **kwargs_spectral) + + # Overlay spectral extraction region on the spatial residuals + region = kwargs_spectral.get("region") + if region is not None: + pix_region = region.to_pixel(self._geom.to_image().wcs) + pix_region.plot(ax=ax_spatial) + + return ax_spatial, ax_spectral
+ + +
+[docs] + def stat_sum(self): + """Total statistic function value given the current model parameters and priors.""" + prior_stat_sum = 0.0 + if self.models is not None: + prior_stat_sum = self.models.parameters.prior_stat_sum() + + counts, npred = self.counts.data.astype(float), self.npred().data + + if self.mask is not None: + return ( + cash_sum_cython(counts[self.mask.data], npred[self.mask.data]) + + prior_stat_sum + ) + else: + return cash_sum_cython(counts.ravel(), npred.ravel()) + prior_stat_sum
+ + +
+[docs] + def fake(self, random_state="random-seed"): + """Simulate fake counts for the current model and reduced IRFs. + + This method overwrites the counts defined on the dataset object. + + Parameters + ---------- + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. Default is "random-seed". + """ + random_state = get_random_state(random_state) + npred = self.npred() + data = np.nan_to_num(npred.data, copy=True, nan=0.0, posinf=0.0, neginf=0.0) + npred.data = random_state.poisson(data) + npred.data = npred.data.astype("float") + self.counts = npred
+ + +
+[docs] + def to_hdulist(self): + """Convert map dataset to list of HDUs. + + Returns + ------- + hdulist : `~astropy.io.fits.HDUList` + Map dataset list of HDUs. + """ + # TODO: what todo about the model and background model parameters? + exclude_primary = slice(1, None) + + hdu_primary = fits.PrimaryHDU() + + header = hdu_primary.header + header["NAME"] = self.name + header.update(self.meta.to_header()) + + hdulist = fits.HDUList([hdu_primary]) + if self.counts is not None: + hdulist += self.counts.to_hdulist(hdu="counts")[exclude_primary] + + if self.exposure is not None: + hdulist += self.exposure.to_hdulist(hdu="exposure")[exclude_primary] + + if self.background is not None: + hdulist += self.background.to_hdulist(hdu="background")[exclude_primary] + + if self.edisp is not None: + hdulist += self.edisp.to_hdulist()[exclude_primary] + + if self.psf is not None: + hdulist += self.psf.to_hdulist()[exclude_primary] + + if self.mask_safe is not None: + hdulist += self.mask_safe.to_hdulist(hdu="mask_safe")[exclude_primary] + + if self.mask_fit is not None: + hdulist += self.mask_fit.to_hdulist(hdu="mask_fit")[exclude_primary] + + if self.gti is not None: + hdulist.append(self.gti.to_table_hdu()) + + if self.meta_table is not None: + hdulist.append(fits.BinTableHDU(self.meta_table, name="META_TABLE")) + + return hdulist
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, name=None, lazy=False, format="gadf"): + """Create map dataset from list of HDUs. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + List of HDUs. + name : str, optional + Name of the new dataset. Default is None. + lazy : bool + Whether to lazy load data into memory. Default is False. + format : {"gadf"} + Format the hdulist is given in. Default is "gadf". + + Returns + ------- + dataset : `MapDataset` + Map dataset. + """ + name = make_name(name) + kwargs = {"name": name} + kwargs["meta"] = MapDatasetMetaData.from_header(hdulist["PRIMARY"].header) + + if "COUNTS" in hdulist: + kwargs["counts"] = Map.from_hdulist(hdulist, hdu="counts", format=format) + + if "EXPOSURE" in hdulist: + exposure = Map.from_hdulist(hdulist, hdu="exposure", format=format) + if exposure.geom.axes[0].name == "energy": + exposure.geom.axes[0].name = "energy_true" + kwargs["exposure"] = exposure + + if "BACKGROUND" in hdulist: + kwargs["background"] = Map.from_hdulist( + hdulist, hdu="background", format=format + ) + + if "EDISP" in hdulist: + kwargs["edisp"] = EDispMap.from_hdulist( + hdulist, hdu="edisp", exposure_hdu="edisp_exposure", format=format + ) + + if "PSF" in hdulist: + kwargs["psf"] = PSFMap.from_hdulist( + hdulist, hdu="psf", exposure_hdu="psf_exposure", format=format + ) + + if "MASK_SAFE" in hdulist: + mask_safe = Map.from_hdulist(hdulist, hdu="mask_safe", format=format) + mask_safe.data = mask_safe.data.astype(bool) + kwargs["mask_safe"] = mask_safe + + if "MASK_FIT" in hdulist: + mask_fit = Map.from_hdulist(hdulist, hdu="mask_fit", format=format) + mask_fit.data = mask_fit.data.astype(bool) + kwargs["mask_fit"] = mask_fit + + if "GTI" in hdulist: + gti = GTI.from_table_hdu(hdulist["GTI"]) + kwargs["gti"] = gti + + if "META_TABLE" in hdulist: + meta_table = Table.read(hdulist, hdu="META_TABLE") + kwargs["meta_table"] = meta_table + + return cls(**kwargs)
+ + +
+[docs] + def write(self, filename, overwrite=False, checksum=False): + """Write Dataset to file. + + A MapDataset is serialised using the GADF format with a WCS geometry. + A SpectrumDataset uses the same format, with a RegionGeom. + + Parameters + ---------- + filename : str + Filename to write to. + overwrite : bool, optional + Overwrite existing file. Default is False. + checksum : bool + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + self.to_hdulist().writeto( + str(make_path(filename)), overwrite=overwrite, checksum=checksum + )
+ + + @classmethod + def _read_lazy(cls, name, filename, cache, format=format): + name = make_name(name) + kwargs = {"name": name} + try: + kwargs["gti"] = GTI.read(filename) + except KeyError: + pass + + path = make_path(filename) + for hdu_name in ["counts", "exposure", "mask_fit", "mask_safe", "background"]: + kwargs[hdu_name] = HDULocation( + hdu_class="map", + file_dir=path.parent, + file_name=path.name, + hdu_name=hdu_name.upper(), + cache=cache, + format=format, + ) + + kwargs["edisp"] = HDULocation( + hdu_class="edisp_map", + file_dir=path.parent, + file_name=path.name, + hdu_name="EDISP", + cache=cache, + format=format, + ) + + kwargs["psf"] = HDULocation( + hdu_class="psf_map", + file_dir=path.parent, + file_name=path.name, + hdu_name="PSF", + cache=cache, + format=format, + ) + + return cls(**kwargs) + +
+[docs] + @classmethod + def read( + cls, filename, name=None, lazy=False, cache=True, format="gadf", checksum=False + ): + """Read a dataset from file. + + Parameters + ---------- + filename : str + Filename to read from. + name : str, optional + Name of the new dataset. Default is None. + lazy : bool + Whether to lazy load data into memory. Default is False. + cache : bool + Whether to cache the data after loading. Default is True. + format : {"gadf"} + Format of the dataset file. Default is "gadf". + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + dataset : `MapDataset` + Map dataset. + """ + + if name is None: + header = fits.getheader(str(make_path(filename))) + name = header.get("NAME", name) + ds_name = make_name(name) + + if lazy: + return cls._read_lazy( + name=ds_name, filename=filename, cache=cache, format=format + ) + else: + with fits.open( + str(make_path(filename)), memmap=False, checksum=checksum + ) as hdulist: + return cls.from_hdulist(hdulist, name=ds_name, format=format)
+ + +
+[docs] + @classmethod + def from_dict(cls, data, lazy=False, cache=True): + """Create from dicts and models list generated from YAML serialization.""" + filename = make_path(data["filename"]) + dataset = cls.read(filename, name=data["name"], lazy=lazy, cache=cache) + return dataset
+ + + @property + def _counts_statistic(self): + """Counts statistics of the dataset.""" + return CashCountsStatistic(self.counts, self.npred_background()) + +
+[docs] + def info_dict(self, in_safe_data_range=True): + """Info dict with summary statistics, summed over energy. + + Parameters + ---------- + in_safe_data_range : bool + Whether to sum only in the safe energy range. Default is True. + + Returns + ------- + info_dict : dict + Dictionary with summary info. + """ + info = {} + info["name"] = self.name + + if self.mask_safe and in_safe_data_range: + mask = self.mask_safe.data.astype(bool) + else: + mask = slice(None) + + counts = 0 + background, excess, sqrt_ts = np.nan, np.nan, np.nan + + if self.counts: + counts = self.counts.data[mask].sum() + + if self.background: + summed_stat = self._counts_statistic[mask].sum() + background = self.background.data[mask].sum() + excess = summed_stat.n_sig + sqrt_ts = summed_stat.sqrt_ts + + info["counts"] = int(counts) + info["excess"] = float(excess) + info["sqrt_ts"] = sqrt_ts + info["background"] = float(background) + + npred = np.nan + if self.models or not np.isnan(background): + npred = self.npred().data[mask].sum() + + info["npred"] = float(npred) + + npred_background = np.nan + if self.background: + npred_background = self.npred_background().data[mask].sum() + + info["npred_background"] = float(npred_background) + + npred_signal = np.nan + if self.models and ( + len(self.models) > 1 or not isinstance(self.models[0], FoVBackgroundModel) + ): + npred_signal = self.npred_signal().data[mask].sum() + + info["npred_signal"] = float(npred_signal) + + exposure_min = np.nan * u.Unit("cm s") + exposure_max = np.nan * u.Unit("cm s") + livetime = np.nan * u.s + + if self.exposure is not None: + mask_exposure = self.exposure.data > 0 + + if self.mask_safe is not None: + mask_spatial = self.mask_safe.reduce_over_axes(func=np.logical_or).data + mask_exposure = mask_exposure & mask_spatial[np.newaxis, :, :] + + if not mask_exposure.any(): + mask_exposure = slice(None) + + exposure_min = np.min(self.exposure.quantity[mask_exposure]) + exposure_max = np.max(self.exposure.quantity[mask_exposure]) + livetime = self.exposure.meta.get("livetime", np.nan * u.s).copy() + + info["exposure_min"] = exposure_min.item() + info["exposure_max"] = exposure_max.item() + info["livetime"] = livetime + + ontime = u.Quantity(np.nan, "s") + if self.gti: + ontime = self.gti.time_sum + + info["ontime"] = ontime + + info["counts_rate"] = info["counts"] / info["livetime"] + info["background_rate"] = info["background"] / info["livetime"] + info["excess_rate"] = info["excess"] / info["livetime"] + + # data section + n_bins = 0 + if self.counts is not None: + n_bins = self.counts.data.size + info["n_bins"] = int(n_bins) + + n_fit_bins = 0 + if self.mask is not None: + n_fit_bins = np.sum(self.mask.data) + + info["n_fit_bins"] = int(n_fit_bins) + info["stat_type"] = self.stat_type + + stat_sum = np.nan + if self.counts is not None and self.models is not None: + stat_sum = self.stat_sum() + + info["stat_sum"] = float(stat_sum) + + return info
+ + +
+[docs] + def to_spectrum_dataset(self, on_region, containment_correction=False, name=None): + """Return a ~gammapy.datasets.SpectrumDataset from on_region. + + Counts and background are summed in the on_region. Exposure is taken + from the average exposure. + + The energy dispersion kernel is obtained at the on_region center. + Only regions with centers are supported. + + The model is not exported to the ~gammapy.datasets.SpectrumDataset. + It must be set after the dataset extraction. + + Parameters + ---------- + on_region : `~regions.SkyRegion` + The input ON region on which to extract the spectrum. + containment_correction : bool + Apply containment correction for point sources and circular on regions. Default is False. + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `~gammapy.datasets.SpectrumDataset` + The resulting reduced dataset. + """ + from .spectrum import SpectrumDataset + + dataset = self.to_region_map_dataset(region=on_region, name=name) + + if containment_correction: + if not isinstance(on_region, CircleSkyRegion): + raise TypeError( + "Containment correction is only supported for" " `CircleSkyRegion`." + ) + elif self.psf is None or isinstance(self.psf, PSFKernel): + raise ValueError("No PSFMap set. Containment correction impossible") + else: + geom = dataset.exposure.geom + energy_true = geom.axes["energy_true"].center + containment = self.psf.containment( + position=on_region.center, + energy_true=energy_true, + rad=on_region.radius, + ) + dataset.exposure.quantity *= containment.reshape(geom.data_shape) + + kwargs = {"name": name} + + for key in [ + "counts", + "edisp", + "mask_safe", + "mask_fit", + "exposure", + "gti", + "meta_table", + ]: + kwargs[key] = getattr(dataset, key) + + if self.stat_type == "cash": + kwargs["background"] = dataset.background + + return SpectrumDataset(**kwargs)
+ + +
+[docs] + def to_region_map_dataset(self, region, name=None): + """Integrate the map dataset in a given region. + + Counts and background of the dataset are integrated in the given region, + taking the safe mask into account. The exposure is averaged in the + region again taking the safe mask into account. The PSF and energy + dispersion kernel are taken at the center of the region. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region from which to extract the spectrum. + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `~gammapy.datasets.MapDataset` + The resulting reduced dataset. + """ + name = make_name(name) + kwargs = {"gti": self.gti, "name": name, "meta_table": self.meta_table} + + if self.mask_safe: + kwargs["mask_safe"] = self.mask_safe.to_region_nd_map(region, func=np.any) + + if self.mask_fit: + kwargs["mask_fit"] = self.mask_fit.to_region_nd_map(region, func=np.any) + + if self.counts: + kwargs["counts"] = self.counts.to_region_nd_map( + region, np.sum, weights=self.mask_safe + ) + + if self.stat_type == "cash" and self.background: + kwargs["background"] = self.background.to_region_nd_map( + region, func=np.sum, weights=self.mask_safe + ) + + if self.exposure: + kwargs["exposure"] = self.exposure.to_region_nd_map(region, func=np.mean) + + region = region.center if region else None + + # TODO: Compute average psf in region + if self.psf: + kwargs["psf"] = self.psf.to_region_nd_map(region) + + # TODO: Compute average edisp in region + if self.edisp is not None: + kwargs["edisp"] = self.edisp.to_region_nd_map(region) + + return self.__class__(**kwargs)
+ + +
+[docs] + def cutout(self, position, width, mode="trim", name=None): + """Cutout map dataset. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + mode : {'trim', 'partial', 'strict'} + Mode option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. Default is "trim". + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + cutout : `MapDataset` + Cutout map dataset. + """ + name = make_name(name) + kwargs = {"gti": self.gti, "name": name, "meta_table": self.meta_table} + cutout_kwargs = {"position": position, "width": width, "mode": mode} + + if self.counts is not None: + kwargs["counts"] = self.counts.cutout(**cutout_kwargs) + + if self.exposure is not None: + kwargs["exposure"] = self.exposure.cutout(**cutout_kwargs) + + if self.background is not None and self.stat_type == "cash": + kwargs["background"] = self.background.cutout(**cutout_kwargs) + + if self.edisp is not None: + kwargs["edisp"] = self.edisp.cutout(**cutout_kwargs) + + if self.psf is not None: + kwargs["psf"] = self.psf.cutout(**cutout_kwargs) + + if self.mask_safe is not None: + kwargs["mask_safe"] = self.mask_safe.cutout(**cutout_kwargs) + + if self.mask_fit is not None: + kwargs["mask_fit"] = self.mask_fit.cutout(**cutout_kwargs) + + return self.__class__(**kwargs)
+ + +
+[docs] + def downsample(self, factor, axis_name=None, name=None): + """Downsample map dataset. + + The PSFMap and EDispKernelMap are not downsampled, except if + a corresponding axis is given. + + Parameters + ---------- + factor : int + Downsampling factor. + axis_name : str, optional + Which non-spatial axis to downsample. By default only spatial axes are downsampled. Default is None. + name : str, optional + Name of the downsampled dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` or `SpectrumDataset` + Downsampled map dataset. + """ + name = make_name(name) + + kwargs = {"gti": self.gti, "name": name, "meta_table": self.meta_table} + + if self.counts is not None: + kwargs["counts"] = self.counts.downsample( + factor=factor, + preserve_counts=True, + axis_name=axis_name, + weights=self.mask_safe, + ) + + if self.exposure is not None: + if axis_name is None: + kwargs["exposure"] = self.exposure.downsample( + factor=factor, preserve_counts=False, axis_name=None + ) + else: + kwargs["exposure"] = self.exposure.copy() + + if self.background is not None and self.stat_type == "cash": + kwargs["background"] = self.background.downsample( + factor=factor, axis_name=axis_name, weights=self.mask_safe + ) + + if self.edisp is not None: + if axis_name is not None: + kwargs["edisp"] = self.edisp.downsample( + factor=factor, axis_name=axis_name, weights=self.mask_safe_edisp + ) + else: + kwargs["edisp"] = self.edisp.copy() + + if self.psf is not None: + kwargs["psf"] = self.psf.copy() + + if self.mask_safe is not None: + kwargs["mask_safe"] = self.mask_safe.downsample( + factor=factor, preserve_counts=False, axis_name=axis_name + ) + + if self.mask_fit is not None: + kwargs["mask_fit"] = self.mask_fit.downsample( + factor=factor, preserve_counts=False, axis_name=axis_name + ) + + return self.__class__(**kwargs)
+ + +
+[docs] + def pad(self, pad_width, mode="constant", name=None): + """Pad the spatial dimensions of the dataset. + + The padding only applies to counts, masks, background and exposure. + + Counts, background and masks are padded with zeros, exposure is padded with edge value. + + Parameters + ---------- + pad_width : {sequence, array_like, int} + Number of pixels padded to the edges of each axis. + mode : str + Pad mode. Default is "constant". + name : str, optional + Name of the padded dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` + Padded map dataset. + + """ + name = make_name(name) + kwargs = {"gti": self.gti, "name": name, "meta_table": self.meta_table} + + if self.counts is not None: + kwargs["counts"] = self.counts.pad(pad_width=pad_width, mode=mode) + + if self.exposure is not None: + kwargs["exposure"] = self.exposure.pad(pad_width=pad_width, mode=mode) + + if self.background is not None: + kwargs["background"] = self.background.pad(pad_width=pad_width, mode=mode) + + if self.edisp is not None: + kwargs["edisp"] = self.edisp.copy() + + if self.psf is not None: + kwargs["psf"] = self.psf.copy() + + if self.mask_safe is not None: + kwargs["mask_safe"] = self.mask_safe.pad(pad_width=pad_width, mode=mode) + + if self.mask_fit is not None: + kwargs["mask_fit"] = self.mask_fit.pad(pad_width=pad_width, mode=mode) + + return self.__class__(**kwargs)
+ + +
+[docs] + def slice_by_idx(self, slices, name=None): + """Slice sub dataset. + + The slicing only applies to the maps that define the corresponding axes. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dict are kept unchanged. + name : str, optional + Name of the sliced dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` or `SpectrumDataset` + Sliced dataset. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> slices = {"energy": slice(0, 3)} #to get the first 3 energy slices + >>> sliced = dataset.slice_by_idx(slices) + >>> print(sliced.geoms["geom"]) + WcsGeom + <BLANKLINE> + axes : ['lon', 'lat', 'energy'] + shape : (np.int64(320), np.int64(240), 3) + ndim : 3 + frame : galactic + projection : CAR + center : 0.0 deg, 0.0 deg + width : 8.0 deg x 6.0 deg + wcs ref : 0.0 deg, 0.0 deg + <BLANKLINE> + """ + name = make_name(name) + kwargs = {"gti": self.gti, "name": name, "meta_table": self.meta_table} + + if self.counts is not None: + kwargs["counts"] = self.counts.slice_by_idx(slices=slices) + + if self.exposure is not None: + kwargs["exposure"] = self.exposure.slice_by_idx(slices=slices) + + if self.background is not None and self.stat_type == "cash": + kwargs["background"] = self.background.slice_by_idx(slices=slices) + + if self.edisp is not None: + kwargs["edisp"] = self.edisp.slice_by_idx(slices=slices) + + if self.psf is not None: + kwargs["psf"] = self.psf.slice_by_idx(slices=slices) + + if self.mask_safe is not None: + kwargs["mask_safe"] = self.mask_safe.slice_by_idx(slices=slices) + + if self.mask_fit is not None: + kwargs["mask_fit"] = self.mask_fit.slice_by_idx(slices=slices) + + return self.__class__(**kwargs)
+ + +
+[docs] + def slice_by_energy(self, energy_min=None, energy_max=None, name=None): + """Select and slice datasets in energy range. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity`, optional + Energy bounds to compute the flux point for. Default is None. + name : str, optional + Name of the sliced dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` + Sliced Dataset. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> sliced = dataset.slice_by_energy(energy_min="1 TeV", energy_max="5 TeV") + >>> sliced.data_shape + (3, np.int64(240), np.int64(320)) + """ + name = make_name(name) + + energy_axis = self._geom.axes["energy"] + + if energy_min is None: + energy_min = energy_axis.bounds[0] + + if energy_max is None: + energy_max = energy_axis.bounds[1] + + energy_min, energy_max = u.Quantity(energy_min), u.Quantity(energy_max) + + group = energy_axis.group_table(edges=[energy_min, energy_max]) + + is_normal = group["bin_type"] == "normal " + group = group[is_normal] + + slices = { + "energy": slice(int(group["idx_min"][0]), int(group["idx_max"][0]) + 1) + } + + return self.slice_by_idx(slices, name=name)
+ + +
+[docs] + def reset_data_cache(self): + """Reset data cache to free memory space.""" + for name in self._lazy_data_members: + if self.__dict__.pop(name, False): + log.info(f"Clearing {name} cache for dataset {self.name}")
+ + +
+[docs] + def resample_energy_axis(self, energy_axis, name=None): + """Resample MapDataset over new reco energy axis. + + Counts are summed taking into account safe mask. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + New reconstructed energy axis. + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` or `SpectrumDataset` + Resampled dataset. + """ + name = make_name(name) + kwargs = {"gti": self.gti, "name": name, "meta_table": self.meta_table} + + if self.exposure: + kwargs["exposure"] = self.exposure + + if self.psf: + kwargs["psf"] = self.psf + + if self.mask_safe is not None: + kwargs["mask_safe"] = self.mask_safe.resample_axis( + axis=energy_axis, ufunc=np.logical_or + ) + + if self.mask_fit is not None: + kwargs["mask_fit"] = self.mask_fit.resample_axis( + axis=energy_axis, ufunc=np.logical_or + ) + + if self.counts is not None: + kwargs["counts"] = self.counts.resample_axis( + axis=energy_axis, weights=self.mask_safe + ) + + if self.background is not None and self.stat_type == "cash": + kwargs["background"] = self.background.resample_axis( + axis=energy_axis, weights=self.mask_safe + ) + + # Mask_safe or mask_irf?? + if isinstance(self.edisp, EDispKernelMap): + kwargs["edisp"] = self.edisp.resample_energy_axis( + energy_axis=energy_axis, weights=self.mask_safe_edisp + ) + else: # None or EDispMap + kwargs["edisp"] = self.edisp + + return self.__class__(**kwargs)
+ + +
+[docs] + def to_image(self, name=None): + """Create images by summing over the reconstructed energy axis. + + Parameters + ---------- + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` or `SpectrumDataset` + Dataset integrated over non-spatial axes. + """ + energy_axis = self._geom.axes["energy"].squash() + return self.resample_energy_axis(energy_axis=energy_axis, name=name)
+ + +
+[docs] + def peek(self, figsize=(12, 8)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple + Size of the figure. Default is (12, 10). + + """ + + def plot_mask(ax, mask, **kwargs): + if mask is not None: + mask.plot_mask(ax=ax, **kwargs) + + fig, axes = plt.subplots( + ncols=2, + nrows=2, + subplot_kw={"projection": self._geom.wcs}, + figsize=figsize, + gridspec_kw={"hspace": 0.25, "wspace": 0.1}, + ) + + axes = axes.flat + axes[0].set_title("Counts") + self.counts.sum_over_axes().plot(ax=axes[0], add_cbar=True) + plot_mask(ax=axes[0], mask=self.mask_fit_image, alpha=0.2) + plot_mask(ax=axes[0], mask=self.mask_safe_image, hatches=["///"], colors="w") + + axes[1].set_title("Excess counts") + self.excess.sum_over_axes().plot(ax=axes[1], add_cbar=True) + plot_mask(ax=axes[1], mask=self.mask_fit_image, alpha=0.2) + plot_mask(ax=axes[1], mask=self.mask_safe_image, hatches=["///"], colors="w") + + axes[2].set_title("Exposure") + self.exposure.sum_over_axes().plot(ax=axes[2], add_cbar=True) + plot_mask(ax=axes[2], mask=self.mask_safe_image, hatches=["///"], colors="w") + + axes[3].set_title("Background") + self.background.sum_over_axes().plot(ax=axes[3], add_cbar=True) + plot_mask(ax=axes[3], mask=self.mask_fit_image, alpha=0.2) + plot_mask(ax=axes[3], mask=self.mask_safe_image, hatches=["///"], colors="w")
+
+ + + +
+[docs] +class MapDatasetOnOff(MapDataset): + """Map dataset for on-off likelihood fitting. + + It bundles together the binned on and off counts, the binned IRFs as well as the on and off acceptances. + + A safe mask and a fit mask can be added to exclude bins during the analysis. + + It uses the Wstat statistic (see `~gammapy.stats.wstat`), therefore no background model is needed. + + For more information see :ref:`datasets`. + + Parameters + ---------- + models : `~gammapy.modeling.models.Models` + Source sky models. + counts : `~gammapy.maps.WcsNDMap` + Counts cube. + counts_off : `~gammapy.maps.WcsNDMap` + Ring-convolved counts cube. + acceptance : `~gammapy.maps.WcsNDMap` + Acceptance from the IRFs. + acceptance_off : `~gammapy.maps.WcsNDMap` + Acceptance off. + exposure : `~gammapy.maps.WcsNDMap` + Exposure cube. + mask_fit : `~gammapy.maps.WcsNDMap` + Mask to apply to the likelihood for fitting. + psf : `~gammapy.irf.PSFKernel` + PSF kernel. + edisp : `~gammapy.irf.EDispKernel` + Energy dispersion. + mask_safe : `~gammapy.maps.WcsNDMap` + Mask defining the safe data range. + gti : `~gammapy.data.GTI` + GTI of the observation or union of GTI if it is a stacked observation. + meta_table : `~astropy.table.Table` + Table listing information on observations used to create the dataset. + One line per observation for stacked datasets. + name : str + Name of the dataset. + meta : `~gammapy.datasets.MapDatasetMetaData` + Associated meta data container + + + See Also + -------- + MapDataset, SpectrumDataset, FluxPointsDataset. + + """ + + stat_type = "wstat" + tag = "MapDatasetOnOff" + + def __init__( + self, + models=None, + counts=None, + counts_off=None, + acceptance=None, + acceptance_off=None, + exposure=None, + mask_fit=None, + psf=None, + edisp=None, + name=None, + mask_safe=None, + gti=None, + meta_table=None, + meta=None, + ): + self._name = make_name(name) + self._evaluators = {} + + self.counts = counts + self.counts_off = counts_off + self.exposure = exposure + self.acceptance = acceptance + self.acceptance_off = acceptance_off + self.gti = gti + self.mask_fit = mask_fit + self.psf = psf + self.edisp = edisp + self.models = models + self.mask_safe = mask_safe + self.meta_table = meta_table + if meta is None: + self._meta = MapDatasetMetaData() + else: + self._meta = meta + + def __str__(self): + str_ = super().__str__() + + if self.mask_safe: + mask = self.mask_safe.data.astype(bool) + else: + mask = slice(None) + + counts_off = np.nan + if self.counts_off is not None: + counts_off = np.sum(self.counts_off.data[mask]) + str_ += "\t{:32}: {:.0f} \n".format("Total counts_off", counts_off) + + acceptance = np.nan + if self.acceptance is not None: + acceptance = np.sum(self.acceptance.data[mask]) + str_ += "\t{:32}: {:.0f} \n".format("Acceptance", acceptance) + + acceptance_off = np.nan + if self.acceptance_off is not None: + acceptance_off = np.sum(self.acceptance_off.data[mask]) + str_ += "\t{:32}: {:.0f} \n".format("Acceptance off", acceptance_off) + + return str_.expandtabs(tabsize=2) + + @property + def _geom(self): + """Main analysis geometry.""" + if self.counts is not None: + return self.counts.geom + elif self.counts_off is not None: + return self.counts_off.geom + elif self.acceptance is not None: + return self.acceptance.geom + elif self.acceptance_off is not None: + return self.acceptance_off.geom + else: + raise ValueError( + "Either 'counts', 'counts_off', 'acceptance' or 'acceptance_of' must be defined." + ) + + @property + def alpha(self): + """Exposure ratio between signal and background regions. + + See :ref:`wstat`. + + Returns + ------- + alpha : `Map` + Alpha map. + """ + with np.errstate(invalid="ignore", divide="ignore"): + data = self.acceptance.quantity / self.acceptance_off.quantity + data = np.nan_to_num(data) + + return Map.from_geom(self._geom, data=data.to_value(""), unit="") + +
+[docs] + def npred_background(self): + """Predicted background counts estimated from the marginalized likelihood estimate. + + See :ref:`wstat`. + + Returns + ------- + npred_background : `Map` + Predicted background counts. + """ + mu_bkg = self.alpha.data * get_wstat_mu_bkg( + n_on=self.counts.data, + n_off=self.counts_off.data, + alpha=self.alpha.data, + mu_sig=self.npred_signal().data, + ) + mu_bkg = np.nan_to_num(mu_bkg) + return Map.from_geom(geom=self._geom, data=mu_bkg)
+ + +
+[docs] + def npred_off(self): + """Predicted counts in the off region; mu_bkg/alpha. + + See :ref:`wstat`. + + Returns + ------- + npred_off : `Map` + Predicted off counts. + """ + return self.npred_background() / self.alpha
+ + + @property + def background(self): + """Computed as alpha * n_off. + + See :ref:`wstat`. + + Returns + ------- + background : `Map` + Background map. + """ + if self.counts_off is None: + return None + return self.alpha * self.counts_off + +
+[docs] + def stat_array(self): + """Statistic function value per bin given the current model parameters.""" + mu_sig = self.npred_signal().data + on_stat_ = wstat( + n_on=self.counts.data, + n_off=self.counts_off.data, + alpha=list(self.alpha.data), + mu_sig=mu_sig, + ) + return np.nan_to_num(on_stat_)
+ + + @property + def _counts_statistic(self): + """Counts statistics of the dataset.""" + return WStatCountsStatistic(self.counts, self.counts_off, self.alpha) + +
+[docs] + @classmethod + def from_geoms( + cls, + geom, + geom_exposure=None, + geom_psf=None, + geom_edisp=None, + reference_time="2000-01-01", + name=None, + **kwargs, + ): + """Create an empty `MapDatasetOnOff` object according to the specified geometries. + + Parameters + ---------- + geom : `gammapy.maps.WcsGeom` + Geometry for the counts, counts_off, acceptance and acceptance_off maps. + geom_exposure : `gammapy.maps.WcsGeom`, optional + Geometry for the exposure map. Default is None. + geom_psf : `gammapy.maps.WcsGeom`, optional + Geometry for the PSF map. Default is None. + geom_edisp : `gammapy.maps.WcsGeom`, optional + Geometry for the energy dispersion kernel map. + If geom_edisp has a migra axis, this will create an EDispMap instead. Default is None. + reference_time : `~astropy.time.Time` + The reference time to use in GTI definition. Default is "2000-01-01". + name : str, optional + Name of the returned dataset. Default is None. + **kwargs : dict, optional + Keyword arguments to be passed. + + Returns + ------- + empty_maps : `MapDatasetOnOff` + A MapDatasetOnOff containing zero filled maps. + """ + # TODO: it seems the super() pattern does not work here? + dataset = MapDataset.from_geoms( + geom=geom, + geom_exposure=geom_exposure, + geom_psf=geom_psf, + geom_edisp=geom_edisp, + name=name, + reference_time=reference_time, + **kwargs, + ) + + off_maps = {} + + for key in ["counts_off", "acceptance", "acceptance_off"]: + off_maps[key] = Map.from_geom(geom, unit="") + + return cls.from_map_dataset(dataset, name=name, **off_maps)
+ + +
+[docs] + @classmethod + def from_map_dataset( + cls, dataset, acceptance, acceptance_off, counts_off=None, name=None + ): + """Create on off dataset from a map dataset. + + Parameters + ---------- + dataset : `MapDataset` + Spectrum dataset defining counts, edisp, aeff, livetime etc. + acceptance : `Map` + Relative background efficiency in the on region. + acceptance_off : `Map` + Relative background efficiency in the off region. + counts_off : `Map`, optional + Off counts map . If the dataset provides a background model, + and no off counts are defined. The off counts are deferred from + counts_off / alpha. Default is None. + name : str, optional + Name of the returned dataset. Default is None. + + Returns + ------- + dataset : `MapDatasetOnOff` + Map dataset on off. + + """ + if counts_off is None and dataset.background is not None: + alpha = acceptance / acceptance_off + counts_off = dataset.npred_background() / alpha + + if np.isscalar(acceptance): + acceptance = Map.from_geom(dataset._geom, data=acceptance) + + if np.isscalar(acceptance_off): + acceptance_off = Map.from_geom(dataset._geom, data=acceptance_off) + + return cls( + models=dataset.models, + counts=dataset.counts, + exposure=dataset.exposure, + counts_off=counts_off, + edisp=dataset.edisp, + psf=dataset.psf, + mask_safe=dataset.mask_safe, + mask_fit=dataset.mask_fit, + acceptance=acceptance, + acceptance_off=acceptance_off, + gti=dataset.gti, + name=name, + meta_table=dataset.meta_table, + )
+ + +
+[docs] + def to_map_dataset(self, name=None): + """Convert a MapDatasetOnOff to a MapDataset. + + The background model template is taken as alpha * counts_off. + + Parameters + ---------- + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `MapDataset` + Map dataset with cash statistics. + """ + name = make_name(name) + + background = self.counts_off * self.alpha if self.counts_off else None + + return MapDataset( + counts=self.counts, + exposure=self.exposure, + psf=self.psf, + edisp=self.edisp, + name=name, + gti=self.gti, + mask_fit=self.mask_fit, + mask_safe=self.mask_safe, + background=background, + meta_table=self.meta_table, + )
+ + + @property + def _is_stackable(self): + """Check if the Dataset contains enough information to be stacked.""" + incomplete = ( + self.acceptance_off is None + or self.acceptance is None + or self.counts_off is None + ) + unmasked = np.any(self.mask_safe.data) + if incomplete and unmasked: + return False + else: + return True + +
+[docs] + def stack(self, other, nan_to_num=True): + r"""Stack another dataset in place. + + Safe mask is applied to the other dataset to compute the stacked counts data, + counts outside the safe mask are lost (as for `~gammapy.MapDataset.stack`). + + The ``acceptance`` of the stacked dataset is obtained by stacking the acceptance weighted + by the other mask_safe onto the current unweighted acceptance. + + Note that the masking is not applied to the current dataset. If masking needs + to be applied to it, use `~gammapy.MapDataset.to_masked()` first. + + The stacked ``acceptance_off`` is scaled so that: + + .. math:: + \alpha_\text{stacked} = + \frac{1}{a_\text{off}} = + \frac{\alpha_1\text{OFF}_1 + \alpha_2\text{OFF}_2}{\text{OFF}_1 + OFF_2}. + + For details, see :ref:`stack`. + + Parameters + ---------- + other : `MapDatasetOnOff` + Other dataset. + nan_to_num : bool + Non-finite values are replaced by zero if True. Default is True. + """ + if not isinstance(other, MapDatasetOnOff): + raise TypeError("Incompatible types for MapDatasetOnOff stacking") + + if not self._is_stackable or not other._is_stackable: + raise ValueError("Cannot stack incomplete MapDatasetOnOff.") + + geom = self.counts.geom + total_off = Map.from_geom(geom) + total_alpha = Map.from_geom(geom) + total_acceptance = Map.from_geom(geom) + + total_acceptance.stack(self.acceptance, nan_to_num=nan_to_num) + total_acceptance.stack( + other.acceptance, weights=other.mask_safe, nan_to_num=nan_to_num + ) + + if self.counts_off: + total_off.stack(self.counts_off, nan_to_num=nan_to_num) + total_alpha.stack(self.alpha * self.counts_off, nan_to_num=nan_to_num) + if other.counts_off: + total_off.stack( + other.counts_off, weights=other.mask_safe, nan_to_num=nan_to_num + ) + total_alpha.stack( + other.alpha * other.counts_off, + weights=other.mask_safe, + nan_to_num=nan_to_num, + ) + + with np.errstate(divide="ignore", invalid="ignore"): + acceptance_off = total_acceptance * total_off / total_alpha + average_alpha = total_alpha.data.sum() / total_off.data.sum() + + # For the bins where the stacked OFF counts equal 0, the alpha value is + # performed by weighting on the total OFF counts of each run + is_zero = total_off.data == 0 + acceptance_off.data[is_zero] = total_acceptance.data[is_zero] / average_alpha + + self.acceptance.data[...] = total_acceptance.data + self.acceptance_off = acceptance_off + + self.counts_off = total_off + + super().stack(other, nan_to_num=nan_to_num)
+ + +
+[docs] + def stat_sum(self): + """Total statistic function value given the current model parameters. + + If the off counts are passed as None and the elements of the safe mask are False, zero will be returned. + Otherwise, the stat sum will be calculated and returned. + """ + if self.counts_off is None and not np.any(self.mask_safe.data): + return 0 + else: + return Dataset.stat_sum(self)
+ + +
+[docs] + def fake(self, npred_background, random_state="random-seed"): + """Simulate fake counts (on and off) for the current model and reduced IRFs. + + This method overwrites the counts defined on the dataset object. + + Parameters + ---------- + npred_background : `~gammapy.maps.Map` + Expected number of background counts in the on region. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. Default is "random-seed". + """ + random_state = get_random_state(random_state) + npred = self.npred_signal() + data = np.nan_to_num(npred.data, copy=True, nan=0.0, posinf=0.0, neginf=0.0) + npred.data = random_state.poisson(data) + + npred_bkg = random_state.poisson(npred_background.data) + + self.counts = npred + npred_bkg + + npred_off = npred_background / self.alpha + data_off = np.nan_to_num( + npred_off.data, copy=True, nan=0.0, posinf=0.0, neginf=0.0 + ) + npred_off.data = random_state.poisson(data_off) + self.counts_off = npred_off
+ + +
+[docs] + def to_hdulist(self): + """Convert map dataset to list of HDUs. + + Returns + ------- + hdulist : `~astropy.io.fits.HDUList` + Map dataset list of HDUs. + """ + hdulist = super().to_hdulist() + exclude_primary = slice(1, None) + + del hdulist["BACKGROUND"] + del hdulist["BACKGROUND_BANDS"] + + if self.counts_off is not None: + hdulist += self.counts_off.to_hdulist(hdu="counts_off")[exclude_primary] + + if self.acceptance is not None: + hdulist += self.acceptance.to_hdulist(hdu="acceptance")[exclude_primary] + + if self.acceptance_off is not None: + hdulist += self.acceptance_off.to_hdulist(hdu="acceptance_off")[ + exclude_primary + ] + + return hdulist
+ + + @classmethod + def _read_lazy(cls, filename, name=None, cache=True, format="gadf"): + raise NotImplementedError( + f"Lazy loading is not implemented for {cls}, please use option lazy=False." + ) + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, name=None, format="gadf"): + """Create map dataset from list of HDUs. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + List of HDUs. + name : str, optional + Name of the new dataset. Default is None. + format : {"gadf"} + Format the hdulist is given in. Default is "gadf". + + Returns + ------- + dataset : `MapDatasetOnOff` + Map dataset. + """ + kwargs = {} + kwargs["name"] = name + + if "COUNTS" in hdulist: + kwargs["counts"] = Map.from_hdulist(hdulist, hdu="counts", format=format) + + if "COUNTS_OFF" in hdulist: + kwargs["counts_off"] = Map.from_hdulist( + hdulist, hdu="counts_off", format=format + ) + + if "ACCEPTANCE" in hdulist: + kwargs["acceptance"] = Map.from_hdulist( + hdulist, hdu="acceptance", format=format + ) + + if "ACCEPTANCE_OFF" in hdulist: + kwargs["acceptance_off"] = Map.from_hdulist( + hdulist, hdu="acceptance_off", format=format + ) + + if "EXPOSURE" in hdulist: + kwargs["exposure"] = Map.from_hdulist( + hdulist, hdu="exposure", format=format + ) + + if "EDISP" in hdulist: + edisp_map = Map.from_hdulist(hdulist, hdu="edisp", format=format) + + try: + exposure_map = Map.from_hdulist( + hdulist, hdu="edisp_exposure", format=format + ) + except KeyError: + exposure_map = None + + if edisp_map.geom.axes[0].name == "energy": + kwargs["edisp"] = EDispKernelMap(edisp_map, exposure_map) + else: + kwargs["edisp"] = EDispMap(edisp_map, exposure_map) + + if "PSF" in hdulist: + psf_map = Map.from_hdulist(hdulist, hdu="psf", format=format) + try: + exposure_map = Map.from_hdulist( + hdulist, hdu="psf_exposure", format=format + ) + except KeyError: + exposure_map = None + kwargs["psf"] = PSFMap(psf_map, exposure_map) + + if "MASK_SAFE" in hdulist: + mask_safe = Map.from_hdulist(hdulist, hdu="mask_safe", format=format) + kwargs["mask_safe"] = mask_safe + + if "MASK_FIT" in hdulist: + mask_fit = Map.from_hdulist(hdulist, hdu="mask_fit", format=format) + kwargs["mask_fit"] = mask_fit + + if "GTI" in hdulist: + gti = GTI.from_table_hdu(hdulist["GTI"]) + kwargs["gti"] = gti + + if "META_TABLE" in hdulist: + meta_table = Table.read(hdulist, hdu="META_TABLE") + kwargs["meta_table"] = meta_table + return cls(**kwargs)
+ + +
+[docs] + def info_dict(self, in_safe_data_range=True): + """Basic info dict with summary statistics. + + If a region is passed, then a spectrum dataset is + extracted, and the corresponding info returned. + + Parameters + ---------- + in_safe_data_range : bool + Whether to sum only in the safe energy range. Default is True. + + Returns + ------- + info_dict : dict + Dictionary with summary info. + """ + # TODO: remove code duplication with SpectrumDatasetOnOff + info = super().info_dict(in_safe_data_range) + + if self.mask_safe and in_safe_data_range: + mask = self.mask_safe.data.astype(bool) + else: + mask = slice(None) + + summed_stat = self._counts_statistic[mask].sum() + + counts_off = 0 + if self.counts_off is not None: + counts_off = summed_stat.n_off + + info["counts_off"] = int(counts_off) + + acceptance = 1 + if self.acceptance: + acceptance = self.acceptance.data[mask].sum() + + info["acceptance"] = float(acceptance) + + acceptance_off = np.nan + alpha = np.nan + + if self.acceptance_off: + alpha = summed_stat.alpha + acceptance_off = acceptance / alpha + + info["acceptance_off"] = float(acceptance_off) + info["alpha"] = float(alpha) + + info["stat_sum"] = self.stat_sum() + return info
+ + +
+[docs] + def to_spectrum_dataset(self, on_region, containment_correction=False, name=None): + """Return a ~gammapy.datasets.SpectrumDatasetOnOff from on_region. + + Counts and OFF counts are summed in the on_region. + + Acceptance is the average of all acceptances while acceptance OFF + is taken such that number of excess is preserved in the on_region. + + Effective area is taken from the average exposure. + + The energy dispersion kernel is obtained at the on_region center. + Only regions with centers are supported. + + The models are not exported to the ~gammapy.dataset.SpectrumDatasetOnOff. + It must be set after the dataset extraction. + + Parameters + ---------- + on_region : `~regions.SkyRegion` + The input ON region on which to extract the spectrum. + containment_correction : bool + Apply containment correction for point sources and circular on regions. Default is False. + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `~gammapy.datasets.SpectrumDatasetOnOff` + The resulting reduced dataset. + """ + from .spectrum import SpectrumDatasetOnOff + + dataset = super().to_spectrum_dataset( + on_region=on_region, + containment_correction=containment_correction, + name=name, + ) + + kwargs = {"name": name} + + if self.counts_off is not None: + kwargs["counts_off"] = self.counts_off.get_spectrum( + on_region, np.sum, weights=self.mask_safe + ) + + if self.acceptance is not None: + kwargs["acceptance"] = self.acceptance.get_spectrum( + on_region, np.mean, weights=self.mask_safe + ) + norm = self.background.get_spectrum( + on_region, np.sum, weights=self.mask_safe + ) + acceptance_off = kwargs["acceptance"] * kwargs["counts_off"] / norm + np.nan_to_num(acceptance_off.data, copy=False) + kwargs["acceptance_off"] = acceptance_off + + return SpectrumDatasetOnOff.from_spectrum_dataset(dataset=dataset, **kwargs)
+ + +
+[docs] + def cutout(self, position, width, mode="trim", name=None): + """Cutout map dataset. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + mode : {'trim', 'partial', 'strict'} + Mode option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. Default is "trim". + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + cutout : `MapDatasetOnOff` + Cutout map dataset. + """ + cutout_kwargs = { + "position": position, + "width": width, + "mode": mode, + "name": name, + } + + cutout_dataset = super().cutout(**cutout_kwargs) + + del cutout_kwargs["name"] + + if self.counts_off is not None: + cutout_dataset.counts_off = self.counts_off.cutout(**cutout_kwargs) + + if self.acceptance is not None: + cutout_dataset.acceptance = self.acceptance.cutout(**cutout_kwargs) + + if self.acceptance_off is not None: + cutout_dataset.acceptance_off = self.acceptance_off.cutout(**cutout_kwargs) + + return cutout_dataset
+ + +
+[docs] + def downsample(self, factor, axis_name=None, name=None): + """Downsample map dataset. + + The PSFMap and EDispKernelMap are not downsampled, except if + a corresponding axis is given. + + Parameters + ---------- + factor : int + Downsampling factor. + axis_name : str, optional + Which non-spatial axis to downsample. By default, only spatial axes are downsampled. Default is None. + name : str, optional + Name of the downsampled dataset. Default is None. + + Returns + ------- + dataset : `MapDatasetOnOff` + Downsampled map dataset. + """ + + dataset = super().downsample(factor, axis_name, name) + + counts_off = None + if self.counts_off is not None: + counts_off = self.counts_off.downsample( + factor=factor, + preserve_counts=True, + axis_name=axis_name, + weights=self.mask_safe, + ) + + acceptance, acceptance_off = None, None + if self.acceptance_off is not None: + acceptance = self.acceptance.downsample( + factor=factor, preserve_counts=False, axis_name=axis_name + ) + factor = self.background.downsample( + factor=factor, + preserve_counts=True, + axis_name=axis_name, + weights=self.mask_safe, + ) + acceptance_off = acceptance * counts_off / factor + + return self.__class__.from_map_dataset( + dataset, + acceptance=acceptance, + acceptance_off=acceptance_off, + counts_off=counts_off, + )
+ + +
+[docs] + def pad(self): + """Not implemented for MapDatasetOnOff.""" + raise NotImplementedError
+ + +
+[docs] + def slice_by_idx(self, slices, name=None): + """Slice sub dataset. + + The slicing only applies to the maps that define the corresponding axes. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dict are kept unchanged. + name : str, optional + Name of the sliced dataset. Default is None. + + Returns + ------- + map_out : `Map` + Sliced map object. + """ + kwargs = {"name": name} + dataset = super().slice_by_idx(slices, name) + + if self.counts_off is not None: + kwargs["counts_off"] = self.counts_off.slice_by_idx(slices=slices) + + if self.acceptance is not None: + kwargs["acceptance"] = self.acceptance.slice_by_idx(slices=slices) + + if self.acceptance_off is not None: + kwargs["acceptance_off"] = self.acceptance_off.slice_by_idx(slices=slices) + + return self.from_map_dataset(dataset, **kwargs)
+ + +
+[docs] + def resample_energy_axis(self, energy_axis, name=None): + """Resample MapDatasetOnOff over reconstructed energy edges. + + Counts are summed taking into account safe mask. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + New reco energy axis. + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `SpectrumDataset` + Resampled spectrum dataset. + """ + dataset = super().resample_energy_axis(energy_axis, name) + + counts_off = None + if self.counts_off is not None: + counts_off = self.counts_off + counts_off = counts_off.resample_axis( + axis=energy_axis, weights=self.mask_safe + ) + + acceptance = 1 + acceptance_off = None + if self.acceptance is not None: + acceptance = self.acceptance + acceptance = acceptance.resample_axis( + axis=energy_axis, weights=self.mask_safe + ) + + norm_factor = self.background.resample_axis( + axis=energy_axis, weights=self.mask_safe + ) + + acceptance_off = acceptance * counts_off / norm_factor + + return self.__class__.from_map_dataset( + dataset, + acceptance=acceptance, + acceptance_off=acceptance_off, + counts_off=counts_off, + name=name, + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/metadata.html b/docs/dev/_modules/gammapy/datasets/metadata.html new file mode 100644 index 00000000000..694067ad8db --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/metadata.html @@ -0,0 +1,639 @@ + + + + + + + + + + gammapy.datasets.metadata — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.metadata

+from typing import ClassVar, Literal, Optional, Union
+import numpy as np
+from astropy.coordinates import SkyCoord
+from pydantic import ConfigDict
+from gammapy.utils.metadata import (
+    METADATA_FITS_KEYS,
+    CreatorMetaData,
+    MetaData,
+    ObsInfoMetaData,
+    PointingInfoMetaData,
+)
+
+__all__ = ["MapDatasetMetaData"]
+
+MapDataset_METADATA_FITS_KEYS = {
+    "MapDataset": {
+        "event_types": "EVT_TYPE",
+        "optional": "OPTIONAL",
+    },
+}
+
+METADATA_FITS_KEYS.update(MapDataset_METADATA_FITS_KEYS)
+
+
+
+[docs] +class MapDatasetMetaData(MetaData): + """Metadata containing information about the Dataset. + + Parameters + ---------- + creation : `~gammapy.utils.CreatorMetaData`, optional + The creation metadata. + obs_info : list of `~gammapy.utils.ObsInfoMetaData` + info about the observation. + event_types : list of int or str + Event types used in analysis. + pointing: list of `~gammapy.utils.PointingInfoMetaData` + Telescope pointing directions. + optional : dict + Additional optional metadata. + """ + + model_config = ConfigDict(coerce_numbers_to_str=True) + + _tag: ClassVar[Literal["MapDataset"]] = "MapDataset" + creation: Optional[CreatorMetaData] = CreatorMetaData() + obs_info: Optional[Union[ObsInfoMetaData, list[ObsInfoMetaData]]] = None + pointing: Optional[Union[PointingInfoMetaData, list[PointingInfoMetaData]]] = None + event_type: Optional[Union[str, list[str]]] = None + optional: Optional[dict] = None + +
+[docs] + def stack(self, other): + kwargs = {} + kwargs["creation"] = self.creation + return self.__class__(**kwargs)
+ + + @classmethod + def _from_meta_table(cls, table): + """Create MapDatasetMetaData from MapDataset.meta_table + + Parameters + ---------- + table: `~astropy.table.Table` + + """ + kwargs = {} + kwargs["creation"] = CreatorMetaData() + telescope = np.atleast_1d(table["TELESCOP"].data[0]) + obs_id = np.atleast_1d(table["OBS_ID"].data[0].astype(str)) + observation_mode = np.atleast_1d(table["OBS_MODE"].data[0]) + + obs_info = [] + for i in range(len(obs_id)): + obs_meta = ObsInfoMetaData( + **{ + "telescope": telescope[i], + "obs_id": obs_id[i], + "observation_mode": observation_mode[i], + } + ) + obs_info.append(obs_meta) + kwargs["obs_info"] = obs_info + + pointing_radec, pointing_altaz = None, None + if "RA_PNT" in table.colnames: + pointing_radec = SkyCoord( + ra=table["RA_PNT"].data[0], dec=table["DEC_PNT"].data[0], unit="deg" + ) + if "ALT_PNT" in table.colnames: + pointing_altaz = SkyCoord( + alt=table["ALT_PNT"].data[0], + az=table["AZ_PNT"].data[0], + unit="deg", + frame="altaz", + ) + pointings = [] + for pra, paz in zip( + np.atleast_1d(pointing_radec), np.atleast_1d(pointing_altaz) + ): + pointings.append(PointingInfoMetaData(radec_mean=pra, altaz_mean=paz)) + kwargs["pointing"] = pointings + return cls(**kwargs)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/simulate.html b/docs/dev/_modules/gammapy/datasets/simulate.html new file mode 100644 index 00000000000..e0065ee570f --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/simulate.html @@ -0,0 +1,1250 @@ + + + + + + + + + + gammapy.datasets.simulate — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.simulate

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Simulate observations."""
+
+import html
+import logging
+from copy import deepcopy
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import SkyCoord, SkyOffsetFrame
+from astropy.table import Table
+from astropy.time import Time
+from gammapy import __version__
+from gammapy.data import EventList, observatory_locations
+from gammapy.maps import MapAxis, MapCoord, RegionNDMap, TimeMapAxis
+from gammapy.modeling.models import (
+    ConstantSpectralModel,
+    ConstantTemporalModel,
+    PointSpatialModel,
+)
+from gammapy.utils.fits import earth_location_to_dict
+from gammapy.utils.random import get_random_state
+from .map import create_map_dataset_from_observation
+
+__all__ = ["MapDatasetEventSampler", "ObservationEventSampler"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class MapDatasetEventSampler: + """Sample events from a map dataset. + + Parameters + ---------- + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation via the `~gammapy.utils.random.get_random_state` function. + oversample_energy_factor : int, optional + Defines an oversampling factor for the energies; it is used only when sampling + an energy-dependent time-varying source. + t_delta : `~astropy.units.Quantity`, optional + Time interval used to sample the time-dependent source. + keep_mc_id : bool, optional + Flag to tag sampled events from a given model with a Montecarlo identifier. + Default is True. If set to False, no identifier will be assigned. + n_event_bunch : int + Size of events bunches to sample. If None, sample all events in memory. + Default is 10000. + """ + + def __init__( + self, + random_state="random-seed", + oversample_energy_factor=10, + t_delta=0.5 * u.s, + keep_mc_id=True, + n_event_bunch=10000, + ): + self.random_state = get_random_state(random_state) + self.oversample_energy_factor = oversample_energy_factor + self.t_delta = t_delta + self.keep_mc_id = keep_mc_id + self.n_event_bunch = n_event_bunch + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def _make_table(self, coords, time_ref): + """Create a table for sampled events. + + Parameters + ---------- + coords : `~gammapy.maps.MapCoord` + Coordinates of the sampled events. + time_ref : `~astropy.time.Time` + Reference time of the event list. + + Returns + ------- + table : `~astropy.table.Table` + Table of the sampled events. + """ + table = Table() + try: + energy = coords["energy_true"] + except KeyError: + energy = coords["energy"] + + table["TIME"] = (coords["time"] - time_ref).to("s") + table["ENERGY_TRUE"] = energy + + table["RA_TRUE"] = coords.skycoord.icrs.ra.to("deg") + table["DEC_TRUE"] = coords.skycoord.icrs.dec.to("deg") + + return table + + def _evaluate_timevar_source( + self, + dataset, + model, + ): + """Calculate Npred for a given `dataset.model` by evaluating + it on a region geometry. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + model : `~gammapy.modeling.models.SkyModel` + Sky model instance. + + Returns + ------- + npred : `~gammapy.maps.RegionNDMap` + Npred map. + """ + energy_true = dataset.edisp.edisp_map.geom.axes["energy_true"] + energy_new = energy_true.upsample(self.oversample_energy_factor) + + position = model.spatial_model.position + region_exposure = dataset.exposure.to_region_nd_map(position) + + time_axis_eval = TimeMapAxis.from_gti_bounds( + gti=dataset.gti, t_delta=self.t_delta + ) + + time_min, time_max = time_axis_eval.time_bounds + time_axis = MapAxis.from_bounds( + time_min.mjd * u.d, + time_max.mjd * u.d, + nbin=time_axis_eval.nbin, + name="time", + ) + + temp_eval = model.temporal_model.evaluate( + time_axis_eval.time_mid, energy=energy_new.center + ) + + norm = model.spectral_model(energy=energy_new.center) + + if temp_eval.unit.is_equivalent(norm.unit): + flux_diff = temp_eval.to(norm.unit) * norm.value[:, None] + else: + flux_diff = temp_eval * norm[:, None] + + flux_inte = flux_diff * energy_new.bin_width[:, None] + + flux_pred = RegionNDMap.create( + region=position, + axes=[time_axis, energy_new], + data=np.array(flux_inte), + unit=flux_inte.unit, + ) + + mapcoord = flux_pred.geom.get_coord(sparse=True) + mapcoord["energy_true"] = energy_true.center[:, None, None, None] + + flux_values = flux_pred.interp_by_coord(mapcoord) * flux_pred.unit + data = flux_values * region_exposure.quantity[:, None, :, :] + data /= time_axis.nbin / self.oversample_energy_factor + + npred = RegionNDMap.create( + region=position, + axes=[time_axis, energy_true], + data=data.to_value(""), + ) + + return npred + + def _sample_coord_time_energy(self, dataset, model): + """Sample model components of a source with time-dependent spectrum. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + model : `~gammapy.modeling.models.SkyModel` + Sky model instance. + + Returns + ------- + table : `~astropy.table.Table` + Table of sampled events. + """ + if not isinstance(model.spatial_model, PointSpatialModel): + raise TypeError( + f"Event sampler expects PointSpatialModel for a time varying source. Got {model.spatial_model} instead." + ) + + if not isinstance(model.spectral_model, ConstantSpectralModel): + raise TypeError( + f"Event sampler expects ConstantSpectralModel for a time varying source. Got {model.spectral_model} instead." + ) + + npred = self._evaluate_timevar_source(dataset, model=model) + data = npred.data[np.isfinite(npred.data)] + data = np.clip(data, 0, None) + + try: + n_events = self.random_state.poisson(np.sum(data)) + except ValueError: + raise ValueError( + f"The number of predicted events for the model {model.name} is too large. No event sampling will be performed for this model!" + ) + + coords = npred.sample_coord(n_events=n_events, random_state=self.random_state) + + coords["time"] = Time( + coords["time"], format="mjd", scale=dataset.gti.time_ref.scale + ) + + table = self._make_table(coords, dataset.gti.time_ref) + + return table + + def _sample_coord_time(self, npred, temporal_model, gti): + """Sample model components of a time-varying source. + + Parameters + ---------- + npred : `~gammapy.dataset.MapDataset` + Npred map. + temporal_model : `~gammapy.modeling.models\ + Temporal model of the source. + gti : `~gammapy.data.GTI` + GTI of the dataset. + + Returns + ------- + table : `~astropy.table.Table` + Table of sampled events. + """ + data = npred.data[np.isfinite(npred.data)] + data = np.clip(data, 0, None) + n_events = self.random_state.poisson(np.sum(data)) + + coords = npred.sample_coord(n_events=n_events, random_state=self.random_state) + + time_start, time_stop, time_ref = (gti.time_start, gti.time_stop, gti.time_ref) + coords["time"] = temporal_model.sample_time( + n_events=n_events, + t_min=time_start, + t_max=time_stop, + random_state=self.random_state, + t_delta=self.t_delta, + ) + + table = self._make_table(coords, time_ref) + + return table + +
+[docs] + def sample_sources(self, dataset, psf_update=False): + """Sample source model components. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + psf_update : bool + Parameter to switch-off (on) the update of the PSF + in the dataset; default is False. + + Returns + ------- + events : `~gammapy.data.EventList` + Event list. + """ + if psf_update is True: + psf_update = dataset.psf + else: + psf_update = None + + events_all = EventList(Table()) + for idx, evaluator in enumerate(dataset.evaluators.values()): + log.info(f"Evaluating model: {evaluator.model.name}") + if evaluator.needs_update: + evaluator.update( + dataset.exposure, + psf_update, + dataset.edisp, + dataset._geom, + dataset.mask, + ) + if not evaluator.contributes: + continue + + if evaluator.model.temporal_model is None: + temporal_model = ConstantTemporalModel() + else: + temporal_model = evaluator.model.temporal_model + + if temporal_model.is_energy_dependent: + table = self._sample_coord_time_energy(dataset, evaluator.model) + else: + flux = evaluator.compute_flux() + npred = evaluator.apply_exposure(flux) + table = self._sample_coord_time(npred, temporal_model, dataset.gti) + + if self.keep_mc_id: + if len(table) == 0: + mcid = table.Column(name="MC_ID", length=0, dtype=int) + table.add_column(mcid) + + table["MC_ID"] = idx + 1 + table.meta["MID{:05d}".format(idx + 1)] = idx + 1 + table.meta["MMN{:05d}".format(idx + 1)] = evaluator.model.name + + events_all.stack(EventList(table)) + + return events_all
+ + +
+[docs] + def sample_background(self, dataset): + """Sample background. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + + Returns + ------- + events : `gammapy.data.EventList` + Background events. + """ + + table = Table() + if dataset.background: + log.info("Evaluating background...") + background = dataset.npred_background() + + temporal_model = ConstantTemporalModel() + + table = self._sample_coord_time(background, temporal_model, dataset.gti) + + table["ENERGY"] = table["ENERGY_TRUE"] + table["RA"] = table["RA_TRUE"] + table["DEC"] = table["DEC_TRUE"] + + if self.keep_mc_id: + table["MC_ID"] = 0 + table.meta["MID{:05d}".format(0)] = 0 + table.meta["MMN{:05d}".format(0)] = dataset.background_model.name + + return EventList(table)
+ + +
+[docs] + def sample_edisp(self, edisp_map, events): + """Sample energy dispersion map. + + Parameters + ---------- + edisp_map : `~gammapy.irf.EDispMap` + Energy dispersion map. + events : `~gammapy.data.EventList` + Event list with the true energies. + + Returns + ------- + events : `~gammapy.data.EventList` + Event list with reconstructed energy column. + """ + coord = MapCoord( + { + "lon": events.table["RA_TRUE"].quantity, + "lat": events.table["DEC_TRUE"].quantity, + "energy_true": events.table["ENERGY_TRUE"].quantity, + }, + frame="icrs", + ) + + coords_reco = edisp_map.sample_coord( + coord, self.random_state, self.n_event_bunch + ) + events.table["ENERGY"] = coords_reco["energy"] + return events
+ + +
+[docs] + def sample_psf(self, psf_map, events): + """Sample PSF map. + + Parameters + ---------- + psf_map : `~gammapy.irf.PSFMap` + PSF map. + events : `~gammapy.data.EventList` + Event list. + + Returns + ------- + events : `~gammapy.data.EventList` + Event list with reconstructed position columns. + """ + coord = MapCoord( + { + "lon": events.table["RA_TRUE"].quantity, + "lat": events.table["DEC_TRUE"].quantity, + "energy_true": events.table["ENERGY_TRUE"].quantity, + }, + frame="icrs", + ) + + coords_reco = psf_map.sample_coord(coord, self.random_state, self.n_event_bunch) + + events.table["RA"] = coords_reco["lon"] * u.deg + events.table["DEC"] = coords_reco["lat"] * u.deg + return events
+ + +
+[docs] + @staticmethod + def event_det_coords(observation, events): + """Add columns of detector coordinates (DETX-DETY) to the event list. + + Parameters + ---------- + observation : `~gammapy.data.Observation` + In memory observation. + events : `~gammapy.data.EventList` + Event list. + + Returns + ------- + events : `~gammapy.data.EventList` + Event list with columns of event detector coordinates. + """ + sky_coord = SkyCoord(events.table["RA"], events.table["DEC"], frame="icrs") + frame = SkyOffsetFrame(origin=observation.get_pointing_icrs(observation.tmid)) + pseudo_fov_coord = sky_coord.transform_to(frame) + + events.table["DETX"] = pseudo_fov_coord.lon + events.table["DETY"] = pseudo_fov_coord.lat + return events
+ + +
+[docs] + @staticmethod + def event_list_meta(dataset, observation, keep_mc_id=True): + """Event list meta info. + Please, note that this function will be updated in the future. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + observation : `~gammapy.data.Observation` + In memory observation. + keep_mc_id : bool + Flag to tag sampled events from a given model with a Montecarlo identifier. + Default is True. If set to False, no identifier will be assigned. + + Returns + ------- + meta : dict + Meta dictionary. + """ + # See: https://gamma-astro-data-formats.readthedocs.io/en/latest/events/events.html#mandatory-header-keywords # noqa: E501 + meta = {} + + meta["HDUCLAS1"] = "EVENTS" + meta["EXTNAME"] = "EVENTS" + meta["HDUDOC"] = ( + "https://github.com/open-gamma-ray-astro/gamma-astro-data-formats" + ) + meta["HDUVERS"] = "0.2" + meta["HDUCLASS"] = "GADF" + + meta["OBS_ID"] = observation.obs_id + + meta["TSTART"] = (observation.tstart - dataset.gti.time_ref).to_value("s") + meta["TSTOP"] = (observation.tstop - dataset.gti.time_ref).to_value("s") + + meta["ONTIME"] = observation.observation_time_duration.to("s").value + meta["LIVETIME"] = observation.observation_live_time_duration.to("s").value + meta["DEADC"] = 1 - observation.observation_dead_time_fraction + + fixed_icrs = observation.pointing.fixed_icrs + meta["RA_PNT"] = fixed_icrs.ra.deg + meta["DEC_PNT"] = fixed_icrs.dec.deg + + meta["EQUINOX"] = "J2000" + meta["RADECSYS"] = "icrs" + + meta["CREATOR"] = "Gammapy {}".format(__version__) + meta["EUNIT"] = "TeV" + meta["EVTVER"] = "" + + meta["OBSERVER"] = "Gammapy user" + meta["DSTYP1"] = "TIME" + meta["DSUNI1"] = "s" + meta["DSVAL1"] = "TABLE" + meta["DSREF1"] = ":GTI" + meta["DSTYP2"] = "ENERGY" + meta["DSUNI2"] = "TeV" + meta["DSVAL2"] = ( + f'{dataset._geom.axes["energy"].edges.min().value}:{dataset._geom.axes["energy"].edges.max().value}' # noqa: E501 + ) + meta["DSTYP3"] = "POS(RA,DEC) " + + offset_max = np.max(dataset._geom.width).to_value("deg") + meta["DSVAL3"] = ( + f"CIRCLE({fixed_icrs.ra.deg},{fixed_icrs.dec.deg},{offset_max})" # noqa: E501 + ) + meta["DSUNI3"] = "deg " + meta["NDSKEYS"] = " 3 " + + # get first non background model component + for model in dataset.models: + if model is not dataset.background_model: + break + else: + model = None + + if model: + meta["OBJECT"] = model.name + meta["RA_OBJ"] = model.position.icrs.ra.deg + meta["DEC_OBJ"] = model.position.icrs.dec.deg + + meta["TELAPSE"] = dataset.gti.time_sum.to("s").value + meta["MJDREFI"] = int(dataset.gti.time_ref.mjd) + meta["MJDREFF"] = dataset.gti.time_ref.mjd % 1 + meta["TIMEUNIT"] = "s" + meta["TIMESYS"] = dataset.gti.time_ref.scale + meta["TIMEREF"] = "LOCAL" + meta["DATE-OBS"] = dataset.gti.time_start.isot[0][0:10] + meta["DATE-END"] = dataset.gti.time_stop.isot[0][0:10] + meta["CONV_DEP"] = 0 + meta["CONV_RA"] = 0 + meta["CONV_DEC"] = 0 + + if keep_mc_id: + meta["NMCIDS"] = len(dataset.models) + + # Necessary for DataStore, but they should be ALT and AZ instead! + telescope = observation.aeff.meta["TELESCOP"] + instrument = observation.aeff.meta["INSTRUME"] + loc = observation.observatory_earth_location + if loc is None: + if telescope == "CTA": + if instrument == "Southern Array": + loc = observatory_locations["cta_south"] + elif instrument == "Northern Array": + loc = observatory_locations["cta_north"] + else: + loc = observatory_locations["cta_south"] + + else: + loc = observatory_locations[telescope.lower()] + + meta.update(earth_location_to_dict(loc)) + + # this is not really correct but maybe OK for now + coord_altaz = observation.pointing.get_altaz(dataset.gti.time_start, loc) + + meta["ALT_PNT"] = coord_altaz.alt.deg[0] + meta["AZ_PNT"] = coord_altaz.az.deg[0] + + # TO DO: these keywords should be taken from the IRF of the dataset + meta["ORIGIN"] = "Gammapy" + meta["TELESCOP"] = observation.aeff.meta["TELESCOP"] + meta["INSTRUME"] = observation.aeff.meta["INSTRUME"] + meta["N_TELS"] = "" + meta["TELLIST"] = "" + + meta["CREATED"] = Time.now().iso + meta["OBS_MODE"] = "POINTING" + meta["EV_CLASS"] = "" + + return meta
+ + +
+[docs] + def run(self, dataset, observation=None): + """Run the event sampler, applying IRF corrections. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + observation : `~gammapy.data.Observation`, optional + In memory observation. Default is None. + + Returns + ------- + events : `~gammapy.data.EventList` + Event list. + """ + events_src = self.sample_sources(dataset) + + if len(events_src.table) > 0: + if dataset.psf: + events_src = self.sample_psf(dataset.psf, events_src) + else: + events_src.table["RA"] = events_src.table["RA_TRUE"] + events_src.table["DEC"] = events_src.table["DEC_TRUE"] + + if dataset.edisp: + events_src = self.sample_edisp(dataset.edisp, events_src) + else: + events_src.table["ENERGY"] = events_src.table["ENERGY_TRUE"] + + events_bkg = self.sample_background(dataset) + events = EventList.from_stack([events_bkg, events_src]) + + events.table["EVENT_ID"] = np.arange(len(events.table)) + if observation is not None: + events = self.event_det_coords(observation, events) + events.table.meta.update( + self.event_list_meta(dataset, observation, self.keep_mc_id) + ) + + sort_by_time = np.argsort(events.table["TIME"]) + events.table = events.table[sort_by_time] + + geom = dataset._geom + selection = geom.contains(events.map_coord(geom)) + log.info("Event sampling completed.") + return events.select_row_subset(selection)
+
+ + + +
+[docs] +class ObservationEventSampler(MapDatasetEventSampler): + """ + Sample event lists for a given observation and signal models. + + Signal events are sampled from the predicted counts distribution given by the product of the sky models and the + expected exposure. They are then folded with the instrument response functions. + To improve performance, IRFs are evaluated on a pre-defined binning, + not at each individual event energy / coordinate. + + Parameters + ---------- + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation via the `~gammapy.utils.random.get_random_state` function. + oversample_energy_factor : int, optional + Defines an oversampling factor for the energies; it is used only when sampling + an energy-dependent time-varying source. Default is 10. + t_delta : `~astropy.units.Quantity`, optional + Time interval used to sample the time-dependent source. Default is 0.5 s. + keep_mc_id : bool, optional + Flag to tag sampled events from a given model with a Montecarlo identifier. + Default is True. If set to False, no identifier will be assigned. + n_event_bunch : int + Size of events bunches to sample. If None, sample all events in memory. + Default is 10000. + dataset_kwargs : dict, optional + Arguments passed to `~gammapy.datasets.create_map_dataset_from_observation()` + """ + + def __init__( + self, + random_state="random-seed", + oversample_energy_factor=10, + t_delta=0.5 * u.s, + keep_mc_id=True, + n_event_bunch=10000, + dataset_kwargs=None, + ): + self.dataset_kwargs = dataset_kwargs or {} + self.random_state = get_random_state(random_state) + self.oversample_energy_factor = oversample_energy_factor + self.t_delta = t_delta + self.n_event_bunch = n_event_bunch + self.keep_mc_id = keep_mc_id + +
+[docs] + def run(self, observation, models=None, dataset_name=None): + """Sample events for given observation and signal models. + + The signal distribution is sampled from the given models + in true coordinates and energy. The true quantities are + then folded with the IRFs to obtain the observable quantities. + + Parameters + ---------- + observation : `~gammapy.data.Observation` + Observation to be simulated. + models : `~gammapy.modeling.Models`, optional + Models to simulate. + Can be None to only sample background events. Default is None. + dataset_name : str, optional + If `models` contains one or multiple `FoVBackgroundModel` + it should match the `dataset_name` of the background model to use. + Default is None. + Returns + ------- + observation : `~gammapy.data.Observation` + A copy of the input observation with event list filled. + """ + + dataset = create_map_dataset_from_observation( + observation, models, dataset_name, **self.dataset_kwargs + ) + events = super().run(dataset, observation) + + observation = deepcopy(observation) + observation._events = events + return observation
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/spectrum.html b/docs/dev/_modules/gammapy/datasets/spectrum.html new file mode 100644 index 00000000000..6af9153ec6c --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/spectrum.html @@ -0,0 +1,1004 @@ + + + + + + + + + + gammapy.datasets.spectrum — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.spectrum

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import matplotlib.pyplot as plt
+from matplotlib.gridspec import GridSpec
+from gammapy.utils.scripts import make_path
+from .map import MapDataset, MapDatasetOnOff
+from .utils import get_axes
+
+__all__ = ["SpectrumDatasetOnOff", "SpectrumDataset"]
+
+log = logging.getLogger(__name__)
+
+
+class PlotMixin:
+    """Plot mixin for the spectral datasets."""
+
+    def plot_fit(
+        self,
+        ax_spectrum=None,
+        ax_residuals=None,
+        kwargs_spectrum=None,
+        kwargs_residuals=None,
+    ):
+        """Plot spectrum and residuals in two panels.
+
+        Calls `~SpectrumDataset.plot_excess` and `~SpectrumDataset.plot_residuals_spectral`.
+
+        Parameters
+        ----------
+        ax_spectrum : `~matplotlib.axes.Axes`, optional
+            Axes to plot spectrum on. Default is None.
+        ax_residuals : `~matplotlib.axes.Axes`, optional
+            Axes to plot residuals on. Default is None.
+        kwargs_spectrum : dict, optional
+            Keyword arguments passed to `~SpectrumDataset.plot_excess`. Default is None.
+        kwargs_residuals : dict, optional
+            Keyword arguments passed to `~SpectrumDataset.plot_residuals_spectral`. Default is None.
+
+        Returns
+        -------
+        ax_spectrum, ax_residuals : `~matplotlib.axes.Axes`
+            Spectrum and residuals plots.
+
+        Examples
+        --------
+        >>> #Creating a spectral dataset
+        >>> from gammapy.datasets import SpectrumDatasetOnOff
+        >>> from gammapy.modeling.models import PowerLawSpectralModel, SkyModel
+        >>> filename = "$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs23523.fits"
+        >>> dataset = SpectrumDatasetOnOff.read(filename)
+        >>> p = PowerLawSpectralModel()
+        >>> dataset.models = SkyModel(spectral_model=p)
+        >>> # optional configurations
+        >>> kwargs_excess = {"color": "blue", "markersize":8, "marker":'s', }
+        >>> kwargs_npred_signal = {"color": "black", "ls":"--"}
+        >>> kwargs_spectrum = {"kwargs_excess":kwargs_excess, "kwargs_npred_signal":kwargs_npred_signal}
+        >>> kwargs_residuals = {"color": "black", "markersize":4, "marker":'s', }
+        >>> dataset.plot_fit(kwargs_residuals=kwargs_residuals, kwargs_spectrum=kwargs_spectrum)  # doctest: +SKIP
+        """
+        gs = GridSpec(7, 1)
+        bool_visible_xticklabel = not (ax_spectrum is None and ax_residuals is None)
+        ax_spectrum, ax_residuals = get_axes(
+            ax_spectrum,
+            ax_residuals,
+            8,
+            7,
+            [gs[:5, :]],
+            [gs[5:, :]],
+            kwargs2={"sharex": ax_spectrum},
+        )
+        kwargs_spectrum = kwargs_spectrum or {}
+        kwargs_residuals = kwargs_residuals or {}
+
+        self.plot_excess(ax_spectrum, **kwargs_spectrum)
+
+        self.plot_residuals_spectral(ax_residuals, **kwargs_residuals)
+
+        method = kwargs_residuals.get("method", "diff")
+        label = self._residuals_labels[method]
+        ax_residuals.set_ylabel(f"Residuals\n{label}")
+        plt.setp(ax_spectrum.get_xticklabels(), visible=bool_visible_xticklabel)
+        self.plot_masks(ax=ax_spectrum)
+        self.plot_masks(ax=ax_residuals)
+
+        return ax_spectrum, ax_residuals
+
+    def plot_counts(
+        self, ax=None, kwargs_counts=None, kwargs_background=None, **kwargs
+    ):
+        """Plot counts and background.
+
+        Parameters
+        ----------
+        ax : `~matplotlib.axes.Axes`, optional
+            Axes to plot on. Default is None.
+        kwargs_counts : dict, optional
+            Keyword arguments passed to `~matplotlib.axes.Axes.hist` for the counts. Default is None.
+        kwargs_background : dict, optional
+            Keyword arguments passed to `~matplotlib.axes.Axes.hist` for the background. Default is None.
+        **kwargs : dict, optional
+            Keyword arguments passed to both `~matplotlib.axes.Axes.hist`.
+
+        Returns
+        -------
+        ax : `~matplotlib.axes.Axes`
+            Axes object.
+        """
+        kwargs_counts = kwargs_counts or {}
+        kwargs_background = kwargs_background or {}
+
+        plot_kwargs = kwargs.copy()
+        plot_kwargs.update(kwargs_counts)
+        plot_kwargs.setdefault("label", "Counts")
+        ax = self.counts.plot_hist(ax=ax, **plot_kwargs)
+
+        plot_kwargs = kwargs.copy()
+        plot_kwargs.update(kwargs_background)
+
+        plot_kwargs.setdefault("label", "Background")
+        self.background.plot_hist(ax=ax, **plot_kwargs)
+
+        ax.legend(numpoints=1)
+        return ax
+
+    def plot_masks(self, ax=None, kwargs_fit=None, kwargs_safe=None):
+        """Plot safe mask and fit mask.
+
+        Parameters
+        ----------
+        ax : `~matplotlib.axes.Axes`, optional
+            Axes to plot on. Default is None.
+        kwargs_fit : dict, optional
+            Keyword arguments passed to `~RegionNDMap.plot_mask()` for mask fit. Default is None.
+        kwargs_safe : dict, optional
+            Keyword arguments passed to `~RegionNDMap.plot_mask()` for mask safe. Default is None.
+
+        Returns
+        -------
+        ax : `~matplotlib.axes.Axes`
+            Axes object.
+
+        Examples
+        --------
+        >>> # Reading a spectral dataset
+        >>> from gammapy.datasets import SpectrumDatasetOnOff
+        >>> filename = "$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs23523.fits"
+        >>> dataset = SpectrumDatasetOnOff.read(filename)
+        >>> dataset.mask_fit = dataset.mask_safe.copy()
+        >>> dataset.mask_fit.data[40:46] = False  # setting dummy mask_fit for illustration
+        >>> # Plot the masks on top of the counts histogram
+        >>> kwargs_safe = {"color":"green", "alpha":0.2} #optinonal arguments to configure
+        >>> kwargs_fit = {"color":"pink", "alpha":0.2}
+        >>> ax=dataset.plot_counts()  # doctest: +SKIP
+        >>> dataset.plot_masks(ax=ax, kwargs_fit=kwargs_fit, kwargs_safe=kwargs_safe)  # doctest: +SKIP
+        """
+
+        kwargs_fit = kwargs_fit or {}
+        kwargs_safe = kwargs_safe or {}
+
+        kwargs_fit.setdefault("label", "Mask fit")
+        kwargs_fit.setdefault("color", "tab:green")
+        kwargs_safe.setdefault("label", "Mask safe")
+        kwargs_safe.setdefault("color", "black")
+
+        if self.mask_fit:
+            self.mask_fit.plot_mask(ax=ax, **kwargs_fit)
+
+        if self.mask_safe:
+            self.mask_safe.plot_mask(ax=ax, **kwargs_safe)
+
+        ax.legend()
+        return ax
+
+    def plot_excess(
+        self, ax=None, kwargs_excess=None, kwargs_npred_signal=None, **kwargs
+    ):
+        """Plot excess and predicted signal.
+
+        The error bars are computed with a symmetric assumption on the excess.
+
+        Parameters
+        ----------
+        ax : `~matplotlib.axes.Axes`, optional
+            Axes to plot on. Default is None.
+        kwargs_excess : dict, optional
+            Keyword arguments passed to `~matplotlib.axes.Axes.errorbar` for
+            the excess. Default is None.
+        kwargs_npred_signal : dict, optional
+            Keyword arguments passed to `~matplotlib.axes.Axes.hist` for the
+            predicted signal. Default is None.
+        **kwargs : dict, optional
+            Keyword arguments passed to both plot methods.
+
+        Returns
+        -------
+        ax : `~matplotlib.axes.Axes`
+            Axes object.
+
+        Examples
+        --------
+        >>> #Creating a spectral dataset
+        >>> from gammapy.datasets import SpectrumDatasetOnOff
+        >>> from gammapy.modeling.models import PowerLawSpectralModel, SkyModel
+        >>> filename = "$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs23523.fits"
+        >>> dataset = SpectrumDatasetOnOff.read(filename)
+        >>> p = PowerLawSpectralModel()
+        >>> dataset.models = SkyModel(spectral_model=p)
+        >>> #Plot the excess in blue and the npred in black dotted lines
+        >>> kwargs_excess = {"color": "blue", "markersize":8, "marker":'s', }
+        >>> kwargs_npred_signal = {"color": "black", "ls":"--"}
+        >>> dataset.plot_excess(kwargs_excess=kwargs_excess, kwargs_npred_signal=kwargs_npred_signal)  # doctest: +SKIP
+        """
+        kwargs_excess = kwargs_excess or {}
+        kwargs_npred_signal = kwargs_npred_signal or {}
+
+        # Determine the uncertainty on the excess
+        yerr = self._counts_statistic.error
+
+        plot_kwargs = kwargs.copy()
+        plot_kwargs.update(kwargs_excess)
+        plot_kwargs.setdefault("label", "Excess counts")
+        ax = self.excess.plot(ax, yerr=yerr, **plot_kwargs)
+
+        plot_kwargs = kwargs.copy()
+        plot_kwargs.update(kwargs_npred_signal)
+        plot_kwargs.setdefault("label", "Predicted signal counts")
+        self.npred_signal().plot_hist(ax, **plot_kwargs)
+
+        ax.legend(numpoints=1)
+        return ax
+
+    def peek(self, figsize=(16, 4)):
+        """Quick-look summary plots.
+
+        Parameters
+        ----------
+        figsize : tuple
+            Size of the figure. Default is (16, 4).
+
+        """
+        fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=figsize)
+
+        ax1.set_title("Counts")
+        self.plot_counts(ax1)
+        self.plot_masks(ax=ax1)
+        ax1.legend()
+
+        ax2.set_title("Exposure")
+        self.exposure.plot(ax2, ls="-", markersize=0, xerr=None)
+
+        ax3.set_title("Energy Dispersion")
+
+        if self.edisp is not None:
+            kernel = self.edisp.get_edisp_kernel()
+            kernel.plot_matrix(ax=ax3, add_cbar=True)
+
+
+
+[docs] +class SpectrumDataset(PlotMixin, MapDataset): + """Main dataset for spectrum fitting (1D analysis). + It bundles together binned counts, background, IRFs into `~gammapy.maps.RegionNDMap` (a Map with only one spatial bin). + A safe mask and a fit mask can be added to exclude bins during the analysis. + If models are assigned to it, it can compute the predicted number of counts and the statistic function, + here the Cash statistic (see `~gammapy.stats.cash`). + + For more information see :ref:`datasets`. + """ + + stat_type = "cash" + tag = "SpectrumDataset" + +
+[docs] + def cutout(self, *args, **kwargs): + """Not supported for `SpectrumDataset`""" + raise NotImplementedError("Method not supported on a spectrum dataset")
+ + +
+[docs] + def plot_residuals_spatial(self, *args, **kwargs): + """Not supported for `SpectrumDataset`""" + raise NotImplementedError("Method not supported on a spectrum dataset")
+ + +
+[docs] + def to_spectrum_dataset(self, *args, **kwargs): + """Not supported for `SpectrumDataset`""" + raise NotImplementedError("Already a Spectrum Dataset. Method not supported")
+
+ + + +
+[docs] +class SpectrumDatasetOnOff(PlotMixin, MapDatasetOnOff): + """Spectrum dataset for 1D on-off likelihood fitting. + It bundles together the binned on and off counts, the binned IRFs as well as the on and off acceptances. + + A fit mask can be added to exclude bins during the analysis. + + It uses the Wstat statistic (see `~gammapy.stats.wstat`). + + For more information see :ref:`datasets`. + """ + + stat_type = "wstat" + tag = "SpectrumDatasetOnOff" + +
+[docs] + def cutout(self, *args, **kwargs): + """Not supported for `SpectrumDatasetOnOff`.""" + raise NotImplementedError("Method not supported on a spectrum dataset")
+ + +
+[docs] + def plot_residuals_spatial(self, *args, **kwargs): + """Not supported for `SpectrumDatasetOnOff`.""" + raise NotImplementedError("Method not supported on a spectrum dataset")
+ + +
+[docs] + @classmethod + def read(cls, filename, format="ogip", checksum=False, name=None, **kwargs): + """Read from file. + + For OGIP formats, filename is the name of a PHA file. The BKG, ARF, and RMF file names must be + set in the PHA header and the files must be present in the same folder. For details, see `OGIPDatasetReader.read`. + + For the GADF format, a MapDataset serialisation is used. + + Parameters + ---------- + filename : `~pathlib.Path` or str + OGIP PHA file to read. + format : {"ogip", "ogip-sherpa", "gadf"} + Format to use. Default is "ogip". + checksum : bool, optional + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + name: str, optional + Name of the dataset. If None, dataset name will be set to the written one. Default is None. + kwargs : dict, optional + Keyword arguments passed to `MapDataset.read`. + """ + from .io import OGIPDatasetReader + + if format == "gadf": + return super().read( + filename, format="gadf", checksum=checksum, name=name, **kwargs + ) + + reader = OGIPDatasetReader(filename=filename, checksum=checksum, name=name) + return reader.read()
+ + +
+[docs] + def write(self, filename, overwrite=False, format="ogip", checksum=False): + """Write spectrum dataset on off to file. + + Can be serialised either as a `MapDataset` with a `RegionGeom` + following the GADF specifications, or as per the OGIP format. + For OGIP formats specs, see `OGIPDatasetWriter`. + + Parameters + ---------- + filename : `~pathlib.Path` or str + Filename to write to. + overwrite : bool, optional + Overwrite existing file. Default is False. + format : {"ogip", "ogip-sherpa", "gadf"} + Format to use. Default is "ogip". + checksum : bool + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + from .io import OGIPDatasetWriter + + if format == "gadf": + super().write(filename=filename, overwrite=overwrite, checksum=checksum) + elif format in ["ogip", "ogip-sherpa"]: + writer = OGIPDatasetWriter( + filename=filename, format=format, overwrite=overwrite, checksum=checksum + ) + writer.write(self) + else: + raise ValueError(f"{format} is not a valid serialisation format")
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create spectrum dataset from dict. + Reads file from the disk as specified in the dict. + + Parameters + ---------- + data : dict + Dictionary containing data to create dataset from. + + Returns + ------- + dataset : `SpectrumDatasetOnOff` + Spectrum dataset on off. + """ + + filename = make_path(data["filename"]) + dataset = cls.read(filename=filename) + dataset.mask_fit = None + return dataset
+ + +
+[docs] + def to_dict(self): + """Convert to dict for YAML serialization.""" + filename = f"pha_obs{self.name}.fits" + return {"name": self.name, "type": self.tag, "filename": filename}
+ + +
+[docs] + @classmethod + def from_spectrum_dataset(cls, **kwargs): + """Create a SpectrumDatasetOnOff from a `SpectrumDataset` dataset. + + Parameters + ---------- + dataset : `SpectrumDataset` + Spectrum dataset defining counts, edisp, exposure etc. + acceptance : `~numpy.array` or float + Relative background efficiency in the on region. + acceptance_off : `~numpy.array` or float + Relative background efficiency in the off region. + counts_off : `~gammapy.maps.RegionNDMap` + Off counts spectrum. If the dataset provides a background model, + and no off counts are defined. The off counts are deferred from + counts_off / alpha. + + Returns + ------- + dataset : `SpectrumDatasetOnOff` + Spectrum dataset on off. + """ + return cls.from_map_dataset(**kwargs)
+ + +
+[docs] + def to_spectrum_dataset(self, name=None): + """Convert a SpectrumDatasetOnOff to a SpectrumDataset. + The background model template is taken as alpha*counts_off. + + Parameters + ---------- + name : str, optional + Name of the new dataset. Default is None. + + Returns + ------- + dataset : `SpectrumDataset` + SpectrumDataset with Cash statistic. + """ + return self.to_map_dataset(name=name).to_spectrum_dataset(on_region=None)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/datasets/utils.html b/docs/dev/_modules/gammapy/datasets/utils.html new file mode 100644 index 00000000000..c41d87b7c8d --- /dev/null +++ b/docs/dev/_modules/gammapy/datasets/utils.html @@ -0,0 +1,743 @@ + + + + + + + + + + gammapy.datasets.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.datasets.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from astropy.coordinates import SkyCoord
+from gammapy.maps import Map
+from gammapy.modeling.models.utils import cutout_template_models
+from . import Datasets
+
+__all__ = ["apply_edisp", "split_dataset"]
+
+
+
+[docs] +def apply_edisp(input_map, edisp): + """Apply energy dispersion to map. Requires "energy_true" axis. + + Parameters + ---------- + input_map : `~gammapy.maps.Map` + The map to be convolved with the energy dispersion. + It must have an axis named "energy_true". + edisp : `~gammapy.irf.EDispKernel` + Energy dispersion matrix. + + Returns + ------- + map : `~gammapy.maps.Map` + Map with energy dispersion applied. + + Examples + -------- + >>> from gammapy.irf.edisp import EDispKernel + >>> from gammapy.datasets.utils import apply_edisp + >>> from gammapy.maps import MapAxis, Map + >>> import numpy as np + >>> + >>> axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=6, name="energy_true") + >>> m = Map.create( + ... skydir=(0.8, 0.8), + ... width=(1, 1), + ... binsz=0.02, + ... axes=[axis], + ... frame="galactic" + ... ) + >>> e_true = m.geom.axes[0] + >>> e_reco = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=3) + >>> edisp = EDispKernel.from_diagonal_response(energy_axis_true=e_true, energy_axis=e_reco) + >>> map_edisp = apply_edisp(m, edisp) + >>> print(map_edisp) + WcsNDMap + <BLANKLINE> + geom : WcsGeom + axes : ['lon', 'lat', 'energy'] + shape : (np.int64(50), np.int64(50), 3) + ndim : 3 + unit : + dtype : float64 + <BLANKLINE> + """ + # TODO: either use sparse matrix multiplication or something like edisp.is_diagonal + if edisp is not None: + loc = input_map.geom.axes.index("energy_true") + data = np.rollaxis(input_map.data, loc, len(input_map.data.shape)) + data = np.dot(data, edisp.pdf_matrix) + data = np.rollaxis(data, -1, loc) + energy_axis = edisp.axes["energy"].copy(name="energy") + else: + data = input_map.data + energy_axis = input_map.geom.axes["energy_true"].copy(name="energy") + + geom = input_map.geom.to_image().to_cube(axes=[energy_axis]) + return Map.from_geom(geom=geom, data=data, unit=input_map.unit)
+ + + +def get_figure(fig, width, height): + import matplotlib.pyplot as plt + + if plt.get_fignums(): + if not fig: + fig = plt.gcf() + fig.clf() + else: + fig = plt.figure(figsize=(width, height)) + + return fig + + +def get_axes(ax1, ax2, width, height, args1, args2, kwargs1=None, kwargs2=None): + if not ax1 and not ax2: + kwargs1 = kwargs1 or {} + kwargs2 = kwargs2 or {} + + fig = get_figure(None, width, height) + ax1 = fig.add_subplot(*args1, **kwargs1) + ax2 = fig.add_subplot(*args2, **kwargs2) + elif not ax1 or not ax2: + raise ValueError("Either both or no Axes must be provided") + + return ax1, ax2 + + +def get_nearest_valid_exposure_position(exposure, position=None): + mask_exposure = exposure > 0.0 * exposure.unit + mask_exposure = mask_exposure.reduce_over_axes(func=np.logical_or) + if not position: + position = mask_exposure.geom.center_skydir + return mask_exposure.mask_nearest_position(position) + + +
+[docs] +def split_dataset(dataset, width, margin, split_template_models=True): + """Split dataset in multiple non-overlapping analysis regions. + + Parameters + ---------- + dataset : `~gammapy.datasets.Dataset` + Dataset to split. + width : `~astropy.coordinates.Angle` + Angular size of each sub-region. + margin : `~astropy.coordinates.Angle` + Angular size to be added to the `width`. + The margin should be defined such as sources outside the region of interest + that contributes inside are well-defined. + The mask_fit in the margin region is False and unchanged elsewhere. + split_template_models : bool, optional + Apply cutout to template models or not. Default is True. + + Returns + ------- + datasets : `~gammapy.datasets.Datasets` + Split datasets. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> from gammapy.datasets.utils import split_dataset + >>> from gammapy.modeling.models import GaussianSpatialModel, PowerLawSpectralModel, SkyModel + >>> import astropy.units as u + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> # Split the dataset + >>> width = 4 * u.deg + >>> margin = 1 * u.deg + >>> split_datasets = split_dataset(dataset, width, margin, split_template_models=False) + >>> # Apply a model and split the dataset + >>> spatial_model = GaussianSpatialModel() + >>> spectral_model = PowerLawSpectralModel() + >>> sky_model = SkyModel( + ... spatial_model=spatial_model, spectral_model=spectral_model, name="test-model" + ... ) + >>> dataset.models = [sky_model] + >>> split_datasets = split_dataset( + ... dataset, width=width, margin=margin, split_template_models=True + ... ) + """ + + if margin >= width / 2.0: + raise ValueError("margin should be lower than width/2.") + + geom = dataset.counts.geom.to_image() + pixel_width = np.ceil((width / geom.pixel_scales).to_value("")).astype(int) + + ilon = range(0, geom.data_shape[1], pixel_width[1]) + ilat = range(0, geom.data_shape[0], pixel_width[0]) + + datasets = Datasets() + for il in ilon: + for ib in ilat: + l, b = geom.pix_to_coord((il, ib)) + cutout_kwargs = dict( + position=SkyCoord(l, b, frame=geom.frame), width=width + 2 * margin + ) + d = dataset.cutout(**cutout_kwargs) + + # apply mask + geom_cut = d.counts.geom + geom_cut_image = geom_cut.to_image() + ilgrid, ibgrid = np.meshgrid( + range(geom_cut_image.data_shape[1]), range(geom_cut_image.data_shape[0]) + ) + il_cut, ib_cut = geom_cut_image.coord_to_pix((l, b)) + mask = (ilgrid >= il_cut - pixel_width[1] / 2.0) & ( + ibgrid >= ib_cut - pixel_width[0] / 2.0 + ) + if il == ilon[-1]: + mask &= ilgrid <= il_cut + pixel_width[1] / 2.0 + else: + mask &= ilgrid < il_cut + pixel_width[1] / 2.0 + + if ib == ilat[-1]: + mask &= ibgrid <= ib_cut + pixel_width[0] / 2.0 + else: + mask &= ibgrid < ib_cut + pixel_width[0] / 2.0 + mask = np.expand_dims(mask, 0) + mask = np.repeat(mask, geom_cut.data_shape[0], axis=0) + d.mask_fit = Map.from_geom(geom_cut, data=mask) + if dataset.mask_fit is not None: + d.mask_fit &= dataset.mask_fit.interp_to_geom( + geom_cut, method="nearest" + ) + + # template models cutout (should limit memory usage in parallel) + if split_template_models: + d.models = cutout_template_models( + dataset.models, cutout_kwargs, [d.name] + ) + else: + d.models = dataset.models + datasets.append(d) + return datasets
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/core.html b/docs/dev/_modules/gammapy/estimators/core.html new file mode 100644 index 00000000000..19832d5ea6b --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/core.html @@ -0,0 +1,641 @@ + + + + + + + + + + gammapy.estimators.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import html
+import inspect
+from copy import deepcopy
+import numpy as np
+from astropy import units as u
+from gammapy.maps import MapAxis
+from gammapy.modeling.models import ModelBase
+
+__all__ = ["Estimator"]
+
+
+
+[docs] +class Estimator(abc.ABC): + """Abstract estimator base class.""" + + _available_selection_optional = {} + + @property + @abc.abstractmethod + def tag(self): + pass + +
+[docs] + @abc.abstractmethod + def run(self, datasets): + pass
+ + + @property + def selection_optional(self): + """""" + return self._selection_optional + + @selection_optional.setter + def selection_optional(self, selection): + """Set optional selection.""" + available = self._available_selection_optional + + if selection is None: + self._selection_optional = [] + elif "all" in selection: + self._selection_optional = available + else: + if set(selection).issubset(set(available)): + self._selection_optional = selection + else: + difference = set(selection).difference(set(available)) + raise ValueError(f"{difference} is not a valid method.") + + def _get_energy_axis(self, dataset): + """Energy axis.""" + if self.energy_edges is None: + energy_axis = dataset.counts.geom.axes["energy"].squash() + if getattr(self, "sum_over_energy_groups", False): + energy_edges = [energy_axis.edges[0], energy_axis.edges[1]] + energy_axis = MapAxis.from_energy_edges(energy_edges) + else: + energy_axis = MapAxis.from_energy_edges(self.energy_edges) + + return energy_axis + +
+[docs] + def copy(self): + """Copy estimator.""" + return deepcopy(self)
+ + + @property + def config_parameters(self): + """Configuration parameters.""" + pars = self.__dict__.copy() + pars = {key.strip("_"): value for key, value in pars.items()} + return pars + + def __str__(self): + s = f"{self.__class__.__name__}\n" + s += "-" * (len(s) - 1) + "\n\n" + + pars = self.config_parameters + max_len = np.max([len(_) for _ in pars]) + 1 + + for name, value in sorted(pars.items()): + if isinstance(value, ModelBase): + s += f"\t{name:{max_len}s}: {value.tag[0]}\n" + elif inspect.isclass(value): + s += f"\t{name:{max_len}s}: {value.__name__}\n" + elif isinstance(value, u.Quantity): + s += f"\t{name:{max_len}s}: {value}\n" + elif isinstance(value, Estimator): + pass + elif isinstance(value, np.ndarray): + value = np.array_str(value, precision=2, suppress_small=True) + s += f"\t{name:{max_len}s}: {value}\n" + else: + s += f"\t{name:{max_len}s}: {value}\n" + + return s.expandtabs(tabsize=2) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>"
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/energydependentmorphology.html b/docs/dev/_modules/gammapy/estimators/energydependentmorphology.html new file mode 100644 index 00000000000..8d44dfec31c --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/energydependentmorphology.html @@ -0,0 +1,851 @@ + + + + + + + + + + gammapy.estimators.energydependentmorphology — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.energydependentmorphology

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Implementation of energy-dependent morphology estimator tool."""
+
+import numpy as np
+from gammapy.datasets import Datasets
+from gammapy.modeling import Fit
+from gammapy.modeling.models import FoVBackgroundModel, Models
+from gammapy.modeling.selection import TestStatisticNested
+from gammapy.stats.utils import ts_to_sigma
+from .core import Estimator
+
+__all__ = ["weighted_chi2_parameter", "EnergyDependentMorphologyEstimator"]
+
+
+def weighted_chi2_parameter(results_edep, parameters=["sigma"]):
+    r"""Calculate the weighted chi-squared value for the parameters of interest.
+
+    The chi-squared parameter is defined as follows:
+
+    .. math::
+        \chi^2 = \sum_i \frac{(x_i - \bar{\mu})^2}{\sigma_i ^ 2}
+
+    where the :math:`x_i` and :math:`\sigma_i` are the value and error of the
+    parameter of interest, and the weighted mean is
+
+    .. math::
+        \bar{\mu} = \sum_i \frac{(x_i/ \sigma_i ^ 2)}{(1/\sigma_i ^ 2)}
+
+
+    Parameters
+    ----------
+    result_edep : `dict`
+        Dictionary of results for the energy-dependent estimator.
+    parameters : list of str, optional
+        The model parameters to calculate the chi-squared value for.
+        Default is ["sigma"].
+
+    Returns
+    -------
+    chi2_result : `dict`
+        Dictionary with the chi-squared values for the parameters of interest.
+
+    Notes
+    -----
+    This chi-square should be utilised with caution as it does not take into
+    account any correlation between the parameters.
+    To properly utilise the chi-squared parameter one must ensure each of the parameters
+    are independent, which cannot be guaranteed in this use case.
+
+    """
+    chi2_value = []
+    df = []
+    for parameter in parameters:
+        values = results_edep[parameter][1:]
+        errors = results_edep[f"{parameter}_err"][1:]
+        weights = 1 / errors**2
+        avg = np.average(values, weights=weights)
+        chi2_value += [np.sum((values - avg) ** 2 / errors**2).to_value()]
+        df += [len(values) - 1]
+
+    significance = [ts_to_sigma(chi2_value[i], df[i]) for i in range(len(chi2_value))]
+
+    chi2_result = {}
+    chi2_result["parameter"] = parameters
+    chi2_result["chi2"] = chi2_value
+    chi2_result["df"] = df
+    chi2_result["significance"] = significance
+
+    return chi2_result
+
+
+
+[docs] +class EnergyDependentMorphologyEstimator(Estimator): + """Test if there is any energy-dependent morphology in a map dataset for a given set of energy bins. + + Parameters + ---------- + energy_edges : list of `~astropy.units.Quantity` + Energy edges for the energy-dependence test. + source : str or int + For which source in the model to compute the estimator. + fit : `~gammapy.modeling.Fit`, optional + Fit instance specifying the backend and fit options. + If None, the fit backend default is minuit. + Default is None. + + Examples + -------- + For a usage example see :doc:`/tutorials/analysis-3d/energy_dependent_estimation` tutorial. + """ + + tag = "EnergyDependentMorphologyEstimator" + + def __init__(self, energy_edges, source=0, fit=None): + self.energy_edges = energy_edges + self.source = source + self.num_energy_bands = len(self.energy_edges) - 1 + + if fit is None: + fit = Fit() + + self.fit = fit + + def _slice_datasets(self, datasets): + """Calculate a dataset for each energy slice. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Input datasets to use. + + Returns + ------- + slices_src : `~gammapy.datasets.Datasets` + Sliced datasets. + """ + model = datasets.models[self.source] + + filtered_names = [name for name in datasets.models.names if name != self.source] + other_models = Models() + for name in filtered_names: + other_models.append(datasets.models[name]) + + slices_src = Datasets() + for i, (emin, emax) in enumerate( + zip(self.energy_edges[:-1], self.energy_edges[1:]) + ): + for dataset in datasets: + sliced_src = dataset.slice_by_energy( + emin, emax, name=f"{self.source}_{i}" + ) + bkg_sliced_model = FoVBackgroundModel(dataset_name=sliced_src.name) + sliced_src.models = [ + model.copy(name=f"{sliced_src.name}-model"), + *other_models, + bkg_sliced_model, + ] + slices_src.append(sliced_src) + return slices_src + + def _estimate_source_significance(self, datasets): + """Estimate the significance of the source above the background. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Input datasets to use. + + Returns + ------- + result_bkg_src : `dict` + Dictionary with the results of the null hypothesis with no source, and alternative + hypothesis with the source added in. Entries are: + + * "Emin" : the minimum energy of the energy band + * "Emax" : the maximum energy of the energy band + * "delta_ts" : difference in ts + * "df" : the degrees of freedom between null and alternative hypothesis + * "significance" : significance of the result + + """ + slices_src = self._slice_datasets(datasets) + + # Norm is free and fit + test_results = [] + for sliced in slices_src: + parameters = [ + param + for param in sliced.models[ + f"{sliced.name}-model" + ].parameters.free_parameters + ] + null_values = [0] + [ + param.value + for param in sliced.models[ + f"{sliced.name}-model" + ].spatial_model.parameters.free_parameters + ] + + test = TestStatisticNested( + parameters=parameters, + null_values=null_values, + n_sigma=-np.inf, + fit=self.fit, + ) + test_results.append(test.run(sliced)) + + delta_ts_bkg_src = [_["ts"] for _ in test_results] + df_src = [ + len(_["fit_results"].parameters.free_parameters.names) for _ in test_results + ] + df_bkg = 1 + df_bkg_src = df_src[0] - df_bkg + sigma_ts_bkg_src = ts_to_sigma(delta_ts_bkg_src, df=df_bkg_src) + + # Prepare results dictionary for signal above background + result_bkg_src = {} + + result_bkg_src["Emin"] = self.energy_edges[:-1] + result_bkg_src["Emax"] = self.energy_edges[1:] + result_bkg_src["delta_ts"] = delta_ts_bkg_src + result_bkg_src["df"] = [df_bkg_src] * self.num_energy_bands + result_bkg_src["significance"] = [elem for elem in sigma_ts_bkg_src] + + return result_bkg_src + +
+[docs] + def estimate_energy_dependence(self, datasets): + """Estimate the potential of energy-dependent morphology. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Input datasets to use. + + Returns + ------- + results : `dict` + Dictionary with results of the energy-dependence test. Entries are: + + * "delta_ts" : difference in ts between fitting each energy band individually (sliced fit) and the joint fit + * "df" : the degrees of freedom between fitting each energy band individually (sliced fit) and the joint fit + * "result" : the results for the fitting each energy band individually (sliced fit) and the joint fit + """ + model = datasets.models[self.source] + + # Calculate the individually sliced components + slices_src = self._slice_datasets(datasets) + results_src = [] + for sliced in slices_src: + results_src.append(self.fit.run(sliced)) + + results_src_total_stat = [result.total_stat for result in results_src] + free_x, free_y = np.shape( + [result.parameters.free_parameters.names for result in results_src] + ) + df_src = free_x * free_y + + # Calculate the joint fit + parameters = model.spatial_model.parameters.free_parameters.names + slice0 = slices_src[0] + for i, slice_j in enumerate(slices_src[1:]): + for param in parameters: + setattr( + slice_j.models[f"{self.source}_{i+1}-model"].spatial_model, + param, + slice0.models[f"{self.source}_0-model"].spatial_model.parameters[ + param + ], + ) + result_joint = self.fit.run(slices_src) + + # Compare fit of individual energy slices to the results with joint fit + delta_ts_joint = result_joint.total_stat - np.sum(results_src_total_stat) + df_joint = len(slices_src.parameters.free_parameters.names) + df = df_src - df_joint + + # Prepare results dictionary + joint_values = [result_joint.parameters[param].value for param in parameters] + joint_errors = [result_joint.parameters[param].error for param in parameters] + + parameter_values = np.empty((len(parameters), self.num_energy_bands)) + parameter_errors = np.empty((len(parameters), self.num_energy_bands)) + for i in range(self.num_energy_bands): + parameter_values[:, i] = [ + results_src[i].parameters[param].value for param in parameters + ] + parameter_errors[:, i] = [ + results_src[i].parameters[param].error for param in parameters + ] + + result = {} + + result["Hypothesis"] = ["H0"] + ["H1"] * self.num_energy_bands + + result["Emin"] = np.append(self.energy_edges[0], self.energy_edges[:-1]) + result["Emax"] = np.append(self.energy_edges[-1], self.energy_edges[1:]) + + units = [result_joint.parameters[param].unit for param in parameters] + + # Results for H0 in the first row and then H1 -- i.e. individual bands in other rows + for i in range(len(parameters)): + result[f"{parameters[i]}"] = np.append( + joint_values[i] * units[i], parameter_values[i] * units[i] + ) + result[f"{parameters[i]}_err"] = np.append( + joint_errors[i] * units[i], parameter_errors[i] * units[i] + ) + + return dict(delta_ts=delta_ts_joint, df=df, result=result)
+ + +
+[docs] + def run(self, datasets): + """Run the energy-dependence estimator. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Input datasets to use. + + Returns + ------- + results : `dict` + Dictionary with the various energy-dependence estimation values. + """ + if not isinstance(datasets, Datasets) or datasets.is_all_same_type is False: + raise ValueError("Unsupported datasets type.") + + results = {} + results["energy_dependence"] = self.estimate_energy_dependence(datasets) + results["src_above_bkg"] = self._estimate_source_significance(datasets) + + return results
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/map/asmooth.html b/docs/dev/_modules/gammapy/estimators/map/asmooth.html new file mode 100644 index 00000000000..f9a87599810 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/map/asmooth.html @@ -0,0 +1,864 @@ + + + + + + + + + + gammapy.estimators.map.asmooth — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.map.asmooth

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Implementation of adaptive smoothing algorithms."""
+
+import numpy as np
+from astropy.convolution import Gaussian2DKernel, Tophat2DKernel
+from astropy.coordinates import Angle
+from gammapy.datasets import MapDatasetOnOff
+from gammapy.maps import Map, Maps, WcsNDMap
+from gammapy.modeling.models import PowerLawSpectralModel
+from gammapy.stats import CashCountsStatistic
+from gammapy.utils.array import scale_cube
+from gammapy.utils.pbar import progress_bar
+from ..core import Estimator
+from ..utils import estimate_exposure_reco_energy
+from gammapy.utils.deprecation import deprecated_renamed_argument
+
+__all__ = ["ASmoothMapEstimator"]
+
+
+def _sqrt_ts_asmooth(counts, background):
+    """Significance according to formula (5) in asmooth paper."""
+    return (counts - background) / np.sqrt(counts + background)
+
+
+
+[docs] +class ASmoothMapEstimator(Estimator): + """Adaptively smooth counts image. + + Achieves a roughly constant sqrt(TS) of features across the whole image. + + Algorithm based on https://ui.adsabs.harvard.edu/abs/2006MNRAS.368...65E . + + The algorithm was slightly adapted to also allow Li & Ma to estimate the + sqrt(TS) of a feature in the image. + + Parameters + ---------- + scales : `~astropy.units.Quantity` + Smoothing scales. + kernel : `astropy.convolution.Kernel` + Smoothing kernel. + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + Spectral model assumption. Default is power-law with spectral index of 2. + method : {'lima', 'asmooth'} + Significance estimation method. Default is 'lima'. + threshold : float + Significance threshold. Default is 5. + energy_edges : list of `~astropy.units.Quantity`, optional + Edges of the target maps energy bins. The resulting bin edges won't be exactly equal to the input ones, + but rather the closest values to the energy axis edges of the parent dataset. + Default is None: apply the estimator in each energy bin of the parent dataset. + For further explanation see :ref:`estimators`. + + Examples + -------- + >>> import astropy.units as u + >>> import numpy as np + >>> from gammapy.estimators import ASmoothMapEstimator + >>> from gammapy.datasets import MapDataset + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> scales = u.Quantity(np.arange(0.1, 1, 0.1), unit="deg") + >>> smooth = ASmoothMapEstimator(threshold=3, scales=scales, energy_edges=[1, 10] * u.TeV) + >>> images = smooth.run(dataset) + """ + + tag = "ASmoothMapEstimator" + + @deprecated_renamed_argument("spectrum", "spectral_model", "v1.3") + def __init__( + self, + scales=None, + kernel=Gaussian2DKernel, + spectral_model=None, + method="lima", + threshold=5, + energy_edges=None, + ): + if spectral_model is None: + spectral_model = PowerLawSpectralModel(index=2) + + self.spectral_model = spectral_model + + if scales is None: + scales = self.get_scales(n_scales=9, kernel=kernel) + + self.scales = scales + self.kernel = kernel + self.threshold = threshold + self.method = method + self.energy_edges = energy_edges + +
+[docs] + def selection_all(self): + """Which quantities are computed.""" + return
+ + +
+[docs] + @staticmethod + def get_scales(n_scales, factor=np.sqrt(2), kernel=Gaussian2DKernel): + """Create list of Gaussian widths. + + Parameters + ---------- + n_scales : int + Number of scales. + factor : float + Incremental factor. + + Returns + ------- + scales : `~numpy.ndarray` + Scale array. + """ + if kernel == Gaussian2DKernel: + sigma_0 = 1.0 / np.sqrt(9 * np.pi) + elif kernel == Tophat2DKernel: + sigma_0 = 1.0 / np.sqrt(np.pi) + + return sigma_0 * factor ** np.arange(n_scales)
+ + +
+[docs] + def get_kernels(self, pixel_scale): + """Get kernels according to the specified method. + + Parameters + ---------- + pixel_scale : `~astropy.coordinates.Angle` + Sky image pixel scale. + + Returns + ------- + kernels : list + List of `~astropy.convolution.Kernel`. + """ + scales = self.scales.to_value("deg") / Angle(pixel_scale).deg + + kernels = [] + for scale in scales: # .value: + kernel = self.kernel(scale, mode="oversample") + # TODO: check if normalizing here makes sense + kernel.normalize("peak") + kernels.append(kernel) + + return kernels
+ + + @staticmethod + def _sqrt_ts_cube(cubes, method): + if method in {"lima"}: + scube = CashCountsStatistic(cubes["counts"], cubes["background"]).sqrt_ts + elif method == "asmooth": + scube = _sqrt_ts_asmooth(cubes["counts"], cubes["background"]) + elif method == "ts": + raise NotImplementedError() + else: + raise ValueError( + "Not a valid sqrt_ts estimation method." + " Choose one of the following: 'lima' or 'asmooth'" + ) + return scube + +
+[docs] + def run(self, dataset): + """Run adaptive smoothing on input MapDataset. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.MapDatasetOnOff` + The input dataset (with one bin in energy at most). + + Returns + ------- + images : dict of `~gammapy.maps.WcsNDMap` + Smoothed images; keys are: + * 'counts' + * 'background' + * 'flux' (optional) + * 'scales' + * 'sqrt_ts'. + """ + energy_axis = self._get_energy_axis(dataset) + + results = [] + + for energy_min, energy_max in progress_bar( + energy_axis.iter_by_edges, desc="Energy bins" + ): + dataset_sliced = dataset.slice_by_energy( + energy_min=energy_min, energy_max=energy_max, name=dataset.name + ) + if dataset.models is not None: + models_sliced = dataset.models._slice_by_energy( + energy_min=energy_min, + energy_max=energy_max, + ) + dataset_sliced.models = models_sliced + result = self.estimate_maps(dataset_sliced) + results.append(result) + + maps = Maps() + + for name in results[0].keys(): + maps[name] = Map.from_stack( + maps=[_[name] for _ in results], axis_name="energy" + ) + + return maps
+ + +
+[docs] + def estimate_maps(self, dataset): + """Run adaptive smoothing on input Maps. + + Parameters + ---------- + dataset : `MapDataset` + Dataset. + + Returns + ------- + images : dict of `~gammapy.maps.WcsNDMap` + Smoothed images; keys are: + * 'counts' + * 'background' + * 'flux' (optional) + * 'scales' + * 'sqrt_ts'. + """ + dataset_image = dataset.to_image(name=dataset.name) + dataset_image.models = dataset.models + + # extract 2d arrays + counts = dataset_image.counts.data[0].astype(float) + background = dataset_image.npred_background().data[0] + + if isinstance(dataset_image, MapDatasetOnOff): + background = dataset_image.background.data[0] + + if dataset_image.exposure is not None: + exposure = estimate_exposure_reco_energy(dataset_image, self.spectral_model) + else: + exposure = None + + pixel_scale = dataset_image.counts.geom.pixel_scales.mean() + kernels = self.get_kernels(pixel_scale) + + cubes = {} + cubes["counts"] = scale_cube(counts, kernels) + cubes["background"] = scale_cube(background, kernels) + + if exposure is not None: + flux = (dataset_image.counts - background) / exposure + cubes["flux"] = scale_cube(flux.data[0], kernels) + + cubes["sqrt_ts"] = self._sqrt_ts_cube(cubes, method=self.method) + + smoothed = self._reduce_cubes(cubes, kernels) + + result = {} + + geom = dataset_image.counts.geom + + for name, data in smoothed.items(): + # set remaining pixels with sqrt_ts < threshold to mean value + if name in ["counts", "background"]: + mask = np.isnan(data) + data[mask] = np.mean(locals()[name][mask]) + result[name] = WcsNDMap(geom, data, unit="") + else: + unit = "deg" if name == "scale" else "" + result[name] = WcsNDMap(geom, data, unit=unit) + + if exposure is not None: + data = smoothed["flux"] + mask = np.isnan(data) + data[mask] = np.mean(flux.data[0][mask]) + result["flux"] = WcsNDMap(geom, data, unit=flux.unit) + + return result
+ + + def _reduce_cubes(self, cubes, kernels): + """ + Combine scale cube to image. + + Parameters + ---------- + cubes : dict + Data cubes. + """ + shape = cubes["counts"].shape[:2] + smoothed = {} + + # Init smoothed data arrays + for key in ["counts", "background", "scale", "sqrt_ts"]: + smoothed[key] = np.tile(np.nan, shape) + + if "flux" in cubes: + smoothed["flux"] = np.tile(np.nan, shape) + + for idx, scale in enumerate(self.scales): + # slice out 2D image at index idx out of cube + slice_ = np.s_[:, :, idx] + + mask = np.isnan(smoothed["counts"]) + mask = (cubes["sqrt_ts"][slice_] > self.threshold) & mask + + smoothed["scale"][mask] = scale + smoothed["sqrt_ts"][mask] = cubes["sqrt_ts"][slice_][mask] + + # renormalize smoothed data arrays + norm = kernels[idx].array.sum() + for key in ["counts", "background"]: + smoothed[key][mask] = cubes[key][slice_][mask] / norm + + if "flux" in cubes: + smoothed["flux"][mask] = cubes["flux"][slice_][mask] / norm + + return smoothed
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/map/core.html b/docs/dev/_modules/gammapy/estimators/map/core.html new file mode 100644 index 00000000000..bd7ee4a616f --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/map/core.html @@ -0,0 +1,1878 @@ + + + + + + + + + + gammapy.estimators.map.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.map.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from copy import deepcopy
+import numpy as np
+from astropy import units as u
+from astropy.io import fits
+from astropy.utils import classproperty
+from gammapy.data import GTI
+from gammapy.maps import Map, Maps, TimeMapAxis
+from gammapy.modeling.models import (
+    Models,
+    PowerLawSpectralModel,
+    SkyModel,
+    SpectralModel,
+)
+from gammapy.utils.scripts import make_path
+
+__all__ = ["FluxMaps"]
+
+log = logging.getLogger(__name__)
+
+
+DEFAULT_UNIT = {
+    "dnde": u.Unit("cm-2 s-1 TeV-1"),
+    "e2dnde": u.Unit("erg cm-2 s-1"),
+    "flux": u.Unit("cm-2 s-1"),
+    "eflux": u.Unit("erg cm-2 s-1"),
+    "norm": u.Unit(""),
+}
+
+REQUIRED_MAPS = {
+    "dnde": ["dnde"],
+    "e2dnde": ["e2dnde"],
+    "flux": ["flux"],
+    "eflux": ["eflux"],
+    "likelihood": ["norm"],
+}
+
+REQUIRED_COLUMNS = {
+    "dnde": ["e_ref", "dnde"],
+    "e2dnde": ["e_ref", "e2dnde"],
+    "flux": ["e_min", "e_max", "flux"],
+    "eflux": ["e_min", "e_max", "eflux"],
+    # TODO: extend required columns
+    "likelihood": [
+        "e_min",
+        "e_max",
+        "e_ref",
+        "ref_dnde",
+        "ref_flux",
+        "ref_eflux",
+        "norm",
+    ],
+}
+
+
+REQUIRED_QUANTITIES_SCAN = ["stat_scan", "stat"]
+
+OPTIONAL_QUANTITIES = {
+    "dnde": ["dnde_err", "dnde_errp", "dnde_errn", "dnde_ul"],
+    "e2dnde": ["e2dnde_err", "e2dnde_errp", "e2dnde_errn", "e2dnde_ul"],
+    "flux": ["flux_err", "flux_errp", "flux_errn", "flux_ul", "flux_sensitivity"],
+    "eflux": ["eflux_err", "eflux_errp", "eflux_errn", "eflux_ul"],
+    "likelihood": ["norm_err", "norm_errn", "norm_errp", "norm_ul"],
+}
+
+VALID_QUANTITIES = [
+    "norm",
+    "norm_err",
+    "norm_errn",
+    "norm_errp",
+    "norm_ul",
+    "norm_sensitivity",
+    "ts",
+    "sqrt_ts",
+    "npred",
+    "npred_excess",
+    "stat",
+    "stat_null",
+    "stat_scan",
+    "dnde_scan_values",
+    "niter",
+    "is_ul",
+    "counts",
+    "success",
+    "n_dof",
+    "alpha",
+    "acceptance_on",
+    "acceptance_off",
+]
+
+
+OPTIONAL_QUANTITIES_COMMON = [
+    "ts",
+    "sqrt_ts",
+    "npred",
+    "npred_excess",
+    "stat",
+    "stat_null",
+    "stat_scan",
+    "dnde_scan_values",
+    "niter",
+    "is_ul",
+    "counts",
+    "success",
+    "n_dof",
+]
+
+
+
+[docs] +class FluxMaps: + """A flux map / points container. + + It contains a set of `~gammapy.maps.Map` objects that store the estimated + flux as a function of energy as well as associated quantities (typically + errors, upper limits, delta TS and possibly raw quantities such counts, + excesses etc). It also contains a reference model to convert the flux + values in different formats. Usually, this should be the model used to + produce the flux map. + + The associated map geometry can use a `RegionGeom` to store the equivalent + of flux points, or a `WcsGeom`/`HpxGeom` to store an energy dependent flux map. + + The container relies internally on the 'Likelihood' SED type defined in + :ref:`gadf:flux-points` and offers convenience properties to convert to + other flux formats, namely: ``dnde``, ``flux``, ``eflux`` or ``e2dnde``. + The conversion is done according to the reference model spectral shape. + + Parameters + ---------- + data : dict of `~gammapy.maps.Map` + The maps dictionary. Expected entries are the following: + + * norm : the norm factor. + * norm_err : optional, the error on the norm factor. + * norm_errn : optional, the negative error on the norm factor. + * norm_errp : optional, the positive error on the norm factor. + * norm_ul : optional, the upper limit on the norm factor. + * norm_scan : optional, the norm values of the test statistic scan. + * stat_scan : optional, the test statistic scan values. + * ts : optional, the delta test statistic associated with the flux value. + * sqrt_ts : optional, the square root of the test statistic, when relevant. + * success : optional, a boolean tagging the validity of the estimation. + * n_dof : optional, the number of degrees of freedom used in TS computation + * alpha : optional, normalisation factor to accounts for differences between the test region and the background + * acceptance_off : optional, acceptance from the off region + * acceptance_on : optional, acceptance from the on region + + reference_model : `~gammapy.modeling.models.SkyModel`, optional + The reference model to use for conversions. If None, a model consisting + of a point source with a power law spectrum of index 2 is assumed. + meta : dict, optional + Dict of metadata. + gti : `~gammapy.data.GTI`, optional + Maps GTI information. + filter_success_nan : boolean, optional + Set fitted norm and error to NaN when the fit has not succeeded. + """ + + _expand_slice = (slice(None), np.newaxis, np.newaxis) + + def __init__( + self, data, reference_model, meta=None, gti=None, filter_success_nan=True + ): + self._data = data + + if isinstance(reference_model, SpectralModel): + reference_model = SkyModel(reference_model) + + self._reference_model = reference_model + + if meta is None: + meta = {} + + meta.setdefault("sed_type_init", "likelihood") + self.meta = meta + self.gti = gti + self._filter_success_nan = filter_success_nan + + @property + def filter_success_nan(self): + return self._filter_success_nan + + @filter_success_nan.setter + def filter_success_nan(self, value): + self._filter_success_nan = value + + @property + def available_quantities(self): + """Available quantities.""" + return list(self._data.keys()) + +
+[docs] + @staticmethod + def all_quantities(sed_type): + """All quantities allowed for a given SED type. + + Parameters + ---------- + sed_type : {"likelihood", "dnde", "e2dnde", "flux", "eflux"} + SED type. + + Returns + ------- + list : list of str + All allowed quantities for a given SED type. + """ + quantities = [] + quantities += REQUIRED_MAPS[sed_type] + quantities += OPTIONAL_QUANTITIES[sed_type] + quantities += OPTIONAL_QUANTITIES_COMMON + + if sed_type == "likelihood": + quantities += REQUIRED_QUANTITIES_SCAN + + return quantities
+ + + @staticmethod + def _validate_data(data, sed_type, check_scan=False): + """Check that map input is valid and correspond to one of the SED type.""" + try: + keys = data.keys() + required = set(REQUIRED_MAPS[sed_type]) + except KeyError: + raise ValueError(f"Unknown SED type: '{sed_type}'") + + if check_scan: + required = required.union(REQUIRED_QUANTITIES_SCAN) + + if not required.issubset(keys): + missing = required.difference(keys) + raise ValueError( + "Missing data / column for SED type '{}':" " {}".format( + sed_type, missing + ) + ) + + # TODO: add support for scan + def _check_quantity(self, quantity): + if quantity not in self.available_quantities: + raise AttributeError( + f"Quantity '{quantity}' is not defined on current flux estimate." + ) + + @staticmethod + def _guess_sed_type(quantities): + """Guess SED type from table content.""" + valid_sed_types = list(REQUIRED_COLUMNS.keys()) + for sed_type in valid_sed_types: + required = set(REQUIRED_COLUMNS[sed_type]) + if required.issubset(quantities): + return sed_type + + @property + def is_convertible_to_flux_sed_type(self): + """Check whether differential SED type is convertible to integral SED type.""" + if self.sed_type_init in ["dnde", "e2dnde"]: + return self.energy_axis.node_type == "edges" + + return True + + @property + def has_ul(self): + """Whether the flux estimate has norm_ul defined.""" + return "norm_ul" in self._data + + @property + def has_any_ts(self): + """Whether the flux estimate has either sqrt(TS) or test statistic defined.""" + return any(_ in self._data for _ in ["ts", "sqrt_ts"]) + + @property + def has_stat_profiles(self): + """Whether the flux estimate has test statistic profiles.""" + return "stat_scan" in self._data + + @property + def has_success(self): + """Whether the flux estimate has the fit status.""" + return "success" in self._data + + @property + def n_sigma(self): + """n sigma""" + return self.meta.get("n_sigma", 1) + + @property + def n_sigma_ul(self): + """n sigma UL.""" + return self.meta.get("n_sigma_ul") + + @property + def sqrt_ts_threshold_ul(self): + """sqrt(TS) threshold for upper limits.""" + return self.meta.get("sqrt_ts_threshold_ul", 2) + + @sqrt_ts_threshold_ul.setter + def sqrt_ts_threshold_ul(self, value): + """sqrt(TS) threshold for upper limits. + + Parameters + ---------- + value : int + Threshold value in sqrt(TS) for upper limits. + """ + self.meta["sqrt_ts_threshold_ul"] = value + + if self.has_any_ts: + self.is_ul = self.sqrt_ts < self.sqrt_ts_threshold_ul + else: + raise ValueError("Either TS or sqrt_ts is required to set the threshold") + + @property + def sed_type_init(self): + """Initial SED type.""" + return self.meta.get("sed_type_init") + + @property + def sed_type_plot_default(self): + """Initial SED type.""" + if self.sed_type_init == "likelihood": + return "dnde" + + return self.sed_type_init + + @property + def geom(self): + """Reference map geometry as a `~gammapy.maps.Geom`.""" + return self.norm.geom + + @property + def energy_axis(self): + """Energy axis as a `~gammapy.maps.MapAxis`.""" + return self.geom.axes["energy"] + + @classproperty + def reference_model_default(self): + """Reference model default as a `~gammapy.modeling.models.SkyModel`.""" + return SkyModel(PowerLawSpectralModel(index=2)) + + @property + def reference_model(self): + """Reference model as a `~gammapy.modeling.models.SkyModel`.""" + return self._reference_model + + @property + def reference_spectral_model(self): + """Reference spectral model as a `SpectralModel`.""" + return self.reference_model.spectral_model + + @property + def energy_ref(self): + """Reference energy. + + Defined by `energy_ref` column in `FluxPoints.table` or computed as log + center, if `energy_min` and `energy_max` columns are present in `FluxEstimate.data`. + + Returns + ------- + energy_ref : `~astropy.units.Quantity` + Reference energy. + """ + return self.energy_axis.center + + @property + def energy_min(self): + """Energy minimum. + + Returns + ------- + energy_min : `~astropy.units.Quantity` + Lower bound of energy bin. + """ + return self.energy_axis.edges[:-1] + + @property + def energy_max(self): + """Energy maximum. + + Returns + ------- + energy_max : `~astropy.units.Quantity` + Upper bound of energy bin. + """ + return self.energy_axis.edges[1:] + + # TODO: keep or remove? + @property + def niter(self): + """Number of iterations of fit.""" + self._check_quantity("niter") + return self._data["niter"] + + @property + def success(self): + """Fit success flag.""" + self._check_quantity("success") + return self._data["success"] + + @property + def is_ul(self): + """Whether data is an upper limit.""" + # TODO: make this a well defined behaviour + is_ul = self.norm.copy(data=False) + + if "is_ul" in self._data: + is_ul = self._data["is_ul"] + elif self.has_any_ts and self.has_ul: + is_ul.data = self.sqrt_ts.data < self.sqrt_ts_threshold_ul + elif self.has_ul: + is_ul.data = np.isfinite(self.norm_ul) + else: + is_ul.data = np.isnan(self.norm) + + return is_ul + + @is_ul.setter + def is_ul(self, value): + """Whether data is an upper limit. + + Parameters + ---------- + value : `~Map` + Boolean map. + """ + if not isinstance(value, Map): + value = self.norm.copy(data=value) + + self._data["is_ul"] = value + + @property + def counts(self): + """Predicted counts null hypothesis.""" + self._check_quantity("counts") + return self._data["counts"] + + @property + def npred(self): + """Predicted counts from best fit hypothesis.""" + self._check_quantity("npred") + return self._data["npred"] + + @property + def npred_background(self): + """Predicted background counts from best fit hypothesis.""" + self._check_quantity("npred") + self._check_quantity("npred_excess") + return self.npred - self.npred_excess + + @property + def npred_excess(self): + """Predicted excess count from best fit hypothesis.""" + self._check_quantity("npred_excess") + return self._data["npred_excess"] + + def _expand_dims(self, data): + # TODO: instead make map support broadcasting + axes = self.npred.geom.axes + # here we need to rely on broadcasting + if "dataset" in axes.names: + idx = axes.index_data("dataset") + data = np.expand_dims(data, axis=idx) + return data + + @staticmethod + def _use_center_as_labels(input_map): + """Change the node_type of the input map.""" + energy_axis = input_map.geom.axes["energy"] + energy_axis.use_center_as_plot_labels = True + return input_map + + @property + def npred_excess_ref(self): + """Predicted excess reference counts.""" + return self.npred_excess / self._expand_dims(self.norm.data) + + @property + def npred_excess_err(self): + """Predicted excess counts error.""" + return self.npred_excess_ref * self._expand_dims(self.norm_err.data) + + @property + def npred_excess_errp(self): + """Predicted excess counts positive error.""" + return self.npred_excess_ref * self._expand_dims(self.norm_errp.data) + + @property + def npred_excess_errn(self): + """Predicted excess counts negative error.""" + return self.npred_excess_ref * self._expand_dims(self.norm_errn.data) + + @property + def npred_excess_ul(self): + """Predicted excess counts upper limits.""" + return self.npred_excess_ref * self._expand_dims(self.norm_ul.data) + + @property + def stat_scan(self): + """Fit statistic scan value.""" + self._check_quantity("stat_scan") + return self._data["stat_scan"] + + @property + def dnde_scan_values(self): + """Fit statistic norm scan values.""" + self._check_quantity("dnde_scan_values") + return self._data["dnde_scan_values"] + + @property + def stat(self): + """Fit statistic value.""" + self._check_quantity("stat") + return self._data["stat"] + + @property + def stat_null(self): + """Fit statistic value for the null hypothesis.""" + self._check_quantity("stat_null") + return self._data["stat_null"] + + @property + def ts(self): + """Test statistic map as a `~gammapy.maps.Map` object.""" + self._check_quantity("ts") + return self._data["ts"] + + @property + def ts_scan(self): + """Test statistic scan as a `~gammapy.maps.Map` object.""" + return self.stat_scan - np.expand_dims(self.stat.data, 2) + + # TODO: always derive sqrt(TS) from TS? + @property + def sqrt_ts(self): + r"""sqrt(TS) as defined by: + + .. math:: + + \sqrt{TS} = \left \{ + \begin{array}{ll} + -\sqrt{TS} & : \text{if} \ norm < 0 \\ + \sqrt{TS} & : \text{else} + \end{array} + \right. + + Returns + ------- + sqrt_ts : `Map` + sqrt(TS) map. + """ + if "sqrt_ts" in self._data: + return self._data["sqrt_ts"] + else: + with np.errstate(invalid="ignore", divide="ignore"): + ts = np.clip(self.ts.data, 0, None) + data = np.where(self.norm > 0, np.sqrt(ts), -np.sqrt(ts)) + return Map.from_geom(geom=self.geom, data=data) + + @property + def norm(self): + """Norm values.""" + return self._filter_convergence_failure(self._data["norm"]) + + @property + def norm_err(self): + """Norm error.""" + self._check_quantity("norm_err") + return self._filter_convergence_failure(self._data["norm_err"]) + + @property + def norm_errn(self): + """Negative norm error.""" + self._check_quantity("norm_errn") + return self._data["norm_errn"] + + @property + def norm_errp(self): + """Positive norm error.""" + self._check_quantity("norm_errp") + return self._data["norm_errp"] + + @property + def norm_ul(self): + """Norm upper limit.""" + self._check_quantity("norm_ul") + return self._data["norm_ul"] + + @property + def norm_sensitivity(self): + """Norm sensitivity.""" + self._check_quantity("norm_sensitivity") + return self._data["norm_sensitivity"] + + @property + def n_dof(self): + """Number of degrees of freedom of the fit per energy bin.""" + self._check_quantity("n_dof") + return self._data["n_dof"] + + @property + def alpha(self): + """The normalisation, alpha, for differences between the on and off regions.""" + self._check_quantity("alpha") + return self._data["alpha"] + + @property + def acceptance_on(self): + """The acceptance in the on region.""" + self._check_quantity("acceptance_on") + return self._data["acceptance_on"] + + @property + def acceptance_off(self): + """The acceptance in the off region.""" + self._check_quantity("acceptance_off") + return self._data["acceptance_off"] + + @property + def dnde_ref(self): + """Reference differential flux.""" + result = self.reference_spectral_model(self.energy_axis.center) + return result[self._expand_slice] + + @property + def e2dnde_ref(self): + """Reference differential flux * energy ** 2.""" + energy = self.energy_axis.center + result = self.reference_spectral_model(energy) * energy**2 + return result[self._expand_slice] + + @property + def flux_ref(self): + """Reference integral flux.""" + if not self.is_convertible_to_flux_sed_type: + raise ValueError( + "Missing energy range definition, cannot convert to SED type 'flux'." + ) + + energy_min = self.energy_axis.edges[:-1] + energy_max = self.energy_axis.edges[1:] + result = self.reference_spectral_model.integral(energy_min, energy_max) + return result[self._expand_slice] + + @property + def eflux_ref(self): + """Reference energy flux.""" + if not self.is_convertible_to_flux_sed_type: + raise ValueError( + "Missing energy range definition, cannot convert to SED type 'eflux'." + ) + + energy_min = self.energy_axis.edges[:-1] + energy_max = self.energy_axis.edges[1:] + result = self.reference_spectral_model.energy_flux(energy_min, energy_max) + return result[self._expand_slice] + + @property + def dnde(self): + """Return differential flux (dnde) SED values.""" + return self._use_center_as_labels(self.norm * self.dnde_ref) + + @property + def dnde_err(self): + """Return differential flux (dnde) SED errors.""" + return self._use_center_as_labels(self.norm_err * self.dnde_ref) + + @property + def dnde_errn(self): + """Return differential flux (dnde) SED negative errors.""" + return self._use_center_as_labels(self.norm_errn * self.dnde_ref) + + @property + def dnde_errp(self): + """Return differential flux (dnde) SED positive errors.""" + return self._use_center_as_labels(self.norm_errp * self.dnde_ref) + + @property + def dnde_ul(self): + """Return differential flux (dnde) SED upper limit.""" + return self._use_center_as_labels(self.norm_ul * self.dnde_ref) + + @property + def e2dnde(self): + """Return differential energy flux (e2dnde) SED values.""" + return self._use_center_as_labels(self.norm * self.e2dnde_ref) + + @property + def e2dnde_err(self): + """Return differential energy flux (e2dnde) SED errors.""" + return self._use_center_as_labels(self.norm_err * self.e2dnde_ref) + + @property + def e2dnde_errn(self): + """Return differential energy flux (e2dnde) SED negative errors.""" + return self._use_center_as_labels(self.norm_errn * self.e2dnde_ref) + + @property + def e2dnde_errp(self): + """Return differential energy flux (e2dnde) SED positive errors.""" + return self._use_center_as_labels(self.norm_errp * self.e2dnde_ref) + + @property + def e2dnde_ul(self): + """Return differential energy flux (e2dnde) SED upper limit.""" + return self._use_center_as_labels(self.norm_ul * self.e2dnde_ref) + + @property + def flux(self): + """Return integral flux (flux) SED values.""" + return self.norm * self.flux_ref + + @property + def flux_err(self): + """Return integral flux (flux) SED values.""" + return self.norm_err * self.flux_ref + + @property + def flux_errn(self): + """Return integral flux (flux) SED negative errors.""" + return self.norm_errn * self.flux_ref + + @property + def flux_errp(self): + """Return integral flux (flux) SED positive errors.""" + return self.norm_errp * self.flux_ref + + @property + def flux_ul(self): + """Return integral flux (flux) SED upper limits.""" + return self.norm_ul * self.flux_ref + + @property + def flux_sensitivity(self): + """Sensitivity given as the flux for which the significance is ``self.meta["n_sigma_sensitivity]``.""" + return self.norm_sensitivity * self.flux_ref + + @property + def eflux(self): + """Return energy flux (eflux) SED values.""" + return self.norm * self.eflux_ref + + @property + def eflux_err(self): + """Return energy flux (eflux) SED errors.""" + return self.norm_err * self.eflux_ref + + @property + def eflux_errn(self): + """Return energy flux (eflux) SED negative errors.""" + return self.norm_errn * self.eflux_ref + + @property + def eflux_errp(self): + """Return energy flux (eflux) SED positive errors.""" + return self.norm_errp * self.eflux_ref + + @property + def eflux_ul(self): + """Return energy flux (eflux) SED upper limits.""" + return self.norm_ul * self.eflux_ref + + def _filter_convergence_failure(self, some_map): + """Put NaN where pixels did not converge.""" + if not self._filter_success_nan: + return some_map + + if not self.has_success: + return some_map + + if self.success.data.shape == some_map.data.shape: + new_map = some_map.copy() + new_map.data[~self.success.data] = np.nan + else: + mask_nan = np.ones(self.success.data.shape) + mask_nan[~self.success.data] = np.nan + new_map = some_map * np.expand_dims(mask_nan, 2) + new_map.data = new_map.data.astype(some_map.data.dtype) + return new_map + +
+[docs] + def get_flux_points(self, position=None): + """Extract flux point at a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Position where the flux points are extracted. + + Returns + ------- + flux_points : `~gammapy.estimators.FluxPoints` + Flux points object. + """ + from gammapy.estimators import FluxPoints + + if position is None: + position = self.geom.center_skydir + + data = {} + + for name in self._data: + m = getattr(self, name) + if m.data.dtype is np.dtype(bool): + data[name] = m.to_region_nd_map( + region=position, method="nearest", func=np.any + ) + else: + data[name] = m.to_region_nd_map(region=position, method="nearest") + + return FluxPoints( + data, + reference_model=self.reference_model, + meta=self.meta.copy(), + gti=self.gti, + )
+ + +
+[docs] + def to_maps(self, sed_type=None): + """Return maps in a given SED type. + + Parameters + ---------- + sed_type : {"likelihood", "dnde", "e2dnde", "flux", "eflux"}, optional + SED type to convert to. If None, set to `Likelihood`. Default is None. + + Returns + ------- + maps : `Maps` + Maps object containing the requested maps. + """ + maps = Maps() + + if sed_type is None: + sed_type = self.sed_type_init + + for quantity in self.all_quantities(sed_type=sed_type): + m = getattr(self, quantity, None) + if m is not None: + maps[quantity] = m + + return maps
+ + +
+[docs] + @classmethod + def from_stack(cls, maps, axis, meta=None): + """Create flux points by stacking list of flux points. + + The first `FluxPoints` object in the list is taken as a reference to infer + column names and units for the stacked object. + + Parameters + ---------- + maps : list of `FluxMaps` + List of maps to stack. + axis : `MapAxis` + New axis to create. + meta : dict, optional + Metadata of the resulting flux points. Default is None. + + Returns + ------- + flux_maps : `FluxMaps` + Stacked flux maps along axis. + """ + reference = maps[0] + data = {} + + for quantity in reference.available_quantities: + data[quantity] = Map.from_stack( + [_._data[quantity] for _ in maps], axis=axis + ) + + if meta is None: + meta = reference.meta.copy() + + gtis = [_.gti for _ in maps if _.gti] + + if gtis: + gti = GTI.from_stack(gtis) + else: + gti = None + + return cls( + data=data, reference_model=reference.reference_model, meta=meta, gti=gti + )
+ + +
+[docs] + def iter_by_axis(self, axis_name): + """Create a set of FluxMaps by splitting along an axis. + + Parameters + ---------- + axis_name : str + Name of the axis to split on. + + Returns + ------- + flux_maps : `FluxMap` + FluxMap iteration. + + """ + split_maps = {} + axis = self.geom.axes[axis_name] + gti = self.gti + + for amap in self.available_quantities: + split_maps[amap] = list(getattr(self, amap).iter_by_axis(axis_name)) + + for idx in range(axis.nbin): + maps = {} + for amap in self.available_quantities: + maps[amap] = split_maps[amap][idx] + if isinstance(axis, TimeMapAxis): + gti = self.gti.select_time([axis.time_min[idx], axis.time_max[idx]]) + + yield self.__class__.from_maps( + maps=maps, + sed_type=self.sed_type_init, + reference_model=self.reference_model, + gti=gti, + meta=self.meta, + )
+ + +
+[docs] + @classmethod + def from_maps(cls, maps, sed_type=None, reference_model=None, gti=None, meta=None): + """Create FluxMaps from a dictionary of maps. + + Parameters + ---------- + maps : `Maps` + Maps object containing the input maps. + sed_type : str, optional + SED type of the input maps. If None, set to "likelihood". Default is None. + reference_model : `~gammapy.modeling.models.SkyModel`, optional + Reference model to use for conversions. + If None, a model consisting of a point source with a power + law spectrum of index 2 is assumed. Default is None. + gti : `~gammapy.data.GTI`, optional + Maps GTI information. Default is None. + meta : `dict` + Meta dictionary. + + Returns + ------- + flux_maps : `~gammapy.estimators.FluxMaps` + Flux maps object. + """ + if sed_type is None: + sed_type = cls._guess_sed_type(maps.keys()) + + if sed_type is None: + raise ValueError("Specifying the SED type is required") + + cls._validate_data(data=maps, sed_type=sed_type) + + if sed_type == "likelihood": + return cls(data=maps, reference_model=reference_model, gti=gti, meta=meta) + + if reference_model is None: + log.warning( + "No reference model set for FluxMaps. Assuming point source with E^-2 spectrum." + ) + reference_model = cls.reference_model_default + elif isinstance(reference_model, SpectralModel): + reference_model = SkyModel(reference_model) + + map_ref = maps[sed_type] + energy_axis = map_ref.geom.axes["energy"] + + with np.errstate(invalid="ignore", divide="ignore"): + fluxes = reference_model.spectral_model.reference_fluxes( + energy_axis=energy_axis + ) + + # TODO: handle reshaping in MapAxis + factor = fluxes[f"ref_{sed_type}"].to(map_ref.unit)[cls._expand_slice] + + data = {} + data["norm"] = map_ref / factor + + for key in OPTIONAL_QUANTITIES[sed_type]: + if key in maps: + norm_type = key.replace(sed_type, "norm") + data[norm_type] = maps[key] / factor + + # We add the remaining maps + for key in OPTIONAL_QUANTITIES_COMMON: + if key in maps: + data[key] = maps[key] + + return cls(data=data, reference_model=reference_model, gti=gti, meta=meta)
+ + +
+[docs] + def to_hdulist(self, sed_type=None, hdu_bands=None): + """Convert flux map to list of HDUs. + + For now, one cannot export the reference model. + + Parameters + ---------- + sed_type : str, optional + SED type to convert to. If None, set to "likelihood". Default is None. + hdu_bands : str, optional + Name of the HDU with the BANDS table. Default is 'BANDS' + If set to None, each map will have its own hdu_band. Default is None. + + Returns + ------- + hdulist : `~astropy.io.fits.HDUList` + Map dataset list of HDUs. + """ + if sed_type is None: + sed_type = self.sed_type_init + + exclude_primary = slice(1, None) + + hdu_primary = fits.PrimaryHDU() + hdu_primary.header["SED_TYPE"] = sed_type + hdulist = fits.HDUList([hdu_primary]) + + maps = self.to_maps(sed_type=sed_type) + hdulist.extend(maps.to_hdulist(hdu_bands=hdu_bands)[exclude_primary]) + + if self.gti: + hdu = self.gti.to_table_hdu(format="gadf") + hdulist.append(hdu) + + return hdulist
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, hdu_bands=None, sed_type=None, checksum=False): + """Create flux map dataset from list of HDUs. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + List of HDUs. + hdu_bands : str, optional + Name of the HDU with the BANDS table. Default is 'BANDS' + If set to None, each map should have its own hdu_band. Default is None. + sed_type : {"dnde", "flux", "e2dnde", "eflux", "likelihood"}, optional + Sed type. Default is None. + + Returns + ------- + flux_maps : `~gammapy.estimators.FluxMaps` + Flux maps object. + """ + maps = Maps.from_hdulist(hdulist=hdulist, hdu_bands=hdu_bands) + + if sed_type is None: + sed_type = hdulist[0].header.get("SED_TYPE", None) + + filename = hdulist[0].header.get("MODEL", None) + + if filename: + reference_model = Models.read(filename, checksum=checksum)[0] + else: + reference_model = None + + if "GTI" in hdulist: + gti = GTI.from_table_hdu(hdulist["GTI"]) + else: + gti = None + + return cls.from_maps( + maps=maps, sed_type=sed_type, reference_model=reference_model, gti=gti + )
+ + +
+[docs] + def write( + self, + filename, + filename_model=None, + overwrite=False, + sed_type=None, + checksum=False, + ): + """Write flux map to file. + + Parameters + ---------- + filename : str + Filename to write to. + filename_model : str + Filename of the model (yaml format). + If None, keep string before '.' and add '_model.yaml' suffix. + overwrite : bool, optional + Overwrite existing file. Default is False. + sed_type : str, optional + Sed type to convert to. If None, set to "likelihood". Default is None. + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + if sed_type is None: + sed_type = self.sed_type_init + + filename = make_path(filename) + + if filename_model is None: + name_string = filename.as_posix() + for suffix in filename.suffixes: + name_string.replace(suffix, "") + filename_model = name_string + "_model.yaml" + + filename_model = make_path(filename_model) + + hdulist = self.to_hdulist(sed_type) + + models = Models(self.reference_model) + models.write(filename_model, overwrite=overwrite, write_covariance=False) + hdulist[0].header["MODEL"] = filename_model.as_posix() + + hdulist.writeto(filename, overwrite=overwrite)
+ + +
+[docs] + @classmethod + def read(cls, filename, checksum=False): + """Read map dataset from file. + + Parameters + ---------- + filename : str + Filename to read from. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + flux_maps : `~gammapy.estimators.FluxMaps` + Flux maps object. + """ + with fits.open( + str(make_path(filename)), memmap=False, checksum=checksum + ) as hdulist: + return cls.from_hdulist(hdulist, checksum=checksum)
+ + +
+[docs] + def copy(self, reference_model=None): + """Deep copy. + + Parameters + ---------- + reference_model : `~gammapy.modeling.models.SkyModel`, optional + The reference model to use for conversions. If None, the original model is copied. + Flux maps have been obtained for a specific reference model. + Changing it will change the fluxes. Handle with care. + + Returns + ------- + flux_maps : `~gammapy.estimators.FluxMaps` + Copied flux maps object. + + """ + new = deepcopy(self) + if reference_model is not None: + new._reference_model = reference_model.copy() + log.warning( + "Changing the reference model will change the fluxes. Handle with care." + ) + return new
+ + +
+[docs] + def slice_by_idx(self, slices): + """Slice flux maps by index. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dict are kept unchanged. + + Returns + ------- + flux_maps : `FluxMaps` + Sliced flux maps object. + + Examples + -------- + >>> from gammapy.estimators import FluxPoints + >>> import astropy.units as u + >>> fp = FluxPoints.read("$GAMMAPY_DATA/estimators/crab_hess_fp/crab_hess_fp.fits") + >>> slices = {"energy": slice(0, 2)} + >>> sliced = fp.slice_by_idx(slices) + """ + data = {} + + for key, item in self._data.items(): + data[key] = item.slice_by_idx(slices) + + return self.__class__( + data=data, + reference_model=self.reference_model, + meta=self.meta.copy(), + gti=self.gti, + )
+ + +
+[docs] + def slice_by_coord(self, slices): + """Slice flux maps by coordinate values. + + Parameters + ---------- + slices : dict + Dictionary of axes names and `astropy.Quantity` or `astropy.Time` or `slice` object pairs. + Contains one element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dict are kept unchanged. + + + Returns + ------- + flux_maps : `FluxMaps` + Sliced flux maps object. + + Examples + -------- + >>> from gammapy.estimators import FluxPoints + >>> import astropy.units as u + >>> lc_1d = FluxPoints.read("$GAMMAPY_DATA/estimators/pks2155_hess_lc/pks2155_hess_lc.fits") + >>> slices = {"time": slice(2035.93*u.day, 2036.05*u.day)} + >>> sliced = lc_1d.slice_by_coord(slices) + """ + idx_intervals = [] + + for key, interval in zip(slices.keys(), slices.values()): + axis = self.geom.axes[key] + + group = axis.group_table([interval.start, interval.stop]) + + is_normal = group["bin_type"] == "normal " + group = group[is_normal] + + idx_intervals.append( + slice(int(group["idx_min"][0]), int(group["idx_max"][0] + 1)) + ) + + return self.slice_by_idx(dict(zip(slices.keys(), idx_intervals)))
+ + +
+[docs] + def slice_by_time(self, time_min, time_max): + """Slice flux maps by coordinate values along the time axis. + + Parameters + ---------- + time_min, time_max : `~astropy.time.Time` + Time bounds used to slice the flux map. + + Returns + ------- + flux_maps : `FluxMaps` + Sliced flux maps object. + + Examples + -------- + >>> from gammapy.estimators import FluxPoints + >>> import astropy.units as u + >>> lc_1d = FluxPoints.read("$GAMMAPY_DATA/estimators/pks2155_hess_lc/pks2155_hess_lc.fits") + >>> sliced = lc_1d.slice_by_time(time_min=2035.93*u.day, time_max=2036.05*u.day) + """ + time_slice = slice(time_min, time_max) + + return self.slice_by_coord({"time": time_slice})
+ + +
+[docs] + def slice_by_energy(self, energy_min, energy_max): + """Slice flux maps by coordinate values along the energy axis. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Energy bounds used to slice the flux map. + + Returns + ------- + flux_maps : `FluxMaps` + Sliced flux maps object. + + Examples + -------- + >>> from gammapy.estimators import FluxPoints + >>> import astropy.units as u + >>> fp = FluxPoints.read("$GAMMAPY_DATA/estimators/crab_hess_fp/crab_hess_fp.fits") + >>> sliced = fp.slice_by_energy(energy_min=2*u.TeV, energy_max=10*u.TeV) + """ + energy_slice = slice(energy_min, energy_max) + + return self.slice_by_coord({"energy": energy_slice})
+ + + # TODO: should we allow this? + def __getitem__(self, item): + return getattr(self, item) + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += "-" * len(self.__class__.__name__) + str_ += "\n\n" + str_ += "\t" + f"geom : {self.geom.__class__.__name__}\n" + str_ += "\t" + f"axes : {self.geom.axes_names}\n" + str_ += "\t" + f"shape : {self.geom.data_shape[::-1]}\n" + str_ += "\t" + f"quantities : {list(self.available_quantities)}\n" + str_ += ( + "\t" + f"ref. model : {self.reference_spectral_model.tag[-1]}\n" + ) + str_ += "\t" + f"n_sigma : {self.n_sigma}\n" + str_ += "\t" + f"n_sigma_ul : {self.n_sigma_ul}\n" + str_ += "\t" + f"sqrt_ts_threshold_ul : {self.sqrt_ts_threshold_ul}\n" + str_ += "\t" + f"sed type init : {self.sed_type_init}\n" + return str_.expandtabs(tabsize=2)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/map/excess.html b/docs/dev/_modules/gammapy/estimators/map/excess.html new file mode 100644 index 00000000000..a410635992a --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/map/excess.html @@ -0,0 +1,1019 @@ + + + + + + + + + + gammapy.estimators.map.excess — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.map.excess

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+import logging
+import numpy as np
+from astropy.convolution import Tophat2DKernel
+from astropy.coordinates import Angle
+from gammapy.datasets import MapDataset, MapDatasetOnOff
+from gammapy.maps import Map
+from gammapy.modeling.models import PowerLawSpectralModel, SkyModel
+from gammapy.stats import CashCountsStatistic, WStatCountsStatistic
+from ..core import Estimator
+from ..utils import estimate_exposure_reco_energy, apply_threshold_sensitivity
+from .core import FluxMaps
+
+__all__ = ["ExcessMapEstimator"]
+
+log = logging.getLogger(__name__)
+
+
+def _get_convolved_maps(dataset, kernel, mask, correlate_off):
+    """Return convolved maps.
+
+    Parameters
+    ----------
+    dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.MapDatasetOnOff`
+        Map dataset.
+    kernel : `~astropy.convolution.Kernel`
+        Kernel.
+    mask : `~gammapy.maps.Map`
+        Mask map.
+    correlate_off : bool
+        Correlate OFF events.
+
+    Returns
+    -------
+    convolved_maps : dict
+        Dictionary of convolved maps.
+    """
+    # Kernel is modified later make a copy here
+    kernel = copy.deepcopy(kernel)
+    kernel_data = kernel.data / kernel.data.max()
+
+    # fft convolution adds numerical noise, to ensure integer results we call
+    # np.rint
+    n_on = dataset.counts * mask
+    n_on_conv = np.rint(n_on.convolve(kernel_data).data)
+
+    convolved_maps = {"n_on_conv": n_on_conv}
+
+    if isinstance(dataset, MapDatasetOnOff):
+        n_off = dataset.counts_off * mask
+        npred_sig = dataset.npred_signal() * mask
+        acceptance_on = dataset.acceptance * mask
+        acceptance_off = dataset.acceptance_off * mask
+        npred_sig_convolve = npred_sig.convolve(kernel_data)
+        if correlate_off:
+            background = dataset.background * mask
+            background.data[dataset.acceptance_off == 0] = 0.0
+            background_conv = background.convolve(kernel_data)
+            n_off = n_off.convolve(kernel_data)
+
+            with np.errstate(invalid="ignore", divide="ignore"):
+                alpha = background_conv / n_off
+
+        else:
+            acceptance_on_convolve = acceptance_on.convolve(kernel_data)
+
+            with np.errstate(invalid="ignore", divide="ignore"):
+                alpha = acceptance_on_convolve / acceptance_off
+        convolved_maps.update(
+            {
+                "n_off": n_off,
+                "npred_sig_convolve": npred_sig_convolve,
+                "acceptance_on": acceptance_on,
+                "acceptance_off": acceptance_off,
+                "alpha": alpha,
+            }
+        )
+    else:
+        npred = dataset.npred() * mask
+        background_conv = npred.convolve(kernel_data)
+        convolved_maps.update(
+            {
+                "background_conv": background_conv,
+            }
+        )
+
+    return convolved_maps
+
+
+def convolved_map_dataset_counts_statistics(convolved_maps, stat_type):
+    """Return a `CountsStatistic` object.
+
+    Parameters
+    ----------
+    convolved_maps : dict
+        Dictionary of convolved maps.
+    stat_type : str
+        The statistic type, either 'wstat' or 'cash'.
+
+    Returns
+    -------
+    counts_statistic : `~gammapy.stats.CashCountsStatistic` or `~gammapy.stats.WStatCountsStatistic`
+        The counts statistic.
+    """
+    if stat_type == "wstat":
+        n_on_conv = convolved_maps["n_on_conv"]
+        n_off = convolved_maps["n_off"]
+        alpha = convolved_maps["alpha"]
+        npred_sig_convolve = convolved_maps["npred_sig_convolve"]
+
+        return WStatCountsStatistic(
+            n_on_conv.data, n_off.data, alpha.data, npred_sig_convolve.data
+        )
+    elif stat_type == "cash":
+        n_on_conv = convolved_maps["n_on_conv"]
+        background_conv = convolved_maps["background_conv"]
+        return CashCountsStatistic(n_on_conv.data, background_conv.data)
+
+
+
+[docs] +class ExcessMapEstimator(Estimator): + """Computes correlated excess, significance and error maps from a map dataset. + + If a model is set on the dataset the excess map estimator will compute the + excess taking into account the predicted counts of the model. + + .. note:: + + By default, the excess estimator correlates the off counts as well to avoid + artifacts at the edges of the :term:`FoV` for stacked on-off datasets. + However, when the on-off dataset has been derived from a ring background + estimate, this leads to the off counts being correlated twice. To avoid + artifacts and the double correlation, the `ExcessMapEstimator` has to + be applied per dataset and the resulting maps need to be stacked, taking + the :term:`FoV` cut into account. + + Parameters + ---------- + correlation_radius : `~astropy.coordinates.Angle` + Correlation radius to use. + n_sigma : float + Confidence level for the asymmetric errors expressed in number of sigma. + n_sigma_ul : float + Confidence level for the upper limits expressed in number of sigma. + n_sigma_sensitivity : float + Confidence level for the sensitivity expressed in number of sigma. + gamma_min_sensitivity : float, optional + Minimum number of gamma-rays. Default is 10. + bkg_syst_fraction_sensitivity : float, optional + Fraction of background counts that are above the gamma-ray counts. Default is 0.05. + apply_threshold_sensitivity : bool + If True, use `bkg_syst_fraction_sensitivity` and `gamma_min_sensitivity` in the sensitivity computation. + Default is False which is the same setting as the HGPS catalog. + selection_optional : list of str, optional + Which additional maps to estimate besides delta TS, significance and symmetric error. + Available options are: + + * "all": all the optional steps are executed. + * "errn-errp": estimate asymmetric errors. + * "ul": estimate upper limits. + * "sensitivity": estimate sensitivity for a given significance. + * "alpha": normalisation factor to accounts for differences between the on and off regions. + * "acceptance_on": acceptance from the on region. + * "acceptance_off": acceptange from the off region. + + Default is None so the optional steps are not executed. + Note: "alpha", "acceptance_on" and "acceptance_off" can only be selected if the dataset is a + `~gammapy.datasets.MapDatasetOnOff`. + energy_edges : list of `~astropy.units.Quantity`, optional + Edges of the target maps energy bins. The resulting bin edges won't be exactly equal to the input ones, + but rather the closest values to the energy axis edges of the parent dataset. + Default is None: apply the estimator in each energy bin of the parent dataset. + For further explanation see :ref:`estimators`. + correlate_off : bool + Correlate OFF events. Default is True. + spectral_model : `~gammapy.modeling.models.SpectralModel` + Spectral model used for the computation of the flux map. + If None, a `~gammapy.modeling.models.PowerLawSpectralModel` of index 2 is assumed (default). + sum_over_energy_groups : bool + Only used if ``energy_edges`` is None. + If False, apply the estimator in each energy bin of the parent dataset. + If True, apply the estimator in only one bin defined by the energy edges of the parent dataset. + Default is False. + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> from gammapy.estimators import ExcessMapEstimator + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> estimator = ExcessMapEstimator(correlation_radius="0.1 deg") + >>> result = estimator.run(dataset) + >>> print(result) + FluxMaps + -------- + <BLANKLINE> + geom : WcsGeom + axes : ['lon', 'lat', 'energy'] + shape : (np.int64(320), np.int64(240), 1) + quantities : ['npred', 'npred_excess', 'counts', 'ts', 'sqrt_ts', 'norm', 'norm_err'] + ref. model : pl + n_sigma : 1 + n_sigma_ul : 2 + sqrt_ts_threshold_ul : 2 + sed type init : likelihood + + """ + + tag = "ExcessMapEstimator" + _available_selection_optional = [ + "errn-errp", + "ul", + "sensitivity", + "alpha", + "acceptance_on", + "acceptance_off", + ] + + def __init__( + self, + correlation_radius="0.1 deg", + n_sigma=1, + n_sigma_ul=2, + selection_optional=None, + energy_edges=None, + correlate_off=True, + spectral_model=None, + n_sigma_sensitivity=5, + gamma_min_sensitivity=10, + bkg_syst_fraction_sensitivity=0.05, + apply_threshold_sensitivity=False, + sum_over_energy_groups=False, + ): + self.correlation_radius = correlation_radius + self.n_sigma = n_sigma + self.n_sigma_ul = n_sigma_ul + self.n_sigma_sensitivity = n_sigma_sensitivity + self.gamma_min_sensitivity = gamma_min_sensitivity + self.bkg_syst_fraction_sensitivity = bkg_syst_fraction_sensitivity + self.apply_threshold_sensitivity = apply_threshold_sensitivity + self.selection_optional = selection_optional + self.energy_edges = energy_edges + self.sum_over_energy_groups = sum_over_energy_groups + self.correlate_off = correlate_off + + if spectral_model is None: + spectral_model = PowerLawSpectralModel(index=2) + + self.spectral_model = spectral_model + + @property + def correlation_radius(self): + return self._correlation_radius + + @correlation_radius.setter + def correlation_radius(self, correlation_radius): + """Set radius.""" + self._correlation_radius = Angle(correlation_radius) + +
+[docs] + def run(self, dataset): + """Compute correlated excess, Li & Ma significance and flux maps. + + If a model is set on the dataset the excess map estimator will compute + the excess taking into account the predicted counts of the model. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.MapDatasetOnOff` + Map dataset. + + Returns + ------- + maps : `FluxMaps` + Flux maps. + """ + if not isinstance(dataset, MapDataset): + raise ValueError( + "Unsupported dataset type. Excess map is not applicable to 1D datasets." + ) + + axis = self._get_energy_axis(dataset) + + resampled_dataset = dataset.resample_energy_axis( + energy_axis=axis, name=dataset.name + ) + + if dataset.exposure: + reco_exposure = estimate_exposure_reco_energy( + dataset, self.spectral_model, normalize=False + ) + reco_exposure = reco_exposure.resample_axis( + axis=axis, weights=dataset.mask_safe + ) + else: + reco_exposure = None + + if isinstance(dataset, MapDatasetOnOff): + resampled_dataset.models = dataset.models + else: + resampled_dataset.background = dataset.npred().resample_axis( + axis=axis, weights=dataset.mask_safe + ) + resampled_dataset.models = None + + result = self.estimate_excess_map(resampled_dataset, reco_exposure) + return result
+ + +
+[docs] + def estimate_kernel(self, dataset): + """Get the convolution kernel for the input dataset. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + + Returns + ------- + kernel : `~astropy.convolution.Tophat2DKernel` + Kernel. + """ + pixel_size = np.mean(np.abs(dataset.counts.geom.wcs.wcs.cdelt)) + size = self.correlation_radius.deg / pixel_size + kernel = Tophat2DKernel(size) + + geom = dataset.counts.geom.to_image() + geom = geom.to_odd_npix(max_radius=self.correlation_radius) + return Map.from_geom(geom, data=kernel.array)
+ + +
+[docs] + @staticmethod + def estimate_mask_default(dataset): + """Get mask used by the estimator. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + + Returns + ------- + mask : `~gammapy.maps.Map` + Mask map. + """ + if dataset.mask_fit: + mask = dataset.mask + elif dataset.mask_safe: + mask = dataset.mask_safe + else: + mask = Map.from_geom(dataset.counts.geom, data=True, dtype=bool) + return mask
+ + +
+[docs] + def estimate_exposure_reco_energy(self, dataset, kernel, mask, reco_exposure): + """Estimate exposure map in reconstructed energy for a single dataset assuming the given spectral_model shape. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + kernel : `~astropy.convolution.Tophat2DKernel` + Kernel. + mask : `~gammapy.maps.Map` + Mask map. + + Returns + ------- + reco_exposure : `~gammapy.maps.Map` + Reconstructed exposure map. + """ + if dataset.exposure: + with np.errstate(invalid="ignore", divide="ignore"): + reco_exposure = reco_exposure.convolve(kernel.data) / mask.convolve( + kernel.data + ) + else: + reco_exposure = 1 + + return reco_exposure
+ + +
+[docs] + def estimate_excess_map(self, dataset, reco_exposure): + """Estimate excess and test statistic maps for a single dataset. + + If exposure is defined, a flux map is also computed. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + """ + kernel = self.estimate_kernel(dataset) + geom = dataset.counts.geom + mask = self.estimate_mask_default(dataset) + + convolved_maps = _get_convolved_maps(dataset, kernel, mask, self.correlate_off) + counts_stat = convolved_map_dataset_counts_statistics( + convolved_maps=convolved_maps, stat_type=dataset.stat_type + ) + + maps = {} + maps["npred"] = Map.from_geom(geom, data=counts_stat.n_on) + maps["npred_excess"] = Map.from_geom(geom, data=counts_stat.n_sig) + maps["counts"] = maps["npred"] + + maps["ts"] = Map.from_geom(geom, data=counts_stat.ts) + maps["sqrt_ts"] = Map.from_geom(geom, data=counts_stat.sqrt_ts) + + reco_exposure = self.estimate_exposure_reco_energy( + dataset, kernel, mask, reco_exposure + ) + + with np.errstate(invalid="ignore", divide="ignore"): + maps["norm"] = maps["npred_excess"] / reco_exposure + maps["norm_err"] = ( + Map.from_geom(geom, data=counts_stat.error * self.n_sigma) + / reco_exposure + ) + + if "errn-errp" in self.selection_optional: + maps["norm_errn"] = ( + Map.from_geom(geom, data=counts_stat.compute_errn(self.n_sigma)) + / reco_exposure + ) + maps["norm_errp"] = ( + Map.from_geom(geom, data=counts_stat.compute_errp(self.n_sigma)) + / reco_exposure + ) + + if "ul" in self.selection_optional: + maps["norm_ul"] = ( + Map.from_geom( + geom, data=counts_stat.compute_upper_limit(self.n_sigma_ul) + ) + / reco_exposure + ) + if "sensitivity" in self.selection_optional: + excess_counts = counts_stat.n_sig_matching_significance( + self.n_sigma_sensitivity + ) + if self.apply_threshold_sensitivity: + excess_counts = apply_threshold_sensitivity( + dataset.background.data, + excess_counts, + self.gamma_min_sensitivity, + self.bkg_syst_fraction_sensitivity, + ) + excess = Map.from_geom(geom=geom, data=excess_counts) + maps["norm_sensitivity"] = excess / reco_exposure + if isinstance(dataset, MapDatasetOnOff): + keys_onoff = set(["alpha", "acceptance_on", "acceptance_off"]) + for key in keys_onoff.intersection(self.selection_optional): + maps[key] = convolved_maps[key] + + # return nan values outside mask + for name in maps: + maps[name].data[~mask] = np.nan + + meta = { + "n_sigma": self.n_sigma, + "n_sigma_ul": self.n_sigma_ul, + "n_sigma_sensitivity": self.n_sigma_sensitivity, + "sed_type_init": "likelihood", + } + if self.apply_threshold_sensitivity: + meta["gamma_min_sensitivity"] = self.gamma_min_sensitivity + meta["bkg_syst_fraction_sensitivity"] = self.bkg_syst_fraction_sensitivity + + return FluxMaps.from_maps( + maps=maps, + meta=meta, + reference_model=SkyModel(self.spectral_model), + sed_type="likelihood", + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/map/ts.html b/docs/dev/_modules/gammapy/estimators/map/ts.html new file mode 100644 index 00000000000..1f515fed209 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/map/ts.html @@ -0,0 +1,1600 @@ + + + + + + + + + + gammapy.estimators.map.ts — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.map.ts

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Functions to compute test statistic images."""
+
+import warnings
+from itertools import repeat
+import numpy as np
+import scipy.optimize
+from scipy.interpolate import InterpolatedUnivariateSpline
+from astropy.coordinates import Angle
+from astropy.utils import lazyproperty
+import gammapy.utils.parallel as parallel
+from gammapy.datasets import Datasets
+from gammapy.datasets.map import MapEvaluator
+from gammapy.datasets.utils import get_nearest_valid_exposure_position
+from gammapy.maps import Map, MapAxis, Maps
+from gammapy.modeling.models import PointSpatialModel, PowerLawSpectralModel, SkyModel
+from gammapy.stats import cash, cash_sum_cython, f_cash_root_cython, norm_bounds_cython
+from gammapy.utils.array import shape_2N, symmetric_crop_pad_width
+from gammapy.utils.pbar import progress_bar
+from gammapy.utils.roots import find_roots
+from ..core import Estimator
+from ..utils import (
+    _generate_scan_values,
+    _get_default_norm,
+    _get_norm_scan_values,
+    estimate_exposure_reco_energy,
+)
+from .core import FluxMaps
+
+__all__ = ["TSMapEstimator"]
+
+
+def _extract_array(array, shape, position):
+    """Helper function to extract parts of a larger array.
+
+    Simple implementation of an array extract function , because
+    `~astropy.ndata.utils.extract_array` introduces too much overhead.`
+
+    Parameters
+    ----------
+    array : `~numpy.ndarray`
+        The array from which to extract.
+    shape : tuple or int
+        The shape of the extracted array.
+    position : tuple of numbers or number
+        The position of the small array's center with respect to the
+        large array.
+    """
+    x_width = shape[2] // 2
+    y_width = shape[1] // 2
+    y_lo = position[0] - y_width
+    y_hi = position[0] + y_width + 1
+    x_lo = position[1] - x_width
+    x_hi = position[1] + x_width + 1
+    return array[:, y_lo:y_hi, x_lo:x_hi]
+
+
+
+[docs] +class TSMapEstimator(Estimator, parallel.ParallelMixin): + r"""Compute test statistic map from a MapDataset using different optimization methods. + + The map is computed fitting by a single parameter norm fit. The fit is + simplified by finding roots of the derivative of the fit statistics using + various root finding algorithms. The approach is described in Appendix A + in Stewart (2009). + + Parameters + ---------- + model : `~gammapy.modeling.models.SkyModel` + Source model kernel. If set to None, + assume spatail model: point source model, PointSpatialModel. + spectral model: PowerLawSpectral Model of index 2 + kernel_width : `~astropy.coordinates.Angle` + Width of the kernel to use: the kernel will be truncated at this size + n_sigma : int + Number of sigma for flux error. Default is 1. + n_sigma_ul : int + Number of sigma for flux upper limits. Default is 2. + downsampling_factor : int + Sample down the input maps to speed up the computation. Only integer + values that are a multiple of 2 are allowed. Note that the kernel is + not sampled down, but must be provided with the downsampled bin size. + threshold : float, optional + If the test statistic value corresponding to the initial flux estimate is not above + this threshold, the optimizing step is omitted to save computing time. Default is None. + rtol : float + Relative precision of the flux estimate. Used as a stopping criterion for + the norm fit. Default is 0.01. + selection_optional : list of str, optional + Which maps to compute besides TS, sqrt(TS), flux and symmetric error on flux. + Available options are: + + * "all": all the optional steps are executed + * "errn-errp": estimate asymmetric error on flux. + * "ul": estimate upper limits on flux. + * "stat_scan": estimate likelihood profile + + Default is None so the optional steps are not executed. + energy_edges : list of `~astropy.units.Quantity`, optional + Edges of the target maps energy bins. The resulting bin edges won't be exactly equal to the input ones, + but rather the closest values to the energy axis edges of the parent dataset. + Default is None: apply the estimator in each energy bin of the parent dataset. + For further explanation see :ref:`estimators`. + sum_over_energy_groups : bool + Whether to sum over the energy groups or fit the norm on the full energy + cube. + norm : `~gammapy.modeling.Parameter` or dict + Norm parameter used for the likelihood profile computation on a fixed norm range. + Only used for "stat_scan" in `selection_optional`. + Default is None and a new parameter is created automatically, + with value=1, name="norm", scan_min=-100, scan_max=100, + and values sampled such as we can probe a 0.1% relative error on the norm. + If a dict is given the entries should be a subset of + `~gammapy.modeling.Parameter` arguments. + n_jobs : int + Number of processes used in parallel for the computation. Default is one, + unless `~gammapy.utils.parallel.N_JOBS_DEFAULT` was modified. The number + of jobs limited to the number of physical CPUs. + parallel_backend : {"multiprocessing", "ray"} + Which backend to use for multiprocessing. Defaults to `~gammapy.utils.parallel.BACKEND_DEFAULT`. + max_niter : int + Maximal number of iterations used by the root finding algorithm. + Default is 100. + + Notes + ----- + Negative :math:`TS` values are defined as following: + + .. math:: + TS = \left \{ + \begin{array}{ll} + -TS \text{ if } F < 0 \\ + TS \text{ else} + \end{array} + \right. + + Where :math:`F` is the fitted flux norm. + + Examples + -------- + >>> import astropy.units as u + >>> from gammapy.estimators import TSMapEstimator + >>> from gammapy.datasets import MapDataset + >>> from gammapy.modeling.models import (SkyModel, PowerLawSpectralModel,PointSpatialModel) + >>> spatial_model = PointSpatialModel() + >>> spectral_model = PowerLawSpectralModel(amplitude="1e-22 cm-2 s-1 keV-1", index=2) + >>> model = SkyModel(spatial_model=spatial_model, spectral_model=spectral_model) + >>> dataset = MapDataset.read("$GAMMAPY_DATA/fermi-3fhl-gc/fermi-3fhl-gc.fits.gz") + >>> estimator = TSMapEstimator( + ... model, kernel_width="1 deg", energy_edges=[10, 100] * u.GeV, downsampling_factor=4 + ... ) + >>> maps = estimator.run(dataset) + >>> print(maps) + FluxMaps + -------- + <BLANKLINE> + geom : WcsGeom + axes : ['lon', 'lat', 'energy'] + shape : (np.int64(400), np.int64(200), 1) + quantities : ['ts', 'norm', 'niter', 'norm_err', 'npred', 'npred_excess', 'stat', 'stat_null', 'success'] + ref. model : pl + n_sigma : 1 + n_sigma_ul : 2 + sqrt_ts_threshold_ul : 2 + sed type init : likelihood + + + References + ---------- + [Stewart2009]_ + """ + + tag = "TSMapEstimator" + _available_selection_optional = ["errn-errp", "ul", "stat_scan"] + + def __init__( + self, + model=None, + kernel_width=None, + downsampling_factor=None, + n_sigma=1, + n_sigma_ul=2, + threshold=None, + rtol=0.01, + selection_optional=None, + energy_edges=None, + sum_over_energy_groups=True, + n_jobs=None, + parallel_backend=None, + norm=None, + max_niter=100, + ): + if kernel_width is not None: + kernel_width = Angle(kernel_width) + + self.kernel_width = kernel_width + + self.norm = _get_default_norm(norm, scan_values=_generate_scan_values()) + + if model is None: + model = SkyModel( + spectral_model=PowerLawSpectralModel(), + spatial_model=PointSpatialModel(), + name="ts-kernel", + ) + + self.model = model + self.downsampling_factor = downsampling_factor + self.n_sigma = n_sigma + self.n_sigma_ul = n_sigma_ul + self.threshold = threshold + self.rtol = rtol + self.n_jobs = n_jobs + self.parallel_backend = parallel_backend + self.sum_over_energy_groups = sum_over_energy_groups + self.max_niter = max_niter + + self.selection_optional = selection_optional + self.energy_edges = energy_edges + self._flux_estimator = BrentqFluxEstimator( + rtol=self.rtol, + n_sigma=self.n_sigma, + n_sigma_ul=self.n_sigma_ul, + selection_optional=selection_optional, + ts_threshold=threshold, + norm=self.norm, + max_niter=self.max_niter, + ) + + @property + def selection_all(self): + """Which quantities are computed.""" + selection = [ + "ts", + "norm", + "niter", + "norm_err", + "npred", + "npred_excess", + "stat", + "stat_null", + "success", + ] + + if "stat_scan" in self.selection_optional: + selection += [ + "dnde_scan_values", + "stat_scan", + "norm_errp", + "norm_errn", + "norm_ul", + ] + else: + if "errn-errp" in self.selection_optional: + selection += ["norm_errp", "norm_errn"] + if "ul" in self.selection_optional: + selection += ["norm_ul"] + + return selection + +
+[docs] + def estimate_kernel(self, dataset): + """Get the convolution kernel for the input dataset. + + Convolves the model with the IRFs at the center of the dataset, + or at the nearest position with non-zero exposure. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + + Returns + ------- + kernel : `~gammapy.maps.Map` + Kernel map. + + """ + geom = dataset.exposure.geom + + if self.kernel_width is not None: + geom = geom.to_odd_npix(max_radius=self.kernel_width / 2) + + model = self.model.copy() + model.spatial_model.position = geom.center_skydir + + # Creating exposure map with the mean non-null exposure + exposure = Map.from_geom(geom, unit=dataset.exposure.unit) + position = get_nearest_valid_exposure_position( + dataset.exposure, geom.center_skydir + ) + exposure_position = dataset.exposure.to_region_nd_map(position) + if not np.any(exposure_position.data): + raise ValueError( + "No valid exposure. Impossible to compute kernel for TS Map." + ) + exposure.data[...] = exposure_position.data + + # We use global evaluation mode to not modify the geometry + evaluator = MapEvaluator(model=model) + + evaluator.update( + exposure=exposure, + psf=dataset.psf, + edisp=dataset.edisp, + geom=dataset.counts.geom, + mask=dataset.mask_image, + ) + + kernel = evaluator.compute_npred() + kernel.data /= kernel.data.sum() + return kernel
+ + +
+[docs] + def estimate_flux_default(self, dataset, kernel=None, exposure=None): + """Estimate default flux map using a given kernel. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + kernel : `~gammapy.maps.WcsNDMap` + Source model kernel. + exposure : `~gammapy.maps.WcsNDMap` + Exposure map on reconstructed energy. + + Returns + ------- + flux : `~gammapy.maps.WcsNDMap` + Approximate flux map. + """ + if exposure is None: + exposure = estimate_exposure_reco_energy(dataset, self.model.spectral_model) + + if kernel is None: + kernel = self.estimate_kernel(dataset=dataset) + + kernel = kernel.data / np.sum(kernel.data**2) + + with np.errstate(invalid="ignore", divide="ignore"): + flux = (dataset.counts - dataset.npred()) / exposure + flux.data = np.nan_to_num(flux.data) + + flux.quantity = flux.quantity.to("1 / (cm2 s)") + flux = flux.convolve(kernel) + if dataset.mask_safe: + flux *= dataset.mask_safe + return flux.sum_over_axes()
+ + +
+[docs] + @staticmethod + def estimate_mask_default(dataset): + """Compute default mask where to estimate test statistic values. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + + Returns + ------- + mask : `WcsNDMap` + Mask map. + """ + geom = dataset.counts.geom.to_image() + + mask = np.ones(geom.data_shape, dtype=bool) + + if dataset.mask is not None: + mask &= dataset.mask.reduce_over_axes(func=np.logical_or, keepdims=False) + + # in some image there are pixels, which have exposure, but zero + # background, which doesn't make sense and causes the TS computation + # to fail, this is a temporary fix + npred = dataset.npred() + if dataset.mask_safe: + npred *= dataset.mask_safe + background = npred.sum_over_axes(keepdims=False) + mask[background.data == 0] = False + return Map.from_geom(data=mask, geom=geom)
+ + +
+[docs] + def estimate_pad_width(self, dataset, kernel=None): + """Estimate pad width of the dataset. + + Parameters + ---------- + dataset : `MapDataset` + Input MapDataset. + kernel : `WcsNDMap` + Source model kernel. + + Returns + ------- + pad_width : tuple + Padding width. + """ + if kernel is None: + kernel = self.estimate_kernel(dataset=dataset) + + geom = dataset.counts.geom.to_image() + geom_kernel = kernel.geom.to_image() + + pad_width = np.array(geom_kernel.data_shape) // 2 + + if self.downsampling_factor and self.downsampling_factor > 1: + shape = tuple(np.array(geom.data_shape) + 2 * pad_width) + pad_width = symmetric_crop_pad_width(geom.data_shape, shape_2N(shape))[0] + + return tuple(pad_width)
+ + +
+[docs] + def estimate_fit_input_maps(self, dataset): + """Estimate fit input maps. + + Parameters + ---------- + dataset : `MapDataset` + Map dataset. + + Returns + ------- + maps : dict of `Map` + Maps dictionary. + """ + # First create 2D map arrays + + exposure = estimate_exposure_reco_energy(dataset, self.model.spectral_model) + + kernel = self.estimate_kernel(dataset) + + mask = self.estimate_mask_default(dataset=dataset) + + flux = self.estimate_flux_default( + dataset=dataset, kernel=kernel, exposure=exposure + ) + + mask_safe = dataset.mask_safe if dataset.mask_safe else 1.0 + counts = dataset.counts * mask_safe + background = dataset.npred() * mask_safe + exposure *= mask_safe + + energy_axis = counts.geom.axes["energy"] + + flux_ref = self.model.spectral_model.integral( + energy_axis.edges[0], energy_axis.edges[-1] + ) + + exposure_npred = (exposure * flux_ref * mask.data).to_unit("") + norm = (flux / flux_ref).to_unit("") + + if self.sum_over_energy_groups: + if dataset.mask_safe is None: + mask_safe = Map.from_geom(counts.geom, data=True, dtype=bool) + counts = counts.sum_over_axes() + background = background.sum_over_axes() + exposure_npred = exposure_npred.sum_over_axes() + + else: + mask_safe = None # already applied + + return { + "counts": counts, + "background": background, + "norm": norm, + "mask": mask, + "mask_safe": mask_safe, + "exposure": exposure_npred, + "kernel": kernel, + }
+ + +
+[docs] + def estimate_flux_map(self, datasets): + """Estimate flux and test statistic maps for single dataset. + + Parameters + ---------- + dataset : `~gammapy.datasets.Datasets` or `~gammapy.datasets.MapDataset` + Map dataset or Datasets (list of MapDataset with the same spatial geometry). + """ + maps = [self.estimate_fit_input_maps(dataset=d) for d in datasets] + + mask = np.sum([_["mask"].data for _ in maps], axis=0).astype(bool) + + if not np.any(mask): + raise ValueError( + """No valid positions found. + Check that the dataset background is defined and not only zeros, + or that the mask_safe is not all False." + """ + ) + + x, y = np.where(np.squeeze(mask)) + positions = list(zip(x, y)) + + inputs = zip( + positions, + repeat([_["counts"].data.astype(float) for _ in maps]), + repeat([_["exposure"].data.astype(float) for _ in maps]), + repeat([_["background"].data.astype(float) for _ in maps]), + repeat([_["kernel"].data for _ in maps]), + repeat([_["norm"].data for _ in maps]), + repeat([_["mask_safe"] for _ in maps]), + repeat(self._flux_estimator), + ) + + results = parallel.run_multiprocessing( + _ts_value, + inputs, + backend=self.parallel_backend, + pool_kwargs=dict(processes=self.n_jobs), + task_name="TS map", + ) + + result = {} + + j, i = zip(*positions) + + geom = maps[0]["counts"].geom.squash(axis_name="energy") + energy_axis = geom.axes["energy"] + dnde_ref = self.model.spectral_model(energy_axis.center) + + for name in self.selection_all: + if name in ["dnde_scan_values", "stat_scan"]: + norm_bin_axis = MapAxis( + range(len(results[0]["dnde_scan_values"])), + interp="lin", + node_type="center", + name="dnde_bin", + ) + + axes = geom.axes + [norm_bin_axis] + geom_scan = geom.to_image().to_cube(axes) + + if name == "dnde_scan_values": + unit = dnde_ref.unit + factor = dnde_ref.value + else: + unit = "" + factor = 1 + + m = Map.from_geom(geom_scan, data=np.nan, unit=unit) + m.data[:, 0, j, i] = np.array([_[name] for _ in results]).T * factor + + else: + m = Map.from_geom(geom=geom, data=np.nan, unit="") + m.data[0, j, i] = [_[name] for _ in results] + result[name] = m + + return result
+ + +
+[docs] + def run(self, datasets): + """ + Run test statistic map estimation. + + Requires a MapDataset with counts, exposure and background_model + properly set to run. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + dataset : `~gammapy.datasets.Datasets` or `~gammapy.datasets.MapDataset` + Map dataset or Datasets (list of MapDataset with the same spatial geometry). + + Returns + ------- + maps : dict + Dictionary containing result maps. Keys are: + + * ts : delta(TS) map + * sqrt_ts : sqrt(delta(TS)), or significance map + * flux : flux map + * flux_err : symmetric error map + * flux_ul : upper limit map. + + """ + datasets = Datasets(datasets) + + geom_ref = datasets[0].counts.geom + for dataset in datasets: + if dataset.stat_type != "cash": + raise TypeError( + f"{type(dataset)} is not a valid type for {self.__class__}" + ) + if dataset.counts.geom.to_image() != geom_ref.to_image(): + raise TypeError("Datasets geometries must match") + + datasets_models = datasets.models + + pad_width = (0, 0) + for dataset in datasets: + pad_width_dataset = self.estimate_pad_width(dataset=dataset) + pad_width = tuple(np.maximum(pad_width, pad_width_dataset)) + + datasets_padded = Datasets() + for dataset in datasets: + dataset = dataset.pad(pad_width, name=dataset.name) + dataset = dataset.downsample(self.downsampling_factor, name=dataset.name) + datasets_padded.append(dataset) + datasets = datasets_padded + + energy_axis = self._get_energy_axis(dataset=datasets[0]) + + results = [] + + for energy_min, energy_max in progress_bar( + energy_axis.iter_by_edges, desc="Energy bins" + ): + datasets_sliced = datasets.slice_by_energy( + energy_min=energy_min, energy_max=energy_max + ) + + if datasets_models is not None: + models_sliced = datasets_models._slice_by_energy( + energy_min=energy_min, + energy_max=energy_max, + sum_over_energy_groups=self.sum_over_energy_groups, + ) + datasets_sliced.models = models_sliced + result = self.estimate_flux_map(datasets_sliced) + results.append(result) + + maps = Maps() + + for name in self.selection_all: + m = Map.from_stack(maps=[_[name] for _ in results], axis_name="energy") + + order = 0 if name in ["niter", "success"] else 1 + m = m.upsample( + factor=self.downsampling_factor, preserve_counts=False, order=order + ) + + maps[name] = m.crop(crop_width=pad_width) + + maps["success"].data = maps["success"].data.astype(bool) + + meta = {"n_sigma": self.n_sigma, "n_sigma_ul": self.n_sigma_ul} + return FluxMaps( + data=maps, + reference_model=self.model, + gti=dataset.gti, + meta=meta, + )
+
+ + + +# TODO: merge with MapDataset? +class SimpleMapDataset: + """Simple map dataset. + + Parameters + ---------- + counts : `~numpy.ndarray` + Counts array. + background : `~numpy.ndarray` + Background array. + model : `~numpy.ndarray` + Kernel array. + + """ + + def __init__(self, model, counts, background, norm_guess): + self.model = model + self.counts = counts + self.background = background + self.norm_guess = norm_guess + + @lazyproperty + def norm_bounds(self): + """Bounds for x.""" + return norm_bounds_cython(self.counts, self.background, self.model) + + def npred(self, norm): + """Predicted number of counts.""" + return self.background + norm * self.model + + def stat_sum(self, norm): + """Statistics sum.""" + return cash_sum_cython(self.counts, self.npred(norm)) + + def stat_derivative(self, norm): + """Statistics derivative.""" + return f_cash_root_cython(norm, self.counts, self.background, self.model) + + def stat_2nd_derivative(self, norm): + """Statistics 2nd derivative.""" + term_top = self.model**2 * self.counts + term_bottom = (self.background + norm * self.model) ** 2 + mask = term_bottom == 0 + return (term_top / term_bottom)[~mask].sum() + + @classmethod + def from_arrays( + cls, counts, background, exposure, norm, position, kernel, mask_safe + ): + """""" + if mask_safe: + # compute mask_safe weighted kernel for the sum_over_axes case + mask_safe = _extract_array(mask_safe.data, kernel.shape, position) + kernel = (kernel * mask_safe).sum(axis=0, keepdims=True) + with np.errstate(invalid="ignore", divide="ignore"): + kernel /= mask_safe.sum(axis=0, keepdims=True) + kernel[~np.isfinite(kernel)] = 0 + + counts_cutout = _extract_array(counts, kernel.shape, position) + background_cutout = _extract_array(background, kernel.shape, position) + exposure_cutout = _extract_array(exposure, kernel.shape, position) + model = kernel * exposure_cutout + norm_guess = norm[0, position[0], position[1]] + mask_invalid = (counts_cutout == 0) & (background_cutout == 0) & (model == 0) + return cls( + counts=counts_cutout[~mask_invalid], + background=background_cutout[~mask_invalid], + model=model[~mask_invalid], + norm_guess=norm_guess, + ) + + +# TODO: merge with `FluxEstimator`? +class BrentqFluxEstimator(Estimator): + """Single parameter flux estimator.""" + + _available_selection_optional = ["errn-errp", "ul", "stat_scan"] + tag = "BrentqFluxEstimator" + + def __init__( + self, + rtol, + n_sigma, + n_sigma_ul, + selection_optional=None, + max_niter=100, + ts_threshold=None, + norm=None, + ): + self.rtol = rtol + self.n_sigma = n_sigma + self.n_sigma_ul = n_sigma_ul + self.selection_optional = selection_optional + self.max_niter = max_niter + self.ts_threshold = ts_threshold + self.norm = norm + + def estimate_best_fit(self, dataset): + """Estimate best fit norm parameter. + + Parameters + ---------- + dataset : `SimpleMapDataset` + Simple map dataset. + + Returns + ------- + result : dict + Result dictionary including 'norm' and 'norm_err'. + """ + # Compute norm bounds and assert counts > 0 + norm_min, norm_max, norm_min_total = dataset.norm_bounds + + if not dataset.counts.sum() > 0: + norm, niter, success = norm_min_total, 0, True + + else: + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + try: + # here we do not use avoid find_roots for performance + result_fit = scipy.optimize.brentq( + f=dataset.stat_derivative, + a=norm_min, + b=norm_max, + maxiter=self.max_niter, + full_output=True, + rtol=self.rtol, + ) + norm = max(result_fit[0], norm_min_total) + niter = result_fit[1].iterations + success = result_fit[1].converged + except (RuntimeError, ValueError): + norm, niter, success = norm_min_total, self.max_niter, False + + with np.errstate(invalid="ignore", divide="ignore"): + norm_err = np.sqrt(1 / dataset.stat_2nd_derivative(norm)) * self.n_sigma + + stat = dataset.stat_sum(norm=norm) + stat_null = dataset.stat_sum(norm=0) + + return { + "norm": norm, + "norm_err": norm_err, + "niter": niter, + "ts": stat_null - stat, + "stat": stat, + "stat_null": stat_null, + "success": success, + } + + def _confidence(self, dataset, n_sigma, result, positive): + stat_best = result["stat"] + norm = result["norm"] + norm_err = result["norm_err"] + + def ts_diff(x): + return (stat_best + n_sigma**2) - dataset.stat_sum(x) + + if positive: + min_norm = norm + max_norm = norm + 1e2 * norm_err + factor = 1 + else: + min_norm = norm - 1e2 * norm_err + max_norm = norm + factor = -1 + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + roots, res = find_roots( + ts_diff, + [min_norm], + [max_norm], + nbin=1, + maxiter=self.max_niter, + rtol=self.rtol, + ) + # Where the root finding fails NaN is set as norm + return (roots[0] - norm) * factor + + def estimate_ul(self, dataset, result): + """Compute upper limit using likelihood profile method. + + Parameters + ---------- + dataset : `SimpleMapDataset` + Simple map dataset. + + Returns + ------- + result : dict + Result dictionary including 'norm_ul'. + """ + flux_ul = result["norm"] + self._confidence( + dataset=dataset, n_sigma=self.n_sigma_ul, result=result, positive=True + ) + + return {"norm_ul": flux_ul} + + def estimate_errn_errp(self, dataset, result): + """Compute norm errors using likelihood profile method. + + Parameters + ---------- + dataset : `SimpleMapDataset` + Simple map dataset. + + Returns + ------- + result : dict + Result dictionary including 'norm_errp' and 'norm_errn'. + """ + flux_errn = self._confidence( + dataset=dataset, result=result, n_sigma=self.n_sigma, positive=False + ) + flux_errp = self._confidence( + dataset=dataset, result=result, n_sigma=self.n_sigma, positive=True + ) + return {"norm_errn": flux_errn, "norm_errp": flux_errp} + + def estimate_scan(self, dataset, result): + """Compute likelihood profile. + + Parameters + ---------- + dataset : `SimpleMapDataset` + Simple map dataset. + + Returns + ------- + result : dict + Result dictionary including 'stat_scan'. + """ + sparse_norms = _get_norm_scan_values(self.norm, result) + + scale = sparse_norms[None, :] + model = dataset.model.ravel()[:, None] + background = dataset.background.ravel()[:, None] + counts = dataset.counts.ravel()[:, None] + stat_scan = cash(counts, model * scale + background) + + stat_scan_local = stat_scan.sum(axis=0) - result["stat_null"] + + spline = InterpolatedUnivariateSpline( + sparse_norms, stat_scan_local, k=1, ext="raise", check_finite=True + ) + + norms = np.unique(np.concatenate((sparse_norms, self.norm.scan_values))) + stat_scan = spline(norms) + + ts = -stat_scan.min() + ind = stat_scan.argmin() + norm = norms[ind] + + maskp = norms > norm + stat_diff = stat_scan - stat_scan.min() + ind = np.abs(stat_diff - self.n_sigma**2)[~maskp].argmin() + norm_errn = norm - norms[~maskp][ind] + + ind = np.abs(stat_diff - self.n_sigma**2)[maskp].argmin() + norm_errp = norms[maskp][ind] - norm + + ind = np.abs(stat_diff - self.n_sigma_ul**2)[maskp].argmin() + norm_ul = norms[maskp][ind] + + norm_err = (norm_errn + norm_errp) / 2 + + return dict( + ts=ts, + norm=norm, + norm_err=norm_err, + norm_errn=norm_errn, + norm_errp=norm_errp, + norm_ul=norm_ul, + stat_scan=stat_scan_local, + dnde_scan_values=sparse_norms, + ) + + def estimate_default(self, dataset): + """Estimate default norm. + + Parameters + ---------- + dataset : `SimpleMapDataset` + Simple map dataset. + + Returns + ------- + result : dict + Result dictionary including 'norm', 'norm_err' and "niter". + """ + norm = dataset.norm_guess + + with np.errstate(invalid="ignore", divide="ignore"): + norm_err = np.sqrt(1 / dataset.stat_2nd_derivative(norm)) * self.n_sigma + + stat = dataset.stat_sum(norm=norm) + stat_null = dataset.stat_sum(norm=0) + + return { + "norm": norm, + "norm_err": norm_err, + "niter": 0, + "ts": stat_null - stat, + "stat": stat, + "stat_null": stat_null, + "success": True, + } + + def run(self, dataset): + """Run flux estimator. + + Parameters + ---------- + dataset : `SimpleMapDataset` + Simple map dataset. + + Returns + ------- + result : dict + Result dictionary. + """ + if self.ts_threshold is not None: + result = self.estimate_default(dataset) + if result["ts"] > self.ts_threshold: + result = self.estimate_best_fit(dataset) + else: + result = self.estimate_best_fit(dataset) + + if "ul" in self.selection_optional: + result.update(self.estimate_ul(dataset, result)) + + if "errn-errp" in self.selection_optional: + result.update(self.estimate_errn_errp(dataset, result)) + + if "stat_scan" in self.selection_optional: + result.update(self.estimate_scan(dataset, result)) + + norm = result["norm"] + result["npred"] = dataset.npred(norm=norm).sum() + result["npred_excess"] = result["npred"] - dataset.npred(norm=0).sum() + result["stat"] = dataset.stat_sum(norm=norm) + + return result + + +def _ts_value( + position, counts, exposure, background, kernel, norm, mask_safe, flux_estimator +): + """Compute test statistic value at a given pixel position. + + Uses approach described in Stewart (2009). + + Parameters + ---------- + position : tuple (i, j) + Pixel position. + counts : `~numpy.ndarray` + Counts image. + background : `~numpy.ndarray` + Background image. + exposure : `~numpy.ndarray` + Exposure image. + kernel : `astropy.convolution.Kernel2D` + Source model kernel. + norm : `~numpy.ndarray` + Norm image. The flux value at the given pixel position is used as + starting value for the minimization. + + Returns + ------- + TS : float + Test statistic value at the given pixel position. + """ + datasets = [] + nd = len(counts) + for idx in range(nd): + datasets.append( + SimpleMapDataset.from_arrays( + counts=counts[idx], + background=background[idx], + exposure=exposure[idx], + norm=norm[idx], + position=position, + kernel=kernel[idx], + mask_safe=mask_safe[idx], + ) + ) + + norm_guess = np.array([d.norm_guess for d in datasets]) + mask_valid = np.isfinite(norm_guess) + if np.any(mask_valid): + norm_guess = np.mean(norm_guess[mask_valid]) + else: + norm_guess = 1.0 + dataset = SimpleMapDataset( + counts=np.concatenate([d.counts for d in datasets]), + background=np.concatenate([d.background for d in datasets]), + model=np.concatenate([d.model for d in datasets]), + norm_guess=norm_guess, + ) + return flux_estimator.run(dataset) +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/metadata.html b/docs/dev/_modules/gammapy/estimators/metadata.html new file mode 100644 index 00000000000..0ae82d857f3 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/metadata.html @@ -0,0 +1,612 @@ + + + + + + + + + + gammapy.estimators.metadata — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.metadata

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from enum import Enum
+from typing import ClassVar, Literal, Optional
+from gammapy.utils.metadata import (
+    METADATA_FITS_KEYS,
+    CreatorMetaData,
+    MetaData,
+    TargetMetaData,
+)
+
+__all__ = ["FluxMetaData"]
+
+
+FLUX_METADATA_FITS_KEYS = {
+    "flux": {
+        "sed_type": "SED_TYPE",
+        "sed_type_init": "SEDTYPEI",
+        "n_sigma": "N_SIGMA",
+        "n_sigma_ul": "NSIGMAUL",
+        "sqrt_ts_threshold_ul": "STSTHUL",
+        "n_sigma_sensitivity": "NSIGMSEN",
+    },
+}
+
+METADATA_FITS_KEYS.update(FLUX_METADATA_FITS_KEYS)
+
+log = logging.getLogger(__name__)
+
+
+class SEDTYPEEnum(str, Enum):
+    dnde = "dnde"
+    flux = "flux"
+    eflux = "eflux"
+    e2dnde = "e2dnde"
+    likelihood = "likelihood"
+
+
+
+[docs] +class FluxMetaData(MetaData): + """Metadata containing information about the FluxPoints and FluxMaps. + + Attributes + ---------- + sed_type : {"dnde", "flux", "eflux", "e2dnde", "likelihood"}, optional + SED type. + sed_type_init : {"dnde", "flux", "eflux", "e2dnde", "likelihood"}, optional + SED type of the initial data. + n_sigma : float, optional + Significance threshold above which upper limits should be used. + n_sigma_ul : float, optional + Significance value used for the upper limit computation. + sqrt_ts_threshold_ul : float, optional + Threshold on the square root of the likelihood value above which upper limits should be used. + n_sigma_sensitivity : float, optional + Sigma number for which the flux sensitivity is computed + target : `~gammapy.utils.TargetMetaData`, optional + General metadata information about the target. + creation : `~gammapy.utils.CreatorMetaData`, optional + The creation metadata. + optional : dict, optional + additional optional metadata. + + Note : these quantities are serialized in FITS header with the keywords stored in the dictionary FLUX_METADATA_FITS_KEYS + """ + + _tag: ClassVar[Literal["flux"]] = "flux" + sed_type: Optional[SEDTYPEEnum] = None + sed_type_init: Optional[SEDTYPEEnum] = None + n_sigma: Optional[float] = None + n_sigma_ul: Optional[float] = None + sqrt_ts_threshold_ul: Optional[float] = None + n_sigma_sensitivity: Optional[float] = None + target: Optional[TargetMetaData] = None + # TODO: add obs_ids: Optional[List[int]] and instrument: Optional[str], or a List[ObsInfoMetaData] + # TODO : add dataset_names: Optional[List[str]] + creation: Optional[CreatorMetaData] = CreatorMetaData() + optional: Optional[dict] = None
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/parameter.html b/docs/dev/_modules/gammapy/estimators/parameter.html new file mode 100644 index 00000000000..6fac882d5f8 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/parameter.html @@ -0,0 +1,908 @@ + + + + + + + + + + gammapy.estimators.parameter — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.parameter

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+from gammapy.datasets import Datasets
+from gammapy.datasets.actors import DatasetsActor
+from gammapy.modeling import Fit
+from .core import Estimator
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class ParameterEstimator(Estimator): + """Model parameter estimator. + + Estimates a model parameter for a group of datasets. Compute best fit value, + symmetric and delta(TS) for a given null value. Additionally asymmetric errors + as well as parameter upper limit and fit statistic profile can be estimated. + + Parameters + ---------- + n_sigma : int + Sigma to use for asymmetric error computation. Default is 1. + n_sigma_ul : int + Sigma to use for upper limit computation. Default is 2. + null_value : float + Which null value to use for the parameter. + selection_optional : list of str, optional + Which additional quantities to estimate. Available options are: + + * "all": all the optional steps are executed. + * "errn-errp": estimate asymmetric errors on parameter best fit value. + * "ul": estimate upper limits. + * "scan": estimate fit statistic profiles. + + Default is None so the optional steps are not executed. + fit : `~gammapy.modeling.Fit` + Fit instance specifying the backend and fit options. + reoptimize : bool + Re-optimize other free model parameters. Default is True. + + Examples + -------- + >>> from gammapy.datasets import SpectrumDatasetOnOff, Datasets + >>> from gammapy.modeling.models import SkyModel, PowerLawSpectralModel + >>> from gammapy.estimators import ParameterEstimator + >>> + >>> filename = "$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs23523.fits" + >>> dataset = SpectrumDatasetOnOff.read(filename) + >>> datasets = Datasets([dataset]) + >>> spectral_model = PowerLawSpectralModel(amplitude="3e-11 cm-2s-1TeV-1", index=2.7) + >>> + >>> model = SkyModel(spectral_model=spectral_model, name="Crab") + >>> model.spectral_model.amplitude.scan_n_values = 10 + >>> + >>> for dataset in datasets: + ... dataset.models = model + >>> + >>> estimator = ParameterEstimator(selection_optional="all") + >>> result = estimator.run(datasets, parameter="amplitude") + """ + + tag = "ParameterEstimator" + _available_selection_optional = ["errn-errp", "ul", "scan"] + + def __init__( + self, + n_sigma=1, + n_sigma_ul=2, + null_value=1e-150, + selection_optional=None, + fit=None, + reoptimize=True, + ): + self.n_sigma = n_sigma + self.n_sigma_ul = n_sigma_ul + self.null_value = null_value + self.selection_optional = selection_optional + + if fit is None: + fit = Fit() + + self.fit = fit + self.reoptimize = reoptimize + +
+[docs] + def estimate_best_fit(self, datasets, parameter): + """Estimate parameter asymmetric errors. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + parameter : `Parameter` + For which parameter to get the value. + + Returns + ------- + result : dict + Dictionary with the various parameter estimation values. Entries are: + + * parameter.name: best fit parameter value. + * "stat": best fit total stat. + * "success": boolean flag for fit success. + * parameter.name_err: covariance-based error estimate on parameter value. + """ + value, total_stat, success, error = np.nan, 0.0, False, np.nan + + if np.any(datasets.contributes_to_stat): + result = self.fit.run(datasets=datasets) + value, error = parameter.value, parameter.error + total_stat = result.optimize_result.total_stat + success = result.success + + return { + f"{parameter.name}": value, + "stat": total_stat, + "success": success, + f"{parameter.name}_err": error * self.n_sigma, + }
+ + +
+[docs] + def estimate_ts(self, datasets, parameter): + """Estimate parameter ts. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + parameter : `Parameter` + For which parameter to get the value. + + Returns + ------- + result : dict + Dictionary with the test statistic of the best fit value compared to the null hypothesis. Entries are: + + * "ts" : fit statistic difference with null hypothesis. + * "npred" : predicted number of counts per dataset. + * "stat_null" : total stat corresponding to the null hypothesis + """ + npred = self.estimate_npred(datasets=datasets) + + if not np.any(datasets.contributes_to_stat): + stat = np.nan + npred["npred"][...] = np.nan + else: + stat = datasets.stat_sum() + + with datasets.parameters.restore_status(): + # compute ts value + parameter.value = self.null_value + + if self.reoptimize: + parameter.frozen = True + _ = self.fit.optimize(datasets=datasets) + + ts = datasets.stat_sum() - stat + stat_null = datasets.stat_sum() + + return {"ts": ts, "npred": npred["npred"], "stat_null": stat_null}
+ + +
+[docs] + def estimate_errn_errp(self, datasets, parameter): + """Estimate parameter asymmetric errors. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + parameter : `Parameter` + For which parameter to get the value. + + Returns + ------- + result : dict + Dictionary with the parameter asymmetric errors. Entries are: + + * {parameter.name}_errp : positive error on parameter value. + * {parameter.name}_errn : negative error on parameter value. + """ + if not np.any(datasets.contributes_to_stat): + return { + f"{parameter.name}_errp": np.nan, + f"{parameter.name}_errn": np.nan, + } + + self.fit.optimize(datasets=datasets) + + res = self.fit.confidence( + datasets=datasets, + parameter=parameter, + sigma=self.n_sigma, + reoptimize=self.reoptimize, + ) + + return { + f"{parameter.name}_errp": res["errp"], + f"{parameter.name}_errn": res["errn"], + }
+ + +
+[docs] + def estimate_scan(self, datasets, parameter): + """Estimate parameter statistic scan. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + The datasets used to estimate the model parameter. + parameter : `~gammapy.modeling.Parameter` + For which parameter to get the value. + + Returns + ------- + result : dict + Dictionary with the parameter fit scan values. Entries are: + + * parameter.name_scan : parameter values scan. + * "stat_scan" : fit statistic values scan. + """ + scan_values = parameter.scan_values + + if not np.any(datasets.contributes_to_stat): + return { + f"{parameter.name}_scan": scan_values, + "stat_scan": scan_values * np.nan, + } + + self.fit.optimize(datasets=datasets) + + profile = self.fit.stat_profile( + datasets=datasets, parameter=parameter, reoptimize=self.reoptimize + ) + + return { + f"{parameter.name}_scan": scan_values, + "stat_scan": profile["stat_scan"], + }
+ + +
+[docs] + def estimate_ul(self, datasets, parameter): + """Estimate parameter ul. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + The datasets used to estimate the model parameter. + parameter : `~gammapy.modeling.Parameter` + For which parameter to get the value. + + Returns + ------- + result : dict + Dictionary with the parameter upper limits. Entries are: + + * parameter.name_ul : upper limit on parameter value. + """ + if not np.any(datasets.contributes_to_stat): + return {f"{parameter.name}_ul": np.nan} + + self.fit.optimize(datasets=datasets) + + res = self.fit.confidence( + datasets=datasets, + parameter=parameter, + sigma=self.n_sigma_ul, + reoptimize=self.reoptimize, + ) + return {f"{parameter.name}_ul": res["errp"] + parameter.value}
+ + +
+[docs] + @staticmethod + def estimate_counts(datasets): + """Estimate counts for the flux point. + + Parameters + ---------- + datasets : Datasets + Datasets. + + Returns + ------- + result : dict + Dictionary with an array with one entry per dataset with the sum of the + masked counts. + """ + counts = [] + + for dataset in datasets: + mask = dataset.mask + counts.append(dataset.counts.data[mask].sum()) + + return {"counts": np.array(counts, dtype=int), "datasets": datasets.names}
+ + +
+[docs] + @staticmethod + def estimate_npred(datasets): + """Estimate npred for the flux point. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + + Returns + ------- + result : dict + Dictionary with an array with one entry per dataset with the sum of the + masked npred. + """ + npred = [] + + for dataset in datasets: + mask = dataset.mask + npred.append(dataset.npred().data[mask].sum()) + + return {"npred": np.array(npred), "datasets": datasets.names}
+ + +
+[docs] + def run(self, datasets, parameter): + """Run the parameter estimator. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + The datasets used to estimate the model parameter. + parameter : `str` or `~gammapy.modeling.Parameter` + For which parameter to run the estimator. + + Returns + ------- + result : dict + Dictionary with the various parameter estimation values. + """ + if not isinstance(datasets, DatasetsActor): + datasets = Datasets(datasets) + parameter = datasets.parameters[parameter] + + with datasets.parameters.restore_status(): + + if not self.reoptimize: + datasets.parameters.freeze_all() + parameter.frozen = False + + result = self.estimate_best_fit(datasets, parameter) + result.update(self.estimate_ts(datasets, parameter)) + + if "errn-errp" in self.selection_optional: + result.update(self.estimate_errn_errp(datasets, parameter)) + + if "ul" in self.selection_optional: + result.update(self.estimate_ul(datasets, parameter)) + + if "scan" in self.selection_optional: + result.update(self.estimate_scan(datasets, parameter)) + + result.update(self.estimate_counts(datasets)) + return result
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/points/core.html b/docs/dev/_modules/gammapy/estimators/points/core.html new file mode 100644 index 00000000000..fbb1d51f32f --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/points/core.html @@ -0,0 +1,1431 @@ + + + + + + + + + + gammapy.estimators.points.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.points.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from copy import deepcopy
+import numpy as np
+from scipy import stats
+from scipy.interpolate import interp1d
+from scipy.optimize import minimize
+from astropy.io import fits
+from astropy.io.registry import IORegistryError
+from astropy.table import Table, vstack
+from astropy.time import Time
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from gammapy.data import GTI
+from gammapy.maps import Map, MapAxis, Maps, RegionNDMap, TimeMapAxis
+from gammapy.maps.axes import UNIT_STRING_FORMAT, flat_if_equal
+from gammapy.modeling.models import TemplateSpectralModel
+from gammapy.modeling.models.spectral import scale_plot_flux
+from gammapy.modeling.scipy import stat_profile_ul_scipy
+from gammapy.utils.interpolation import interpolate_profile
+from gammapy.utils.scripts import make_path
+from gammapy.utils.table import table_standardise_units_copy
+from gammapy.utils.time import time_ref_to_dict
+from ..map.core import DEFAULT_UNIT, FluxMaps
+
+__all__ = ["FluxPoints"]
+
+log = logging.getLogger(__name__)
+
+
+def squash_fluxpoints(flux_point, axis):
+    """Squash a `~FluxPoints` object into one point.
+
+    The log-likelihoods profiles in each bin are summed
+    to compute the resultant quantities. Stat profiles
+    must be present on the `~FluxPoints` object for
+    this method to work.
+    """
+    value_scan = flux_point.stat_scan.geom.axes["norm"].center
+    stat_scan = np.sum(flux_point.stat_scan.data, axis=0).ravel()
+    f = interp1d(value_scan, stat_scan, kind="quadratic", bounds_error=False)
+    f = interpolate_profile(value_scan, stat_scan)
+    minimizer = minimize(
+        f,
+        x0=value_scan[int(len(value_scan) / 2)],
+        bounds=[(value_scan[0], value_scan[-1])],
+        method="L-BFGS-B",
+    )
+
+    maps = Maps()
+    geom = flux_point.geom.to_image()
+    if axis.name != "energy":
+        geom = geom.to_cube([flux_point.geom.axes["energy"]])
+
+    maps["norm"] = Map.from_geom(geom, data=minimizer.x)
+    maps["norm_err"] = Map.from_geom(
+        geom, data=np.sqrt(minimizer.hess_inv.todense()).reshape(geom.data_shape)
+    )
+    maps["n_dof"] = Map.from_geom(geom, data=flux_point.geom.axes[axis.name].nbin)
+
+    if "norm_ul" in flux_point.available_quantities:
+        delta_ts = flux_point.meta.get("n_sigma_ul", 2) ** 2
+        ul = stat_profile_ul_scipy(value_scan, stat_scan, delta_ts=delta_ts)
+        maps["norm_ul"] = Map.from_geom(geom, data=ul.value)
+
+    maps["stat"] = Map.from_geom(geom, data=f(minimizer.x))
+
+    geom_scan = geom.to_cube([MapAxis.from_nodes(value_scan, name="norm")])
+    maps["stat_scan"] = Map.from_geom(
+        geom=geom_scan, data=stat_scan.reshape(geom_scan.data_shape)
+    )
+    try:
+        maps["stat_null"] = Map.from_geom(geom, data=np.sum(flux_point.stat_null.data))
+        maps["ts"] = maps["stat_null"] - maps["stat"]
+    except AttributeError:
+        log.info(
+            "Stat null info not present on original FluxPoints object. TS not computed"
+        )
+
+    maps["success"] = Map.from_geom(geom=geom, data=minimizer.success, dtype=bool)
+
+    combined_fp = FluxPoints.from_maps(
+        maps=maps,
+        sed_type=flux_point.sed_type_init,
+        reference_model=flux_point.reference_model,
+        gti=flux_point.gti,
+        meta=flux_point.meta,
+    )
+    return combined_fp
+
+
+
+[docs] +class FluxPoints(FluxMaps): + """Flux points container. + + The supported formats are described here: :ref:`gadf:flux-points`. + + In summary, the following formats and minimum required columns are: + + * Format ``dnde``: columns ``e_ref`` and ``dnde`` + * Format ``e2dnde``: columns ``e_ref``, ``e2dnde`` + * Format ``flux``: columns ``e_min``, ``e_max``, ``flux`` + * Format ``eflux``: columns ``e_min``, ``e_max``, ``eflux`` + + Parameters + ---------- + table : `~astropy.table.Table` + Table with flux point data. + + Attributes + ---------- + table : `~astropy.table.Table` + Table with flux point data. + + Examples + -------- + The `FluxPoints` object is most easily created by reading a file with + flux points given in one of the formats documented above:: + + >>> from gammapy.estimators import FluxPoints + >>> filename = '$GAMMAPY_DATA/hawc_crab/HAWC19_flux_points.fits' + >>> flux_points = FluxPoints.read(filename) + >>> flux_points.plot() #doctest: +SKIP + + An instance of `FluxPoints` can also be created by passing an instance of + `astropy.table.Table`, which contains the required columns, such as `'e_ref'` + and `'dnde'`. The corresponding `sed_type` has to be defined in the meta data + of the table:: + + >>> import numpy as np + >>> from astropy import units as u + >>> from astropy.table import Table + >>> from gammapy.estimators import FluxPoints + >>> from gammapy.modeling.models import PowerLawSpectralModel + >>> table = Table() + >>> pwl = PowerLawSpectralModel() + >>> e_ref = np.geomspace(1, 100, 7) * u.TeV + >>> table["e_ref"] = e_ref + >>> table["dnde"] = pwl(e_ref) + >>> table["dnde_err"] = pwl.evaluate_error(e_ref)[0] + >>> table.meta["SED_TYPE"] = "dnde" + >>> flux_points = FluxPoints.from_table(table) + >>> flux_points.plot(sed_type="flux") #doctest: +SKIP + + If you have flux points in a different data format, the format can be changed + by renaming the table columns and adding meta data:: + + + >>> from astropy import units as u + >>> from astropy.table import Table + >>> from gammapy.estimators import FluxPoints + >>> from gammapy.utils.scripts import make_path + + >>> filename = make_path('$GAMMAPY_DATA/tests/spectrum/flux_points/flux_points_ctb_37b.txt') + >>> table = Table.read(filename ,format='ascii.csv', delimiter=' ', comment='#') + >>> table.rename_column('Differential_Flux', 'dnde') + >>> table['dnde'].unit = 'cm-2 s-1 TeV-1' + + >>> table.rename_column('lower_error', 'dnde_errn') + >>> table['dnde_errn'].unit = 'cm-2 s-1 TeV-1' + + >>> table.rename_column('upper_error', 'dnde_errp') + >>> table['dnde_errp'].unit = 'cm-2 s-1 TeV-1' + + >>> table.rename_column('E', 'e_ref') + >>> table['e_ref'].unit = 'TeV' + + >>> flux_points = FluxPoints.from_table(table, sed_type="dnde") + >>> flux_points.plot(sed_type="e2dnde") #doctest: +SKIP + + + Note: In order to reproduce the example you need the tests datasets folder. + You may download it with the command + ``gammapy download datasets --tests --out $GAMMAPY_DATA`` + """ + +
+[docs] + @classmethod + def read( + cls, + filename, + sed_type=None, + format=None, + reference_model=None, + checksum=False, + table_format="ascii.ecsv", + **kwargs, + ): + """Read precomputed flux points. + + Parameters + ---------- + filename : str + Filename. + sed_type : {"dnde", "flux", "eflux", "e2dnde", "likelihood"} + SED type. + format : {"gadf-sed", "lightcurve", "profile"}, optional + Format string. If None, the format is extracted from the input. + Default is None. + reference_model : `SpectralModel` + Reference spectral model. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + table_format : str + Format string for the ~astropy.Table object. Default is "ascii.ecsv" + **kwargs : dict, optional + Keyword arguments passed to `astropy.table.Table.read`. + + Returns + ------- + flux_points : `FluxPoints` + Flux points. + """ + filename = make_path(filename) + gti = None + try: + table = Table.read(filename, format=table_format, **kwargs) + except (IORegistryError, UnicodeDecodeError): + with fits.open(filename, checksum=checksum) as hdulist: + if "FLUXPOINTS" in hdulist: + fp = hdulist["FLUXPOINTS"] + else: + fp = hdulist[""] # to handle older files + table = Table.read(fp) + if "GTI" in hdulist: + gti = GTI.from_table_hdu(hdulist["GTI"]) + + return cls.from_table( + table=table, + sed_type=sed_type, + reference_model=reference_model, + format=format, + gti=gti, + )
+ + +
+[docs] + def write( + self, filename, sed_type=None, format=None, overwrite=False, checksum=False + ): + """Write flux points. + + Parameters + ---------- + filename : str + Filename. + sed_type : {"dnde", "flux", "eflux", "e2dnde", "likelihood"}, optional + SED type. Default is None. + format : {"gadf-sed", "lightcurve", "binned-time-series", "profile"}, optional + Format specification. The following formats are supported: + + * "gadf-sed": format for SED flux points see :ref:`gadf:flux-points` + for details + * "lightcurve": Gammapy internal format to store energy dependent + lightcurves. Basically a generalisation of the "gadf" format, but + currently there is no detailed documentation available. + * "binned-time-series": table format support by Astropy's + `~astropy.timeseries.BinnedTimeSeries`. + * "profile": Gammapy internal format to store energy dependent + flux profiles. Basically a generalisation of the "gadf" format, but + currently there is no detailed documentation available. + + If None, the format will be guessed by looking at the axes that are present in the object. + Default is None. + + overwrite : bool, optional + Overwrite existing file. Default is False. + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + filename = make_path(filename) + + if sed_type is None: + sed_type = self.sed_type_init + table = self.to_table(sed_type=sed_type, format=format) + + if ".fits" not in filename.suffixes: + table.write(filename, overwrite=overwrite) + return + + primary_hdu = fits.PrimaryHDU() + hdu_evt = fits.BinTableHDU(table, name="FLUXPOINTS") + hdu_all = fits.HDUList([primary_hdu, hdu_evt]) + if self.gti: + hdu_all.append(self.gti.to_table_hdu()) + + hdu_all.writeto(filename, overwrite=overwrite, checksum=checksum)
+ + + @staticmethod + def _convert_loglike_columns(table): + # TODO: check sign and factor 2 here + # https://github.com/gammapy/gammapy/pull/2546#issuecomment-554274318 + # The idea below is to support the format here: + # https://gamma-astro-data-formats.readthedocs.io/en/latest/spectra/flux_points/index.html#likelihood-columns + # but internally to go to the uniform "stat" + + if "loglike" in table.colnames and "stat" not in table.colnames: + table["stat"] = 2 * table["loglike"] + + if "loglike_null" in table.colnames and "stat_null" not in table.colnames: + table["stat_null"] = 2 * table["loglike_null"] + + if "dloglike_scan" in table.colnames and "stat_scan" not in table.colnames: + table["stat_scan"] = 2 * table["dloglike_scan"] + + return table + + @staticmethod + def _table_guess_format(table): + """Format of the table to be transformed to FluxPoints.""" + names = table.colnames + if "time_min" in names: + return "lightcurve" + elif "x_min" in names: + return "profile" + else: + return "gadf-sed" + +
+[docs] + @classmethod + def from_table( + cls, table, sed_type=None, format=None, reference_model=None, gti=None + ): + """Create flux points from a table. The table column names must be consistent with the sed_type. + + Parameters + ---------- + table : `~astropy.table.Table` + Table. + sed_type : {"dnde", "flux", "eflux", "e2dnde", "likelihood"}, optional + SED type. Default is None. + format : {"gadf-sed", "lightcurve", "profile"}, optional + Table format. If None, it is extracted from the table column content. Default is None. + reference_model : `SpectralModel`, optional + Reference spectral model. Default is None. + gti : `GTI`, optional + Good time intervals. Default is None. + + Returns + ------- + flux_points : `FluxPoints` + Flux points. + """ + table = table_standardise_units_copy(table) + + if format is None: + format = cls._table_guess_format(table) + log.info("Inferred format: " + format) + + if sed_type is None: + sed_type = table.meta.get("SED_TYPE", None) + + if sed_type is None: + sed_type = cls._guess_sed_type(table.colnames) + + if sed_type is None: + raise ValueError("Specifying the SED type is required") + + if sed_type == "likelihood": + table = cls._convert_loglike_columns(table) + if reference_model is None: + reference_model = TemplateSpectralModel( + energy=flat_if_equal(table["e_ref"].quantity), + values=flat_if_equal(table["ref_dnde"].quantity), + ) + + maps = Maps() + table.meta.setdefault("SED_TYPE", sed_type) + + for name in cls.all_quantities(sed_type=sed_type): + if name in table.colnames: + maps[name] = RegionNDMap.from_table( + table=table, colname=name, format=format + ) + + meta = cls._get_meta_gadf(table) + return cls.from_maps( + maps=maps, + reference_model=reference_model, + meta=meta, + sed_type=sed_type, + gti=gti, + )
+ + + @staticmethod + def _get_meta_gadf(table): + meta = {} + meta.update(table.meta) + conf_ul = table.meta.get("UL_CONF") + if conf_ul: + n_sigma_ul = np.round(stats.norm.isf(0.5 * (1 - conf_ul)), 1) + meta["n_sigma_ul"] = n_sigma_ul + meta["sed_type_init"] = table.meta.get("SED_TYPE") + return meta + + @staticmethod + def _format_table(table): + """Format table.""" + for column in table.colnames: + if column.startswith(("dnde", "eflux", "flux", "e2dnde", "ref")): + table[column].format = ".3e" + elif column.startswith( + ("e_min", "e_max", "e_ref", "sqrt_ts", "norm", "ts", "stat") + ): + table[column].format = ".3f" + + return table + + def _guess_format(self): + """Format of the FluxPoints object.""" + names = self.geom.axes.names + if "time" in names: + return "lightcurve" + elif "projected-distance" in names: + return "profile" + else: + return "gadf-sed" + +
+[docs] + def to_table(self, sed_type=None, format=None, formatted=False): + """Create table for a given SED type. + + Parameters + ---------- + sed_type : {"likelihood", "dnde", "e2dnde", "flux", "eflux"} + SED type to convert to. Default is `likelihood`. + format : {"gadf-sed", "lightcurve", "binned-time-series", "profile"}, optional + Format specification. The following formats are supported: + + * "gadf-sed": format for SED flux points see :ref:`gadf:flux-points` + for details + * "lightcurve": Gammapy internal format to store energy dependent + lightcurves. Basically a generalisation of the "gadf" format, but + currently there is no detailed documentation available. + * "binned-time-series": table format support by Astropy's + `~astropy.timeseries.BinnedTimeSeries`. + * "profile": Gammapy internal format to store energy dependent + flux profiles. Basically a generalisation of the "gadf" format, but + currently there is no detailed documentation available. + + If None, the format will be guessed by looking at the axes that are present in the object. + Default is None. + formatted : bool + Formatted version with column formats applied. Numerical columns are + formatted to .3f and .3e respectively. Default is False. + + Returns + ------- + table : `~astropy.table.Table` + Flux points table. + + Examples + -------- + This is how to read and plot example flux points: + + >>> from gammapy.estimators import FluxPoints + >>> fp = FluxPoints.read("$GAMMAPY_DATA/hawc_crab/HAWC19_flux_points.fits") + >>> table = fp.to_table(sed_type="flux", formatted=True) + >>> print(table[:2]) + e_ref e_min e_max flux flux_err flux_ul ts sqrt_ts is_ul + TeV TeV TeV 1 / (s cm2) 1 / (s cm2) 1 / (s cm2) + ----- ----- ----- ----------- ----------- ----------- -------- ------- ----- + 1.334 1.000 1.780 1.423e-11 3.135e-13 nan 2734.000 52.288 False + 2.372 1.780 3.160 5.780e-12 1.082e-13 nan 4112.000 64.125 False + """ + if sed_type is None: + sed_type = self.sed_type_init + + if format is None: + format = self._guess_format() + log.info("Inferred format: " + format) + + if format == "gadf-sed": + # TODO: what to do with GTI info? + if not self.geom.axes.names == ["energy"]: + raise ValueError( + "Only flux points with a single energy axis " + "can be converted to 'gadf-sed'" + ) + + idx = (Ellipsis, 0, 0) + table = self.energy_axis.to_table(format="gadf-sed") + table.meta["SED_TYPE"] = sed_type + + if not self.is_convertible_to_flux_sed_type: + table.remove_columns(["e_min", "e_max"]) + + if self.n_sigma_ul: + table.meta["UL_CONF"] = np.round( + 1 - 2 * stats.norm.sf(self.n_sigma_ul), 7 + ) + + if sed_type == "likelihood": + table["ref_dnde"] = self.dnde_ref[idx] + table["ref_flux"] = self.flux_ref[idx] + table["ref_eflux"] = self.eflux_ref[idx] + + for quantity in self.all_quantities(sed_type=sed_type): + data = getattr(self, quantity, None) + if data: + table[quantity] = data.quantity[idx] + + if self.has_stat_profiles: + norm_axis = self.stat_scan.geom.axes["norm"] + table["norm_scan"] = norm_axis.center.reshape((1, -1)) + table["stat"] = self.stat.data[idx] + table["stat_scan"] = self.stat_scan.data[idx] + + table["is_ul"] = self.is_ul.data[idx] + if not self.has_ul: + table.remove_columns("is_ul") + + elif format == "lightcurve": + time_axis = self.geom.axes["time"] + + tables = [] + for idx, (time_min, time_max) in enumerate(time_axis.iter_by_edges): + table_flat = Table() + table_flat["time_min"] = [time_min.mjd] + table_flat["time_max"] = [time_max.mjd] + + fp = self.slice_by_idx(slices={"time": idx}) + table = fp.to_table(sed_type=sed_type, format="gadf-sed") + + for column in table.columns: + table_flat[column] = table[column][np.newaxis] + + tables.append(table_flat) + + table = vstack(tables) + + # serialize with reference time set to mjd=0.0 + ref_time = Time(0.0, format="mjd", scale=time_axis.reference_time.scale) + table.meta.update(time_ref_to_dict(ref_time, scale=ref_time.scale)) + table.meta["TIMEUNIT"] = "d" + + elif format == "binned-time-series": + message = ( + "Format 'binned-time-series' support a single time axis " + f"only. Got {self.geom.axes.names}" + ) + + if not self.geom.axes.is_unidimensional: + raise ValueError(message) + + axis = self.geom.axes.primary_axis + + if not isinstance(axis, TimeMapAxis): + raise ValueError(message) + + table = Table() + table["time_bin_start"] = axis.time_min + table["time_bin_size"] = axis.time_delta + + for quantity in self.all_quantities(sed_type=sed_type): + data = getattr(self, quantity, None) + if data: + table[quantity] = data.quantity.squeeze() + elif format == "profile": + x_axis = self.geom.axes["projected-distance"] + + tables = [] + for idx, (x_min, x_max) in enumerate(x_axis.iter_by_edges): + table_flat = Table() + table_flat["x_min"] = [x_min] + table_flat["x_max"] = [x_max] + table_flat["x_ref"] = [(x_max + x_min) / 2] + + fp = self.slice_by_idx(slices={"projected-distance": idx}) + table = fp.to_table(sed_type=sed_type, format="gadf-sed") + + for column in table.columns: + table_flat[column] = table[column][np.newaxis] + + tables.append(table_flat) + + table = vstack(tables) + + else: + raise ValueError(f"Not a supported format {format}") + + if formatted: + table = self._format_table(table=table) + + return table
+ + + @staticmethod + def _energy_ref_lafferty(model, energy_min, energy_max): + """Helper for `to_sed_type`. + + Compute energy_ref that the value at energy_ref corresponds + to the mean value between energy_min and energy_max. + """ + flux = model.integral(energy_min, energy_max) + dnde_mean = flux / (energy_max - energy_min) + return model.inverse(dnde_mean) + + def _plot_get_flux_err(self, sed_type=None): + """Compute flux error for given SED type.""" + y_errn, y_errp = None, None + + if "norm_err" in self.available_quantities: + # symmetric error + y_errn = getattr(self, sed_type + "_err") + y_errp = y_errn.copy() + + if "norm_errp" in self.available_quantities: + y_errn = getattr(self, sed_type + "_errn") + y_errp = getattr(self, sed_type + "_errp") + + return y_errn, y_errp + +
+[docs] + def plot(self, ax=None, sed_type=None, energy_power=0, time_format="iso", **kwargs): + """Plot flux points. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axis object to plot on. Default is None. + sed_type : {"dnde", "flux", "eflux", "e2dnde"}, optional + SED type. Default is None. + energy_power : float, optional + Power of energy to multiply flux axis with. Default is 0. + time_format : {"iso", "mjd"} + Used time format is a time axis is present. Default is "iso". + **kwargs : dict, optional + Keyword arguments passed to `~RegionNDMap.plot`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axis object. + """ + if sed_type is None: + sed_type = self.sed_type_plot_default + + if not self.norm.geom.is_region: + raise ValueError("Plotting only supported for region based flux points") + + if ax is None: + ax = plt.gca() + + flux_unit = DEFAULT_UNIT[sed_type] + + flux = getattr(self, sed_type) + + # get errors and ul + y_errn, y_errp = self._plot_get_flux_err(sed_type=sed_type) + is_ul = self.is_ul.data + + if self.has_ul and y_errn and is_ul.any(): + flux_ul = getattr(self, sed_type + "_ul").quantity + y_errn.data[is_ul] = np.clip( + 0.5 * flux_ul[is_ul].to_value(y_errn.unit), 0, np.inf + ) + y_errp.data[is_ul] = 0 + flux.data[is_ul] = flux_ul[is_ul].to_value(flux.unit) + kwargs.setdefault("uplims", is_ul) + + # set flux points plotting defaults + if y_errp and y_errn: + y_errp = np.clip( + scale_plot_flux(y_errp, energy_power=energy_power).quantity, 0, np.inf + ) + y_errn = np.clip( + scale_plot_flux(y_errn, energy_power=energy_power).quantity, 0, np.inf + ) + kwargs.setdefault("yerr", (y_errn, y_errp)) + else: + kwargs.setdefault("yerr", None) + + flux = scale_plot_flux(flux=flux.to_unit(flux_unit), energy_power=energy_power) + if "time" in flux.geom.axes_names: + flux.geom.axes["time"].time_format = time_format + ax = flux.plot(ax=ax, **kwargs) + else: + ax = flux.plot(ax=ax, **kwargs) + ax.set_xlabel(f"Energy [{ax.xaxis.units.to_string(UNIT_STRING_FORMAT)}]") + ax.set_xscale("log", nonpositive="clip") + self._plot_format_yax(ax=ax, energy_power=energy_power, sed_type=sed_type) + + if len(flux.geom.axes) > 1: + ax.legend() + return ax
+ + + @staticmethod + def _plot_format_yax(ax, energy_power, sed_type): + if energy_power > 0: + ax.set_ylabel( + f"e{energy_power} * {sed_type} [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + else: + ax.set_ylabel( + f"{sed_type} [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + + ax.set_yscale("log", nonpositive="clip") + +
+[docs] + def plot_ts_profiles( + self, + ax=None, + sed_type=None, + add_cbar=True, + **kwargs, + ): + """Plot fit statistic SED profiles as a density plot. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axis object to plot on. Default is None. + sed_type : {"dnde", "flux", "eflux", "e2dnde"}, optional + SED type. Default is None. + add_cbar : bool, optional + Whether to add a colorbar to the plot. Default is True. + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axis object. + """ + if ax is None: + ax = plt.gca() + + if sed_type is None: + sed_type = self.sed_type_plot_default + + if not self.norm.geom.is_region: + raise ValueError("Plotting only supported for region based flux points") + + if not self.geom.axes.is_unidimensional: + raise ValueError( + "Profile plotting is only supported for unidimensional maps" + ) + + axis = self.geom.axes.primary_axis + + if isinstance(axis, TimeMapAxis) and not axis.is_contiguous: + axis = axis.to_contiguous() + + if ax.yaxis.units is None: + yunits = DEFAULT_UNIT[sed_type] + else: + yunits = ax.yaxis.units + + ax.yaxis.set_units(yunits) + + flux_ref = getattr(self, sed_type + "_ref").to(yunits) + + ts = self.ts_scan + + norm_min, norm_max = ts.geom.axes["norm"].bounds.to_value("") + + flux = MapAxis.from_bounds( + norm_min * flux_ref.value.min(), + norm_max * flux_ref.value.max(), + nbin=500, + interp=axis.interp, + unit=flux_ref.unit, + ) + + norm = flux.center / flux_ref.reshape((-1, 1)) + + coords = ts.geom.get_coord() + coords["norm"] = norm + coords[axis.name] = axis.center.reshape((-1, 1)) + + z = ts.interp_by_coord(coords, values_scale="stat-profile") + + kwargs.setdefault("vmax", 0) + kwargs.setdefault("vmin", -4) + kwargs.setdefault("zorder", 0) + kwargs.setdefault("cmap", "Blues") + kwargs.setdefault("linewidths", 0) + kwargs.setdefault("shading", "auto") + + # clipped values are set to NaN so that they appear white on the plot + z[-z < kwargs["vmin"]] = np.nan + + with quantity_support(): + caxes = ax.pcolormesh(axis.as_plot_edges, flux.edges, -z.T, **kwargs) + + axis.format_plot_xaxis(ax=ax) + + ax.set_ylabel(f"{sed_type} [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]") + ax.set_yscale("log") + + if add_cbar: + label = "Fit statistic difference" + ax.figure.colorbar(caxes, ax=ax, label=label) + + return ax
+ + +
+[docs] + def recompute_ul(self, n_sigma_ul=2, **kwargs): + """Recompute upper limits corresponding to the given value. + + The pre-computed statistic profiles must exist for the re-computation. + + Parameters + ---------- + n_sigma_ul : int + Number of sigma to use for upper limit computation. Default is 2. + **kwargs : dict, optional + Keyword arguments passed to `~scipy.optimize.brentq`. + + Returns + ------- + flux_points : `~gammapy.estimators.FluxPoints` + A new FluxPoints object with modified upper limits. + + Examples + -------- + >>> from gammapy.estimators import FluxPoints + >>> filename = '$GAMMAPY_DATA/tests/spectrum/flux_points/binlike.fits' + >>> flux_points = FluxPoints.read(filename) + >>> flux_points_recomputed = flux_points.recompute_ul(n_sigma_ul=3) + >>> print(flux_points.meta["n_sigma_ul"], flux_points.flux_ul.data[0]) + 2.0 [[3.95451985e-09]] + >>> print(flux_points_recomputed.meta["n_sigma_ul"], flux_points_recomputed.flux_ul.data[0]) + 3 [[6.22245374e-09]] + """ + if not self.has_stat_profiles: + raise ValueError( + "Stat profiles not present. Upper limit computation is not possible" + ) + + delta_ts = n_sigma_ul**2 + + flux_points = deepcopy(self) + + value_scan = self.stat_scan.geom.axes["norm"].center + shape_axes = self.stat_scan.geom._shape[slice(3, None)][::-1] + for idx in np.ndindex(shape_axes): + stat_scan = np.abs( + self.stat_scan.data[idx].squeeze() - self.stat.data[idx].squeeze() + ) + flux_points.norm_ul.data[idx] = stat_profile_ul_scipy( + value_scan, stat_scan, delta_ts=delta_ts, **kwargs + ) + flux_points.meta["n_sigma_ul"] = n_sigma_ul + return flux_points
+ + +
+[docs] + def resample_axis(self, axis_new): + """Rebin the flux point object along the new axis. + + The log-likelihoods profiles in each bin are summed + to compute the resultant quantities. + Stat profiles must be present on the `~gammapy.estimators.FluxPoints` object for + this method to work. + + For now, works only for flat `~gammapy.estimators.FluxPoints`. + + Parameters + ---------- + axis_new : `MapAxis` or `TimeMapAxis` + The new axis to resample along + + Returns + ------- + flux_points : `~gammapy.estimators.FluxPoints` + A new FluxPoints object with modified axis. + """ + if not self.has_stat_profiles: + raise ValueError("Stat profiles not present, rebinning is not possible") + + fluxpoints = [] + for edge_min, edge_max in zip(axis_new.edges_min, axis_new.edges_max): + if isinstance(axis_new, TimeMapAxis): + edge_min = edge_min + axis_new.reference_time + edge_max = edge_max + axis_new.reference_time + fp = self.slice_by_coord({axis_new.name: slice(edge_min, edge_max)}) + fp_new = squash_fluxpoints(fp, axis_new) + fluxpoints.append(fp_new) + + return self.__class__.from_stack(fluxpoints, axis=axis_new)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/points/lightcurve.html b/docs/dev/_modules/gammapy/estimators/points/lightcurve.html new file mode 100644 index 00000000000..98f087ab8d5 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/points/lightcurve.html @@ -0,0 +1,770 @@ + + + + + + + + + + gammapy.estimators.points.lightcurve — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.points.lightcurve

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from itertools import repeat
+import numpy as np
+import astropy.units as u
+import gammapy.utils.parallel as parallel
+from gammapy.data import GTI
+from gammapy.datasets import Datasets
+from gammapy.datasets.actors import DatasetsActor
+from gammapy.maps import LabelMapAxis, Map, TimeMapAxis
+from gammapy.utils.pbar import progress_bar
+from .core import FluxPoints
+from .sed import FluxPointsEstimator
+
+__all__ = ["LightCurveEstimator"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class LightCurveEstimator(FluxPointsEstimator): + """Estimate light curve. + + The estimator will apply flux point estimation on the source model component to datasets + in each of the provided time intervals. The normalisation, `norm`, is the only + parameter of the source model left free to vary. Other model components + can be left free to vary with the reoptimize option. + + If no time intervals are provided, the estimator will use the time intervals + defined by the datasets GTIs. + + To be included in the estimation, the dataset must have their GTI fully + overlapping a time interval. + + Time intervals without any dataset GTI fully overlapping will be dropped. They will not + be stored in the final lightcurve `FluxPoints` object. + + Parameters + ---------- + time_intervals : list of `astropy.time.Time` + Start and stop time for each interval to compute the LC. + source : str or int + For which source in the model to compute the flux points. Default is 0. + atol : `~astropy.units.Quantity` + Tolerance value for time comparison with different scale. Default 1e-6 sec. + n_sigma : int + Number of sigma to use for asymmetric error computation. Default is 1. + n_sigma_ul : int + Number of sigma to use for upper limit computation. Default is 2. + selection_optional : list of str, optional + Which steps to execute. Available options are: + + * "all": all the optional steps are executed. + * "errn-errp": estimate asymmetric errors. + * "ul": estimate upper limits. + * "scan": estimate fit statistic profiles. + + Default is None so the optional steps are not executed. + energy_edges : list of `~astropy.units.Quantity`, optional + Edges of the lightcurve energy bins. The resulting bin edges won't be exactly equal to the input ones, + but rather the closest values to the energy axis edges of the parent dataset. + Default is None: apply the estimator in each energy bin of the parent dataset. + For further explanation see :ref:`estimators`. + fit : `Fit` + Fit instance specifying the backend and fit options. + reoptimize : bool + If True the free parameters of the other models are fitted in each bin independently, + together with the norm of the source of interest + (but the other parameters of the source of interest are kept frozen). + If False only the norm of the source of interest if fitted, + and all other parameters are frozen at their current values. + n_jobs : int + Number of processes used in parallel for the computation. Default is one, + unless `~gammapy.utils.parallel.N_JOBS_DEFAULT` was modified. The number + of jobs is limited to the number of physical CPUs. + parallel_backend : {"multiprocessing", "ray"} + Which backend to use for multiprocessing. Defaults to `~gammapy.utils.parallel.BACKEND_DEFAULT`. + norm : ~gammapy.modeling.Parameter` or dict + Norm parameter used for the fit + Default is None and a new parameter is created automatically, + with value=1, name="norm", scan_min=0.2, scan_max=5, and scan_n_values = 11. + By default the min and max are not set and derived from the source model, + unless the source model does not have one and only one norm parameter. + If a dict is given the entries should be a subset of + `~gammapy.modeling.Parameter` arguments. + + Examples + -------- + For a usage example see :doc:`/tutorials/analysis-time/light_curve` tutorial. + + """ + + tag = "LightCurveEstimator" + + def __init__(self, time_intervals=None, atol="1e-6 s", **kwargs): + self.time_intervals = time_intervals + self.atol = u.Quantity(atol) + + super().__init__(**kwargs) + +
+[docs] + def run(self, datasets): + """Run light curve extraction. + + Normalize integral and energy flux between emin and emax. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + datasets : list of `~gammapy.datasets.SpectrumDataset` or `~gammapy.datasets.MapDataset` + Spectrum or Map datasets. + + Returns + ------- + lightcurve : `~gammapy.estimators.FluxPoints` + Light curve flux points. + """ + if not isinstance(datasets, DatasetsActor): + datasets = Datasets(datasets) + + if self.time_intervals is None: + gti = datasets.gti + else: + gti = GTI.from_time_intervals(self.time_intervals) + + gti = gti.union(overlap_ok=False, merge_equal=False) + + rows = [] + valid_intervals = [] + parallel_datasets = [] + dataset_names = datasets.names + for t_min, t_max in progress_bar( + gti.time_intervals, desc="Time intervals selection" + ): + datasets_to_fit = datasets.select_time( + time_min=t_min, time_max=t_max, atol=self.atol + ) + + if len(datasets_to_fit) == 0: + log.info( + f"No Dataset for the time interval {t_min} to {t_max}. Skipping interval." + ) + continue + + valid_intervals.append([t_min, t_max]) + + if self.n_jobs == 1: + fp = self.estimate_time_bin_flux(datasets_to_fit, dataset_names) + rows.append(fp) + else: + parallel_datasets.append(datasets_to_fit) + + if self.n_jobs > 1: + self._update_child_jobs() + rows = parallel.run_multiprocessing( + self.estimate_time_bin_flux, + zip( + parallel_datasets, + repeat(dataset_names), + ), + backend=self.parallel_backend, + pool_kwargs=dict(processes=self.n_jobs), + task_name="Time intervals", + ) + + if len(rows) == 0: + raise ValueError("LightCurveEstimator: No datasets in time intervals") + + gti = GTI.from_time_intervals(valid_intervals) + axis = TimeMapAxis.from_gti(gti=gti) + return FluxPoints.from_stack( + maps=rows, + axis=axis, + )
+ + +
+[docs] + @staticmethod + def expand_map(m, dataset_names): + """Expand map in dataset axis. + + Parameters + ---------- + map : `Map` + Map to expand. + dataset_names : list of str + Dataset names. + + Returns + ------- + map : `Map` + Expanded map. + """ + label_axis = LabelMapAxis(labels=dataset_names, name="dataset") + geom = m.geom.replace_axis(axis=label_axis) + result = Map.from_geom(geom, data=np.nan) + + coords = m.geom.get_coord(sparse=True) + result.set_by_coord(coords, vals=m.data) + return result
+ + +
+[docs] + def estimate_time_bin_flux(self, datasets, dataset_names=None): + """Estimate flux point for a single energy group. + + Parameters + ---------- + datasets : `~gammapy.modeling.Datasets` + List of dataset objects. + + Returns + ------- + result : `FluxPoints` + Resulting flux points. + """ + estimator = self.copy() + estimator.n_jobs = self._n_child_jobs + fp = estimator._run_flux_points(datasets) + + if dataset_names: + for name in ["counts", "npred", "npred_excess"]: + fp._data[name] = self.expand_map( + fp._data[name], dataset_names=dataset_names + ) + return fp
+ + + def _run_flux_points(self, datasets): + return super().run(datasets)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/points/profile.html b/docs/dev/_modules/gammapy/estimators/points/profile.html new file mode 100644 index 00000000000..8a2c63a54a4 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/points/profile.html @@ -0,0 +1,727 @@ + + + + + + + + + + gammapy.estimators.points.profile — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.points.profile

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Tools to create profiles (i.e. 1D "slices" from 2D images)."""
+
+from itertools import repeat
+import numpy as np
+from astropy import units as u
+from regions import CircleAnnulusSkyRegion
+import gammapy.utils.parallel as parallel
+from gammapy.datasets import Datasets
+from gammapy.maps import MapAxis
+from gammapy.modeling.models import PowerLawSpectralModel, SkyModel
+from .core import FluxPoints
+from .sed import FluxPointsEstimator
+from gammapy.utils.deprecation import deprecated_renamed_argument
+
+__all__ = ["FluxProfileEstimator"]
+
+
+
+[docs] +class FluxProfileEstimator(FluxPointsEstimator): + """Estimate flux profiles. + + Parameters + ---------- + regions : list of `~regions.SkyRegion` + Regions to use. + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + Spectral model to compute the fluxes or brightness. + Default is power-law with spectral index of 2. + n_jobs : int, optional + Number of processes used in parallel for the computation. Default is one, + unless `~gammapy.utils.parallel.N_JOBS_DEFAULT` was modified. The number + of jobs is limited to the number of physical CPUs. + parallel_backend : {"multiprocessing", "ray"}, optional + Which backend to use for multiprocessing. + Defaults to `~gammapy.utils.parallel.BACKEND_DEFAULT`. + **kwargs : dict, optional + Keywords forwarded to the `FluxPointsEstimator` (see documentation + there for further description of valid keywords). + + Examples + -------- + This example shows how to compute a counts profile for the Fermi galactic + center region:: + + >>> from astropy import units as u + >>> from astropy.coordinates import SkyCoord + >>> from gammapy.data import GTI + >>> from gammapy.estimators import FluxProfileEstimator + >>> from gammapy.utils.regions import make_orthogonal_rectangle_sky_regions + >>> from gammapy.datasets import MapDataset + >>> from gammapy.maps import RegionGeom + + >>> # load example data + >>> filename = "$GAMMAPY_DATA/fermi-3fhl-gc/fermi-3fhl-gc.fits.gz" + >>> dataset = MapDataset.read(filename, name="fermi-dataset") + + >>> # configuration + >>> dataset.gti = GTI.create("0s", "1e7s", "2010-01-01") + + >>> # creation of the boxes and axis + >>> start_pos = SkyCoord("-1d", "0d", frame='galactic') + >>> end_pos = SkyCoord("1d", "0d", frame='galactic') + + >>> regions = make_orthogonal_rectangle_sky_regions( + ... start_pos=start_pos, + ... end_pos=end_pos, + ... wcs=dataset.counts.geom.wcs, + ... height=2 * u.deg, + ... nbin=21 + ... ) + + >>> # set up profile estimator and run + >>> prof_maker = FluxProfileEstimator(regions=regions, energy_edges=[10, 2000] * u.GeV) + >>> fermi_prof = prof_maker.run(dataset) + >>> print(fermi_prof) + FluxPoints + ---------- + <BLANKLINE> + geom : RegionGeom + axes : ['lon', 'lat', 'energy', 'projected-distance'] + shape : (1, 1, 1, 21) + quantities : ['norm', 'norm_err', 'ts', 'npred', 'npred_excess', 'stat', 'stat_null', 'counts', 'success'] + ref. model : pl + n_sigma : 1 + n_sigma_ul : 2 + sqrt_ts_threshold_ul : 2 + sed type init : likelihood + + """ + + tag = "FluxProfileEstimator" + + @deprecated_renamed_argument("spectrum", "spectral_model", "v1.3") + def __init__(self, regions, spectral_model=None, **kwargs): + if len(regions) <= 1: + raise ValueError( + "Please provide at least two regions for flux profile estimation." + ) + + self.regions = regions + + if spectral_model is None: + spectral_model = PowerLawSpectralModel() + + self.spectral_model = spectral_model + super().__init__(**kwargs) + + @property + def projected_distance_axis(self): + """Get projected distance from the first region. + + For normal region this is defined as the distance from the + center of the region. For annulus shaped regions it is the + mean between the inner and outer radius. + + Returns + ------- + axis : `MapAxis` + Projected distance axis. + """ + distances = [] + center = self.regions[0].center + + for idx, region in enumerate(self.regions): + if isinstance(region, CircleAnnulusSkyRegion): + distance = (region.inner_radius + region.outer_radius) / 2.0 + else: + distance = center.separation(region.center) + + distances.append(distance) + + return MapAxis.from_nodes( + u.Quantity(distances, "deg"), name="projected-distance" + ) + +
+[docs] + def run(self, datasets): + """Run flux profile estimation. + + Parameters + ---------- + datasets : list of `~gammapy.datasets.MapDataset` + Map datasets. + + Returns + ------- + profile : `~gammapy.estimators.FluxPoints` + Profile flux points. + """ + datasets = Datasets(datasets=datasets) + + maps = parallel.run_multiprocessing( + self._run_region, + zip(repeat(datasets), self.regions), + backend=self.parallel_backend, + pool_kwargs=dict(processes=self.n_jobs), + task_name="Flux profile estimation", + ) + + return FluxPoints.from_stack( + maps=maps, + axis=self.projected_distance_axis, + )
+ + + def _run_region(self, datasets, region): + # TODO: test if it would be more efficient + # to not compute datasets_to_fit in parallel + # to avoid copying the full datasets + datasets_to_fit = datasets.to_spectrum_datasets(region=region) + for dataset_spec, dataset_map in zip(datasets_to_fit, datasets): + dataset_spec.background.data = ( + dataset_map.npred() + .to_region_nd_map(region, func=np.sum, weights=dataset_map.mask_safe) + .data + ) + datasets_to_fit.models = SkyModel(self.spectral_model, name="test-source") + estimator = self.copy() + estimator.n_jobs = self._n_child_jobs + return estimator._run_flux_points(datasets_to_fit) + + def _run_flux_points(self, datasets): + return super().run(datasets) + + @property + def config_parameters(self): + """Configuration parameters.""" + pars = self.__dict__.copy() + pars = {key.strip("_"): value for key, value in pars.items()} + pars.pop("regions") + return pars
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/points/sed.html b/docs/dev/_modules/gammapy/estimators/points/sed.html new file mode 100644 index 00000000000..eff056bf57f --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/points/sed.html @@ -0,0 +1,773 @@ + + + + + + + + + + gammapy.estimators.points.sed — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.points.sed

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from itertools import repeat
+import numpy as np
+from astropy import units as u
+from astropy.table import Table
+import gammapy.utils.parallel as parallel
+from gammapy.datasets import Datasets
+from gammapy.datasets.actors import DatasetsActor
+from gammapy.datasets.flux_points import _get_reference_model
+from gammapy.maps import MapAxis
+from gammapy.modeling import Fit
+from ..flux import FluxEstimator
+from .core import FluxPoints
+
+log = logging.getLogger(__name__)
+
+__all__ = ["FluxPointsEstimator"]
+
+
+
+[docs] +class FluxPointsEstimator(FluxEstimator, parallel.ParallelMixin): + """Flux points estimator. + + Estimates flux points for a given list of datasets, energies and spectral model. + + To estimate the flux point the amplitude of the reference spectral model is + fitted within the energy range defined by the energy group. This is done for + each group independently. The amplitude is re-normalized using the "norm" parameter, + which specifies the deviation of the flux from the reference model in this + energy group. See https://gamma-astro-data-formats.readthedocs.io/en/latest/spectra/binned_likelihoods/index.html + for details. + + The method is also described in the `Fermi-LAT catalog paper <https://ui.adsabs.harvard.edu/abs/2015ApJS..218...23A>`__ + or the `H.E.S.S. Galactic Plane Survey paper <https://ui.adsabs.harvard.edu/abs/2018A%26A...612A...1H>`__ + + Parameters + ---------- + source : str or int + For which source in the model to compute the flux points. + n_sigma : int + Number of sigma to use for asymmetric error computation. Default is 1. + n_sigma_ul : int + Number of sigma to use for upper limit computation. Default is 2. + selection_optional : list of str, optional + Which additional quantities to estimate. Available options are: + + * "all": all the optional steps are executed. + * "errn-errp": estimate asymmetric errors on flux. + * "ul": estimate upper limits. + * "scan": estimate fit statistic profiles. + + Default is None so the optional steps are not executed. + energy_edges : list of `~astropy.units.Quantity`, optional + Edges of the flux points energy bins. The resulting bin edges won't be exactly equal to the input ones, + but rather the closest values to the energy axis edges of the parent dataset. + Default is None: apply the estimator in each energy bin of the parent dataset. + For further explanation see :ref:`estimators`. + fit : `Fit` + Fit instance specifying the backend and fit options. + reoptimize : bool + If True the free parameters of the other models are fitted in each bin independently, + together with the norm of the source of interest + (but the other parameters of the source of interest are kept frozen). + If False only the norm of the source of interest if fitted, + and all other parameters are frozen at their current values. + sum_over_energy_groups : bool + Whether to sum over the energy groups or fit the norm on the full energy grid. + n_jobs : int + Number of processes used in parallel for the computation. Default is one, unless + `~gammapy.utils.parallel.N_JOBS_DEFAULT` was modified. The number of jobs is + limited to the number of physical CPUs. + parallel_backend : {"multiprocessing", "ray"} + Which backend to use for multiprocessing. + norm : `~gammapy.modeling.Parameter` or dict + Norm parameter used for the fit + Default is None and a new parameter is created automatically, + with value=1, name="norm", scan_min=0.2, scan_max=5, and scan_n_values = 11. + By default the min and max are not set and derived from the source model, + unless the source model does not have one and only one norm parameter. + If a dict is given the entries should be a subset of + `~gammapy.modeling.Parameter` arguments. + """ + + tag = "FluxPointsEstimator" + + def __init__( + self, + energy_edges=[1, 10] * u.TeV, + sum_over_energy_groups=False, + n_jobs=None, + parallel_backend=None, + **kwargs, + ): + self.energy_edges = energy_edges + self.sum_over_energy_groups = sum_over_energy_groups + self.n_jobs = n_jobs + self.parallel_backend = parallel_backend + + fit = Fit(confidence_opts={"backend": "scipy"}) + kwargs.setdefault("fit", fit) + super().__init__(**kwargs) + +
+[docs] + def run(self, datasets): + """Run the flux point estimator for all energy groups. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + + Returns + ------- + flux_points : `FluxPoints` + Estimated flux points. + """ + if not isinstance(datasets, DatasetsActor): + datasets = Datasets(datasets=datasets) + + if not datasets.energy_axes_are_aligned: + raise ValueError("All datasets must have aligned energy axes.") + + telescopes = [] + for d in datasets: + if d.meta_table is not None and "TELESCOP" in d.meta_table.colnames: + telescopes.extend(list(d.meta_table["TELESCOP"].flatten())) + if len(np.unique(telescopes)) > 1: + raise ValueError( + "All datasets must use the same value of the" + " 'TELESCOP' meta keyword." + ) + + meta = { + "n_sigma": self.n_sigma, + "n_sigma_ul": self.n_sigma_ul, + "sed_type_init": "likelihood", + } + + rows = parallel.run_multiprocessing( + self.estimate_flux_point, + zip( + repeat(datasets), + self.energy_edges[:-1], + self.energy_edges[1:], + ), + backend=self.parallel_backend, + pool_kwargs=dict(processes=self.n_jobs), + task_name="Energy bins", + ) + + table = Table(rows, meta=meta) + model = _get_reference_model(datasets.models[self.source], self.energy_edges) + return FluxPoints.from_table( + table=table, + reference_model=model.copy(), + gti=datasets.gti, + format="gadf-sed", + )
+ + +
+[docs] + def estimate_flux_point(self, datasets, energy_min, energy_max): + """Estimate flux point for a single energy group. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + energy_min, energy_max : `~astropy.units.Quantity` + Energy bounds to compute the flux point for. + + Returns + ------- + result : dict + Dictionary with results for the flux point. + """ + datasets_sliced = datasets.slice_by_energy( + energy_min=energy_min, energy_max=energy_max + ) + if self.sum_over_energy_groups: + datasets_sliced = datasets_sliced.__class__( + [_.to_image(name=_.name) for _ in datasets_sliced] + ) + + if len(datasets_sliced) > 0: + if datasets.models is not None: + models_sliced = datasets.models._slice_by_energy( + energy_min=energy_min, + energy_max=energy_max, + sum_over_energy_groups=self.sum_over_energy_groups, + ) + datasets_sliced.models = models_sliced + + return super().run(datasets=datasets_sliced) + else: + log.warning(f"No dataset contribute in range {energy_min}-{energy_max}") + model = _get_reference_model( + datasets.models[self.source], self.energy_edges + ) + return self._nan_result(datasets, model, energy_min, energy_max)
+ + + def _nan_result(self, datasets, model, energy_min, energy_max): + """NaN result.""" + energy_axis = MapAxis.from_energy_edges([energy_min, energy_max]) + + with np.errstate(invalid="ignore", divide="ignore"): + result = model.reference_fluxes(energy_axis=energy_axis) + # convert to scalar values + result = {key: value.item() for key, value in result.items()} + + result.update( + { + "norm": np.nan, + "stat": np.nan, + "success": False, + "norm_err": np.nan, + "ts": np.nan, + "counts": np.zeros(len(datasets)), + "npred": np.nan * np.zeros(len(datasets)), + "npred_excess": np.nan * np.zeros(len(datasets)), + "datasets": datasets.names, + } + ) + + if "errn-errp" in self.selection_optional: + result.update({"norm_errp": np.nan, "norm_errn": np.nan}) + + if "ul" in self.selection_optional: + result.update({"norm_ul": np.nan}) + + if "scan" in self.selection_optional: + norm_scan = self.norm.copy().scan_values + result.update({"norm_scan": norm_scan, "stat_scan": np.nan * norm_scan}) + + return result
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/points/sensitivity.html b/docs/dev/_modules/gammapy/estimators/points/sensitivity.html new file mode 100644 index 00000000000..e92fe7f6ee7 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/points/sensitivity.html @@ -0,0 +1,735 @@ + + + + + + + + + + gammapy.estimators.points.sensitivity — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.points.sensitivity

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from astropy.table import Column, Table
+from gammapy.maps import Map
+from gammapy.modeling.models import PowerLawSpectralModel, SkyModel
+from gammapy.stats import WStatCountsStatistic
+from ..core import Estimator
+from ..utils import apply_threshold_sensitivity
+from gammapy.utils.deprecation import deprecated_renamed_argument
+
+__all__ = ["SensitivityEstimator"]
+
+
+
+[docs] +class SensitivityEstimator(Estimator): + """Estimate sensitivity. + + This class allows to determine for each reconstructed energy bin the flux + associated to the number of gamma-ray events for which the significance is + ``n_sigma``, and being larger than ``gamma_min`` and ``bkg_sys`` percent + larger than the number of background events in the ON region. + + + Parameters + ---------- + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + Spectral model assumption. Default is power-law with spectral index of 2. + n_sigma : float, optional + Minimum significance. Default is 5. + gamma_min : float, optional + Minimum number of gamma-rays. Default is 10. + bkg_syst_fraction : float, optional + Fraction of background counts above which the number of gamma-rays is. Default is 0.05. + + Examples + -------- + For a usage example see :doc:`/tutorials/analysis-1d/cta_sensitivity` tutorial. + + """ + + tag = "SensitivityEstimator" + + @deprecated_renamed_argument("spectrum", "spectral_model", "v1.3") + def __init__( + self, + spectral_model=None, + n_sigma=5.0, + gamma_min=10, + bkg_syst_fraction=0.05, + ): + if spectral_model is None: + spectral_model = PowerLawSpectralModel( + index=2, amplitude="1 cm-2 s-1 TeV-1" + ) + + self.spectral_model = spectral_model + self.n_sigma = n_sigma + self.gamma_min = gamma_min + self.bkg_syst_fraction = bkg_syst_fraction + +
+[docs] + def estimate_min_excess(self, dataset): + """Estimate minimum excess to reach the given significance. + + Parameters + ---------- + dataset : `SpectrumDataset` + Spectrum dataset. + + Returns + ------- + excess : `~gammapy.maps.RegionNDMap` + Minimal excess. + """ + n_off = dataset.counts_off.data + + stat = WStatCountsStatistic( + n_on=dataset.alpha.data * n_off, n_off=n_off, alpha=dataset.alpha.data + ) + excess_counts = stat.n_sig_matching_significance(self.n_sigma) + + excess_counts = apply_threshold_sensitivity( + dataset.background.data, + excess_counts, + self.gamma_min, + self.bkg_syst_fraction, + ) + + excess = Map.from_geom(geom=dataset._geom, data=excess_counts) + return excess
+ + +
+[docs] + def estimate_min_e2dnde(self, excess, dataset): + """Estimate dnde from a given minimum excess. + + Parameters + ---------- + excess : `~gammapy.maps.RegionNDMap` + Minimal excess. + dataset : `~gammapy.datasets.SpectrumDataset` + Spectrum dataset. + + Returns + ------- + e2dnde : `~astropy.units.Quantity` + Minimal differential flux. + """ + energy = dataset._geom.axes["energy"].center + + dataset.models = SkyModel(spectral_model=self.spectral_model) + npred = dataset.npred_signal() + + phi_0 = excess / npred + + dnde_model = self.spectral_model(energy=energy) + dnde = phi_0.data[:, 0, 0] * dnde_model * energy**2 + return dnde.to("erg / (cm2 s)")
+ + + def _get_criterion(self, excess, bkg): + is_gamma_limited = excess == self.gamma_min + is_bkg_syst_limited = excess == bkg * self.bkg_syst_fraction + criterion = np.chararray(excess.shape, itemsize=12) + criterion[is_gamma_limited] = "gamma" + criterion[is_bkg_syst_limited] = "bkg" + criterion[~np.logical_or(is_gamma_limited, is_bkg_syst_limited)] = ( + "significance" + ) + return criterion + +
+[docs] + def run(self, dataset): + """Run the sensitivity estimation. + + Parameters + ---------- + dataset : `SpectrumDatasetOnOff` + Dataset to compute sensitivity for. + + Returns + ------- + sensitivity : `~astropy.table.Table` + Sensitivity table. + """ + energy = dataset._geom.axes["energy"].center + excess = self.estimate_min_excess(dataset) + e2dnde = self.estimate_min_e2dnde(excess, dataset) + criterion = self._get_criterion( + excess.data.squeeze(), dataset.background.data.squeeze() + ) + + return Table( + [ + Column( + data=energy, + name="e_ref", + format="5g", + description="Energy center", + ), + Column( + data=dataset._geom.axes["energy"].edges_min, + name="e_min", + format="5g", + description="Energy edge low", + ), + Column( + data=dataset._geom.axes["energy"].edges_max, + name="e_max", + format="5g", + description="Energy edge high", + ), + Column( + data=e2dnde, + name="e2dnde", + format="5g", + description="Energy squared times differential flux", + ), + Column( + data=np.atleast_1d(excess.data.squeeze()), + name="excess", + format="5g", + description="Number of excess counts in the bin", + ), + Column( + data=np.atleast_1d(dataset.background.data.squeeze()), + name="background", + format="5g", + description="Number of background counts in the bin", + ), + Column( + data=np.atleast_1d(criterion), + name="criterion", + description="Sensitivity-limiting criterion", + ), + ] + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/profile.html b/docs/dev/_modules/gammapy/estimators/profile.html new file mode 100644 index 00000000000..cbeed622d5a --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/profile.html @@ -0,0 +1,969 @@ + + + + + + + + + + gammapy.estimators.profile — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.profile

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Tools to create profiles (i.e. 1D "slices" from 2D images)."""
+import numpy as np
+import scipy.ndimage
+from astropy import units as u
+from astropy.convolution import Box1DKernel, Gaussian1DKernel
+from astropy.coordinates import Angle
+from astropy.table import Table
+import matplotlib.pyplot as plt
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from .core import Estimator
+
+__all__ = ["ImageProfile", "ImageProfileEstimator"]
+
+
+# TODO: implement measuring profile along arbitrary directions
+# TODO: think better about error handling. e.g. MC based methods
+
+[docs] +class ImageProfileEstimator(Estimator): + """Estimate profile from image. + + Parameters + ---------- + x_edges : `~astropy.coordinates.Angle`, optional + Coordinate edges to define a custom measurement grid. + method : {'sum', 'mean'} + Compute sum or mean within profile bins. Default is 'sum'. + axis : {'lon', 'lat', 'radial'} + Along which axis to estimate the profile. Default is 'lon'. + center : `~astropy.coordinates.SkyCoord`, optional + Center coordinate for the radial profile option. + + Examples + -------- + This example shows how to compute a counts profile for the Fermi galactic + center region:: + + import matplotlib.pyplot as plt + from gammapy.estimators import ImageProfileEstimator + from gammapy.maps import Map + from astropy import units as u + + # load example data + filename = '$GAMMAPY_DATA/fermi-3fhl-gc/fermi-3fhl-gc-counts.fits.gz' + fermi_cts = Map.read(filename) + + # set up profile estimator and run + p = ImageProfileEstimator(axis='lon', method='sum') + profile = p.run(fermi_cts) + + # smooth profile and plot + smoothed = profile.smooth(kernel='gauss') + smoothed.peek() + plt.show() + """ + + tag = "ImageProfileEstimator" + + def __init__(self, x_edges=None, method="sum", axis="lon", center=None): + if method not in ["sum", "mean"]: + raise ValueError("Not a valid method, choose either 'sum' or 'mean'") + + if axis not in ["lon", "lat", "radial"]: + raise ValueError("Not a valid axis, choose either 'lon', 'lat' or 'radial'") + + if axis == "radial" and center is None: + raise ValueError("Please provide center coordinate for radial profiles") + + self._x_edges = x_edges + self.parameters = {"method": method, "axis": axis, "center": center} + + def _get_x_edges(self, image): + if self._x_edges is not None: + return self._x_edges + + p = self.parameters + coordinates = image.geom.get_coord(mode="edges").skycoord + + if p["axis"] == "lat": + x_edges = coordinates[:, 0].data.lat + elif p["axis"] == "lon": + lon = coordinates[0, :].data.lon + x_edges = lon.wrap_at("180d") + elif p["axis"] == "radial": + rad_step = image.geom.pixel_scales.mean() + corners = [0, 0, -1, -1], [0, -1, 0, -1] + rad_max = coordinates[corners].separation(p["center"]).max() + x_edges = Angle(np.arange(0, rad_max.deg, rad_step.deg), unit="deg") + + return x_edges + + def _estimate_profile(self, image, image_err, mask): + p = self.parameters + labels = self._label_image(image, mask) + + profile_err = None + + index = np.arange(1, len(self._get_x_edges(image))) + + if p["method"] == "sum": + profile = scipy.ndimage.sum(image.data, labels.data, index) + + if image.unit.is_equivalent("counts"): + profile_err = np.sqrt(profile) + elif image_err: + # gaussian error propagation + err_sum = scipy.ndimage.sum(image_err.data**2, labels.data, index) + profile_err = np.sqrt(err_sum) + + elif p["method"] == "mean": + # gaussian error propagation + profile = scipy.ndimage.mean(image.data, labels.data, index) + if image_err: + N = scipy.ndimage.sum(~np.isnan(image_err.data), labels.data, index) + err_sum = scipy.ndimage.sum(image_err.data**2, labels.data, index) + profile_err = np.sqrt(err_sum) / N + + return profile, profile_err + + def _label_image(self, image, mask=None): + p = self.parameters + + coordinates = image.geom.get_coord().skycoord + x_edges = self._get_x_edges(image) + + if p["axis"] == "lon": + lon = coordinates.data.lon.wrap_at("180d") + data = np.digitize(lon.degree, x_edges.deg) + + elif p["axis"] == "lat": + lat = coordinates.data.lat + data = np.digitize(lat.degree, x_edges.deg) + + elif p["axis"] == "radial": + separation = coordinates.separation(p["center"]) + data = np.digitize(separation.degree, x_edges.deg) + + if mask is not None: + # assign masked values to background + data[mask.data] = 0 + + return image.copy(data=data) + +
+[docs] + def run(self, image, image_err=None, mask=None): + """Run image profile estimator. + + Parameters + ---------- + image : `~gammapy.maps.Map` + Input image to run profile estimator on. + image_err : `~gammapy.maps.Map`, optional + Input error image to run profile estimator on. Default is None. + mask : `~gammapy.maps.Map` + Optional mask to exclude regions from the measurement. + + Returns + ------- + profile : `ImageProfile` + Result image profile object. + """ + p = self.parameters + + if image.unit.is_equivalent("count"): + image_err = image.copy(data=np.sqrt(image.data)) + + profile, profile_err = self._estimate_profile(image, image_err, mask) + + result = Table() + x_edges = self._get_x_edges(image) + result["x_min"] = x_edges[:-1] + result["x_max"] = x_edges[1:] + result["x_ref"] = (x_edges[:-1] + x_edges[1:]) / 2 + result["profile"] = profile * image.unit + + if profile_err is not None: + result["profile_err"] = profile_err * image.unit + + result.meta["PROFILE_TYPE"] = p["axis"] + + return ImageProfile(result)
+
+ + + +
+[docs] +class ImageProfile: + """Image profile class. + + The image profile data is stored in `~astropy.table.Table` object, with the + following columns: + + * `x_ref` Coordinate bin center (required). + * `x_min` Coordinate bin minimum (optional). + * `x_max` Coordinate bin maximum (optional). + * `profile` Image profile data (required). + * `profile_err` Image profile data error (optional). + + Parameters + ---------- + table : `~astropy.table.Table` + Table instance with the columns specified as above. + """ + + def __init__(self, table): + self.table = table + +
+[docs] + def smooth(self, kernel="box", radius="0.1 deg", **kwargs): + r"""Smooth profile with error propagation. + + Smoothing is described by a convolution: + + .. math:: + x_j = \sum_i x_{(j - i)} h_i + + Where :math:`h_i` are the coefficients of the convolution kernel. + + The corresponding error on :math:`x_j` is then estimated using Gaussian + error propagation, neglecting correlations between the individual + :math:`x_{(j - i)}`: + + .. math:: + \Delta x_j = \sqrt{\sum_i \Delta x^{2}_{(j - i)} h^{2}_i} + + Parameters + ---------- + kernel : {'gauss', 'box'} + Kernel shape. Default is "box". + radius : `~astropy.units.Quantity`, str or float + Smoothing width given as quantity or float. If a float is given it + is interpreted as smoothing width in pixels. If an (angular) quantity + is given it is converted to pixels using `xref[1] - x_ref[0]`. Default is "0.1 deg". + kwargs : dict, optional + Keyword arguments passed to `~scipy.ndimage.uniform_filter` + ('box') and `~scipy.ndimage.gaussian_filter` ('gauss'). + + Returns + ------- + profile : `ImageProfile` + Smoothed image profile. + """ + table = self.table.copy() + profile = table["profile"] + + radius = u.Quantity(radius) + radius = np.abs(radius / np.diff(self.x_ref))[0] + width = 2 * radius.value + 1 + + if kernel == "box": + smoothed = scipy.ndimage.uniform_filter( + profile.astype("float"), width, **kwargs + ) + # renormalize data + if table["profile"].unit.is_equivalent("count"): + smoothed *= int(width) + smoothed_err = np.sqrt(smoothed) + elif "profile_err" in table.colnames: + profile_err = table["profile_err"] + # use gaussian error propagation + box = Box1DKernel(width) + err_sum = scipy.ndimage.convolve(profile_err**2, box.array**2) + smoothed_err = np.sqrt(err_sum) + elif kernel == "gauss": + smoothed = scipy.ndimage.gaussian_filter( + profile.astype("float"), width, **kwargs + ) + # use gaussian error propagation + if "profile_err" in table.colnames: + profile_err = table["profile_err"] + gauss = Gaussian1DKernel(width) + err_sum = scipy.ndimage.convolve(profile_err**2, gauss.array**2) + smoothed_err = np.sqrt(err_sum) + else: + raise ValueError("Not valid kernel choose either 'box' or 'gauss'") + + table["profile"] = smoothed * self.table["profile"].unit + if "profile_err" in table.colnames: + table["profile_err"] = smoothed_err * self.table["profile"].unit + return self.__class__(table)
+ + +
+[docs] + def plot(self, ax=None, **kwargs): + """Plot image profile. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axes object. Default is None. + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.axes.Axes.plot`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axes object. + """ + if ax is None: + ax = plt.gca() + + y = self.table["profile"].data + x = self.x_ref.value + ax.plot(x, y, **kwargs) + ax.set_xlabel(self.table.meta.get("PROFILE_TYPE", "axis")) + ax.set_ylabel("profile") + ax.set_xlim(x.max(), x.min()) + return ax
+ + +
+[docs] + def plot_err(self, ax=None, **kwargs): + """Plot image profile error as band. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axes object. Default is None. + **kwargs : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.fill_between`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axes object. + """ + if ax is None: + ax = plt.gca() + + y = self.table["profile"].data + ymin = y - self.table["profile_err"].data + ymax = y + self.table["profile_err"].data + x = self.x_ref.value + + # plotting defaults + kwargs.setdefault("alpha", 0.5) + + ax.fill_between(x, ymin, ymax, **kwargs) + ax.set_xlabel(f"x [{u.deg.to_string(UNIT_STRING_FORMAT)}]") + ax.set_ylabel("profile") + return ax
+ + + @property + def x_ref(self): + """Reference x coordinates.""" + return self.table["x_ref"].quantity + + @property + def x_min(self): + """Min. x coordinates.""" + return self.table["x_min"].quantity + + @property + def x_max(self): + """Max. x coordinates.""" + return self.table["x_max"].quantity + + @property + def profile(self): + """Image profile quantity.""" + return self.table["profile"].quantity + + @property + def profile_err(self): + """Image profile error quantity.""" + try: + return self.table["profile_err"].quantity + except KeyError: + return None + +
+[docs] + def peek(self, figsize=(8, 4.5), **kwargs): + """Show image profile and error. + + Parameters + ---------- + figsize : tuple + Size of the figure. Default is (8, 4.5). + **kwargs : dict, optional + Keyword arguments passed to `ImageProfile.plot_profile()`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Axes object. + """ + fig = plt.figure(figsize=figsize) + ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) + ax = self.plot(ax, **kwargs) + + if "profile_err" in self.table.colnames: + ax = self.plot_err(ax, color=kwargs.get("c")) + + return ax
+ + +
+[docs] + def normalize(self, mode="peak"): + """Normalize profile to peak value or integral. + + Parameters + ---------- + mode : ['integral', 'peak'] + Normalize image profile so that it integrates to unity ('integral') + or the maximum value corresponds to one ('peak'). Default is "peak". + + Returns + ------- + profile : `ImageProfile` + Normalized image profile. + """ + table = self.table.copy() + profile = self.table["profile"] + if mode == "peak": + norm = np.nanmax(profile) + elif mode == "integral": + norm = np.nansum(profile) + else: + raise ValueError(f"Invalid normalization mode: {mode!r}") + + table["profile"] /= norm + + if "profile_err" in table.colnames: + table["profile_err"] /= norm + + return self.__class__(table)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/estimators/utils.html b/docs/dev/_modules/gammapy/estimators/utils.html new file mode 100644 index 00000000000..186874d2885 --- /dev/null +++ b/docs/dev/_modules/gammapy/estimators/utils.html @@ -0,0 +1,1983 @@ + + + + + + + + + + gammapy.estimators.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.estimators.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import scipy.ndimage
+from scipy import special
+from scipy.interpolate import InterpolatedUnivariateSpline
+from astropy import units as u
+from astropy.coordinates import SkyCoord
+from astropy.table import Table
+from gammapy.datasets import SpectrumDataset, SpectrumDatasetOnOff
+from gammapy.datasets.map import MapEvaluator
+from gammapy.maps import Map, MapAxis, TimeMapAxis, WcsNDMap
+from gammapy.modeling import Parameter
+from gammapy.modeling.models import (
+    ConstantFluxSpatialModel,
+    PowerLawSpectralModel,
+    SkyModel,
+)
+from gammapy.stats import (
+    compute_flux_doubling,
+    compute_fpp,
+    compute_fvar,
+    discrete_correlation,
+)
+from gammapy.stats.utils import ts_to_sigma
+from .map.core import FluxMaps
+
+__all__ = [
+    "combine_flux_maps",
+    "combine_significance_maps",
+    "estimate_exposure_reco_energy",
+    "find_peaks",
+    "find_peaks_in_flux_map",
+    "resample_energy_edges",
+    "get_rebinned_axis",
+    "get_combined_flux_maps",
+    "get_combined_significance_maps",
+    "compute_lightcurve_fvar",
+    "compute_lightcurve_fpp",
+    "compute_lightcurve_doublingtime",
+    "compute_lightcurve_discrete_correlation",
+]
+
+
+
+[docs] +def find_peaks(image, threshold, min_distance=1): + """Find local peaks in an image. + + This is a very simple peak finder, that finds local peaks + (i.e. maxima) in images above a given ``threshold`` within + a given ``min_distance`` around each given pixel. + + If you get multiple spurious detections near a peak, usually + it's best to smooth the image a bit, or to compute it using + a different method in the first place to result in a smooth image. + You can also increase the ``min_distance`` parameter. + + The output table contains one row per peak and the following columns: + + - ``x`` and ``y`` are the pixel coordinates (first pixel at zero). + - ``ra`` and ``dec`` are the RA / DEC sky coordinates (ICRS frame). + - ``value`` is the pixel value. + + It is sorted by peak value, starting with the highest value. + + If there are no pixel values above the threshold, an empty table is returned. + + There are more featureful peak finding and source detection methods + e.g. in the ``photutils`` or ``scikit-image`` Python packages. + + Parameters + ---------- + image : `~gammapy.maps.WcsNDMap` + Image like Map. + threshold : float or array-like + The data value or pixel-wise data values to be used for the + detection threshold. A 2D ``threshold`` must have the same + shape as the map ``data``. + min_distance : int or `~astropy.units.Quantity` + Minimum distance between peaks. An integer value is interpreted + as pixels. Default is 1. + + Returns + ------- + output : `~astropy.table.Table` + Table with parameters of detected peaks. + + Examples + -------- + >>> import astropy.units as u + >>> from gammapy.datasets import MapDataset + >>> from gammapy.estimators import ExcessMapEstimator + >>> from gammapy.estimators.utils import find_peaks + >>> + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> estimator = ExcessMapEstimator( + ... correlation_radius="0.1 deg", energy_edges=[0.1, 10] * u.TeV + ... ) + >>> maps = estimator.run(dataset) + >>> # Find the peaks which are above 5 sigma + >>> sources = find_peaks(maps["sqrt_ts"], threshold=5, min_distance="0.25 deg") + >>> print(sources) + value x y ra dec + deg deg + ------ --- --- --------- --------- + 32.191 161 118 266.41924 -28.98772 + 18.7 125 124 266.80571 -28.14079 + 9.4498 257 122 264.86178 -30.97529 + 9.3784 204 103 266.14201 -30.10041 + 5.3493 282 150 263.78083 -31.12704 + """ + # Input validation + + if not isinstance(image, WcsNDMap): + raise TypeError("find_peaks only supports WcsNDMap") + + if not image.geom.is_flat: + raise ValueError( + "find_peaks only supports flat Maps, with no spatial axes of length 1." + ) + + if isinstance(min_distance, (str, u.Quantity)): + min_distance = np.mean(u.Quantity(min_distance) / image.geom.pixel_scales) + min_distance = np.round(min_distance).to_value("") + + size = 2 * min_distance + 1 + + # Remove non-finite values to avoid warnings or spurious detection + data = image.sum_over_axes(keepdims=False).data + data[~np.isfinite(data)] = np.nanmin(data) + + # Handle edge case of constant data; treat as no peak + if np.all(data == data.flat[0]): + return Table() + + # Run peak finder + data_max = scipy.ndimage.maximum_filter(data, size=size, mode="constant") + mask = (data == data_max) & (data > threshold) + y, x = mask.nonzero() + value = data[y, x] + + # Make and return results table + + if len(value) == 0: + return Table() + + coord = SkyCoord.from_pixel(x, y, wcs=image.geom.wcs).icrs + + table = Table() + table["value"] = value * image.unit + table["x"] = x + table["y"] = y + table["ra"] = coord.ra + table["dec"] = coord.dec + + table["ra"].format = ".5f" + table["dec"].format = ".5f" + table["value"].format = ".5g" + + table.sort("value") + table.reverse() + + return table
+ + + +
+[docs] +def find_peaks_in_flux_map(maps, threshold, min_distance=1): + """Find local test statistic peaks for a given Map. + + Utilises the `~gammapy.estimators.utils.find_peaks` function to find various parameters from FluxMaps. + + Parameters + ---------- + maps : `~gammapy.estimators.FluxMaps` + Input flux map object. + threshold : float or array-like + The test statistic data value or pixel-wise test statistic data values to be used for the + detection threshold. A 2D ``threshold`` must have the same. + shape as the map ``data``. + min_distance : int or `~astropy.units.Quantity` + Minimum distance between peaks. An integer value is interpreted + as pixels. Default is 1. + + Returns + ------- + output : `~astropy.table.Table` + Table with parameters of detected peaks. + + Examples + -------- + >>> import astropy.units as u + >>> from gammapy.datasets import MapDataset + >>> from gammapy.estimators import ExcessMapEstimator + >>> from gammapy.estimators.utils import find_peaks_in_flux_map + >>> + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> estimator = ExcessMapEstimator( + ... correlation_radius="0.1 deg", energy_edges=[0.1, 10]*u.TeV + ... ) + >>> maps = estimator.run(dataset) + >>> # Find the peaks which are above 5 sigma + >>> sources = find_peaks_in_flux_map(maps, threshold=5, min_distance=0.1*u.deg) + >>> print(sources[:4]) + x y ra dec npred npred_excess counts ts sqrt_ts norm norm_err flux flux_err + deg deg 1 / (s cm2) 1 / (s cm2) + --- --- --------- --------- --------- ------------ --------- -------- ------- ------- -------- ----------- ----------- + 158 135 266.05019 -28.70181 192.00000 61.33788 192.00000 25.11839 5.01183 0.28551 0.06450 2.827e-12 6.385e-13 + 92 133 267.07022 -27.31834 137.00000 51.99467 137.00000 26.78181 5.17511 0.37058 0.08342 3.669e-12 8.259e-13 + 176 134 265.80492 -29.09805 195.00000 65.15990 195.00000 28.29158 5.31898 0.30561 0.06549 3.025e-12 6.484e-13 + 282 150 263.78083 -31.12704 84.00000 39.99004 84.00000 28.61526 5.34932 0.55027 0.12611 5.448e-12 1.249e-12 + """ + quantity_for_peaks = maps["sqrt_ts"] + + if not isinstance(maps, FluxMaps): + raise TypeError( + f"find_peaks_in_flux_map expects FluxMaps input. Got {type(maps)} instead." + ) + + if not quantity_for_peaks.geom.is_flat: + raise ValueError( + "find_peaks_in_flux_map only supports flat Maps, with energy axis of length 1." + ) + + table = find_peaks(quantity_for_peaks, threshold, min_distance) + + if len(table) == 0: + return Table() + + x = np.array(table["x"]) + y = np.array(table["y"]) + + table.remove_column("value") + + for name in maps.available_quantities: + values = maps[name].quantity + peaks = values[0, y, x] + table[name] = peaks + + flux_data = maps["flux"].quantity + table["flux"] = flux_data[0, y, x] + flux_err_data = maps["flux_err"].quantity + table["flux_err"] = flux_err_data[0, y, x] + + for column in table.colnames: + if column.startswith(("flux", "flux_err")): + table[column].format = ".3e" + elif column.startswith( + ( + "npred", + "npred_excess", + "counts", + "sqrt_ts", + "norm", + "ts", + "norm_err", + "stat", + "stat_null", + ) + ): + table[column].format = ".5f" + + table.reverse() + + return table
+ + + +
+[docs] +def estimate_exposure_reco_energy(dataset, spectral_model=None, normalize=True): + """Estimate an exposure map in reconstructed energy. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.MapDatasetOnOff` + The input dataset. + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + Assumed spectral shape. If None, a Power Law of index 2 is assumed. Default is None. + normalize : bool + Normalize the exposure to the total integrated flux of the spectral model. + When not normalized it directly gives the predicted counts from the spectral + model. Default is True. + + Returns + ------- + exposure : `~gammapy.maps.Map` + Exposure map in reconstructed energy. + """ + if spectral_model is None: + spectral_model = PowerLawSpectralModel() + + model = SkyModel( + spatial_model=ConstantFluxSpatialModel(), spectral_model=spectral_model + ) + + energy_axis = dataset._geom.axes["energy"] + + if dataset.edisp is not None: + edisp = dataset.edisp.get_edisp_kernel(position=None, energy_axis=energy_axis) + else: + edisp = None + + eval = MapEvaluator(model=model, exposure=dataset.exposure, edisp=edisp) + reco_exposure = eval.compute_npred() + + if normalize: + ref_flux = spectral_model.integral( + energy_axis.edges[:-1], energy_axis.edges[1:] + ) + reco_exposure = reco_exposure / ref_flux[:, np.newaxis, np.newaxis] + + return reco_exposure
+ + + +def _satisfies_conditions(info_dict, conditions): + satisfies = True + for key in conditions.keys(): + satisfies &= info_dict[key.strip("_min")] > conditions[key] + return satisfies + + +
+[docs] +def resample_energy_edges(dataset, conditions={}): + """Return energy edges that satisfy given condition on the per bin statistics. + + Parameters + ---------- + dataset : `~gammapy.datasets.SpectrumDataset` or `~gammapy.datasets.SpectrumDatasetOnOff` + The input dataset. + conditions : dict + Keyword arguments containing the per-bin conditions used to resample the axis. + Available options are: 'counts_min', 'background_min', 'excess_min', 'sqrt_ts_min', + 'npred_min', 'npred_background_min', 'npred_signal_min'. Default is {}. + + Returns + ------- + energy_edges : list of `~astropy.units.Quantity` + Energy edges for the resampled energy axis. + + Examples + -------- + >>> from gammapy.datasets import Datasets, SpectrumDatasetOnOff + >>> from gammapy.estimators.utils import resample_energy_edges + >>> + >>> datasets = Datasets() + >>> + >>> for obs_id in [23523, 23526]: + ... dataset = SpectrumDatasetOnOff.read( + ... f"$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs{obs_id}.fits" + ... ) + ... datasets.append(dataset) + >>> + >>> spectrum_dataset = Datasets(datasets).stack_reduce() + >>> # Resample the energy edges so the minimum sqrt_ts is 2 + >>> resampled_energy_edges = resample_energy_edges( + ... spectrum_dataset, + ... conditions={"sqrt_ts_min": 2} + ... ) + """ + if not isinstance(dataset, (SpectrumDataset, SpectrumDatasetOnOff)): + raise NotImplementedError( + "This method is currently supported for spectral datasets only." + ) + + available_conditions = [ + "counts_min", + "background_min", + "excess_min", + "sqrt_ts_min", + "npred_min", + "npred_background_min", + "npred_signal_min", + ] + for key in conditions.keys(): + if key not in available_conditions: + raise ValueError( + f"Unrecognized option {key}. The available methods are: {available_conditions}." + ) + + axis = dataset.counts.geom.axes["energy"] + energy_min_all, energy_max_all = dataset.energy_range_total + energy_edges = [energy_max_all] + + while energy_edges[-1] > energy_min_all: + for energy_min in reversed(axis.edges_min): + if energy_min >= energy_edges[-1]: + continue + elif len(energy_edges) == 1 and energy_min == energy_min_all: + raise ValueError("The given conditions cannot be met.") + + sliced = dataset.slice_by_energy( + energy_min=energy_min, energy_max=energy_edges[-1] + ) + + with np.errstate(invalid="ignore"): + info = sliced.info_dict() + + if _satisfies_conditions(info, conditions): + energy_edges.append(energy_min) + break + return u.Quantity(energy_edges[::-1])
+ + + +
+[docs] +def compute_lightcurve_fvar(lightcurve, flux_quantity="flux"): + """ + Compute the fractional excess variance of the input lightcurve. + + Internally calls the `~gammapy.stats.compute_fvar` function. + + + Parameters + ---------- + lightcurve : `~gammapy.estimators.FluxPoints` + The lightcurve object. + flux_quantity : str + Flux quantity to use for calculation. Should be 'dnde', 'flux', 'e2dnde' or 'eflux'. Default is 'flux'. + + Returns + ------- + fvar : `~astropy.table.Table` + Table of fractional excess variance and associated error for each energy bin of the lightcurve. + """ + flux = getattr(lightcurve, flux_quantity) + flux_err = getattr(lightcurve, flux_quantity + "_err") + + time_id = flux.geom.axes.index_data("time") + + fvar, fvar_err = compute_fvar(flux.data, flux_err.data, axis=time_id) + + significance = fvar / fvar_err + + energies = lightcurve.geom.axes["energy"].edges + table = Table( + [energies[:-1], energies[1:], fvar, fvar_err, significance], + names=("min_energy", "max_energy", "fvar", "fvar_err", "significance"), + meta=lightcurve.meta, + ) + + return table
+ + + +
+[docs] +def compute_lightcurve_fpp(lightcurve, flux_quantity="flux"): + """ + Compute the point-to-point excess variance of the input lightcurve. + + Internally calls the `~gammapy.stats.compute_fpp` function + + Parameters + ---------- + lightcurve : `~gammapy.estimators.FluxPoints` + The lightcurve object. + flux_quantity : str + Flux quantity to use for calculation. Should be 'dnde', 'flux', 'e2dnde' or 'eflux'. Default is 'flux'. + + Returns + ------- + table : `~astropy.table.Table` + Table of point-to-point excess variance and associated error for each energy bin of the lightcurve. + """ + flux = getattr(lightcurve, flux_quantity) + flux_err = getattr(lightcurve, flux_quantity + "_err") + + time_id = flux.geom.axes.index_data("time") + + fpp, fpp_err = compute_fpp(flux.data, flux_err.data, axis=time_id) + + significance = fpp / fpp_err + + energies = lightcurve.geom.axes["energy"].edges + table = Table( + [energies[:-1], energies[1:], fpp, fpp_err, significance], + names=("min_energy", "max_energy", "fpp", "fpp_err", "significance"), + meta=dict(quantity=flux_quantity), + ) + + return table
+ + + +
+[docs] +def compute_lightcurve_doublingtime(lightcurve, flux_quantity="flux"): + """ + Compute the minimum characteristic flux doubling and halving time for the input lightcurve. + + Internally calls the `~gammapy.stats.compute_flux_doubling` function. + + The characteristic doubling time is estimated to obtain the + minimum variability timescale for the light curves in which + rapid variations are clearly evident: for example it is useful in AGN flaring episodes. + + This quantity, especially for AGN flares, is often expressed + as the pair of doubling time and halving time, or the minimum characteristic time + for the rising and falling components respectively. + + Parameters + ---------- + lightcurve : `~gammapy.estimators.FluxPoints` + The lightcurve object. + axis_name : str + Name of the axis over which to compute the flux doubling. + flux_quantity : str + Flux quantity to use for calculation. Should be 'dnde', 'flux', 'e2dnde' or 'eflux'. + Default is 'flux'. + + Returns + ------- + table : `~astropy.table.Table` + Table of flux doubling/halving and associated error for each energy bin of the lightcurve + with axis coordinates at which they were found. + + + References + ---------- + .. [Brown2013] "Locating the γ-ray emission region + of the flat spectrum radio quasar PKS 1510−089", Brown et al. (2013) + https://academic.oup.com/mnras/article/431/1/824/1054498 + """ + flux = getattr(lightcurve, flux_quantity) + flux_err = getattr(lightcurve, flux_quantity + "_err") + coords = lightcurve.geom.axes["time"].center + + axis = flux.geom.axes.index_data("time") + + doubling_dict = compute_flux_doubling(flux.data, flux_err.data, coords, axis=axis) + + energies = lightcurve.geom.axes["energy"].edges + table = Table( + [ + energies[:-1], + energies[1:], + doubling_dict["doubling"], + doubling_dict["doubling_err"], + lightcurve.geom.axes["time"].reference_time + + doubling_dict["doubling_coord"], + doubling_dict["halving"], + doubling_dict["halving_err"], + lightcurve.geom.axes["time"].reference_time + + doubling_dict["halving_coord"], + ], + names=( + "min_energy", + "max_energy", + "doublingtime", + "doubling_err", + "doubling_coord", + "halvingtime", + "halving_err", + "halving_coord", + ), + meta=dict(flux_quantity=flux_quantity), + ) + + return table
+ + + +
+[docs] +def compute_lightcurve_discrete_correlation( + lightcurve1, lightcurve2=None, flux_quantity="flux", tau=None +): + """Compute the discrete correlation function for two lightcurves, or the discrete autocorrelation if only one lightcurve is provided. + + NaN values will be ignored in the computation in order to account for possible gaps in the data. + + Internally calls the `~gammapy.stats.discrete_correlation` function. + + Parameters + ---------- + lightcurve1 : `~gammapy.estimators.FluxPoints` + The first lightcurve object. + lightcurve2 : `~gammapy.estimators.FluxPoints`, optional + The second lightcurve object. If not provided, the autocorrelation for the first lightcurve will be computed. + Default is None. + flux_quantity : str + Flux quantity to use for calculation. Should be 'dnde', 'flux', 'e2dnde' or 'eflux'. + The choice does not affect the computation. Default is 'flux'. + tau : `~astropy.units.Quantity`, optional + Size of the bins to compute the discrete correlation. + If None, the bin size will be double the bins of the first lightcurve. Default is None. + + Returns + ------- + discrete_correlation_dict : dict + Dictionary containing the discrete correlation results. Entries are: + + * "bins" : the array of discrete time bins + * "discrete_correlation" : discrete correlation function values + * "discrete_correlation_err" : associated error + + References + ---------- + .. [Edelson1988] "THE DISCRETE CORRELATION FUNCTION: A NEW METHOD FOR ANALYZING + UNEVENLY SAMPLED VARIABILITY DATA", Edelson et al. (1988) + https://ui.adsabs.harvard.edu/abs/1988ApJ...333..646E/abstract + """ + flux1 = getattr(lightcurve1, flux_quantity) + flux_err1 = getattr(lightcurve1, flux_quantity + "_err") + coords1 = lightcurve1.geom.axes["time"].center + axis = flux1.geom.axes.index_data("time") + + if tau is None: + tau = (coords1[-1] - coords1[0]) / (0.5 * len(coords1)) + + if lightcurve2: + flux2 = getattr(lightcurve2, flux_quantity) + flux_err2 = getattr(lightcurve2, flux_quantity + "_err") + coords2 = lightcurve2.geom.axes["time"].center + bins, dcf, dcf_err = discrete_correlation( + flux1.data, + flux_err1.data, + flux2.data, + flux_err2.data, + coords1, + coords2, + tau, + axis, + ) + + else: + bins, dcf, dcf_err = discrete_correlation( + flux1.data, + flux_err1.data, + flux1.data, + flux_err1.data, + coords1, + coords1, + tau, + axis, + ) + + discrete_correlation_dict = { + "bins": bins, + "discrete_correlation": dcf, + "discrete_correlation_err": dcf_err, + } + + return discrete_correlation_dict
+ + + +def get_edges_fixed_bins(fluxpoint, group_size, axis_name="energy"): + """Rebin the flux point to combine value adjacent bins. + + Parameters + ---------- + fluxpoint : `~gammapy.estimators.FluxPoints` + The flux points object to rebin. + group_size : int + Number of bins to combine. + axis_name : str, optional + The axis name to combine along. Default is 'energy'. + + Returns + ------- + edges_min : `~astropy.units.Quantity` or `~astropy.time.Time` + Minimum bin edge for the new axis. + edges_max : `~astropy.units.Quantity` or `~astropy.time.Time` + Maximum bin edge for the new axis. + """ + ax = fluxpoint.geom.axes[axis_name] + nbin = ax.nbin + if not isinstance(group_size, int): + raise ValueError("Only integer number of bins can be combined") + idx = np.arange(0, nbin, group_size) + if idx[-1] < nbin: + idx = np.append(idx, nbin) + edges_min = ax.edges_min[idx[:-1]] + edges_max = ax.edges_max[idx[1:] - 1] + return edges_min, edges_max + + +def get_edges_min_ts(fluxpoint, ts_threshold, axis_name="energy"): + """Rebin the flux point to combine adjacent bins until a minimum TS is obtained. + + Note that to convert TS to significance, it is necessary to take the number + of degrees of freedom into account. + + + Parameters + ---------- + fluxpoint : `~gammapy.estimators.FluxPoints` + The flux points object to rebin. + ts_threshold : float + The minimum significance desired. + axis_name : str, optional + The axis name to combine along. Default is 'energy'. + + Returns + ------- + edges_min : `~astropy.units.Quantity` or `~astropy.time.Time` + Minimum bin edge for the new axis. + edges_max : `~astropy.units.Quantity` or `~astropy.time.Time` + Maximum bin edge for the new axis. + """ + ax = fluxpoint.geom.axes[axis_name] + nbin = ax.nbin + + e_min, e_max = ax.edges_min[0], ax.edges_max[0] + edges_min = np.zeros(nbin) * e_min.unit + edges_max = np.zeros(nbin) * e_max.unit + i, i1 = 0, 0 + while e_max < ax.edges_max[-1]: + ts = fluxpoint.ts.data[i] + e_min = ax.edges_min[i] + while ts < ts_threshold and i < ax.nbin - 1: + i = i + 1 + ts = ts + fluxpoint.ts.data[i] + e_max = ax.edges_max[i] + i = i + 1 + edges_min[i1] = e_min + edges_max[i1] = e_max + i1 = i1 + 1 + edges_max = edges_max[:i1] + edges_min = edges_min[:i1] + + return edges_min, edges_max + + +RESAMPLE_METHODS = { + "fixed-bins": get_edges_fixed_bins, + "min-ts": get_edges_min_ts, +} + + +
+[docs] +def get_rebinned_axis(fluxpoint, axis_name="energy", method=None, **kwargs): + """Get the rebinned axis for resampling the flux point object along the mentioned axis. + + Parameters + ---------- + fluxpoint : `~gammapy.estimators.FluxPoints` + The flux point object to rebin. + axis_name : str, optional + The axis name to combine along. Default is 'energy'. + method : str + The method to resample the axis. Supported options are + 'fixed_bins' and 'min-ts'. + kwargs : dict + Keywords passed to `get_edges_fixed_bins` or `get_edges_min_ts`. + If method is 'fixed-bins', keyword should be `group_size`. + If method is 'min-ts', keyword should be `ts_threshold`. + + Returns + ------- + axis_new : `~gammapy.maps.MapAxis` or `~gammapy.maps.TimeMapAxis` + The new axis. + + Examples + -------- + >>> from gammapy.estimators.utils import get_rebinned_axis + >>> from gammapy.estimators import FluxPoints + >>> + >>> # Rebin lightcurve axis + >>> lc_1d = FluxPoints.read( + ... "$GAMMAPY_DATA/estimators/pks2155_hess_lc/pks2155_hess_lc.fits", + ... format="lightcurve", + ... ) + >>> # Rebin axis by combining adjacent bins as per the group_size + >>> new_axis = get_rebinned_axis( + ... lc_1d, method="fixed-bins", group_size=2, axis_name="time" + ... ) + >>> + >>> # Rebin HESS flux points axis + >>> fp = FluxPoints.read( + ... "$GAMMAPY_DATA/estimators/crab_hess_fp/crab_hess_fp.fits" + ... ) + >>> # Rebin according to a minimum significance + >>> axis_new = get_rebinned_axis( + ... fp, method='min-ts', ts_threshold=4, axis_name='energy' + ... ) + """ + # TODO: Make fixed_bins and fixed_edges work for multidimensions + if not fluxpoint.geom.axes.is_unidimensional: + raise ValueError( + "Rebinning is supported only for Unidimensional FluxPoints \n " + "Please use `iter_by_axis` to create Unidimensional FluxPoints" + ) + + if method not in RESAMPLE_METHODS.keys(): + raise ValueError("Incorrect option. Choose from", RESAMPLE_METHODS.keys()) + + edges_min, edges_max = RESAMPLE_METHODS[method]( + fluxpoint=fluxpoint, axis_name=axis_name, **kwargs + ) + ax = fluxpoint.geom.axes[axis_name] + + if isinstance(ax, TimeMapAxis): + axis_new = TimeMapAxis.from_time_edges( + time_min=edges_min + ax.reference_time, + time_max=edges_max + ax.reference_time, + ) + else: + edges = np.append(edges_min, edges_max[-1]) + axis_new = MapAxis.from_edges(edges, name=axis_name, interp=ax.interp) + return axis_new
+ + + +
+[docs] +def combine_significance_maps(maps): + """Computes excess and significance for a set of datasets. + The significance computation assumes that the model contains + one degree of freedom per valid energy bin in each dataset. + The method implemented here is valid under the assumption + that the TS in each independent bin follows a Chi2 distribution, + then the sum of the TS also follows a Chi2 distribution (with the sum of the degrees of freedom). + + See, Zhen (2014): https://www.sciencedirect.com/science/article/abs/pii/S0167947313003204, + Lancaster (1961): https://onlinelibrary.wiley.com/doi/10.1111/j.1467-842X.1961.tb00058.x + + + Parameters + ---------- + maps : list of `~gammapy.estimators.FluxMaps` + List of maps with the same geometry. + + Returns + ------- + results : dict + Dictionary with entries: + + * "significance" : joint significance map. + * "df" : degree of freedom map (one norm per valid bin). + * "npred_excess" : summed excess map. + * "estimator_results" : dictionary containing the flux maps computed for each dataset. + + See also + -------- + get_combined_significance_maps : same method but computing the significance maps from estimators and datasets. + + """ + + geom = maps[0].ts.geom.to_image() + ts_sum = Map.from_geom(geom) + ts_sum_sign = Map.from_geom(geom) + npred_excess_sum = Map.from_geom(geom) + df = Map.from_geom(geom) + + for result in maps: + df += np.sum(result["ts"].data > 0, axis=0) # one dof (norm) per valid bin + ts_sum += result["ts"].reduce_over_axes() + ts_sum_sign += ( + result["ts"] * np.sign(result["npred_excess"]) + ).reduce_over_axes() + npred_excess_sum += result["npred_excess"].reduce_over_axes() + + significance = Map.from_geom(geom) + significance.data = ts_to_sigma(ts_sum.data, df.data) * np.sign(ts_sum_sign) + return dict( + significance=significance, + df=df, + ts=ts_sum, + npred_excess=npred_excess_sum, + estimator_results=maps, + )
+ + + +
+[docs] +def get_combined_significance_maps(estimator, datasets): + """Compute excess and significance for a set of datasets. + + The significance computation assumes that the model contains + one degree of freedom per valid energy bin in each dataset. + This method implemented here is valid under the assumption + that the TS in each independent bin follows a Chi2 distribution, + then the sum of the TS also follows a Chi2 distribution (with the sum of degree of freedom). + + See, Zhen (2014): https://www.sciencedirect.com/science/article/abs/pii/S0167947313003204, + Lancaster (1961): https://onlinelibrary.wiley.com/doi/10.1111/j.1467-842X.1961.tb00058.x + + + Parameters + ---------- + estimator : `~gammapy.estimators.ExcessMapEstimator` or `~gammapy.estimators.TSMapEstimator` + Excess Map Estimator or TS Map Estimator + dataset : `~gammapy.datasets.Datasets` + Datasets containing only `~gammapy.datasets.MapDataset`. + + Returns + ------- + results : dict + Dictionary with entries: + + * "significance" : joint significance map. + * "df" : degree of freedom map (one norm per valid bin). + * "npred_excess" : summed excess map. + * "estimator_results" : dictionary containing the flux maps computed for each dataset. + + See also + -------- + combine_significance_maps : same method but using directly the significance maps from estimators + + """ + from .map.excess import ExcessMapEstimator + from .map.ts import TSMapEstimator + + if not isinstance(estimator, (ExcessMapEstimator, TSMapEstimator)): + raise TypeError( + f"estimator type should be ExcessMapEstimator or TSMapEstimator), got {type(estimator)} instead." + ) + + results = [] + for dataset in datasets: + results.append(estimator.run(dataset)) + return combine_significance_maps(results)
+ + + +
+[docs] +def combine_flux_maps( + maps, method="gaussian_errors", reference_model=None, dnde_scan_axis=None +): + """Create a FluxMaps by combining a list of flux maps with the same geometry. + + This assumes the flux maps are independent measurements of the same true value. + The GTI is stacked in the process. + + Parameters + ---------- + maps : list of `~gammapy.estimators.FluxMaps` + List of maps with the same geometry. + method : str + * gaussian_errors : + Under the gaussian error approximation the likelihood is given by the gaussian distibution. + The product of gaussians is also a gaussian so can derive dnde, dnde_err, and ts. + * distrib : + Likelihood profile approximation assuming that probabilities distributions for + flux points correspond to asymmetric gaussians and for upper limits to complementary error functions. + Use available quantities among dnde, dnde_err, dnde_errp, dnde_errn, dnde_ul, and ts. + * profile : + Sum the likelihood profile maps. + The flux maps must contains the `stat_scan` maps. + + Default is "gaussian_errors" which is the faster but least accurate solution, + "distrib" will be more accurate if dnde_errp and dnde_errn are available, + "profile" will be even more accurate if "stat_scan" is available. + + reference_model : `~gammapy.modeling.models.SkyModel`, optional + Reference model to use for conversions. + Default is None and is will use the reference_model of the first FluxMaps in the list. + + dnde_scan_axis : `~gammapy.maps.MapAxis` + Map axis providing the dnde values used to compute the profile. + Default is None and it will be derived from the first FluxMaps in the list. + Used only if `method` is distrib or profile. + + Returns + ------- + flux_maps : `~gammapy.estimators.FluxMaps` + Joint flux map. + + + See also + -------- + get_combined_flux_maps : same method but using directly the flux maps from estimators + + """ + gtis = [map_.gti for map_ in maps if map_.gti is not None] + if np.any(gtis): + gti = gtis[0].copy() + for k in range(1, len(gtis)): + gti.stack(gtis[k]) + else: + gti = None + # TODO : change this once we have stackable metadata objets + metas = [map_.meta for map_ in maps if map_.meta is not None] + meta = {} + if np.any(metas): + for data in metas: + meta.update(data) + if reference_model is None: + reference_model = maps[0].reference_model + + if method == "gaussian_errors": + means = [map_.dnde.copy() for map_ in maps] + sigmas = [map_.dnde_err.copy() for map_ in maps] + # compensate for the ts deviation from gaussian approximation expectation in each map + ts_diff = np.nansum( + [ + map_.ts.data - (map_.dnde.data / map_.dnde_err.data) ** 2 + for map_ in maps + ], + axis=0, + ) + + mean = means[0] + sigma = sigmas[0] + + for k in range(1, len(means)): + mean_k = means[k].quantity.to_value(mean.unit) + sigma_k = sigmas[k].quantity.to_value(sigma.unit) + + mask_valid = np.isfinite(mean) & np.isfinite(sigma) & (sigma.data != 0) + mask_valid_k = np.isfinite(mean_k) & np.isfinite(sigma_k) & (sigma_k != 0) + mask = mask_valid & mask_valid_k + mask_k = ~mask_valid & mask_valid_k + + mean.data[mask] = ( + (mean.data * sigma_k**2 + mean_k * sigma.data**2) + / (sigma.data**2 + sigma_k**2) + )[mask] + sigma.data[mask] = ( + sigma.data * sigma_k / np.sqrt(sigma.data**2 + sigma_k**2) + )[mask] + + mean.data[mask_k] = mean_k[mask_k] + sigma.data[mask_k] = sigma_k[mask_k] + + ts = mean * mean / sigma / sigma + ts_diff + ts.data[~np.isfinite(ts.data)] = np.nan + + kwargs = dict( + sed_type="dnde", reference_model=reference_model, meta=meta, gti=gti + ) + return FluxMaps.from_maps(dict(dnde=mean, dnde_err=sigma, ts=ts), **kwargs) + + elif method in ["distrib", "profile"]: + if dnde_scan_axis is None: + dnde_scan_axis = _default_scan_map(maps[0]).geom.axes["dnde"] + for k, map_ in enumerate(maps): + if method == "profile": + map_stat_scan = interpolate_profile_map(map_, dnde_scan_axis) + else: + map_stat_scan = approximate_profile_map(map_, dnde_scan_axis) + map_stat_scan.data[np.isnan(map_stat_scan.data)] = 0.0 + if k == 0: + stat_scan = map_stat_scan + else: + stat_scan.data += map_stat_scan.data + + return get_flux_map_from_profile( + {"stat_scan": stat_scan}, + reference_model=reference_model, + meta=meta, + gti=gti, + ) + + else: + raise ValueError( + f'Invalid method provided : {method}. Available methods are : "gaussian_errors", "distrib", "profile"' + )
+ + + +
+[docs] +def get_combined_flux_maps( + estimator, + datasets, + method="gaussian_errors", + reference_model=None, + dnde_scan_axis=None, +): + """Create a `~gammapy.estimators.FluxMaps` by combining a list of flux maps with the same geometry. + + This assumes the flux maps are independent measurements of the same true value. + The GTI is stacked in the process. + + Parameters + ---------- + estimator : `~gammapy.estimators.ExcessMapEstimator` or `~gammapy.estimators.TSMapEstimator` + Excess Map Estimator or TS Map Estimator + dataset : `~gammapy.datasets.Datasets` or list of `~gammapy.datasets.MapDataset` + Datasets containing only `~gammapy.datasets.MapDataset`. + method : str + * gaussian_errors : + Under the gaussian error approximation the likelihood is given by the gaussian distibution. + The product of gaussians is also a gaussian so can derive dnde, dnde_err, and ts. + * distrib : + Likelihood profile approximation assuming that probabilities distributions for + flux points correspond to asymmetric gaussians and for upper limits to complementary error functions. + Use available quantities among dnde, dnde_err, dnde_errp, dnde_errn, dnde_ul, and ts. + * profile : + Sum the likelihood profile maps. + The flux maps must contains the `stat_scan` maps. + + Default is "gaussian_errors" which is the faster but least accurate solution, + "distrib" will be more accurate if dnde_errp and dnde_errn are available, + "profile" will be even more accurate if "stat_scan" is available. + + reference_model : `~gammapy.modeling.models.SkyModel`, optional + Reference model to use for conversions. + Default is None and is will use the reference_model of the first FluxMaps in the list. + dnde_scan_axis : `~gammapy.maps.MapAxis`, optional + Map axis providing the dnde values used to compute the profile. + If None, it will be derived from the first FluxMaps in the list. Default is None. + Used only if `method` is "distrib" or "profile". + + Returns + ------- + results : dict + Dictionary with entries: + + * "flux_maps" : `gammapy.estimators.FluxMaps` + * "estimator_results" : dictionary containing the flux maps computed for each dataset. + + See also + -------- + combine_flux_maps : same method but using directly the flux maps from estimators + + """ + from .map.excess import ExcessMapEstimator + from .map.ts import TSMapEstimator + + if not isinstance(estimator, (ExcessMapEstimator, TSMapEstimator)): + raise TypeError( + f"`estimator` type should be ExcessMapEstimator or TSMapEstimator), got {type(estimator)} instead." + ) + + results = [] + for dataset in datasets: + results.append(estimator.run(dataset)) + + output = dict() + output["flux_maps"] = combine_flux_maps( + results, + method=method, + reference_model=reference_model, + dnde_scan_axis=dnde_scan_axis, + ) + output["estimator_results"] = results + return output
+ + + +def _default_scan_map(flux_map, dnde_scan_axis=None): + if dnde_scan_axis is None: + dnde_scan_axis = MapAxis( + _generate_scan_values() * flux_map.dnde_ref.squeeze(), + interp="lin", + node_type="center", + name="dnde", + unit=flux_map.dnde_ref.unit, + ) + + geom = flux_map.dnde.geom + geom_scan = geom.to_image().to_cube([dnde_scan_axis] + list(geom.axes)) + return Map.from_geom(geom_scan, data=np.nan, unit="") + + +def interpolate_profile_map(flux_map, dnde_scan_axis=None): + """Interpolate sparse likelihood profile to regular grid. + + Parameters + ---------- + flux_map : `~gammapy.estimators.FluxMaps` + Flux map. + dnde_scan_axis : `~gammapy.maps.MapAxis` + Map axis providing the dnde values used to compute the profile. + Default is None and it will be derived from the flux_map. + + Returns + ------- + scan_map: `~gammapy.estimators.Maps` + Likelihood profile map. + + """ + stat_scan = _default_scan_map(flux_map, dnde_scan_axis) + dnde_scan_axis = stat_scan.geom.axes["dnde"] + + mask_valid = ~np.isnan(flux_map.dnde.data) + dnde_scan_values = flux_map.dnde_scan_values.quantity.to_value(dnde_scan_axis.unit) + + for ij, il, ik in zip(*np.where(mask_valid)): + spline = InterpolatedUnivariateSpline( + dnde_scan_values[ij, :, il, ik], + flux_map.stat_scan.data[ij, :, il, ik], + k=1, + ext="raise", + check_finite=True, + ) + stat_scan.data[ij, :, il, ik] = spline(dnde_scan_axis.center) + return stat_scan + + +def approximate_profile_map( + flux_map, dnde_scan_axis=None, sqrt_ts_threshold_ul="ignore" +): + """Likelihood profile approximation assuming that probabilities distributions for + flux points correspond to asymmetric gaussians and for upper limits to complementary error functions. + Use available quantities among dnde, dnde_err, dnde_errp, dnde_errn, dnde_ul and ts. + + Parameters + ---------- + flux_map : `~gammapy.estimators.FluxMaps` + Flux map. + dnde_scan_axis : `~gammapy.maps.MapAxis` + Map axis providing the dnde values used to compute the profile. + Default is None and it will be derived from the flux_map. + sqrt_ts_threshold_ul : int + Threshold value in sqrt(TS) for upper limits. + Default is `ignore` and no threshold is applied. + Setting to `None` will use the one of `flux_map`. + + Returns + ------- + scan_map: `~gammapy.estimators.Maps` + Likelihood profile map. + """ + stat_approx = _default_scan_map(flux_map, dnde_scan_axis) + dnde_coord = stat_approx.geom.get_coord()["dnde"].value + + if sqrt_ts_threshold_ul is None: + sqrt_ts_threshold_ul = flux_map.sqrt_ts_threshold_ul + + mask_valid = ~np.isnan(flux_map.dnde.data) + ij, il, ik = np.where(mask_valid) + loc = flux_map.dnde.data[mask_valid][:, None] + value = dnde_coord[ij, :, il, ik] + try: + mask_p = dnde_coord >= flux_map.dnde.data + mask_p2d = mask_p[ij, :, il, ik] + new_axis = np.ones(mask_p2d.shape[1], dtype=bool)[None, :] + scale = np.zeros(mask_p2d.shape) + scale[mask_p2d] = (flux_map.dnde_errp.data[mask_valid][:, None] * new_axis)[ + mask_p2d + ] + scale[~mask_p2d] = (flux_map.dnde_errn.data[mask_valid][:, None] * new_axis)[ + ~mask_p2d + ] + except AttributeError: + scale = flux_map.dnde_err.data[mask_valid] + scale = scale[:, None] + stat_approx.data[ij, :, il, ik] = ((value - loc) / scale) ** 2 + + try: + invalid_value = 999 + stat_min_p = (stat_approx.data + invalid_value * (~mask_p)).min( + axis=1, keepdims=True + ) + stat_min_m = (stat_approx.data + invalid_value * mask_p).min( + axis=1, keepdims=True + ) + + mask_minp = mask_p & (stat_min_p > stat_min_m) + stat_approx.data[mask_minp] = (stat_approx.data + stat_min_m - stat_min_p)[ + mask_minp + ] + mask_minn = ~mask_p & (stat_min_m >= stat_min_p) + stat_approx.data[mask_minn] = (stat_approx.data + stat_min_p - stat_min_m)[ + mask_minn + ] + except NameError: + pass + + if not sqrt_ts_threshold_ul == "ignore" and sqrt_ts_threshold_ul is not None: + mask_ul = (flux_map.sqrt_ts.data < sqrt_ts_threshold_ul) & ~np.isnan( + flux_map.dnde_ul.data + ) + ij, il, ik = np.where(mask_ul) + value = dnde_coord[ij, :, il, ik] + loc_ul = flux_map.dnde_ul.data[mask_ul][:, None] + scale_ul = flux_map.dnde_ul.data[mask_ul][:, None] + stat_approx.data[ij, :, il, ik] = -2 * np.log( + (special.erfc((-loc_ul + value) / scale_ul) / 2) + / (special.erfc((-loc_ul + 0) / scale_ul) / 2) + ) + + stat_approx.data[np.isnan(stat_approx.data)] = np.inf + stat_approx.data += -flux_map.ts.data - stat_approx.data.min(axis=1) + return stat_approx + + +def get_flux_map_from_profile( + flux_map, n_sigma=1, n_sigma_ul=2, reference_model=None, meta=None, gti=None +): + """Create a new flux map using the likehood profile (stat_scan) + to get ts, dnde, dnde_err, dnde_errp, dnde_errn, and dnde_ul. + + Parameters + ---------- + flux_maps : `~gammapy.estimators.FluxMaps` or dict of `~gammapy.maps.WcsNDMap` + Flux map or dict containing a `stat_scan` entry + n_sigma : int + Number of sigma for flux error. Default is 1. + n_sigma_ul : int + Number of sigma for flux upper limits. Default is 2. + reference_model : `~gammapy.modeling.models.SkyModel`, optional + The reference model to use for conversions. If None, a model consisting + of a point source with a power law spectrum of index 2 is assumed. + Default is None and the one of `flux_map` will be used if available + meta : dict, optional + Dict of metadata. + Default is None and the one of `flux_map` will be used if available + gti : `~gammapy.data.GTI`, optional + Maps GTI information. + Default is None and the one of `flux_map` will be used if available + + Returns + ------- + flux_maps : `~gammapy.estimators.FluxMaps` + Flux map. + + """ + if isinstance(flux_map, dict): + output_maps = flux_map + else: + if reference_model is None: + reference_model = flux_map.reference_model + if gti is None: + gti = flux_map.gti + if meta is None: + meta = flux_map.meta + + output_maps = dict( + stat_scan=flux_map.stat_scan, dnde_scan_values=flux_map.dnde_scan_values + ) + + if getattr(flux_map, "dnde_scan_values", False): + dnde_coord = flux_map["dnde_scan_values"].quantity + else: + dnde_coord = flux_map["stat_scan"].geom.get_coord()["dnde"] + + geom = ( + flux_map["stat_scan"] + .geom.to_image() + .to_cube([flux_map["stat_scan"].geom.axes["energy"]]) + ) + + ts = -flux_map["stat_scan"].data.min(axis=1) * u.Unit("") + ind = flux_map["stat_scan"].data.argmin(axis=1) + ij, ik, il = np.indices(ind.shape) + dnde = dnde_coord[ij, ind, ik, il] + + maskp = dnde_coord > dnde + stat_diff = flux_map["stat_scan"].data - flux_map["stat_scan"].data.min(axis=1) + + invalid_value = 999 + ind = np.abs(stat_diff + invalid_value * maskp - n_sigma**2).argmin(axis=1) + dnde_errn = dnde - dnde_coord[ij, ind, ik, il] + + ind = np.abs(stat_diff + invalid_value * (~maskp) - n_sigma**2).argmin(axis=1) + dnde_errp = dnde_coord[ij, ind, ik, il] - dnde + + ind = np.abs(stat_diff + invalid_value * (~maskp) - n_sigma_ul**2).argmin(axis=1) + dnde_ul = dnde_coord[ij, ind, ik, il] + + dnde_err = (dnde_errn + dnde_errp) / 2 + + maps = dict( + ts=ts, + dnde=dnde, + dnde_err=dnde_err, + dnde_errn=dnde_errn, + dnde_errp=dnde_errp, + dnde_ul=dnde_ul, + ) + for key in maps.keys(): + maps[key] = Map.from_geom(geom, data=maps[key].value, unit=maps[key].unit) + kwargs = dict(sed_type="dnde", gti=gti, reference_model=reference_model, meta=meta) + output_maps.update(maps) + return FluxMaps.from_maps(output_maps, **kwargs) + + +def _generate_scan_values(power_min=-6, power_max=2, relative_error=1e-2): + """Values sampled such as we can probe a given `relative_error` on the norm + between 10**`power_min` and 10**`power_max`. + + """ + arrays = [] + for power in range(power_min, power_max): + vmin = 10**power + vmax = 10 ** (power + 1) + bin_per_decade = int((vmax - vmin) / (vmin * relative_error)) + arrays.append(np.linspace(vmin, vmax, bin_per_decade + 1, dtype=np.float32)) + scan_1side = np.unique(np.concatenate(arrays)) + return np.concatenate((-scan_1side[::-1], [0], scan_1side)) + + +def _get_default_norm( + norm, + scan_min=0.2, + scan_max=5, + scan_n_values=11, + scan_values=None, + interp="lin", +): + """Create default norm parameter.""" + if norm is None or isinstance(norm, dict): + norm_kwargs = dict( + name="norm", + value=1, + unit="", + interp=interp, + frozen=False, + scan_min=scan_min, + scan_max=scan_max, + scan_n_values=scan_n_values, + scan_values=scan_values, + ) + if isinstance(norm, dict): + norm_kwargs.update(norm) + try: + norm = Parameter(**norm_kwargs) + except TypeError as error: + raise TypeError(f"Invalid dict key for norm init : {error}") + if norm.name != "norm": + raise ValueError("norm.name is not 'norm'") + return norm + + +def _get_norm_scan_values(norm, result): + """Compute norms based on the fit result to sample the stat profile at different scales.""" + norm_err = result["norm_err"] + norm_value = result["norm"] + if ~np.isfinite(norm_err) or norm_err == 0: + norm_err = 0.1 + if ~np.isfinite(norm_value) or norm_value == 0: + norm_value = 1.0 + sparse_norms = np.concatenate( + ( + norm_value + np.linspace(-2.5, 2.5, 51) * norm_err, + norm_value + np.linspace(-10, 10, 21) * norm_err, + np.abs(norm_value) * np.linspace(-10, 10, 21), + np.linspace(-10, 10, 21), + np.linspace(norm.scan_values[0], norm.scan_values[-1], 2), + ) + ) + sparse_norms = np.unique(sparse_norms) + if len(sparse_norms) != 109: + rand_norms = 20 * np.random.rand(109 - len(sparse_norms)) - 10 + sparse_norms = np.concatenate((sparse_norms, rand_norms)) + return np.sort(sparse_norms) + + +def apply_threshold_sensitivity( + background, excess_counts, gamma_min=10, bkg_syst_fraction=0.05 +): + """Apply sensitivity threshold in case it is limited by statistic or background""" + is_gamma_limited = excess_counts < gamma_min + excess_counts[is_gamma_limited] = gamma_min + bkg_syst_limited = excess_counts < bkg_syst_fraction * background + excess_counts[bkg_syst_limited] = bkg_syst_fraction * background[bkg_syst_limited] + return excess_counts +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/background.html b/docs/dev/_modules/gammapy/irf/background.html new file mode 100644 index 00000000000..5956abd0221 --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/background.html @@ -0,0 +1,1070 @@ + + + + + + + + + + gammapy.irf.background — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.background

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import angular_separation
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from matplotlib.colors import LogNorm
+from gammapy.maps import MapAxes, MapAxis
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.visualization.utils import add_colorbar
+from .core import IRF
+from .io import gadf_is_pointlike
+
+__all__ = ["Background3D", "Background2D", "BackgroundIRF"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class BackgroundIRF(IRF): + """Background IRF base class. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Axes. + data : `~np.ndarray` + Data array. + unit : str or `~astropy.units.Unit` + Data unit usually ``s^-1 MeV^-1 sr^-1``. + meta : dict + Metadata dictionary. + + """ + + default_interp_kwargs = dict(bounds_error=False, fill_value=0.0, values_scale="log") + """Default Interpolation kwargs to extrapolate.""" + +
+[docs] + @classmethod + def from_table(cls, table, format="gadf-dl3"): + """Read from `~astropy.table.Table`. + + Parameters + ---------- + table : `~astropy.table.Table` + Table with background data. + format : {"gadf-dl3"} + Format specification. Default is "gadf-dl3". + + Returns + ------- + bkg : `Background2D` or `Background2D` + Background IRF class. + """ + # TODO: some of the existing background files have missing HDUCLAS keywords + # which are required to define the correct Gammapy axis names + + if "HDUCLAS2" not in table.meta: + log.warning("Missing 'HDUCLAS2' keyword assuming 'BKG'") + table = table.copy() + table.meta["HDUCLAS2"] = "BKG" + + axes = MapAxes.from_table(table, format=format)[cls.required_axes] + + # TODO: spec says key should be "BKG", but there are files around + # (e.g. CTA 1DC) that use "BGD". For now we support both + if "BKG" in table.colnames: + bkg_name = "BKG" + elif "BGD" in table.colnames: + bkg_name = "BGD" + else: + raise ValueError("Invalid column names. Need 'BKG' or 'BGD'.") + + data = table[bkg_name].quantity[0].T + + if data.unit == "" or isinstance(data.unit, u.UnrecognizedUnit): + data = u.Quantity(data.value, "s-1 MeV-1 sr-1", copy=COPY_IF_NEEDED) + log.warning( + "Invalid unit found in background table! Assuming (s-1 MeV-1 sr-1)" + ) + + # TODO: The present HESS and CTA background fits files + # have a reverse order (lon, lat, E) than recommended in GADF(E, lat, lon) + # For now, we support both. + + if axes.shape == axes.shape[::-1]: + log.error("Ambiguous axes order in Background fits files!") + + if np.shape(data) != axes.shape: + log.debug("Transposing background table on read") + data = data.transpose() + + return cls( + axes=axes, + data=data.value, + meta=table.meta, + unit=data.unit, + is_pointlike=gadf_is_pointlike(table.meta), + fov_alignment=table.meta.get("FOVALIGN", "RADEC"), + )
+
+ + + +
+[docs] +class Background3D(BackgroundIRF): + """Background 3D. + + Data format specification: :ref:`gadf:bkg_3d`. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy (reconstructed energy axis) + * fov_lon (field of view longitude) + * fov_lon (field of view latitude) + data : `~np.ndarray` + Data array. + unit : str or `~astropy.units.Unit` + Data unit usually ``s^-1 MeV^-1 sr^-1``. + fov_alignment : `~gammapy.irf.FoVAlignment` + The orientation of the field of view coordinate system. + meta : dict + Metadata dictionary. + + Examples + -------- + Here's an example you can use to learn about this class: + + >>> from gammapy.irf import Background3D + >>> filename = '$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits' + >>> bkg_3d = Background3D.read(filename, hdu='BACKGROUND') + >>> print(bkg_3d) + Background3D + ------------ + <BLANKLINE> + axes : ['energy', 'fov_lon', 'fov_lat'] + shape : (21, 36, 36) + ndim : 3 + unit : 1 / (MeV s sr) + dtype : >f4 + <BLANKLINE> + + """ + + tag = "bkg_3d" + required_axes = ["energy", "fov_lon", "fov_lat"] + default_unit = u.s**-1 * u.MeV**-1 * u.sr**-1 + +
+[docs] + def to_2d(self): + """Convert to `Background2D`. + + This takes the values at Y = 0 and X >= 0. + """ + # TODO: this is incorrect as it misses the Jacobian? + + idx_lon = self.axes["fov_lon"].coord_to_idx(0 * u.deg)[0] + idx_lat = self.axes["fov_lat"].coord_to_idx(0 * u.deg)[0] + data = self.quantity[:, idx_lon:, idx_lat].copy() + + offset = self.axes["fov_lon"].edges[idx_lon:] + offset_axis = MapAxis.from_edges(offset, name="offset") + + return Background2D( + axes=[self.axes["energy"], offset_axis], data=data.value, unit=data.unit + )
+ + +
+[docs] + def peek(self, figsize=(10, 8)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple, optional + Size of the figure. Default is (10, 8). + + """ + return self.to_2d().peek(figsize)
+ + +
+[docs] + def plot_at_energy( + self, + energy=1 * u.TeV, + add_cbar=True, + ncols=3, + figsize=None, + axes_loc=None, + kwargs_colorbar=None, + **kwargs, + ): + """Plot the background rate in FoV coordinates at a given energy. + + Parameters + ---------- + energy : `~astropy.units.Quantity`, optional + List of energies. Default is 1 TeV. + add_cbar : bool, optional + Add color bar. Default is True. + ncols : int, optional + Number of columns to plot. Default is 3. + figsize : tuple, optional + Figure size. Default is None. + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs_colorbar : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + """ + kwargs_colorbar = kwargs_colorbar or {} + + n = len(energy) + cols = min(ncols, n) + rows = 1 + (n - 1) // cols + width = 12 + cfraction = 0.0 + if add_cbar: + cfraction = 0.15 + if figsize is None: + figsize = (width, rows * width // (cols * (1 + cfraction))) + + fig, axes = plt.subplots( + ncols=cols, + nrows=rows, + figsize=figsize, + gridspec_kw={"hspace": 0.2, "wspace": 0.3}, + ) + + x = self.axes["fov_lat"].edges + y = self.axes["fov_lon"].edges + X, Y = np.meshgrid(x, y) + + for i, ee in enumerate(energy): + if len(energy) == 1: + ax = axes + else: + ax = axes.flat[i] + bkg = self.evaluate(energy=ee) + bkg_unit = bkg.unit + bkg = bkg.value + with quantity_support(): + caxes = ax.pcolormesh(X, Y, bkg.squeeze(), **kwargs) + + self.axes["fov_lat"].format_plot_xaxis(ax) + self.axes["fov_lon"].format_plot_yaxis(ax) + ax.set_title(str(ee)) + + if add_cbar: + label = f"Background [{bkg_unit.to_string(UNIT_STRING_FORMAT)}]" + kwargs_colorbar.setdefault("label", label) + cbar = add_colorbar(caxes, ax=ax, axes_loc=axes_loc, **kwargs_colorbar) + cbar.formatter.set_powerlimits((0, 0)) + + row, col = np.unravel_index(i, shape=(rows, cols)) + if col > 0: + ax.set_ylabel("") + if row < rows - 1: + ax.set_xlabel("") + ax.set_aspect("equal", "box")
+
+ + + +
+[docs] +class Background2D(BackgroundIRF): + """Background 2D. + + Data format specification: :ref:`gadf:bkg_2d` + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy (reconstructed energy axis) + * offset (field of view offset axis) + data : `~np.ndarray` + Data array. + unit : str or `~astropy.units.Unit` + Data unit usually ``s^-1 MeV^-1 sr^-1``. + meta : dict + Metadata dictionary. + """ + + tag = "bkg_2d" + required_axes = ["energy", "offset"] + default_unit = u.s**-1 * u.MeV**-1 * u.sr**-1 + +
+[docs] + def to_3d(self): + """Convert to Background3D.""" + offsets = self.axes["offset"].edges + edges_neg = np.negative(offsets)[::-1] + edges_neg = edges_neg[edges_neg <= 0] + edges = np.concatenate((edges_neg, offsets[offsets > 0])) + fov_lat = MapAxis.from_edges(edges=edges, name="fov_lat") + fov_lon = MapAxis.from_edges(edges=edges, name="fov_lon") + + axes = MapAxes([self.axes["energy"], fov_lon, fov_lat]) + coords = axes.get_coord() + offset = angular_separation( + 0 * u.rad, 0 * u.rad, coords["fov_lon"], coords["fov_lat"] + ) + data = self.evaluate(offset=offset, energy=coords["energy"]) + + return Background3D( + axes=axes, + data=data, + )
+ + +
+[docs] + def plot_at_energy( + self, energy=1 * u.TeV, add_cbar=True, ncols=3, figsize=None, **kwargs + ): + """Plot the background rate in FoV coordinates at a given energy. + + Parameters + ---------- + energy : `~astropy.units.Quantity`, optional + List of energy. Default is 1 TeV. + add_cbar : bool, optional + Add color bar. Default is True. + ncols : int, optional + Number of columns to plot. Default is 3. + figsize : tuple, optional + Figure size. Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + """ + bkg_3d = self.to_3d() + bkg_3d.plot_at_energy( + energy=energy, add_cbar=add_cbar, ncols=ncols, figsize=figsize, **kwargs + )
+ + +
+[docs] + def plot( + self, ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs + ): + """Plot energy offset dependence of the background model. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + add_cbar : bool, optional + Add a colorbar to the plot. Default is True. + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs_colorbar : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + energy_axis, offset_axis = self.axes["energy"], self.axes["offset"] + data = self.quantity.value + + kwargs.setdefault("cmap", "GnBu") + kwargs.setdefault("edgecolors", "face") + kwargs.setdefault("norm", LogNorm()) + + kwargs_colorbar = kwargs_colorbar or {} + + with quantity_support(): + caxes = ax.pcolormesh( + energy_axis.edges, offset_axis.edges, data.T, **kwargs + ) + + energy_axis.format_plot_xaxis(ax=ax) + offset_axis.format_plot_yaxis(ax=ax) + + if add_cbar: + label = ( + f"Background rate [{self.quantity.unit.to_string(UNIT_STRING_FORMAT)}]" + ) + kwargs_colorbar.setdefault("label", label) + add_colorbar(caxes, ax=ax, axes_loc=axes_loc, **kwargs_colorbar)
+ + +
+[docs] + def plot_offset_dependence(self, ax=None, energy=None, **kwargs): + """Plot background rate versus offset for a given energy. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + energy : `~astropy.units.Quantity`, optional + Energy. Default is None. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + if energy is None: + energy_axis = self.axes["energy"] + e_min, e_max = np.log10(energy_axis.center.value[[0, -1]]) + energy = np.logspace(e_min, e_max, 4) * energy_axis.unit + + offset_axis = self.axes["offset"] + + for ee in energy: + bkg = self.evaluate(offset=offset_axis.center, energy=ee) + if np.isnan(bkg).all(): + continue + label = f"energy = {ee:.1f}" + with quantity_support(): + ax.plot(offset_axis.center, bkg, label=label, **kwargs) + + offset_axis.format_plot_xaxis(ax=ax) + ax.set_ylabel( + f"Background rate [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + ax.set_yscale("log") + ax.legend(loc="upper right") + return ax
+ + +
+[docs] + def plot_energy_dependence(self, ax=None, offset=None, **kwargs): + """Plot background rate versus energy for a given offset. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + offset : `~astropy.coordinates.Angle`, optional + Offset. Default is None. + kwargs : dict + Forwarded to plt.plot(). + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + if offset is None: + offset_axis = self.axes["offset"] + off_min, off_max = offset_axis.center.value[[0, -1]] + offset = np.linspace(off_min, off_max, 4) * offset_axis.unit + + energy_axis = self.axes["energy"] + + for off in offset: + bkg = self.evaluate(offset=off, energy=energy_axis.center) + label = f"offset = {off:.2f}" + with quantity_support(): + ax.plot(energy_axis.center, bkg, label=label, **kwargs) + + energy_axis.format_plot_xaxis(ax=ax) + ax.set_yscale("log") + ax.set_ylabel( + f"Background rate [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + ax.legend(loc="best") + return ax
+ + +
+[docs] + def plot_spectrum(self, ax=None, **kwargs): + """Plot angle integrated background rate versus energy. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + **kwargs : dict + Keyword arguments forwarded to `~matplotib.pyplot.plot`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + offset_axis = self.axes["offset"] + energy_axis = self.axes["energy"] + + bkg = self.integral(offset=offset_axis.bounds[1], axis_name="offset") + bkg = bkg.to(u.Unit("s-1") / energy_axis.unit) + + with quantity_support(): + ax.plot(energy_axis.center, bkg, label="integrated spectrum", **kwargs) + + energy_axis.format_plot_xaxis(ax=ax) + ax.set_yscale("log") + ax.set_ylabel( + f"Background rate [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + ax.legend(loc="best") + return ax
+ + +
+[docs] + def peek(self, figsize=(10, 8)): + """Quick-look summary plots.""" + fig, axes = plt.subplots(nrows=2, ncols=2, figsize=figsize) + self.plot(ax=axes[1][1]) + self.plot_offset_dependence(ax=axes[0][0]) + self.plot_energy_dependence(ax=axes[1][0]) + self.plot_spectrum(ax=axes[0][1]) + plt.tight_layout()
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/core.html b/docs/dev/_modules/gammapy/irf/core.html new file mode 100644 index 00000000000..e44f5ba5c7d --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/core.html @@ -0,0 +1,1659 @@ + + + + + + + + + + gammapy.irf.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import html
+import logging
+from copy import deepcopy
+from enum import Enum
+import numpy as np
+from astropy import units as u
+from astropy.io import fits
+from astropy.table import Table
+from astropy.utils import lazyproperty
+from gammapy.maps import Map, MapAxes, MapAxis, RegionGeom
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.integrate import trapz_loglog
+from gammapy.utils.interpolation import (
+    ScaledRegularGridInterpolator,
+    interpolation_scale,
+)
+from gammapy.utils.scripts import make_path
+from .io import IRF_DL3_HDU_SPECIFICATION, IRF_MAP_HDU_SPECIFICATION, gadf_is_pointlike
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class FoVAlignment(str, Enum): + """ + Orientation of the Field of View Coordinate System. + + Currently, only two possible alignments are supported: alignment with + the horizontal coordinate system (ALTAZ) and alignment with the equatorial + coordinate system (RADEC). + """ + + ALTAZ = "ALTAZ" + RADEC = "RADEC" + # used for backward compatibility of old HESS data + REVERSE_LON_RADEC = "REVERSE_LON_RADEC"
+ + + +
+[docs] +class IRF(metaclass=abc.ABCMeta): + """IRF base class for DL3 instrument response functions. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Axes. + data : `~numpy.ndarray` or `~astropy.units.Quantity`, optional + Data. Default is 0. + unit : str or `~astropy.units.Unit`, optional + Unit, ignored if data is a Quantity. + Default is "". + is_pointlike : bool, optional + Whether the IRF is point-like. True for point-like IRFs, False for full-enclosure. + Default is False. + fov_alignment : `FoVAlignment`, optional + The orientation of the field of view coordinate system. + Default is FoVAlignment.RADEC. + meta : dict, optional + Metadata dictionary. + Default is None. + """ + + default_interp_kwargs = dict( + bounds_error=False, + fill_value=0.0, + ) + + def __init__( + self, + axes, + data=0, + unit="", + is_pointlike=False, + fov_alignment=FoVAlignment.RADEC, + meta=None, + interp_kwargs=None, + ): + axes = MapAxes(axes) + axes.assert_names(self.required_axes) + self._axes = axes + self._fov_alignment = FoVAlignment(fov_alignment) + self._is_pointlike = is_pointlike + + if isinstance(data, u.Quantity): + self.data = data.value + if not self.default_unit.is_equivalent(data.unit): + raise ValueError( + f"Error: {data.unit} is not an allowed unit. {self.tag} " + f"requires {self.default_unit} data quantities." + ) + else: + self._unit = data.unit + else: + self.data = data + self._unit = unit + self.meta = meta or {} + if interp_kwargs is None: + interp_kwargs = self.default_interp_kwargs.copy() + self.interp_kwargs = interp_kwargs + + @property + @abc.abstractmethod + def tag(self): + pass + + @property + @abc.abstractmethod + def required_axes(self): + pass + + @property + def is_pointlike(self): + """Whether the IRF is pointlike of full containment.""" + return self._is_pointlike + + @property + def has_offset_axis(self): + """Whether the IRF explicitly depends on offset.""" + return "offset" in self.required_axes + + @property + def fov_alignment(self): + """Alignment of the field of view coordinate axes, see `FoVAlignment`.""" + return self._fov_alignment + + @property + def data(self): + return self._data + + @data.setter + def data(self, value): + """Set data. + + Parameters + ---------- + value : `~numpy.ndarray` + Data array. + """ + required_shape = self.axes.shape + + if np.isscalar(value): + value = value * np.ones(required_shape) + + if isinstance(value, u.Quantity): + raise TypeError("Map data must be a Numpy array. Set unit separately") + + if np.shape(value) != required_shape: + raise ValueError( + f"data shape {value.shape} does not match" + f"axes shape {required_shape}" + ) + + self._data = value + + # reset cached interpolators + self.__dict__.pop("_interpolate", None) + self.__dict__.pop("_integrate_rad", None) + +
+[docs] + def interp_missing_data(self, axis_name): + """Interpolate missing data along a given axis.""" + data = self.data.copy() + values_scale = self.interp_kwargs.get("values_scale", "lin") + scale = interpolation_scale(values_scale) + + axis = self.axes.index(axis_name) + mask = ~np.isfinite(data) | (data == 0.0) + + coords = np.where(mask) + xp = np.arange(data.shape[axis]) + + for coord in zip(*coords): + idx = list(coord) + idx[axis] = slice(None) + fp = data[tuple(idx)] + valid = ~mask[tuple(idx)] + + if np.any(valid): + value = np.interp( + x=coord[axis], + xp=xp[valid], + fp=scale(fp[valid]), + left=np.nan, + right=np.nan, + ) + if not np.isnan(value): + data[coord] = scale.inverse(value) + self.data = data # reset cached values
+ + + @property + def unit(self): + """Map unit as a `~astropy.units.Unit` object.""" + return self._unit + + @lazyproperty + def _interpolate(self): + kwargs = self.interp_kwargs.copy() + # Allow extrapolation with in bins + kwargs["fill_value"] = None + points = [a.center for a in self.axes] + points_scale = tuple([a.interp for a in self.axes]) + return ScaledRegularGridInterpolator( + points, + self.quantity, + points_scale=points_scale, + **kwargs, + ) + + @property + def quantity(self): + """Quantity as a `~astropy.units.Quantity` object.""" + return u.Quantity(self.data, unit=self.unit, copy=COPY_IF_NEEDED) + + @quantity.setter + def quantity(self, val): + """Set data and unit. + + Parameters + ---------- + value : `~astropy.units.Quantity` + Quantity. + """ + val = u.Quantity(val, copy=COPY_IF_NEEDED) + self.data = val.value + self._unit = val.unit + +
+[docs] + def to_unit(self, unit): + """Convert IRF to different unit. + + Parameters + ---------- + unit : `~astropy.unit.Unit` or str + New unit. + + Returns + ------- + irf : `IRF` + IRF with new unit and converted data. + """ + data = self.quantity.to_value(unit) + return self.__class__( + self.axes, data=data, meta=self.meta, interp_kwargs=self.interp_kwargs + )
+ + + @property + def axes(self): + """`MapAxes`.""" + return self._axes + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += "-" * len(self.__class__.__name__) + "\n\n" + str_ += f"\taxes : {self.axes.names}\n" + str_ += f"\tshape : {self.data.shape}\n" + str_ += f"\tndim : {len(self.axes)}\n" + str_ += f"\tunit : {self.unit}\n" + str_ += f"\tdtype : {self.data.dtype}\n" + return str_.expandtabs(tabsize=2) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def evaluate(self, method=None, **kwargs): + """Evaluate IRF. + + Parameters + ---------- + **kwargs : dict + Coordinates at which to evaluate the IRF. + method : str {'linear', 'nearest'}, optional + Interpolation method. + + Returns + ------- + array : `~astropy.units.Quantity` + Interpolated values. + """ + # TODO: change to coord dict? + non_valid_axis = set(kwargs).difference(self.axes.names) + + if non_valid_axis: + raise ValueError( + f"Not a valid coordinate axis {non_valid_axis}" + f" Choose from: {self.axes.names}" + ) + + coords_default = self.axes.get_coord() + + for key, value in kwargs.items(): + coord = kwargs.get(key, value) + if coord is not None: + coords_default[key] = u.Quantity(coord, copy=COPY_IF_NEEDED) + + data = self._interpolate(coords_default.values(), method=method) + + if self.interp_kwargs["fill_value"] is not None: + idxs = self.axes.coord_to_idx(coords_default, clip=False) + invalid = np.broadcast_arrays(*[idx == -1 for idx in idxs]) + mask = self._mask_out_bounds(invalid) + if not data.shape: + mask = mask.squeeze() + data[mask] = self.interp_kwargs["fill_value"] + data[~np.isfinite(data)] = self.interp_kwargs["fill_value"] + return data
+ + + @staticmethod + def _mask_out_bounds(invalid): + return np.any(invalid, axis=0) + +
+[docs] + def integrate_log_log(self, axis_name, **kwargs): + """Integrate along a given axis. + + This method uses log-log trapezoidal integration. + + Parameters + ---------- + axis_name : str + Along which axis to integrate. + **kwargs : dict + Coordinates at which to evaluate the IRF. + + Returns + ------- + array : `~astropy.units.Quantity` + Returns 2D array with axes offset. + """ + axis = self.axes.index(axis_name) + data = self.evaluate(**kwargs, method="linear") + values = kwargs[axis_name] + return trapz_loglog(data, values, axis=axis)
+ + +
+[docs] + def cumsum(self, axis_name): + """Compute cumsum along a given axis. + + Parameters + ---------- + axis_name : str + Along which axis to integrate. + + Returns + ------- + irf : `~IRF` + Cumsum IRF. + + """ + axis = self.axes[axis_name] + axis_idx = self.axes.index(axis_name) + + shape = [1] * len(self.axes) + shape[axis_idx] = -1 + + values = self.quantity * axis.bin_width.reshape(shape) + + if axis_name in ["rad", "offset"]: + # take Jacobian into account + values = 2 * np.pi * axis.center.reshape(shape) * values + + data = values.cumsum(axis=axis_idx) + + axis_shifted = MapAxis.from_nodes( + axis.edges[1:], name=axis.name, interp=axis.interp + ) + axes = self.axes.replace(axis_shifted) + return self.__class__(axes=axes, data=data.value, unit=data.unit)
+ + +
+[docs] + def integral(self, axis_name, **kwargs): + """Compute integral along a given axis. + + This method uses interpolation of the cumulative sum. + + Parameters + ---------- + axis_name : str + Along which axis to integrate. + **kwargs : dict + Coordinates at which to evaluate the IRF. + + Returns + ------- + array : `~astropy.units.Quantity` + Returns 2D array with axes offset. + + """ + cumsum = self.cumsum(axis_name=axis_name) + return cumsum.evaluate(**kwargs)
+ + +
+[docs] + def normalize(self, axis_name): + """Normalise data in place along a given axis. + + Parameters + ---------- + axis_name : str + Along which axis to normalize. + + """ + cumsum = self.cumsum(axis_name=axis_name).quantity + + with np.errstate(invalid="ignore", divide="ignore"): + axis = self.axes.index(axis_name=axis_name) + normed = self.quantity / cumsum.max(axis=axis, keepdims=True) + + self.quantity = np.nan_to_num(normed)
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, hdu=None, format="gadf-dl3"): + """Create from `~astropy.io.fits.HDUList`. + + Parameters + ---------- + hdulist : `~astropy.io.HDUList` + HDU list. + hdu : str + HDU name. + format : {"gadf-dl3"} + Format specification. Default is "gadf-dl3". + + Returns + ------- + irf : `IRF` + IRF class. + """ + if hdu is None: + hdu = IRF_DL3_HDU_SPECIFICATION[cls.tag]["extname"] + + return cls.from_table(Table.read(hdulist[hdu]), format=format)
+ + +
+[docs] + @classmethod + def read(cls, filename, hdu=None, format="gadf-dl3"): + """Read from file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + Filename. + hdu : str + HDU name. + format : {"gadf-dl3"}, optional + Format specification. Default is "gadf-dl3". + + Returns + ------- + irf : `IRF` + IRF class. + """ + with fits.open(str(make_path(filename)), memmap=False) as hdulist: + return cls.from_hdulist(hdulist, hdu=hdu)
+ + +
+[docs] + @classmethod + def from_table(cls, table, format="gadf-dl3"): + """Read from `~astropy.table.Table`. + + Parameters + ---------- + table : `~astropy.table.Table` + Table with IRF data. + format : {"gadf-dl3"}, optional + Format specification. Default is "gadf-dl3". + + Returns + ------- + irf : `IRF` + IRF class. + """ + axes = MapAxes.from_table(table=table, format=format) + axes = axes[cls.required_axes] + column_name = IRF_DL3_HDU_SPECIFICATION[cls.tag]["column_name"] + data = table[column_name].quantity[0].transpose() + + return cls( + axes=axes, + data=data.value, + meta=table.meta, + unit=data.unit, + is_pointlike=gadf_is_pointlike(table.meta), + fov_alignment=table.meta.get("FOVALIGN", "RADEC"), + )
+ + +
+[docs] + def to_table(self, format="gadf-dl3"): + """Convert to table. + + Parameters + ---------- + format : {"gadf-dl3"}, optional + Format specification. Default is "gadf-dl3". + + Returns + ------- + table : `~astropy.table.Table` + IRF data table. + """ + table = self.axes.to_table(format=format) + + if format == "gadf-dl3": + table.meta = self.meta.copy() + spec = IRF_DL3_HDU_SPECIFICATION[self.tag] + + table.meta.update(spec["mandatory_keywords"]) + + if "FOVALIGN" in table.meta: + table.meta["FOVALIGN"] = self.fov_alignment.value + + if self.is_pointlike: + table.meta["HDUCLAS3"] = "POINT-LIKE" + else: + table.meta["HDUCLAS3"] = "FULL-ENCLOSURE" + + table[spec["column_name"]] = self.quantity.T[np.newaxis] + else: + raise ValueError(f"Not a valid supported format: '{format}'") + + return table
+ + +
+[docs] + def to_table_hdu(self, format="gadf-dl3"): + """Convert to `~astropy.io.fits.BinTableHDU`. + + Parameters + ---------- + format : {"gadf-dl3"}, optional + Format specification. Default is "gadf-dl3". + + Returns + ------- + hdu : `~astropy.io.fits.BinTableHDU` + IRF data table HDU. + """ + name = IRF_DL3_HDU_SPECIFICATION[self.tag]["extname"] + return fits.BinTableHDU(self.to_table(format=format), name=name)
+ + +
+[docs] + def to_hdulist(self, format="gadf-dl3"): + """ + Write the HDU list. + + Parameters + ---------- + format : {"gadf-dl3"}, optional + Format specification. Default is "gadf-dl3". + """ + hdu = self.to_table_hdu(format=format) + return fits.HDUList([fits.PrimaryHDU(), hdu])
+ + +
+[docs] + def write(self, filename, *args, **kwargs): + """Write IRF to fits. + + Calls `~astropy.io.fits.HDUList.writeto`, forwarding all arguments. + """ + self.to_hdulist().writeto(str(make_path(filename)), *args, **kwargs)
+ + +
+[docs] + def pad(self, pad_width, axis_name, **kwargs): + """Pad IRF along a given axis. + + Parameters + ---------- + pad_width : {sequence, array_like, int} + Number of pixels padded to the edges of each axis. + axis_name : str + Axis to downsample. By default, spatial axes are padded. + **kwargs : dict + Keyword argument forwarded to `~numpy.pad`. + + Returns + ------- + irf : `IRF` + Padded IRF. + + """ + if np.isscalar(pad_width): + pad_width = (pad_width, pad_width) + + idx = self.axes.index(axis_name) + pad_width_np = [(0, 0)] * self.data.ndim + pad_width_np[idx] = pad_width + + kwargs.setdefault("mode", "constant") + + axes = self.axes.pad(axis_name=axis_name, pad_width=pad_width) + data = np.pad(self.data, pad_width=pad_width_np, **kwargs) + return self.__class__( + data=data, axes=axes, meta=self.meta.copy(), unit=self.unit + )
+ + +
+[docs] + def slice_by_idx(self, slices): + """Slice sub IRF from IRF object. + + Parameters + ---------- + slices : dict + Dictionary of axes names and `slice` object pairs. Contains one + element for each non-spatial dimension. Axes not specified in the + dictionary are kept unchanged. + + Returns + ------- + sliced : `IRF` + Sliced IRF object. + """ + axes = self.axes.slice_by_idx(slices) + + diff = set(self.axes.names).difference(axes.names) + + if diff: + diff_slice = {key: value for key, value in slices.items() if key in diff} + raise ValueError(f"Integer indexing not supported, got {diff_slice}") + + slices = tuple([slices.get(ax.name, slice(None)) for ax in self.axes]) + data = self.data[slices] + return self.__class__(axes=axes, data=data, unit=self.unit, meta=self.meta)
+ + +
+[docs] + def is_allclose(self, other, rtol_axes=1e-3, atol_axes=1e-6, **kwargs): + """Compare two data IRFs for equivalency. + + Parameters + ---------- + other : `~gammapy.irfs.IRF` + The IRF to compare against. + rtol_axes : float, optional + Relative tolerance for the axis comparison. + Default is 1e-3. + atol_axes : float, optional + Absolute tolerance for the axis comparison. + Default is 1e-6. + **kwargs : dict + Keywords passed to `numpy.allclose`. + + Returns + ------- + is_allclose : bool + Whether the IRF is all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self.data.shape != other.data.shape: + return False + + axes_eq = self.axes.is_allclose(other.axes, rtol=rtol_axes, atol=atol_axes) + data_eq = np.allclose(self.quantity, other.quantity, **kwargs) + return axes_eq and data_eq
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other=other, rtol=1e-3, rtol_axes=1e-6)
+ + + +
+[docs] +class IRFMap: + """IRF map base class for DL4 instrument response functions.""" + + def __init__(self, irf_map, exposure_map): + self._irf_map = irf_map + self.exposure_map = exposure_map + # TODO: only allow for limited set of additional axes? + irf_map.geom.axes.assert_names(self.required_axes, allow_extra=True) + + @property + @abc.abstractmethod + def tag(self): + pass + + @property + @abc.abstractmethod + def required_axes(self): + pass + + @lazyproperty + def has_single_spatial_bin(self): + return self._irf_map.geom.to_image().data_shape == (1, 1) + + # TODO: add mask safe to IRFMap as a regular attribute and don't derive it from the data + @property + def mask_safe_image(self): + """Mask safe for the map.""" + mask = self._irf_map > (0 * self._irf_map.unit) + return mask.reduce_over_axes(func=np.logical_or) + +
+[docs] + def to_region_nd_map(self, region): + """Extract IRFMap in a given region or position. + + If a region is given a mean IRF is computed, if a position is given the + IRF is interpolated. + + Parameters + ---------- + region : `~regions.SkyRegion` or `~astropy.coordinates.SkyCoord` + Region or position where to get the map. + + Returns + ------- + irf : `IRFMap` + IRF map with region geometry. + """ + if region is None: + region = self._irf_map.geom.center_skydir + + # TODO: compute an exposure weighted mean PSF here + kwargs = {"region": region, "func": np.nanmean} + + if "energy" in self._irf_map.geom.axes.names: + kwargs["method"] = "nearest" + + irf_map = self._irf_map.to_region_nd_map(**kwargs) + + if self.exposure_map: + exposure_map = self.exposure_map.to_region_nd_map(**kwargs) + else: + exposure_map = None + + return self.__class__(irf_map, exposure_map=exposure_map)
+ + + def _get_nearest_valid_position(self, position): + """Get nearest valid position.""" + is_valid = np.nan_to_num(self.mask_safe_image.get_by_coord(position))[0] + + if not is_valid and np.any(self.mask_safe_image > 0): + log.warning( + f"Position {position} is outside " + "valid IRF map range, using nearest IRF defined within" + ) + + position = self.mask_safe_image.mask_nearest_position(position) + return position + +
+[docs] + @classmethod + def from_hdulist( + cls, + hdulist, + hdu=None, + hdu_bands=None, + exposure_hdu=None, + exposure_hdu_bands=None, + format="gadf", + ): + """Create from `~astropy.io.fits.HDUList`. + + Parameters + ---------- + hdulist : `~astropy.fits.HDUList` + HDU list. + hdu : str, optional + Name or index of the HDU with the IRF map. + Default is None. + hdu_bands : str, optional + Name or index of the HDU with the IRF map BANDS table. + Default is None. + exposure_hdu : str, optional + Name or index of the HDU with the exposure map data. + Default is None. + exposure_hdu_bands : str, optional + Name or index of the HDU with the exposure map BANDS table. + Default is None. + format : {"gadf", "gtpsf"}, optional + File format. Default is "gadf". + + Returns + ------- + irf_map : `IRFMap` + IRF map. + """ + output_class = cls + if format == "gadf": + if hdu is None: + hdu = IRF_MAP_HDU_SPECIFICATION[cls.tag] + + irf_map = Map.from_hdulist( + hdulist, hdu=hdu, hdu_bands=hdu_bands, format=format + ) + + if exposure_hdu is None: + exposure_hdu = IRF_MAP_HDU_SPECIFICATION[cls.tag] + "_exposure" + + if exposure_hdu in hdulist: + exposure_map = Map.from_hdulist( + hdulist, + hdu=exposure_hdu, + hdu_bands=exposure_hdu_bands, + format=format, + ) + else: + exposure_map = None + + if cls.tag == "psf_map" and "energy" in irf_map.geom.axes.names: + from .psf import RecoPSFMap + + output_class = RecoPSFMap + if cls.tag == "edisp_map" and irf_map.geom.axes[0].name == "energy": + from .edisp import EDispKernelMap + + output_class = EDispKernelMap + + elif format == "gtpsf": + rad_axis = MapAxis.from_table_hdu(hdulist["THETA"], format=format) + + table = Table.read(hdulist["PSF"]) + energy_axis_true = MapAxis.from_table(table, format=format) + + geom_psf = RegionGeom.create(region=None, axes=[rad_axis, energy_axis_true]) + + psf_map = Map.from_geom(geom=geom_psf, data=table["Psf"].data, unit="sr-1") + + geom_exposure = geom_psf.squash("rad") + exposure_map = Map.from_geom( + geom=geom_exposure, + data=table["Exposure"].data.reshape(geom_exposure.data_shape), + unit="cm2 s", + ) + return cls(psf_map=psf_map, exposure_map=exposure_map) + else: + raise ValueError(f"Format {format} not supported") + + return output_class(irf_map, exposure_map)
+ + +
+[docs] + @classmethod + def read(cls, filename, format="gadf", hdu=None, checksum=False): + """Read an IRF_map from file and create corresponding object. + + Parameters + ---------- + filename : str or `~pathlib.Path` + File name. + format : {"gadf", "gtpsf"}, optional + File format. Default is "gadf". + hdu : str or int + HDU location. Default is None. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + irf_map : `PSFMap`, `EDispMap` or `EDispKernelMap` + IRF map. + + """ + filename = make_path(filename) + # TODO: this will test all hdus and the one specifically of interest + with fits.open(filename, memmap=False, checksum=checksum) as hdulist: + return cls.from_hdulist(hdulist, format=format, hdu=hdu)
+ + +
+[docs] + def to_hdulist(self, format="gadf"): + """Convert to `~astropy.io.fits.HDUList`. + + Parameters + ---------- + format : {"gadf", "gtpsf"}, optional + File format. Default is "gadf". + + Returns + ------- + hdu_list : `~astropy.io.fits.HDUList` + HDU list. + """ + if format == "gadf": + hdu = IRF_MAP_HDU_SPECIFICATION[self.tag] + hdulist = self._irf_map.to_hdulist(hdu=hdu, format=format) + exposure_hdu = hdu + "_exposure" + + if self.exposure_map is not None: + new_hdulist = self.exposure_map.to_hdulist( + hdu=exposure_hdu, format=format + ) + hdulist.extend(new_hdulist[1:]) + + elif format == "gtpsf": + if not self._irf_map.geom.is_region: + raise ValueError( + "Format 'gtpsf' is only supported for region geometries" + ) + + rad_hdu = self._irf_map.geom.axes["rad"].to_table_hdu(format=format) + psf_table = self._irf_map.geom.axes["energy_true"].to_table(format=format) + + psf_table["Exposure"] = self.exposure_map.quantity[..., 0, 0].to("cm^2 s") + psf_table["Psf"] = self._irf_map.quantity[..., 0, 0].to("sr^-1") + psf_hdu = fits.BinTableHDU(data=psf_table, name="PSF") + hdulist = fits.HDUList([fits.PrimaryHDU(), rad_hdu, psf_hdu]) + else: + raise ValueError(f"Format {format} not supported") + + return hdulist
+ + +
+[docs] + def write(self, filename, overwrite=False, format="gadf", checksum=False): + """Write IRF map to fits. + + Parameters + ---------- + filename : str or `~pathlib.Path` + Filename to write to. + overwrite : bool, optional + Overwrite existing file. Default is False. + format : {"gadf", "gtpsf"}, optional + File format. Default is "gadf". + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + hdulist = self.to_hdulist(format=format) + hdulist.writeto(str(filename), overwrite=overwrite, checksum=checksum)
+ + +
+[docs] + def stack(self, other, weights=None, nan_to_num=True): + """Stack IRF map with another one in place. + + Parameters + ---------- + other : `~gammapy.irf.IRFMap` + IRF map to be stacked with this one. + weights : `~gammapy.maps.Map`, optional + Map with stacking weights. Default is None. + nan_to_num: bool, optional + Non-finite values are replaced by zero if True. + Default is True. + """ + if self.exposure_map is None or other.exposure_map is None: + raise ValueError( + f"Missing exposure map for {self.__class__.__name__}.stack" + ) + + cutout_info = getattr(other._irf_map.geom, "cutout_info", None) + + if cutout_info is not None: + slices = cutout_info["parent-slices"] + parent_slices = Ellipsis, slices[0], slices[1] + else: + parent_slices = slice(None) + + self._irf_map.data[parent_slices] *= self.exposure_map.data[parent_slices] + self._irf_map.stack( + other._irf_map * other.exposure_map.data, + weights=weights, + nan_to_num=nan_to_num, + ) + + # stack exposure map + if weights and "energy" in weights.geom.axes.names: + weights = weights.reduce( + axis_name="energy", func=np.logical_or, keepdims=True + ) + self.exposure_map.stack( + other.exposure_map, weights=weights, nan_to_num=nan_to_num + ) + + with np.errstate(invalid="ignore"): + self._irf_map.data[parent_slices] /= self.exposure_map.data[parent_slices] + self._irf_map.data = np.nan_to_num(self._irf_map.data)
+ + +
+[docs] + def copy(self): + """Copy IRF map.""" + return deepcopy(self)
+ + +
+[docs] + def cutout(self, position, width, mode="trim", min_npix=3): + """Cutout IRF map. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + mode : {'trim', 'partial', 'strict'}, optional + Mode option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. + Default is "trim". + min_npix : bool, optional + Force width to a minimmum number of pixels. + Default is 3. The default is 3 pixels so interpolation is done correctly + if the binning of the IRF is larger than the width of the analysis region. + + Returns + ------- + cutout : `IRFMap` + Cutout IRF map. + """ + + irf_map = self._irf_map.cutout(position, width, mode, min_npix=min_npix) + if self.exposure_map: + exposure_map = self.exposure_map.cutout( + position, width, mode, min_npix=min_npix + ) + else: + exposure_map = None + return self.__class__(irf_map, exposure_map=exposure_map)
+ + +
+[docs] + def downsample(self, factor, axis_name=None, weights=None): + """Downsample the spatial dimension by a given factor. + + Parameters + ---------- + factor : int + Downsampling factor. + axis_name : str + Axis to downsample. By default, spatial axes are downsampled. + weights : `~gammapy.maps.Map`, optional + Map with weights downsampling. Default is None. + + Returns + ------- + map : `IRFMap` + Downsampled IRF map. + """ + irf_map = self._irf_map.downsample( + factor=factor, axis_name=axis_name, preserve_counts=True, weights=weights + ) + if axis_name is None: + exposure_map = self.exposure_map.downsample( + factor=factor, preserve_counts=False + ) + else: + exposure_map = self.exposure_map.copy() + + return self.__class__(irf_map, exposure_map=exposure_map)
+ + +
+[docs] + def slice_by_idx(self, slices): + """Slice sub dataset. + + The slicing only applies to the maps that define the corresponding axes. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dictionary are kept unchanged. + + Returns + ------- + map_out : `IRFMap` + Sliced IRF map object. + """ + irf_map = self._irf_map.slice_by_idx(slices=slices) + + if "energy_true" in slices and self.exposure_map: + exposure_map = self.exposure_map.slice_by_idx(slices=slices) + else: + exposure_map = self.exposure_map + + return self.__class__(irf_map, exposure_map=exposure_map)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/edisp/core.html b/docs/dev/_modules/gammapy/irf/edisp/core.html new file mode 100644 index 00000000000..bca27c098c2 --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/edisp/core.html @@ -0,0 +1,868 @@ + + + + + + + + + + gammapy.irf.edisp.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.edisp.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+import scipy.special
+from astropy import units as u
+from astropy.coordinates import Angle, SkyCoord
+from astropy.units import Quantity
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from matplotlib.colors import PowerNorm
+from gammapy.maps import MapAxes, MapAxis, RegionGeom
+from gammapy.utils.deprecation import deprecated_renamed_argument
+from gammapy.visualization.utils import add_colorbar
+from ..core import IRF
+
+__all__ = ["EnergyDispersion2D"]
+
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class EnergyDispersion2D(IRF): + """Offset-dependent energy dispersion matrix. + + Data format specification: :ref:`gadf:edisp_2d` + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy_true (true energy axis) + * migra (energy migration axis) + * offset (field of view offset axis) + data : `~numpy.ndarray` + Energy dispersion probability density. + + Examples + -------- + Read energy dispersion IRF from disk: + + >>> from gammapy.maps import MapAxis, MapAxes + >>> from gammapy.irf import EnergyDispersion2D + >>> filename = '$GAMMAPY_DATA/hess-dl3-dr1/data/hess_dl3_dr1_obs_id_020136.fits.gz' + >>> edisp2d = EnergyDispersion2D.read(filename, hdu="EDISP") + + Create energy dispersion matrix (`~gammapy.irf.EnergyDispersion`) + for a given field of view offset and energy binning: + + >>> energy_axis = MapAxis.from_bounds(0.1, 20, nbin=60, unit="TeV", interp="log", name='energy') + >>> edisp = edisp2d.to_edisp_kernel(offset='1.2 deg', energy_axis=energy_axis, + ... energy_axis_true=energy_axis.copy(name='energy_true')) + + Create energy dispersion IRF from axes: + + >>> energy_axis_true = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=10, name="energy_true") + >>> offset_axis = MapAxis.from_bounds(0, 1, nbin=3, unit="deg", name="offset", node_type="edges") + >>> migra_axis = MapAxis.from_bounds(0, 3, nbin=3, name="migra", node_type="edges") + >>> axes = MapAxes([energy_axis_true, migra_axis, offset_axis]) + >>> edisp2d_axes = EnergyDispersion2D(axes=axes) + + See Also + -------- + EnergyDispersion. + """ + + tag = "edisp_2d" + required_axes = ["energy_true", "migra", "offset"] + default_unit = u.one + + @property + def _default_offset(self): + if self.axes["offset"].nbin == 1: + default_offset = self.axes["offset"].center + else: + default_offset = [1.0] * u.deg + return default_offset + + def _mask_out_bounds(self, invalid): + return ( + invalid[self.axes.index("energy_true")] & invalid[self.axes.index("migra")] + ) | invalid[self.axes.index("offset")] + +
+[docs] + @classmethod + def from_gauss( + cls, energy_axis_true, migra_axis, offset_axis, bias, sigma, pdf_threshold=1e-6 + ): + """Create Gaussian energy dispersion matrix (`EnergyDispersion2D`). + + The output matrix will be Gaussian in (energy_true / energy). + + The ``bias`` and ``sigma`` should be either floats or arrays of same dimension than + ``energy_true``. ``bias`` refers to the mean value of the ``migra`` + distribution minus one, i.e. ``bias=0`` means no bias. + + Note that, the output matrix is flat in offset. + + Parameters + ---------- + energy_axis_true : `MapAxis` + True energy axis. + migra_axis : `~astropy.units.Quantity` + Migra axis. + offset_axis : `~astropy.units.Quantity` + Bin edges of offset. + bias : float or `~numpy.ndarray` + Center of Gaussian energy dispersion, bias. + sigma : float or `~numpy.ndarray` + RMS width of Gaussian energy dispersion, resolution. + pdf_threshold : float, optional + Zero suppression threshold. Default is 1e-6. + """ + axes = MapAxes([energy_axis_true, migra_axis, offset_axis]) + coords = axes.get_coord(mode="edges", axis_name="migra") + + migra_min = coords["migra"][:, :-1, :] + migra_max = coords["migra"][:, 1:, :] + + # Analytical formula for integral of Gaussian + s = np.sqrt(2) * sigma + t1 = (migra_max - 1 - bias) / s + t2 = (migra_min - 1 - bias) / s + pdf = (scipy.special.erf(t1) - scipy.special.erf(t2)) / 2 + pdf = pdf / (migra_max - migra_min) + + # no offset dependence + data = pdf.T * np.ones(axes.shape) + data[data < pdf_threshold] = 0 + + return cls( + axes=axes, + data=data.value, + )
+ + +
+[docs] + @deprecated_renamed_argument( + ["energy_true", "energy"], + ["energy_axis_true", "energy_axis"], + ["v1.3", "v1.3"], + arg_in_kwargs=True, + ) + def to_edisp_kernel(self, offset, energy_axis_true=None, energy_axis=None): + """Detector response R(Delta E_reco, Delta E_true). + + Probability to reconstruct an energy in a given true energy band + in a given reconstructed energy band. + + Parameters + ---------- + offset : `~astropy.coordinates.Angle` + Offset. + energy_axis_true : `~gammapy.maps.MapAxis`, optional + True energy axis. Default is None. + energy_axis : `~gammapy.maps.MapAxis`, optional + Reconstructed energy axis. Default is None. + + Returns + ------- + edisp : `~gammapy.irf.EDispKernel` + Energy dispersion matrix. + """ + from gammapy.makers.utils import make_edisp_kernel_map + + offset = Angle(offset) + + if isinstance(energy_axis, Quantity): + energy_axis = MapAxis.from_energy_edges(energy_axis) + if energy_axis is None: + energy_axis = self.axes["energy_true"].copy(name="energy") + + if isinstance(energy_axis_true, Quantity): + energy_axis_true = MapAxis.from_energy_edges( + energy_axis_true, + name="energy_true", + ) + if energy_axis_true is None: + energy_axis_true = self.axes["energy_true"] + + pointing = SkyCoord("0d", "0d") + + center = pointing.directional_offset_by( + position_angle=0 * u.deg, separation=offset + ) + geom = RegionGeom.create(region=center, axes=[energy_axis, energy_axis_true]) + + edisp = make_edisp_kernel_map(geom=geom, edisp=self, pointing=pointing) + return edisp.get_edisp_kernel()
+ + +
+[docs] + def normalize(self): + """Normalise energy dispersion.""" + super().normalize(axis_name="migra")
+ + +
+[docs] + def plot_migration(self, ax=None, offset=None, energy_true=None, **kwargs): + """Plot energy dispersion for given offset and true energy. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + offset : `~astropy.coordinates.Angle`, optional + Offset. Default is None. + energy_true : `~astropy.units.Quantity`, optional + True energy. Default is None. + **kwargs : dict + Keyword arguments forwarded to `~matplotlib.pyplot.plot`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + if offset is None: + offset = self._default_offset + else: + offset = np.atleast_1d(Angle(offset)) + + if energy_true is None: + energy_true = u.Quantity([0.1, 1, 10], "TeV") + else: + energy_true = np.atleast_1d(u.Quantity(energy_true)) + + migra = self.axes["migra"] + + with quantity_support(): + for ener in energy_true: + for off in offset: + disp = self.evaluate( + offset=off, energy_true=ener, migra=migra.center + ) + label = f"offset = {off:.1f}\nenergy = {ener:.1f}" + ax.plot(migra.center, disp, label=label, **kwargs) + + migra.format_plot_xaxis(ax=ax) + ax.set_ylabel("Probability density") + ax.legend(loc="upper left") + return ax
+ + +
+[docs] + def plot_bias( + self, + ax=None, + offset=None, + add_cbar=False, + axes_loc=None, + kwargs_colorbar=None, + **kwargs, + ): + """Plot migration as a function of true energy for a given offset. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + offset : `~astropy.coordinates.Angle`, optional + Offset. Default is None. + add_cbar : bool, optional + Add a colorbar to the plot. Default is False. + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs_colorbar : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + kwargs.setdefault("cmap", "GnBu") + kwargs.setdefault("norm", PowerNorm(gamma=0.5)) + + kwargs_colorbar = kwargs_colorbar or {} + + ax = plt.gca() if ax is None else ax + + if offset is None: + offset = self._default_offset + + energy_true = self.axes["energy_true"] + migra = self.axes["migra"] + + z = self.evaluate( + offset=offset, + energy_true=energy_true.center.reshape(1, -1, 1), + migra=migra.center.reshape(1, 1, -1), + ).value[0] + + with quantity_support(): + caxes = ax.pcolormesh(energy_true.edges, migra.edges, z.T, **kwargs) + + energy_true.format_plot_xaxis(ax=ax) + migra.format_plot_yaxis(ax=ax) + + if add_cbar: + label = "Probability density [A.U]." + kwargs_colorbar.setdefault("label", label) + add_colorbar(caxes, ax=ax, axes_loc=axes_loc, **kwargs_colorbar) + + return ax
+ + +
+[docs] + def peek(self, figsize=(15, 5)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple, optional + Size of the resulting plot. Default is (15, 5). + """ + fig, axes = plt.subplots(nrows=1, ncols=3, figsize=figsize) + self.plot_bias(ax=axes[0]) + self.plot_migration(ax=axes[1]) + edisp = self.to_edisp_kernel(offset=self._default_offset[0]) + edisp.plot_matrix(ax=axes[2]) + + plt.tight_layout()
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/edisp/kernel.html b/docs/dev/_modules/gammapy/irf/edisp/kernel.html new file mode 100644 index 00000000000..7ba01eca222 --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/edisp/kernel.html @@ -0,0 +1,1206 @@ + + + + + + + + + + gammapy.irf.edisp.kernel — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.edisp.kernel

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from astropy.io import fits
+from astropy.table import Table
+from astropy.units import Quantity
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from matplotlib.colors import PowerNorm
+from gammapy.maps import MapAxis
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.utils.scripts import make_path
+from gammapy.visualization.utils import add_colorbar
+from ..core import IRF
+
+__all__ = ["EDispKernel"]
+
+
+
+[docs] +class EDispKernel(IRF): + """Energy dispersion matrix. + + Data format specification: :ref:`gadf:ogip-rmf`. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy_true (true energy axis) + * energy (reconstructed energy axis) + data : array_like + 2D energy dispersion matrix. + + Examples + -------- + Create a Gaussian energy dispersion matrix:: + + >>> from gammapy.maps import MapAxis + >>> from gammapy.irf import EDispKernel + >>> energy = MapAxis.from_energy_bounds(0.1, 10, 10, unit='TeV') + >>> energy_true = MapAxis.from_energy_bounds(0.1, 10, 10, unit='TeV', name='energy_true') + >>> edisp = EDispKernel.from_gauss(energy_axis_true=energy_true, energy_axis=energy, sigma=0.1, bias=0) + + Have a quick look: + + >>> print(edisp) + EDispKernel + ----------- + <BLANKLINE> + axes : ['energy_true', 'energy'] + shape : (10, 10) + ndim : 2 + unit : + dtype : float64 + <BLANKLINE> + >>> edisp.peek() + + """ + + tag = "edisp_kernel" + required_axes = ["energy_true", "energy"] + default_interp_kwargs = dict(bounds_error=False, fill_value=0, method="nearest") + """Default Interpolation kwargs for `~IRF`. Fill zeros and do not + interpolate""" + + @property + def pdf_matrix(self): + """Energy dispersion PDF matrix as a `~numpy.ndarray`. + + Rows (first index): True Energy + Columns (second index): Reco Energy + """ + return self.data + +
+[docs] + def pdf_in_safe_range(self, lo_threshold, hi_threshold): + """PDF matrix with bins outside threshold set to 0. + + Parameters + ---------- + lo_threshold : `~astropy.units.Quantity` + Low reconstructed energy threshold. + hi_threshold : `~astropy.units.Quantity` + High reconstructed energy threshold. + """ + data = self.pdf_matrix.copy() + energy = self.axes["energy"].edges + + if lo_threshold is None and hi_threshold is None: + idx = slice(None) + else: + idx = (energy[:-1] < lo_threshold) | (energy[1:] > hi_threshold) + data[:, idx] = 0 + return data
+ + +
+[docs] + def to_image(self, lo_threshold=None, hi_threshold=None): + """Return a 2D edisp by summing the pdf matrix over the ereco axis. + + Parameters + ---------- + lo_threshold : `~astropy.units.Quantity`, optional + Low reconstructed energy threshold. Default is None. + hi_threshold : `~astropy.units.Quantity`, optional + High reconstructed energy threshold. Default is None. + """ + energy_axis = self.axes["energy"] + lo_threshold = lo_threshold or energy_axis.edges[0] + hi_threshold = hi_threshold or energy_axis.edges[-1] + data = self.pdf_in_safe_range(lo_threshold, hi_threshold) + + return self.__class__( + axes=self.axes.squash("energy"), + data=np.sum(data, axis=1, keepdims=True), + )
+ + +
+[docs] + @classmethod + def from_gauss(cls, energy_axis_true, energy_axis, sigma, bias, pdf_threshold=1e-6): + """Create Gaussian energy dispersion matrix (`EnergyDispersion`). + + Calls :func:`gammapy.irf.EnergyDispersion2D.from_gauss`. + + Parameters + ---------- + energy_axis_true : `~astropy.units.Quantity` + Bin edges of true energy axis. + energy_axis : `~astropy.units.Quantity` + Bin edges of reconstructed energy axis. + bias : float or `~numpy.ndarray` + Center of Gaussian energy dispersion, bias. + sigma : float or `~numpy.ndarray` + RMS width of Gaussian energy dispersion, resolution. + pdf_threshold : float, optional + Zero suppression threshold. Default is 1e-6. + + Returns + ------- + edisp : `EDispKernel` + Energy dispersion kernel. + """ + from .core import EnergyDispersion2D + + migra_axis = MapAxis.from_bounds(1.0 / 3, 3, nbin=200, name="migra") + + # A dummy offset axis (need length 2 for interpolation to work) + offset_axis = MapAxis.from_edges([0, 1, 2], unit="deg", name="offset") + + edisp = EnergyDispersion2D.from_gauss( + energy_axis_true=energy_axis_true, + migra_axis=migra_axis, + offset_axis=offset_axis, + sigma=sigma, + bias=bias, + pdf_threshold=pdf_threshold, + ) + return edisp.to_edisp_kernel( + offset=offset_axis.center[0], energy_axis=energy_axis + )
+ + +
+[docs] + @classmethod + def from_diagonal_response(cls, energy_axis_true, energy_axis=None): + """Create energy dispersion from a diagonal response, i.e. perfect energy resolution. + + This creates the matrix corresponding to a perfect energy response. + It contains ones where the energy_true center is inside the e_reco bin. + It is a square diagonal matrix if energy_true = e_reco. + + This is useful in cases where code always applies an edisp, + but you don't want it to do anything. + + Parameters + ---------- + energy_axis_true : `~gammapy.maps.MapAxis` + True energy axis. + energy_axis : `~gammapy.maps.MapAxis`, optional + Reconstructed energy axis. Default is None. + + Examples + -------- + If ``energy_true`` equals ``energy``, you get a diagonal matrix: + + >>> from gammapy.irf import EDispKernel + >>> from gammapy.maps import MapAxis + >>> import astropy.units as u + + >>> energy_true_axis = MapAxis.from_energy_edges( + ... [0.5, 1, 2, 4, 6] * u.TeV, name="energy_true" + ... ) + >>> edisp = EDispKernel.from_diagonal_response(energy_true_axis) + >>> edisp.plot_matrix() # doctest: +SKIP + + Example with different energy binnings: + + >>> energy_true_axis = MapAxis.from_energy_edges( + ... [0.5, 1, 2, 4, 6] * u.TeV, name="energy_true" + ... ) + >>> energy_axis = MapAxis.from_energy_edges([2, 4, 6] * u.TeV) + >>> edisp = EDispKernel.from_diagonal_response(energy_true_axis, energy_axis) + >>> edisp.plot_matrix() # doctest: +SKIP + """ + from .map import get_overlap_fraction + + energy_axis_true.assert_name("energy_true") + + if energy_axis is None: + energy_axis = energy_axis_true.copy(name="energy") + + data = get_overlap_fraction(energy_axis, energy_axis_true) + return cls(axes=[energy_axis_true, energy_axis], data=data.value)
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, hdu1="MATRIX", hdu2="EBOUNDS"): + """Create `EnergyDispersion` object from `~astropy.io.fits.HDUList`. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + HDU list with ``MATRIX`` and ``EBOUNDS`` extensions. + hdu1 : str, optional + HDU containing the energy dispersion matrix. Default is "MATRIX". + hdu2 : str, optional + HDU containing the energy axis information. Default is "EBOUNDS". + """ + matrix_hdu = hdulist[hdu1] + ebounds_hdu = hdulist[hdu2] + + data = matrix_hdu.data + header = matrix_hdu.header + + pdf_matrix = np.zeros([len(data), header["DETCHANS"]], dtype=np.float64) + + for i, l in enumerate(data): + if l.field("N_GRP"): + m_start = 0 + for k in range(l.field("N_GRP")): + chan_min = l.field("F_CHAN")[k] + chan_max = l.field("F_CHAN")[k] + l.field("N_CHAN")[k] + + pdf_matrix[i, chan_min:chan_max] = l.field("MATRIX")[ + m_start : m_start + + l.field("N_CHAN")[ + k + ] # noqa: E203 + ] + m_start += l.field("N_CHAN")[k] + + table = Table.read(ebounds_hdu) + energy_axis = MapAxis.from_table(table, format="ogip") + + table = Table.read(matrix_hdu) + energy_axis_true = MapAxis.from_table(table, format="ogip-arf") + + return cls(axes=[energy_axis_true, energy_axis], data=pdf_matrix)
+ + +
+[docs] + @classmethod + def read(cls, filename, hdu1="MATRIX", hdu2="EBOUNDS", checksum=False): + """Read from file. + + Parameters + ---------- + filename : `pathlib.Path` or str + File to read. + hdu1 : str, optional + HDU containing the energy dispersion matrix. Default is "MATRIX". + hdu2 : str, optional + HDU containing the energy axis information. Default is "EBOUNDS". + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + """ + with fits.open( + str(make_path(filename)), memmap=False, checksum=checksum + ) as hdulist: + return cls.from_hdulist(hdulist, hdu1=hdu1, hdu2=hdu2)
+ + +
+[docs] + def to_hdulist(self, format="ogip", **kwargs): + """Convert RMF to FITS HDU list format. + + Parameters + ---------- + format : {"ogip", "ogip-sherpa"} + Format to use. Default is "ogip". + + Returns + ------- + hdulist : `~astropy.io.fits.HDUList` + RMF in HDU list format. + + Notes + ----- + For more information on the RMF FITS file format see: + https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/summary/cal_gen_92_002_summary.html + """ + # Cannot use table_to_fits here due to variable length array + # http://docs.astropy.org/en/v1.0.4/io/fits/usage/unfamiliar.html + format_arf = format.replace("ogip", "ogip-arf") + table = self.to_table(format=format_arf) + + name = table.meta.pop("name") + + header = fits.Header() + header.update(table.meta) + + cols = table.columns + c0 = fits.Column( + name=cols[0].name, format="E", array=cols[0], unit=str(cols[0].unit) + ) + c1 = fits.Column( + name=cols[1].name, format="E", array=cols[1], unit=str(cols[1].unit) + ) + c2 = fits.Column(name=cols[2].name, format="I", array=cols[2]) + c3 = fits.Column(name=cols[3].name, format="PI()", array=cols[3]) + c4 = fits.Column(name=cols[4].name, format="PI()", array=cols[4]) + c5 = fits.Column(name=cols[5].name, format="PE()", array=cols[5]) + + hdu = fits.BinTableHDU.from_columns( + [c0, c1, c2, c3, c4, c5], header=header, name=name + ) + + ebounds_hdu = self.axes["energy"].to_table_hdu(format=format) + prim_hdu = fits.PrimaryHDU() + + return fits.HDUList([prim_hdu, hdu, ebounds_hdu])
+ + +
+[docs] + def to_table(self, format="ogip"): + """Convert to `~astropy.table.Table`. + + The output table is in the OGIP RMF format. + https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/memos/cal_gen_92_002/cal_gen_92_002.html#Tab:1 # noqa: E501 + + Parameters + ---------- + format : {"ogip", "ogip-sherpa"} + Format to use. Default is "ogip". + + Returns + ------- + table : `~astropy.table.Table` + Matrix table. + + """ + table = self.axes["energy_true"].to_table(format=format) + + rows = self.pdf_matrix.shape[0] + n_grp = [] + f_chan = np.ndarray(dtype=object, shape=rows) + n_chan = np.ndarray(dtype=object, shape=rows) + matrix = np.ndarray(dtype=object, shape=rows) + + # Make RMF type matrix + for idx, row in enumerate(self.data): + pos = np.nonzero(row)[0] + borders = np.where(np.diff(pos) != 1)[0] + # add 1 to borders for correct behaviour of np.split + groups = np.split(pos, borders + 1) + n_grp_temp = len(groups) if len(groups) > 0 else 1 + n_chan_temp = np.asarray([val.size for val in groups]) + try: + f_chan_temp = np.asarray([val[0] for val in groups]) + except IndexError: + f_chan_temp = np.zeros(1) + + n_grp.append(n_grp_temp) + f_chan[idx] = f_chan_temp + n_chan[idx] = n_chan_temp + matrix[idx] = row[pos] + + n_grp = np.asarray(n_grp, dtype=np.int16) + + # Get total number of groups and channel subsets + numgrp, numelt = 0, 0 + for val, val2 in zip(n_grp, n_chan): + numgrp += np.sum(val) + numelt += np.sum(val2) + + table["N_GRP"] = n_grp + table["F_CHAN"] = f_chan + table["N_CHAN"] = n_chan + table["MATRIX"] = matrix + + table.meta = { + "name": "MATRIX", + "chantype": "PHA", + "hduclass": "OGIP", + "hduclas1": "RESPONSE", + "hduclas2": "RSP_MATRIX", + "detchans": self.axes["energy"].nbin, + "numgrp": numgrp, + "numelt": numelt, + "tlmin4": 0, + } + + return table
+ + +
+[docs] + def write(self, filename, format="ogip", checksum=False, **kwargs): + """Write to file. + + Parameters + ---------- + filename : str + Filename. + format : {"ogip", "ogip-sherpa"} + Format to use. Default is "ogip". + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + """ + filename = str(make_path(filename)) + hdulist = self.to_hdulist(format=format) + + hdulist.writeto(filename, checksum=checksum, **kwargs)
+ + +
+[docs] + def get_resolution(self, energy_true): + """Get energy resolution for a given true energy. + + The resolution is given as a percentage of the true energy. + + Parameters + ---------- + energy_true : `~astropy.units.Quantity` + True energy. + """ + energy_axis_true = self.axes["energy_true"] + var = self._get_variance(energy_true) + idx_true = energy_axis_true.coord_to_idx(energy_true) + energy_true_real = energy_axis_true.center[idx_true] + return np.sqrt(var) / energy_true_real
+ + +
+[docs] + def get_bias(self, energy_true): + r"""Get reconstruction bias for a given true energy. + + Bias is defined as + + .. math:: \frac{E_{reco}-E_{true}}{E_{true}} + + Parameters + ---------- + energy_true : `~astropy.units.Quantity` + True energy. + """ + energy_axis_true = self.axes["energy_true"] + energy = self.get_mean(energy_true) + idx_true = energy_axis_true.coord_to_idx(energy_true) + energy_true_real = energy_axis_true.center[idx_true] + bias = (energy - energy_true_real) / energy_true_real + return bias
+ + +
+[docs] + def get_bias_energy(self, bias, energy_min=None, energy_max=None): + """Find energy corresponding to a given bias. + + In case the solution is not unique, provide the ``energy_min`` or ``energy_max`` arguments + to limit the solution to the given range. By default, the peak energy of the + bias is chosen as ``energy_min``. + + Parameters + ---------- + bias : float + Bias value. + energy_min : `~astropy.units.Quantity` + Lower bracket value in case solution is not unique. + energy_max : `~astropy.units.Quantity` + Upper bracket value in case solution is not unique. + + Returns + ------- + bias_energy : `~astropy.units.Quantity` + Reconstructed energy corresponding to the given bias. + """ + from gammapy.modeling.models import TemplateSpectralModel + + energy_true = self.axes["energy_true"].center + values = self.get_bias(energy_true) + + if energy_min is None: + # use the peak bias energy as default minimum + energy_min = energy_true[np.nanargmax(values)] + if energy_max is None: + energy_max = energy_true[-1] + + bias_spectrum = TemplateSpectralModel(energy=energy_true, values=values) + + energy_true_bias = bias_spectrum.inverse( + Quantity(bias), energy_min=energy_min, energy_max=energy_max + ) + if np.isnan(energy_true_bias[0]): + energy_true_bias[0] = energy_min + # return reconstructed energy + return energy_true_bias * (1 + bias)
+ + +
+[docs] + def get_mean(self, energy_true): + """Get mean reconstructed energy for a given true energy.""" + idx = self.axes["energy_true"].coord_to_idx(energy_true) + pdf = self.data[idx] + + # compute sum along reconstructed energy + norm = np.sum(pdf, axis=-1) + temp = np.sum(pdf * self.axes["energy"].center, axis=-1) + + with np.errstate(invalid="ignore"): + # corm can be zero + mean = np.nan_to_num(temp / norm) + + return mean
+ + + def _get_variance(self, energy_true): + """Get variance of log reconstructed energy.""" + # evaluate the pdf at given true energies + idx = self.axes["energy_true"].coord_to_idx(energy_true) + pdf = self.data[idx] + + # compute mean + mean = self.get_mean(energy_true) + + # create array of reconstructed-energy nodes + # for each given true energy value + # (first axis is reconstructed energy) + erec = self.axes["energy"].center + erec = np.repeat(erec, max(np.sum(mean.shape), 1)).reshape( + erec.shape + mean.shape + ) + + # compute deviation from mean + # (and move reconstructed energy axis to last axis) + temp_ = (erec - mean) ** 2 + temp = np.rollaxis(temp_, 1) + + # compute sum along reconstructed energy + # axis to determine the variance + norm = np.sum(pdf, axis=-1) + var = np.sum(temp * pdf, axis=-1) + + return var / norm + +
+[docs] + def plot_matrix( + self, ax=None, add_cbar=False, axes_loc=None, kwargs_colorbar=None, **kwargs + ): + """Plot PDF matrix. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + add_cbar : bool, optional + Add a colorbar to the plot. Default is False. + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs_colorbar : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + kwargs.setdefault("cmap", "GnBu") + norm = PowerNorm(gamma=0.5, vmin=0, vmax=1) + kwargs.setdefault("norm", norm) + + kwargs_colorbar = kwargs_colorbar or {} + + ax = plt.gca() if ax is None else ax + + energy_axis_true = self.axes["energy_true"] + energy_axis = self.axes["energy"] + + with quantity_support(): + caxes = ax.pcolormesh( + energy_axis_true.edges, energy_axis.edges, self.data.T, **kwargs + ) + + if add_cbar: + label = "Probability density (A.U.)" + kwargs_colorbar.setdefault("label", label) + add_colorbar(caxes, ax=ax, axes_loc=axes_loc, **kwargs_colorbar) + + energy_axis_true.format_plot_xaxis(ax=ax) + energy_axis.format_plot_yaxis(ax=ax) + return ax
+ + +
+[docs] + def plot_bias(self, ax=None, **kwargs): + """Plot reconstruction bias. + + See `~gammapy.irf.EnergyDispersion.get_bias` method. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + **kwargs : dict + Keyword arguments. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + energy = self.axes["energy_true"].center + bias = self.get_bias(energy) + + with quantity_support(): + ax.plot(energy, bias, **kwargs) + + ax.set_xlabel( + f"$E_\\mathrm{{True}}$ [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + ax.set_ylabel( + "($E_\\mathrm{{Reco}} - E_\\mathrm{{True}}) / E_\\mathrm{{True}}$" + ) + ax.set_xscale("log") + return ax
+ + +
+[docs] + def peek(self, figsize=(15, 5)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple, optional + Size of the figure. Default is (15, 5). + + """ + fig, axes = plt.subplots(nrows=1, ncols=2, figsize=figsize) + self.plot_bias(ax=axes[0]) + self.plot_matrix(ax=axes[1]) + plt.tight_layout()
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/edisp/map.html b/docs/dev/_modules/gammapy/irf/edisp/map.html new file mode 100644 index 00000000000..dd755d645ea --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/edisp/map.html @@ -0,0 +1,1123 @@ + + + + + + + + + + gammapy.irf.edisp.map — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.edisp.map

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from gammapy.maps import Map, MapAxis, MapCoord, RegionGeom, WcsGeom
+from gammapy.utils.random import InverseCDFSampler, get_random_state
+from ..core import IRFMap
+from .kernel import EDispKernel
+
+__all__ = ["EDispMap", "EDispKernelMap"]
+
+
+def get_overlap_fraction(energy_axis, energy_axis_true):
+    a_min = energy_axis.edges[:-1]
+    a_max = energy_axis.edges[1:]
+
+    b_min = energy_axis_true.edges[:-1][:, np.newaxis]
+    b_max = energy_axis_true.edges[1:][:, np.newaxis]
+
+    xmin = np.fmin(a_max, b_max)
+    xmax = np.fmax(a_min, b_min)
+    return (np.clip(xmin - xmax, 0, np.inf) / (b_max - b_min)).to("")
+
+
+
+[docs] +class EDispMap(IRFMap): + """Energy dispersion map. + + Parameters + ---------- + edisp_map : `~gammapy.maps.Map` + The input Energy Dispersion Map. Should be a Map with 2 non-spatial axes. + migra and true energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map`, optional + Associated exposure map. Needs to have a consistent map geometry. + + Examples + -------- + :: + + # Energy dispersion map for CTAO data + import numpy as np + from astropy import units as u + from astropy.coordinates import SkyCoord + from gammapy.maps import WcsGeom, MapAxis + from gammapy.irf import EnergyDispersion2D, EffectiveAreaTable2D + from gammapy.makers.utils import make_edisp_map, make_map_exposure_true_energy + + # Define energy dispersion map geometry + energy_axis_true = MapAxis.from_edges(np.logspace(-1, 1, 10), unit="TeV", name="energy_true") + migra_axis = MapAxis.from_edges(np.linspace(0, 3, 100), name="migra") + pointing = SkyCoord(0, 0, unit="deg") + geom = WcsGeom.create( + binsz=0.25 * u.deg, + width=10 * u.deg, + skydir=pointing, + axes=[migra_axis, energy_axis_true], + ) + + # Extract EnergyDispersion2D from CTA 1DC IRF + filename = "$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits" + edisp2D = EnergyDispersion2D.read(filename, hdu="ENERGY DISPERSION") + aeff2d = EffectiveAreaTable2D.read(filename, hdu="EFFECTIVE AREA") + + # Create the exposure map + exposure_geom = geom.squash(axis_name="migra") + exposure_map = make_map_exposure_true_energy(pointing, "1 h", aeff2d, exposure_geom) + + # Create the EDispMap for the specified pointing + edisp_map = make_edisp_map(edisp2D, pointing, geom, exposure_map) + + # Get an Energy Dispersion (1D) at any position in the image + pos = SkyCoord(2.0, 2.5, unit="deg") + energy_axis = MapAxis.from_energy_bounds(0.1, 10, 5, unit="TeV", name="energy") + edisp = edisp_map.get_edisp_kernel(energy_axis, position=pos) + + # Write map to disk + edisp_map.write("edisp_map.fits") + + """ + + tag = "edisp_map" + required_axes = ["migra", "energy_true"] + + def __init__(self, edisp_map, exposure_map=None): + super().__init__(irf_map=edisp_map, exposure_map=exposure_map) + + @property + def edisp_map(self): + return self._irf_map + + @edisp_map.setter + def edisp_map(self, value): + del self.has_single_spatial_bin + self._irf_map = value + +
+[docs] + def normalize(self): + """Normalize PSF map.""" + self.edisp_map.normalize(axis_name="migra")
+ + +
+[docs] + def get_edisp_kernel(self, energy_axis, position=None): + """Get energy dispersion at a given position. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + Reconstructed energy axis. + position : `~astropy.coordinates.SkyCoord` + The target position. Should be a single coordinates. + + Returns + ------- + edisp : `~gammapy.irf.EnergyDispersion` + The energy dispersion (i.e. rmf object). + """ + edisp_map = self.to_region_nd_map(region=position) + edisp_kernel_map = edisp_map.to_edisp_kernel_map(energy_axis=energy_axis) + return edisp_kernel_map.get_edisp_kernel()
+ + +
+[docs] + def to_edisp_kernel_map(self, energy_axis): + """Convert to map with energy dispersion kernels. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + Reconstructed energy axis. + + Returns + ------- + edisp : `~gammapy.maps.EDispKernelMap` + Energy dispersion kernel map. + """ + energy_axis_true = self.edisp_map.geom.axes["energy_true"] + + geom_image = self.edisp_map.geom.to_image() + geom = geom_image.to_cube([energy_axis, energy_axis_true]) + + coords = geom.get_coord(sparse=True, mode="edges", axis_name="energy") + + migra = coords["energy"] / coords["energy_true"] + + coords = { + "skycoord": coords.skycoord, + "energy_true": coords["energy_true"], + "migra": migra, + } + + values = self.edisp_map.integral(axis_name="migra", coords=coords) + + axis = self.edisp_map.geom.axes.index_data("migra") + data = np.clip(np.diff(values, axis=axis), 0, np.inf) + + edisp_kernel_map = Map.from_geom(geom=geom, data=data.to_value(""), unit="") + + if self.exposure_map: + geom = geom.squash(axis_name=energy_axis.name) + exposure_map = self.exposure_map.copy(geom=geom) + else: + exposure_map = None + + return EDispKernelMap( + edisp_kernel_map=edisp_kernel_map, exposure_map=exposure_map + )
+ + +
+[docs] + @classmethod + def from_geom(cls, geom): + """Create energy dispersion map from geometry. + + By default, a diagonal energy dispersion matrix is created. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Energy dispersion map geometry. + + Returns + ------- + edisp_map : `~gammapy.maps.EDispMap` + Energy dispersion map. + """ + if "energy_true" not in [ax.name for ax in geom.axes]: + raise ValueError("EDispMap requires true energy axis") + + exposure_map = Map.from_geom(geom=geom.squash(axis_name="migra"), unit="m2 s") + + edisp_map = Map.from_geom(geom, unit="") + migra_axis = geom.axes["migra"] + migra_0 = migra_axis.coord_to_pix(1) + + # distribute over two pixels + migra = geom.get_idx()[2] + data = np.abs(migra - migra_0) + data = np.where(data < 1, 1 - data, 0) + edisp_map.quantity = data / migra_axis.bin_width.reshape((1, -1, 1, 1)) + return cls(edisp_map, exposure_map)
+ + +
+[docs] + def sample_coord(self, map_coord, random_state=0, chunk_size=10000): + """Apply the energy dispersion corrections on the coordinates of a set of simulated events. + + Parameters + ---------- + map_coord : `~gammapy.maps.MapCoord` + Sequence of coordinates and energies of sampled events. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is 0. + chunk_size : int + If set, this will slice the input MapCoord into smaller chunks of chunk_size elements. + Default is 10000. + + Returns + ------- + `~gammapy.maps.MapCoord`. + Sequence of energy dispersion corrected coordinates of the input map_coord map. + """ + random_state = get_random_state(random_state) + migra_axis = self.edisp_map.geom.axes["migra"] + + position = map_coord.skycoord + energy_true = map_coord["energy_true"] + + size = position.size + energy_reco = np.ones(size) * map_coord["energy_true"].unit + chunk_size = size if chunk_size is None else chunk_size + index = 0 + + while index < size: + chunk = slice(index, index + chunk_size, 1) + coord = { + "skycoord": position[chunk].reshape(-1, 1), + "energy_true": energy_true[chunk].reshape(-1, 1), + "migra": migra_axis.center, + } + + pdf_edisp = self.edisp_map.interp_by_coord(coord) + + sample_edisp = InverseCDFSampler( + pdf_edisp, axis=1, random_state=random_state + ) + pix_edisp = sample_edisp.sample_axis() + migra = migra_axis.pix_to_coord(pix_edisp) + + energy_reco[chunk] = energy_true[chunk] * migra + index += chunk_size + + return MapCoord.create({"skycoord": position, "energy": energy_reco})
+ + +
+[docs] + @classmethod + def from_diagonal_response(cls, energy_axis_true, migra_axis=None): + """Create an all-sky EDisp map with diagonal response. + + Parameters + ---------- + energy_axis_true : `~gammapy.maps.MapAxis` + True energy axis. + migra_axis : `~gammapy.maps.MapAxis`, optional + Migra axis. Default is None. + + Returns + ------- + edisp_map : `~gammapy.maps.EDispMap` + Energy dispersion map. + """ + migra_res = 1e-5 + migra_axis_default = MapAxis.from_bounds( + 1 - migra_res, 1 + migra_res, nbin=3, name="migra", node_type="edges" + ) + + migra_axis = migra_axis or migra_axis_default + + geom = WcsGeom.create( + npix=(2, 1), proj="CAR", binsz=180, axes=[migra_axis, energy_axis_true] + ) + + return cls.from_geom(geom)
+ + +
+[docs] + def peek(self, figsize=(15, 5)): + """Quick-look summary plots. + + Plots corresponding to the center of the map. + + Parameters + ---------- + figsize : tuple + Size of figure. + + """ + e_true = self.edisp_map.geom.axes[1] + e_reco = MapAxis.from_energy_bounds( + e_true.edges.min(), + e_true.edges.max(), + nbin=len(e_true.center), + name="energy", + ) + + self.get_edisp_kernel(energy_axis=e_reco).peek(figsize)
+
+ + + +
+[docs] +class EDispKernelMap(IRFMap): + """Energy dispersion kernel map. + + Parameters + ---------- + edisp_kernel_map : `~gammapy.maps.Map` + The input energy dispersion kernel map. Should be a Map with 2 non-spatial axes. + Reconstructed and true energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map`, optional + Associated exposure map. Needs to have a consistent map geometry. + + """ + + tag = "edisp_kernel_map" + required_axes = ["energy", "energy_true"] + + def __init__(self, edisp_kernel_map, exposure_map=None): + super().__init__(irf_map=edisp_kernel_map, exposure_map=exposure_map) + + @property + def edisp_map(self): + return self._irf_map + + @edisp_map.setter + def edisp_map(self, value): + self._irf_map = value + +
+[docs] + @classmethod + def from_geom(cls, geom): + """Create energy dispersion map from geometry. + + By default, a diagonal energy dispersion matrix is created. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Energy dispersion map geometry. + + Returns + ------- + edisp_map : `EDispKernelMap` + Energy dispersion kernel map. + """ + # TODO: allow only list of additional axes + geom.axes.assert_names(cls.required_axes, allow_extra=True) + geom_exposure = geom.squash(axis_name="energy") + exposure = Map.from_geom(geom_exposure, unit="m2 s") + + energy_axis = geom.axes["energy"] + energy_axis_true = geom.axes["energy_true"] + + data = get_overlap_fraction(energy_axis, energy_axis_true) + + edisp_kernel_map = Map.from_geom(geom, unit="") + edisp_kernel_map.quantity += np.resize(data, geom.data_shape_axes) + return cls(edisp_kernel_map=edisp_kernel_map, exposure_map=exposure)
+ + +
+[docs] + def get_edisp_kernel(self, position=None, energy_axis=None): + """Get energy dispersion at a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` or `~regions.SkyRegion`, optional + The target position. Should be a single coordinates. + Default is None. + energy_axis : `MapAxis`, optional + Reconstructed energy axis, only used for checking. + Default is None. + + Returns + ------- + edisp : `~gammapy.irf.EnergyDispersion` + The energy dispersion (i.e. rmf object). + """ + if energy_axis: + assert energy_axis == self.edisp_map.geom.axes["energy"] + + if isinstance(self.edisp_map.geom, RegionGeom): + kernel_map = self.edisp_map + else: + if position is None: + position = self.edisp_map.geom.center_skydir + position = self._get_nearest_valid_position(position) + + kernel_map = self.edisp_map.to_region_nd_map(region=position) + + return EDispKernel( + axes=kernel_map.geom.axes[["energy_true", "energy"]], + data=kernel_map.data[..., 0, 0], + )
+ + +
+[docs] + @classmethod + def from_diagonal_response(cls, energy_axis, energy_axis_true, geom=None): + """Create an energy dispersion map with diagonal response. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + Energy axis. + energy_axis_true : `~gammapy.maps.MapAxis` + True energy axis + geom : `~gammapy.maps.Geom`, optional + The (2D) geometry object to use. If None, an all sky geometry with 2 bins is created. + Default is None. + + Returns + ------- + edisp_map : `EDispKernelMap` + Energy dispersion kernel map. + """ + if geom is None: + geom = WcsGeom.create( + npix=(2, 1), proj="CAR", binsz=180, axes=[energy_axis, energy_axis_true] + ) + else: + geom = geom.to_image().to_cube([energy_axis, energy_axis_true]) + + return cls.from_geom(geom)
+ + +
+[docs] + @classmethod + def from_edisp_kernel(cls, edisp, geom=None): + """Create an energy dispersion map from the input 1D kernel. + + The kernel will be duplicated over all spatial bins. + + Parameters + ---------- + edisp : `~gammapy.irf.EDispKernel` + The input 1D kernel. + geom : `~gammapy.maps.Geom`, optional + The (2D) geometry object to use. If None, an all sky geometry with 2 bins is created. + Default is None. + + Returns + ------- + edisp_map : `EDispKernelMap` + Energy dispersion kernel map. + """ + edisp_map = cls.from_diagonal_response( + edisp.axes["energy"], edisp.axes["energy_true"], geom=geom + ) + edisp_map.edisp_map.data *= 0 + edisp_map.edisp_map.data[:, :, ...] = edisp.pdf_matrix[ + :, :, np.newaxis, np.newaxis + ] + return edisp_map
+ + +
+[docs] + @classmethod + def from_gauss( + cls, energy_axis, energy_axis_true, sigma, bias, pdf_threshold=1e-6, geom=None + ): + """Create an energy dispersion map from the input 1D kernel. + + The kernel will be duplicated over all spatial bins. + + Parameters + ---------- + energy_axis_true : `~astropy.units.Quantity` + Bin edges of true energy axis. + energy_axis : `~astropy.units.Quantity` + Bin edges of reconstructed energy axis. + bias : float or `~numpy.ndarray` + Center of Gaussian energy dispersion, bias. + sigma : float or `~numpy.ndarray` + RMS width of Gaussian energy dispersion, resolution. + pdf_threshold : float, optional + Zero suppression threshold. Default is 1e-6. + geom : `~gammapy.maps.Geom`, optional + The (2D) geometry object to use. If None, an all sky geometry with 2 bins is created. + Default is None. + + Returns + ------- + edisp_map : `EDispKernelMap` + Energy dispersion kernel map. + """ + kernel = EDispKernel.from_gauss( + energy_axis=energy_axis, + energy_axis_true=energy_axis_true, + sigma=sigma, + bias=bias, + pdf_threshold=pdf_threshold, + ) + return cls.from_edisp_kernel(kernel, geom=geom)
+ + +
+[docs] + def to_image(self, weights=None): + """Return a 2D EdispKernelMap by summing over the reconstructed energy axis. + + Parameters + ---------- + weights: `~gammapy.maps.Map`, optional + Weights to be applied. Default is None. + + Returns + ------- + edisp : `EDispKernelMap` + Energy dispersion kernel map. + """ + edisp = self.edisp_map.data + if weights: + edisp = edisp * weights.data + + data = np.sum(edisp, axis=1, keepdims=True) + geom = self.edisp_map.geom.squash(axis_name="energy") + edisp_map = Map.from_geom(geom=geom, data=data) + return self.__class__( + edisp_kernel_map=edisp_map, exposure_map=self.exposure_map + )
+ + +
+[docs] + def resample_energy_axis(self, energy_axis, weights=None): + """Return a resampled `EDispKernelMap`. + + Bins are grouped according to the edges of the reconstructed energy axis provided. + The true energy is left unchanged. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + The reconstructed energy axis to use for the grouping. + weights: `~gammapy.maps.Map`, optional + Weights to be applied. Default is None. + + Returns + ------- + edisp : `EDispKernelMap` + Energy dispersion kernel map. + """ + new_edisp_map = self.edisp_map.resample_axis(axis=energy_axis, weights=weights) + return self.__class__( + edisp_kernel_map=new_edisp_map, exposure_map=self.exposure_map + )
+ + +
+[docs] + def peek(self, figsize=(15, 5)): + """Quick-look summary plots. + + Plots corresponding to the center of the map. + + Parameters + ---------- + figsize : tuple, optional + Size of the figure. Default is (15, 5). + + """ + self.get_edisp_kernel().peek(figsize)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/effective_area.html b/docs/dev/_modules/gammapy/irf/effective_area.html new file mode 100644 index 00000000000..67a8b79b97d --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/effective_area.html @@ -0,0 +1,837 @@ + + + + + + + + + + gammapy.irf.effective_area — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.effective_area

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import warnings
+import numpy as np
+import astropy.units as u
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from gammapy.maps import MapAxes, MapAxis
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.visualization.utils import add_colorbar
+from .core import IRF
+from gammapy.utils.deprecation import GammapyDeprecationWarning
+
+__all__ = ["EffectiveAreaTable2D"]
+
+
+
+[docs] +class EffectiveAreaTable2D(IRF): + """2D effective area table. + + Data format specification: :ref:`gadf:aeff_2d`. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy_true (true energy axis) + * offset (field of view offset axis) + data : `~astropy.units.Quantity` + Effective area. + meta : dict + Metadata dictionary. + + Examples + -------- + Here's an example you can use to learn about this class: + + >>> from gammapy.irf import EffectiveAreaTable2D + >>> filename = '$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits' + >>> aeff = EffectiveAreaTable2D.read(filename, hdu='EFFECTIVE AREA') + >>> print(aeff) + EffectiveAreaTable2D + -------------------- + <BLANKLINE> + axes : ['energy_true', 'offset'] + shape : (42, 6) + ndim : 2 + unit : m2 + dtype : >f4 + <BLANKLINE> + + Here's another one, created from scratch, without reading a file: + + >>> from gammapy.irf import EffectiveAreaTable2D + >>> from gammapy.maps import MapAxis + >>> energy_axis_true = MapAxis.from_energy_bounds( + ... "0.1 TeV", "100 TeV", nbin=30, name="energy_true" + ... ) + >>> offset_axis = MapAxis.from_bounds(0, 5, nbin=4, name="offset") + >>> aeff = EffectiveAreaTable2D(axes=[energy_axis_true, offset_axis], data=1e10, unit="cm2") + >>> print(aeff) + EffectiveAreaTable2D + -------------------- + <BLANKLINE> + axes : ['energy_true', 'offset'] + shape : (30, 4) + ndim : 2 + unit : cm2 + dtype : float64 + <BLANKLINE> + + """ + + tag = "aeff_2d" + required_axes = ["energy_true", "offset"] + default_unit = u.m**2 + +
+[docs] + def plot_energy_dependence(self, ax=None, offset=None, **kwargs): + """Plot effective area versus energy for a given offset. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + offset : list of `~astropy.coordinates.Angle`, optional + Offset. Default is None. + kwargs : dict + Forwarded to plt.plot(). + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + if offset is None: + off_min, off_max = self.axes["offset"].bounds + offset = np.linspace(off_min, off_max, 4) + + energy_axis = self.axes["energy_true"] + + for off in offset: + area = self.evaluate(offset=off, energy_true=energy_axis.center) + label = kwargs.pop("label", f"offset = {off:.1f}") + with quantity_support(): + ax.plot(energy_axis.center, area, label=label, **kwargs) + + energy_axis.format_plot_xaxis(ax=ax) + ax.set_ylabel( + f"Effective Area [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + ax.legend() + return ax
+ + +
+[docs] + def plot_offset_dependence(self, ax=None, energy=None, **kwargs): + """Plot effective area versus offset for a given energy. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + energy : `~astropy.units.Quantity` + Energy. + **kwargs : dict + Keyword argument passed to `~matplotlib.pyplot.plot`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + if energy is None: + energy_axis = self.axes["energy_true"] + e_min, e_max = energy_axis.center[[0, -1]] + energy = np.geomspace(e_min, e_max, 4) + + offset_axis = self.axes["offset"] + + for ee in energy: + area = self.evaluate(offset=offset_axis.center, energy_true=ee) + area /= np.nanmax(area) + if np.isnan(area).all(): + continue + label = f"energy = {ee:.1f}" + with quantity_support(): + ax.plot(offset_axis.center, area, label=label, **kwargs) + + offset_axis.format_plot_xaxis(ax=ax) + ax.set_ylim(0, 1.1) + ax.set_ylabel("Relative Effective Area") + ax.legend(loc="best") + return ax
+ + +
+[docs] + def plot( + self, ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs + ): + """Plot effective area image. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + add_cbar : bool, optional + Add a colorbar to the plot. Default is True. + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs_colorbar : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + energy = self.axes["energy_true"] + offset = self.axes["offset"] + aeff = self.evaluate( + offset=offset.center, energy_true=energy.center[:, np.newaxis] + ) + + vmin, vmax = np.nanmin(aeff.value), np.nanmax(aeff.value) + + kwargs.setdefault("cmap", "GnBu") + kwargs.setdefault("edgecolors", "face") + kwargs.setdefault("vmin", vmin) + kwargs.setdefault("vmax", vmax) + + kwargs_colorbar = kwargs_colorbar or {} + + with quantity_support(): + caxes = ax.pcolormesh(energy.edges, offset.edges, aeff.value.T, **kwargs) + + energy.format_plot_xaxis(ax=ax) + offset.format_plot_yaxis(ax=ax) + + if add_cbar: + label = f"Effective Area [{aeff.unit.to_string(UNIT_STRING_FORMAT)}]" + kwargs_colorbar.setdefault("label", label) + add_colorbar(caxes, ax=ax, axes_loc=axes_loc, **kwargs_colorbar) + + return ax
+ + +
+[docs] + def peek(self, figsize=(15, 5)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple, optional + Size of the figure. Default is (15, 5). + + """ + ncols = 2 if self.is_pointlike else 3 + fig, axes = plt.subplots(nrows=1, ncols=ncols, figsize=figsize) + self.plot(ax=axes[ncols - 1]) + self.plot_energy_dependence(ax=axes[0]) + if self.is_pointlike is False: + self.plot_offset_dependence(ax=axes[1]) + plt.tight_layout()
+ + +
+[docs] + @classmethod + def from_parametrization(cls, energy_axis_true=None, instrument="HESS"): + r"""Create parametrized effective area. + + Parametrizations of the effective areas of different Cherenkov + telescopes taken from Appendix B of Abramowski et al. (2010), see + https://ui.adsabs.harvard.edu/abs/2010MNRAS.402.1342A . + + .. math:: + A_{eff}(E) = g_1 \left(\frac{E}{\mathrm{MeV}}\right)^{-g_2}\exp{\left(-\frac{g_3}{E}\right)} + + This method does not model the offset dependence of the effective area, + but just assumes that it is constant. + + Parameters + ---------- + energy_axis_true : `MapAxis`, optional + Energy binning, analytic function is evaluated at log centers. + Default is None. + instrument : {'HESS', 'HESS2', 'CTAO'} + Instrument name. Default is 'HESS'. + + Returns + ------- + aeff : `EffectiveAreaTable2D` + Effective area table. + """ # noqa: E501 + # Put the parameters g in a dictionary. + # Units: g1 (cm^2), g2 (), g3 (MeV) + pars = { + "HESS": [6.85e9, 0.0891, 5e5], + "HESS2": [2.05e9, 0.0891, 1e5], + "CTAO": [1.71e11, 0.0891, 1e5], + } + + if instrument == "CTA": + instrument = "CTAO" + warnings.warn( + "Since v1.3, the value 'CTA' is replaced by 'CTAO' for the argument instrument.", + GammapyDeprecationWarning, + ) + if instrument not in pars.keys(): + ss = f"Unknown instrument: {instrument}\n" + ss += f"Valid instruments: {list(pars.keys())}" + raise ValueError(ss) + + if energy_axis_true is None: + energy_axis_true = MapAxis.from_energy_bounds( + "2 GeV", "200 TeV", nbin=20, per_decade=True, name="energy_true" + ) + + g1, g2, g3 = pars[instrument] + + offset_axis = MapAxis.from_edges([0.0, 5.0] * u.deg, name="offset") + axes = MapAxes([energy_axis_true, offset_axis]) + coords = axes.get_coord() + + energy, offset = coords["energy_true"].to_value("MeV"), coords["offset"] + data = np.ones_like(offset.value) * g1 * energy ** (-g2) * np.exp(-g3 / energy) + + # TODO: fake offset dependence? + meta = {"TELESCOP": instrument} + return cls(axes=axes, data=data, unit="cm2", meta=meta)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/io.html b/docs/dev/_modules/gammapy/irf/io.html new file mode 100644 index 00000000000..0bebc65e0bc --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/io.html @@ -0,0 +1,768 @@ + + + + + + + + + + gammapy.irf.io — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.io

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from astropy.io import fits
+from gammapy.data.hdu_index_table import HDUIndexTable
+from gammapy.utils.fits import HDULocation
+from gammapy.utils.scripts import make_path
+
+__all__ = ["load_irf_dict_from_file"]
+
+log = logging.getLogger(__name__)
+
+
+IRF_DL3_AXES_SPECIFICATION = {
+    "THETA": {"name": "offset", "interp": "lin"},
+    "ENERG": {"name": "energy_true", "interp": "log"},
+    "ETRUE": {"name": "energy_true", "interp": "log"},
+    "RAD": {"name": "rad", "interp": "lin"},
+    "DETX": {"name": "fov_lon", "interp": "lin"},
+    "DETY": {"name": "fov_lat", "interp": "lin"},
+    "MIGRA": {"name": "migra", "interp": "lin"},
+}
+
+COMMON_HEADERS = {
+    "HDUCLASS": "GADF",
+    "HDUDOC": "https://github.com/open-gamma-ray-astro/gamma-astro-data-formats",
+    "HDUVERS": "0.2",
+}
+
+COMMON_IRF_HEADERS = {
+    **COMMON_HEADERS,
+    "HDUCLAS1": "RESPONSE",
+}
+
+
+# The key is the class tag.
+# TODO: extend the info here with the minimal header info
+IRF_DL3_HDU_SPECIFICATION = {
+    "bkg_3d": {
+        "extname": "BACKGROUND",
+        "column_name": "BKG",
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "BKG",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "BKG_3D",
+            "FOVALIGN": "RADEC",
+        },
+    },
+    "bkg_2d": {
+        "extname": "BACKGROUND",
+        "column_name": "BKG",
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "BKG",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "BKG_2D",
+        },
+    },
+    "edisp_2d": {
+        "extname": "ENERGY DISPERSION",
+        "column_name": "MATRIX",
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "EDISP",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "EDISP_2D",
+        },
+    },
+    "psf_table": {
+        "extname": "PSF_2D_TABLE",
+        "column_name": "RPSF",
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "RPSF",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "PSF_TABLE",
+        },
+    },
+    "psf_3gauss": {
+        "extname": "PSF_2D_GAUSS",
+        "column_name": {
+            "sigma_1": "SIGMA_1",
+            "sigma_2": "SIGMA_2",
+            "sigma_3": "SIGMA_3",
+            "scale": "SCALE",
+            "ampl_2": "AMPL_2",
+            "ampl_3": "AMPL_3",
+        },
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "RPSF",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "PSF_3GAUSS",
+        },
+    },
+    "psf_king": {
+        "extname": "PSF_2D_KING",
+        "column_name": {
+            "sigma": "SIGMA",
+            "gamma": "GAMMA",
+        },
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "RPSF",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "PSF_KING",
+        },
+    },
+    "aeff_2d": {
+        "extname": "EFFECTIVE AREA",
+        "column_name": "EFFAREA",
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "EFF_AREA",
+            "HDUCLAS3": "FULL-ENCLOSURE",  # added here to have HDUCLASN in order
+            "HDUCLAS4": "AEFF_2D",
+        },
+    },
+    "rad_max_2d": {
+        "extname": "RAD_MAX",
+        "column_name": "RAD_MAX",
+        "mandatory_keywords": {
+            **COMMON_IRF_HEADERS,
+            "HDUCLAS2": "RAD_MAX",
+            "HDUCLAS3": "POINT-LIKE",
+            "HDUCLAS4": "RAD_MAX_2D",
+        },
+    },
+}
+
+
+IRF_MAP_HDU_SPECIFICATION = {
+    "edisp_kernel_map": "edisp",
+    "edisp_map": "edisp",
+    "psf_map": "psf",
+    "psf_map_reco": "psf",
+}
+
+
+def gadf_is_pointlike(header):
+    """Check if a GADF IRF is pointlike based on the header."""
+    return header.get("HDUCLAS3") == "POINT-LIKE"
+
+
+class UnknownHDUClass(IOError):
+    """Raised when a file contains an unknown HDUCLASS."""
+
+
+def _get_hdu_type_and_class(header):
+    """Get gammapy hdu_type and class from FITS header.
+
+    Contains a workaround to support CTA 1DC irf file.
+    """
+    hdu_clas2 = header.get("HDUCLAS2", "")
+    hdu_clas4 = header.get("HDUCLAS4", "")
+
+    clas2_to_type = {"rpsf": "psf", "eff_area": "aeff"}
+    hdu_type = clas2_to_type.get(hdu_clas2.lower(), hdu_clas2.lower())
+    hdu_class = hdu_clas4.lower()
+
+    if hdu_type not in HDUIndexTable.VALID_HDU_TYPE:
+        raise UnknownHDUClass(f"HDUCLAS2={hdu_clas2}, HDUCLAS4={hdu_clas4}")
+
+    # workaround for CTA 1DC files with non-compliant HDUCLAS4 names
+    if hdu_class not in HDUIndexTable.VALID_HDU_CLASS:
+        hdu_class = f"{hdu_type}_{hdu_class}"
+
+    if hdu_class not in HDUIndexTable.VALID_HDU_CLASS:
+        raise UnknownHDUClass(f"HDUCLAS2={hdu_clas2}, HDUCLAS4={hdu_clas4}")
+
+    return hdu_type, hdu_class
+
+
+
+[docs] +def load_irf_dict_from_file(filename): + """Load all available IRF components from given file into a dictionary. + + If multiple IRFs of the same type are present, the first encountered is returned. + + Parameters + ---------- + filename : str or `~pathlib.Path` + Path to the file containing the IRF components, if EVENTS and GTI HDUs + are included in the file, they are ignored. + + Returns + ------- + irf_dict : dict of `~gammapy.irf.IRF` + Dictionary with instances of the Gammapy objects corresponding + to the IRF components. + """ + from .rad_max import RadMax2D + + filename = make_path(filename) + irf_dict = {} + is_pointlike = False + + with fits.open(filename) as hdulist: + for hdu in hdulist: + hdu_clas1 = hdu.header.get("HDUCLAS1", "").lower() + + # not an IRF component + if hdu_clas1 != "response": + continue + + is_pointlike |= hdu.header.get("HDUCLAS3") == "POINT-LIKE" + + try: + hdu_type, hdu_class = _get_hdu_type_and_class(hdu.header) + except UnknownHDUClass as e: + log.warning("File has unknown class %s", e) + continue + + loc = HDULocation( + hdu_class=hdu_class, + hdu_name=hdu.name, + file_dir=filename.parent, + file_name=filename.name, + ) + + if hdu_type in irf_dict.keys(): + log.warning(f"more than one HDU of {hdu_type} type found") + log.warning( + f"loaded the {irf_dict[hdu_type].meta['EXTNAME']} HDU in the dictionary" + ) + continue + + data = loc.load() + irf_dict[hdu_type] = data + + if is_pointlike and "rad_max" not in irf_dict: + irf_dict["rad_max"] = RadMax2D.from_irf(irf_dict["aeff"]) + + return irf_dict
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/psf/kernel.html b/docs/dev/_modules/gammapy/irf/psf/kernel.html new file mode 100644 index 00000000000..6c53b037a87 --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/psf/kernel.html @@ -0,0 +1,831 @@ + + + + + + + + + + gammapy.irf.psf.kernel — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.psf.kernel

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import numpy as np
+import astropy.units as u
+import matplotlib.pyplot as plt
+from gammapy.maps import Map
+from gammapy.modeling.models import PowerLawSpectralModel
+from gammapy.utils.deprecation import deprecated_renamed_argument
+
+__all__ = ["PSFKernel"]
+
+
+
+[docs] +class PSFKernel: + """PSF kernel for `~gammapy.maps.Map`. + + This is a container class to store a PSF kernel + that can be used to convolve `~gammapy.maps.WcsNDMap` objects. + It is usually computed from an `~gammapy.irf.PSFMap`. + + Parameters + ---------- + psf_kernel_map : `~gammapy.maps.Map` + PSF kernel stored in a Map. + + Examples + -------- + .. testcode:: + + from gammapy.maps import Map, WcsGeom, MapAxis + from gammapy.irf import PSFMap + from astropy import units as u + + # Define energy axis + energy_axis_true = MapAxis.from_energy_bounds( + "0.1 TeV", "10 TeV", nbin=3, name="energy_true" + ) + + # Create WcsGeom and map + geom = WcsGeom.create(binsz=0.02 * u.deg, width=2.0 * u.deg, axes=[energy_axis_true]) + some_map = Map.from_geom(geom) + + # Fill map at three positions + some_map.fill_by_coord([[0, 0, 0], [0, 0, 0], [0.3, 1, 3]]) + + psf = PSFMap.from_gauss( + energy_axis_true=energy_axis_true, sigma=[0.3, 0.2, 0.1] * u.deg + ) + + kernel = psf.get_psf_kernel(geom=geom, max_radius=1*u.deg) + + # Do the convolution + some_map_convolved = some_map.convolve(kernel) + + some_map_convolved.plot_grid() # doctest: +SKIP + """ + + def __init__(self, psf_kernel_map, normalize=True): + self._psf_kernel_map = psf_kernel_map + + if normalize: + self.normalize() + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def normalize(self): + """Force normalisation of the kernel.""" + data = self.psf_kernel_map.data + if self.psf_kernel_map.geom.is_image: + axis = (0, 1) + else: + axis = (1, 2) + + with np.errstate(divide="ignore", invalid="ignore"): + data = np.nan_to_num(data / data.sum(axis=axis, keepdims=True)) + self.psf_kernel_map.data = data
+ + + @property + def data(self): + """Access the PSFKernel numpy array.""" + return self._psf_kernel_map.data + + @property + def psf_kernel_map(self): + """The map object holding the kernel as a `~gammapy.maps.Map`.""" + return self._psf_kernel_map + +
+[docs] + @classmethod + def read(cls, *args, **kwargs): + """Read kernel Map from file.""" + psf_kernel_map = Map.read(*args, **kwargs) + return cls(psf_kernel_map)
+ + +
+[docs] + @classmethod + def from_spatial_model(cls, model, geom, max_radius=None, factor=4): + """Create PSF kernel from spatial model. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Map geometry. + model : `~gammapy.modeling.models.SpatiaModel` + Gaussian width. + max_radius : `~astropy.coordinates.Angle`, optional + Desired kernel map size. Default is None. + factor : int, optional + Oversample factor to compute the PSF. Default is 4. + + Returns + ------- + kernel : `~gammapy.irf.PSFKernel` + The kernel Map with reduced geometry according to the max_radius. + """ + if max_radius is None: + max_radius = model.evaluation_radius + + geom = geom.to_odd_npix(max_radius=max_radius) + model.position = geom.center_skydir + + geom = geom.upsample(factor=factor) + map = model.integrate_geom(geom, oversampling_factor=1) + return cls(psf_kernel_map=map.downsample(factor=factor))
+ + +
+[docs] + @classmethod + def from_gauss(cls, geom, sigma, max_radius=None, factor=4): + """Create Gaussian PSF. + + This is used for testing and examples. + The map geometry parameters (pixel size, energy bins) are taken from ``geom``. + The Gaussian width ``sigma`` is a scalar. + + TODO : support array input if it should vary along the energy axis. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Map geometry. + sigma : `~astropy.coordinates.Angle` + Gaussian width. + max_radius : `~astropy.coordinates.Angle`, optional + Desired kernel map size. Default is None. + factor : int, optional + Oversample factor to compute the PSF. Default is 4. + + Returns + ------- + kernel : `~gammapy.irf.PSFKernel` + The kernel Map with reduced geometry according to the max_radius. + """ + from gammapy.modeling.models import GaussianSpatialModel + + gauss = GaussianSpatialModel(sigma=sigma) + + return cls.from_spatial_model( + model=gauss, geom=geom, max_radius=max_radius, factor=factor + )
+ + +
+[docs] + def write(self, *args, **kwargs): + """Write the Map object which contains the PSF kernel to file.""" + self.psf_kernel_map.write(*args, **kwargs)
+ + +
+[docs] + @deprecated_renamed_argument("spectrum", "spectral_model", "v1.3") + def to_image(self, spectral_model=None, exposure=None, keepdims=True): + """Transform 3D PSFKernel into a 2D PSFKernel. + + Parameters + ---------- + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + Spectral model to compute the weights. + Default is power-law with spectral index of 2. + exposure : `~astropy.units.Quantity` or `~numpy.ndarray`, optional + 1D array containing exposure in each true energy bin. + It must have the same size as the PSFKernel energy axis. + Default is uniform exposure over energy. + keepdims : bool, optional + If true, the resulting PSFKernel will keep an energy axis with one bin. + Default is True. + + Returns + ------- + weighted_kernel : `~gammapy.irf.PSFKernel` + The weighted kernel summed over energy. + """ + map = self.psf_kernel_map + + if spectral_model is None: + spectral_model = PowerLawSpectralModel(index=2.0) + + if exposure is None: + exposure = np.ones(map.geom.axes[0].center.shape) + + exposure = u.Quantity(exposure) + + if exposure.shape != map.geom.axes[0].center.shape: + raise ValueError("Incorrect exposure_array shape") + + # Compute weights vector + for name in map.geom.axes.names: + if "energy" in name: + energy_name = name + energy_edges = map.geom.axes[energy_name].edges + weights = spectral_model.integral( + energy_min=energy_edges[:-1], energy_max=energy_edges[1:], intervals=True + ) + weights *= exposure + weights /= weights.sum() + + spectrum_weighted_kernel = map.copy() + spectrum_weighted_kernel.quantity *= weights[:, np.newaxis, np.newaxis] + + return self.__class__(spectrum_weighted_kernel.sum_over_axes(keepdims=keepdims))
+ + +
+[docs] + def slice_by_idx(self, slices): + """Slice by index.""" + kernel = self.psf_kernel_map.slice_by_idx(slices=slices) + return self.__class__(psf_kernel_map=kernel)
+ + +
+[docs] + def plot_kernel(self, ax=None, energy=None, add_cbar=False, **kwargs): + """Plot PSF kernel. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + energy : `~astropy.units.Quantity`, optional + If None, the PSF kernel is summed over the energy axis. Otherwise, the kernel + corresponding to the energy bin including the given energy is shown. + add_cbar : bool, optional + Add a colorbar. Default is False. + kwargs: dict + Keyword arguments passed to `~matplotlib.axes.Axes.imshow`. + + Returns + ------- + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + """ + ax = plt.gca() if ax is None else ax + + if energy is not None: + kernel_map = self.psf_kernel_map + energy_center = kernel_map.geom.axes["energy_true"].center.to(energy.unit) + idx = np.argmin(np.abs(energy_center.value - energy.value)) + kernel_map.get_image_by_idx([idx]).plot(ax=ax, add_cbar=add_cbar, **kwargs) + else: + self.to_image().psf_kernel_map.plot(ax=ax, add_cbar=add_cbar, **kwargs) + + return ax
+ + +
+[docs] + def peek(self, figsize=(15, 5)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple, optional + Size of the figure. Default is (15, 5). + """ + fig, axes = plt.subplots(nrows=1, ncols=2, figsize=figsize) + + axes[0].set_title("Energy-integrated PSF kernel") + self.plot_kernel(ax=axes[0], add_cbar=True) + + axes[1].set_title("PSF kernel at 1 TeV") + self.plot_kernel(ax=axes[1], add_cbar=True, energy=1 * u.TeV) + + plt.tight_layout()
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/psf/map.html b/docs/dev/_modules/gammapy/irf/psf/map.html new file mode 100644 index 00000000000..ee728e99e6a --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/psf/map.html @@ -0,0 +1,1333 @@ + + + + + + + + + + gammapy.irf.psf.map — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.psf.map

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import astropy.units as u
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from matplotlib.ticker import FormatStrFormatter
+from gammapy.maps import HpxGeom, Map, MapAxes, MapAxis, MapCoord, WcsGeom
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.modeling.models import PowerLawSpectralModel
+from gammapy.utils.gauss import Gauss2DPDF
+from gammapy.utils.random import InverseCDFSampler, get_random_state
+from ..core import IRFMap
+from .core import PSF
+from .kernel import PSFKernel
+from gammapy.utils.deprecation import deprecated_renamed_argument
+
+__all__ = ["PSFMap", "RecoPSFMap"]
+
+
+PSF_MAX_OVERSAMPLING = 4  # for backward compatibility
+
+
+def _psf_upsampling_factor(psf, geom, position, energy=None, precision_factor=12):
+    """Minimal factor between the bin half-width of the geom and the median R68% containment radius."""
+    if energy is None:
+        energy = geom.axes[psf.energy_name].center
+    psf_r68s = psf.containment_radius(
+        0.68, geom.axes[psf.energy_name].center, position=position
+    )
+    factors = []
+    for psf_r68 in psf_r68s:
+        base_factor = (2 * psf_r68 / geom.pixel_scales.max()).to_value("")
+        factor = np.minimum(
+            int(np.ceil(precision_factor / base_factor)), PSF_MAX_OVERSAMPLING
+        )
+        if isinstance(geom, HpxGeom):
+            factor = int(2 ** np.ceil(np.log(factor) / np.log(2)))
+        factors.append(factor)
+    return factors
+
+
+class IRFLikePSF(PSF):
+    required_axes = ["energy_true", "rad", "lat_idx", "lon_idx"]
+    tag = "irf_like_psf"
+
+
+
+[docs] +class PSFMap(IRFMap): + """Class containing the Map of PSFs and allowing to interact with it. + + Parameters + ---------- + psf_map : `~gammapy.maps.Map` + The input PSF Map. Should be a Map with 2 non spatial axes. + rad and true energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map` + Associated exposure map. Needs to have a consistent map geometry. + + Examples + -------- + .. testcode:: + + from astropy.coordinates import SkyCoord + from gammapy.maps import WcsGeom, MapAxis + from gammapy.data import Observation, FixedPointingInfo + from gammapy.irf import load_irf_dict_from_file + from gammapy.makers import MapDatasetMaker + + # Define observation + pointing_position = SkyCoord(0, 0, unit="deg", frame="galactic") + pointing = FixedPointingInfo( + fixed_icrs=pointing_position.icrs, + ) + filename = "$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits" + irfs = load_irf_dict_from_file(filename) + obs = Observation.create(pointing=pointing, irfs=irfs, livetime="1h") + + # Define energy axis. Note that the name is fixed. + energy_axis = MapAxis.from_energy_bounds("0.1 TeV", "10 TeV", nbin=3, name="energy_true") + + # Define rad axis. Again note the axis name + rad_axis = MapAxis.from_bounds(0, 0.5, nbin=100, name="rad", unit="deg") + + # Create WcsGeom + geom = WcsGeom.create( + binsz=0.25, width="5 deg", skydir=pointing_position, axes=[rad_axis, energy_axis] + ) + + maker = MapDatasetMaker() + psf = maker.make_psf(geom=geom, observation=obs) + + # Get a PSF kernel at the center of the image + upsample_geom = geom.upsample(factor=10).drop("rad") + psf_kernel = psf.get_psf_kernel(geom=upsample_geom) + """ + + tag = "psf_map" + required_axes = ["rad", "energy_true"] + + def __init__(self, psf_map, exposure_map=None): + super().__init__(irf_map=psf_map, exposure_map=exposure_map) + + @property + def energy_name(self): + return self.required_axes[-1] + + @property + def psf_map(self): + return self._irf_map + + @psf_map.setter + def psf_map(self, value): + del self.has_single_spatial_bin + self._irf_map = value + +
+[docs] + def normalize(self): + """Normalize PSF map.""" + self.psf_map.normalize(axis_name="rad")
+ + +
+[docs] + @classmethod + def from_geom(cls, geom): + """Create PSF map from geometry. + + Parameters + ---------- + geom : `Geom` + PSF map geometry. + + Returns + ------- + psf_map : `PSFMap` + Point spread function map. + """ + geom_exposure = geom.squash(axis_name="rad") + exposure_psf = Map.from_geom(geom_exposure, unit="m2 s") + psf_map = Map.from_geom(geom, unit="sr-1") + return cls(psf_map, exposure_psf)
+ + + # TODO: this is a workaround for now, probably add Map.integral() or similar + @property + def _psf_irf(self): + geom = self.psf_map.geom + npix_x, npix_y = geom.npix + axis_lon = MapAxis.from_edges(np.arange(npix_x[0] + 1) - 0.5, name="lon_idx") + axis_lat = MapAxis.from_edges(np.arange(npix_y[0] + 1) - 0.5, name="lat_idx") + axes = MapAxes( + [geom.axes[self.energy_name], geom.axes["rad"], axis_lat, axis_lon] + ) + psf = IRFLikePSF + psf.required_axes = axes.names + return psf( + axes=axes, + data=self.psf_map.data, + unit=self.psf_map.unit, + ) + + def _get_irf_coords(self, **kwargs): + coords = MapCoord.create(kwargs) + + geom = self.psf_map.geom.to_image() + lon_pix, lat_pix = geom.coord_to_pix(coords.skycoord) + + coords_irf = { + "lon_idx": lon_pix, + "lat_idx": lat_pix, + self.energy_name: coords[self.energy_name], + } + + try: + coords_irf["rad"] = coords["rad"] + except KeyError: + pass + + return coords_irf + +
+[docs] + def containment(self, rad, energy_true, position=None): + """Containment at given coordinates. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad value. + energy_true : `~astropy.units.Quantity` + Energy true value. + position : `~astropy.coordinates.SkyCoord`, optional + Sky position. If None, the center of the map is chosen. + Default is None. + + Returns + ------- + containment : `~astropy.units.Quantity` + Containment values. + """ + if position is None: + position = self.psf_map.geom.center_skydir + + coords = {"skycoord": position, "rad": rad, self.energy_name: energy_true} + + return self.psf_map.integral(axis_name="rad", coords=coords).to("")
+ + +
+[docs] + def containment_radius(self, fraction, energy_true, position=None): + """Containment at given coordinates. + + Parameters + ---------- + fraction : float + Containment fraction. + energy_true : `~astropy.units.Quantity` + Energy true value. + position : `~astropy.coordinates.SkyCoord`, optional + Sky position. If None, the center of the map is chosen. + Default is None. + + Returns + ------- + containment : `~astropy.units.Quantity` + Containment values. + """ + if position is None: + position = self.psf_map.geom.center_skydir + + kwargs = {self.energy_name: energy_true, "skycoord": position} + coords = self._get_irf_coords(**kwargs) + + return self._psf_irf.containment_radius(fraction, **coords)
+ + +
+[docs] + def containment_radius_map(self, energy_true, fraction=0.68): + """Containment radius map. + + Parameters + ---------- + energy_true : `~astropy.units.Quantity` + Energy true at which to compute the containment radius. + fraction : float, optional + Containment fraction (range: 0 to 1). + Default is 0.68. + + Returns + ------- + containment_radius_map : `~gammapy.maps.Map` + Containment radius map. + """ + geom = self.psf_map.geom.to_image() + + data = self.containment_radius( + fraction, + energy_true, + geom.get_coord().skycoord, + ) + return Map.from_geom(geom=geom, data=data.value, unit=data.unit)
+ + +
+[docs] + def get_psf_kernel( + self, + geom, + position=None, + max_radius=None, + containment=0.999, + precision_factor=12, + ): + """Return a PSF kernel at the given position. + + The PSF is returned in the form a WcsNDMap defined by the input Geom. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Target geometry to use. + position : `~astropy.coordinates.SkyCoord`, optional + Target position. Should be a single coordinate. By default, the + center position is used. + max_radius : `~astropy.coordinates.Angle`, optional + Maximum angular size of the kernel map. + Default is None and it will be computed for the `containment` fraction set. + containment : float, optional + Containment fraction to use as size of the kernel. + The radius can be overwritten using the `max_radius` argument. + Default is 0.999. + precision_factor : int, optional + Factor between the bin half-width of the geom and the median R68% containment radius. + Used only for the oversampling method. Default is 10. + + Returns + ------- + kernel : `~gammapy.irf.PSFKernel` or list of `PSFKernel` + The resulting kernel. + """ + + if geom.is_region or geom.is_hpx: + geom = geom.to_wcs_geom() + + if position is None: + position = self.psf_map.geom.center_skydir + + position = self._get_nearest_valid_position(position) + + energy_axis = self.psf_map.geom.axes[self.energy_name] + kwargs = { + "fraction": containment, + "position": position, + self.energy_name: energy_axis.center, + } + radii = self.containment_radius(**kwargs) + if max_radius is None: + max_radius = np.max(radii) + else: + max_radius = u.Quantity(max_radius) + radii[radii > max_radius] = max_radius + + n_radii = len(radii) + factor = _psf_upsampling_factor(self, geom, position, precision_factor) + geom = geom.to_odd_npix(max_radius=max_radius) + kernel_map = Map.from_geom(geom=geom) + for im, ind in zip(kernel_map.iter_by_image(keepdims=True), range(n_radii)): + geom_image_cut = im.geom.to_odd_npix(max_radius=radii[ind]).upsample( + factor=factor[ind] + ) + + coords = geom_image_cut.get_coord(sparse=True) + rad = coords.skycoord.separation(geom.center_skydir) + + coords = { + self.energy_name: coords[self.energy_name], + "rad": rad, + "skycoord": position, + } + + data = self.psf_map.interp_by_coord( + coords=coords, + method="linear", + ) + kernel_image = Map.from_geom( + geom=geom_image_cut, data=np.clip(data, 0, np.inf) + ) + kernel_image = kernel_image.downsample( + factor=factor[ind], preserve_counts=True + ) + coords = kernel_image.geom.get_coord() + im.fill_by_coord(coords, weights=kernel_image.data) + return PSFKernel(kernel_map, normalize=True)
+ + +
+[docs] + def sample_coord(self, map_coord, random_state=0, chunk_size=10000): + """Apply PSF corrections on the coordinates of a set of simulated events. + + Parameters + ---------- + map_coord : `~gammapy.maps.MapCoord` object. + Sequence of coordinates and energies of sampled events. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. Default is 0. + chunk_size : int + If set, this will slice the input MapCoord into smaller chunks of chunk_size elements. + Default is 10000. + + Returns + ------- + corr_coord : `~gammapy.maps.MapCoord` + Sequence of PSF-corrected coordinates of the input map_coord map. + """ + random_state = get_random_state(random_state) + rad_axis = self.psf_map.geom.axes["rad"] + + position = map_coord.skycoord + energy = map_coord[self.energy_name] + + size = position.size + separation = np.ones(size) * u.deg + chunk_size = size if chunk_size is None else chunk_size + + index = 0 + + while index < size: + chunk = slice(index, index + chunk_size, 1) + coord = { + "skycoord": position[chunk].reshape(-1, 1), + self.energy_name: energy[chunk].reshape(-1, 1), + "rad": rad_axis.center, + } + + pdf = ( + self.psf_map.interp_by_coord(coord) + * rad_axis.center.value + * rad_axis.bin_width.value + ) + + sample_pdf = InverseCDFSampler(pdf, axis=1, random_state=random_state) + pix_coord = sample_pdf.sample_axis() + separation[chunk] = rad_axis.pix_to_coord(pix_coord) + index += chunk_size + + position_angle = random_state.uniform(360, size=len(map_coord.lon)) * u.deg + + event_positions = map_coord.skycoord.directional_offset_by( + position_angle=position_angle, separation=separation + ) + return MapCoord.create({"skycoord": event_positions, self.energy_name: energy})
+ + +
+[docs] + @classmethod + def from_gauss(cls, energy_axis_true, rad_axis=None, sigma=0.1 * u.deg, geom=None): + """Create all-sky PSF map from Gaussian width. + + This is used for testing and examples. + + The width can be the same for all energies + or be an array with one value per energy node. + It does not depend on position. + + Parameters + ---------- + energy_axis_true : `~gammapy.maps.MapAxis` + True energy axis. + rad_axis : `~gammapy.maps.MapAxis` + Offset angle wrt source position axis. + sigma : `~astropy.coordinates.Angle` + Gaussian width. + geom : `Geom` + Image geometry. By default, an all-sky geometry is created. + + Returns + ------- + psf_map : `PSFMap` + Point spread function map. + """ + from gammapy.datasets.map import RAD_AXIS_DEFAULT + + if rad_axis is None: + rad_axis = RAD_AXIS_DEFAULT.copy() + + if geom is None: + geom = WcsGeom.create( + npix=(2, 1), + proj="CAR", + binsz=180, + ) + + geom = geom.to_cube([rad_axis, energy_axis_true]) + + coords = geom.get_coord(sparse=True) + + sigma = u.Quantity(sigma).reshape((-1, 1, 1, 1)) + gauss = Gauss2DPDF(sigma=sigma) + + data = gauss(coords["rad"]) * np.ones(geom.data_shape) + + psf_map = Map.from_geom(geom=geom, data=data.to_value("sr-1"), unit="sr-1") + + exposure_map = Map.from_geom( + geom=geom.squash(axis_name="rad"), unit="m2 s", data=1.0 + ) + return cls(psf_map=psf_map, exposure_map=exposure_map)
+ + +
+[docs] + @deprecated_renamed_argument("spectrum", "spectral_model", "v1.3") + def to_image(self, spectral_model=None, keepdims=True): + """Reduce to a 2D map after weighing with the associated exposure and a spectrum. + + Parameters + ---------- + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + Spectral model to compute the weights. + Default is power-law with spectral index of 2. + keepdims : bool, optional + If True, the energy axis is kept with one bin. + If False, the axis is removed. + + Returns + ------- + psf_out : `PSFMap` + `PSFMap` with the energy axis summed over. + """ + from gammapy.makers.utils import _map_spectrum_weight + + if spectral_model is None: + spectral_model = PowerLawSpectralModel(index=2.0) + + exp_weighed = _map_spectrum_weight(self.exposure_map, spectral_model) + exposure = exp_weighed.sum_over_axes( + axes_names=[self.energy_name], keepdims=keepdims + ) + + psf_data = exp_weighed.data * self.psf_map.data / exposure.data + psf_map = Map.from_geom(geom=self.psf_map.geom, data=psf_data, unit="sr-1") + + psf = psf_map.sum_over_axes(axes_names=[self.energy_name], keepdims=keepdims) + return self.__class__(psf_map=psf, exposure_map=exposure)
+ + +
+[docs] + def plot_containment_radius_vs_energy( + self, ax=None, fraction=(0.68, 0.95), **kwargs + ): + """Plot containment fraction as a function of energy. + + The method plots the containment radius at the center of the map. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axes`, optional + Matplotlib axes. Default is None. + fraction : list of float or `~numpy.ndarray` + Containment fraction between 0 and 1. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.plot` + + Returns + ------- + ax : `~matplotlib.pyplot.Axes` + Matplotlib axes. + + """ + ax = plt.gca() if ax is None else ax + + position = self.psf_map.geom.center_skydir + energy_axis = self.psf_map.geom.axes[self.energy_name] + energy_true = energy_axis.center + + for frac in fraction: + radius = self.containment_radius(frac, energy_true, position) + label = f"Containment: {100 * frac:.1f}%" + with quantity_support(): + ax.plot(energy_true, radius, label=label, **kwargs) + + ax.semilogx() + ax.legend(loc="best") + ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f")) + energy_axis.format_plot_xaxis(ax=ax) + ax.set_ylabel( + f"Containment radius [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + return ax
+ + +
+[docs] + def plot_psf_vs_rad(self, ax=None, energy_true=[0.1, 1, 10] * u.TeV, **kwargs): + """Plot PSF vs radius. + + The method plots the profile at the center of the map. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axes`, optional + Matplotlib axes. Default is None. + energy : `~astropy.units.Quantity` + Energies where to plot the PSF. + **kwargs : dict + Keyword arguments pass to `~matplotlib.pyplot.plot`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axes` + Matplotlib axes. + + """ + ax = plt.gca() if ax is None else ax + + rad = self.psf_map.geom.axes["rad"].center + + for value in energy_true: + psf_value = self.psf_map.interp_by_coord( + { + "skycoord": self.psf_map.geom.center_skydir, + self.energy_name: value, + "rad": rad, + } + ) + label = f"{value:.0f}" + psf_value *= self.psf_map.unit + with quantity_support(): + ax.plot(rad, psf_value, label=label, **kwargs) + + ax.set_yscale("log") + ax.set_xlabel(f"Rad [{ax.xaxis.units.to_string(UNIT_STRING_FORMAT)}]") + ax.set_ylabel(f"PSF [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]") + ax.xaxis.set_major_formatter(FormatStrFormatter("%.2f")) + ax.legend() + return ax
+ + + def __str__(self): + return str(self.psf_map) + +
+[docs] + def peek(self, figsize=(12, 10)): + """Quick-look summary plots. + + Parameters + ---------- + figsize : tuple + Size of figure. + """ + fig, axes = plt.subplots( + ncols=2, + nrows=2, + subplot_kw={"projection": self.psf_map.geom.wcs}, + figsize=figsize, + gridspec_kw={"hspace": 0.3, "wspace": 0.3}, + ) + + axes = axes.flat + axes[0].remove() + ax0 = fig.add_subplot(2, 2, 1) + ax0.set_title("Containment radius at center of map") + self.plot_containment_radius_vs_energy(ax=ax0) + + axes[1].remove() + ax1 = fig.add_subplot(2, 2, 2) + ax1.set_ylim(1e-4, 1e4) + ax1.set_title("PSF at center of map") + self.plot_psf_vs_rad(ax=ax1) + + axes[2].set_title("Exposure") + if self.exposure_map is not None: + self.exposure_map.reduce_over_axes().plot(ax=axes[2], add_cbar=True) + + axes[3].set_title("Containment radius at 1 TeV") + kwargs = {self.energy_name: 1 * u.TeV} + self.containment_radius_map(**kwargs).plot(ax=axes[3], add_cbar=True)
+
+ + + +
+[docs] +class RecoPSFMap(PSFMap): + """Class containing the Map of PSFs in reconstructed energy and allowing to interact with it. + + Parameters + ---------- + psf_map : `~gammapy.maps.Map` + the input PSF Map. Should be a Map with 2 non spatial axes. + rad and energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map` + Associated exposure map. Needs to have a consistent map geometry. + """ + + tag = "psf_map_reco" + required_axes = ["rad", "energy"] + + @property + def energy_name(self): + return self.required_axes[-1] + +
+[docs] + @classmethod + def from_gauss(cls, energy_axis, rad_axis=None, sigma=0.1 * u.deg, geom=None): + """Create all -sky PSF map from Gaussian width. + + This is used for testing and examples. + + The width can be the same for all energies + or be an array with one value per energy node. + It does not depend on position. + + Parameters + ---------- + energy_axis : `~gammapy.maps.MapAxis` + Energy axis. + rad_axis : `~gammapy.maps.MapAxis` + Offset angle wrt source position axis. + sigma : `~astropy.coordinates.Angle` + Gaussian width. + geom : `Geom` + Image geometry. By default, an all-sky geometry is created. + + Returns + ------- + psf_map : `PSFMap` + Point spread function map. + """ + return super().from_gauss(energy_axis, rad_axis, sigma, geom)
+ + +
+[docs] + def containment(self, rad, energy, position=None): + """Containment at given coordinates. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad value. + energy : `~astropy.units.Quantity` + Energy value. + position : `~astropy.coordinates.SkyCoord`, optional + Sky position. By default, the center of the map is chosen. + + Returns + ------- + containment : `~astropy.units.Quantity` + Containment values. + """ + return super().containment(rad, energy, position)
+ + +
+[docs] + def containment_radius(self, fraction, energy, position=None): + """Containment at given coordinates. + + Parameters + ---------- + fraction : float + Containment fraction. + energy : `~astropy.units.Quantity` + Energy value. + position : `~astropy.coordinates.SkyCoord`, optional + Sky position. By default, the center of the map is chosen. + + Returns + ------- + containment : `~astropy.units.Quantity` + Containment values. + """ + return super().containment_radius(fraction, energy, position)
+ + +
+[docs] + def containment_radius_map(self, energy, fraction=0.68): + """Containment radius map. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Energy at which to compute the containment radius + fraction : float, optional + Containment fraction (range: 0 to 1). + Default is 0.68. + + Returns + ------- + containment_radius_map : `~gammapy.maps.Map` + Containment radius map. + """ + return super().containment_radius_map(energy, fraction=0.68)
+ + +
+[docs] + def plot_psf_vs_rad(self, ax=None, energy=[0.1, 1, 10] * u.TeV, **kwargs): + """Plot PSF vs radius. + + The method plots the profile at the center of the map. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axes`, optional + Matplotlib axes. Default is None. + energy : `~astropy.units.Quantity` + Energies where to plot the PSF. + **kwargs : dict + Keyword arguments pass to `~matplotlib.pyplot.plot`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axes` + Matplotlib axes. + + """ + return super().plot_psf_vs_rad(ax, energy_true=energy, **kwargs)
+ + +
+[docs] + def stack(self, other, weights=None, nan_to_num=True): + """Stack IRF map with another one in place.""" + raise NotImplementedError( + "Stacking is not supported for PSF in reconstructed energy." + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/psf/parametric.html b/docs/dev/_modules/gammapy/irf/psf/parametric.html new file mode 100644 index 00000000000..472e07506d1 --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/psf/parametric.html @@ -0,0 +1,1027 @@ + + + + + + + + + + gammapy.irf.psf.parametric — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.psf.parametric

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import logging
+import numpy as np
+from astropy import units as u
+from gammapy.maps import MapAxes, MapAxis
+from gammapy.utils.gauss import MultiGauss2D
+from gammapy.utils.interpolation import ScaledRegularGridInterpolator
+from .core import PSF
+
+__all__ = ["ParametricPSF", "EnergyDependentMultiGaussPSF", "PSFKing"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class ParametricPSF(PSF): + """Parametric PSF base class. + + Parameters + ---------- + axes : list of `MapAxis` or `MapAxes` + Axes. + data : dict of `~numpy.ndarray` or `~numpy.recarray` + Data. + unit : dict of str or `~astropy.units.Unit` + Unit. + meta : dict + Metadata dictionary. + """ + + @property + @abc.abstractmethod + def required_parameters(self): + return [] + +
+[docs] + @abc.abstractmethod + def evaluate_direct(self, rad, **kwargs): + pass
+ + +
+[docs] + @abc.abstractmethod + def evaluate_containment(self, rad, **kwargs): + pass
+ + +
+[docs] + def normalize(self): + """Normalize parametric PSF.""" + raise NotImplementedError
+ + + @property + def quantity(self): + """Quantity.""" + quantity = {} + + for name in self.required_parameters: + quantity[name] = self.data[name] * self.unit[name] + + return quantity + + @property + def unit(self): + """Map unit as a `~astropy.units.Unit`.""" + return self._unit + +
+[docs] + def to_unit(self, unit): + """Convert IRF to unit.""" + raise NotImplementedError
+ + + @property + def _interpolators(self): + interps = {} + + for name in self.required_parameters: + points = [a.center for a in self.axes] + points_scale = tuple([a.interp for a in self.axes]) + interps[name] = ScaledRegularGridInterpolator( + points, values=self.quantity[name], points_scale=points_scale + ) + + return interps + +
+[docs] + def evaluate_parameters(self, energy_true, offset): + """Evaluate analytic PSF parameters at a given energy and offset. + + Uses nearest-neighbor interpolation. + + Parameters + ---------- + energy_true : `~astropy.units.Quantity` + Energy value. + offset : `~astropy.coordinates.Angle` + Offset in the field of view. + + Returns + ------- + values : `~astropy.units.Quantity` + Interpolated value. + """ + pars = {} + for name in self.required_parameters: + value = self._interpolators[name]((energy_true, offset)) + pars[name] = value + + return pars
+ + +
+[docs] + def to_table(self, format="gadf-dl3"): + """Convert PSF table data to table. + + Parameters + ---------- + format : {"gadf-dl3"} + Format specification. Default is "gadf-dl3". + + + Returns + ------- + hdu_list : `~astropy.io.fits.HDUList` + PSF in HDU list format. + """ + from gammapy.irf.io import IRF_DL3_HDU_SPECIFICATION + + table = self.axes.to_table(format="gadf-dl3") + spec = IRF_DL3_HDU_SPECIFICATION[self.tag]["column_name"] + + for name in self.required_parameters: + column_name = spec[name] + table[column_name] = self.data[name].T[np.newaxis] + table[column_name].unit = self.unit[name] + + # Create hdu and hdu list + return table
+ + +
+[docs] + @classmethod + def from_table(cls, table, format="gadf-dl3"): + """Create parametric PSF from `~astropy.table.Table`. + + Parameters + ---------- + table : `~astropy.table.Table` + Table information. + format : {"gadf-dl3"}, optional + Format specification. Default is "gadf-dl3". + + Returns + ------- + psf : `~ParametricPSF` + PSF class. + """ + from gammapy.irf.io import IRF_DL3_HDU_SPECIFICATION + + axes = MapAxes.from_table(table, format=format)[cls.required_axes] + + dtype = { + "names": cls.required_parameters, + "formats": len(cls.required_parameters) * (np.float32,), + } + + data = np.empty(axes.shape, dtype=dtype) + unit = {} + + spec = IRF_DL3_HDU_SPECIFICATION[cls.tag]["column_name"] + + for name in cls.required_parameters: + column = table[spec[name]] + values = column.data[0].transpose() + + # This fixes some files where sigma is written as zero + if "sigma" in name: + values[values == 0] = 1.0 + + data[name] = values.reshape(axes.shape) + unit[name] = column.unit or "" + + unit = {key: u.Unit(val) for key, val in unit.items()} + return cls(axes=axes, data=data, meta=table.meta.copy(), unit=unit)
+ + +
+[docs] + def to_psf3d(self, rad=None): + """Create a PSF3D from a parametric PSF. + + It will be defined on the same energy and offset values than the input PSF. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad values. + + Returns + ------- + psf3d : `~gammapy.irf.PSF3D` + 3D PSF. + """ + from gammapy.datasets.map import RAD_AXIS_DEFAULT + from gammapy.irf import PSF3D + + offset_axis = self.axes["offset"] + energy_axis_true = self.axes["energy_true"] + + if rad is None: + rad_axis = RAD_AXIS_DEFAULT + else: + rad_axis = MapAxis.from_edges(rad, name="rad") + + axes = MapAxes([energy_axis_true, offset_axis, rad_axis]) + data = self.evaluate(**axes.get_coord()) + + return PSF3D(axes=axes, data=data.value, unit=data.unit, meta=self.meta.copy())
+ + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += "-" * len(self.__class__.__name__) + "\n\n" + str_ += f"\taxes : {self.axes.names}\n" + str_ += f"\tshape : {self.data.shape}\n" + str_ += f"\tndim : {len(self.axes)}\n" + str_ += f"\tparameters: {self.required_parameters}\n" + return str_.expandtabs(tabsize=2) + +
+[docs] + def containment(self, rad, **kwargs): + """Containment of the PSF at given axes coordinates. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad value. + **kwargs : dict + Other coordinates. + + Returns + ------- + containment : `~numpy.ndarray` + Containment. + """ + pars = self.evaluate_parameters(**kwargs) + containment = self.evaluate_containment(rad=rad, **pars) + return containment
+ + +
+[docs] + def evaluate(self, rad, **kwargs): + """Evaluate the PSF model. + + Parameters + ---------- + rad : `~astropy.coordinates.Angle` + Offset from PSF center used for evaluating the PSF on a grid. + **kwargs : dict + Other coordinates. + + Returns + ------- + psf_value : `~astropy.units.Quantity` + PSF value. + """ + pars = self.evaluate_parameters(**kwargs) + value = self.evaluate_direct(rad=rad, **pars) + return value
+ + +
+[docs] + def is_allclose(self, other, rtol_axes=1e-3, atol_axes=1e-6, **kwargs): + """Compare two data IRFs for equivalency. + + Parameters + ---------- + other : `gammapy.irfs.ParametricPSF` + The PSF to compare against. + rtol_axes : float, optional + Relative tolerance for the axis comparison. Default is 1e-3. + atol_axes : float, optional + Relative tolerance for the axis comparison. Default is 1e-6. + **kwargs : dict + Keywords passed to `numpy.allclose`. + + Returns + ------- + is_allclose : bool + Whether the IRF is all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + data_eq = True + + for key in self.quantity.keys(): + if self.quantity[key].shape != other.quantity[key].shape: + return False + + data_eq &= np.allclose(self.quantity[key], other.quantity[key], **kwargs) + + axes_eq = self.axes.is_allclose(other.axes, rtol=rtol_axes, atol=atol_axes) + return axes_eq and data_eq
+
+ + + +def get_sigmas_and_norms(**kwargs): + """Convert scale and amplitude to norms.""" + sigmas = u.Quantity([kwargs[f"sigma_{idx}"] for idx in [1, 2, 3]]) + + scale = kwargs["scale"] + ones = np.ones(scale.shape) + amplitudes = u.Quantity([ones, kwargs["ampl_2"], kwargs["ampl_3"]]) + norms = 2 * scale * amplitudes * sigmas**2 + return sigmas, norms + + +
+[docs] +class EnergyDependentMultiGaussPSF(ParametricPSF): + """Triple Gauss analytical PSF depending on true energy and offset. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy_true (true energy axis) + * migra_axis (energy migration axis) + * offset_axis (field of view offset axis) + data : `~numpy.recarray` + Data array. + meta : dict + Metadata dictionary. + + Examples + -------- + Plot R68 of the PSF vs. offset and true energy: + + .. plot:: + :include-source: + + import matplotlib.pyplot as plt + from gammapy.irf import EnergyDependentMultiGaussPSF + filename = '$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits' + psf = EnergyDependentMultiGaussPSF.read(filename, hdu='POINT SPREAD FUNCTION') + psf.plot_containment_radius(fraction=0.68) + plt.show() + """ + + tag = "psf_3gauss" + required_axes = ["energy_true", "offset"] + required_parameters = ["sigma_1", "sigma_2", "sigma_3", "scale", "ampl_2", "ampl_3"] + +
+[docs] + @staticmethod + def evaluate_containment(rad, **kwargs): + """Containment of the PSF at given axes coordinates. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad value. + **kwargs : dict + Parameters, see `required_parameters`. + + Returns + ------- + containment : `~numpy.ndarray` + Containment. + """ + sigmas, norms = get_sigmas_and_norms(**kwargs) + m = MultiGauss2D(sigmas=sigmas, norms=norms) + m.normalize() + containment = m.containment_fraction(rad) + return containment
+ + +
+[docs] + @staticmethod + def evaluate_direct(rad, **kwargs): + """Evaluate PSF model. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad value. + **kwargs : dict + Parameters, see `required_parameters`. + + Returns + ------- + value : `~numpy.ndarray` + PSF value. + """ + sigmas, norms = get_sigmas_and_norms(**kwargs) + m = MultiGauss2D(sigmas=sigmas, norms=norms) + m.normalize() + return m(rad)
+
+ + + +
+[docs] +class PSFKing(ParametricPSF): + """King profile analytical PSF depending on energy and offset. + + This PSF parametrisation and FITS data format is described here: :ref:`gadf:psf_king`. + + Parameters + ---------- + axes : list of `MapAxis` or `MapAxes` + Data axes, required are ["energy_true", "offset"]. + meta : dict + Metadata dictionary. + + """ + + tag = "psf_king" + required_axes = ["energy_true", "offset"] + required_parameters = ["gamma", "sigma"] + default_interp_kwargs = dict(bounds_error=False, fill_value=None) + +
+[docs] + @staticmethod + def evaluate_containment(rad, gamma, sigma): + """Containment of the PSF at given axes coordinates. + + Parameters + ---------- + rad : `~astropy.units.Quantity` + Rad value. + gamma : `~astropy.units.Quantity` + Gamma parameter. + sigma : `~astropy.units.Quantity` + Sigma parameter. + + Returns + ------- + containment : `~numpy.ndarray` + Containment. + """ + with np.errstate(divide="ignore", invalid="ignore"): + powterm = 1 - gamma + term = (1 + rad**2 / (2 * gamma * sigma**2)) ** powterm + containment = 1 - term + + return containment
+ + +
+[docs] + @staticmethod + def evaluate_direct(rad, gamma, sigma): + """Evaluate the PSF model. + + Formula is given here: :ref:`gadf:psf_king`. + + Parameters + ---------- + rad : `~astropy.coordinates.Angle` + Offset from PSF center used for evaluating the PSF on a grid. + + Returns + ------- + psf_value : `~astropy.units.Quantity` + PSF value. + """ + with np.errstate(divide="ignore"): + term1 = 1 / (2 * np.pi * sigma**2) + term2 = 1 - 1 / gamma + term3 = (1 + rad**2 / (2 * gamma * sigma**2)) ** (-gamma) + + return term1 * term2 * term3
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/psf/table.html b/docs/dev/_modules/gammapy/irf/psf/table.html new file mode 100644 index 00000000000..e61ff37d01d --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/psf/table.html @@ -0,0 +1,566 @@ + + + + + + + + + + gammapy.irf.psf.table — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.psf.table

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import astropy.units as u
+from .core import PSF
+
+__all__ = ["PSF3D"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class PSF3D(PSF): + """PSF with axes: energy, offset, rad. + + Data format specification: :ref:`gadf:psf_table` + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy_true (true energy axis) + * migra (energy migration axis) + * rad (rad axis) + data : `~astropy.units.Quantity` + PSF (3-dim with axes: psf[rad_index, offset_index, energy_index]. + meta : dict + Metadata dictionary. + """ + + tag = "psf_table" + required_axes = ["energy_true", "offset", "rad"] + default_unit = u.sr**-1
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/irf/rad_max.html b/docs/dev/_modules/gammapy/irf/rad_max.html new file mode 100644 index 00000000000..2f2a8609969 --- /dev/null +++ b/docs/dev/_modules/gammapy/irf/rad_max.html @@ -0,0 +1,664 @@ + + + + + + + + + + gammapy.irf.rad_max — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.irf.rad_max

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import astropy.units as u
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from matplotlib.ticker import FormatStrFormatter
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from .core import IRF
+
+__all__ = [
+    "RadMax2D",
+]
+
+
+
+[docs] +class RadMax2D(IRF): + """2D Rad Max table. + + This is not directly a IRF component but is needed as additional information + for point-like IRF components when an energy or field of view + dependent directional cut has been applied. + + Data format specification: :ref:`gadf:rad_max_2d`. + + Parameters + ---------- + axes : list of `~gammapy.maps.MapAxis` or `~gammapy.maps.MapAxes` + Required axes (in the given order) are: + * energy (reconstructed energy axis) + * offset (field of view offset axis) + data : `~astropy.units.Quantity` + Applied directional cut. + meta : dict + Metadata dictionary. + """ + + tag = "rad_max_2d" + required_axes = ["energy", "offset"] + default_unit = u.deg + +
+[docs] + @classmethod + def from_irf(cls, irf): + """Create a RadMax2D instance from another IRF component. + + This reads the RAD_MAX metadata keyword from the IRF and creates + a RadMax2D with a single bin in energy and offset using the + ranges from the input IRF. + + Parameters + ---------- + irf : `~gammapy.irf.EffectiveAreaTable2D` or `~gammapy.irf.EnergyDispersion2D` + IRF instance from which to read the RAD_MAX and limit information. + + Returns + ------- + rad_max : `RadMax2D` + `RadMax2D` object with a single bin corresponding to the fixed + RAD_MAX cut. + + Notes + ----- + This assumes the true energy axis limits are also valid for the + reconstructed energy limits. + """ + if not irf.is_pointlike: + raise ValueError("RadMax2D.from_irf requires a point-like irf") + + if "RAD_MAX" not in irf.meta: + raise ValueError("Irf does not contain RAD_MAX keyword") + + rad_max_value = irf.meta["RAD_MAX"] + if not isinstance(rad_max_value, float): + raise ValueError( + f"RAD_MAX must be a float, got '{type(rad_max_value)}' instead" + ) + + energy_axis = irf.axes["energy_true"].copy(name="energy").squash() + offset_axis = irf.axes["offset"].squash() + + return cls( + data=rad_max_value, + axes=[energy_axis, offset_axis], + unit="deg", + interp_kwargs={"method": "nearest", "fill_value": None}, + )
+ + +
+[docs] + def plot_rad_max_vs_energy(self, ax=None, **kwargs): + """Plot rad max value against energy. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axes`, optional + Matplotlib axes. Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.pcolormesh`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axes` + Matplotlib axes. + """ + if ax is None: + ax = plt.gca() + + energy_axis = self.axes["energy"] + offset_axis = self.axes["offset"] + + with quantity_support(): + for value in offset_axis.center: + rad_max = self.evaluate(offset=value) + label = f"Offset {value:.2f}" + kwargs.setdefault("label", label) + ax.plot(energy_axis.center, rad_max, **kwargs) + + energy_axis.format_plot_xaxis(ax=ax) + ax.set_ylim(0 * u.deg, None) + ax.legend(loc="best") + ax.set_ylabel(f"Rad max. [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]") + ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f")) + return ax
+ + + @property + def is_fixed_rad_max(self): + """Return True if rad_max axes are flat.""" + return self.axes.is_flat
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/background/fov.html b/docs/dev/_modules/gammapy/makers/background/fov.html new file mode 100644 index 00000000000..5ee21cbe547 --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/background/fov.html @@ -0,0 +1,821 @@ + + + + + + + + + + gammapy.makers.background.fov — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.background.fov

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""FoV background estimation."""
+import logging
+import numpy as np
+from gammapy.maps import Map, RegionGeom
+from gammapy.modeling import Fit
+from gammapy.modeling.models import FoVBackgroundModel, Model
+from ..core import Maker
+
+__all__ = ["FoVBackgroundMaker"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class FoVBackgroundMaker(Maker): + """Normalize template background on the whole field-of-view. + + The dataset background model can be simply scaled (method="scale") or fitted + (method="fit") on the dataset counts. + + The normalization is performed outside the exclusion mask that is passed on + init. This also internally takes into account the dataset fit mask. + + If a SkyModel is set on the input dataset its parameters + are frozen during the FoV re-normalization. + + If the requirement (greater than) of either min_counts or min_npred_background + is not satisfied, the background will not be normalised. + + Parameters + ---------- + method : {'scale', 'fit'} + The normalization method to be applied. Default 'scale'. + exclusion_mask : `~gammapy.maps.WcsNDMap` + Exclusion mask. + spectral_model : SpectralModel or str + Reference norm spectral model to use for the `FoVBackgroundModel`, if + none is defined on the dataset. By default, use pl-norm. + min_counts : int + Minimum number of counts, or residuals counts if a SkyModel is set, + required outside the exclusion region. + min_npred_background : float + Minimum number of predicted background counts required outside the + exclusion region. + """ + + tag = "FoVBackgroundMaker" + available_methods = ["fit", "scale"] + + def __init__( + self, + method="scale", + exclusion_mask=None, + spectral_model="pl-norm", + min_counts=0, + min_npred_background=0, + fit=None, + ): + self.method = method + self.exclusion_mask = exclusion_mask + self.min_counts = min_counts + self.min_npred_background = min_npred_background + + if isinstance(spectral_model, str): + spectral_model = Model.create(tag=spectral_model, model_type="spectral") + + if not spectral_model.is_norm_spectral_model: + raise ValueError("Spectral model must be a norm spectral model") + + self.default_spectral_model = spectral_model + + if fit is None: + fit = Fit() + + self.fit = fit + + @property + def method(self): + """Method property.""" + return self._method + + @method.setter + def method(self, value): + """Method setter.""" + if value not in self.available_methods: + raise ValueError( + f"Not a valid method for FoVBackgroundMaker: {value}." + f" Choose from {self.available_methods}" + ) + + self._method = value + +
+[docs] + def make_default_fov_background_model(self, dataset): + """Add FoV background model to the model definition. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + Returns + ------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset including background model. + + """ + bkg_model = FoVBackgroundModel( + dataset_name=dataset.name, spectral_model=self.default_spectral_model.copy() + ) + + if dataset.models is None: + dataset.models = bkg_model + else: + dataset.models = dataset.models + bkg_model + + return dataset
+ + +
+[docs] + def make_exclusion_mask(self, dataset): + """Project input exclusion mask to dataset geometry. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + Returns + ------- + mask : `~gammapy.maps.WcsNDMap` + Projected exclusion mask. + """ + geom = dataset._geom + if self.exclusion_mask: + mask = self.exclusion_mask.interp_to_geom(geom=geom) + else: + mask = Map.from_geom(geom=geom, data=1, dtype=bool) + return mask
+ + + def _make_masked_summed_counts(self, dataset): + """Compute the sums of the counts, npred, and background maps within the mask.""" + npred = dataset.npred() + mask = dataset.mask & ~np.isnan(npred) + count_tot = dataset.counts.data[mask].sum() + npred_tot = npred.data[mask].sum() + bkg_tot = dataset.npred_background().data[mask].sum() + return { + "counts": count_tot, + "npred": npred_tot, + "bkg": bkg_tot, + } + + def _verify_requirements(self, dataset): + """Verify that the requirements of min_counts and min_npred_background are satisfied.""" + total = self._make_masked_summed_counts(dataset) + not_bkg_tot = total["npred"] - total["bkg"] + + value = (total["counts"] - not_bkg_tot) / total["bkg"] + if not np.isfinite(value): + log.warning( + f"FoVBackgroundMaker failed. Non-finite normalisation value for {dataset.name}. " + "Setting mask to False." + ) + return False + elif total["bkg"] <= self.min_npred_background: + log.warning( + f"FoVBackgroundMaker failed. Only {int(total['bkg'])} background" + f" counts outside exclusion mask for {dataset.name}. " + "Setting mask to False." + ) + return False + elif total["counts"] <= self.min_counts: + log.warning( + f"FoVBackgroundMaker failed. Only {int(total['counts'])} counts " + f"outside exclusion mask for {dataset.name}. " + "Setting mask to False." + ) + return False + elif total["counts"] - not_bkg_tot <= 0: + log.warning( + f"FoVBackgroundMaker failed. Negative residuals counts for {dataset.name}. " + "Setting mask to False." + ) + return False + else: + return True + +
+[docs] + def run(self, dataset, observation=None): + """Run FoV background maker. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + """ + if isinstance(dataset.counts.geom, RegionGeom): + raise TypeError( + "FoVBackgroundMaker does not support region based datasets." + ) + + mask_fit = dataset.mask_fit + if mask_fit: + dataset.mask_fit *= self.make_exclusion_mask(dataset) + else: + dataset.mask_fit = self.make_exclusion_mask(dataset) + + if dataset.background_model is None: + dataset = self.make_default_fov_background_model(dataset) + + if self._verify_requirements(dataset) is True: + if self.method == "fit": + dataset = self.make_background_fit(dataset) + else: + # always scale the background first + dataset = self.make_background_scale(dataset) + else: + dataset.mask_safe.data[...] = False + + dataset.mask_fit = mask_fit + return dataset
+ + +
+[docs] + def make_background_fit(self, dataset): + """Fit the FoV background model on the dataset counts data. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + + Returns + ------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset with fitted background model. + """ + # freeze all model components not related to background model + models = dataset.models.select(tag="sky-model") + + with models.restore_status(restore_values=False): + models.select(tag="sky-model").freeze() + + fit_result = self.fit.run(datasets=[dataset]) + if not fit_result.success: + log.warning( + f"FoVBackgroundMaker failed. Fit did not converge for {dataset.name}. " + "Setting mask to False." + ) + dataset.mask_safe.data[...] = False + + return dataset
+ + +
+[docs] + def make_background_scale(self, dataset): + """Fit the FoV background model on the dataset counts data. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input dataset. + + Returns + ------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset with scaled background model. + """ + total = self._make_masked_summed_counts(dataset) + not_bkg_tot = total["npred"] - total["bkg"] + + value = (total["counts"] - not_bkg_tot) / total["bkg"] + error = np.sqrt(total["counts"] - not_bkg_tot) / total["bkg"] + dataset.models[f"{dataset.name}-bkg"].spectral_model.norm.value = value + dataset.models[f"{dataset.name}-bkg"].spectral_model.norm.error = error + + return dataset
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/background/phase.html b/docs/dev/_modules/gammapy/makers/background/phase.html new file mode 100644 index 00000000000..bb09b8ada03 --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/background/phase.html @@ -0,0 +1,703 @@ + + + + + + + + + + gammapy.makers.background.phase — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.background.phase

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+from copy import deepcopy
+import numpy as np
+from regions import PointSkyRegion
+from gammapy.data import EventList
+from gammapy.datasets import MapDatasetOnOff, SpectrumDataset
+from gammapy.makers.utils import make_counts_rad_max
+from gammapy.maps import Map
+from ..core import Maker
+
+__all__ = ["PhaseBackgroundMaker"]
+
+
+
+[docs] +class PhaseBackgroundMaker(Maker): + """Background estimation with on and off phases. + + Parameters + ---------- + on_phase : `tuple` or list of tuples + On-phase defined by the two edges of each interval (edges are excluded). + off_phase : `tuple` or list of tuples + Off-phase defined by the two edges of each interval (edges are excluded). + phase_column_name : `str`, optional + The name of the column in the event file from which the phase information are extracted. + Default is 'PHASE'. + """ + + tag = "PhaseBackgroundMaker" + + def __init__(self, on_phase, off_phase, phase_column_name="PHASE"): + self.on_phase = self._check_intervals(deepcopy(on_phase)) + self.off_phase = self._check_intervals(deepcopy(off_phase)) + self.phase_column_name = phase_column_name + + def __str__(self): + s = self.__class__.__name__ + s += f"\nOn phase interval : {self.on_phase}" + s += f"\nOff phase interval : {self.off_phase}" + s += f"\nPhase column name : {self.phase_column_name}" + return s + + @staticmethod + def _make_counts(dataset, observation, phases, phase_column_name): + + event_lists = [] + for interval in phases: + events = observation.events.select_parameter( + parameter=phase_column_name, band=interval + ) + event_lists.append(events) + + events = EventList.from_stack(event_lists) + geom = dataset.counts.geom + if geom.is_region and isinstance(geom.region, PointSkyRegion): + counts = make_counts_rad_max(geom, observation.rad_max, events) + else: + counts = Map.from_geom(geom) + counts.fill_events(events) + return counts + +
+[docs] + def make_counts_off(self, dataset, observation): + """Make off counts. + + Parameters + ---------- + dataset : `SpectrumDataset` + Input dataset. + observation : `DatastoreObservation` + Data store observation. + + Returns + ------- + counts_off : `RegionNDMap` + Off counts. + """ + return self._make_counts( + dataset, observation, self.off_phase, self.phase_column_name + )
+ + +
+[docs] + def make_counts(self, dataset, observation): + """Make on counts. + + Parameters + ---------- + dataset : `SpectrumDataset` + Input dataset. + observation : `DatastoreObservation` + Data store observation. + + Returns + ------- + counts : `RegionNDMap` + On counts. + """ + return self._make_counts( + dataset, observation, self.on_phase, self.phase_column_name + )
+ + +
+[docs] + def run(self, dataset, observation): + """Make on off dataset. + + Parameters + ---------- + dataset : `SpectrumDataset` or `MapDataset` + Input dataset. + observation : `Observation` + Data store observation. + + Returns + ------- + dataset_on_off : `SpectrumDatasetOnOff` or `MapDatasetOnOff` + On off dataset. + """ + counts_off = self.make_counts_off(dataset, observation) + counts = self.make_counts(dataset, observation) + + acceptance = Map.from_geom(geom=dataset.counts.geom) + acceptance.data = np.sum([_[1] - _[0] for _ in self.on_phase]) + + acceptance_off = Map.from_geom(geom=dataset.counts.geom) + acceptance_off.data = np.sum([_[1] - _[0] for _ in self.off_phase]) + + dataset_on_off = MapDatasetOnOff.from_map_dataset( + dataset=dataset, + counts_off=counts_off, + acceptance=acceptance, + acceptance_off=acceptance_off, + ) + dataset_on_off.counts = counts + + if isinstance(dataset, SpectrumDataset): + dataset_on_off = dataset_on_off.to_spectrum_dataset(dataset._geom.region) + + return dataset_on_off
+ + + @staticmethod + def _check_intervals(intervals): + """Split phase intervals that go below phase 0 and above phase 1. + + Parameters + ---------- + intervals: `tuple`or list of `tuple` + Phase interval or list of phase intervals to check. + + Returns + ------- + intervals: list of `tuple` + Phase interval checked. + """ + if isinstance(intervals, tuple): + intervals = [intervals] + + for phase_interval in intervals: + if phase_interval[0] % 1 > phase_interval[1] % 1: + intervals.remove(phase_interval) + intervals.append((phase_interval[0] % 1, 1)) + if phase_interval[1] % 1 != 0: + intervals.append((0, phase_interval[1] % 1)) + return intervals
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/background/reflected.html b/docs/dev/_modules/gammapy/makers/background/reflected.html new file mode 100644 index 00000000000..1a46678761d --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/background/reflected.html @@ -0,0 +1,1158 @@ + + + + + + + + + + gammapy.makers.background.reflected — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.background.reflected

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import logging
+from abc import ABCMeta, abstractmethod
+from itertools import combinations
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import Angle
+from regions import CircleSkyRegion, PixCoord, PointSkyRegion
+from gammapy.datasets import SpectrumDatasetOnOff
+from gammapy.maps import RegionGeom, RegionNDMap, WcsGeom, WcsNDMap
+from ..core import Maker
+from ..utils import make_counts_off_rad_max
+
+__all__ = [
+    "ReflectedRegionsBackgroundMaker",
+    "ReflectedRegionsFinder",
+    "RegionsFinder",
+    "WobbleRegionsFinder",
+]
+
+log = logging.getLogger(__name__)
+
+FULL_CIRCLE = Angle(2 * np.pi, "rad")
+
+
+def are_regions_overlapping_rad_max(regions, rad_max, offset, e_min, e_max):
+    """Calculate pair-wise separations between all regions and compare with rad_max to find overlaps."""
+    separations = u.Quantity(
+        [a.center.separation(b.center) for a, b in combinations(regions, 2)]
+    )
+
+    rad_max_at_offset = rad_max.evaluate(offset=offset)
+    # do not check bins outside of energy range
+    edges_min = rad_max.axes["energy"].edges_min
+    edges_max = rad_max.axes["energy"].edges_max
+    # to be sure all possible values are included, we check
+    # for the *upper* energy bin to be larger than e_min and the *lower* edge
+    # to be larger than e_max
+    mask = (edges_max >= e_min) & (edges_min <= e_max)
+    rad_max_at_offset = rad_max_at_offset[mask]
+    return np.any(separations[np.newaxis, :] < (2 * rad_max_at_offset))
+
+
+def is_rad_max_compatible_region_geom(rad_max, geom, rtol=1e-3):
+    """Check if input RegionGeom is compatible with rad_max for point-like analysis.
+
+    Parameters
+    ----------
+    geom : `~gammapy.maps.RegionGeom`
+        Input RegionGeom.
+    rtol : float, optional
+        Relative tolerance. Default is 1e-3.
+
+    Returns
+    -------
+    valid : bool
+        True if rad_max is fixed and region is a CircleSkyRegion with compatible radius
+        True if region is a PointSkyRegion
+        False otherwise.
+    """
+    if geom.is_all_point_sky_regions:
+        valid = True
+    elif isinstance(geom.region, CircleSkyRegion) and rad_max.is_fixed_rad_max:
+        valid = np.allclose(geom.region.radius, rad_max.quantity, rtol)
+
+        if not valid:
+            raise ValueError(
+                f"CircleSkyRegion radius must be equal to RADMAX "
+                f"for point-like IRFs with fixed RADMAX. "
+                f"Expected {rad_max.quantity} got {geom.region.radius}."
+            )
+    else:
+        valid = False
+
+    return valid
+
+
+
+[docs] +class RegionsFinder(metaclass=ABCMeta): + """Base class for regions finders. + + Parameters + ---------- + binsz : `~astropy.coordinates.Angle` + Bin size of the reference map used for region finding. + """ + + def __init__(self, binsz=0.01 * u.deg): + """Create a new RegionFinder.""" + self.binsz = Angle(binsz) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + @abstractmethod + def run(self, region, center, exclusion_mask=None): + """Find reflected regions. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region to rotate. + center : `~astropy.coordinates.SkyCoord` + Rotation point. + exclusion_mask : `~gammapy.maps.WcsNDMap`, optional + Exclusion mask. Regions intersecting with this mask will not be + included in the returned regions. + Default is None. + + Returns + ------- + regions : list of `~regions.SkyRegion` + Reflected regions. + wcs : `~astropy.wcs.WCS` + WCS for the determined regions. + """
+ + + def _create_reference_geometry(self, region, center): + """Reference geometry. + + The size of the map is chosen such that all reflected regions are + contained on the image. + To do so, the reference map width is taken to be 4 times the distance between + the target region center and the rotation point. This distance is larger than + the typical dimension of the region itself (otherwise the rotation point would + lie inside the region). A minimal width value is added by default in case the + region center and the rotation center are too close. + + The WCS of the map is the TAN projection at the `center` in the coordinate + system used by the `region` center. + """ + frame = region.center.frame.name + + # width is the full width of an image (not the radius) + width = 4 * region.center.separation(center) + Angle("0.3 deg") + + return WcsGeom.create( + skydir=center, binsz=self.binsz, width=width, frame=frame, proj="TAN" + ) + + @staticmethod + def _get_center_pixel(center, reference_geom): + """Center pixel coordinate.""" + return PixCoord.from_sky(center, reference_geom.wcs) + + @staticmethod + def _get_region_pixels(region, reference_geom): + """Pixel region.""" + return region.to_pixel(reference_geom.wcs) + + @staticmethod + def _exclusion_mask_ref(reference_geom, exclusion_mask): + """Exclusion mask reprojected.""" + if exclusion_mask: + mask = exclusion_mask.interp_to_geom(reference_geom, fill_value=True) + else: + mask = WcsNDMap.from_geom(geom=reference_geom, data=True) + return mask + + @staticmethod + def _get_excluded_pixels(reference_geom, exclusion_mask): + """Excluded pixel coordinates.""" + # find excluded PixCoords + exclusion_mask = ReflectedRegionsFinder._exclusion_mask_ref( + reference_geom, + exclusion_mask, + ) + pix_y, pix_x = np.nonzero(~exclusion_mask.data) + return PixCoord(pix_x, pix_y)
+ + + +
+[docs] +class WobbleRegionsFinder(RegionsFinder): + """Find the OFF regions symmetric to the ON region. + + This is a simpler version of the `ReflectedRegionsFinder`, that + will place ``n_off_regions`` regions at symmetric positions on the + circle created by the center position and the on region. + + Returns no regions if the regions are found to be overlapping, + in that case reduce the number of off regions and/or their size. + + Parameters + ---------- + n_off_regions : int + Number of off regions to create. Actual number of off regions + might be smaller if an ``exclusion_mask`` is given to `WobbleRegionsFinder.run`. + binsz : `~astropy.coordinates.Angle` + Bin size of the reference map used for region finding. + """ + + def __init__(self, n_off_regions, binsz=0.01 * u.deg): + super().__init__(binsz=binsz) + self.n_off_regions = n_off_regions + +
+[docs] + def run(self, region, center, exclusion_mask=None): + """Find off regions. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region to rotate. + center : `~astropy.coordinates.SkyCoord` + Rotation point. + exclusion_mask : `~gammapy.maps.WcsNDMap`, optional + Exclusion mask. Regions intersecting with this mask will not be + included in the returned regions. + Default is None. + + Returns + ------- + regions : list of `~regions.SkyRegion` + Reflected regions. + wcs : `~astropy.wcs.WCS` + WCS for the determined regions. + """ + reference_geom = self._create_reference_geometry(region, center) + center_pixel = self._get_center_pixel(center, reference_geom) + + region_pix = self._get_region_pixels(region, reference_geom) + excluded_pixels = self._get_excluded_pixels(reference_geom, exclusion_mask) + + n_positions = self.n_off_regions + 1 + increment = FULL_CIRCLE / n_positions + + regions = [] + for i in range(1, n_positions): + angle = i * increment + region_test = region_pix.rotate(center_pixel, angle) + + # for PointSkyRegion, we test if the point is inside the exclusion mask + # otherwise we test if there is overlap + + excluded = False + if exclusion_mask is not None: + if isinstance(region, PointSkyRegion): + excluded = ( + excluded_pixels.separation(region_test.center) < 1 + ).any() + else: + excluded = region_test.contains(excluded_pixels).any() + + if not excluded: + regions.append(region_test) + + # We cannot check for overlap of PointSkyRegion here, this is done later + # in make_counts_off_rad_max in the rad_max case + if not isinstance(region, PointSkyRegion): + if self._are_regions_overlapping(regions, reference_geom): + log.warning("Found overlapping off regions, returning no regions") + return [], reference_geom.wcs + + return [r.to_sky(reference_geom.wcs) for r in regions], reference_geom.wcs
+ + + @staticmethod + def _are_regions_overlapping(regions, reference_geom): + # check for overlap + masks = [ + region.to_mask().to_image(reference_geom._shape) > 0 for region in regions + ] + for mask_a, mask_b in combinations(masks, 2): + if np.any(mask_a & mask_b): + return True + + return False
+ + + +
+[docs] +class ReflectedRegionsFinder(RegionsFinder): + """Find reflected regions. + + This class is responsible for placing a reflected region for a given + input region and pointing position. It converts to pixel coordinates + internally assuming a tangent projection at center position. + + If the center lies inside the input region, no reflected regions + can be found. + + If you want to make a + background estimate for an IACT observation using the reflected regions + method, see also `~gammapy.makers.ReflectedRegionsBackgroundMaker`. + + Parameters + ---------- + angle_increment : `~astropy.coordinates.Angle`, optional + Rotation angle applied when a region falls in an excluded region. + min_distance : `~astropy.coordinates.Angle`, optional + Minimum rotation angle between two consecutive reflected regions. + min_distance_input : `~astropy.coordinates.Angle`, optional + Minimum rotation angle between the input region and the first reflected region. + max_region_number : int, optional + Maximum number of regions to use. + binsz : `~astropy.coordinates.Angle` + Bin size of the reference map used for region finding. + + Examples + -------- + >>> from astropy.coordinates import SkyCoord, Angle + >>> from regions import CircleSkyRegion + >>> from gammapy.makers import ReflectedRegionsFinder + >>> pointing = SkyCoord(83.2, 22.7, unit='deg', frame='icrs') + >>> target_position = SkyCoord(80.2, 23.5, unit='deg', frame='icrs') + >>> theta = Angle(0.4, 'deg') + >>> on_region = CircleSkyRegion(target_position, theta) + >>> finder = ReflectedRegionsFinder(min_distance_input='1 rad') + >>> regions, wcs = finder.run(region=on_region, center=pointing) + >>> print(regions[0]) # doctest: +ELLIPSIS + Region: CircleSkyRegion + center: <SkyCoord (ICRS): (ra, dec) in deg + (83.19879005, 25.57300957)> + radius: 1438.3... arcsec + """ + + def __init__( + self, + angle_increment="0.1 rad", + min_distance="0 rad", + min_distance_input="0.1 rad", + max_region_number=10000, + binsz="0.01 deg", + ): + super().__init__(binsz=binsz) + self.angle_increment = Angle(angle_increment) + + if self.angle_increment <= Angle(0, "deg"): + raise ValueError("angle_increment is too small") + + self.min_distance = Angle(min_distance) + self.min_distance_input = Angle(min_distance_input) + + self.max_region_number = max_region_number + self.binsz = Angle(binsz) + + @staticmethod + def _region_angular_size(region, reference_geom, center_pix): + """Compute maximum angular size of a group of pixels as seen from center. + + This assumes that the center lies outside the group of pixel. + + Returns + ------- + angular_size : `~astropy.coordinates.Angle` + The maximum angular size. + """ + mask = reference_geom.region_mask([region]).data + pix_y, pix_x = np.nonzero(mask) + + pixels = PixCoord(pix_x, pix_y) + + dx, dy = center_pix.x - pixels.x, center_pix.y - pixels.y + angles = Angle(np.arctan2(dx, dy), "rad") + angular_size = np.max(angles) - np.min(angles) + + if angular_size.value > np.pi: + angle_wrapped = angles.wrap_at(0 * u.rad) + angular_size = np.max(angle_wrapped) - np.min(angle_wrapped) + + return angular_size + + def _get_angle_range(self, region, reference_geom, center_pix): + """Minimum and maximum angle.""" + region_angular_size = self._region_angular_size( + region=region, reference_geom=reference_geom, center_pix=center_pix + ) + # Minimum angle a region has to be moved to not overlap with previous one + # Add required minimal distance between two off regions + angle_min = region_angular_size + self.min_distance + angle_max = FULL_CIRCLE - angle_min - self.min_distance_input + return angle_min, angle_max + +
+[docs] + def run(self, region, center, exclusion_mask=None): + """Find reflected regions. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region to rotate. + center : `~astropy.coordinates.SkyCoord` + Rotation point. + exclusion_mask : `~gammapy.maps.WcsNDMap`, optional + Exclusion mask. Regions intersecting with this mask will not be + included in the returned regions. + Default is None. + + Returns + ------- + regions : list of `~regions.SkyRegion` + Reflected regions. + wcs : `~astropy.wcs.WCS` + WCS for the determined regions. + """ + if isinstance(region, PointSkyRegion): + raise TypeError( + "ReflectedRegionsFinder does not work with PointSkyRegion. Use WobbleRegionsFinder instead." + ) + + regions = [] + + reference_geom = self._create_reference_geometry(region, center) + center_pixel = self._get_center_pixel(center, reference_geom) + + region_pix = self._get_region_pixels(region, reference_geom) + excluded_pixels = self._get_excluded_pixels(reference_geom, exclusion_mask) + + angle_min, angle_max = self._get_angle_range( + region=region, + reference_geom=reference_geom, + center_pix=center_pixel, + ) + + angle = angle_min + self.min_distance_input + while angle < angle_max: + region_test = region_pix.rotate(center_pixel, angle) + + if not np.any(region_test.contains(excluded_pixels)): + region = region_test.to_sky(reference_geom.wcs) + regions.append(region) + + if len(regions) >= self.max_region_number: + break + + angle += angle_min + else: + angle += self.angle_increment + + return regions, reference_geom.wcs
+
+ + + +
+[docs] +class ReflectedRegionsBackgroundMaker(Maker): + """Reflected regions background maker. + + Attributes + ---------- + region_finder: RegionsFinder + If not given, a `ReflectedRegionsFinder` will be created and + any of the ``**kwargs`` will be forwarded to the `ReflectedRegionsFinder`. + exclusion_mask : `~gammapy.maps.WcsNDMap`, optional + Exclusion mask. The map must contain at max one non-spatial dimension, and this + dimension must be one bin. + """ + + tag = "ReflectedRegionsBackgroundMaker" + + def __init__( + self, + region_finder=None, + exclusion_mask=None, + **kwargs, + ): + + if exclusion_mask and not exclusion_mask.is_mask: + raise ValueError("Exclusion mask must contain boolean values") + + if exclusion_mask and not exclusion_mask.geom.is_flat: + raise ValueError("Exclusion mask must only contain spatial dimension") + + if exclusion_mask: + exclusion_mask = exclusion_mask.sum_over_axes(keepdims=False) + exclusion_mask.data = exclusion_mask.data.astype("bool") + + self.exclusion_mask = exclusion_mask + + if region_finder is None: + self.region_finder = ReflectedRegionsFinder(**kwargs) + else: + if kwargs: + raise ValueError("No kwargs can be given if providing a region_finder") + self.region_finder = region_finder + + @staticmethod + def _filter_regions_off_rad_max(regions_off, energy_axis, geom, events, rad_max): + # check for overlap + offset = geom.region.center.separation(events.pointing_radec) + + e_min, e_max = energy_axis.bounds + regions = [geom.region] + regions_off + + overlap = are_regions_overlapping_rad_max( + regions, rad_max, offset, e_min, e_max + ) + + if overlap: + log.warning("Found overlapping on/off regions, choose less off regions") + return [] + + return regions_off + +
+[docs] + def make_counts_off(self, dataset, observation): + """Make off counts. + + **NOTE for 1D analysis:** as for + `~gammapy.makers.map.MapDatasetMaker.make_counts`, + if the geometry of the dataset is a `~regions.CircleSkyRegion` then only + a single instance of the `ReflectedRegionsFinder` will be called. + If, on the other hand, the geometry of the dataset is a + `~regions.PointSkyRegion`, then we have to call the + `ReflectedRegionsFinder` several time, each time with a different size + of the on region that we will read from the `RAD_MAX_2D` table. + + Parameters + ---------- + dataset : `~gammapy.datasets.SpectrumDataset` + Spectrum dataset. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + counts_off : `~gammapy.maps.RegionNDMap` + Counts vs estimated energy extracted from the OFF regions. + """ + geom = dataset.counts.geom + energy_axis = geom.axes["energy"] + events = observation.events + rad_max = observation.rad_max + + is_point_sky_region = geom.is_all_point_sky_regions + + if rad_max and not is_rad_max_compatible_region_geom( + rad_max=rad_max, geom=geom + ): + raise ValueError( + "Must use `PointSkyRegion` or `CircleSkyRegion` with rad max " + "equivalent radius in point-like analysis," + f" got {type(geom.region)} instead" + ) + + regions_off, wcs = self.region_finder.run( + center=observation.get_pointing_icrs(observation.tmid), + region=geom.region, + exclusion_mask=self.exclusion_mask, + ) + + if geom.is_all_point_sky_regions and len(regions_off) > 0: + regions_off = self._filter_regions_off_rad_max( + regions_off, energy_axis, geom, events, rad_max + ) + + if len(regions_off) == 0: + log.warning( + "ReflectedRegionsBackgroundMaker failed. No OFF region found " + f"outside exclusion mask for dataset '{dataset.name}'." + ) + return None, RegionNDMap.from_geom(geom=geom, data=0) + + geom_off = RegionGeom.from_regions( + regions=regions_off, + axes=[energy_axis], + wcs=wcs, + ) + + if is_point_sky_region: + counts_off = make_counts_off_rad_max( + geom_off=geom_off, + rad_max=rad_max, + events=events, + ) + else: + counts_off = RegionNDMap.from_geom(geom=geom_off) + counts_off.fill_events(events) + + acceptance_off = RegionNDMap.from_geom(geom=geom_off, data=len(regions_off)) + + return counts_off, acceptance_off
+ + +
+[docs] + def run(self, dataset, observation): + """Run reflected regions background maker. + + Parameters + ---------- + dataset : `~gammapy.datasets.SpectrumDataset` + Spectrum dataset. + observation : `~gammapy.data.Observation` + Data store observation. + + Returns + ------- + dataset_on_off : `~gammapy.datasets.SpectrumDatasetOnOff` + On-Off dataset. + """ + counts_off, acceptance_off = self.make_counts_off(dataset, observation) + acceptance = RegionNDMap.from_geom(geom=dataset.counts.geom, data=1) + + dataset_onoff = SpectrumDatasetOnOff.from_spectrum_dataset( + dataset=dataset, + acceptance=acceptance, + acceptance_off=acceptance_off, + counts_off=counts_off, + name=dataset.name, + ) + + if dataset_onoff.counts_off is None: + dataset_onoff.mask_safe.data[...] = False + log.warning( + f"ReflectedRegionsBackgroundMaker failed. Setting {dataset_onoff.name} " + "mask to False." + ) + return dataset_onoff
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/background/ring.html b/docs/dev/_modules/gammapy/makers/background/ring.html new file mode 100644 index 00000000000..a8e007a1404 --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/background/ring.html @@ -0,0 +1,904 @@ + + + + + + + + + + gammapy.makers.background.ring — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.background.ring

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Ring background estimation."""
+import itertools
+import numpy as np
+from astropy.convolution import Ring2DKernel, Tophat2DKernel
+from astropy.coordinates import Angle
+from gammapy.maps import Map
+from gammapy.utils.array import scale_cube
+from ..core import Maker
+
+__all__ = ["AdaptiveRingBackgroundMaker", "RingBackgroundMaker"]
+
+
+
+[docs] +class AdaptiveRingBackgroundMaker(Maker): + """Adaptive ring background algorithm. + + This algorithm extends the `RingBackgroundMaker` method by adapting the size + of the ring to achieve a minimum on / off exposure ratio (alpha) in regions + where the area to estimate the background from is limited. + + Parameters + ---------- + r_in : `~astropy.units.Quantity` + Inner radius of the ring. + r_out_max : `~astropy.units.Quantity` + Maximum outer radius of the ring. + width : `~astropy.units.Quantity` + Width of the ring. + stepsize : `~astropy.units.Quantity` + Stepsize used for increasing the radius. + threshold_alpha : float + Threshold on alpha above which the adaptive ring takes action. + theta : `~astropy.units.Quantity` + Integration radius used for alpha computation. + method : {'fixed_width', 'fixed_r_in'} + Adaptive ring method. Default is 'fixed_width'. + exclusion_mask : `~gammapy.maps.WcsNDMap` + Exclusion mask. + + See Also + -------- + RingBackgroundMaker. + """ + + tag = "AdaptiveRingBackgroundMaker" + + def __init__( + self, + r_in, + r_out_max, + width, + stepsize="0.02 deg", + threshold_alpha=0.1, + theta="0.22 deg", + method="fixed_width", + exclusion_mask=None, + ): + if method not in ["fixed_width", "fixed_r_in"]: + raise ValueError("Not a valid adaptive ring method.") + + self.r_in = Angle(r_in) + self.r_out_max = Angle(r_out_max) + self.width = Angle(width) + self.stepsize = Angle(stepsize) + self.threshold_alpha = threshold_alpha + self.theta = Angle(theta) + self.method = method + self.exclusion_mask = exclusion_mask + +
+[docs] + def kernels(self, image): + """Ring kernels according to the specified method. + + Parameters + ---------- + image : `~gammapy.maps.WcsNDMap` + Map specifying the WCS information. + + Returns + ------- + kernels : list + List of `~astropy.convolution.Ring2DKernel`. + """ + scale = image.geom.pixel_scales[0] + r_in = (self.r_in / scale).to_value("") + r_out_max = (self.r_out_max / scale).to_value("") + width = (self.width / scale).to_value("") + stepsize = (self.stepsize / scale).to_value("") + + if self.method == "fixed_width": + r_ins = np.arange(r_in, (r_out_max - width), stepsize) + widths = [width] + elif self.method == "fixed_r_in": + widths = np.arange(width, (r_out_max - r_in), stepsize) + r_ins = [r_in] + else: + raise ValueError(f"Invalid method: {self.method!r}") + + kernels = [] + for r_in, width in itertools.product(r_ins, widths): + kernel = Ring2DKernel(r_in, width) + kernel.normalize("peak") + kernels.append(kernel) + + return kernels
+ + + @staticmethod + def _alpha_approx_cube(cubes): + acceptance = cubes["acceptance"] + acceptance_off = cubes["acceptance_off"] + with np.errstate(divide="ignore", invalid="ignore"): + alpha_approx = np.where( + acceptance_off > 0, acceptance / acceptance_off, np.inf + ) + + return alpha_approx + + def _reduce_cubes(self, cubes, dataset): + """Compute off and off acceptance map. + + Calculated by reducing the cubes. The data is + iterated along the third axis (i.e. increasing ring sizes), the value + with the first approximate alpha < threshold is taken. + """ + threshold = self.threshold_alpha + + alpha_approx_cube = self._alpha_approx_cube(cubes) + counts_off_cube = cubes["counts_off"] + acceptance_off_cube = cubes["acceptance_off"] + acceptance_cube = cubes["acceptance"] + + shape = alpha_approx_cube.shape[:2] + counts_off = np.tile(np.nan, shape) + acceptance_off = np.tile(np.nan, shape) + acceptance = np.tile(np.nan, shape) + + for idx in np.arange(alpha_approx_cube.shape[-1]): + mask = (alpha_approx_cube[:, :, idx] <= threshold) & np.isnan(counts_off) + counts_off[mask] = counts_off_cube[:, :, idx][mask] + acceptance_off[mask] = acceptance_off_cube[:, :, idx][mask] + acceptance[mask] = acceptance_cube[:, :, idx][mask] + + counts = dataset.counts + acceptance = counts.copy(data=acceptance[np.newaxis, Ellipsis]) + acceptance_off = counts.copy(data=acceptance_off[np.newaxis, Ellipsis]) + counts_off = counts.copy(data=counts_off[np.newaxis, Ellipsis]) + + return acceptance, acceptance_off, counts_off + +
+[docs] + def make_cubes(self, dataset): + """Make acceptance, off acceptance, off counts cubes. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + Returns + ------- + cubes : dict of `~gammapy.maps.WcsNDMap` + Dictionary containing ``counts_off``, ``acceptance`` and ``acceptance_off`` cubes. + """ + counts = dataset.counts + background = dataset.npred_background() + kernels = self.kernels(counts) + + if self.exclusion_mask: + exclusion = self.exclusion_mask.interp_to_geom(geom=counts.geom) + else: + exclusion = Map.from_geom(geom=counts.geom, data=True, dtype=bool) + + cubes = {} + cubes["counts_off"] = scale_cube( + (counts.data * exclusion.data)[0, Ellipsis], kernels + ) + cubes["acceptance_off"] = scale_cube( + (background.data * exclusion.data)[0, Ellipsis], kernels + ) + + scale = background.geom.pixel_scales[0].to("deg") + theta = self.theta * scale + tophat = Tophat2DKernel(theta.value) + tophat.normalize("peak") + acceptance = background.convolve(tophat.array) + acceptance_data = acceptance.data[0, Ellipsis] + cubes["acceptance"] = np.repeat( + acceptance_data[Ellipsis, np.newaxis], len(kernels), axis=2 + ) + + return cubes
+ + +
+[docs] + def run(self, dataset, observation=None): + """Run adaptive ring background maker. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + Returns + ------- + dataset_on_off : `~gammapy.datasets.MapDatasetOnOff` + On off dataset. + """ + from gammapy.datasets import MapDatasetOnOff + + cubes = self.make_cubes(dataset) + acceptance, acceptance_off, counts_off = self._reduce_cubes(cubes, dataset) + + mask_safe = dataset.mask_safe.copy() + not_has_off_acceptance = acceptance_off.data <= 0 + mask_safe.data[not_has_off_acceptance] = 0 + + dataset_on_off = MapDatasetOnOff.from_map_dataset( + dataset=dataset, + counts_off=counts_off, + acceptance=acceptance, + acceptance_off=acceptance_off, + name=dataset.name, + ) + + dataset_on_off.mask_safe = mask_safe + return dataset_on_off
+
+ + + +
+[docs] +class RingBackgroundMaker(Maker): + """Perform a local renormalisation of the existing background template, using a ring kernel. + + Expected signal regions should be removed by passing an exclusion mask. + + Parameters + ---------- + r_in : `~astropy.units.Quantity` + Inner ring radius. + width : `~astropy.units.Quantity` + Ring width. + exclusion_mask : `~gammapy.maps.WcsNDMap` + Exclusion mask. + + + Examples + -------- + For a usage example, see :doc:`/tutorials/analysis-2d/ring_background` tutorial. + + See Also + -------- + AdaptiveRingBackgroundEstimator. + """ + + tag = "RingBackgroundMaker" + + def __init__(self, r_in, width, exclusion_mask=None): + self.r_in = Angle(r_in) + self.width = Angle(width) + self.exclusion_mask = exclusion_mask + +
+[docs] + def kernel(self, image): + """Ring kernel. + + Parameters + ---------- + image : `~gammapy.maps.WcsNDMap` + Input map. + + Returns + ------- + ring : `~astropy.convolution.Ring2DKernel` + Ring kernel. + """ + scale = image.geom.pixel_scales[0].to("deg") + r_in = self.r_in.to("deg") / scale + width = self.width.to("deg") / scale + + ring = Ring2DKernel(r_in.value, width.value) + ring.normalize("peak") + return ring
+ + +
+[docs] + def make_maps_off(self, dataset): + """Make off maps. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + Returns + ------- + maps_off : dict of `~gammapy.maps.WcsNDMap` + Dictionary containing `counts_off` and `acceptance_off` maps. + """ + counts = dataset.counts + background = dataset.npred_background() + + if self.exclusion_mask is not None: + # reproject exclusion mask + coords = counts.geom.get_coord() + data = self.exclusion_mask.get_by_coord(coords) + exclusion = Map.from_geom(geom=counts.geom, data=data) + else: + data = np.ones(counts.geom.data_shape, dtype=bool) + exclusion = Map.from_geom(geom=counts.geom, data=data) + + maps_off = {} + ring = self.kernel(counts) + + counts_excluded = counts * exclusion + maps_off["counts_off"] = counts_excluded.convolve(ring.array) + + background_excluded = background * exclusion + maps_off["acceptance_off"] = background_excluded.convolve(ring.array) + + return maps_off
+ + +
+[docs] + def run(self, dataset, observation=None): + """Run ring background maker. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Input map dataset. + + Returns + ------- + dataset_on_off : `~gammapy.datasets.MapDatasetOnOff` + On off dataset. + """ + from gammapy.datasets import MapDatasetOnOff + + maps_off = self.make_maps_off(dataset) + maps_off["acceptance"] = dataset.npred_background() + + mask_safe = dataset.mask_safe.copy() + not_has_off_acceptance = maps_off["acceptance_off"].data <= 0 + mask_safe.data[not_has_off_acceptance] = 0 + + dataset_on_off = MapDatasetOnOff.from_map_dataset( + dataset=dataset, name=dataset.name, **maps_off + ) + + dataset_on_off.mask_safe = mask_safe + return dataset_on_off
+ + + def __str__(self): + return ( + "RingBackground parameters: \n" + f"r_in : {self.parameters['r_in']}\n" + f"width: {self.parameters['width']}\n" + f"Exclusion mask: {self.exclusion_mask}" + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/core.html b/docs/dev/_modules/gammapy/makers/core.html new file mode 100644 index 00000000000..5853cc1d1be --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/core.html @@ -0,0 +1,581 @@ + + + + + + + + + + gammapy.makers.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import html
+import numpy as np
+
+__all__ = ["Maker"]
+
+
+
+[docs] +class Maker(abc.ABC): + """Abstract maker base class.""" + + @property + @abc.abstractmethod + def tag(self): + pass + +
+[docs] + @abc.abstractmethod + def run(self): + pass
+ + + def __str__(self): + s = f"{self.__class__.__name__}\n" + s += "-" * (len(s) - 1) + "\n\n" + + names = self.__init__.__code__.co_varnames + + max_len = np.max([len(_) for _ in names]) + 1 + + for name in names: + value = getattr(self, name, None) + + if value is None: + continue + else: + s += f"\t{name:{max_len}s}: {value}\n" + + return s.expandtabs(tabsize=2) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>"
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/map.html b/docs/dev/_modules/gammapy/makers/map.html new file mode 100644 index 00000000000..a5bc7d7e666 --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/map.html @@ -0,0 +1,984 @@ + + + + + + + + + + gammapy.makers.map — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.map

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import astropy.units as u
+from astropy.table import Table
+from regions import PointSkyRegion
+from gammapy.datasets import MapDatasetMetaData
+from gammapy.irf import EDispKernelMap, PSFMap, RecoPSFMap
+from gammapy.maps import Map
+from .core import Maker
+from .utils import (
+    make_counts_rad_max,
+    make_edisp_kernel_map,
+    make_edisp_map,
+    make_map_background_irf,
+    make_map_exposure_true_energy,
+    make_psf_map,
+)
+
+__all__ = ["MapDatasetMaker"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class MapDatasetMaker(Maker): + """Make binned maps for a single IACT observation. + + Parameters + ---------- + selection : list of str, optional + Select which maps to make, the available options are: + 'counts', 'exposure', 'background', 'psf', 'edisp'. + By default, all maps are made. + background_oversampling : int + Background evaluation oversampling factor in energy. + background_interp_missing_data : bool, optional + Interpolate missing values in background 3d map. + Default is True, have to be set to True for CTAO IRF. + background_pad_offset : bool, optional + Pad one bin in offset for 2d background map. + This avoids extrapolation at edges and use the nearest value. + Default is True. + + Examples + -------- + This example shows how to run the MapMaker for a single observation. + + >>> from gammapy.data import DataStore + >>> from gammapy.datasets import MapDataset + >>> from gammapy.maps import WcsGeom, MapAxis + >>> from gammapy.makers import MapDatasetMaker + + >>> # Load an observation + >>> data_store = DataStore.from_dir("$GAMMAPY_DATA/hess-dl3-dr1") + >>> obs = data_store.obs(23523) + + >>> # Prepare the geometry + >>> energy_axis = MapAxis.from_energy_bounds(1.0, 10.0, 4, unit="TeV") + >>> energy_axis_true = MapAxis.from_energy_bounds( 0.5, 20, 10, unit="TeV", name="energy_true") + >>> geom = WcsGeom.create( + ... skydir=(83.633, 22.014), + ... binsz=0.02, + ... width=(2, 2), + ... frame="icrs", + ... proj="CAR", + ... axes=[energy_axis], + ... ) + + >>> # Run the maker + >>> empty = MapDataset.create(geom=geom, energy_axis_true=energy_axis_true, name="empty") + >>> maker = MapDatasetMaker() + >>> dataset = maker.run(empty, obs) + >>> print(dataset) + MapDataset + ---------- + <BLANKLINE> + Name : empty + <BLANKLINE> + Total counts : 787 + Total background counts : 684.52 + Total excess counts : 102.48 + <BLANKLINE> + Predicted counts : 684.52 + Predicted background counts : 684.52 + Predicted excess counts : nan + <BLANKLINE> + Exposure min : 7.01e+07 m2 s + Exposure max : 1.10e+09 m2 s + <BLANKLINE> + Number of total bins : 40000 + Number of fit bins : 40000 + <BLANKLINE> + Fit statistic type : cash + Fit statistic value (-2 log(L)) : nan + <BLANKLINE> + Number of models : 0 + Number of parameters : 0 + Number of free parameters : 0 + + """ + + tag = "MapDatasetMaker" + available_selection = ["counts", "exposure", "background", "psf", "edisp"] + + def __init__( + self, + selection=None, + background_oversampling=None, + background_interp_missing_data=True, + background_pad_offset=True, + ): + self.background_oversampling = background_oversampling + self.background_interp_missing_data = background_interp_missing_data + self.background_pad_offset = background_pad_offset + if selection is None: + selection = self.available_selection + + selection = set(selection) + + if not selection.issubset(self.available_selection): + difference = selection.difference(self.available_selection) + raise ValueError(f"{difference} is not a valid method.") + + self.selection = selection + +
+[docs] + @staticmethod + def make_counts(geom, observation): + """Make counts map. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference map geometry. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + counts : `~gammapy.maps.Map` + Counts map. + """ + if geom.is_region and isinstance(geom.region, PointSkyRegion): + counts = make_counts_rad_max(geom, observation.rad_max, observation.events) + else: + counts = Map.from_geom(geom) + counts.fill_events(observation.events) + return counts
+ + +
+[docs] + @staticmethod + def make_exposure(geom, observation, use_region_center=True): + """Make exposure map. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference map geometry. + observation : `~gammapy.data.Observation` + Observation container. + use_region_center : bool, optional + For geom as a `~gammapy.maps.RegionGeom`. If True, consider the values at the region center. + If False, average over the whole region. + Default is True. + + Returns + ------- + exposure : `~gammapy.maps.Map` + Exposure map. + """ + if isinstance(observation.aeff, Map): + return observation.aeff.interp_to_geom( + geom=geom, + ) + return make_map_exposure_true_energy( + pointing=observation.get_pointing_icrs(observation.tmid), + livetime=observation.observation_live_time_duration, + aeff=observation.aeff, + geom=geom, + use_region_center=use_region_center, + )
+ + +
+[docs] + @staticmethod + def make_exposure_irf(geom, observation, use_region_center=True): + """Make exposure map with IRF geometry. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference geometry. + observation : `~gammapy.data.Observation` + Observation container. + use_region_center : bool, optional + For geom as a `~gammapy.maps.RegionGeom`. If True, consider the values at the region center. + If False, average over the whole region. + Default is True. + + Returns + ------- + exposure : `~gammapy.maps.Map` + Exposure map. + """ + return make_map_exposure_true_energy( + pointing=observation.get_pointing_icrs(observation.tmid), + livetime=observation.observation_live_time_duration, + aeff=observation.aeff, + geom=geom, + use_region_center=use_region_center, + )
+ + +
+[docs] + def make_background(self, geom, observation): + """Make background map. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference geometry. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + background : `~gammapy.maps.Map` + Background map. + """ + bkg = observation.bkg + + if isinstance(bkg, Map): + return bkg.interp_to_geom(geom=geom, preserve_counts=True) + + use_region_center = getattr(self, "use_region_center", True) + + if self.background_interp_missing_data: + bkg.interp_missing_data(axis_name="energy") + + if self.background_pad_offset and bkg.has_offset_axis: + bkg = bkg.pad(1, mode="edge", axis_name="offset") + + return make_map_background_irf( + pointing=observation.pointing, + ontime=observation.observation_time_duration, + bkg=bkg, + geom=geom, + oversampling=self.background_oversampling, + use_region_center=use_region_center, + obstime=observation.tmid, + )
+ + +
+[docs] + def make_edisp(self, geom, observation): + """Make energy dispersion map. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference geometry. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + edisp : `~gammapy.irf.EDispMap` + Energy dispersion map. + """ + exposure = self.make_exposure_irf(geom.squash(axis_name="migra"), observation) + + use_region_center = getattr(self, "use_region_center", True) + + return make_edisp_map( + edisp=observation.edisp, + pointing=observation.get_pointing_icrs(observation.tmid), + geom=geom, + exposure_map=exposure, + use_region_center=use_region_center, + )
+ + +
+[docs] + def make_edisp_kernel(self, geom, observation): + """Make energy dispersion kernel map. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference geometry. Must contain "energy" and "energy_true" axes in that order. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + edisp : `~gammapy.irf.EDispKernelMap` + Energy dispersion kernel map. + """ + if isinstance(observation.edisp, EDispKernelMap): + exposure = None + interp_map = observation.edisp.edisp_map.interp_to_geom(geom) + return EDispKernelMap(edisp_kernel_map=interp_map, exposure_map=exposure) + + exposure = self.make_exposure_irf(geom.squash(axis_name="energy"), observation) + + use_region_center = getattr(self, "use_region_center", True) + + return make_edisp_kernel_map( + edisp=observation.edisp, + pointing=observation.get_pointing_icrs(observation.tmid), + geom=geom, + exposure_map=exposure, + use_region_center=use_region_center, + )
+ + +
+[docs] + def make_psf(self, geom, observation): + """Make PSF map. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference geometry. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + psf : `~gammapy.irf.PSFMap` + PSF map. + """ + psf = observation.psf + + if isinstance(psf, RecoPSFMap): + return RecoPSFMap(psf.psf_map.interp_to_geom(geom)) + elif isinstance(psf, PSFMap): + return PSFMap(psf.psf_map.interp_to_geom(geom)) + exposure = self.make_exposure_irf(geom.squash(axis_name="rad"), observation) + + return make_psf_map( + psf=psf, + pointing=observation.get_pointing_icrs(observation.tmid), + geom=geom, + exposure_map=exposure, + )
+ + +
+[docs] + @staticmethod + def make_meta_table(observation): + """Make information meta table. + + Parameters + ---------- + observation : `~gammapy.data.Observation` + Observation. + + Returns + ------- + meta_table : `~astropy.table.Table` + Meta table. + """ + row = {} + row["TELESCOP"] = observation.aeff.meta.get("TELESCOP", "Unknown") + row["OBS_ID"] = observation.obs_id + + row.update(observation.pointing.to_fits_header()) + + meta_table = Table([row]) + if "ALT_PNT" in meta_table.colnames: + meta_table["ALT_PNT"].unit = u.deg + meta_table["AZ_PNT"].unit = u.deg + if "RA_PNT" in meta_table.colnames: + meta_table["RA_PNT"].unit = u.deg + meta_table["DEC_PNT"].unit = u.deg + + return meta_table
+ + + @staticmethod + def _make_metadata(table): + return MapDatasetMetaData._from_meta_table(table) + +
+[docs] + def run(self, dataset, observation): + """Make map dataset. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Reference dataset. + observation : `~gammapy.data.Observation` + Observation. + + Returns + ------- + dataset : `~gammapy.datasets.MapDataset` + Map dataset. + """ + kwargs = {"gti": observation.gti} + kwargs["meta_table"] = self.make_meta_table(observation) + kwargs["meta"] = self._make_metadata(kwargs["meta_table"]) + + mask_safe = Map.from_geom(dataset.counts.geom, dtype=bool) + mask_safe.data[...] = True + + kwargs["mask_safe"] = mask_safe + + if "counts" in self.selection: + counts = self.make_counts(dataset.counts.geom, observation) + else: + counts = Map.from_geom(dataset.counts.geom, data=0) + kwargs["counts"] = counts + + if "exposure" in self.selection: + exposure = self.make_exposure(dataset.exposure.geom, observation) + kwargs["exposure"] = exposure + + if "background" in self.selection: + kwargs["background"] = self.make_background( + dataset.counts.geom, observation + ) + + if "psf" in self.selection: + psf = self.make_psf(dataset.psf.psf_map.geom, observation) + kwargs["psf"] = psf + + if "edisp" in self.selection: + if dataset.edisp.edisp_map.geom.axes[0].name.upper() == "MIGRA": + edisp = self.make_edisp(dataset.edisp.edisp_map.geom, observation) + else: + edisp = self.make_edisp_kernel( + dataset.edisp.edisp_map.geom, observation + ) + + kwargs["edisp"] = edisp + + return dataset.__class__(name=dataset.name, **kwargs)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/reduce.html b/docs/dev/_modules/gammapy/makers/reduce.html new file mode 100644 index 00000000000..3a808eb617f --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/reduce.html @@ -0,0 +1,741 @@ + + + + + + + + + + gammapy.makers.reduce — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.reduce

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from astropy.coordinates import Angle
+import gammapy.utils.parallel as parallel
+from gammapy.datasets import Datasets, MapDataset, MapDatasetOnOff, SpectrumDataset
+from .core import Maker
+from .safe import SafeMaskMaker
+
+log = logging.getLogger(__name__)
+
+
+__all__ = [
+    "DatasetsMaker",
+]
+
+
+
+[docs] +class DatasetsMaker(Maker, parallel.ParallelMixin): + """Run makers in a chain. + + Parameters + ---------- + makers : list of `Maker` objects + Makers. + stack_datasets : bool, optional + If True, stack into the reference dataset (see `run` method arguments). + Default is True. + n_jobs : int, optional + Number of processes to run in parallel. + Default is one, unless `~gammapy.utils.parallel.N_JOBS_DEFAULT` was modified. + cutout_mode : {'trim', 'partial', 'strict'} + Used only to cutout the reference `MapDataset` around each processed observation. + Mode is an option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. + Default is "trim". + cutout_width : tuple of `~astropy.coordinates.Angle`, optional + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + If None it returns an error, except if the list of makers includes a `SafeMaskMaker` + with the offset-max method defined. In that case it is set to two times `offset_max`. + Default is None. + parallel_backend : {'multiprocessing', 'ray'}, optional + Which backend to use for multiprocessing. + Default is None. + """ + + tag = "DatasetsMaker" + + def __init__( + self, + makers, + stack_datasets=True, + n_jobs=None, + cutout_mode="trim", + cutout_width=None, + parallel_backend=None, + ): + self.log = logging.getLogger(__name__) + self.makers = makers + self.cutout_mode = cutout_mode + + if cutout_width is not None: + cutout_width = Angle(cutout_width) + + self.cutout_width = cutout_width + self._apply_cutout = True + + if self.cutout_width is None: + if self.offset_max is None: + self._apply_cutout = False + else: + self.cutout_width = 2 * self.offset_max + + self.n_jobs = n_jobs + self.parallel_backend = parallel_backend + self.stack_datasets = stack_datasets + + self._datasets = [] + self._error = False + + @property + def offset_max(self): + maker = self.safe_mask_maker + if maker is not None and hasattr(maker, "offset_max"): + return maker.offset_max + + @property + def safe_mask_maker(self): + for m in self.makers: + if isinstance(m, SafeMaskMaker): + return m + +
+[docs] + def make_dataset(self, dataset, observation): + """Make single dataset. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Reference dataset. + observation : `Observation` + Observation. + """ + if self._apply_cutout: + cutouts_kwargs = { + "position": observation.get_pointing_icrs(observation.tmid).galactic, + "width": self.cutout_width, + "mode": self.cutout_mode, + } + dataset_obs = dataset.cutout( + **cutouts_kwargs, + ) + else: + dataset_obs = dataset.copy() + + if dataset.models is not None: + models = dataset.models.copy() + models.reassign(dataset.name, dataset_obs.name) + dataset_obs.models = models + + log.info(f"Computing dataset for observation {observation.obs_id}") + + for maker in self.makers: + log.info(f"Running {maker.tag}") + dataset_obs = maker.run(dataset=dataset_obs, observation=observation) + + return dataset_obs
+ + +
+[docs] + def callback(self, dataset): + if self.stack_datasets: + if type(self._dataset) is MapDataset and type(dataset) is MapDatasetOnOff: + dataset = dataset.to_map_dataset(name=dataset.name) + self._dataset.stack(dataset) + else: + self._datasets.append(dataset)
+ + +
+[docs] + def error_callback(self, dataset): + # parallel run could cause a memory error with non-explicit message. + self._error = True
+ + +
+[docs] + def run(self, dataset, observations, datasets=None): + """Run data reduction. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` + Reference dataset (used only for stacking if datasets are provided). + observations : `Observations` + Observations. + datasets : `~gammapy.datasets.Datasets` + Base datasets, if provided its length must be the same as the observations. + + Returns + ------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + + """ + if isinstance(dataset, MapDataset): + # also valid for Spectrum as it inherits from MapDataset + self._dataset = dataset + else: + raise TypeError("Invalid reference dataset.") + + if isinstance(dataset, SpectrumDataset): + self._apply_cutout = False + + if datasets is not None: + self._apply_cutout = False + else: + datasets = len(observations) * [dataset] + + n_jobs = min(self.n_jobs, len(observations)) + + parallel.run_multiprocessing( + self.make_dataset, + zip(datasets, observations), + backend=self.parallel_backend, + pool_kwargs=dict(processes=n_jobs), + method="apply_async", + method_kwargs=dict( + callback=self.callback, + error_callback=self.error_callback, + ), + task_name="Data reduction", + ) + + if self._error: + raise RuntimeError("Execution of a sub-process failed") + + if self.stack_datasets: + return Datasets([self._dataset]) + + lookup = { + d.meta_table["OBS_ID"][0]: idx for idx, d in enumerate(self._datasets) + } + return Datasets([self._datasets[lookup[obs.obs_id]] for obs in observations])
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/safe.html b/docs/dev/_modules/gammapy/makers/safe.html new file mode 100644 index 00000000000..7188bb45670 --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/safe.html @@ -0,0 +1,938 @@ + + + + + + + + + + gammapy.makers.safe — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.safe

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import Angle
+from gammapy.irf import EDispKernelMap
+from gammapy.maps import Map
+from gammapy.modeling.models import TemplateSpectralModel
+from .core import Maker
+
+__all__ = ["SafeMaskMaker"]
+
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class SafeMaskMaker(Maker): + """Make safe data range mask for a given observation. + + For more information see :ref:`safe-data-range`. + + .. warning:: + + Currently, some methods computing a safe energy range ("aeff-default", + "aeff-max" and "edisp-bias") determine a true energy range and apply + it to reconstructed energy, effectively neglecting the energy dispersion. + + Parameters + ---------- + methods : {"aeff-default", "aeff-max", "edisp-bias", "offset-max", "bkg-peak"} + Method to use for the safe energy range. Can be a + list with a combination of those. Resulting masks + are combined with logical `and`. "aeff-default" + uses the energy ranged specified in the DL3 data + files, if available. + aeff_percent : float + Percentage of the maximal effective area to be used + as lower energy threshold for method "aeff-max". + bias_percent : float + Percentage of the energy bias to be used as lower + energy threshold for method "edisp-bias". + position : `~astropy.coordinates.SkyCoord` + Position at which the `aeff_percent` or `bias_percent` are computed. + fixed_offset : `~astropy.coordinates.Angle` + Offset, calculated from the pointing position, at which + the `aeff_percent` or `bias_percent` are computed. + If neither the position nor fixed_offset is specified, + it uses the position of the center of the map by default. + offset_max : str or `~astropy.units.Quantity` + Maximum offset cut. + irfs : {"DL4", "DL3"} + Whether to use reprojected ("DL4") or raw ("DL3") irfs. + Default is "DL4". + """ + + tag = "SafeMaskMaker" + available_methods = { + "aeff-default", + "aeff-max", + "edisp-bias", + "offset-max", + "bkg-peak", + } + + def __init__( + self, + methods=["aeff-default"], + aeff_percent=10, + bias_percent=10, + position=None, + fixed_offset=None, + offset_max="3 deg", + irfs="DL4", + ): + methods = set(methods) + + if not methods.issubset(self.available_methods): + difference = methods.difference(self.available_methods) + raise ValueError(f"{difference} is not a valid method.") + + self.methods = methods + self.aeff_percent = aeff_percent + self.bias_percent = bias_percent + self.position = position + self.fixed_offset = fixed_offset + self.offset_max = Angle(offset_max) + if self.position and self.fixed_offset: + raise ValueError( + "`position` and `fixed_offset` attributes are mutually exclusive" + ) + + if irfs not in ["DL3", "DL4"]: + ValueError( + "Invalid option for irfs: expected 'DL3' or 'DL4', got {irfs} instead." + ) + self.irfs = irfs + +
+[docs] + def make_mask_offset_max(self, dataset, observation): + """Make maximum offset mask. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + observation : `~gammapy.data.Observation` + Observation to compute mask for. + + Returns + ------- + mask_safe : `~numpy.ndarray` + Maximum offset mask. + """ + if observation is None: + raise ValueError("Method 'offset-max' requires an observation object.") + + separation = dataset._geom.separation( + observation.get_pointing_icrs(observation.tmid) + ) + return separation < self.offset_max
+ + +
+[docs] + @staticmethod + def make_mask_energy_aeff_default(dataset, observation): + """Make safe energy mask from aeff default. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + observation : `~gammapy.data.Observation` + Observation to compute mask for. + + Returns + ------- + mask_safe : `~numpy.ndarray` + Safe data range mask. + """ + if observation is None: + raise ValueError("Method 'aeff-default' requires an observation object.") + + energy_max = observation.aeff.meta.get("HI_THRES", None) + + if energy_max: + energy_max = energy_max * u.TeV + else: + log.warning( + f"No default upper safe energy threshold defined for obs {observation.obs_id}" + ) + + energy_min = observation.aeff.meta.get("LO_THRES", None) + + if energy_min: + energy_min = energy_min * u.TeV + else: + log.warning( + f"No default lower safe energy threshold defined for obs {observation.obs_id}" + ) + + return dataset._geom.energy_mask(energy_min=energy_min, energy_max=energy_max)
+ + + def _get_offset(self, observation): + offset = self.fixed_offset + if offset is None: + if self.position: + offset = observation.get_pointing_icrs(observation.tmid).separation( + self.position + ) + else: + offset = 0.0 * u.deg + return offset + + def _get_position(self, observation, geom): + if self.fixed_offset is not None and observation is not None: + pointing = observation.get_pointing_icrs(observation.tmid) + return pointing.directional_offset_by( + position_angle=0 * u.deg, separation=self.fixed_offset + ) + elif self.position is not None: + return self.position + else: + return geom.center_skydir + +
+[docs] + def make_mask_energy_aeff_max(self, dataset, observation=None): + """Make safe energy mask from effective area maximum value. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + observation : `~gammapy.data.Observation` + Observation to compute mask for. It is a mandatory argument when fixed_offset is set. + + Returns + ------- + mask_safe : `~numpy.ndarray` + Safe data range mask. + """ + + if self.fixed_offset is not None and observation is None: + raise ValueError( + f"{observation} argument is mandatory with {self.fixed_offset}" + ) + + geom, exposure = dataset._geom, dataset.exposure + + if self.irfs == "DL3": + offset = self._get_offset(observation) + + values = observation.aeff.evaluate( + offset=offset, energy_true=observation.aeff.axes["energy_true"].edges + ) + valid = observation.aeff.axes["energy_true"].edges[ + values > self.aeff_percent * np.max(values) / 100 + ] + energy_min = np.min(valid) + + else: + position = self._get_position(observation, geom) + + aeff = exposure.get_spectrum(position) / exposure.meta["livetime"] + if not np.any(aeff.data > 0.0): + log.warning( + f"Effective area is all zero at [{position.to_string('dms')}]. " + f"No safe energy band can be defined for the dataset '{dataset.name}': " + "setting `mask_safe` to all False." + ) + return Map.from_geom(geom, data=False, dtype="bool") + + model = TemplateSpectralModel.from_region_map(aeff) + + energy_true = model.energy + energy_min = energy_true[np.where(model.values > 0)[0][0]] + energy_max = energy_true[-1] + + aeff_thres = (self.aeff_percent / 100) * aeff.quantity.max() + inversion = model.inverse( + aeff_thres, energy_min=energy_min, energy_max=energy_max + ) + + if not np.isnan(inversion[0]): + energy_min = inversion[0] + + return geom.energy_mask(energy_min=energy_min)
+ + +
+[docs] + def make_mask_energy_edisp_bias(self, dataset, observation=None): + """Make safe energy mask from energy dispersion bias. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + observation : `~gammapy.data.Observation` + Observation to compute mask for. It is a mandatory argument when fixed_offset is set. + + Returns + ------- + mask_safe : `~numpy.ndarray` + Safe data range mask. + """ + + if self.fixed_offset is not None and observation is None: + raise ValueError( + f"{observation} argument is mandatory with {self.fixed_offset}" + ) + + edisp, geom = dataset.edisp, dataset._geom + + if self.irfs == "DL3": + offset = self._get_offset(observation) + edisp = observation.edisp.to_edisp_kernel(offset) + else: + kwargs = dict() + kwargs["position"] = self._get_position(observation, geom) + if not isinstance(edisp, EDispKernelMap): + kwargs["energy_axis"] = dataset._geom.axes["energy"] + edisp = edisp.get_edisp_kernel(**kwargs) + energy_min = edisp.get_bias_energy(self.bias_percent / 100)[0] + return geom.energy_mask(energy_min=energy_min)
+ + +
+[docs] + def make_mask_energy_bkg_peak(self, dataset, observation=None): + """Make safe energy mask based on the binned background. + + The energy threshold is defined as the lower edge of the energy + bin with the highest predicted background rate. This is to ensure analysis in + a region where a Powerlaw approximation to the background spectrum is valid. + The is motivated by its use in the H.E.S.S. DL3 + validation paper: https://arxiv.org/pdf/1910.08088.pdf + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + observation: `~gammapy.data.Observation` + Observation to compute mask for. It is a mandatory argument when DL3 irfs are used. + + + Returns + ------- + mask_safe : `~numpy.ndarray` + Safe data range mask. + """ + geom = dataset._geom + if self.irfs == "DL3": + bkg = observation.bkg.to_2d() + background_spectrum = np.ravel( + bkg.integral(axis_name="offset", offset=bkg.axes["offset"].bounds[1]) + ) + energy_axis = bkg.axes["energy"] + else: + background_spectrum = dataset.npred_background().get_spectrum() + energy_axis = geom.axes["energy"] + + idx = np.argmax(background_spectrum.data, axis=0) + return geom.energy_mask(energy_min=energy_axis.edges[idx])
+ + +
+[docs] + @staticmethod + def make_mask_bkg_invalid(dataset): + """Mask non-finite values and zeros values in background maps. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + + Returns + ------- + mask_safe : `~numpy.ndarray` + Safe data range mask. + """ + bkg = dataset.background.data + mask = np.isfinite(bkg) + + if not dataset.stat_type == "wstat": + mask &= bkg > 0.0 + + return mask
+ + +
+[docs] + def run(self, dataset, observation=None): + """Make safe data range mask. + + Parameters + ---------- + dataset : `~gammapy.datasets.MapDataset` or `~gammapy.datasets.SpectrumDataset` + Dataset to compute mask for. + observation : `~gammapy.data.Observation` + Observation to compute mask for. + + Returns + ------- + dataset : `Dataset` + Dataset with defined safe range mask. + """ + + if self.irfs == "DL3": + if observation is None: + raise ValueError("observation argument is mandatory with DL3 irfs") + + if dataset.mask_safe: + mask_safe = dataset.mask_safe.data + else: + mask_safe = np.ones(dataset._geom.data_shape, dtype=bool) + + if dataset.background is not None: + # apply it first so only clipped values are removed for "bkg-peak" + mask_safe &= self.make_mask_bkg_invalid(dataset) + + if "offset-max" in self.methods: + mask_safe &= self.make_mask_offset_max(dataset, observation) + + if "aeff-default" in self.methods: + mask_safe &= self.make_mask_energy_aeff_default(dataset, observation) + + if "aeff-max" in self.methods: + mask_safe &= self.make_mask_energy_aeff_max(dataset, observation) + + if "edisp-bias" in self.methods: + mask_safe &= self.make_mask_energy_edisp_bias(dataset, observation) + + if "bkg-peak" in self.methods: + mask_safe &= self.make_mask_energy_bkg_peak(dataset, observation) + + dataset.mask_safe = Map.from_geom(dataset._geom, data=mask_safe, dtype=bool) + return dataset
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/spectrum.html b/docs/dev/_modules/gammapy/makers/spectrum.html new file mode 100644 index 00000000000..2440c8daa4b --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/spectrum.html @@ -0,0 +1,678 @@ + + + + + + + + + + gammapy.makers.spectrum — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.spectrum

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from regions import CircleSkyRegion
+from .map import MapDatasetMaker
+
+__all__ = ["SpectrumDatasetMaker"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class SpectrumDatasetMaker(MapDatasetMaker): + """Make spectrum for a single IACT observation. + + The IRFs and background are computed at a single fixed offset, + which is recommended only for point-sources. + + Parameters + ---------- + selection : list of str, optional + Select which maps to make, the available options are: + 'counts', 'exposure', 'background', 'edisp'. + By default, all maps are made. + containment_correction : bool + Apply containment correction for point sources and circular on regions. + background_oversampling : int + Background evaluation oversampling factor in energy. + use_region_center : bool + If True, approximate the IRFs by the value at the center of the region. + If False, the IRFs are averaged over the entire. + """ + + tag = "SpectrumDatasetMaker" + available_selection = ["counts", "background", "exposure", "edisp"] + + def __init__( + self, + selection=None, + containment_correction=False, + background_oversampling=None, + use_region_center=True, + ): + self.containment_correction = containment_correction + self.use_region_center = use_region_center + super().__init__( + selection=selection, background_oversampling=background_oversampling + ) + +
+[docs] + def make_exposure(self, geom, observation): + """Make exposure. + + Parameters + ---------- + geom : `~gammapy.maps.RegionGeom` + Reference map geometry. + observation : `~gammapy.data.Observation` + Observation to compute effective area for. + + Returns + ------- + exposure : `~gammapy.maps.RegionNDMap` + Exposure map. + """ + exposure = super().make_exposure( + geom, observation, use_region_center=self.use_region_center + ) + + is_pointlike = exposure.meta.get("is_pointlike", False) + if is_pointlike and self.use_region_center is False: + log.warning( + "MapMaker: use_region_center=False should not be used with point-like IRF. " + "Results are likely inaccurate." + ) + + if self.containment_correction: + if is_pointlike: + raise ValueError( + "Cannot apply containment correction for point-like IRF." + ) + + if not isinstance(geom.region, CircleSkyRegion): + raise TypeError( + "Containment correction only supported for circular regions." + ) + offset = geom.separation(observation.get_pointing_icrs(observation.tmid)) + containment = observation.psf.containment( + rad=geom.region.radius, + offset=offset, + energy_true=geom.axes["energy_true"].center, + ) + exposure.quantity *= containment.reshape(geom.data_shape) + + return exposure
+ + +
+[docs] + @staticmethod + def make_counts(geom, observation): + """Make counts map. + + If the `~gammapy.maps.RegionGeom` is built from a `~regions.CircleSkyRegion`, + the latter will be directly used to extract the counts. + If instead the `~gammapy.maps.RegionGeom` is built from a `~regions.PointSkyRegion`, + the size of the ON region is taken from the `RAD_MAX_2D` table containing energy-dependent theta2 cuts. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Reference map geometry. + observation : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + counts : `~gammapy.maps.RegionNDMap` + Counts map. + """ + return super(SpectrumDatasetMaker, SpectrumDatasetMaker).make_counts( + geom, observation + )
+ + +
+[docs] + def run(self, dataset, observation): + """Make spectrum dataset. + + Parameters + ---------- + dataset : `~gammapy.spectrum.SpectrumDataset` + Reference dataset. + observation : `~gammapy.data.Observation` + Observation. + + Returns + ------- + dataset : `~gammapy.spectrum.SpectrumDataset` + Spectrum dataset. + """ + return super(SpectrumDatasetMaker, self).run(dataset, observation)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/makers/utils.html b/docs/dev/_modules/gammapy/makers/utils.html new file mode 100644 index 00000000000..36171f17c10 --- /dev/null +++ b/docs/dev/_modules/gammapy/makers/utils.html @@ -0,0 +1,1242 @@ + + + + + + + + + + gammapy.makers.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.makers.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import warnings
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import Angle
+from astropy.table import Table
+from gammapy.data import FixedPointingInfo
+from gammapy.irf import BackgroundIRF, EDispMap, FoVAlignment, PSFMap
+from gammapy.maps import Map, RegionNDMap
+from gammapy.maps.utils import broadcast_axis_values_to_geom
+from gammapy.modeling.models import PowerLawSpectralModel
+from gammapy.stats import WStatCountsStatistic
+from gammapy.utils.coordinates import sky_to_fov
+from gammapy.utils.regions import compound_region_to_regions
+
+__all__ = [
+    "make_counts_rad_max",
+    "make_edisp_kernel_map",
+    "make_edisp_map",
+    "make_map_background_irf",
+    "make_map_exposure_true_energy",
+    "make_psf_map",
+    "make_theta_squared_table",
+    "make_effective_livetime_map",
+    "make_observation_time_map",
+]
+
+log = logging.getLogger(__name__)
+
+
+def _get_fov_coords(pointing, irf, geom, use_region_center=True, obstime=None):
+    # TODO: create dedicated coordinate handling see #5041
+    coords = {}
+    if isinstance(pointing, FixedPointingInfo):
+        # for backwards compatibility, obstime should be required
+        if obstime is None:
+            if isinstance(obstime, BackgroundIRF):
+                warnings.warn(
+                    "Future versions of gammapy will require the obstime keyword for this function",
+                    DeprecationWarning,
+                )
+            obstime = pointing.obstime
+
+        pointing_icrs = pointing.get_icrs(obstime)
+    else:
+        pointing_icrs = pointing
+
+    if not use_region_center:
+        region_coord, weights = geom.get_wcs_coord_and_weights()
+        sky_coord = region_coord.skycoord
+
+    else:
+        image_geom = geom.to_image()
+        map_coord = image_geom.get_coord()
+        sky_coord = map_coord.skycoord
+
+    if irf.has_offset_axis:
+        coords["offset"] = sky_coord.separation(pointing_icrs)
+    else:
+        if irf.fov_alignment == FoVAlignment.ALTAZ:
+            if not isinstance(pointing, FixedPointingInfo) and isinstance(
+                irf, BackgroundIRF
+            ):
+                raise TypeError(
+                    "make_map_background_irf requires FixedPointingInfo if "
+                    "BackgroundIRF.fov_alignement is ALTAZ",
+                )
+
+            # for backwards compatibility, obstime should be required
+            if obstime is None:
+                warnings.warn(
+                    "Future versions of gammapy will require the obstime keyword for this function",
+                    DeprecationWarning,
+                )
+                obstime = pointing.obstime
+
+            pointing_altaz = pointing.get_altaz(obstime)
+            altaz_coord = sky_coord.transform_to(pointing_altaz.frame)
+
+            # Compute FOV coordinates of map relative to pointing
+            fov_lon, fov_lat = sky_to_fov(
+                altaz_coord.az, altaz_coord.alt, pointing_altaz.az, pointing_altaz.alt
+            )
+        elif irf.fov_alignment in [FoVAlignment.RADEC, FoVAlignment.REVERSE_LON_RADEC]:
+            fov_lon, fov_lat = sky_to_fov(
+                sky_coord.icrs.ra,
+                sky_coord.icrs.dec,
+                pointing_icrs.icrs.ra,
+                pointing_icrs.icrs.dec,
+            )
+            if irf.fov_alignment == FoVAlignment.REVERSE_LON_RADEC:
+                fov_lon = -fov_lon
+        else:
+            raise ValueError(
+                f"Unsupported background coordinate system: {irf.fov_alignment!r}"
+            )
+
+        coords["fov_lon"] = fov_lon
+        coords["fov_lat"] = fov_lat
+    return coords
+
+
+
+[docs] +def make_map_exposure_true_energy( + pointing, livetime, aeff, geom, use_region_center=True +): + """Compute exposure map. + + This map has a true energy axis, the exposure is not combined + with energy dispersion. + + Parameters + ---------- + pointing : `~astropy.coordinates.SkyCoord` + Pointing direction. + livetime : `~astropy.units.Quantity` + Livetime. + aeff : `~gammapy.irf.EffectiveAreaTable2D` + Effective area. + geom : `~gammapy.maps.WcsGeom` + Map geometry (must have an energy axis). + use_region_center : bool, optional + For geom as a `~gammapy.maps.RegionGeom`. If True, consider the values at the region center. + If False, average over the whole region. + Default is True. + + Returns + ------- + map : `~gammapy.maps.WcsNDMap` + Exposure map. + """ + coords = _get_fov_coords( + pointing=pointing, + geom=geom, + use_region_center=use_region_center, + irf=aeff, + obstime=None, + ) + + coords["energy_true"] = broadcast_axis_values_to_geom(geom, "energy_true") + exposure = aeff.evaluate(**coords) + + data = (exposure * u.Quantity(livetime)).to("m2 s") + meta = {"livetime": livetime, "is_pointlike": aeff.is_pointlike} + + if not use_region_center: + _, weights = geom.get_wcs_coord_and_weights() + data = np.average(data, axis=-1, weights=weights, keepdims=True) + return Map.from_geom(geom=geom, data=data.value, unit=data.unit, meta=meta)
+ + + +def _map_spectrum_weight(map, spectrum=None): + """Weight a map with a spectrum. + + This requires map to have an "energy" axis. + The weights are normalised so that they sum to 1. + The mean and unit of the output image is the same as of the input cube. + + At the moment this is used to get a weighted exposure image. + + Parameters + ---------- + map : `~gammapy.maps.Map` + Input map with an "energy" axis. + spectrum : `~gammapy.modeling.models.SpectralModel`, optional + Spectral model to compute the weights. + Default is None, which is a power-law with spectral index of 2. + + Returns + ------- + map_weighted : `~gammapy.maps.Map` + Weighted image. + """ + if spectrum is None: + spectrum = PowerLawSpectralModel(index=2.0) + + # Compute weights vector + for name in map.geom.axes.names: + if "energy" in name: + energy_name = name + energy_edges = map.geom.axes[energy_name].edges + weights = spectrum.integral( + energy_min=energy_edges[:-1], energy_max=energy_edges[1:] + ) + weights /= weights.sum() + shape = np.ones(len(map.geom.data_shape)) + shape[0] = -1 + return map * weights.reshape(shape.astype(int)) + + +
+[docs] +def make_map_background_irf( + pointing, + ontime, + bkg, + geom, + oversampling=None, + use_region_center=True, + obstime=None, +): + """Compute background map from background IRFs. + + Parameters + ---------- + pointing : `~gammapy.data.FixedPointingInfo` or `~astropy.coordinates.SkyCoord` + Observation pointing. + + - If a `~gammapy.data.FixedPointingInfo` is passed, FOV coordinates + are properly computed. + - If a `~astropy.coordinates.SkyCoord` is passed, FOV frame rotation + is not taken into account. + + ontime : `~astropy.units.Quantity` + Observation ontime. i.e. not corrected for deadtime + see https://gamma-astro-data-formats.readthedocs.io/en/latest/irfs/full_enclosure/bkg/index.html#notes) # noqa: E501 + bkg : `~gammapy.irf.Background3D` + Background rate model. + geom : `~gammapy.maps.WcsGeom` + Reference geometry. + oversampling : int + Oversampling factor in energy, used for the background model evaluation. + use_region_center : bool, optional + For geom as a `~gammapy.maps.RegionGeom`. If True, consider the values at the region center. + If False, average over the whole region. + Default is True. + obstime : `~astropy.time.Time` + Observation time to use. + + Returns + ------- + background : `~gammapy.maps.WcsNDMap` + Background predicted counts sky cube in reconstructed energy. + """ + # TODO: + # This implementation can be improved in two ways: + # 1. Create equal time intervals between TSTART and TSTOP and sum up the + # background IRF for each interval. This is instead of multiplying by + # the total ontime. This then handles the rotation of the FoV. + # 2. Use the pointing table (does not currently exist in CTA files) to + # obtain the RA DEC and time for each interval. This then considers that + # the pointing might change slightly over the observation duration + + # Get altaz coords for map + if oversampling is not None: + geom = geom.upsample(factor=oversampling, axis_name="energy") + + if not use_region_center: + image_geom = geom.to_wcs_geom().to_image() + region_coord, weights = geom.get_wcs_coord_and_weights() + idx = image_geom.coord_to_idx(region_coord) + d_omega = image_geom.solid_angle().T[idx] + else: + image_geom = geom.to_image() + d_omega = image_geom.solid_angle() + + coords = _get_fov_coords( + pointing=pointing, + irf=bkg, + geom=geom, + use_region_center=use_region_center, + obstime=obstime, + ) + coords["energy"] = broadcast_axis_values_to_geom(geom, "energy", False) + + bkg_de = bkg.integrate_log_log(**coords, axis_name="energy") + data = (bkg_de * d_omega * ontime).to_value("") + + if not use_region_center: + region_coord, weights = geom.get_wcs_coord_and_weights() + data = np.sum(weights * data, axis=2, keepdims=True) + + bkg_map = Map.from_geom(geom, data=data) + + if oversampling is not None: + bkg_map = bkg_map.downsample(factor=oversampling, axis_name="energy") + + return bkg_map
+ + + +
+[docs] +def make_psf_map(psf, pointing, geom, exposure_map=None): + """Make a PSF map for a single observation. + + Expected axes : rad and true energy in this specific order. + The name of the rad MapAxis is expected to be 'rad'. + + Parameters + ---------- + psf : `~gammapy.irf.PSF3D` + The PSF IRF. + pointing : `~astropy.coordinates.SkyCoord` + The pointing direction. + geom : `~gammapy.maps.Geom` + The map geometry to be used. It provides the target geometry. + rad and true energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map`, optional + The associated exposure map. + Default is None. + + Returns + ------- + psfmap : `~gammapy.irf.PSFMap` + The resulting PSF map. + """ + coords = _get_fov_coords( + pointing=pointing, + irf=psf, + geom=geom, + use_region_center=True, + obstime=None, + ) + + coords["energy_true"] = broadcast_axis_values_to_geom(geom, "energy_true") + coords["rad"] = broadcast_axis_values_to_geom(geom, "rad") + + # Compute PSF values + data = psf.evaluate(**coords) + + # Create Map and fill relevant entries + psf_map = Map.from_geom(geom, data=data.value, unit=data.unit) + psf_map.normalize(axis_name="rad") + return PSFMap(psf_map, exposure_map)
+ + + +
+[docs] +def make_edisp_map(edisp, pointing, geom, exposure_map=None, use_region_center=True): + """Make an edisp map for a single observation. + + Expected axes : migra and true energy in this specific order. + The name of the migra MapAxis is expected to be 'migra'. + + Parameters + ---------- + edisp : `~gammapy.irf.EnergyDispersion2D` + The 2D energy dispersion IRF. + pointing : `~astropy.coordinates.SkyCoord` + The pointing direction. + geom : `~gammapy.maps.Geom` + The map geometry to be used. It provides the target geometry. + migra and true energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map`, optional + The associated exposure map. + Default is None. + use_region_center : bool, optional + For geom as a `~gammapy.maps.RegionGeom`. If True, consider the values at the region center. + If False, average over the whole region. + Default is True. + + Returns + ------- + edispmap : `~gammapy.irf.EDispMap` + The resulting energy dispersion map. + """ + coords = _get_fov_coords(pointing, edisp, geom, use_region_center=use_region_center) + coords["energy_true"] = broadcast_axis_values_to_geom(geom, "energy_true") + coords["migra"] = broadcast_axis_values_to_geom(geom, "migra") + + # Compute EDisp values + data = edisp.evaluate(**coords) + + if not use_region_center: + _, weights = geom.get_wcs_coord_and_weights() + data = np.average(data, axis=-1, weights=weights, keepdims=True) + + # Create Map and fill relevant entries + edisp_map = Map.from_geom(geom, data=data.to_value(""), unit="") + edisp_map.normalize(axis_name="migra") + return EDispMap(edisp_map, exposure_map)
+ + + +
+[docs] +def make_edisp_kernel_map( + edisp, pointing, geom, exposure_map=None, use_region_center=True +): + """Make an edisp kernel map for a single observation. + + Expected axes : (reco) energy and true energy in this specific order. + The name of the reco energy MapAxis is expected to be 'energy'. + The name of the true energy MapAxis is expected to be 'energy_true'. + + Parameters + ---------- + edisp : `~gammapy.irf.EnergyDispersion2D` + The 2D energy dispersion IRF. + pointing : `~astropy.coordinates.SkyCoord` + The pointing direction. + geom : `~gammapy.maps.Geom` + The map geometry to be used. It provides the target geometry. + energy and true energy axes should be given in this specific order. + exposure_map : `~gammapy.maps.Map`, optional + The associated exposure map. + Default is None. + use_region_center : bool, optional + For geom as a `~gammapy.maps.RegionGeom`. If True, consider the values at the region center. + If False, average over the whole region. + Default is True. + + Returns + ------- + edispmap : `~gammapy.irf.EDispKernelMap` + the resulting EDispKernel map + """ + + coords = _get_fov_coords( + pointing=pointing, + irf=edisp, + geom=geom, + use_region_center=use_region_center, + ) + coords["energy_true"] = geom.axes["energy_true"].edges.reshape((-1, 1, 1, 1)) + + # Use EnergyDispersion2D migra axis. + migra_axis = edisp.axes["migra"] + + # Create temporary EDispMap Geom + new_geom = geom.to_image().to_cube([migra_axis, geom.axes["energy_true"]]) + + edisp_map = make_edisp_map( + edisp, pointing, new_geom, exposure_map, use_region_center + ) + + return edisp_map.to_edisp_kernel_map(geom.axes["energy"])
+ + + +
+[docs] +def make_theta_squared_table( + observations, theta_squared_axis, position, position_off=None +): + """Make theta squared distribution in the same FoV for a list of `Observation` objects. + + The ON theta2 profile is computed from a given distribution, on_position. + By default, the OFF theta2 profile is extracted from a mirror position + radially symmetric in the FOV to pos_on. + + The ON and OFF regions are assumed to be of the same size, so the normalisation + factor between both region alpha = 1. + + Parameters + ---------- + observations: `~gammapy.data.Observations` + List of observations. + theta_squared_axis : `~gammapy.maps.geom.MapAxis` + Axis of edges of the theta2 bin used to compute the distribution. + position : `~astropy.coordinates.SkyCoord` + Position from which the on theta^2 distribution is computed. + position_off : `astropy.coordinates.SkyCoord` + Position from which the OFF theta^2 distribution is computed. + Default is reflected position w.r.t. to the pointing position. + + Returns + ------- + table : `~astropy.table.Table` + Table containing the on counts, the off counts, acceptance, off acceptance and alpha + for each theta squared bin. + """ + if not theta_squared_axis.edges.unit.is_equivalent("deg2"): + raise ValueError("The theta2 axis should be equivalent to deg2") + + table = Table() + + table["theta2_min"] = theta_squared_axis.edges[:-1] + table["theta2_max"] = theta_squared_axis.edges[1:] + table["counts"] = 0 + table["counts_off"] = 0 + table["acceptance"] = 0.0 + table["acceptance_off"] = 0.0 + + alpha_tot = np.zeros(len(table)) + livetime_tot = 0 + + create_off = position_off is None + for observation in observations: + event_position = observation.events.radec + pointing = observation.get_pointing_icrs(observation.tmid) + + separation = position.separation(event_position) + counts, _ = np.histogram(separation**2, theta_squared_axis.edges) + table["counts"] += counts + + if create_off: + # Estimate the position of the mirror position + pos_angle = pointing.position_angle(position) + sep_angle = pointing.separation(position) + position_off = pointing.directional_offset_by( + pos_angle + Angle(np.pi, "rad"), sep_angle + ) + + # Angular distance of the events from the mirror position + separation_off = position_off.separation(event_position) + + # Extract the ON and OFF theta2 distribution from the two positions. + counts_off, _ = np.histogram(separation_off**2, theta_squared_axis.edges) + table["counts_off"] += counts_off + + # Normalisation between ON and OFF is one + acceptance = np.ones(theta_squared_axis.nbin) + acceptance_off = np.ones(theta_squared_axis.nbin) + + table["acceptance"] += acceptance + table["acceptance_off"] += acceptance_off + alpha = acceptance / acceptance_off + alpha_tot += alpha * observation.observation_live_time_duration.to_value("s") + livetime_tot += observation.observation_live_time_duration.to_value("s") + + alpha_tot /= livetime_tot + table["alpha"] = alpha_tot + + stat = WStatCountsStatistic(table["counts"], table["counts_off"], table["alpha"]) + table["excess"] = stat.n_sig + table["sqrt_ts"] = stat.sqrt_ts + table["excess_errn"] = stat.compute_errn() + table["excess_errp"] = stat.compute_errp() + + table.meta["ON_RA"] = position.icrs.ra + table.meta["ON_DEC"] = position.icrs.dec + return table
+ + + +
+[docs] +def make_counts_rad_max(geom, rad_max, events): + """Extract the counts using for the ON region size the values in the `RAD_MAX_2D` table. + + Parameters + ---------- + geom : `~gammapy.maps.RegionGeom` + Reference map geometry. + rad_max : `~gammapy.irf.RadMax2D` + Rhe RAD_MAX_2D table IRF. + events : `~gammapy.data.EventList` + Event list to be used to compute the ON counts. + + Returns + ------- + counts : `~gammapy.maps.RegionNDMap` + Counts vs estimated energy extracted from the ON region. + """ + selected_events = events.select_rad_max( + rad_max=rad_max, position=geom.region.center + ) + + counts = Map.from_geom(geom=geom) + counts.fill_events(selected_events) + return counts
+ + + +def make_counts_off_rad_max(geom_off, rad_max, events): + """Extract the OFF counts from a list of point regions and given rad max. + + This method does **not** check for overlap of the regions defined by rad_max. + + Parameters + ---------- + geom_off : `~gammapy.maps.RegionGeom` + Reference map geometry for the on region. + rad_max : `~gammapy.irf.RadMax2D` + The RAD_MAX_2D table IRF. + events : `~gammapy.data.EventList` + Event list to be used to compute the OFF counts. + + Returns + ------- + counts_off : `~gammapy.maps.RegionNDMap` + OFF Counts vs estimated energy extracted from the ON region. + """ + if not geom_off.is_all_point_sky_regions: + raise ValueError( + f"Only supports PointSkyRegions, got {geom_off.region} instead" + ) + + counts_off = RegionNDMap.from_geom(geom=geom_off) + + for off_region in compound_region_to_regions(geom_off.region): + selected_events = events.select_rad_max( + rad_max=rad_max, position=off_region.center + ) + counts_off.fill_events(selected_events) + + return counts_off + + +
+[docs] +def make_observation_time_map(observations, geom, offset_max=None): + """ + Compute the total observation time on the target geometry + for a list of observations. + + Parameters + ---------- + observations : `~gammapy.data.Observations` + Observations container containing list of observations. + geom : `~gammapy.maps.Geom` + Reference geometry. + offset_max : `~astropy.units.quantity.Quantity`, optional + The maximum offset FoV. Default is None. + If None, it will be taken from the IRFs. + + Returns + ------- + exposure : `~gammapy.maps.Map` + Effective livetime. + """ + geom = geom.to_image() + stacked = Map.from_geom(geom, unit=u.h) + for obs in observations: + if offset_max is None: + offset_max = guess_instrument_fov(obs) + coords = geom.get_coord(sparse=True) + offset = coords.skycoord.separation(obs.get_pointing_icrs(obs.tmid)) + mask = offset < offset_max + c1 = coords.apply_mask(mask) + weights = np.ones(c1.shape) * obs.observation_live_time_duration + stacked.fill_by_coord(coords=c1, weights=weights) + return stacked
+ + + +
+[docs] +def make_effective_livetime_map(observations, geom, offset_max=None): + """ + Compute the acceptance corrected livetime map + for a list of observations. + + Parameters + ---------- + observations : `~gammapy.data.Observations` + Observations container containing list of observations. + geom : `~gammapy.maps.Geom` + Reference geometry. + offset_max : `~astropy.units.quantity.Quantity`, optional + The maximum offset FoV. Default is None. + + Returns + ------- + exposure : `~gammapy.maps.Map` + Effective livetime. + """ + + livetime = Map.from_geom(geom, unit=u.hr) + for obs in observations: + if offset_max is None: + offset_max = guess_instrument_fov(obs) + geom_obs = geom.cutout( + position=obs.get_pointing_icrs(obs.tmid), width=2.0 * offset_max + ) + coords = geom_obs.get_coord() + offset = coords.skycoord.separation(obs.get_pointing_icrs(obs.tmid)) + mask = offset < offset_max + + exposure = make_map_exposure_true_energy( + pointing=geom.center_skydir, + livetime=obs.observation_live_time_duration, + aeff=obs.aeff, + geom=geom_obs, + use_region_center=True, + ) + + on_axis = obs.aeff.evaluate( + offset=0.0 * u.deg, energy_true=geom.axes["energy_true"].center + ) + on_axis = on_axis.reshape((on_axis.shape[0], 1, 1)) + lv_obs = exposure * mask / on_axis + livetime.stack(lv_obs) + return livetime
+ + + +def guess_instrument_fov(obs): + """ + Guess the camera field of view for the given observation + from the IRFs. This simply takes the maximum offset of the + effective area IRF. + TODO: This logic will break for more complex IRF models. + A better option would be to compute the offset at which + the effective area is above 10% of the maximum. + + Parameters + ---------- + obs : `~gammapy.data.Observation` + Observation container. + + Returns + ------- + offset_max : `~astropy.units.quantity.Quantity` + The maximum offset of the effective area IRF. + """ + + if "aeff" not in obs.available_irfs: + raise ValueError("No Effective area IRF to infer the FoV from") + if obs.aeff.is_pointlike: + raise ValueError("Cannot guess FoV from pointlike IRFs") + if "offset" not in obs.aeff.axes.names: + raise ValueError("Offset axis not present!") + return obs.aeff.axes["offset"].center[-1] +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/axes.html b/docs/dev/_modules/gammapy/maps/axes.html new file mode 100644 index 00000000000..b59ff330ac4 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/axes.html @@ -0,0 +1,4386 @@ + + + + + + + + + + gammapy.maps.axes — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.axes

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+import html
+import inspect
+import logging
+from collections.abc import Sequence
+from enum import Enum
+import numpy as np
+import scipy
+import astropy.units as u
+from astropy.io import fits
+from astropy.table import Column, Table, hstack
+from astropy.time import Time
+from astropy.utils import lazyproperty
+import matplotlib.pyplot as plt
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.interpolation import interpolation_scale
+from gammapy.utils.time import time_ref_from_dict, time_ref_to_dict
+from .utils import INVALID_INDEX, INVALID_VALUE, edges_from_lo_hi
+
+__all__ = ["MapAxes", "MapAxis", "TimeMapAxis", "LabelMapAxis"]
+
+log = logging.getLogger(__name__)
+
+
+def flat_if_equal(array):
+    if array.ndim == 2 and np.all(array == array[0]):
+        return array[0]
+    else:
+        return array
+
+
+class BoundaryEnum(str, Enum):
+    monotonic = "monotonic"
+    periodic = "periodic"
+
+
+class AxisCoordInterpolator:
+    """Axis coordinate interpolator."""
+
+    def __init__(self, edges, interp="lin"):
+        self.scale = interpolation_scale(interp)
+        self.x = self.scale(edges)
+        self.y = np.arange(len(edges), dtype=float)
+        self.fill_value = "extrapolate"
+
+        if len(edges) == 1:
+            self.kind = 0
+        else:
+            self.kind = 1
+
+    def coord_to_pix(self, coord):
+        """Transform coordinate to pixel."""
+        interp_fn = scipy.interpolate.interp1d(
+            x=self.x, y=self.y, kind=self.kind, fill_value=self.fill_value
+        )
+        return interp_fn(self.scale(coord))
+
+    def pix_to_coord(self, pix):
+        """Transform pixel to coordinate."""
+        interp_fn = scipy.interpolate.interp1d(
+            x=self.y, y=self.x, kind=self.kind, fill_value=self.fill_value
+        )
+        return self.scale.inverse(interp_fn(pix))
+
+
+PLOT_AXIS_LABEL = {
+    "energy": "Energy",
+    "energy_true": "True Energy",
+    "offset": "FoV Offset",
+    "rad": "Source Offset",
+    "migra": "Energy / True Energy",
+    "fov_lon": "FoV Lon.",
+    "fov_lat": "FoV Lat.",
+    "time": "Time",
+}
+
+DEFAULT_LABEL_TEMPLATE = "{quantity} [{unit}]"
+UNIT_STRING_FORMAT = "latex_inline"
+
+
+
+[docs] +class MapAxis: + """Class representing an axis of a map. + + Provides methods for + transforming to/from axis and pixel coordinates. An axis is + defined by a sequence of node values that lie at the center of + each bin. The pixel coordinate at each node is equal to its index + in the node array (0, 1, ..). Bin edges are offset by 0.5 in + pixel coordinates from the nodes such that the lower/upper edge of + the first bin is (-0.5,0.5). + + Parameters + ---------- + nodes : `~numpy.ndarray` or `~astropy.units.Quantity` + Array of node values. These will be interpreted as either bin + edges or centers according to ``node_type``. + interp : {'lin', 'log', 'sqrt'} + Interpolation method used to transform between axis and pixel + coordinates. Default is 'lin'. + name : str, optional + Axis name. Default is "". + node_type : str, optional + Flag indicating whether coordinate nodes correspond to pixel + edges (node_type = 'edges') or pixel centers (node_type = + 'center'). 'center' should be used where the map values are + defined at a specific coordinate (e.g. differential + quantities). 'edges' should be used where map values are + defined by an integral over coordinate intervals (e.g. a + counts histogram). Default is "edges". + unit : str, optional + String specifying the data units. Default is "". + boundary_type : str, optional + Flag indicating boundary condition for the axis. + Available options are "monotonic" and "periodic". + "Periodic" boundary is only supported for interp = "lin". + Default is "monotonic". + """ + + # TODO: Cache an interpolation object? + def __init__( + self, + nodes, + interp="lin", + name="", + node_type="edges", + unit="", + boundary_type="monotonic", + ): + if not isinstance(name, str): + raise TypeError(f"Name must be a string, got: {type(name)!r}") + + if len(nodes) != len(np.unique(nodes)): + raise ValueError("MapAxis: node values must be unique") + + if ~(np.all(nodes == np.sort(nodes)) or np.all(nodes[::-1] == np.sort(nodes))): + raise ValueError("MapAxis: node values must be sorted") + + if isinstance(nodes, u.Quantity): + unit = nodes.unit if nodes.unit is not None else "" + nodes = nodes.value + else: + nodes = np.array(nodes) + + if boundary_type not in list(BoundaryEnum): + raise ValueError(f"Invalid boundary_type: {boundary_type}") + if boundary_type == BoundaryEnum.periodic and interp != "lin": + raise ValueError("Periodic Axis only supports linear interpolation") + + self._name = name + self._unit = u.Unit(unit) + self._nodes = nodes.astype(float) + self._node_type = node_type + self._interp = interp + self._boundary_type = BoundaryEnum(boundary_type).value + + if (self._nodes < 0).any() and interp != "lin": + raise ValueError( + f"Interpolation scaling {interp!r} only support for positive node values." + ) + + # Set pixel coordinate of first node + if node_type == "edges": + self._pix_offset = -0.5 + nbin = len(nodes) - 1 + elif node_type == "center": + self._pix_offset = 0.0 + nbin = len(nodes) + else: + raise ValueError(f"Invalid node type: {node_type!r}") + + self._nbin = nbin + self._use_center_as_plot_labels = None + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def assert_name(self, required_name): + """Assert axis name if a specific one is required. + + Parameters + ---------- + required_name : str + Required name. + """ + if self.name != required_name: + raise ValueError( + "Unexpected axis name," + f' expected "{required_name}", got: "{self.name}"' + )
+ + +
+[docs] + def is_aligned(self, other, atol=2e-2): + """Check if the other map axis is aligned. + + Two axes are aligned if their center coordinate values map to integers + on the other axes as well and if the interpolation modes are equivalent. + + Parameters + ---------- + other : `MapAxis` + Other map axis. + atol : float, optional + Absolute numerical tolerance for the comparison measured in bins. Default is 2e-2. + + Returns + ------- + aligned : bool + Whether the axes are aligned. + """ + pix = self.coord_to_pix(other.center) + pix_other = other.coord_to_pix(self.center) + pix_all = np.append(pix, pix_other) + aligned = np.allclose(np.round(pix_all) - pix_all, 0, atol=atol) + return aligned and self.interp == other.interp
+ + +
+[docs] + def is_allclose(self, other, **kwargs): + """Check if the other map axis is all close. + + Parameters + ---------- + other : `MapAxis` + Other map axis. + **kwargs : dict, optional + Keyword arguments passed to `~numpy.allclose`. + + Returns + ------- + is_allclose : bool + Whether the other axis is allclose. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self.edges.shape != other.edges.shape: + return False + if not self.unit.is_equivalent(other.unit): + return False + return ( + np.allclose(self.edges, other.edges, **kwargs) + and self._node_type == other._node_type + and self._interp == other._interp + and self.name.upper() == other.name.upper() + and self._boundary_type == other._boundary_type + )
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other, rtol=1e-6, atol=1e-6) + + def __ne__(self, other): + return not self.__eq__(other) + + def __hash__(self): + return id(self) + + @lazyproperty + def _transform(self): + """Interpolate coordinates to pixel.""" + return AxisCoordInterpolator(edges=self._nodes, interp=self.interp) + + @property + def is_energy_axis(self): + """Whether this is an energy axis.""" + return self.name in ["energy", "energy_true"] + + @property + def interp(self): + """Interpolation scale of the axis.""" + return self._interp + + @property + def name(self): + """Name of the axis.""" + return self._name + + @lazyproperty + def edges(self): + """Return an array of bin edges.""" + pix = np.arange(self.nbin + 1, dtype=float) - 0.5 + return u.Quantity(self.pix_to_coord(pix), self._unit, copy=COPY_IF_NEEDED) + + @property + def edges_min(self): + """Return an array of bin edges maximum values.""" + return self.edges[:-1] + + @property + def edges_max(self): + """Return an array of bin edges minimum values.""" + return self.edges[1:] + + @property + def bounds(self): + """Bounds of the axis as a `~astropy.units.Quantity`.""" + idx = [0, -1] + if self.node_type == "edges": + return self.edges[idx] + else: + return self.center[idx] + + @property + def as_plot_xerr(self): + """Return a tuple of x-error to be passed to `~matplotlib.pyplot.errorbar`.""" + return ( + self.center - self.edges_min, + self.edges_max - self.center, + ) + + @property + def use_center_as_plot_labels(self): + """Use center as plot labels.""" + if self._use_center_as_plot_labels is not None: + return self._use_center_as_plot_labels + + return self.node_type == "center" + + @use_center_as_plot_labels.setter + def use_center_as_plot_labels(self, value): + """Use center as plot labels.""" + self._use_center_as_plot_labels = bool(value) + + @property + def as_plot_labels(self): + """Return a list of axis plot labels.""" + if self.use_center_as_plot_labels: + labels = [f"{val:.2e}" for val in self.center] + else: + labels = [ + f"{val_min:.2e} - {val_max:.2e}" + for val_min, val_max in self.iter_by_edges + ] + return labels + + @property + def as_plot_edges(self): + """Plot edges.""" + return self.edges + + @property + def as_plot_center(self): + """Plot center.""" + return self.center + + @property + def as_plot_scale(self): + """Plot axis scale.""" + mpl_scale = {"lin": "linear", "sqrt": "linear", "log": "log"} + + return mpl_scale[self.interp] + +
+[docs] + def to_node_type(self, node_type): + """Return a copy of the `MapAxis` instance with a node type set to node_type. + + Parameters + ---------- + node_type : str + The target node type. It can be either 'center' or 'edges'. + + Returns + ------- + axis : `~gammapy.maps.MapAxis` + The new MapAxis. + """ + if node_type == self.node_type: + return self + else: + if node_type == "center": + nodes = self.center + else: + nodes = self.edges + return self.__class__( + nodes=nodes, + interp=self.interp, + name=self.name, + node_type=node_type, + unit=self.unit, + )
+ + +
+[docs] + def rename(self, new_name): + """Rename the axis. Return a copy of the `MapAxis` instance with name set to new_name. + + Parameters + ---------- + new_name : str + The new name for the axis. + + Returns + ------- + axis : `~gammapy.maps.MapAxis` + The new MapAxis. + """ + return self.copy(name=new_name)
+ + +
+[docs] + def format_plot_xaxis(self, ax): + """Format the x-axis. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axis` + Plot axis to format. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Formatted plot axis. + """ + ax.set_xscale(self.as_plot_scale) + + xlabel = DEFAULT_LABEL_TEMPLATE.format( + quantity=PLOT_AXIS_LABEL.get(self.name, self.name.capitalize()), + unit=ax.xaxis.units.to_string(UNIT_STRING_FORMAT), + ) + ax.set_xlabel(xlabel) + xmin, xmax = self.bounds + if not xmin == xmax: + ax.set_xlim(self.bounds) + return ax
+ + +
+[docs] + def format_plot_yaxis(self, ax): + """Format plot y-axis. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axis` + Plot axis to format. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Formatted plot axis. + """ + ax.set_yscale(self.as_plot_scale) + + ylabel = DEFAULT_LABEL_TEMPLATE.format( + quantity=PLOT_AXIS_LABEL.get(self.name, self.name.capitalize()), + unit=ax.yaxis.units.to_string(UNIT_STRING_FORMAT), + ) + ax.set_ylabel(ylabel) + ax.set_ylim(self.bounds) + return ax
+ + + @property + def iter_by_edges(self): + """Iterate by intervals defined by the edges.""" + for value_min, value_max in zip(self.edges[:-1], self.edges[1:]): + yield (value_min, value_max) + + @lazyproperty + def center(self): + """Return an array of bin centers.""" + pix = np.arange(self.nbin, dtype=float) + return u.Quantity(self.pix_to_coord(pix), self._unit, copy=COPY_IF_NEEDED) + + @lazyproperty + def bin_width(self): + """Array of bin widths.""" + return np.diff(self.edges) + + @property + def nbin(self): + """Return the number of bins.""" + return self._nbin + + @property + def nbin_per_decade(self): + """Return the number of bins per decade.""" + if self.interp != "log": + raise ValueError("Bins per decade can only be computed for log-spaced axes") + + if self.node_type == "edges": + values = self.edges + else: + values = self.center + + ndecades = np.log10(values.max() / values.min()) + return (self._nbin / ndecades).value + + @property + def node_type(self): + """Return node type, either 'center' or 'edges'.""" + return self._node_type + + @property + def unit(self): + """Return the coordinate axis unit.""" + return self._unit + +
+[docs] + @classmethod + def from_bounds(cls, lo_bnd, hi_bnd, nbin, **kwargs): + """Generate an axis object from a lower/upper bound and number of bins. + + If node_type = 'edges' then bounds correspond to the + lower and upper bound of the first and last bin. If node_type + = 'center' then bounds correspond to the centers of the first + and last bin. + + Parameters + ---------- + lo_bnd : float + Lower bound of first axis bin. + hi_bnd : float + Upper bound of last axis bin. + nbin : int + Number of bins. + interp : {'lin', 'log', 'sqrt'} + Interpolation method used to transform between axis and pixel + coordinates. Default: 'lin'. + ***kwargs : dict, optional + Keyword arguments passed to `MapAxis`. + """ + nbin = int(nbin) + interp = kwargs.setdefault("interp", "lin") + node_type = kwargs.setdefault("node_type", "edges") + + if node_type == "edges": + nnode = nbin + 1 + elif node_type == "center": + nnode = nbin + else: + raise ValueError(f"Invalid node type: {node_type!r}") + + if interp == "lin": + nodes = np.linspace(lo_bnd, hi_bnd, nnode) + elif interp == "log": + nodes = np.geomspace(lo_bnd, hi_bnd, nnode) + elif interp == "sqrt": + nodes = np.linspace(lo_bnd**0.5, hi_bnd**0.5, nnode) ** 2.0 + else: + raise ValueError(f"Invalid interp: {interp}") + + return cls(nodes, **kwargs)
+ + +
+[docs] + @classmethod + def from_energy_edges(cls, energy_edges, unit=None, name=None, interp="log"): + """Make an energy axis from adjacent edges. + + Parameters + ---------- + energy_edges : `~astropy.units.Quantity` or float + Energy edges. + unit : `~astropy.units.Unit`, optional + Energy unit. Default is None. + name : str, optional + Name of the energy axis, either 'energy' or 'energy_true'. Default is None. + interp: str, optional + interpolation mode. Default is 'log'. + + Returns + ------- + axis : `MapAxis` + Axis with name "energy" and interp "log". + """ + energy_edges = u.Quantity(energy_edges, unit) + + if not energy_edges.unit.is_equivalent("TeV"): + raise ValueError( + f"Please provide a valid energy unit, got {energy_edges.unit} instead." + ) + + if name is None: + name = "energy" + + if name not in ["energy", "energy_true"]: + raise ValueError("Energy axis can only be named 'energy' or 'energy_true'") + + return cls.from_edges(energy_edges, unit=unit, interp=interp, name=name)
+ + +
+[docs] + @classmethod + def from_energy_bounds( + cls, + energy_min, + energy_max, + nbin, + unit=None, + per_decade=False, + name=None, + node_type="edges", + strict_bounds=True, + ): + """Make an energy axis from energy bounds. The interpolation is always 'log'. + + Used frequently also to make energy grids, by making + the axis, and then using ``axis.center`` or ``axis.edges``. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity`, float + Energy range. + nbin : int + Number of bins. + unit : `~astropy.units.Unit`, optional + Energy unit. Default is None. + per_decade : bool, optional + Whether `nbin` is given per decade. Default is False. + name : str, optional + Name of the energy axis, either 'energy' or 'energy_true'. Default is None. + node_type : str, optional + Node type, either 'edges' or 'center'. Default is 'edges'. + strict_bounds : bool, optional + Whether to strictly end the binning at 'energy_max' when + `per_decade=True`. If True, the number of bins per decade + might be slightly increased to match the bounds. If False, + 'energy_max' might be reduced so the number of bins per + decade is exactly the given input. Default is True. + + Returns + ------- + axis : `MapAxis` + Create MapAxis from the given input parameters. + """ + energy_min = u.Quantity(energy_min, unit) + energy_max = u.Quantity(energy_max, unit) + + if unit is None: + unit = energy_max.unit + energy_min = energy_min.to(unit) + + if not energy_max.unit.is_equivalent("TeV"): + raise ValueError( + f"Please provide a valid energy unit, got {energy_max.unit} instead." + ) + + if per_decade: + if strict_bounds: + nbin = np.ceil(np.log10(energy_max / energy_min).value * nbin) + else: + bin_per_decade = nbin + nbin = np.floor( + np.log10(energy_max / energy_min).value * bin_per_decade + ) + if np.log10(energy_max / energy_min).value % (1 / bin_per_decade) != 0: + energy_max = energy_min * 10 ** (nbin / bin_per_decade) + + if name is None: + name = "energy" + + if name not in ["energy", "energy_true"]: + raise ValueError("Energy axis can only be named 'energy' or 'energy_true'") + + return cls.from_bounds( + energy_min.value, + energy_max.value, + nbin=nbin, + unit=unit, + interp="log", + name=name, + node_type=node_type, + )
+ + +
+[docs] + @classmethod + def from_nodes(cls, nodes, **kwargs): + # TODO: What to do with interp in docstring but not in signature? + """Generate an axis object from a sequence of nodes (bin centers). + + This will create a sequence of bins with edges half-way + between the node values. This method should be used to + construct an axis where the bin center should lie at a + specific value (e.g. a map of a continuous function). + + Parameters + ---------- + nodes : `~numpy.ndarray` + Axis nodes (bin center). + interp : {'lin', 'log', 'sqrt'} + Interpolation method used to transform between axis and pixel + coordinates. Default is 'lin'. + **kwargs : dict, optional + Keyword arguments passed to `MapAxis`. + """ + if len(nodes) < 1: + raise ValueError("Nodes array must have at least one element.") + + return cls(nodes, node_type="center", **kwargs)
+ + +
+[docs] + @classmethod + def from_edges(cls, edges, **kwargs): + """Generate an axis object from a sequence of bin edges. + + This method should be used to construct an axis where the bin + edges should lie at specific values (e.g. a histogram). The + number of bins will be one less than the number of edges. + + Parameters + ---------- + edges : `~numpy.ndarray` + Axis bin edges. + interp : {'lin', 'log', 'sqrt'} + Interpolation method used to transform between axis and pixel + coordinates. Default: 'lin'. + **kwargs : dict, optional + Keyword arguments passed to `MapAxis`. + """ + if len(edges) < 2: + raise ValueError("Edges array must have at least two elements.") + + return cls(edges, node_type="edges", **kwargs)
+ + +
+[docs] + def concatenate(self, axis): + """Concatenate another `MapAxis` to this `MapAxis` into a new `MapAxis` object. + + Name, interp type and node type must agree between the axes. If the node + type is "edges", the edges must be contiguous and non-overlapping. + + Parameters + ---------- + axis : `MapAxis` + Axis to concatenate with. + + Returns + ------- + axis : `MapAxis` + Concatenation of the two axis. + """ + if self.node_type != axis.node_type: + raise ValueError( + f"Node type must agree, got {self.node_type} and {axis.node_type}" + ) + + if self.name != axis.name: + raise ValueError(f"Names must agree, got {self.name} and {axis.name} ") + + if self.interp != axis.interp: + raise ValueError( + f"Interp type must agree, got {self.interp} and {axis.interp}" + ) + + if self.node_type == "edges": + edges = np.append(self.edges, axis.edges[1:]) + return self.from_edges(edges=edges, interp=self.interp, name=self.name) + else: + nodes = np.append(self.center, axis.center) + return self.from_nodes(nodes=nodes, interp=self.interp, name=self.name)
+ + +
+[docs] + def pad(self, pad_width): + """Pad the axis by a given number of pixels. + + Parameters + ---------- + pad_width : int or tuple of int + A single integer pads in both direction of the axis, a tuple specifies + which number of bins to pad at the low and high edge of the axis. + + Returns + ------- + axis : `MapAxis` + Padded axis. + """ + if isinstance(pad_width, tuple): + pad_low, pad_high = pad_width + else: + pad_low, pad_high = pad_width, pad_width + + if self.node_type == "edges": + pix = np.arange(-pad_low, self.nbin + pad_high + 1) - 0.5 + edges = self.pix_to_coord(pix) + return self.from_edges(edges=edges, interp=self.interp, name=self.name) + else: + pix = np.arange(-pad_low, self.nbin + pad_high) + nodes = self.pix_to_coord(pix) + return self.from_nodes(nodes=nodes, interp=self.interp, name=self.name)
+ + +
+[docs] + @classmethod + def from_stack(cls, axes): + """Create a map axis by merging a list of other map axes. + + If the node type is "edges" the bin edges in the provided axes must be + contiguous and non-overlapping. + + Parameters + ---------- + axes : list of `MapAxis` + List of map axis to merge. + + Returns + ------- + axis : `MapAxis` + Merged axis. + """ + ax_stacked = axes[0] + + for ax in axes[1:]: + ax_stacked = ax_stacked.concatenate(ax) + + return ax_stacked
+ + +
+[docs] + def pix_to_coord(self, pix): + """Transform pixel to axis coordinates. + + Parameters + ---------- + pix : `~numpy.ndarray` + Array of pixel coordinate values. + + Returns + ------- + coord : `~numpy.ndarray` + Array of axis coordinate values. + """ + pix = pix - self._pix_offset + values = self._transform.pix_to_coord(pix=pix) + return u.Quantity(values, unit=self.unit, copy=COPY_IF_NEEDED)
+ + +
+[docs] + def wrap_coord(self, coord): + """Wrap coords between axis edges for a periodic boundary condition + + Parameters + ---------- + coord : `~numpy.ndarray` + Array of axis coordinate values. + + Returns + ------- + coord : `~numpy.ndarray` + Wrapped array of axis coordinate values. + """ + + m1, m2 = self.edges_min[0], self.edges_max[-1] + out_of_range = (coord >= m2) | (coord < m1) + return np.where(out_of_range, (coord - m1) % (m2 - m1) + m1, coord)
+ + +
+[docs] + def pix_to_idx(self, pix, clip=False): + """Convert pixel to index. + + Parameters + ---------- + pix : `~numpy.ndarray` + Pixel coordinates. + clip : bool, optional + Choose whether to clip indices to the valid range of the + axis. Default is False. If False, indices for coordinates outside + the axis range will be set to -1. + + Returns + ------- + idx : `~numpy.ndarray` + Pixel indices. + """ + if clip: + idx = np.clip(pix, 0, self.nbin - 1) + else: + condition = (pix < 0) | (pix >= self.nbin) + idx = np.where(condition, -1, pix) + + return idx
+ + +
+[docs] + def coord_to_pix(self, coord): + """Transform axis to pixel coordinates. + + Parameters + ---------- + coord : `~numpy.ndarray` + Array of axis coordinate values. + + Returns + ------- + pix : `~numpy.ndarray` + Array of pixel coordinate values. + """ + if self._boundary_type == BoundaryEnum.periodic: + coord = self.wrap_coord(coord) + coord = u.Quantity(coord, self.unit, copy=COPY_IF_NEEDED).value + pix = self._transform.coord_to_pix(coord=coord) + return np.array(pix + self._pix_offset, ndmin=1)
+ + +
+[docs] + def coord_to_idx(self, coord, clip=False): + """Transform axis coordinate to bin index. + + Parameters + ---------- + coord : `~numpy.ndarray` + Array of axis coordinate values. + clip : bool, optional + Choose whether to clip the index to the valid range of the + axis. Default is False. If False, then indices for values outside the axis + range will be set to -1. + + Returns + ------- + idx : `~numpy.ndarray` + Array of bin indices. + """ + if self._boundary_type == BoundaryEnum.periodic: + coord = self.wrap_coord(coord) + coord = u.Quantity(coord, self.unit, copy=COPY_IF_NEEDED, ndmin=1).value + edges = self.edges.value + idx = np.digitize(coord, edges) - 1 + + if clip: + idx = np.clip(idx, 0, self.nbin - 1) + else: + with np.errstate(invalid="ignore"): + idx[coord > edges[-1]] = INVALID_INDEX.int + + idx[~np.isfinite(coord)] = INVALID_INDEX.int + + return idx
+ + +
+[docs] + def slice(self, idx): + """Create a new axis object by extracting a slice from this axis. + + Parameters + ---------- + idx : slice + Slice object selecting a sub-selection of the axis. + + Returns + ------- + axis : `MapAxis` + Sliced axis object. + + Examples + -------- + >>> from gammapy.maps import MapAxis + >>> axis = MapAxis.from_bounds( + ... 10.0, 2e3, 6, interp="log", name="energy_true", unit="GeV" + ... ) + >>> slices = slice(1, 3) + >>> sliced = axis.slice(slices) + """ + center = self.center[idx].value + idx = self.coord_to_idx(center) + # For edge nodes we need to keep N+1 nodes + if self._node_type == "edges": + idx = tuple(list(idx) + [1 + idx[-1]]) + + nodes = self._nodes[(idx,)] + return MapAxis( + nodes, + interp=self._interp, + name=self._name, + node_type=self._node_type, + unit=self._unit, + )
+ + +
+[docs] + def squash(self): + """Create a new axis object by squashing the axis into one bin. + + Returns + ------- + axis : `~MapAxis` + Squashed axis object. + """ + return MapAxis.from_bounds( + lo_bnd=self.edges[0].value, + hi_bnd=self.edges[-1].value, + nbin=1, + interp=self._interp, + name=self._name, + unit=self._unit, + )
+ + + def __repr__(self): + str_ = self.__class__.__name__ + str_ += "\n\n" + fmt = "\t{:<10s} : {:<10s}\n" + str_ += fmt.format("name", self.name) + str_ += fmt.format("unit", "{!r}".format(str(self.unit))) + str_ += fmt.format("nbins", str(self.nbin)) + str_ += fmt.format("node type", self.node_type) + vals = self.edges if self.node_type == "edges" else self.center + str_ += fmt.format(f"{self.node_type} min", "{:.1e}".format(vals.min())) + str_ += fmt.format(f"{self.node_type} max", "{:.1e}".format(vals.max())) + str_ += fmt.format("interp", self._interp) + return str_ + + def _init_copy(self, **kwargs): + """Init map axis instance by copying missing init arguments from self.""" + argnames = inspect.getfullargspec(self.__init__).args + argnames.remove("self") + + for arg in argnames: + value = getattr(self, "_" + arg) + if arg not in kwargs: + kwargs[arg] = copy.deepcopy(value) + + return self.__class__(**kwargs) + +
+[docs] + def copy(self, **kwargs): + """Copy `MapAxis` instance and overwrite given attributes. + + Parameters + ---------- + **kwargs : dict, optional + Keyword arguments to overwrite in the map axis constructor. + + Returns + ------- + copy : `MapAxis` + Copied map axis. + """ + return self._init_copy(**kwargs)
+ + +
+[docs] + def round(self, coord, clip=False): + """Round coordinate to the nearest axis edge. + + Parameters + ---------- + coord : `~astropy.units.Quantity` + Coordinates to be rounded. + clip : bool, optional + Choose whether to clip the index to the valid range of the + axis. Default is False. If False, then indices for values outside the axis + range will be set to -1. + + Returns + ------- + coord : `~astropy.units.Quantity` + Rounded coordinates. + """ + edges_pix = self.coord_to_pix(coord) + + if clip: + edges_pix = np.clip(edges_pix, -0.5, self.nbin - 0.5) + + edges_idx = np.round(edges_pix + 0.5) - 0.5 + return self.pix_to_coord(edges_idx)
+ + +
+[docs] + def group_table(self, edges): + """Compute bin groups table for the map axis, given coarser bin edges. + + Parameters + ---------- + edges : `~astropy.units.Quantity` + Group bin edges. + + Returns + ------- + groups : `~astropy.table.Table` + Map axis group table. + """ + if self.node_type != "edges": + raise ValueError("Only edge based map axis can be grouped") + + edges_pix = np.clip(self.coord_to_pix(edges), -0.5, self.nbin - 0.5) + edges_idx = np.unique(np.round(edges_pix + 0.5) - 0.5) + edges_ref = self.pix_to_coord(edges_idx) + + groups = Table() + groups[f"{self.name}_min"] = edges_ref[:-1] + groups[f"{self.name}_max"] = edges_ref[1:] + + groups["idx_min"] = (edges_idx[:-1] + 0.5).astype(int) + groups["idx_max"] = (edges_idx[1:] - 0.5).astype(int) + + if len(groups) == 0: + raise ValueError("No overlap between reference and target edges.") + + groups["bin_type"] = "normal " + + edge_idx_start, edge_ref_start = edges_idx[0], edges_ref[0] + if edge_idx_start > 0: + underflow = { + "bin_type": "underflow", + "idx_min": 0, + "idx_max": edge_idx_start, + f"{self.name}_min": self.pix_to_coord(-0.5), + f"{self.name}_max": edge_ref_start, + } + groups.insert_row(0, vals=underflow) + + edge_idx_end, edge_ref_end = edges_idx[-1], edges_ref[-1] + if edge_idx_end < (self.nbin - 0.5): + overflow = { + "bin_type": "overflow", + "idx_min": edge_idx_end + 1, + "idx_max": self.nbin - 1, + f"{self.name}_min": edge_ref_end, + f"{self.name}_max": self.pix_to_coord(self.nbin - 0.5), + } + groups.add_row(vals=overflow) + + group_idx = Column(np.arange(len(groups))) + groups.add_column(group_idx, name="group_idx", index=0) + return groups
+ + +
+[docs] + def upsample(self, factor): + """Upsample map axis by a given factor. + + When upsampling for each node specified in the axis, the corresponding + number of sub-nodes are introduced and preserving the initial nodes. For + node type "edges" this results in nbin * factor new bins. For node type + "center" this results in (nbin - 1) * factor + 1 new bins. + + Parameters + ---------- + factor : int + Upsampling factor. + + Returns + ------- + axis : `MapAxis` + Upsampled map axis. + + """ + if self.node_type == "edges": + pix = self.coord_to_pix(self.edges) + nbin = int(self.nbin * factor) + 1 + pix_new = np.linspace(pix.min(), pix.max(), nbin) + edges = self.pix_to_coord(pix_new) + return self.from_edges(edges, name=self.name, interp=self.interp) + else: + pix = self.coord_to_pix(self.center) + nbin = int((self.nbin - 1) * factor) + 1 + pix_new = np.linspace(pix.min(), pix.max(), nbin) + nodes = self.pix_to_coord(pix_new) + return self.from_nodes(nodes, name=self.name, interp=self.interp)
+ + +
+[docs] + def downsample(self, factor, strict=True): + """Downsample map axis by a given factor. + + When downsampling, each n-th (given by the factor) bin is selected from + the axis while preserving the axis limits. For node type "edges" this + requires nbin to be dividable by the factor, for node type "center" this + requires nbin - 1 to be dividable by the factor. + + Parameters + ---------- + factor : int + Downsampling factor. + strict : bool + Whether the number of bins is strictly divisible by the factor. + If True, ``nbin`` must be divisible by the ``factor``. + If False, the reminder bins are put into the last bin of the new axis. + Default is True. + + Returns + ------- + axis : `MapAxis` + Downsampled map axis. + """ + if self.node_type == "edges": + edges = self.edges[::factor] + if edges[-1] != self.edges[-1]: + if strict is True: + raise ValueError( + f"Number of {self.name} bins ({self.nbin}) is not divisible by {factor}" + ) + else: + edges = np.append(edges, self.edges[-1]) + return self.from_edges(edges, name=self.name, interp=self.interp) + + elif self.node_type == "center": + centers = self.center[::factor] + if centers[-1] != self.center[-1]: + if strict is True: + raise ValueError( + f"Number of {self.name} bins - 1 ({self.nbin-1}) is not divisible by {factor}" + ) + else: + centers = np.append(centers, self.center[-1]) + return self.from_nodes(centers, name=self.name, interp=self.interp)
+ + +
+[docs] + def to_header(self, format="ogip", idx=0): + """Create FITS header. + + Parameters + ---------- + format : {"ogip"}, optional + Format specification. Default is "ogip". + idx : int, optional + Column index of the axis. Default is 0. + + Returns + ------- + header : `~astropy.io.fits.Header` + Header to extend. + """ + header = fits.Header() + + if format in ["ogip", "ogip-sherpa"]: + header["EXTNAME"] = "EBOUNDS", "Name of this binary table extension" + header["TELESCOP"] = "DUMMY", "Mission/satellite name" + header["INSTRUME"] = "DUMMY", "Instrument/detector" + header["FILTER"] = "None", "Filter information" + header["CHANTYPE"] = "PHA", "Type of channels (PHA, PI etc)" + header["DETCHANS"] = self.nbin, "Total number of detector PHA channels" + header["HDUCLASS"] = "OGIP", "Organisation devising file format" + header["HDUCLAS1"] = "RESPONSE", "File relates to response of instrument" + header["HDUCLAS2"] = "EBOUNDS", "This is an EBOUNDS extension" + header["HDUVERS"] = "1.2.0", "Version of file format" + elif format in ["gadf", "fgst-ccube", "fgst-template"]: + key = f"AXCOLS{idx}" + name = self.name.upper() + + if self.name == "energy" and self.node_type == "edges": + header[key] = "E_MIN,E_MAX" + elif self.name == "energy" and self.node_type == "center": + header[key] = "ENERGY" + elif self.node_type == "edges": + header[key] = f"{name}_MIN,{name}_MAX" + elif self.node_type == "center": + header[key] = name + else: + raise ValueError(f"Invalid node type {self.node_type!r}") + + key_interp = f"INTERP{idx}" + header[key_interp] = self.interp + + else: + raise ValueError(f"Unknown format {format}") + + return header
+ + +
+[docs] + def to_table(self, format="ogip"): + """Convert `~astropy.units.Quantity` to OGIP ``EBOUNDS`` extension. + + See https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/memos/cal_gen_92_002/cal_gen_92_002.html#tth_sEc3.2 # noqa: E501 + + The 'ogip-sherpa' format is equivalent to 'ogip' but uses keV energy units. + + Parameters + ---------- + format : {"ogip", "ogip-sherpa", "gadf-dl3", "gtpsf"} + Format specification. Default is "ogip". + + Returns + ------- + table : `~astropy.table.Table` + Table HDU. + """ + table = Table() + edges = self.edges + + if format in ["ogip", "ogip-sherpa"]: + self.assert_name("energy") + + if format == "ogip-sherpa": + edges = edges.to("keV") + + table["CHANNEL"] = np.arange(self.nbin, dtype=np.int16) + table["E_MIN"] = edges[:-1] + table["E_MAX"] = edges[1:] + elif format in ["ogip-arf", "ogip-arf-sherpa"]: + self.assert_name("energy_true") + + if format == "ogip-arf-sherpa": + edges = edges.to("keV") + + table["ENERG_LO"] = edges[:-1] + table["ENERG_HI"] = edges[1:] + elif format == "gadf-sed": + if self.is_energy_axis: + table["e_ref"] = self.center + table["e_min"] = self.edges_min + table["e_max"] = self.edges_max + elif format == "gadf-dl3": + from gammapy.irf.io import IRF_DL3_AXES_SPECIFICATION + + if self.name == "energy": + column_prefix = "ENERG" + else: + for column_prefix, spec in IRF_DL3_AXES_SPECIFICATION.items(): + if spec["name"] == self.name: + break + + if self.node_type == "edges": + edges_hi, edges_lo = edges[:-1], edges[1:] + else: + edges_hi, edges_lo = self.center, self.center + + table[f"{column_prefix}_LO"] = edges_hi[np.newaxis] + table[f"{column_prefix}_HI"] = edges_lo[np.newaxis] + elif format == "gtpsf": + if self.name == "energy_true": + table["Energy"] = self.center.to("MeV") + elif self.name == "rad": + table["Theta"] = self.center.to("deg") + else: + raise ValueError( + "Can only convert true energy or rad axis to" + f"'gtpsf' format, got {self.name}" + ) + else: + raise ValueError(f"{format} is not a valid format") + + return table
+ + +
+[docs] + def to_table_hdu(self, format="ogip"): + """Convert `~astropy.units.Quantity` to OGIP ``EBOUNDS`` extension. + + See https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/memos/cal_gen_92_002/cal_gen_92_002.html#tth_sEc3.2 # noqa: E501 + + The 'ogip-sherpa' format is equivalent to 'ogip' but uses keV energy units. + + Parameters + ---------- + format : {"ogip", "ogip-sherpa", "gtpsf"} + Format specification. Default is "ogip". + + Returns + ------- + hdu : `~astropy.io.fits.BinTableHDU` + Table HDU. + """ + table = self.to_table(format=format) + + if format == "gtpsf": + name = "THETA" + else: + name = None + + hdu = fits.BinTableHDU(table, name=name) + + if format in ["ogip", "ogip-sherpa"]: + hdu.header.update(self.to_header(format=format)) + + return hdu
+ + +
+[docs] + @classmethod + def from_table(cls, table, format="ogip", idx=0, column_prefix=""): + """Instantiate MapAxis from a table HDU. + + Parameters + ---------- + table : `~astropy.table.Table` + Table. + format : {"ogip", "ogip-arf", "fgst-ccube", "fgst-template", "gadf", "gadf-dl3"} + Format specification. Default is "ogip". + idx : int, optional + Column index of the axis. Default is 0. + column_prefix : str, optional + Column name prefix of the axis, used for creating the axis. Default is "". + + Returns + ------- + axis : `MapAxis` + Map Axis. + """ + if format in ["ogip", "fgst-ccube"]: + energy_min = table["E_MIN"].quantity + energy_max = table["E_MAX"].quantity + energy_edges = ( + np.append(energy_min.value, energy_max.value[-1]) * energy_min.unit + ) + axis = cls.from_edges(energy_edges, name="energy", interp="log") + + elif format == "ogip-arf": + energy_min = table["ENERG_LO"].quantity + energy_max = table["ENERG_HI"].quantity + energy_edges = ( + np.append(energy_min.value, energy_max.value[-1]) * energy_min.unit + ) + axis = cls.from_edges(energy_edges, name="energy_true", interp="log") + + elif format in ["fgst-template", "fgst-bexpcube"]: + allowed_names = ["Energy", "ENERGY", "energy"] + for colname in table.colnames: + if colname in allowed_names: + tag = colname + break + + nodes = table[tag].data + axis = cls.from_nodes( + nodes=nodes, name="energy_true", unit="MeV", interp="log" + ) + + elif format == "gadf": + axcols = table.meta.get("AXCOLS{}".format(idx + 1)) + colnames = axcols.split(",") + node_type = "edges" if len(colnames) == 2 else "center" + + # TODO: check why this extra case is needed + if colnames[0] == "E_MIN": + name = "energy" + else: + name = colnames[0].replace("_MIN", "").lower() + # this is need for backward compatibility + if name == "theta": + name = "rad" + + interp = table.meta.get("INTERP{}".format(idx + 1), "lin") + + if node_type == "center": + nodes = np.unique(table[colnames[0]].quantity) + else: + edges_min = np.unique(table[colnames[0]].quantity) + edges_max = np.unique(table[colnames[1]].quantity) + nodes = edges_from_lo_hi(edges_min, edges_max) + + axis = MapAxis(nodes=nodes, node_type=node_type, interp=interp, name=name) + + elif format == "gadf-dl3": + from gammapy.irf.io import IRF_DL3_AXES_SPECIFICATION + + spec = IRF_DL3_AXES_SPECIFICATION[column_prefix] + name, interp = spec["name"], spec["interp"] + + # background models are stored in reconstructed energy + hduclass = table.meta.get("HDUCLAS2") + if hduclass in {"BKG", "RAD_MAX"} and column_prefix == "ENERG": + name = "energy" + + edges_lo = table[f"{column_prefix}_LO"].quantity[0] + edges_hi = table[f"{column_prefix}_HI"].quantity[0] + # for a single-valued array, it can happen that the value is stored/extracted as a scalar + if edges_lo.isscalar: + log.warning( + f"'{column_prefix}' axis is stored as a scalar -- converting to 1D array." + ) + edges_lo = edges_lo[np.newaxis] + edges_hi = edges_hi[np.newaxis] + + if np.allclose(edges_hi, edges_lo): + axis = MapAxis.from_nodes(edges_hi, interp=interp, name=name) + else: + edges = edges_from_lo_hi(edges_lo, edges_hi) + axis = MapAxis.from_edges(edges, interp=interp, name=name) + elif format == "gtpsf": + try: + energy = table["Energy"].data * u.MeV + axis = MapAxis.from_nodes(energy, name="energy_true", interp="log") + except KeyError: + rad = table["Theta"].data * u.deg + axis = MapAxis.from_nodes(rad, name="rad") + elif format == "gadf-sed-energy": + if "e_min" in table.colnames and "e_max" in table.colnames: + e_min = flat_if_equal(table["e_min"].quantity) + e_max = flat_if_equal(table["e_max"].quantity) + edges = edges_from_lo_hi(e_min, e_max) + axis = MapAxis.from_energy_edges(edges) + elif "e_ref" in table.colnames: + e_ref = flat_if_equal(table["e_ref"].quantity) + axis = MapAxis.from_nodes(e_ref, name="energy", interp="log") + else: + raise ValueError( + "Either 'e_ref', 'e_min' or 'e_max' column " "names are required" + ) + elif format == "gadf-sed-norm": + # TODO: guess interp here + nodes = flat_if_equal(table["norm_scan"][0]) + axis = MapAxis.from_nodes(nodes, name="norm") + elif format == "gadf-sed-counts": + if "datasets" in table.colnames: + labels = np.unique(table["datasets"]) + axis = LabelMapAxis(labels=labels, name="dataset") + else: + shape = table["counts"].shape + edges = np.arange(shape[-1] + 1) - 0.5 + axis = MapAxis.from_edges(edges, name="dataset") + elif format == "profile": + if "datasets" in table.colnames: + labels = np.unique(table["datasets"]) + axis = LabelMapAxis(labels=labels, name="dataset") + else: + x_ref = table["x_ref"].quantity + axis = MapAxis.from_nodes(x_ref, name="projected-distance") + else: + raise ValueError(f"Format '{format}' not supported") + + return axis
+ + +
+[docs] + @classmethod + def from_table_hdu(cls, hdu, format="ogip", idx=0): + """Instantiate MapAxis from table HDU. + + Parameters + ---------- + hdu : `~astropy.io.fits.BinTableHDU` + Table HDU. + format : {"ogip", "ogip-arf", "fgst-ccube", "fgst-template"} + Format specification. Default is "ogip". + idx : int, optional + Column index of the axis. Default is 0. + + Returns + ------- + axis : `MapAxis` + Map Axis. + """ + table = Table.read(hdu) + return cls.from_table(table, format=format, idx=idx)
+
+ + + +
+[docs] +class MapAxes(Sequence): + """MapAxis container class. + + Parameters + ---------- + axes : list of `MapAxis` + List of map axis objects. + """ + + def __init__(self, axes, n_spatial_axes=None): + unique_names = [] + + for ax in axes: + if ax.name in unique_names: + raise ( + ValueError(f"Axis names must be unique, got: '{ax.name}' twice.") + ) + unique_names.append(ax.name) + + self._axes = axes + self._n_spatial_axes = n_spatial_axes + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def primary_axis(self): + """Primary extra axis, defined as the longest one. + + Returns + ------- + axis : `MapAxis` + Map axis. + """ + # get longest axis + idx = np.argmax(self.shape) + return self[int(idx)] + + @property + def is_flat(self): + """Whether axes is flat.""" + shape = np.array(self.shape) + return np.all(shape == 1) + + @property + def is_unidimensional(self): + """Whether axes is unidimensional.""" + shape = np.array(self.shape) + non_zero = np.count_nonzero(shape > 1) + return self.is_flat or non_zero == 1 + + @property + def reverse(self): + """Reverse axes order.""" + return MapAxes(self[::-1]) + + @property + def iter_with_reshape(self): + # TODO: The name is misleading. Maybe iter_axis_and_shape? + """Generator that iterates over axes and their shape.""" + for idx, axis in enumerate(self): + # Extract values for each axis, default: nodes + shape = [1] * len(self) + shape[idx] = -1 + if self._n_spatial_axes: + shape = ( + shape[::-1] + + [ + 1, + ] + * self._n_spatial_axes + ) + yield tuple(shape), axis + +
+[docs] + def get_coord(self, mode="center", axis_name=None): + """Get axes coordinates. + + Parameters + ---------- + mode : {"center", "edges"} + Coordinate center or edges. Default is "center". + axis_name : str, optional + Axis name for which mode='edges' applies. Default is None. + + Returns + ------- + coords : dict of `~astropy.units.Quantity`. + Map coordinates as a dictionary. + """ + coords = {} + + for shape, axis in self.iter_with_reshape: + if mode == "edges" and axis.name == axis_name: + coord = axis.edges + else: + coord = axis.center + coords[axis.name] = coord.reshape(shape) + + return coords
+ + +
+[docs] + def bin_volume(self): + """Bin axes volume. + + Returns + ------- + bin_volume : `~astropy.units.Quantity` + Bin volume. + """ + bin_volume = np.array(1) + + for shape, axis in self.iter_with_reshape: + bin_volume = bin_volume * axis.bin_width.reshape(shape) + + return bin_volume
+ + + @property + def shape(self): + """Shapes of the axes.""" + return tuple([ax.nbin for ax in self]) + + @property + def names(self): + """Names of the axes.""" + return [ax.name for ax in self] + +
+[docs] + def index(self, axis_name): + """Get index in list.""" + return self.names.index(axis_name)
+ + +
+[docs] + def index_data(self, axis_name): + """Get data index of the axes. + + Parameters + ---------- + axis_name : str + Name of the axis. + + Returns + ------- + idx : int + Data index. + """ + idx = self.names.index(axis_name) + return len(self) - idx - 1
+ + + def __len__(self): + return len(self._axes) + + def __add__(self, other): + return self.__class__(list(self) + list(other)) + +
+[docs] + def upsample(self, factor, axis_name): + """Upsample axis by a given factor. + + Parameters + ---------- + factor : int + Upsampling factor. + axis_name : str + Axis to upsample. + + Returns + ------- + axes : `MapAxes` + Map axes. + """ + axes = [] + + for ax in self: + if ax.name == axis_name: + ax = ax.upsample(factor=factor) + + axes.append(ax.copy()) + + return self.__class__(axes=axes)
+ + +
+[docs] + def replace(self, axis): + """Replace a given axis. In order to be replaced, + the name of the new axis must match the name of the old axis. + + Parameters + ---------- + axis : `MapAxis` + Map axis. + + Returns + ------- + axes : MapAxes + Map axes. + """ + axes = [] + + for ax in self: + if ax.name == axis.name: + ax = axis + + axes.append(ax) + + return self.__class__(axes=axes)
+ + +
+[docs] + def resample(self, axis): + """Resample axis binning. + + This method groups the existing bins into a new binning. + + Parameters + ---------- + axis : `MapAxis` + New map axis. + + Returns + ------- + axes : `MapAxes` + Axes object with resampled axis. + """ + axis_self = self[axis.name] + groups = axis_self.group_table(axis.edges) + + # Keep only normal bins + groups = groups[groups["bin_type"] == "normal "] + + edges = edges_from_lo_hi( + groups[axis.name + "_min"].quantity, + groups[axis.name + "_max"].quantity, + ) + + axis_resampled = MapAxis.from_edges( + edges=edges, interp=axis.interp, name=axis.name + ) + + axes = [] + for ax in self: + if ax.name == axis.name: + axes.append(axis_resampled) + else: + axes.append(ax.copy()) + + return self.__class__(axes=axes)
+ + +
+[docs] + def downsample(self, factor, axis_name): + """Downsample axis by a given factor. + + Parameters + ---------- + factor : int + Downsampling factor. + axis_name : str + Axis to downsample. + + Returns + ------- + axes : `MapAxes` + Map axes. + + """ + axes = [] + + for ax in self: + if ax.name == axis_name: + ax = ax.downsample(factor=factor) + + axes.append(ax.copy()) + + return self.__class__(axes=axes)
+ + +
+[docs] + def squash(self, axis_name): + """Squash axis. + + Parameters + ---------- + axis_name : str + Axis to squash. + + Returns + ------- + axes : `MapAxes` + Axes with squashed axis. + """ + axes = [] + + for ax in self: + if ax.name == axis_name: + ax = ax.squash() + axes.append(ax.copy()) + + return self.__class__(axes=axes)
+ + +
+[docs] + def pad(self, axis_name, pad_width): + """Pad axis. + + Parameters + ---------- + axis_name : str + Name of the axis to pad. + pad_width : int or tuple of int + Pad width. + + Returns + ------- + axes : `MapAxes` + Axes with squashed axis. + """ + axes = [] + + for ax in self: + if ax.name == axis_name: + ax = ax.pad(pad_width=pad_width) + axes.append(ax) + + return self.__class__(axes=axes)
+ + +
+[docs] + def drop(self, axis_name): + """Drop an axis. + + Parameters + ---------- + axis_name : str + Name of the axis to remove. + + Returns + ------- + axes : `MapAxes` + Axes without the `axis_name`. + """ + axes = [] + for ax in self: + if ax.name == axis_name: + continue + axes.append(ax.copy()) + + return self.__class__(axes=axes)
+ + + def __getitem__(self, idx): + if isinstance(idx, int): + return self._axes[idx] + elif isinstance(idx, str): + for ax in self._axes: + if ax.name == idx: + return ax + raise KeyError( + f"Axis with name `{idx!r}` not in list of axis names: {self.names}." + ) + elif isinstance(idx, slice): + axes = self._axes[idx] + return self.__class__(axes=axes) + elif isinstance(idx, list): + axes = [] + for name in idx: + axes.append(self[name]) + + return self.__class__(axes=axes) + else: + raise TypeError(f"Invalid type: {type(idx)!r}") + +
+[docs] + def coord_to_idx(self, coord, clip=True): + """Transform from axis to pixel indices. + + Parameters + ---------- + coord : dict of `~numpy.ndarray` or `MapCoord` + Array of axis coordinate values. + clip : bool, optional + Choose whether to clip indices to the valid range of the axis. Default is True. + If False, then indices for coordinates outside the axis range will be set to -1. + + + Returns + ------- + pix : tuple of `~numpy.ndarray` + Array of pixel indices values. + """ + return tuple([ax.coord_to_idx(coord[ax.name], clip=clip) for ax in self])
+ + +
+[docs] + def coord_to_pix(self, coord): + """Transform from axis to pixel coordinates. + + Parameters + ---------- + coord : dict of `~numpy.ndarray` + Array of axis coordinate values. + + Returns + ------- + pix : tuple of `~numpy.ndarray` + Array of pixel coordinate values. + """ + return tuple([ax.coord_to_pix(coord[ax.name]) for ax in self])
+ + +
+[docs] + def pix_to_coord(self, pix): + """Convert pixel coordinates to map coordinates. + + Parameters + ---------- + pix : tuple + Tuple of pixel coordinates. + + Returns + ------- + coords : tuple + Tuple of map coordinates. + """ + return tuple([ax.pix_to_coord(p) for ax, p in zip(self, pix)])
+ + +
+[docs] + def pix_to_idx(self, pix, clip=False): + """Convert pixel to pixel indices. + + Parameters + ---------- + pix : tuple of `~numpy.ndarray` + Pixel coordinates. + clip : bool, optional + Choose whether to clip indices to the valid range of the + axis. Default is False. If False, then indices for coordinates outside + the axi range will be set to -1. + + Returns + ------- + idx : tuple `~numpy.ndarray` + Pixel indices. + """ + idx = [] + + for pix_array, ax in zip(pix, self): + idx.append(ax.pix_to_idx(pix_array, clip=clip)) + + return tuple(idx)
+ + +
+[docs] + def slice_by_idx(self, slices): + """Create a new geometry by slicing the non-spatial axes. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dictionary are kept unchanged. + + Returns + ------- + axes : `~MapAxes` + Sliced axes. + + Examples + -------- + >>> import astropy.units as u + >>> from astropy.time import Time + >>> from gammapy.maps import MapAxis, MapAxes, TimeMapAxis + >>> energy_axis = MapAxis.from_energy_bounds(1*u.TeV, 3*u.TeV, 6) + >>> time_ref = Time("1999-01-01T00:00:00.123456789") + >>> time_axis = TimeMapAxis( + ... edges_min=[0, 1, 3] * u.d, + ... edges_max=[0.8, 1.9, 5.4] * u.d, + ... reference_time=time_ref, + ... ) + >>> axes = MapAxes([energy_axis, time_axis]) + >>> slices = {"energy": slice(0, 3), "time": slice(0, 1)} + >>> sliced_axes = axes.slice_by_idx(slices) + """ + axes = [] + for ax in self: + ax_slice = slices.get(ax.name, slice(None)) + + # in the case where isinstance(ax_slice, int) the axes is dropped + if isinstance(ax_slice, slice): + ax_sliced = ax.slice(ax_slice) + axes.append(ax_sliced.copy()) + + return self.__class__(axes=axes)
+ + +
+[docs] + def to_header(self, format="gadf"): + """Convert axes to FITS header. + + Parameters + ---------- + format : {"gadf"} + Header format. Default is "gadf". + + Returns + ------- + header : `~astropy.io.fits.Header` + FITS header. + """ + header = fits.Header() + + for idx, ax in enumerate(self, start=1): + header_ax = ax.to_header(format=format, idx=idx) + header.update(header_ax) + + return header
+ + +
+[docs] + def to_table(self, format="gadf"): + """Convert axes to table. + + Parameters + ---------- + format : {"gadf", "gadf-dl3", "fgst-ccube", "fgst-template", "ogip", "ogip-sherpa", "ogip-arf", "ogip-arf-sherpa"} # noqa E501 + Format to use. Default is "gadf". + + Returns + ------- + table : `~astropy.table.Table` + Table with axis data. + """ + if format == "gadf-dl3": + tables = [] + + for ax in self: + tables.append(ax.to_table(format=format)) + + table = hstack(tables) + elif format in ["gadf", "fgst-ccube", "fgst-template"]: + table = Table() + table["CHANNEL"] = np.arange(np.prod(self.shape)) + + axes_ctr = np.meshgrid(*[ax.center for ax in self]) + axes_min = np.meshgrid(*[ax.edges_min for ax in self]) + axes_max = np.meshgrid(*[ax.edges_max for ax in self]) + + for idx, ax in enumerate(self): + name = ax.name.upper() + + if name == "ENERGY": + colnames = ["ENERGY", "E_MIN", "E_MAX"] + else: + colnames = [name, name + "_MIN", name + "_MAX"] + + for colname, v in zip(colnames, [axes_ctr, axes_min, axes_max]): + # do not store edges for label axis + if ax.node_type == "label" and colname != name: + continue + + table[colname] = np.ravel(v[idx]) + + if isinstance(ax, TimeMapAxis): + ref_dict = time_ref_to_dict(ax.reference_time) + table.meta.update(ref_dict) + + elif format in ["ogip", "ogip-sherpa", "ogip", "ogip-arf"]: + energy_axis = self["energy"] + table = energy_axis.to_table(format=format) + else: + raise ValueError(f"Unsupported format: '{format}'") + + return table
+ + +
+[docs] + def to_table_hdu(self, format="gadf", hdu_bands=None): + """Make FITS table columns for map axes. + + Parameters + ---------- + format : {"gadf", "fgst-ccube", "fgst-template"} + Format to use. Default is "gadf". + hdu_bands : str, optional + Name of the bands HDU to use. Default is None. + + Returns + ------- + hdu : `~astropy.io.fits.BinTableHDU` + Bin table HDU. + """ + # FIXME: Check whether convention is compatible with + # dimensionality of geometry and simplify!!! + + if format in ["fgst-ccube", "ogip", "ogip-sherpa"]: + hdu_bands = "EBOUNDS" + elif format == "fgst-template": + hdu_bands = "ENERGIES" + elif format == "gadf" or format is None: + if hdu_bands is None: + hdu_bands = "BANDS" + else: + raise ValueError(f"Unknown format {format}") + + table = self.to_table(format=format) + header = self.to_header(format=format) + return fits.BinTableHDU(table, name=hdu_bands, header=header)
+ + +
+[docs] + @classmethod + def from_table_hdu(cls, hdu, format="gadf"): + """Create MapAxes from BinTableHDU. + + Parameters + ---------- + hdu : `~astropy.io.fits.BinTableHDU` + Bin table HDU. + format : {"gadf", "gadf-dl3", "fgst-ccube", "fgst-template", "fgst-bexcube", "ogip-arf"} + Format to use. Default is "gadf". + + + Returns + ------- + axes : `MapAxes` + Map axes object. + """ + if hdu is None: + return cls([]) + + table = Table.read(hdu) + return cls.from_table(table, format=format)
+ + +
+[docs] + @classmethod + def from_table(cls, table, format="gadf"): + """Create MapAxes from table. + + Parameters + ---------- + table : `~astropy.table.Table` + Bin table HDU. + format : {"gadf", "gadf-dl3", "fgst-ccube", "fgst-template", "fgst-bexcube", "ogip-arf"} + Format to use. Default is "gadf". + + Returns + ------- + axes : `MapAxes` + Map axes object. + """ + from gammapy.irf.io import IRF_DL3_AXES_SPECIFICATION + + axes = [] + + # Formats that support only one energy axis + if format in [ + "fgst-ccube", + "fgst-template", + "fgst-bexpcube", + "ogip", + "ogip-arf", + ]: + axes.append(MapAxis.from_table(table, format=format)) + elif format == "gadf": + # This limits the max number of axes to 5 + for idx in range(5): + axcols = table.meta.get("AXCOLS{}".format(idx + 1)) + if axcols is None: + break + + # TODO: what is good way to check whether it is a given axis type? + try: + axis = LabelMapAxis.from_table(table, format=format, idx=idx) + except (KeyError, TypeError): + try: + axis = TimeMapAxis.from_table(table, format=format, idx=idx) + except (KeyError, ValueError, IndexError): + axis = MapAxis.from_table(table, format=format, idx=idx) + + axes.append(axis) + elif format == "gadf-dl3": + for column_prefix in IRF_DL3_AXES_SPECIFICATION: + try: + axis = MapAxis.from_table( + table, format=format, column_prefix=column_prefix + ) + except KeyError: + continue + + axes.append(axis) + elif format == "gadf-sed": + for axis_format in ["gadf-sed-norm", "gadf-sed-energy", "gadf-sed-counts"]: + try: + axis = MapAxis.from_table(table=table, format=axis_format) + except KeyError: + continue + axes.append(axis) + elif format == "lightcurve": + axes.extend(cls.from_table(table=table, format="gadf-sed")) + axes.append(TimeMapAxis.from_table(table, format="lightcurve")) + elif format == "profile": + axes.extend(cls.from_table(table=table, format="gadf-sed")) + axes.append(MapAxis.from_table(table, format="profile")) + else: + raise ValueError(f"Unsupported format: '{format}'") + + return cls(axes)
+ + +
+[docs] + @classmethod + def from_default(cls, axes, n_spatial_axes=None): + """Make a sequence of `~MapAxis` objects. + + Parameters + ---------- + axes : list of `~MapAxis` or `~numpy.ndarray` + Sequence of axis or edges defining the axes. + n_spatial_axes : int, optional + Number of spatial axes. Default is None. + + Returns + ------- + axes : `MapAxes` + Map axes object. + """ + if axes is None: + return cls([]) + + axes_out = [] + for idx, ax in enumerate(axes): + if isinstance(ax, np.ndarray): + ax = MapAxis(ax) + + if ax.name == "": + ax._name = f"axis{idx}" + + axes_out.append(ax) + + return cls(axes_out, n_spatial_axes=n_spatial_axes)
+ + +
+[docs] + def assert_names(self, required_names, allow_extra=False): + """Assert required axis names and order. + + Parameters + ---------- + required_names : list of str + Required names. + allow_extra : bool + Allow extra axes beyond required ones. + """ + message = ( + "Incorrect axis order or names. Expected axis " + f"order: {required_names}, got: {self.names}." + ) + + if not allow_extra and not len(self) == len(required_names): + raise ValueError(message) + + try: + for ax, required_name in zip(self[: len(required_names)], required_names): + ax.assert_name(required_name) + + except ValueError: + raise ValueError(message)
+ + +
+[docs] + def rename_axes(self, names, new_names): + """Rename the axes. + + Parameters + ---------- + names : str or list of str + Names of the axis. + new_names : str or list of str + New names of the axes (list must be of same length than `names`). + + Returns + ------- + axes : `MapAxes` + Renamed Map axes object. + """ + axes = self.copy() + if isinstance(names, str): + names = [names] + if isinstance(new_names, str): + new_names = [new_names] + for name, new_name in zip(names, new_names): + axes[name]._name = new_name + return axes
+ + + @property + def center_coord(self): + """Center coordinates.""" + return tuple([ax.pix_to_coord((float(ax.nbin) - 1.0) / 2.0) for ax in self]) + +
+[docs] + def is_allclose(self, other, **kwargs): + """Check if other map axes are all close. + + Parameters + ---------- + other : `MapAxes` + Other map axes. + **kwargs : dict, optional + Keyword arguments forwarded to `~MapAxis.is_allclose` + + Returns + ------- + is_allclose : bool + Whether other axes are all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + return np.all([ax0.is_allclose(ax1, **kwargs) for ax0, ax1 in zip(other, self)])
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other, rtol=1e-6, atol=1e-6) + + def __ne__(self, other): + return not self.__eq__(other) + +
+[docs] + def copy(self): + """Initialize a new map axes instance by copying each axis.""" + return self.__class__([_.copy() for _ in self])
+
+ + + +
+[docs] +class TimeMapAxis: + """Class representing a time axis. + + Provides methods for transforming to/from axis and pixel coordinates. + A time axis can represent non-contiguous sequences of non-overlapping time intervals. + + Time intervals must be provided in increasing order. + + Parameters + ---------- + edges_min : `~astropy.units.Quantity` + Array of edge time values. This is the time delta w.r.t. to the reference time. + edges_max : `~astropy.units.Quantity` + Array of edge time values. This is the time delta w.r.t. to the reference time. + reference_time : `~astropy.time.Time` + Reference time to use. + name : str, optional + Axis name. Default is "time". + interp : {'lin'} + Interpolation method used to transform between axis and pixel + coordinates. For now only 'lin' is supported. Default is 'lin'. + """ + + node_type = "intervals" + + def __init__(self, edges_min, edges_max, reference_time, name="time", interp="lin"): + self._name = name + self._time_format = "iso" + + edges_min = u.Quantity(edges_min, ndmin=1) + edges_max = u.Quantity(edges_max, ndmin=1) + + if not edges_min.unit.is_equivalent("s"): + raise ValueError( + f"Time edges min must have a valid time unit, got {edges_min.unit}" + ) + + if not edges_max.unit.is_equivalent("s"): + raise ValueError( + f"Time edges max must have a valid time unit, got {edges_max.unit}" + ) + + if not edges_min.shape == edges_max.shape: + raise ValueError( + "Edges min and edges max must have the same shape," + f" got {edges_min.shape} and {edges_max.shape}." + ) + + if not np.all(edges_max > edges_min): + raise ValueError("Edges max must all be larger than edge min") + + if not np.all(edges_min == np.sort(edges_min)): + raise ValueError("Time edges min values must be sorted") + + if not np.all(edges_max == np.sort(edges_max)): + raise ValueError("Time edges max values must be sorted") + + if interp != "lin": + raise NotImplementedError( + f"Non-linear scaling scheme are not supported yet, got {interp}" + ) + + self._edges_min = edges_min + self._edges_max = edges_max + self._reference_time = Time(reference_time) + self._pix_offset = -0.5 + self._interp = interp + + delta = edges_min[1:] - edges_max[:-1] + if np.any(delta < 0 * u.s): + raise ValueError("Time intervals must not overlap.") + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def is_contiguous(self): + """Whether the axis is contiguous.""" + return np.all(self.edges_min[1:] == self.edges_max[:-1]) + +
+[docs] + def to_contiguous(self): + """Make the time axis contiguous. + + Returns + ------- + axis : `TimeMapAxis` + Contiguous time axis. + """ + edges = np.unique(np.stack([self.edges_min, self.edges_max])) + return self.__class__( + edges_min=edges[:-1], + edges_max=edges[1:], + reference_time=self.reference_time, + name=self.name, + interp=self.interp, + )
+ + + @property + def unit(self): + """Axis unit.""" + return self.edges_max.unit + + @property + def interp(self): + """Interpolation scale of the axis.""" + return self._interp + + @property + def reference_time(self): + """Return reference time used for the axis.""" + return self._reference_time + + @property + def name(self): + """Return the axis name.""" + return self._name + + @property + def nbin(self): + """Return the number of bins in the axis.""" + return len(self.edges_min.flatten()) + + @property + def edges_min(self): + """Return the array of bin edges maximum values.""" + return self._edges_min + + @property + def edges_max(self): + """Return the array of bin edges minimum values.""" + return self._edges_max + + @property + def edges(self): + """Return the array of bin edges values.""" + if not self.is_contiguous: + raise ValueError("Time axis is not contiguous") + + return edges_from_lo_hi(self.edges_min, self.edges_max) + + @property + def bounds(self): + """Bounds of the axis as a ~astropy.units.Quantity.""" + return self.edges_min[0], self.edges_max[-1] + + @property + def time_bounds(self): + """Bounds of the axis as a ~astropy.units.Quantity.""" + t_min, t_max = self.bounds + return t_min + self.reference_time, t_max + self.reference_time + + @property + def time_min(self): + """Return axis lower edges as `~astropy.time.Time` object.""" + return self._edges_min + self.reference_time + + @property + def time_max(self): + """Return axis upper edges as a `~astropy.time.Time` object.""" + return self._edges_max + self.reference_time + + @property + def time_delta(self): + """Return axis time bin width as a `~astropy.time.TimeDelta` object.""" + return self.time_max - self.time_min + + @property + def time_mid(self): + """Return time bin center as a `~astropy.time.Time` object.""" + return self.time_min + 0.5 * self.time_delta + + @property + def time_edges(self): + """Time edges as a `~astropy.time.Time` object.""" + return self.reference_time + self.edges + + @property + def time_format(self): + """The time format to use for the axis.""" + return self._time_format + + @time_format.setter + def time_format(self, val): + # inherited docstring + if val not in ["iso", "mjd"]: + raise ValueError(f"Invalid time_format: {self.time_format}") + self._time_format = val + + @property + def as_plot_xerr(self): + """Return x errors for plotting.""" + xn, xp = self.time_mid - self.time_min, self.time_max - self.time_mid + + if self.time_format == "iso": + x_errn = xn.to_datetime() + x_errp = xp.to_datetime() + else: + x_errn = xn.to("day") + x_errp = xp.to("day") + + return x_errn, x_errp + + @property + def as_plot_labels(self): + """Return labels for plotting.""" + labels = [] + + for t_min, t_max in self.iter_by_edges: + label = f"{getattr(t_min, self.time_format)} - {getattr(t_max, self.time_format)}" + labels.append(label) + + return labels + + @property + def as_plot_edges(self): + """Return edges for plotting.""" + if self.time_format == "iso": + edges = self.time_edges.to_datetime() + else: + edges = self.time_edges.mjd * u.day + + return edges + + @property + def as_plot_center(self): + """Return center for plotting.""" + if self.time_format == "iso": + center = self.time_mid.datetime + else: + center = self.time_mid.mjd * u.day + return center + +
+[docs] + def format_plot_xaxis(self, ax): + """Format the x-axis. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axis` + Plot axis to format. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Formatted plot axis. + """ + from matplotlib.dates import DateFormatter + + xlabel = DEFAULT_LABEL_TEMPLATE.format( + quantity=PLOT_AXIS_LABEL.get(self.name, self.name.capitalize()), + unit=self.time_format, + ) + ax.set_xlabel(xlabel) + + if self.time_format == "iso": + ax.xaxis.set_major_formatter(DateFormatter("%Y-%m-%d %H:%M:%S")) + else: + ax.xaxis.set_major_formatter("{x:,.5f}") + plt.setp( + ax.xaxis.get_majorticklabels(), + rotation=30, + ha="right", + rotation_mode="anchor", + ) + return ax
+ + +
+[docs] + def assert_name(self, required_name): + """Assert axis name if a specific one is required. + + Parameters + ---------- + required_name : str + Required name. + """ + if self.name != required_name: + raise ValueError( + "Unexpected axis name," + f' expected "{required_name}", got: "{self.name}"' + )
+ + +
+[docs] + def is_allclose(self, other, **kwargs): + """Check if other time map axis is all close. + + Parameters + ---------- + other : `TimeMapAxis` + Other time map axis. + **kwargs : dict, optional + Keyword arguments forwarded to `~numpy.allclose`. + + Returns + ------- + is_allclose : bool + Whether the other time map axis is allclose. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self._edges_min.shape != other._edges_min.shape: + return False + + # This will test equality at microsec level. + delta_min = self.time_min - other.time_min + delta_max = self.time_max - other.time_max + + return ( + np.allclose(delta_min.to_value("s"), 0.0, **kwargs) + and np.allclose(delta_max.to_value("s"), 0.0, **kwargs) + and self._interp == other._interp + and self.name.upper() == other.name.upper() + )
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other=other, atol=1e-6) + + def __ne__(self, other): + return not self.__eq__(other) + + def __hash__(self): + return id(self) + +
+[docs] + def is_aligned(self, other, atol=2e-2): + """Not supported for time axis.""" + raise NotImplementedError
+ + + @property + def iter_by_edges(self): + """Iterate by intervals defined by the edges.""" + for time_min, time_max in zip(self.time_min, self.time_max): + yield (time_min, time_max) + +
+[docs] + def coord_to_idx(self, coord, **kwargs): + """Transform time axis coordinate to bin index. + + Indices of time values falling outside time bins will be + set to -1. + + Parameters + ---------- + coord : `~astropy.time.Time` or `~astropy.units.Quantity` + Array of time axis coordinate values. The quantity is assumed + to be relative to the reference time. + + Returns + ------- + idx : `~numpy.ndarray` + Array of bin indices. + """ + if isinstance(coord, u.Quantity): + coord = self.reference_time + coord + + time = Time(coord[..., np.newaxis]) + delta_plus = (time - self.time_min).value > 0.0 + delta_minus = (time - self.time_max).value <= 0.0 + mask = np.logical_and(delta_plus, delta_minus) + + idx = np.asanyarray(np.argmax(mask, axis=-1)) + idx[~np.any(mask, axis=-1)] = INVALID_INDEX.int + return idx
+ + +
+[docs] + def pix_to_coord(self, pix): + """Transform from pixel position to time coordinate. + Currently, works only for linear interpolation scheme. + + Parameters + ---------- + pix : `~numpy.ndarray` + Array of pixel positions. + + Returns + ------- + coord : `~astropy.time.Time` + Array of time axis coordinate values. + """ + shape = np.shape(pix) + pix = np.atleast_1d(pix) + coords = np.zeros_like(pix) + frac, idx = np.modf(pix) + idx1 = idx.astype(int) + valid = np.logical_and(idx >= 0, idx < self.nbin, np.isfinite(idx)) + idx_valid = np.where(valid) + idx_invalid = np.where(~valid) + + coords[idx_valid] = ( + frac[idx_valid] * self.time_delta[idx1[valid]] + self.edges_min[idx1[valid]] + ).value + coords = coords * self.unit + self.reference_time + coords[idx_invalid] = Time(INVALID_VALUE.time, scale=self.reference_time.scale) + return coords.reshape(shape)
+ + +
+[docs] + def coord_to_pix(self, coord, **kwargs): + """Transform time axis coordinate to pixel position. + + Pixels of time values falling outside time bins will be + set to -1. + + Parameters + ---------- + coord : `~astropy.time.Time` + Array of time axis coordinate values. + + Returns + ------- + pix : `~numpy.ndarray` + Array of pixel positions. + """ + if isinstance(coord, u.Quantity): + coord = self.reference_time + coord + + idx = np.atleast_1d(self.coord_to_idx(coord)) + + valid_pix = idx != INVALID_INDEX.int + pix = np.atleast_1d(idx).astype("float") + + # TODO: is there the equivalent of np.atleast1d for astropy.time.Time? + if coord.shape == (): + coord = coord.reshape((1,)) + + relative_time = coord[valid_pix] - self.reference_time + + scale = interpolation_scale(self._interp) + valid_idx = idx[valid_pix] + s_min = scale(self._edges_min[valid_idx]) + s_max = scale(self._edges_max[valid_idx]) + s_coord = scale(relative_time.to(self._edges_min.unit)) + + pix[valid_pix] += (s_coord - s_min) / (s_max - s_min) + pix[~valid_pix] = INVALID_INDEX.float + return pix - 0.5
+ + +
+[docs] + @staticmethod + def pix_to_idx(pix, clip=False): + # TODO: Is this useful at all? + return pix
+ + + @property + def center(self): + """Return interval centers as a `~astropy.units.Quantity`.""" + return self.edges_min + 0.5 * self.bin_width + + @property + def bin_width(self): + """Return time interval width as a `~astropy.units.Quantity`.""" + return self.time_delta.to("h") + + def __repr__(self): + str_ = self.__class__.__name__ + "\n" + str_ += "-" * len(self.__class__.__name__) + "\n\n" + fmt = "\t{:<14s} : {:<10s}\n" + str_ += fmt.format("name", self.name) + str_ += fmt.format("nbins", str(self.nbin)) + str_ += fmt.format("reference time", self.reference_time.iso) + str_ += fmt.format("scale", self.reference_time.scale) + str_ += fmt.format("time min.", self.time_min.min().iso) + str_ += fmt.format("time max.", self.time_max.max().iso) + str_ += fmt.format("total time", np.sum(self.bin_width)) + return str_.expandtabs(tabsize=2) + +
+[docs] + def upsample(self): + """Not supported for time axis.""" + raise NotImplementedError
+ + +
+[docs] + def downsample(self): + """Not supported for time axis.""" + raise NotImplementedError
+ + + def _init_copy(self, **kwargs): + """Init map axis instance by copying missing init arguments from self.""" + argnames = inspect.getfullargspec(self.__init__).args + argnames.remove("self") + + for arg in argnames: + value = getattr(self, "_" + arg) + if arg not in kwargs: + kwargs[arg] = copy.deepcopy(value) + + return self.__class__(**kwargs) + +
+[docs] + def copy(self, **kwargs): + """Copy `TimeMapAxis` instance and overwrite given attributes. + + Parameters + ---------- + **kwargs : dict, optional + Keyword arguments to overwrite in the map axis constructor. + + Returns + ------- + copy : `TimeMapAxis` + Copied time map axis. + """ + return self._init_copy(**kwargs)
+ + +
+[docs] + def slice(self, idx): + """Create a new axis object by extracting a slice from this axis. + + Parameters + ---------- + idx : `slice` + Slice object selecting a sub-selection of the axis. + + Returns + ------- + axis : `~TimeMapAxis` + Sliced time map axis object. + + Examples + -------- + >>> from gammapy.maps import TimeMapAxis + >>> import astropy.units as u + >>> from astropy.time import Time + >>> time_map_axis = TimeMapAxis( + ... edges_min=[1, 5, 10, 15] * u.day, + ... edges_max=[2, 7, 13, 18] * u.day, + ... reference_time=Time("2020-03-19"), + ... ) + >>> slices = slice(1, 3) + >>> sliced = time_map_axis.slice(slices) + """ + return TimeMapAxis( + self._edges_min[idx].copy(), + self._edges_max[idx].copy(), + self.reference_time, + interp=self._interp, + name=self.name, + )
+ + +
+[docs] + def squash(self): + """Create a new axis object by squashing the axis into one bin. + + Returns + ------- + axis : `~TimeMapAxis` + Squashed time map axis object. + """ + return TimeMapAxis( + self._edges_min[0], + self._edges_max[-1], + self.reference_time, + interp=self._interp, + name=self._name, + )
+ + + # TODO: if we are to allow log or sqrt bins the reference time should always + # be strictly lower than all times + # Should we define a mechanism to ensure this is always correct? +
+[docs] + @classmethod + def from_time_edges(cls, time_min, time_max, unit="d", interp="lin", name="time"): + """Create TimeMapAxis from the time interval edges defined as a `~astropy.time.Time` object. + + The reference time is defined as the lower edge of the first interval. + + Parameters + ---------- + time_min : `~astropy.time.Time` + Array of lower edge times. + time_max : `~astropy.time.Time` + Array of lower edge times. + unit : `~astropy.units.Unit` or str, optional + The unit to convert the edges to. Default is 'd' (day). + interp : {'lin'} + Interpolation method used to transform between axis and pixel + coordinates. Currently, only 'lin' is supported. Default is 'lin'. + name : str, optional + Axis name. Default is "time". + + Returns + ------- + axis : `TimeMapAxis` + Time map axis. + """ + unit = u.Unit(unit) + reference_time = time_min[0] + edges_min = time_min - reference_time + edges_max = time_max - reference_time + + return cls( + edges_min.to(unit), + edges_max.to(unit), + reference_time, + interp=interp, + name=name, + )
+ + + # TODO: how configurable should that be? column names? +
+[docs] + @classmethod + def from_table(cls, table, format="gadf", idx=0): + """Create time map axis from table + + Parameters + ---------- + table : `~astropy.table.Table` + Bin table HDU. + format : {"gadf", "fermi-fgl", "lightcurve"} + Format to use. Default is "gadf". + idx : int + Axis index. Default is 0. + + Returns + ------- + axis : `TimeMapAxis` + Time map axis. + """ + if format == "gadf": + axcols = table.meta.get("AXCOLS{}".format(idx + 1)) + colnames = axcols.split(",") + name = colnames[0].replace("_MIN", "").lower() + reference_time = time_ref_from_dict(table.meta) + edges_min = np.unique(table[colnames[0]].quantity) + edges_max = np.unique(table[colnames[1]].quantity) + elif format == "fermi-fgl": + meta = table.meta.copy() + meta["MJDREFF"] = str(meta["MJDREFF"]).replace("D-4", "e-4") + reference_time = time_ref_from_dict(meta=meta) + name = "time" + edges_min = table["Hist_Start"][:-1] + edges_max = table["Hist_Start"][1:] + elif format == "lightcurve": + # TODO: is this a good format? It just supports mjd... + name = "time" + time_ref_dict = dict( + MJDREFF=table.meta.get("MJDREFF", 0), + MJDREFI=table.meta.get("MJDREFI", 0), + TIMESYS=table.meta.get("TIMESYS", "utc"), + TIMEUNIT=table.meta.get("TIMEUNIT", "d"), + ) + reference_time = time_ref_from_dict(time_ref_dict, format="mjd") + time_min = reference_time + table["time_min"].data * u.Unit( + time_ref_dict["TIMEUNIT"] + ) + time_max = reference_time + table["time_max"].data * u.Unit( + time_ref_dict["TIMEUNIT"] + ) + + if reference_time.mjd == 0: + # change to a more recent reference time + reference_time = Time( + "2001-01-01T00:00:00", scale=time_ref_dict["TIMESYS"] + ) + reference_time.format = "mjd" + + edges_min = (time_min - reference_time).to("s") + edges_max = (time_max - reference_time).to("s") + else: + raise ValueError(f"Not a supported format: {format}") + + return cls( + edges_min=edges_min, + edges_max=edges_max, + reference_time=reference_time, + name=name, + )
+ + +
+[docs] + @classmethod + def from_gti(cls, gti, name="time"): + """Create a time axis from an input GTI. + + Parameters + ---------- + gti : `~gammapy.data.GTI` + GTI table. + name : str, optional + Axis name. Default is "time". + + Returns + ------- + axis : `TimeMapAxis` + Time map axis. + + """ + tmin = gti.time_start - gti.time_ref + tmax = gti.time_stop - gti.time_ref + + return cls( + edges_min=tmin.to("s"), + edges_max=tmax.to("s"), + reference_time=gti.time_ref, + name=name, + )
+ + +
+[docs] + @classmethod + def from_gti_bounds(cls, gti, t_delta, name="time"): + """Create a time axis from an input GTI. + + The unit for the axis is taken from the t_delta quantity. + + Parameters + ---------- + gti : `~gammapy.data.GTI` + GTI table. + t_delta : `~astropy.units.Quantity` + Time binning. + name : str, optional + Axis name. Default is "time". + + Returns + ------- + axis : `TimeMapAxis` + Time map axis. + + """ + time_min = gti.time_start[0] + time_max = gti.time_stop[-1] + + nbin = int(((time_max - time_min) / t_delta).to("")) + return TimeMapAxis.from_time_bounds( + time_min=time_min, + time_max=time_max, + nbin=nbin, + name=name, + unit=t_delta.unit, + )
+ + +
+[docs] + @classmethod + def from_time_bounds(cls, time_min, time_max, nbin, unit="d", name="time"): + """Create linearly spaced time axis from bounds. + + Parameters + ---------- + time_min : `~astropy.time.Time` + Lower bound. + time_max : `~astropy.time.Time` + Upper bound. + nbin : int + Number of bins. + unit : `~astropy.units.Unit` or str, optional + The unit to convert the edges to. Default is 'd' (day). + name : str, optional + Name of the axis. Default is "time". + """ + delta = time_max - time_min + time_edges = time_min + delta * np.linspace(0, 1, nbin + 1) + return cls.from_time_edges( + time_min=time_edges[:-1], + time_max=time_edges[1:], + interp="lin", + unit=unit, + name=name, + )
+ + +
+[docs] + def to_gti(self): + """Convert the axis to a GTI table. + + Returns + ------- + gti : `~gammapy.data.GTI` + GTI table. + """ + from gammapy.data import GTI + + return GTI.create( + self.edges_min, self.edges_max, reference_time=self.reference_time + )
+ + +
+[docs] + def to_table(self): + """Create table. + + Returns + ------- + table : `~astropy.table.Table` + Table with axis data. + """ + t = self.to_gti().table + + return t
+ + +
+[docs] + def to_header(self, format="gadf", idx=0): + """Create FITS header. + + Parameters + ---------- + format : {"ogip"} + Format specification. Default is "gadf". + idx : int, optional + Column index of the axis. Default is 0. + + Returns + ------- + header : `~astropy.io.fits.Header` + Corresponding FITS header. + """ + header = fits.Header() + + if format == "gadf": + key = f"AXCOLS{idx}" + name = self.name.upper() + header[key] = f"{name}_MIN,{name}_MAX" + key_interp = f"INTERP{idx}" + header[key_interp] = self.interp + + ref_dict = time_ref_to_dict(self.reference_time) + header.update(ref_dict) + else: + raise ValueError(f"Unknown format {format}") + + return header
+ + +
+[docs] + def group_table(self, interval_edges): + """Compute bin groups table for the TimeMapAxis, given coarser bin edges. + + Parameters + ---------- + interval_edges : list of `~astropy.time.Time` or `~astropy.units.Quantity` + Start and stop time for each interval to compute the LC. + + Returns + ------- + groups : `~astropy.table.Table` + Group table. Bin groups are divided in: + + * "normal" for the bins containing data + * "underflow" for the bins falling below the minimum axis threshold + * "overflow" for the bins falling above the maximum axis threshold + * "outflow" for other states + """ + + for _, edge in enumerate(interval_edges): + if not isinstance(edge, Time): + interval_edges[_] = self.reference_time + interval_edges[_] + + time_intervals = list(zip(interval_edges[::2], interval_edges[1::2])) + group_table = Table( + names=("idx_min", "idx_max", "time_min", "time_max", "bin_type"), + dtype=("i8", "i8", "f8", "f8", "S10"), + ) + + for time_interval in time_intervals: + mask1 = self.time_min >= time_interval[0] + mask2 = self.time_max <= time_interval[1] + mask = mask1 & mask2 + if np.any(mask): + idx_min = np.where(mask)[0][0] + idx_max = np.where(mask)[0][-1] + bin_type = "normal " + else: + idx_min = idx_max = -1 + if np.any(mask1): + bin_type = "overflow" + elif np.any(mask2): + bin_type = "underflow" + else: + bin_type = "outflow" + time_min = self.time_min[idx_min] + time_max = self.time_max[idx_max] + group_table.add_row( + [idx_min, idx_max, time_min.mjd, time_max.mjd, bin_type] + ) + + return group_table
+
+ + + +
+[docs] +class LabelMapAxis: + """Map axis using labels. + + Parameters + ---------- + labels : list of str + Labels to be used for the axis nodes. + name : str, optional + Name of the axis. Default is "". + + """ + + node_type = "label" + + def __init__(self, labels, name=""): + unique_labels = np.unique(labels) + + if not len(unique_labels) == len(labels): + raise ValueError("Node labels must be unique") + + self._labels = np.array(labels) + self._name = name + + @property + def unit(self): + # TODO: should we allow units for label axis? + """Unit of the axis.""" + return u.Unit("") + + @property + def name(self): + """Name of the axis.""" + return self._name + +
+[docs] + def assert_name(self, required_name): + """Assert axis name if a specific one is required. + + Parameters + ---------- + required_name : str + Required name. + """ + if self.name != required_name: + raise ValueError( + "Unexpected axis name," + f' expected "{required_name}", got: "{self.name}"' + )
+ + + @property + def nbin(self): + """Number of bins.""" + return len(self._labels) + +
+[docs] + def pix_to_coord(self, pix): + """Transform pixel to label coordinate. + + Parameters + ---------- + pix : `~numpy.ndarray` + Array of pixel coordinate values. + + Returns + ------- + coord : `~numpy.ndarray` + Array of axis coordinate values. + """ + idx = np.round(pix).astype(int) + return self._labels[idx]
+ + +
+[docs] + def coord_to_idx(self, coord, **kwargs): + """Transform label coordinate to indices. + + If the label is not present an error is raised. + + Parameters + ---------- + coord : `~astropy.time.Time` + Array of axis coordinate values. + + Returns + ------- + idx : `~numpy.ndarray` + Array of bin indices. + """ + coord = np.array(coord)[..., np.newaxis] + is_equal = coord == self._labels + + if not np.all(np.any(is_equal, axis=-1)): + label = coord[~np.any(is_equal, axis=-1)] + raise ValueError(f"Not a valid label: {label}") + + return np.argmax(is_equal, axis=-1)
+ + +
+[docs] + def coord_to_pix(self, coord): + """Transform label coordinate to pixel coordinate. + + Parameters + ---------- + coord : `~numpy.ndarray` + Array of axis label values. + + Returns + ------- + pix : `~numpy.ndarray` + Array of pixel coordinate values. + """ + return self.coord_to_idx(coord).astype("float")
+ + +
+[docs] + def pix_to_idx(self, pix, clip=False): + """Convert pixel to idx + + Parameters + ---------- + pix : tuple of `~numpy.ndarray` + Pixel coordinates. + clip : bool, optional + Choose whether to clip indices to the valid range of the + axis. Default is False. If False, then indices for coordinates outside + the axis range will be set to -1. + + Returns + ------- + idx : tuple `~numpy.ndarray` + Pixel indices. + """ + if clip: + idx = np.clip(pix, 0, self.nbin - 1) + else: + condition = (pix < 0) | (pix >= self.nbin) + idx = np.where(condition, -1, pix) + + return idx
+ + + @property + def center(self): + """Center of the label axis.""" + return self._labels + + @property + def edges(self): + """Edges of the label axis.""" + # TODO: Why not return self._labels here? + raise ValueError("A LabelMapAxis does not define edges") + + @property + def edges_min(self): + """Edges of the label axis.""" + return self._labels + + @property + def edges_max(self): + """Edges of the label axis.""" + return self._labels + + @property + def bin_width(self): + """Bin width is unity.""" + return np.ones(self.nbin) + + @property + def as_plot_xerr(self): + """Return labels for plotting.""" + return 0.5 * np.ones(self.nbin) + + @property + def as_plot_labels(self): + """Return labels for plotting.""" + return self._labels.tolist() + + @property + def as_plot_center(self): + """Return labels for plotting.""" + return np.arange(self.nbin) + + @property + def as_plot_edges(self): + """Return labels for plotting.""" + return np.arange(self.nbin + 1) - 0.5 + +
+[docs] + def format_plot_xaxis(self, ax): + """Format plot axis. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axis` + Plot axis to format. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Formatted plot axis. + """ + ax.set_xticks(self.as_plot_center) + ax.set_xticklabels( + self.as_plot_labels, + rotation=30, + ha="right", + rotation_mode="anchor", + ) + return ax
+ + +
+[docs] + def to_header(self, format="gadf", idx=0): + """Create FITS header. + + Parameters + ---------- + format : {"ogip"} + Format specification. Default is "gadf". + idx : int, optional + Column index of the axis. Default is 0. + + Returns + ------- + header : `~astropy.io.fits.Header` + Header to extend. + """ + header = fits.Header() + + if format == "gadf": + key = f"AXCOLS{idx}" + header[key] = self.name.upper() + else: + raise ValueError(f"Unknown format {format}") + + return header
+ + + # TODO: how configurable should that be? column names? +
+[docs] + @classmethod + def from_table(cls, table, format="gadf", idx=0): + """Create time map axis from table. + + Parameters + ---------- + table : `~astropy.table.Table` + Bin table HDU. + format : {"gadf"} + Format to use. + idx : int + Axis index. Default is 0. + + Returns + ------- + axis : `TimeMapAxis` + Time map axis. + """ + if format == "gadf": + colname = table.meta.get("AXCOLS{}".format(idx + 1)) + column = table[colname] + if not np.issubdtype(column.dtype, np.str_): + raise TypeError(f"Not a valid dtype for label axis: '{column.dtype}'") + labels = np.unique(column.data) + else: + raise ValueError(f"Not a supported format: {format}") + + return cls(labels=labels, name=colname.lower())
+ + + def __repr__(self): + str_ = self.__class__.__name__ + "\n" + str_ += "-" * len(self.__class__.__name__) + "\n\n" + fmt = "\t{:<10s} : {:<10s}\n" + str_ += fmt.format("name", self.name) + str_ += fmt.format("nbins", str(self.nbin)) + str_ += fmt.format("node type", self.node_type) + str_ += fmt.format("labels", "{0}".format(list(self._labels))) + return str_.expandtabs(tabsize=2) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def is_allclose(self, other, **kwargs): + """Check if other map axis is all close. + + Parameters + ---------- + other : `LabelMapAxis` + Other map axis. + + Returns + ------- + is_allclose : bool + Whether other axis is allclose. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + name_equal = self.name.upper() == other.name.upper() + labels_equal = np.all(self.center == other.center) + return name_equal & labels_equal
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other=other) + + def __ne__(self, other): + return not self.__eq__(other) + + # TODO: could create sub-labels here using dashes like "label-1-a", etc. +
+[docs] + def upsample(self, *args, **kwargs): + """Not supported for label axis.""" + raise NotImplementedError("Upsampling a LabelMapAxis is not supported")
+ + + # TODO: could merge labels here like "label-1-label2", etc. +
+[docs] + def downsample(self, *args, **kwargs): + """Not supported for label axis.""" + raise NotImplementedError("Downsampling a LabelMapAxis is not supported")
+ + + # TODO: could merge labels here like "label-1-label2", etc. +
+[docs] + def resample(self, *args, **kwargs): + """Not supported for label axis.""" + raise NotImplementedError("Resampling a LabelMapAxis is not supported")
+ + + # TODO: could create new labels here like "label-10-a" +
+[docs] + def pad(self, *args, **kwargs): + """Not supported for label axis.""" + raise NotImplementedError("Padding a LabelMapAxis is not supported")
+ + +
+[docs] + def copy(self): + """Copy the axis.""" + return copy.deepcopy(self)
+ + +
+[docs] + def slice(self, idx): + """Create a new axis object by extracting a slice from this axis. + + Parameters + ---------- + idx : slice + Slice object selecting a sub-selection of the axis. + + Returns + ------- + axis : `~LabelMapAxis` + Sliced axis object. + + Examples + -------- + >>> from gammapy.maps import LabelMapAxis + >>> label_axis = LabelMapAxis( + ... labels=["dataset-1", "dataset-2", "dataset-3", "dataset-4"], name="dataset" + ... ) + >>> slices = slice(2, 4) + >>> sliced = label_axis.slice(slices) + """ + return self.__class__( + labels=self._labels[idx], + name=self.name, + )
+ + +
+[docs] + @classmethod + def from_stack(cls, axes): + """Create a label map axis by merging a list of label axis. + + Parameters + ---------- + axes : list of `LabelMapAxis` + List of label map axis to be merged. + + Returns + ------- + axis : `LabelMapAxis` + Stacked axis. + """ + + axis_stacked = axes[0] + + for ax in axes[1:]: + axis_stacked = axis_stacked.concatenate(ax) + + return axis_stacked
+ + +
+[docs] + def concatenate(self, axis): + """Concatenate another label map axis to this one into a new instance of `LabelMapAxis`. + + Names must agree between the axes. Labels must be unique. + + Parameters + ---------- + axis : `LabelMapAxis` + Axis to concatenate with. + + Returns + ------- + axis : `LabelMapAxis` + Concatenation of the two axis. + """ + if not isinstance(axis, LabelMapAxis): + raise TypeError( + f"axis must be an instance of LabelMapAxis, got {axis.__class__.__name__} instead." + ) + + if self.name != axis.name: + raise ValueError(f"Names must agree, got {self.name} and {axis.name} ") + + merged_labels = np.append(self.center, axis.center) + + return LabelMapAxis(merged_labels, self.name)
+ + +
+[docs] + def squash(self): + """Create a new axis object by squashing the axis into one bin. + + The label of the new axis is given as "first-label...last-label". + + Returns + ------- + axis : `LabelMapAxis` + Squashed label map axis. + """ + return LabelMapAxis( + labels=[self.center[0] + "..." + self.center[-1]], name=self._name + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/coord.html b/docs/dev/_modules/gammapy/maps/coord.html new file mode 100644 index 00000000000..7c3a1a0b38a --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/coord.html @@ -0,0 +1,870 @@ + + + + + + + + + + gammapy.maps.coord — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.coord

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+import html
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import SkyCoord
+from gammapy.utils.compat import COPY_IF_NEEDED
+
+__all__ = ["MapCoord"]
+
+
+def skycoord_to_lonlat(skycoord, frame=None):
+    """Convert SkyCoord to lon, lat, frame.
+
+    Returns
+    -------
+    lon : `~numpy.ndarray`
+        Longitude in degrees.
+    lat : `~numpy.ndarray`
+        Latitude in degrees.
+    """
+    if frame:
+        skycoord = skycoord.transform_to(frame)
+
+    return skycoord.data.lon.deg, skycoord.data.lat.deg, skycoord.frame.name
+
+
+
+[docs] +class MapCoord: + """Represents a sequence of n-dimensional map coordinates. + + Contains coordinates for 2 spatial dimensions and an arbitrary + number of additional non-spatial dimensions. Ensure correct broadcasting of the array + to allow for this. + + For further information and examples see :ref:`mapcoord`. + + Parameters + ---------- + data : `dict` of `~numpy.ndarray` + Dictionary of coordinate arrays. + frame : {None, "icrs", "galactic"} + Spatial coordinate system. If None then the coordinate system + will be set to the native coordinate system of the geometry. Default is None. + match_by_name : bool, optional + Match coordinates to axes by name. If False, coordinates will be matched by index. Default is True. + """ + + def __init__(self, data, frame=None, match_by_name=True): + if "lon" not in data or "lat" not in data: + raise ValueError("data dictionary must contain axes named 'lon' and 'lat'.") + + self._data = {k: np.atleast_1d(v) for k, v in data.items()} + self._frame = frame + self._match_by_name = match_by_name + + def __getitem__(self, key): + if isinstance(key, str): + return self._data[key] + else: + return list(self._data.values())[key] + + def __setitem__(self, key, value): + # TODO: check for broadcastability? + self._data[key] = value + + def __iter__(self): + return iter(self._data.values()) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def ndim(self): + """Number of dimensions.""" + return len(self._data) + + @property + def axis_names(self): + """Names of axes.""" + return list(self._data.keys()) + + @property + def shape(self): + """Coordinate array shape.""" + arrays = [_ for _ in self._data.values()] + return np.broadcast(*arrays).shape + + @property + def size(self): + """Product of all shape elements.""" + return np.prod(self.shape) + + @property + def lon(self): + """Longitude coordinate in degrees.""" + return self._data["lon"] + + @property + def lat(self): + """Latitude coordinate in degrees.""" + return self._data["lat"] + + @property + def theta(self): + """Theta co-latitude angle in radians.""" + theta = u.Quantity(self.lat, unit="deg", copy=COPY_IF_NEEDED).to_value("rad") + return np.pi / 2.0 - theta + + @property + def phi(self): + """Phi longitude angle in radians.""" + phi = u.Quantity(self.lon, unit="deg", copy=COPY_IF_NEEDED).to_value("rad") + return phi + + @property + def frame(self): + """Coordinate system as a string.""" + return self._frame + + @property + def match_by_name(self): + """Boolean flag: axis lookup by name return True or by index return False.""" + return self._match_by_name + + @property + def skycoord(self): + """Coordinate object as a `~astropy.coordinates.SkyCoord`.""" + return SkyCoord(self.lon, self.lat, unit="deg", frame=self.frame) + + @classmethod + def _from_lonlat(cls, coords, frame=None, axis_names=None): + """Create a `~MapCoord` from a tuple of coordinate vectors. + + The first two elements of the tuple should be longitude and latitude in degrees. + + Parameters + ---------- + coords : tuple + Tuple of `~numpy.ndarray`. + frame : {"icrs", "galactic", None} + Set the coordinate system for longitude and latitude. If + None, longitude and latitude will be assumed to be in + the coordinate system native to a given map geometry. Default is None. + axis_names : list of str, optional + Axis names to use. + + Returns + ------- + coord : `~MapCoord` + A coordinates object. + """ + if axis_names is None: + axis_names = [f"axis{idx}" for idx in range(len(coords) - 2)] + + if isinstance(coords, (list, tuple)): + coords_dict = {"lon": coords[0], "lat": coords[1]} + for name, c in zip(axis_names, coords[2:]): + coords_dict[name] = c + else: + raise ValueError("Unrecognized input type.") + + return cls(coords_dict, frame=frame, match_by_name=False) + + @classmethod + def _from_tuple(cls, coords, frame=None, axis_names=None): + """Create from a tuple of coordinate vectors.""" + if isinstance(coords[0], (list, np.ndarray)) or np.isscalar(coords[0]): + return cls._from_lonlat(coords, frame=frame, axis_names=axis_names) + elif isinstance(coords[0], SkyCoord): + lon, lat, frame = skycoord_to_lonlat(coords[0], frame=frame) + coords = (lon, lat) + coords[1:] + return cls._from_lonlat(coords, frame=frame, axis_names=axis_names) + else: + raise TypeError(f"Type not supported: {type(coords)!r}") + + @classmethod + def _from_dict(cls, coords, frame=None): + """Create from a dictionary of coordinate vectors.""" + if "lon" in coords and "lat" in coords: + return cls(coords, frame=frame) + elif "skycoord" in coords: + lon, lat, frame = skycoord_to_lonlat(coords["skycoord"], frame=frame) + coords_dict = {"lon": lon, "lat": lat} + for k, v in coords.items(): + if k == "skycoord": + continue + coords_dict[k] = v + return cls(coords_dict, frame=frame) + else: + raise ValueError("coords dict must contain 'lon'/'lat' or 'skycoord'.") + +
+[docs] + @classmethod + def create(cls, data, frame=None, axis_names=None): + """Create a new `~MapCoord` object. + + This method can be used to create either unnamed (with tuple input) + or named (via dict input) axes. + + Parameters + ---------- + data : tuple, dict, `~gammapy.maps.MapCoord` or `~astropy.coordinates.SkyCoord` + Object containing coordinate arrays. + frame : {"icrs", "galactic", None} + Set the coordinate system for longitude and latitude. If + None longitude and latitude will be assumed to be in + the coordinate system native to a given map geometry. Default is None. + axis_names : list of str, optional + Axis names uses if a tuple is provided. Default is None. + + Examples + -------- + >>> from astropy.coordinates import SkyCoord + >>> from gammapy.maps import MapCoord + + >>> lon, lat = [1, 2], [2, 3] + >>> skycoord = SkyCoord(lon, lat, unit='deg') + >>> energy = [1000] + >>> c = MapCoord.create((lon,lat)) + >>> c = MapCoord.create((skycoord,)) + >>> c = MapCoord.create((lon,lat,energy)) + >>> c = MapCoord.create(dict(lon=lon,lat=lat)) + >>> c = MapCoord.create(dict(lon=lon,lat=lat,energy=energy)) + >>> c = MapCoord.create(dict(skycoord=skycoord,energy=energy)) + """ + if isinstance(data, cls): + if data.frame is None or frame == data.frame: + return data + else: + return data.to_frame(frame) + elif isinstance(data, dict): + return cls._from_dict(data, frame=frame) + elif isinstance(data, (list, tuple)): + return cls._from_tuple(data, frame=frame, axis_names=axis_names) + elif isinstance(data, SkyCoord): + return cls._from_tuple((data,), frame=frame, axis_names=axis_names) + else: + raise TypeError(f"Unsupported input type: {type(data)!r}")
+ + +
+[docs] + def to_frame(self, frame): + """Convert to a different coordinate frame. + + Parameters + ---------- + frame : {"icrs", "galactic"} + Coordinate system, either Galactic ("galactic") or Equatorial ("icrs"). + + Returns + ------- + coords : `~MapCoord` + A coordinates object. + """ + if frame == self.frame: + return copy.deepcopy(self) + else: + lon, lat, frame = skycoord_to_lonlat(self.skycoord, frame=frame) + data = copy.deepcopy(self._data) + if isinstance(self.lon, u.Quantity): + lon = u.Quantity(lon, unit="deg", copy=COPY_IF_NEEDED) + + if isinstance(self.lon, u.Quantity): + lat = u.Quantity(lat, unit="deg", copy=COPY_IF_NEEDED) + + data["lon"] = lon + data["lat"] = lat + return self.__class__(data, frame, self._match_by_name)
+ + +
+[docs] + def apply_mask(self, mask): + """Return a masked copy of this coordinate object. + + Parameters + ---------- + mask : `~numpy.ndarray` + Boolean mask. + + Returns + ------- + coords : `~MapCoord` + A coordinates object. + """ + try: + data = {k: v[mask] for k, v in self._data.items()} + except IndexError: + data = {} + + for name, coord in self._data.items(): + if name in ["lon", "lat"]: + data[name] = np.squeeze(coord)[mask] + else: + data[name] = np.squeeze(coord, axis=-1) + + return self.__class__(data, self.frame, self._match_by_name)
+ + + @property + def flat(self): + """Return flattened, valid coordinates.""" + coords = self.broadcasted + is_finite = np.isfinite(coords[0]) + return coords.apply_mask(is_finite) + + @property + def broadcasted(self): + """Return broadcasted coordinates.""" + vals = np.broadcast_arrays(*self._data.values(), subok=True) + data = dict(zip(self._data.keys(), vals)) + return self.__class__( + data=data, frame=self.frame, match_by_name=self._match_by_name + ) + +
+[docs] + def copy(self): + """Copy `MapCoord` object.""" + return copy.deepcopy(self)
+ + + def __str__(self): + return ( + f"{self.__class__.__name__}\n\n" + f"\taxes : {list(self._data.keys())}\n" + f"\tshape : {self.shape[::-1]}\n" + f"\tndim : {self.ndim}\n" + f"\tframe : {self.frame}\n" + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/core.html b/docs/dev/_modules/gammapy/maps/core.html new file mode 100644 index 00000000000..755223a452d --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/core.html @@ -0,0 +1,2809 @@ + + + + + + + + + + gammapy.maps.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import copy
+import html
+import inspect
+import json
+from collections import OrderedDict
+from itertools import repeat
+import numpy as np
+from astropy import units as u
+from astropy.io import fits
+import matplotlib.pyplot as plt
+import gammapy.utils.parallel as parallel
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.random import InverseCDFSampler, get_random_state
+from gammapy.utils.scripts import make_path
+from gammapy.utils.types import JsonQuantityDecoder
+from gammapy.utils.units import energy_unit_format
+from .axes import MapAxis
+from .coord import MapCoord
+from .geom import pix_tuple_to_idx
+
+__all__ = ["Map"]
+
+
+
+[docs] +class Map(abc.ABC): + """Abstract map class. + + This can represent WCS or HEALPix-based maps + with 2 spatial dimensions and N non-spatial dimensions. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Geometry. + data : `~numpy.ndarray` or `~astropy.units.Quantity` + Data array. + meta : `dict`, optional + Dictionary to store metadata. Default is None. + unit : str or `~astropy.units.Unit`, optional + Data unit, ignored if data is a Quantity. Default is ''. + """ + + tag = "map" + + def __init__(self, geom, data, meta=None, unit=""): + self._geom = geom + + if isinstance(data, u.Quantity): + self._unit = u.Unit(unit) + self.quantity = data + else: + self.data = data + self._unit = u.Unit(unit) + + if meta is None: + self.meta = {} + else: + self.meta = meta + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def _init_copy(self, **kwargs): + """Init map instance by copying missing init arguments from self.""" + argnames = inspect.getfullargspec(self.__init__).args + argnames.remove("self") + argnames.remove("dtype") + + for arg in argnames: + value = getattr(self, "_" + arg) + if arg not in kwargs: + kwargs[arg] = copy.deepcopy(value) + + return self.from_geom(**kwargs) + + @property + def is_mask(self): + """Whether map is a mask with boolean data type.""" + return self.data.dtype == bool + + @property + def geom(self): + """Map geometry as a `~gammapy.maps.Geom` object.""" + return self._geom + + @property + def data(self): + """Data array as a `~numpy.ndarray` object.""" + return self._data + + @data.setter + def data(self, value): + """Set data. + + Parameters + ---------- + value : array-like + Data array. + """ + if np.isscalar(value): + value = value * np.ones(self.geom.data_shape, dtype=type(value)) + + if isinstance(value, u.Quantity): + raise TypeError("Map data must be a Numpy array. Set unit separately") + + if not value.shape == self.geom.data_shape: + try: + value = np.broadcast_to(value, self.geom.data_shape, subok=True) + except ValueError as exc: + raise ValueError( + f"Input shape {value.shape} is not compatible with shape from geometry {self.geom.data_shape}" + ) from exc + + self._data = value + + @property + def unit(self): + """Map unit as an `~astropy.units.Unit` object.""" + return self._unit + + @property + def meta(self): + """Map metadata as a `dict`.""" + return self._meta + + @meta.setter + def meta(self, val): + self._meta = val + + @property + def quantity(self): + """Map data as a `~astropy.units.Quantity` object.""" + return u.Quantity(self.data, self.unit, copy=COPY_IF_NEEDED) + + @quantity.setter + def quantity(self, val): + """Set data and unit. + + Parameters + ---------- + val : `~astropy.units.Quantity` + Quantity. + """ + val = u.Quantity(val, copy=COPY_IF_NEEDED) + + self.data = val.value + self._unit = val.unit + +
+[docs] + def rename_axes(self, names, new_names): + """Rename the Map axes. + + Parameters + ---------- + names : str or list of str + Names of the axes. + new_names : str or list of str + New names of the axes. The list must be of the same length as `names`). + + Returns + ------- + geom : `~Map` + Map with renamed axes. + """ + geom = self.geom.rename_axes(names=names, new_names=new_names) + return self._init_copy(geom=geom)
+ + +
+[docs] + @staticmethod + def create(**kwargs): + """Create an empty map object. + + This method accepts generic options listed below, as well as options + for `HpxMap` and `WcsMap` objects. For WCS-specific options, see + `WcsMap.create`; for HPX-specific options, see `HpxMap.create`. + + Parameters + ---------- + frame : {"icrs", "galactic"} + Coordinate system, either Galactic ("galactic") or Equatorial ("icrs"). + map_type : {'wcs', 'wcs-sparse', 'hpx', 'hpx-sparse', 'region'} + Map type. Selects the class that will be used to + instantiate the map. Default is 'wcs'. + binsz : float or `~numpy.ndarray` + Pixel size in degrees. + skydir : `~astropy.coordinates.SkyCoord` + Coordinate of the map center. + axes : list + List of `~MapAxis` objects for each non-spatial dimension. + If None then the map will be a 2D image. + dtype : str + Data type, default is 'float32' + unit : str or `~astropy.units.Unit` + Data unit. + meta : `dict` + Dictionary to store metadata. + region : `~regions.SkyRegion` + Sky region used for the region map. + + Returns + ------- + map : `Map` + Empty map object. + """ + from .hpx import HpxMap + from .region import RegionNDMap + from .wcs import WcsMap + + map_type = kwargs.setdefault("map_type", "wcs") + if "wcs" in map_type.lower(): + return WcsMap.create(**kwargs) + elif "hpx" in map_type.lower(): + return HpxMap.create(**kwargs) + elif map_type == "region": + _ = kwargs.pop("map_type") + return RegionNDMap.create(**kwargs) + else: + raise ValueError(f"Unrecognized map type: {map_type!r}")
+ + +
+[docs] + @staticmethod + def read( + filename, + hdu=None, + hdu_bands=None, + map_type="auto", + format=None, + colname=None, + checksum=False, + ): + """Read a map from a FITS file. + + Parameters + ---------- + filename : str or `~pathlib.Path` + Name of the FITS file. + hdu : str, optional + Name or index of the HDU with the map data. Default is None. + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. If not + defined this will be inferred from the FITS header of the + map HDU. Default is None. + map_type : {'auto', 'wcs', 'wcs-sparse', 'hpx', 'hpx-sparse', 'region'} + Map type. Selects the class that will be used to + instantiate the map. The map type should be consistent + with the format of the input file. If map_type is 'auto' + then an appropriate map type will be inferred from the + input file. Default is 'auto'. + colname : str, optional + data column name to be used for HEALPix map. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + map_out : `Map` + Map object. + """ + with fits.open( + make_path(filename), memmap=False, checksum=checksum + ) as hdulist: + return Map.from_hdulist( + hdulist, hdu, hdu_bands, map_type, format=format, colname=colname + )
+ + +
+[docs] + @staticmethod + def from_geom(geom, meta=None, data=None, unit="", dtype="float32"): + """Generate an empty map from a `Geom` instance. + + Parameters + ---------- + geom : `Geom` + Map geometry. + meta : `dict`, optional + Dictionary to store metadata. Default is None. + data : `numpy.ndarray`, optional + Data array. Default is None. + unit : str or `~astropy.units.Unit` + Data unit. + dtype : str, optional + Data type. Default is 'float32'. + + Returns + ------- + map_out : `Map` + Map object. + + """ + from .hpx import HpxGeom + from .region import RegionGeom + from .wcs import WcsGeom + + if isinstance(geom, HpxGeom): + map_type = "hpx" + elif isinstance(geom, WcsGeom): + map_type = "wcs" + elif isinstance(geom, RegionGeom): + map_type = "region" + else: + raise ValueError("Unrecognized geom type.") + + cls_out = Map._get_map_cls(map_type) + return cls_out(geom, data=data, meta=meta, unit=unit, dtype=dtype)
+ + +
+[docs] + @staticmethod + def from_hdulist( + hdulist, hdu=None, hdu_bands=None, map_type="auto", format=None, colname=None + ): + """Create from a `astropy.io.fits.HDUList` object. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + HDU list containing HDUs for map data and bands. + hdu : str, optional + Name or index of the HDU with the map data. Default is None. + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. Default is None. + map_type : {"auto", "wcs", "hpx", "region"} + Map type. Default is "auto". + format : {'gadf', 'fgst-ccube', 'fgst-template'} + FITS format convention. Default is None. + colname : str, optional + Data column name to be used for HEALPix map. Default is None. + + Returns + ------- + map_out : `Map` + Map object. + """ + if map_type == "auto": + map_type = Map._get_map_type(hdulist, hdu) + cls_out = Map._get_map_cls(map_type) + if map_type == "hpx": + return cls_out.from_hdulist( + hdulist, hdu=hdu, hdu_bands=hdu_bands, format=format, colname=colname + ) + else: + return cls_out.from_hdulist( + hdulist, hdu=hdu, hdu_bands=hdu_bands, format=format + )
+ + + @staticmethod + def _get_meta_from_header(header): + """Load metadata from a FITS header.""" + if "META" in header: + return json.loads(header["META"], cls=JsonQuantityDecoder) + else: + return {} + + @staticmethod + def _get_map_type(hdu_list, hdu_name): + """Infer map type from a FITS HDU. + + Only read header, never data, to have good performance. + """ + if hdu_name is None: + # Find the header of the first non-empty HDU + header = hdu_list[0].header + if header["NAXIS"] == 0: + header = hdu_list[1].header + else: + header = hdu_list[hdu_name].header + + if ("PIXTYPE" in header) and (header["PIXTYPE"] == "HEALPIX"): + return "hpx" + elif "CTYPE1" in header: + return "wcs" + else: + return "region" + + @staticmethod + def _get_map_cls(map_type): + """Get map class for a given `map_type` string. + + This should probably be a registry dict so that users + can add supported map types to the `gammapy.maps` I/O + (see e.g. the Astropy table format I/O registry), + but that's non-trivial to implement without avoiding circular imports. + """ + if map_type == "wcs": + from .wcs import WcsNDMap + + return WcsNDMap + elif map_type == "wcs-sparse": + raise NotImplementedError() + elif map_type == "hpx": + from .hpx import HpxNDMap + + return HpxNDMap + elif map_type == "hpx-sparse": + raise NotImplementedError() + elif map_type == "region": + from .region import RegionNDMap + + return RegionNDMap + else: + raise ValueError(f"Unrecognized map type: {map_type!r}") + +
+[docs] + def write(self, filename, overwrite=False, **kwargs): + """Write to a FITS file. + + Parameters + ---------- + filename : str + Output file name. + overwrite : bool, optional + Overwrite existing file. Default is False. + hdu : str, optional + Set the name of the image extension. By default, this will + be set to 'SKYMAP' (for BINTABLE HDU) or 'PRIMARY' (for IMAGE + HDU). + hdu_bands : str, optional + Set the name of the bands table extension. Default is 'BANDS'. + format : str, optional + FITS format convention. By default, files will be written + to the gamma-astro-data-formats (GADF) format. This + option can be used to write files that are compliant with + format conventions required by specific software (e.g. the + Fermi Science Tools). The following formats are supported: + + - "gadf" (default) + - "fgst-ccube" + - "fgst-ltcube" + - "fgst-bexpcube" + - "fgst-srcmap" + - "fgst-template" + - "fgst-srcmap-sparse" + - "galprop" + - "galprop2" + + sparse : bool, optional + Sparsify the map by dropping pixels with zero amplitude. + This option is only compatible with the 'gadf' format. + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + checksum = kwargs.pop("checksum", False) + hdulist = self.to_hdulist(**kwargs) + hdulist.writeto(make_path(filename), overwrite=overwrite, checksum=checksum)
+ + +
+[docs] + def iter_by_axis(self, axis_name, keepdims=False): + """Iterate over a given axis. + + Yields + ------ + map : `Map` + Map iteration. + + See also + -------- + iter_by_image : iterate by image returning a map. + """ + axis = self.geom.axes[axis_name] + for idx in range(axis.nbin): + idx_axis = slice(idx, idx + 1) if keepdims else idx + slices = {axis_name: idx_axis} + yield self.slice_by_idx(slices=slices)
+ + +
+[docs] + def iter_by_image(self, keepdims=False): + """Iterate over image planes of a map. + + Parameters + ---------- + keepdims : bool, optional + Keep dimensions. Default is False. + + Yields + ------ + map : `Map` + Map iteration. + + See also + -------- + iter_by_image_data : iterate by image returning data and index. + """ + for idx in np.ndindex(self.geom.shape_axes): + if keepdims: + names = self.geom.axes.names + slices = {name: slice(_, _ + 1) for name, _ in zip(names, idx)} + yield self.slice_by_idx(slices=slices) + else: + yield self.get_image_by_idx(idx=idx)
+ + +
+[docs] + def iter_by_image_data(self): + """Iterate over image planes of the map. + + The image plane index is in data order, so that the data array can be + indexed directly. + + Yields + ------ + (data, idx) : tuple + Where ``data`` is a `numpy.ndarray` view of the image plane data, + and ``idx`` is a tuple of int, the index of the image plane. + + See also + -------- + iter_by_image : iterate by image returning a map. + """ + for idx in np.ndindex(self.geom.shape_axes): + yield self.data[idx[::-1]], idx[::-1]
+ + +
+[docs] + def iter_by_image_index(self): + """Iterate over image planes of the map. + + The image plane index is in data order, so that the data array can be + indexed directly. + + Yields + ------ + idx : tuple + ``idx`` is a tuple of int, the index of the image plane. + + See also + -------- + iter_by_image : iterate by image returning a map. + """ + for idx in np.ndindex(self.geom.shape_axes): + yield idx[::-1]
+ + +
+[docs] + def coadd(self, map_in, weights=None): + """Add the contents of ``map_in`` to this map. + + This method can be used to combine maps containing integral quantities (e.g. counts) + or differential quantities if the maps have the same binning. + + Parameters + ---------- + map_in : `Map` + Map to add. + weights: `Map` or `~numpy.ndarray` + The weight factors while adding. Default is None. + """ + if not self.unit.is_equivalent(map_in.unit): + raise ValueError("Incompatible units") + + # TODO: Check whether geometries are aligned and if so sum the + # data vectors directly + if weights is not None: + map_in = map_in * weights + idx = map_in.geom.get_idx() + coords = map_in.geom.get_coord() + vals = u.Quantity(map_in.get_by_idx(idx), map_in.unit) + self.fill_by_coord(coords, vals)
+ + +
+[docs] + def pad(self, pad_width, axis_name=None, mode="constant", cval=0, method="linear"): + """Pad the spatial dimensions of the map. + + Parameters + ---------- + pad_width : {sequence, array_like, int} + Number of pixels padded to the edges of each axis. + axis_name : str, optional + Which axis to downsample. By default, spatial axes are padded. Default is None. + mode : {'constant', 'edge', 'interp'} + Padding mode. 'edge' pads with the closest edge value. + 'constant' pads with a constant value. 'interp' pads with + an extrapolated value. Default is 'constant'. + cval : float, optional + Padding value when ``mode='consant'``. Default is 0. + + Returns + ------- + map : `Map` + Padded map. + + """ + if axis_name: + if np.isscalar(pad_width): + pad_width = (pad_width, pad_width) + + geom = self.geom.pad(pad_width=pad_width, axis_name=axis_name) + idx = self.geom.axes.index_data(axis_name) + pad_width_np = [(0, 0)] * self.data.ndim + pad_width_np[idx] = pad_width + + kwargs = {} + if mode == "constant": + kwargs["constant_values"] = cval + + data = np.pad(self.data, pad_width=pad_width_np, mode=mode, **kwargs) + return self.__class__( + geom=geom, data=data, unit=self.unit, meta=self.meta.copy() + ) + + return self._pad_spatial(pad_width, mode="constant", cval=cval)
+ + + @abc.abstractmethod + def _pad_spatial(self, pad_width, mode="constant", cval=0, order=1): + pass + +
+[docs] + @abc.abstractmethod + def crop(self, crop_width): + """Crop the spatial dimensions of the map. + + Parameters + ---------- + crop_width : {sequence, array_like, int} + Number of pixels cropped from the edges of each axis. + Defined analogously to ``pad_with`` from `numpy.pad`. + + Returns + ------- + map : `Map` + Cropped map. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def downsample(self, factor, preserve_counts=True, axis_name=None): + """Downsample the spatial dimension by a given factor. + + Parameters + ---------- + factor : int + Downsampling factor. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be set to True + if the map is an integral quantity (e.g. counts) and False if + the map is a differential quantity (e.g. intensity). Default is True. + axis_name : str, optional + Which axis to downsample. By default, spatial axes are downsampled. Default is None. + + Returns + ------- + map : `Map` + Downsampled map. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def upsample(self, factor, order=0, preserve_counts=True, axis_name=None): + """Upsample the spatial dimension by a given factor. + + Parameters + ---------- + factor : int + Upsampling factor. + order : int, optional + Order of the interpolation used for upsampling. Default is 0. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). Default is True. + axis_name : str, optional + Which axis to upsample. By default, spatial axes are upsampled. Default is None. + + + Returns + ------- + map : `Map` + Upsampled map. + """ + pass
+ + +
+[docs] + def resample(self, geom, weights=None, preserve_counts=True): + """Resample pixels to ``geom`` with given ``weights``. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Target Map geometry. + weights : `~numpy.ndarray`, optional + Weights vector. It must have same shape as the data of the map. + If set to None, weights will be set to 1. Default is None. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). Default is True. + + Returns + ------- + resampled_map : `Map` + Resampled map. + """ + coords = self.geom.get_coord() + idx = geom.coord_to_idx(coords) + + weights = 1 if weights is None else weights + + resampled = self._init_copy(data=None, geom=geom) + resampled._resample_by_idx( + idx, weights=self.data * weights, preserve_counts=preserve_counts + ) + return resampled
+ + + @abc.abstractmethod + def _resample_by_idx(self, idx, weights=None, preserve_counts=False): + """Resample pixels at ``idx`` with given ``weights``. + + Parameters + ---------- + idx : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + weights : `~numpy.ndarray`, optional + Weights vector. If set to None, weights will be set to 1. Default is None. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). Default is False. + """ + pass + +
+[docs] + def resample_axis(self, axis, weights=None, ufunc=np.add): + """Resample map to a new axis by grouping and reducing smaller bins by a given function `ufunc`. + + By default, the map content are summed over the smaller bins. Other `numpy.ufunc` can be + used, e.g. `numpy.logical_and` or `numpy.logical_or`. + + Parameters + ---------- + axis : `MapAxis` + New map axis. + weights : `Map`, optional + Array to be used as weights. The spatial geometry must be equivalent + to `other` and additional axes must be broadcastable. If set to None, weights will be set to 1. + Default is None. + ufunc : `~numpy.ufunc` + Universal function to use to resample the axis. Default is `numpy.add`. + + Returns + ------- + map : `Map` + Map with resampled axis. + """ + from .hpx import HpxGeom + + geom = self.geom.resample_axis(axis) + + axis_self = self.geom.axes[axis.name] + axis_resampled = geom.axes[axis.name] + + # We don't use MapAxis.coord_to_idx because is does not behave as needed with boundaries + coord = axis_resampled.edges.value + edges = axis_self.edges.value + indices = np.digitize(coord, edges) - 1 + + idx = self.geom.axes.index_data(axis.name) + + weights = 1 if weights is None else weights.data + + if not isinstance(self.geom, HpxGeom): + shape = self.geom._shape[:2] + else: + shape = (self.geom.data_shape[-1],) + shape += tuple([ax.nbin if ax != axis else 1 for ax in self.geom.axes]) + + padded_array = np.append(self.data * weights, np.zeros(shape[::-1]), axis=idx) + + slices = tuple([slice(0, _) for _ in geom.data_shape]) + data = ufunc.reduceat(padded_array, indices=indices, axis=idx)[slices] + + return self._init_copy(data=data, geom=geom)
+ + +
+[docs] + def slice_by_idx( + self, + slices, + ): + """Slice sub map from map object. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dictionary are kept unchanged. + + Returns + ------- + map_out : `Map` + Sliced map object. + + Examples + -------- + >>> from gammapy.maps import Map + >>> m = Map.read("$GAMMAPY_DATA/fermi_3fhl/gll_iem_v06_cutout.fits") + >>> slices = {"energy": slice(0, 5)} + >>> sliced = m.slice_by_idx(slices) + """ + geom = self.geom.slice_by_idx(slices) + slices = tuple([slices.get(ax.name, slice(None)) for ax in self.geom.axes]) + data = self.data[slices[::-1]] + return self.__class__(geom=geom, data=data, unit=self.unit, meta=self.meta)
+ + +
+[docs] + def get_image_by_coord(self, coords): + """Return spatial map at the given axis coordinates. + + Parameters + ---------- + coords : tuple or dict + Tuple should be ordered as (x_0, ..., x_n) where x_i are coordinates + for non-spatial dimensions of the map. Dictionary should specify the axis + names of the non-spatial axes such as {'axes0': x_0, ..., 'axesn': x_n}. + + Returns + ------- + map_out : `Map` + Map with spatial dimensions only. + + See Also + -------- + get_image_by_idx, get_image_by_pix. + + Examples + -------- + :: + + import numpy as np + from gammapy.maps import Map, MapAxis + from astropy.coordinates import SkyCoord + from astropy import units as u + + # Define map axes + energy_axis = MapAxis.from_edges( + np.logspace(-1., 1., 4), unit='TeV', name='energy', + ) + + time_axis = MapAxis.from_edges( + np.linspace(0., 10, 20), unit='h', name='time', + ) + + # Define map center + skydir = SkyCoord(0, 0, frame='galactic', unit='deg') + + # Create map + m_wcs = Map.create( + map_type='wcs', + binsz=0.02, + skydir=skydir, + width=10.0, + axes=[energy_axis, time_axis], + ) + + # Get image by coord tuple + image = m_wcs.get_image_by_coord(('500 GeV', '1 h')) + + # Get image by coord dict with strings + image = m_wcs.get_image_by_coord({'energy': '500 GeV', 'time': '1 h'}) + + # Get image by coord dict with quantities + image = m_wcs.get_image_by_coord({'energy': 0.5 * u.TeV, 'time': 1 * u.h}) + """ + if isinstance(coords, tuple): + coords = dict(zip(self.geom.axes.names, coords)) + + idx = self.geom.axes.coord_to_idx(coords) + return self.get_image_by_idx(idx)
+ + +
+[docs] + def get_image_by_pix(self, pix): + """Return spatial map at the given axis pixel coordinates + + Parameters + ---------- + pix : tuple + Tuple of scalar pixel coordinates for each non-spatial dimension of + the map. Tuple should be ordered as (I_0, ..., I_n). Pixel coordinates + can be either float or integer type. + + See Also + -------- + get_image_by_coord, get_image_by_idx. + + Returns + ------- + map_out : `Map` + Map with spatial dimensions only. + """ + idx = self.geom.pix_to_idx(pix) + return self.get_image_by_idx(idx)
+ + +
+[docs] + def get_image_by_idx(self, idx): + """Return spatial map at the given axis pixel indices. + + Parameters + ---------- + idx : tuple + Tuple of scalar indices for each non-spatial dimension of the map. + Tuple should be ordered as (I_0, ..., I_n). + + See Also + -------- + get_image_by_coord, get_image_by_pix. + + Returns + ------- + map_out : `Map` + Map with spatial dimensions only. + """ + if len(idx) != len(self.geom.axes): + raise ValueError("Tuple length must equal number of non-spatial dimensions") + + # Only support scalar indices per axis + idx = tuple([int(_.item()) for _ in np.array(idx)]) + + geom = self.geom.to_image() + data = self.data[idx[::-1]] + return self.__class__(geom=geom, data=data, unit=self.unit, meta=self.meta)
+ + +
+[docs] + def get_by_coord(self, coords, fill_value=np.nan): + """Return map values at the given map coordinates. + + Parameters + ---------- + coords : tuple or `~gammapy.maps.MapCoord` + Coordinate arrays for each dimension of the map. Tuple + should be ordered as (lon, lat, x_0, ..., x_n) where x_i + are coordinates for non-spatial dimensions of the map. + fill_value : float + Value which is returned if the position is outside the projection + footprint. Default is `numpy.nan`. + + Returns + ------- + vals : `~numpy.ndarray` + Values of pixels in the map. `numpy.nan` is used to flag coordinates + outside the map. + """ + pix = self.geom.coord_to_pix(coords=coords) + vals = self.get_by_pix(pix, fill_value=fill_value) + return vals
+ + +
+[docs] + def get_by_pix(self, pix, fill_value=np.nan): + """Return map values at the given pixel coordinates. + + Parameters + ---------- + pix : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + Pixel indices can be either float or integer type. + fill_value : float + Value which is returned if the position is outside the projection + footprint. Default is `numpy.nan`. + + Returns + ------- + vals : `~numpy.ndarray` + Array of pixel values. `numpy.nan` is used to flag coordinates + outside the map. + """ + # FIXME: Support local indexing here? + # FIXME: Support slicing? + pix = np.broadcast_arrays(*pix) + idx = self.geom.pix_to_idx(pix) + vals = self.get_by_idx(idx) + mask = self.geom.contains_pix(pix) + + if not mask.all(): + vals = vals.astype(type(fill_value)) + vals[~mask] = fill_value + + return vals
+ + +
+[docs] + @abc.abstractmethod + def get_by_idx(self, idx): + """Return map values at the given pixel indices. + + Parameters + ---------- + idx : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + + Returns + ------- + vals : `~numpy.ndarray` + Array of pixel values. `numpy.nan` is used to flag coordinates outside the map. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def interp_by_coord(self, coords, method="linear", fill_value=None): + """Interpolate map values at the given map coordinates. + + Parameters + ---------- + coords : tuple or `~gammapy.maps.MapCoord` + Coordinate arrays for each dimension of the map. Tuple + should be ordered as (lon, lat, x_0, ..., x_n) where x_i + are coordinates for non-spatial dimensions of the map. + method : {"linear", "nearest"} + Method to interpolate data values. Default is "linear". + fill_value : float, optional + The value to use for points outside the interpolation domain. + If None, values outside the domain are extrapolated. Default is None. + + Returns + ------- + vals : `~numpy.ndarray` + Interpolated pixel values. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def interp_by_pix(self, pix, method="linear", fill_value=None): + """Interpolate map values at the given pixel coordinates. + + Parameters + ---------- + pix : tuple + Tuple of pixel coordinate arrays for each dimension of the + map. Tuple should be ordered as (p_lon, p_lat, p_0, ..., + p_n) where p_i are pixel coordinates for non-spatial + dimensions of the map. + method : {"linear", "nearest"} + Method to interpolate data values. Default is "linear". + fill_value : float, optional + The value to use for points outside the interpolation domain. + If None, values outside the domain are extrapolated. Default is None. + + Returns + ------- + vals : `~numpy.ndarray` + Interpolated pixel values. + """ + pass
+ + +
+[docs] + def interp_to_geom(self, geom, preserve_counts=False, fill_value=0, **kwargs): + """Interpolate map to input geometry. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Target Map geometry. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). Default is False. + fill_value : float, optional + The value to use for points outside the interpolation domain. + If None, values outside the domain are extrapolated. + Default is 0. + **kwargs : dict, optional + Keyword arguments passed to `Map.interp_by_coord`. + + Returns + ------- + interp_map : `Map` + Interpolated Map. + """ + coords = geom.get_coord() + map_copy = self.copy() + + if preserve_counts: + if geom.ndim > 2 and geom.axes[0] != self.geom.axes[0]: + raise ValueError( + f"Energy axes do not match, expected: \n {self.geom.axes[0]}," + f" but got: \n {geom.axes[0]}." + ) + map_copy.data /= map_copy.geom.solid_angle().to_value("deg2") + + if map_copy.is_mask and fill_value is not None: + # TODO: check this NaN handling is needed + data = map_copy.get_by_coord(coords) + data = np.nan_to_num(data, nan=fill_value).astype(bool) + else: + data = map_copy.interp_by_coord(coords, fill_value=fill_value, **kwargs) + if map_copy.is_mask: + data = data.astype(bool) + + if preserve_counts: + data *= geom.solid_angle().to_value("deg2") + + return Map.from_geom(geom, data=data, unit=self.unit)
+ + +
+[docs] + def reproject_to_geom(self, geom, preserve_counts=False, precision_factor=10): + """Reproject map to input geometry. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Target Map geometry. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). Default is False. + precision_factor : int, optional + Minimal factor between the bin size of the output map and the oversampled base map. + Used only for the oversampling method. Default is 10. + + Returns + ------- + output_map : `Map` + Reprojected Map. + """ + from .hpx import HpxGeom + from .region import RegionGeom + + axes = [ax.copy() for ax in self.geom.axes] + geom3d = geom.copy(axes=axes) + + if not geom.is_image: + if geom.axes.names != geom3d.axes.names: + raise ValueError("Axis names and order should be the same.") + if geom.axes != geom3d.axes and ( + isinstance(geom3d, HpxGeom) or isinstance(self.geom, HpxGeom) + ): + raise TypeError( + "Reprojection to 3d geom with non-identical axes is not supported for HpxGeom. " + "Reproject to 2d geom first and then use inter_to_geom method." + ) + if isinstance(geom3d, RegionGeom): + base_factor = ( + geom3d.to_wcs_geom().pixel_scales.min() / self.geom.pixel_scales.min() + ) + elif isinstance(self.geom, RegionGeom): + base_factor = ( + geom3d.pixel_scales.min() / self.geom.to_wcs_geom().pixel_scales.min() + ) + else: + base_factor = geom3d.pixel_scales.min() / self.geom.pixel_scales.min() + + if base_factor >= precision_factor: + input_map = self + else: + factor = precision_factor / base_factor + if isinstance(self.geom, HpxGeom): + factor = int(2 ** np.ceil(np.log(factor) / np.log(2))) + else: + factor = int(np.ceil(factor)) + input_map = self.upsample(factor=factor, preserve_counts=preserve_counts) + + output_map = input_map.resample(geom3d, preserve_counts=preserve_counts) + + if not geom.is_image and geom.axes != geom3d.axes: + for base_ax, target_ax in zip(geom3d.axes, geom.axes): + base_factor = base_ax.bin_width.min() / target_ax.bin_width.min() + if not base_factor >= precision_factor: + factor = precision_factor / base_factor + factor = int(np.ceil(factor)) + output_map = output_map.upsample( + factor=factor, + preserve_counts=preserve_counts, + axis_name=base_ax.name, + ) + output_map = output_map.resample(geom, preserve_counts=preserve_counts) + return output_map
+ + +
+[docs] + def reproject_by_image( + self, + geom, + preserve_counts=False, + precision_factor=10, + ): + """Reproject each image of a ND map to input 2d geometry. + + For large maps this method is faster than `reproject_to_geom`. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Target slice geometry in 2D. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be True + if the map is an integral quantity (e.g. counts) and False if + the map is a differential quantity (e.g. intensity). Default is False. + precision_factor : int, optional + Minimal factor between the bin size of the output map and the oversampled base map. + Used only for the oversampling method. Default is 10. + + Returns + ------- + output_map : `Map` + Reprojected Map. + """ + if not geom.is_image: + raise TypeError("This method is only valid for 2d geom") + + output_map = Map.from_geom(geom.to_cube(self.geom.axes)) + maps = parallel.run_multiprocessing( + self._reproject_image, + zip( + self.iter_by_image(), + repeat(geom), + repeat(preserve_counts), + repeat(precision_factor), + ), + task_name="Reprojection", + ) + for idx in np.ndindex(self.geom.shape_axes): + output_map.data[idx[0]] = maps[idx[0]].data + return output_map
+ + + @staticmethod + def _reproject_image(image, geom, preserve_counts, precision_factor): + return image.reproject_to_geom( + geom, precision_factor=precision_factor, preserve_counts=preserve_counts + ) + +
+[docs] + def fill_events(self, events, weights=None): + """Fill the map from an `~gammapy.data.EventList` object. + + Parameters + ---------- + events : `~gammapy.data.EventList` + Events to fill in the map with. + weights : `~numpy.ndarray`, optional + Weights vector. The weights vector must be of the same length + as the events column length. If None, weights are set to 1. Default is None. + """ + self.fill_by_coord(events.map_coord(self.geom), weights=weights)
+ + +
+[docs] + def fill_by_coord(self, coords, weights=None): + """Fill pixels at ``coords`` with given ``weights``. + + Parameters + ---------- + coords : tuple or `~gammapy.maps.MapCoord` + Coordinate arrays for each dimension of the map. Tuple + should be ordered as (lon, lat, x_0, ..., x_n) where x_i + are coordinates for non-spatial dimensions of the map. + weights : `~numpy.ndarray`, optional + Weights vector. If None, weights are set to 1. Default is None. + """ + idx = self.geom.coord_to_idx(coords) + self.fill_by_idx(idx, weights=weights)
+ + +
+[docs] + def fill_by_pix(self, pix, weights=None): + """Fill pixels at ``pix`` with given ``weights``. + + Parameters + ---------- + pix : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + Pixel indices can be either float or integer type. Float + indices will be rounded to the nearest integer. + weights : `~numpy.ndarray`, optional + Weights vector. If None, weights are set to 1. Default is None. + """ + idx = pix_tuple_to_idx(pix) + return self.fill_by_idx(idx, weights=weights)
+ + +
+[docs] + @abc.abstractmethod + def fill_by_idx(self, idx, weights=None): + """Fill pixels at ``idx`` with given ``weights``. + + Parameters + ---------- + idx : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + weights : `~numpy.ndarray`, optional + Weights vector. If None, weights are set to 1. Default is None. + """ + pass
+ + +
+[docs] + def set_by_coord(self, coords, vals): + """Set pixels at ``coords`` with given ``vals``. + + Parameters + ---------- + coords : tuple or `~gammapy.maps.MapCoord` + Coordinate arrays for each dimension of the map. Tuple + should be ordered as (lon, lat, x_0, ..., x_n) where x_i + are coordinates for non-spatial dimensions of the map. + vals : `~numpy.ndarray` + Values vector. + """ + idx = self.geom.coord_to_pix(coords) + self.set_by_pix(idx, vals)
+ + +
+[docs] + def set_by_pix(self, pix, vals): + """Set pixels at ``pix`` with given ``vals``. + + Parameters + ---------- + pix : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + Pixel indices can be either float or integer type. Float + indices will be rounded to the nearest integer. + vals : `~numpy.ndarray` + Values vector. + """ + idx = pix_tuple_to_idx(pix) + return self.set_by_idx(idx, vals)
+ + +
+[docs] + @abc.abstractmethod + def set_by_idx(self, idx, vals): + """Set pixels at ``idx`` with given ``vals``. + + Parameters + ---------- + idx : tuple + Tuple of pixel index arrays for each dimension of the map. + Tuple should be ordered as (I_lon, I_lat, I_0, ..., I_n) + for WCS maps and (I_hpx, I_0, ..., I_n) for HEALPix maps. + vals : `~numpy.ndarray` + Values vector. + """ + pass
+ + +
+[docs] + def plot_grid(self, figsize=None, ncols=3, **kwargs): + """Plot map as a grid of subplots for non-spatial axes. + + Parameters + ---------- + figsize : tuple of int, optional + Figsize to plot on. Default is None. + ncols : int, optional + Number of columns to plot. Default is 3. + **kwargs : dict, optional + Keyword arguments passed to `WcsNDMap.plot`. + + Returns + ------- + axes : `~numpy.ndarray` of `~matplotlib.pyplot.Axes` + Axes grid. + """ + if len(self.geom.axes) > 1: + raise ValueError("Grid plotting is only supported for one non spatial axis") + + axis = self.geom.axes[0] + + cols = min(ncols, axis.nbin) + rows = 1 + (axis.nbin - 1) // cols + + if figsize is None: + width = 12 + figsize = (width, width * rows / cols) + + if self.geom.is_hpx: + wcs = self.geom.to_wcs_geom().wcs + else: + wcs = self.geom.wcs + + fig, axes = plt.subplots( + ncols=cols, + nrows=rows, + subplot_kw={"projection": wcs}, + figsize=figsize, + gridspec_kw={"hspace": 0.1, "wspace": 0.1}, + ) + + for idx in range(cols * rows): + ax = axes.flat[idx] + + try: + image = self.get_image_by_idx((idx,)) + except IndexError: + ax.set_visible(False) + continue + + if image.geom.is_hpx: + image_wcs = image.to_wcs( + normalize=False, + proj="AIT", + oversample=2, + ) + else: + image_wcs = image + + image_wcs.plot(ax=ax, **kwargs) + + if axis.node_type == "center": + if axis.name == "energy" or axis.name == "energy_true": + info = energy_unit_format(axis.center[idx]) + else: + info = f"{axis.center[idx]:.1f}" + elif axis.node_type == "label": + info = f"{axis.center[idx]}" + else: + if axis.name == "energy" or axis.name == "energy_true": + info = ( + f"{energy_unit_format(axis.edges[idx])} - " + f"{energy_unit_format(axis.edges[idx+1])}" + ) + else: + info = f"{axis.edges_min[idx]:.1f} - {axis.edges_max[idx]:.1f} " + ax.set_title(f"{axis.name.capitalize()} " + info) + lon, lat = ax.coords[0], ax.coords[1] + lon.set_ticks_position("b") + lat.set_ticks_position("l") + + row, col = np.unravel_index(idx, shape=(rows, cols)) + + if col > 0: + lat.set_ticklabel_visible(False) + lat.set_axislabel("") + + if row < (rows - 1): + lon.set_ticklabel_visible(False) + lon.set_axislabel("") + + return axes
+ + +
+[docs] + def plot_interactive(self, rc_params=None, **kwargs): + """ + Plot map with interactive widgets to explore the non-spatial axes. + + Parameters + ---------- + rc_params : dict, optional + Passed to ``matplotlib.rc_context(rc=rc_params)`` to style the plot. Default is None. + **kwargs : dict, optional + Keyword arguments passed to `WcsNDMap.plot`. + + Examples + -------- + You can try this out e.g. using a Fermi-LAT diffuse model cube with an energy axis:: + + from gammapy.maps import Map + + m = Map.read("$GAMMAPY_DATA/fermi_3fhl/gll_iem_v06_cutout.fits") + m.plot_interactive(add_cbar=True, stretch="sqrt") + + If you would like to adjust the figure size you can use the ``rc_params`` argument:: + + rc_params = {'figure.figsize': (12, 6), 'font.size': 12} + m.plot_interactive(rc_params=rc_params) + """ + import matplotlib as mpl + from ipywidgets import RadioButtons, SelectionSlider + from ipywidgets.widgets.interaction import fixed, interact + + if self.geom.is_image: + raise TypeError("Use .plot() for 2D Maps") + + kwargs.setdefault("interpolation", "nearest") + kwargs.setdefault("origin", "lower") + kwargs.setdefault("cmap", "afmhot") + + rc_params = rc_params or {} + stretch = kwargs.pop("stretch", "sqrt") + + interact_kwargs = {} + + for axis in self.geom.axes: + if axis.node_type == "center": + if axis.name == "energy" or axis.name == "energy_true": + options = energy_unit_format(axis.center) + else: + options = axis.as_plot_labels + elif axis.name == "energy" or axis.name == "energy_true": + E = energy_unit_format(axis.edges) + options = [f"{E[i]} - {E[i+1]}" for i in range(len(E) - 1)] + else: + options = axis.as_plot_labels + interact_kwargs[axis.name] = SelectionSlider( + options=options, + description=f"Select {axis.name}:", + continuous_update=False, + style={"description_width": "initial"}, + layout={"width": "50%"}, + ) + interact_kwargs[axis.name + "_options"] = fixed(options) + + interact_kwargs["stretch"] = RadioButtons( + options=["linear", "sqrt", "log"], + value=stretch, + description="Select stretch:", + style={"description_width": "initial"}, + ) + + @interact(**interact_kwargs) + def _plot_interactive(**ikwargs): + idx = [ + ikwargs[ax.name + "_options"].index(ikwargs[ax.name]) + for ax in self.geom.axes + ] + img = self.get_image_by_idx(idx) + stretch = ikwargs["stretch"] + with mpl.rc_context(rc=rc_params): + img.plot(stretch=stretch, **kwargs) + plt.show()
+ + +
+[docs] + def copy(self, **kwargs): + """Copy map instance and overwrite given attributes, except for geometry. + + Parameters + ---------- + **kwargs : dict, optional + Keyword arguments to overwrite in the map constructor. + + Returns + ------- + copy : `Map` + Copied Map. + """ + if "geom" in kwargs: + geom = kwargs["geom"] + if not geom.data_shape == self.geom.data_shape: + raise ValueError( + "Can't copy and change data size of the map. " + f" Current shape {self.geom.data_shape}," + f" requested shape {geom.data_shape}" + ) + + return self._init_copy(**kwargs)
+ + +
+[docs] + def mask_nearest_position(self, position): + """Given a sky coordinate return nearest valid position in the mask. + + If the mask contains additional axes, the mask is reduced over those axes. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Test position. + + Returns + ------- + position : `~astropy.coordinates.SkyCoord` + The nearest position in the mask. + """ + if not self.geom.is_image: + raise ValueError("Method only supported for 2D images") + + coords = self.geom.to_image().get_coord().skycoord + separation = coords.separation(position) + separation[~self.data] = np.inf + idx = np.argmin(separation) + return coords.flatten()[idx]
+ + +
+[docs] + def sum_over_axes(self, axes_names=None, keepdims=True, weights=None): + """Sum map values over all non-spatial axes. + + Parameters + ---------- + axes_names: list of str + Names of the axis to reduce over. If None, all non-spatial axis will be summed over. Default is None. + keepdims : bool, optional + If this is set to true, the axes which are summed over are left in + the map with a single bin. Default is True. + weights : `Map`, optional + Weights to be applied. The map should have the same geometry as this one. Default is None. + + Returns + ------- + map_out : `~Map` + Map with non-spatial axes summed over. + """ + return self.reduce_over_axes( + func=np.add, axes_names=axes_names, keepdims=keepdims, weights=weights + )
+ + +
+[docs] + def reduce_over_axes( + self, func=np.add, keepdims=False, axes_names=None, weights=None + ): + """Reduce map over non-spatial axes. + + Parameters + ---------- + func : `~numpy.ufunc`, optional + Function to use for reducing the data. Default is `numpy.add`. + keepdims : bool, optional + If this is set to true, the axes which are summed over are left in + the map with a single bin. Default is False. + axes_names: list, optional + Names of axis to reduce over. If None, all non-spatial axis will be reduced. + weights : `Map`, optional + Weights to be applied. The map should have the same geometry as this one. Default is None. + + Returns + ------- + map_out : `~Map` + Map with non-spatial axes reduced. + """ + if axes_names is None: + axes_names = self.geom.axes.names + + map_out = self.copy() + for axis_name in axes_names: + map_out = map_out.reduce( + axis_name, func=func, keepdims=keepdims, weights=weights + ) + + return map_out
+ + +
+[docs] + def reduce(self, axis_name, func=np.add, keepdims=False, weights=None): + """Reduce map over a single non-spatial axis. + + Parameters + ---------- + axis_name: str + The name of the axis to reduce over. + func : `~numpy.ufunc`, optional + Function to use for reducing the data. Default is `numpy.add`. + keepdims : bool, optional + If this is set to true, the axes which are summed over are left in + the map with a single bin. Default is False. + weights : `Map` + Weights to be applied. The map should have the same geometry as this one. Default is None. + + Returns + ------- + map_out : `~Map` + Map with the given non-spatial axes reduced. + """ + if keepdims: + geom = self.geom.squash(axis_name=axis_name) + else: + geom = self.geom.drop(axis_name=axis_name) + + idx = self.geom.axes.index_data(axis_name) + + data = self.data + + if weights is not None: + data = data * weights + + data = func.reduce(data, axis=idx, keepdims=keepdims, where=~np.isnan(data)) + return self._init_copy(geom=geom, data=data)
+ + +
+[docs] + def cumsum(self, axis_name): + """Compute cumulative sum along a given axis. + + Parameters + ---------- + axis_name : str + Along which axis to sum. + + Returns + ------- + cumsum : `Map` + Map with cumulative sum. + """ + axis = self.geom.axes[axis_name] + axis_idx = self.geom.axes.index_data(axis_name) + + # TODO: the broadcasting should be done by axis.center, axis.bin_width etc. + shape = [1] * len(self.geom.data_shape) + shape[axis_idx] = -1 + + values = self.quantity * axis.bin_width.reshape(shape) + + if axis_name == "rad": + # take Jacobian into account + values = 2 * np.pi * axis.center.reshape(shape) * values + + data = np.insert(values.cumsum(axis=axis_idx), 0, 0, axis=axis_idx) + + axis_shifted = MapAxis.from_nodes( + axis.edges, name=axis.name, interp=axis.interp + ) + axes = self.geom.axes.replace(axis_shifted) + geom = self.geom.to_image().to_cube(axes) + return self.__class__(geom=geom, data=data.value, unit=data.unit)
+ + +
+[docs] + def integral(self, axis_name, coords, **kwargs): + """Compute integral along a given axis. + + This method uses interpolation of the cumulative sum. + + Parameters + ---------- + axis_name : str + Along which axis to integrate. + coords : dict or `MapCoord` + Map coordinates. + **kwargs : dict, optional + Keyword arguments passed to `Map.interp_by_coord`. + + Returns + ------- + array : `~astropy.units.Quantity` + 2D array with axes offset. + """ + cumsum = self.cumsum(axis_name=axis_name) + cumsum = cumsum.pad(pad_width=1, axis_name=axis_name, mode="edge") + return u.Quantity( + cumsum.interp_by_coord(coords, **kwargs), cumsum.unit, copy=COPY_IF_NEEDED + )
+ + +
+[docs] + def normalize(self, axis_name=None): + """Normalise data in place along a given axis. + + Parameters + ---------- + axis_name : str, optional + Along which axis to normalise. + """ + cumsum = self.cumsum(axis_name=axis_name).quantity + + with np.errstate(invalid="ignore", divide="ignore"): + axis = self.geom.axes.index_data(axis_name=axis_name) + normed = self.quantity / cumsum.max(axis=axis, keepdims=True) + + self.quantity = np.nan_to_num(normed)
+ + +
+[docs] + @classmethod + def from_stack(cls, maps, axis=None, axis_name=None): + """Create Map from a list of images and a non-spatial axis. + + The image geometries must be aligned, except for the axis that is stacked. + + Parameters + ---------- + maps : list of `Map` objects + List of maps. + axis : `MapAxis`, optional + If a `MapAxis` is provided the maps are stacked along the last data + axis and the new axis is introduced. Default is None. + axis_name : str, optional + If an axis name is as string the given the maps are stacked along + the given axis name. + + Returns + ------- + map : `Map` + Map with additional non-spatial axis. + """ + geom = maps[0].geom + + if axis_name is None and axis is None: + axis_name = geom.axes.names[-1] + + if axis_name: + axis = MapAxis.from_stack(axes=[m.geom.axes[axis_name] for m in maps]) + geom = geom.drop(axis_name=axis_name) + + data = [] + + for m in maps: + if axis_name: + m_geom = m.geom.drop(axis_name=axis_name) + else: + m_geom = m.geom + + if not m_geom == geom: + raise ValueError(f"Image geometries not aligned: {m.geom} and {geom}") + + data.append(m.quantity.to_value(maps[0].unit)) + + new_geom = geom.to_cube(axes=[axis]) + data = np.concatenate(data).reshape(new_geom.data_shape) + + return cls.from_geom(data=data, geom=new_geom, unit=maps[0].unit)
+ + +
+[docs] + def split_by_axis(self, axis_name): + """Split a Map along an axis into multiple maps. + + Parameters + ---------- + axis_name : str + Name of the axis to split. + + Returns + ------- + maps : list + A list of `~gammapy.maps.Map`. + """ + maps = [] + axis = self.geom.axes[axis_name] + for idx in range(axis.nbin): + m = self.slice_by_idx({axis_name: idx}) + maps.append(m) + return maps
+ + +
+[docs] + def to_cube(self, axes): + """Append non-spatial axes to create a higher-dimensional Map. + + This will result in a Map with a new geometry with + N+M dimensions where N is the number of current dimensions and + M is the number of axes in the list. The data is reshaped onto this + new geometry. + + Parameters + ---------- + axes : list + Axes that will be appended to this Map. + The axes should have only one bin. + + Returns + ------- + map : `~gammapy.maps.WcsNDMap` + New map. + """ + for ax in axes: + if ax.nbin > 1: + raise ValueError(ax.name, "should have only one bin") + geom = self.geom.to_cube(axes) + data = self.data.reshape((1,) * len(axes) + self.data.shape) + return self.from_geom(data=data, geom=geom, unit=self.unit)
+ + +
+[docs] + def get_spectrum(self, region=None, func=np.nansum, weights=None): + """Extract spectrum in a given region. + + The spectrum can be computed by summing (or, more generally, applying ``func``) + along the spatial axes in each energy bin. This occurs only inside the ``region``, + which by default is assumed to be the whole spatial extension of the map. + + Parameters + ---------- + region: `~regions.Region`, optional + Region to extract the spectrum from. Pixel or sky regions are accepted. Default is None. + func : `numpy.func`, optional + Function to reduce the data. Default is `~numpy.nansum`. + For a boolean Map, use `numpy.any` or `numpy.all`. Default is `numpy.nansum`. + weights : `WcsNDMap`, optional + Array to be used as weights. The geometry must be equivalent. Default is None. + + Returns + ------- + spectrum : `~gammapy.maps.RegionNDMap` + Spectrum in the given region. + """ + if not self.geom.has_energy_axis: + raise ValueError("Energy axis required") + + return self.to_region_nd_map(region=region, func=func, weights=weights)
+ + +
+[docs] + def to_unit(self, unit): + """Convert map to a different unit. + + Parameters + ---------- + unit : str or `~astropy.unit.Unit` + New unit. + + Returns + ------- + map : `Map` + Map with new unit and converted data. + """ + data = self.quantity.to_value(unit) + return self.from_geom(self.geom, data=data, unit=unit)
+ + +
+[docs] + def is_allclose(self, other, rtol_axes=1e-3, atol_axes=1e-6, **kwargs): + """Compare two Maps for close equivalency. + + Parameters + ---------- + other : `gammapy.maps.Map` + The Map to compare against. + rtol_axes : float, optional + Relative tolerance for the axes' comparison. Default is 1e-3. + atol_axes : float, optional + Absolute tolerance for the axes' comparison. Default is 1e-6. + **kwargs : dict, optional + Keywords passed to `~numpy.allclose`. + + Returns + ------- + is_allclose : bool + Whether the Map is all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self.data.shape != other.data.shape: + return False + + axes_eq = self.geom.axes.is_allclose( + other.geom.axes, rtol=rtol_axes, atol=atol_axes + ) + data_eq = np.allclose(self.quantity, other.quantity, **kwargs) + return axes_eq and data_eq
+ + + def __str__(self): + geom = self.geom.__class__.__name__ + axes = ["skycoord"] if self.geom.is_hpx else ["lon", "lat"] + axes = axes + [_.name for _ in self.geom.axes] + + return ( + f"{self.__class__.__name__}\n\n" + f"\tgeom : {geom} \n " + f"\taxes : {axes}\n" + f"\tshape : {self.geom.data_shape[::-1]}\n" + f"\tndim : {self.geom.ndim}\n" + f"\tunit : {self.unit}\n" + f"\tdtype : {self.data.dtype}\n" + ) + + def _arithmetics(self, operator, other, copy): + """Perform arithmetic on maps after checking geometry consistency.""" + if isinstance(other, Map): + if self.geom == other.geom: + q = other.quantity + else: + raise ValueError("Map Arithmetic: Inconsistent geometries.") + else: + q = u.Quantity(other, copy=COPY_IF_NEEDED) + + out = self.copy() if copy else self + out.quantity = operator(out.quantity, q) + return out + + def _boolean_arithmetics(self, operator, other, copy): + """Perform arithmetic on maps after checking geometry consistency.""" + if operator == np.logical_not: + out = self.copy() + out.data = operator(out.data) + return out + + if isinstance(other, Map): + if self.geom == other.geom: + other = other.data + else: + raise ValueError("Map Arithmetic: Inconsistent geometries.") + + out = self.copy() if copy else self + out.data = operator(out.data, other) + return out + + def __add__(self, other): + return self._arithmetics(np.add, other, copy=True) + + def __iadd__(self, other): + return self._arithmetics(np.add, other, copy=COPY_IF_NEEDED) + + def __sub__(self, other): + return self._arithmetics(np.subtract, other, copy=True) + + def __isub__(self, other): + return self._arithmetics(np.subtract, other, copy=COPY_IF_NEEDED) + + def __mul__(self, other): + return self._arithmetics(np.multiply, other, copy=True) + + def __imul__(self, other): + return self._arithmetics(np.multiply, other, copy=COPY_IF_NEEDED) + + def __truediv__(self, other): + return self._arithmetics(np.true_divide, other, copy=True) + + def __itruediv__(self, other): + return self._arithmetics(np.true_divide, other, copy=COPY_IF_NEEDED) + + def __le__(self, other): + return self._arithmetics(np.less_equal, other, copy=True) + + def __lt__(self, other): + return self._arithmetics(np.less, other, copy=True) + + def __ge__(self, other): + return self._arithmetics(np.greater_equal, other, copy=True) + + def __gt__(self, other): + return self._arithmetics(np.greater, other, copy=True) + + def __eq__(self, other): + return self._arithmetics(np.equal, other, copy=True) + + def __ne__(self, other): + return self._arithmetics(np.not_equal, other, copy=True) + + def __and__(self, other): + return self._boolean_arithmetics(np.logical_and, other, copy=True) + + def __or__(self, other): + return self._boolean_arithmetics(np.logical_or, other, copy=True) + + def __invert__(self): + return self._boolean_arithmetics(np.logical_not, None, copy=True) + + def __xor__(self, other): + return self._boolean_arithmetics(np.logical_xor, other, copy=True) + + def __iand__(self, other): + return self._boolean_arithmetics(np.logical_and, other, copy=COPY_IF_NEEDED) + + def __ior__(self, other): + return self._boolean_arithmetics(np.logical_or, other, copy=COPY_IF_NEEDED) + + def __ixor__(self, other): + return self._boolean_arithmetics(np.logical_xor, other, copy=COPY_IF_NEEDED) + + def __array__(self): + return self.data + +
+[docs] + def sample_coord(self, n_events, random_state=0): + """Sample position and energy of events. + + Parameters + ---------- + n_events : int + Number of events to sample. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. Default is 0. + + Returns + ------- + coords : `~gammapy.maps.MapCoord` object. + Sequence of coordinates and energies of the sampled events. + """ + + random_state = get_random_state(random_state) + sampler = InverseCDFSampler(pdf=self.data, random_state=random_state) + + coords_pix = sampler.sample(n_events) + coords = self.geom.pix_to_coord(coords_pix[::-1]) + + # TODO: pix_to_coord should return a MapCoord object + cdict = OrderedDict(zip(self.geom.axes_names, coords)) + + return MapCoord.create(cdict, frame=self.geom.frame)
+ + +
+[docs] + def reorder_axes(self, axes_names): + """Return a new map re-ordering the non-spatial axes. + + Parameters + ---------- + axes_names : list of str + The list of axes names in the required order. + + Returns + ------- + map : `~gammapy.maps.Map` + The map with axes re-ordered. + """ + old_axes = self.geom.axes + if not set(old_axes.names) == set(axes_names): + raise ValueError(f"{old_axes.names} is not compatible with {axes_names}") + + new_axes = [old_axes[_] for _ in axes_names] + new_geom = self.geom.to_image().to_cube(new_axes) + + old_indices = [old_axes.index_data(ax) for ax in axes_names] + new_indices = [new_geom.axes.index_data(ax) for ax in axes_names] + + data = np.moveaxis(self.data, old_indices, new_indices) + + return Map.from_geom(new_geom, data=data)
+ + +
+[docs] + def dot(self, other): + """Apply dot product with the input map. + + The input Map has to share a single MapAxis with the current Map. + Because it has no spatial dimension, it must be a `~gammapy.maps.RegionNDMap`. + + Parameters + ---------- + other : `~gammapy.maps.RegionNDMap` + Map to apply the dot product to. + It must share a unique non-spatial MapAxis with the current Map. + + Returns + ------- + map : `~gammapy.maps.Map` + Map with dot product applied. + """ + from .region import RegionNDMap + + if not isinstance(other, RegionNDMap): + raise TypeError( + f"Dot product can be applied to a RegionNDMap. Got {type(other)} instead." + ) + + common_names = list( + set(other.geom.axes.names).intersection(self.geom.axes.names) + ) + + if len(common_names) == 0: + raise ValueError( + "Map geometries have no axis in common. Cannot apply dot product." + ) + elif len(common_names) > 1: + raise ValueError( + f"Map geometries have more than one axis in common: {common_names}." + "Cannot apply dot product." + ) + + axis_name = common_names[0] + + if self.geom.axes[axis_name] != other.geom.axes[axis_name]: + raise ValueError( + f"Axes {axis_name} are not equal. Cannot apply dot product." + ) + + loc = self.geom.axes.index_data(axis_name) + other_loc = other.geom.axes.index_data(axis_name) + + # move axes because numpy dot product is performed on last axis of a and second-to-last axis of b + data = np.moveaxis(self.data, loc, -1) + + if len(other.geom.axes) > 1: + other_data = np.moveaxis(other.data[..., 0, 0], other_loc, -2) + else: + other_data = other.data[..., 0, 0] + + data = np.dot(data, other_data) + + # prepare new axes with expected shape (i.e. common axis replaced by other's axes) + index = self.geom.axes.index(axis_name) + axes1 = self.geom.axes.drop(axis_name) + inserted_axes = other.geom.axes.drop(axis_name) + new_axes = axes1[:index] + inserted_axes + axes1[index:] + + # reorder axes to get the expected shape + remaining_axes = np.arange(len(inserted_axes)) + old_axes_pos = -1 - remaining_axes + new_axes_pos = loc + remaining_axes[::-1] + + data = np.moveaxis(data, old_axes_pos, new_axes_pos) + + geom = self.geom.to_image().to_cube(new_axes) + return self._init_copy(geom=geom, data=data)
+ + + def __matmul__(self, other): + """Apply dot product with the input map. + + The input Map has to share a single MapAxis with the current Map. + Because it has no spatial dimension, it must be a `~gammapy.maps.RegionNDMap`. + """ + return self.dot(other)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/geom.html b/docs/dev/_modules/gammapy/maps/geom.html new file mode 100644 index 00000000000..d41a6662572 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/geom.html @@ -0,0 +1,1272 @@ + + + + + + + + + + gammapy.maps.geom — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.geom

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import copy
+import html
+import inspect
+import logging
+import numpy as np
+from astropy import units as u
+from astropy.io import fits
+from .io import find_bands_hdu, find_hdu
+from .utils import INVALID_INDEX
+
+__all__ = ["Geom"]
+
+log = logging.getLogger(__name__)
+
+
+def get_shape(param):
+    if param is None:
+        return tuple()
+
+    if not isinstance(param, tuple):
+        param = [param]
+
+    return max([np.array(p, ndmin=1).shape for p in param])
+
+
+def pix_tuple_to_idx(pix):
+    """Convert a tuple of pixel coordinate arrays to a tuple of pixel indices.
+
+    Pixel coordinates are rounded to the closest integer value.
+
+    Parameters
+    ----------
+    pix : tuple
+        Tuple of pixel coordinates with one element for each dimension.
+
+    Returns
+    -------
+    idx : `~numpy.ndarray`
+        Array of pixel indices.
+    """
+    idx = []
+    for p in pix:
+        p = np.array(p, ndmin=1)
+        if np.issubdtype(p.dtype, np.integer):
+            idx += [p]
+        else:
+            with np.errstate(invalid="ignore"):
+                p_idx = np.floor(p + 0.5).astype(int)
+            p_idx[~np.isfinite(p)] = INVALID_INDEX.int
+            idx += [p_idx]
+
+    return tuple(idx)
+
+
+
+[docs] +class Geom(abc.ABC): + """Map geometry base class. + + See also: `~gammapy.maps.WcsGeom` and `~gammapy.maps.HpxGeom`. + """ + + # workaround for the lru_cache pickle issue + # see e.g. https://github.com/cloudpipe/cloudpickle/issues/178 + def __getstate__(self): + state = self.__dict__.copy() + for key, value in state.items(): + func = getattr(value, "__wrapped__", None) + if func is not None: + state[key] = func + return state + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + @abc.abstractmethod + def data_shape(self): + """Shape of the Numpy data array matching this geometry.""" + pass + +
+[docs] + def data_nbytes(self, dtype="float32"): + """Estimate memory usage in megabytes of the Numpy data array + matching this geometry depending on the given type. + + Parameters + ---------- + dtype : str, optional + The desired data-type for the array. Default is "float32". + + Returns + ------- + memory : `~astropy.units.Quantity` + Estimated memory usage in megabytes (MB). + """ + return (np.empty(self.data_shape, dtype).nbytes * u.byte).to("MB")
+ + + @property + @abc.abstractmethod + def is_allsky(self): + pass + + @property + @abc.abstractmethod + def center_coord(self): + pass + + @property + @abc.abstractmethod + def center_pix(self): + pass + + @property + @abc.abstractmethod + def center_skydir(self): + pass + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, hdu=None, hdu_bands=None): + """Load a geometry object from a FITS HDUList. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + HDU list containing HDUs for map data and bands. + hdu : str or int, optional + Name or index of the HDU with the map data. Default is None. + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. If not + defined this will be inferred from the FITS header of the + map HDU. Default is None. + + Returns + ------- + geom : `~Geom` + Geometry object. + """ + if hdu is None: + hdu = find_hdu(hdulist) + else: + hdu = hdulist[hdu] + + if hdu_bands is None: + hdu_bands = find_bands_hdu(hdulist, hdu) + + if hdu_bands is not None: + hdu_bands = hdulist[hdu_bands] + + return cls.from_header(hdu.header, hdu_bands)
+ + +
+[docs] + def to_bands_hdu(self, hdu_bands=None, format="gadf"): + table_hdu = self.axes.to_table_hdu(format=format, hdu_bands=hdu_bands) + cols = table_hdu.columns.columns + cols.extend(self._make_bands_cols()) + return fits.BinTableHDU.from_columns( + cols, header=table_hdu.header, name=table_hdu.name + )
+ + + @abc.abstractmethod + def _make_bands_cols(self): + pass + +
+[docs] + @abc.abstractmethod + def get_idx(self, idx=None, local=False, flat=False): + """Get tuple of pixel indices for this geometry. + + Returns all pixels in the geometry by default. Pixel indices + for a single image plane can be accessed by setting ``idx`` + to the index tuple of a plane. + + Parameters + ---------- + idx : tuple, optional + A tuple of indices with one index for each non-spatial + dimension. If defined only pixels for the image plane with + this index will be returned. If none then all pixels + will be returned. Default is None. + local : bool, optional + Flag to return local or global pixel indices. Local + indices run from 0 to the number of pixels in a given + image plane. Default is False. + flat : bool, optional + Return a flattened array containing only indices for + pixels contained in the geometry. Default is False. + + Returns + ------- + idx : tuple + Tuple of pixel index vectors with one vector for each + dimension. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def get_coord(self, idx=None, flat=False): + """Get the coordinate array for this geometry. + + Returns a coordinate array with the same shape as the data + array. Pixels outside the geometry are set to NaN. + Coordinates for a single image plane can be accessed by + setting ``idx`` to the index tuple of a plane. + + Parameters + ---------- + idx : tuple, optional + A tuple of indices with one index for each non-spatial + dimension. If defined only coordinates for the image + plane with this index will be returned. If none then + coordinates for all pixels will be returned. Default is None. + flat : bool, optional + Return a flattened array containing only coordinates for + pixels contained in the geometry. Default is False. + + Returns + ------- + coords : tuple + Tuple of coordinate vectors with one vector for each + dimension. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def coord_to_pix(self, coords): + """Convert map coordinates to pixel coordinates. + + Parameters + ---------- + coords : tuple + Coordinate values in each dimension of the map. This can + either be a tuple of numpy arrays or a MapCoord object. + If passed as a tuple then the ordering should be + (longitude, latitude, c_0, ..., c_N) where c_i is the + coordinate vector for axis i. + + Returns + ------- + pix : tuple + Tuple of pixel coordinates in image and band dimensions. + """ + pass
+ + +
+[docs] + def coord_to_idx(self, coords, clip=False): + """Convert map coordinates to pixel indices. + + Parameters + ---------- + coords : tuple or `~MapCoord` + Coordinate values in each dimension of the map. This can + either be a tuple of numpy arrays or a MapCoord object. + If passed as a tuple then the ordering should be + (longitude, latitude, c_0, ..., c_N) where c_i is the + coordinate vector for axis i. + clip : bool + Choose whether to clip indices to the valid range of the + geometry. If False then indices for coordinates outside + the geometry range will be set -1. Default is False. + + Returns + ------- + pix : tuple + Tuple of pixel indices in image and band dimensions. + Elements set to -1 correspond to coordinates outside the + map. + """ + pix = self.coord_to_pix(coords) + return self.pix_to_idx(pix, clip=clip)
+ + +
+[docs] + @abc.abstractmethod + def pix_to_coord(self, pix): + """Convert pixel coordinates to map coordinates. + + Parameters + ---------- + pix : tuple + Tuple of pixel coordinates. + + Returns + ------- + coords : tuple + Tuple of map coordinates. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def pix_to_idx(self, pix, clip=False): + """Convert pixel coordinates to pixel indices. + + Returns -1 for pixel coordinates that lie outside the map. + + Parameters + ---------- + pix : tuple + Tuple of pixel coordinates. + clip : bool + Choose whether to clip indices to the valid range of the + geometry. If False then indices for coordinates outside + the geometry range will be set -1. Default is False. + + Returns + ------- + idx : tuple + Tuple of pixel indices. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def contains(self, coords): + """Check if a given map coordinate is contained in the geometry. + + Parameters + ---------- + coords : tuple or `~gammapy.maps.MapCoord` + Tuple of map coordinates. + + Returns + ------- + containment : `~numpy.ndarray` + Bool array. + """ + pass
+ + +
+[docs] + def contains_pix(self, pix): + """Check if a given pixel coordinate is contained in the geometry. + + Parameters + ---------- + pix : tuple + Tuple of pixel coordinates. + + Returns + ------- + containment : `~numpy.ndarray` + Bool array. + """ + idx = self.pix_to_idx(pix) + return np.all(np.stack([t != INVALID_INDEX.int for t in idx]), axis=0)
+ + +
+[docs] + def slice_by_idx(self, slices): + """Create a new geometry by slicing the non-spatial axes. + + Parameters + ---------- + slices : dict + Dictionary of axes names and integers or `slice` object pairs. Contains one + element for each non-spatial dimension. For integer indexing the + corresponding axes is dropped from the map. Axes not specified in the + dict are kept unchanged. + + Returns + ------- + geom : `~Geom` + Sliced geometry. + + Examples + -------- + >>> from gammapy.maps import MapAxis, WcsGeom + >>> import astropy.units as u + >>> energy_axis = MapAxis.from_energy_bounds(1*u.TeV, 3*u.TeV, 6) + >>> geom = WcsGeom.create(skydir=(83.63, 22.01), axes=[energy_axis], width=5, binsz=0.02) + >>> slices = {"energy": slice(0, 2)} + >>> sliced_geom = geom.slice_by_idx(slices) + """ + axes = self.axes.slice_by_idx(slices) + return self._init_copy(axes=axes)
+ + +
+[docs] + def rename_axes(self, names, new_names): + """Rename axes contained in the geometry. + + Parameters + ---------- + names : list or str + Names of the axes. + new_names : list or str + New names of the axes. The list must be of same length than `names`. + + Returns + ------- + geom : `~Geom` + Renamed geometry. + """ + axes = self.axes.rename_axes(names=names, new_names=new_names) + return self._init_copy(axes=axes)
+ + + @property + def as_energy_true(self): + """If the geom contains an axis named 'energy' rename it to 'energy_true'.""" + return self.rename_axes(names="energy", new_names="energy_true") + + @property + def has_energy_axis(self): + """Whether geom has an energy axis (either 'energy' or 'energy_true').""" + return ("energy" in self.axes.names) ^ ("energy_true" in self.axes.names) + +
+[docs] + @abc.abstractmethod + def to_image(self): + """Create a 2D image geometry (drop non-spatial dimensions). + + Returns + ------- + geom : `~Geom` + Image geometry. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def to_cube(self, axes): + """Append non-spatial axes to create a higher-dimensional geometry. + + This will result in a new geometry with + N+M dimensions where N is the number of current dimensions and + M is the number of axes in the list. + + Parameters + ---------- + axes : list + Axes that will be appended to this geometry. + + Returns + ------- + geom : `~Geom` + Map geometry. + """ + pass
+ + +
+[docs] + def squash(self, axis_name): + """Squash geom axis. + + Parameters + ---------- + axis_name : str + Axis to squash. + + Returns + ------- + geom : `Geom` + Geom with squashed axis. + """ + axes = self.axes.squash(axis_name=axis_name) + return self.to_image().to_cube(axes=axes)
+ + +
+[docs] + def drop(self, axis_name): + """Drop an axis from the geom. + + Parameters + ---------- + axis_name : str + Name of the axis to remove. + + Returns + ------- + geom : `Geom` + New geom with the axis removed. + """ + axes = self.axes.drop(axis_name=axis_name) + return self.to_image().to_cube(axes=axes)
+ + +
+[docs] + def pad(self, pad_width, axis_name): + """ + Pad the geometry at the edges. + + Parameters + ---------- + pad_width : {sequence, array_like, int} + Number of values padded to the edges of each axis. + axis_name : str + Name of the axis to pad. + + Returns + ------- + geom : `~Geom` + Padded geometry. + """ + if axis_name is None: + return self._pad_spatial(pad_width) + else: + axes = self.axes.pad(axis_name=axis_name, pad_width=pad_width) + return self.to_image().to_cube(axes)
+ + + @abc.abstractmethod + def _pad_spatial(self, pad_width): + pass + +
+[docs] + @abc.abstractmethod + def crop(self, crop_width): + """ + Crop the geometry at the edges. + + Parameters + ---------- + crop_width : {sequence, array_like, int} + Number of values cropped from the edges of each axis. + + Returns + ------- + geom : `~Geom` + Cropped geometry. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def downsample(self, factor, axis_name): + """Downsample the spatial dimension of the geometry by a given factor. + + Parameters + ---------- + factor : int + Downsampling factor. + axis_name : str + Axis to downsample. + + Returns + ------- + geom : `~Geom` + Downsampled geometry. + + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def upsample(self, factor, axis_name=None): + """Upsample the spatial dimension of the geometry by a given factor. + + Parameters + ---------- + factor : int + Upsampling factor. + axis_name : str + Axis to upsample. + + Returns + ------- + geom : `~Geom` + Upsampled geometry. + + """ + pass
+ + +
+[docs] + def resample_axis(self, axis): + """Resample geom to a new axis binning. + + This method groups the existing bins into a new binning. + + Parameters + ---------- + axis : `MapAxis` + New map axis. + + Returns + ------- + map : `Geom` + Geom with resampled axis. + """ + axes = self.axes.resample(axis=axis) + return self._init_copy(axes=axes)
+ + +
+[docs] + def replace_axis(self, axis): + """Replace axis with a new one. + + Parameters + ---------- + axis : `MapAxis` + New map axis. + + Returns + ------- + map : `Geom` + Geom with replaced axis. + """ + axes = self.axes.replace(axis=axis) + return self._init_copy(axes=axes)
+ + +
+[docs] + @abc.abstractmethod + def solid_angle(self): + """Solid angle as a `~astropy.units.Quantity` object (in ``sr``).""" + pass
+ + + @property + def is_image(self): + """Whether the geom is an image without extra dimensions.""" + if self.axes is None: + return True + return len(self.axes) == 0 + + @property + def is_flat(self): + """Whether the geom non-spatial axes have length 1, equivalent to an image.""" + if self.is_image: + return True + else: + valid = True + for axis in self.axes: + valid = valid and (axis.nbin == 1) + return valid + + def _init_copy(self, **kwargs): + """Init map geom instance by copying missing init arguments from self.""" + argnames = inspect.getfullargspec(self.__init__).args + argnames.remove("self") + + for arg in argnames: + value = getattr(self, "_" + arg) + if arg not in kwargs: + kwargs[arg] = copy.deepcopy(value) + + return self.__class__(**kwargs) + +
+[docs] + def copy(self, **kwargs): + """Copy and overwrite given attributes. + + Parameters + ---------- + **kwargs : dict + Keyword arguments to overwrite in the map geometry constructor. + + Returns + ------- + copy : `Geom` + Copied map geometry. + """ + return self._init_copy(**kwargs)
+ + +
+[docs] + def energy_mask(self, energy_min=None, energy_max=None, round_to_edge=False): + """Create a mask for a given energy range. + + The energy bin must be fully contained to be included in the mask. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Energy range. + + Returns + ------- + mask : `~gammapy.maps.Map` + Map containing the energy mask. The geometry of the map + is the same as the geometry of the instance which called this method. + """ + from . import Map + + # get energy axes and values + energy_axis = self.axes["energy"] + + if round_to_edge: + energy_min, energy_max = energy_axis.round([energy_min, energy_max]) + + # TODO: make this more general + shape = (-1, 1) if self.is_hpx else (-1, 1, 1) + energy_edges = energy_axis.edges.reshape(shape) + + # set default values + energy_min = energy_min if energy_min is not None else energy_edges[0] + energy_max = energy_max if energy_max is not None else energy_edges[-1] + + mask = (energy_edges[:-1] >= energy_min) & (energy_edges[1:] <= energy_max) + data = np.broadcast_to(mask, shape=self.data_shape) + return Map.from_geom(geom=self, data=data, dtype=data.dtype)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/hpx/core.html b/docs/dev/_modules/gammapy/maps/hpx/core.html new file mode 100644 index 00000000000..878bd655eca --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/hpx/core.html @@ -0,0 +1,889 @@ + + + + + + + + + + gammapy.maps.hpx.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.hpx.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import json
+import numpy as np
+import astropy.units as u
+from astropy.io import fits
+from ..core import Map
+from ..io import find_bands_hdu, find_bintable_hdu
+from .geom import HpxGeom
+from .io import HpxConv
+
+__all__ = ["HpxMap"]
+
+
+
+[docs] +class HpxMap(Map): + """Base class for HEALPIX map classes. + + Parameters + ---------- + geom : `~gammapy.maps.HpxGeom` + HEALPix geometry object. + data : `~numpy.ndarray` + Data array. + meta : dict + Dictionary to store metadata. + unit : `~astropy.units.Unit` + The map unit. + """ + +
+[docs] + @classmethod + def create( + cls, + nside=None, + binsz=None, + nest=True, + map_type="hpx", + frame="icrs", + data=None, + skydir=None, + width=None, + dtype="float32", + region=None, + axes=None, + meta=None, + unit="", + ): + """Factory method to create an empty HEALPix map. + + Parameters + ---------- + nside : int or `~numpy.ndarray`, optional + HEALPix NSIDE parameter. This parameter sets the size of + the spatial pixels in the map. Default is None. + binsz : float or `~numpy.ndarray`, optional + Approximate pixel size in degrees. An NSIDE will be + chosen that corresponds to a pixel size closest to this + value. This option is superseded by ``nside``. + Default is None. + nest : bool, optional + Indexing scheme. If True, "NESTED" scheme. If False, "RING" scheme. + Default is True. + map_type : {'hpx', 'hpx-sparse'}, optional + Map type. Selects the class that will be used to + instantiate the map. Default is "hpx". + frame : {"icrs", "galactic"} + Coordinate system, either Galactic ("galactic") or Equatorial ("icrs"). + Default is "icrs". + data : `~numpy.ndarray`, optional + Data array. Default is None. + skydir : tuple or `~astropy.coordinates.SkyCoord`, optional + Sky position of map center. Can be either a SkyCoord + object or a tuple of longitude and latitude in deg in the + coordinate system of the map. Default is None. + width : float, optional + Diameter of the map in degrees. If None then an all-sky + geometry will be created. Default is None. + dtype : str, optional + Data type. Default is "float32". + region : str, optional + HEALPix region string. Default is None. + axes : list, optional + List of `~MapAxis` objects for each non-spatial dimension. + Default is None. + meta : `dict`, optional + Dictionary to store the metadata. Default is None. + unit : str or `~astropy.units.Unit`, optional + The map unit. Default is "". + + Returns + ------- + map : `~HpxMap` + A HEALPix map object. + """ + from .ndmap import HpxNDMap + + hpx = HpxGeom.create( + nside=nside, + binsz=binsz, + nest=nest, + frame=frame, + region=region, + axes=axes, + skydir=skydir, + width=width, + ) + if cls.__name__ == "HpxNDMap": + return HpxNDMap(hpx, dtype=dtype, meta=meta, unit=unit) + elif map_type == "hpx": + return HpxNDMap(hpx, dtype=dtype, meta=meta, unit=unit) + else: + raise ValueError(f"Unrecognized map type: {map_type!r}")
+ + +
+[docs] + @classmethod + def from_hdulist( + cls, hdu_list, hdu=None, hdu_bands=None, format=None, colname=None + ): + """Make a HpxMap object from a FITS HDUList. + + Parameters + ---------- + hdu_list : `~astropy.io.fits.HDUList` + HDU list containing HDUs for map data and bands. + hdu : str, optional + Name or index of the HDU with the map data. If None then + the method will try to load map data from the first + BinTableHDU in the file. + Default is None. + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. + Default is None. + format : str, optional + FITS format convention. By default, files will be written + to the gamma-astro-data-formats (GADF) format. This + option can be used to write files that are compliant with + format conventions required by specific software (e.g. the + Fermi Science Tools). The following formats are supported: + + - "gadf" (default) + - "fgst-ccube" + - "fgst-ltcube" + - "fgst-bexpcube" + - "fgst-srcmap" + - "fgst-template" + - "fgst-srcmap-sparse" + - "galprop" + - "galprop2" + + Returns + ------- + hpx_map : `HpxMap` + Map object. + """ + if hdu is None: + hdu_out = find_bintable_hdu(hdu_list) + else: + hdu_out = hdu_list[hdu] + + if hdu_bands is None: + hdu_bands = find_bands_hdu(hdu_list, hdu_out) + + hdu_bands_out = None + if hdu_bands is not None: + hdu_bands_out = hdu_list[hdu_bands] + + if format is None: + format = HpxConv.identify_hpx_format(hdu_out.header) + + hpx_map = cls.from_hdu(hdu_out, hdu_bands_out, format=format, colname=colname) + + # exposure maps have an additional GTI hdu + if format == "fgst-bexpcube" and "GTI" in hdu_list: + hpx_map._unit = u.Unit("cm2 s") + + return hpx_map
+ + +
+[docs] + def to_hdulist(self, hdu="SKYMAP", hdu_bands=None, sparse=False, format="gadf"): + """Convert to `~astropy.io.fits.HDUList`. + + Parameters + ---------- + hdu : str, optional + The HDU extension name. Default is "SKYMAP". + hdu_bands : str, optional + The HDU extension name for BANDS table. + Default is None. + sparse : bool, optional + Set INDXSCHM to SPARSE and sparsify the map by only + writing pixels with non-zero amplitude. + Default is False. + format : str, optional + FITS format convention. By default, files will be written + to the gamma-astro-data-formats (GADF) format. This + option can be used to write files that are compliant with + format conventions required by specific software (e.g. the + Fermi Science Tools). The following formats are supported: + + - "gadf" (default) + - "fgst-ccube" + - "fgst-ltcube" + - "fgst-bexpcube" + - "fgst-srcmap" + - "fgst-template" + - "fgst-srcmap-sparse" + - "galprop" + - "galprop2" + + Returns + ------- + hdu_list : `~astropy.io.fits.HDUList` + The FITS HDUList. + """ + if hdu_bands is None: + hdu_bands = f"{hdu.upper()}_BANDS" + + if self.geom.axes: + hdu_bands_out = self.geom.to_bands_hdu(hdu_bands=hdu_bands, format=format) + hdu_bands = hdu_bands_out.name + else: + hdu_bands_out = None + hdu_bands = None + + hdu_out = self.to_hdu( + hdu=hdu, hdu_bands=hdu_bands, sparse=sparse, format=format + ) + hdu_out.header["META"] = json.dumps(self.meta) + hdu_out.header["BUNIT"] = self.unit.to_string("fits") + + hdu_list = fits.HDUList([fits.PrimaryHDU(), hdu_out]) + + if self.geom.axes: + hdu_list.append(hdu_bands_out) + + return hdu_list
+ + +
+[docs] + @abc.abstractmethod + def to_wcs( + self, + sum_bands=False, + normalize=True, + proj="AIT", + oversample=2, + width_pix=None, + hpx2wcs=None, + ): + """Make a WCS object and convert HEALPix data into WCS projection. + + Parameters + ---------- + sum_bands : bool, optional + Sum over non-spatial axes before reprojecting. If False + then the WCS map will have the same dimensionality as the + HEALPix one. Default is False. + normalize : bool, optional + Preserve integral by splitting HEALPix values between bins. + Default is True. + proj : str, optional + WCS-projection. Default is "AIT". + oversample : float, optional + Oversampling factor for WCS map. This will be the + approximate ratio of the width of a HEALPix pixel to a WCS + pixel. If this parameter is None then the width will be + set from ``width_pix``. Default is 2. + width_pix : int, optional + Width of the WCS geometry in pixels. The pixel size will + be set to the number of pixels satisfying ``oversample`` + or ``width_pix`` whichever is smaller. If this parameter + is None then the width will be set from ``oversample``. + Default is None. + hpx2wcs : `~HpxToWcsMapping`, optional + Set the HEALPix to WCS mapping object that will be used to + generate the WCS map. If None then a new mapping will be + generated based on ``proj`` and ``oversample`` arguments. + Default is None. + + Returns + ------- + map_out : `~gammapy.maps.WcsMap` + WCS map object. + """ + pass
+ + +
+[docs] + @abc.abstractmethod + def to_swapped(self): + """Return a new map with the opposite scheme (ring or nested). + + Returns + ------- + map : `~HpxMap` + Map object. + """ + pass
+ + +
+[docs] + def to_hdu(self, hdu=None, hdu_bands=None, sparse=False, format=None): + """Make a FITS HDU with input data. + + Parameters + ---------- + hdu : str, optional + The HDU extension name. Default is None. + hdu_bands : str, optional + The HDU extension name for BANDS table. Default is None. + sparse : bool, optional + Set INDXSCHM to SPARSE and sparsify the map by only + writing pixels with non-zero amplitude. + Default is False. + format : {None, 'fgst-ccube', 'fgst-template', 'gadf'} + FITS format convention. If None this will be set to the + default convention of the map. Default is None. + + Returns + ------- + hdu_out : `~astropy.io.fits.BinTableHDU` or `~astropy.io.fits.ImageHDU` + Output HDU containing map data. + """ + hpxconv = HpxConv.create(format) + hduname = hpxconv.hduname if hdu is None else hdu + hduname_bands = hpxconv.bands_hdu if hdu_bands is None else hdu_bands + + header = self.geom.to_header(format=format) + + if self.geom.axes: + header["BANDSHDU"] = hduname_bands + + if sparse: + header["INDXSCHM"] = "SPARSE" + + cols = [] + if header["INDXSCHM"] == "EXPLICIT": + array = self.geom._ipix + cols.append(fits.Column("PIX", "J", array=array)) + elif header["INDXSCHM"] == "LOCAL": + array = np.arange(self.data.shape[-1]) + cols.append(fits.Column("PIX", "J", array=array)) + + cols += self._make_cols(header, hpxconv) + return fits.BinTableHDU.from_columns(cols, header=header, name=hduname)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/hpx/geom.html b/docs/dev/_modules/gammapy/maps/hpx/geom.html new file mode 100644 index 00000000000..03e6253fd03 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/hpx/geom.html @@ -0,0 +1,2063 @@ + + + + + + + + + + gammapy.maps.hpx.geom — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.hpx.geom

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Utilities for dealing with HEALPix projections and mappings."""
+import copy
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import SkyCoord
+from astropy.io import fits
+from astropy.units import Quantity
+from gammapy.utils.array import is_power2
+from ..axes import MapAxes
+from ..coord import MapCoord, skycoord_to_lonlat
+from ..geom import Geom, pix_tuple_to_idx
+from ..utils import INVALID_INDEX, coordsys_to_frame, frame_to_coordsys
+from .io import HPX_FITS_CONVENTIONS, HpxConv
+from .utils import (
+    coords_to_vec,
+    get_nside_from_pix_size,
+    get_pix_size_from_nside,
+    get_subpixels,
+    get_superpixels,
+    match_hpx_pix,
+    nside_to_order,
+    parse_hpxregion,
+    ravel_hpx_index,
+    unravel_hpx_index,
+)
+
+# Not sure if we should expose this in the docs or not:
+# HPX_FITS_CONVENTIONS, HpxConv
+__all__ = ["HpxGeom"]
+
+
+
+[docs] +class HpxGeom(Geom): + """Geometry class for HEALPix maps. + + This class performs mapping between partial-sky indices (pixel + number within a HEALPix region) and all-sky indices (pixel number + within an all-sky HEALPix map). Multi-band HEALPix geometries use + a global indexing scheme that assigns a unique pixel number based + on the all-sky index and band index. In the single-band case the + global index is the same as the HEALPix index. + + By default, the constructor will return an all-sky map. + Partial-sky maps can be defined with the ``region`` argument. + + Parameters + ---------- + nside : `~numpy.ndarray` + HEALPix NSIDE parameter, the total number of pixels is + 12*nside*nside. For multi-dimensional maps one can pass + either a single ``nside`` value or a vector of ``nside`` values + defining the pixel size for each image plane. If ``nside`` is not + a scalar then its dimensionality should match that of the + non-spatial axes. If nest is True, ``nside`` must be a power of 2, + less than 2**30. + nest : bool + Indexing scheme. If True, "NESTED" scheme. If False, "RING" scheme. + frame : {"icrs", "galactic"} + Coordinate system. Default is "icrs". + region : str or tuple + Spatial geometry for partial-sky maps. If None, the map will + encompass the whole sky. String input will be parsed + according to HPX_REG header keyword conventions. Tuple + input can be used to define an explicit list of pixels + encompassed by the geometry. + axes : list + Axes for non-spatial dimensions. + """ + + is_hpx = True + is_region = False + + def __init__(self, nside, nest=True, frame="icrs", region=None, axes=None): + from healpy.pixelfunc import check_nside + + check_nside(nside, nest=nest) + + self._nside = np.array(nside, ndmin=1) + self._axes = MapAxes.from_default(axes, n_spatial_axes=1) + + if self.nside.size > 1 and self.nside.shape != self.shape_axes: + raise ValueError( + "Wrong dimensionality for nside. nside must " + "be a scalar or have a dimensionality consistent " + "with the axes argument." + ) + + self._frame = frame + self._nest = nest + self._ipix = None + self._region = region + self._create_lookup(region) + self._npix = self._npix * np.ones(self.shape_axes, dtype=int) + + def _create_lookup(self, region): + """Create local-to-global pixel lookup table.""" + if isinstance(region, str): + ipix = [ + self.get_index_list(nside, self._nest, region) + for nside in self._nside.flat + ] + + self._ipix = [ + ravel_hpx_index((p, i * np.ones_like(p)), np.ravel(self.npix_max)) + for i, p in enumerate(ipix) + ] + self._region = region + self._indxschm = "EXPLICIT" + self._npix = np.array([len(t) for t in self._ipix]) + if self.nside.ndim > 1: + self._npix = self._npix.reshape(self.nside.shape) + self._ipix = np.concatenate(self._ipix) + + elif isinstance(region, tuple): + region = [np.asarray(t) for t in region] + m = np.any(np.stack([t >= 0 for t in region]), axis=0) + region = [t[m] for t in region] + + self._ipix = ravel_hpx_index(region, self.npix_max) + self._ipix = np.unique(self._ipix) + region = unravel_hpx_index(self._ipix, self.npix_max) + self._region = "explicit" + self._indxschm = "EXPLICIT" + if len(region) == 1: + self._npix = np.array([len(region[0])]) + else: + self._npix = np.zeros(self.shape_axes, dtype=int) + idx = np.ravel_multi_index(region[1:], self.shape_axes) + cnt = np.unique(idx, return_counts=True) + self._npix.flat[cnt[0]] = cnt[1] + + elif region is None: + self._region = None + self._indxschm = "IMPLICIT" + self._npix = self.npix_max + + else: + raise ValueError(f"Invalid region string: {region!r}") + +
+[docs] + def local_to_global(self, idx_local): + """Compute a global index (all-sky) from a local (partial-sky) index. + + Parameters + ---------- + idx_local : tuple + A tuple of pixel indices with local HEALPix pixel indices. + + Returns + ------- + idx_global : tuple + A tuple of pixel index vectors with global HEALPix pixel indices. + """ + if self._ipix is None: + return idx_local + + if self.nside.size > 1: + idx = ravel_hpx_index(idx_local, self._npix) + else: + idx_tmp = tuple( + [idx_local[0]] + [np.zeros(t.shape, dtype=int) for t in idx_local[1:]] + ) + idx = ravel_hpx_index(idx_tmp, self._npix) + + idx_global = unravel_hpx_index(self._ipix[idx], self.npix_max) + return idx_global[:1] + tuple(idx_local[1:])
+ + +
+[docs] + def global_to_local(self, idx_global, ravel=False): + """Compute global (all-sky) index from a local (partial-sky) index. + + Parameters + ---------- + idx_global : tuple + A tuple of pixel indices with global HEALPix pixel indices. + ravel : bool, optional + Return a raveled index. Default is False. + + Returns + ------- + idx_local : tuple + A tuple of pixel indices with local HEALPix pixel indices. + """ + if ( + isinstance(idx_global, int) + or (isinstance(idx_global, tuple) and isinstance(idx_global[0], int)) + or isinstance(idx_global, np.ndarray) + ): + idx_global = unravel_hpx_index(np.array(idx_global, ndmin=1), self.npix_max) + + if self.nside.size == 1: + idx = np.array(idx_global[0], ndmin=1) + else: + idx = ravel_hpx_index(idx_global, self.npix_max) + + if self._ipix is not None: + retval = np.full(idx.size, -1, "i") + m = np.isin(idx.flat, self._ipix) + retval[m] = np.searchsorted(self._ipix, idx.flat[m]) + retval = retval.reshape(idx.shape) + else: + retval = idx + + if self.nside.size == 1: + idx_local = tuple([retval] + list(idx_global[1:])) + else: + idx_local = unravel_hpx_index(retval, self._npix) + + m = np.any(np.stack([t == INVALID_INDEX.int for t in idx_local]), axis=0) + for i, t in enumerate(idx_local): + idx_local[i][m] = INVALID_INDEX.int + + if not ravel: + return idx_local + else: + return ravel_hpx_index(idx_local, self.npix)
+ + +
+[docs] + def cutout(self, position, width, **kwargs): + """Create a cutout around a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : `~astropy.coordinates.Angle` or `~astropy.units.Quantity` + Diameter of the circular cutout region. + + Returns + ------- + cutout : `~gammapy.maps.WcsNDMap` + Cutout map. + """ + if not self.is_regular: + raise ValueError("Can only do a cutout from a regular map.") + + width = u.Quantity(width, "deg").value + return self.create( + nside=self.nside, + nest=self.nest, + width=width, + skydir=position, + frame=self.frame, + axes=self.axes, + )
+ + +
+[docs] + def coord_to_pix(self, coords): + import healpy as hp + + coords = MapCoord.create( + coords, frame=self.frame, axis_names=self.axes.names + ).broadcasted + theta, phi = coords.theta, coords.phi + + if self.axes: + idxs = self.axes.coord_to_idx(coords, clip=True) + bins = self.axes.coord_to_pix(coords) + + # FIXME: Figure out how to handle coordinates out of + # bounds of non-spatial dimensions + if self.nside.size > 1: + nside = self.nside[tuple(idxs)] + else: + nside = self.nside + + m = ~np.isfinite(theta) + theta[m] = 0.0 + phi[m] = 0.0 + pix = hp.ang2pix(nside, theta, phi, nest=self.nest) + pix = tuple([pix]) + bins + if np.any(m): + for p in pix: + p[m] = INVALID_INDEX.int + else: + pix = (hp.ang2pix(self.nside, theta, phi, nest=self.nest),) + + return pix
+ + +
+[docs] + def pix_to_coord(self, pix): + import healpy as hp + + if self.axes: + bins = [] + vals = [] + for i, ax in enumerate(self.axes): + bins += [pix[1 + i]] + vals += [ax.pix_to_coord(pix[1 + i])] + + idxs = pix_tuple_to_idx(bins) + + if self.nside.size > 1: + nside = self.nside[idxs] + else: + nside = self.nside + + ipix = np.round(pix[0]).astype(int) + m = ipix == INVALID_INDEX.int + ipix[m] = 0 + theta, phi = hp.pix2ang(nside, ipix, nest=self.nest) + coords = [np.degrees(phi), np.degrees(np.pi / 2.0 - theta)] + coords = tuple(coords + vals) + if np.any(m): + for c in coords: + c[m] = INVALID_INDEX.float + else: + ipix = np.round(pix[0]).astype(int) + theta, phi = hp.pix2ang(self.nside, ipix, nest=self.nest) + coords = (np.degrees(phi), np.degrees(np.pi / 2.0 - theta)) + + return coords
+ + +
+[docs] + def pix_to_idx(self, pix, clip=False): + # FIXME: Look for better method to clip HPX indices + idx = pix_tuple_to_idx(pix) + idx_local = self.global_to_local(idx) + for i, _ in enumerate(idx): + + if clip: + if i > 0: + np.clip(idx[i], 0, self.axes[i - 1].nbin - 1, out=idx[i]) + else: + np.clip(idx[i], 0, None, out=idx[i]) + else: + if i > 0: + mask = (idx[i] < 0) | (idx[i] >= self.axes[i - 1].nbin) + np.putmask(idx[i], mask, -1) + else: + mask = (idx_local[i] < 0) | (idx[i] < 0) + np.putmask(idx[i], mask, -1) + + return tuple(idx)
+ + + @property + def axes(self): + """List of non-spatial axes.""" + return self._axes + + @property + def axes_names(self): + """All axes names.""" + return ["skycoord"] + self.axes.names + + @property + def shape_axes(self): + """Shape of non-spatial axes.""" + return self.axes.shape + + @property + def data_shape(self): + """Shape of the `~numpy.ndarray` matching this geometry.""" + npix_shape = tuple([np.max(self.npix)]) + return (npix_shape + self.axes.shape)[::-1] + + @property + def data_shape_axes(self): + """Shape of data of the non-spatial axes and unit spatial axes.""" + return self.axes.shape[::-1] + (1,) + + @property + def ndim(self): + """Number of dimensions as an integer.""" + return len(self._axes) + 2 + + @property + def ordering(self): + """HEALPix ordering ('NESTED' or 'RING').""" + return "NESTED" if self.nest else "RING" + + @property + def nside(self): + """NSIDE in each band.""" + return self._nside + + @property + def order(self): + """The order in each band (``NSIDE = 2 ** ORDER``). + + Set to -1 for bands with NSIDE that is not a power of 2. + """ + return nside_to_order(self.nside) + + @property + def nest(self): + """Whether HEALPix order is nested as a boolean.""" + return self._nest + + @property + def npix(self): + """Number of pixels in each band. + + For partial-sky geometries this can + be less than the number of pixels for the band NSIDE. + """ + return self._npix + + @property + def npix_max(self): + """Maximum number of pixels.""" + maxpix = 12 * self.nside**2 + return maxpix * np.ones(self.shape_axes, dtype=int) + + @property + def frame(self): + return self._frame + + @property + def projection(self): + """Map projection.""" + return "HPX" + + @property + def region(self): + """Region string.""" + return self._region + + @property + def is_allsky(self): + """Flag for all-sky maps.""" + return self._region is None + + @property + def is_regular(self): + """Flag identifying whether this geometry is regular in non-spatial dimensions. + + False for multi-resolution or irregular geometries. + If True, all image planes have the same pixel geometry. + """ + if self.nside.size > 1 or self.region == "explicit": + return False + else: + return True + + @property + def center_coord(self): + """Map coordinates of the center of the geometry as a tuple.""" + lon, lat, frame = skycoord_to_lonlat(self.center_skydir) + return tuple([lon, lat]) + self.axes.center_coord + + @property + def center_pix(self): + """Pixel coordinates of the center of the geometry as a tuple.""" + return self.coord_to_pix(self.center_coord) + + @property + def center_skydir(self): + """Sky coordinate of the center of the geometry. + + Returns + ------- + center : `~astropy.coordinates.SkyCoord` + Center position. + """ + import healpy as hp + + if self.is_allsky: + lon, lat = 0.0, 0.0 + elif self.region == "explicit": + idx = unravel_hpx_index(self._ipix, self.npix_max) + nside = self._get_nside(idx) + vec = hp.pix2vec(nside, idx[0], nest=self.nest) + lon, lat = hp.vec2ang(np.mean(vec, axis=1), lonlat=True) + else: + tokens = parse_hpxregion(self.region) + if tokens[0] in ["DISK", "DISK_INC"]: + lon, lat = float(tokens[1]), float(tokens[2]) + elif tokens[0] == "HPX_PIXEL": + nside_pix = int(tokens[2]) + ipix_pix = int(tokens[3]) + if tokens[1] == "NESTED": + nest_pix = True + elif tokens[1] == "RING": + nest_pix = False + else: + raise ValueError(f"Invalid ordering scheme: {tokens[1]!r}") + theta, phi = hp.pix2ang(nside_pix, ipix_pix, nest_pix) + lon, lat = np.degrees(phi), np.degrees((np.pi / 2) - theta) + + return SkyCoord(lon, lat, frame=self.frame, unit="deg") + + @property + def pixel_scales(self): + self.angle_ = """Pixel scale. + + Returns + ------- + angle: `~astropy.coordinates.Angle` + """ + return get_pix_size_from_nside(self.nside) * u.deg + +
+[docs] + def interp_weights(self, coords, idxs=None): + """Get interpolation weights for given coordinates. + + Parameters + ---------- + coords : `MapCoord` or dict + Input coordinates. + idxs : `~numpy.ndarray`, optional + Indices for non-spatial axes. + Default is None. + + Returns + ------- + weights : `~numpy.ndarray` + Interpolation weights. + """ + import healpy as hp + + coords = MapCoord.create(coords, frame=self.frame).broadcasted + + if idxs is None: + idxs = self.coord_to_idx(coords, clip=True)[1:] + + theta, phi = coords.theta, coords.phi + + m = ~np.isfinite(theta) + theta[m] = 0 + phi[m] = 0 + + if not self.is_regular: + nside = self.nside[tuple(idxs)] + else: + nside = self.nside + + pix, wts = hp.get_interp_weights(nside, theta, phi, nest=self.nest) + wts[:, m] = 0 + pix[:, m] = INVALID_INDEX.int + + if not self.is_regular: + pix_local = [self.global_to_local([pix] + list(idxs))[0]] + else: + pix_local = [self.global_to_local(pix, ravel=True)] + + # If a pixel lies outside of the geometry set its index to the center pixel + m = pix_local[0] == INVALID_INDEX.int + if m.any(): + coords_ctr = [coords.lon, coords.lat] + coords_ctr += [ax.pix_to_coord(t) for ax, t in zip(self.axes, idxs)] + idx_ctr = self.coord_to_idx(coords_ctr) + idx_ctr = self.global_to_local(idx_ctr) + pix_local[0][m] = (idx_ctr[0] * np.ones(pix.shape, dtype=int))[m] + + pix_local += [np.broadcast_to(t, pix_local[0].shape) for t in idxs] + return pix_local, wts
+ + + @property + def ipix(self): + """HEALPix pixel and band indices for every pixel in the map.""" + return self.get_idx() + +
+[docs] + def is_aligned(self, other): + """Check if HEALPix geoms and extra axes are aligned. + + Parameters + ---------- + other : `HpxGeom` + Other geometry. + + Returns + ------- + aligned : bool + Whether geometries are aligned. + """ + for axis, otheraxis in zip(self.axes, other.axes): + if axis != otheraxis: + return False + + if not self.nside == other.nside: + return False + elif not self.frame == other.frame: + return False + elif not self.nest == other.nest: + return False + else: + return True
+ + +
+[docs] + def to_nside(self, nside): + """Upgrade or downgrade the resolution to a given NSIDE. + + Parameters + ---------- + nside : int + HEALPix NSIDE parameter. + + Returns + ------- + geom : `~HpxGeom` + A HEALPix geometry object. + """ + if not self.is_regular: + raise ValueError("Upgrade and degrade only implemented for standard maps") + + axes = copy.deepcopy(self.axes) + return self.__class__( + nside=nside, nest=self.nest, frame=self.frame, region=self.region, axes=axes + )
+ + +
+[docs] + def to_binsz(self, binsz): + """Change pixel size of the geometry. + + Parameters + ---------- + binsz : float or `~astropy.units.Quantity` + New pixel size. A float is assumed to be in degree. + + Returns + ------- + geom : `WcsGeom` + Geometry with new pixel size. + """ + binsz = u.Quantity(binsz, "deg").value + + if self.is_allsky: + return self.create( + binsz=binsz, + frame=self.frame, + axes=copy.deepcopy(self.axes), + ) + else: + return self.create( + skydir=self.center_skydir, + binsz=binsz, + width=self.width.to_value("deg"), + frame=self.frame, + axes=copy.deepcopy(self.axes), + )
+ + +
+[docs] + def separation(self, center): + """Compute sky separation with respect to a given center. + + Parameters + ---------- + center : `~astropy.coordinates.SkyCoord` + Center position. + + Returns + ------- + separation : `~astropy.coordinates.Angle` + Separation angle array (1D). + """ + coord = self.to_image().get_coord() + return center.separation(coord.skycoord)
+ + +
+[docs] + def to_swapped(self): + """Geometry copy with swapped ORDERING (NEST->RING or vice versa). + + Returns + ------- + geom : `~HpxGeom` + A HEALPix geometry object. + """ + axes = copy.deepcopy(self.axes) + return self.__class__( + self.nside, + not self.nest, + frame=self.frame, + region=self.region, + axes=axes, + )
+ + +
+[docs] + def to_image(self): + return self.__class__( + np.max(self.nside), self.nest, frame=self.frame, region=self.region + )
+ + +
+[docs] + def to_cube(self, axes): + axes = copy.deepcopy(self.axes) + axes + return self.__class__( + np.max(self.nside), + self.nest, + frame=self.frame, + region=self.region, + axes=axes, + )
+ + + def _get_neighbors(self, idx): + import healpy as hp + + nside = self._get_nside(idx) + idx_nb = (hp.get_all_neighbours(nside, idx[0], nest=self.nest),) + idx_nb += tuple([t[None, ...] * np.ones_like(idx_nb[0]) for t in idx[1:]]) + + return idx_nb + + def _pad_spatial(self, pad_width): + if self.is_allsky: + raise ValueError("Cannot pad an all-sky map.") + + idx = self.get_idx(flat=True) + idx_r = ravel_hpx_index(idx, self.npix_max) + + # TODO: Pre-filter indices to find those close to the edge + idx_nb = self._get_neighbors(idx) + idx_nb = ravel_hpx_index(idx_nb, self.npix_max) + + for _ in range(pad_width): + mask_edge = np.isin(idx_nb, idx_r, invert=True) + idx_edge = idx_nb[mask_edge] + idx_edge = np.unique(idx_edge) + idx_r = np.sort(np.concatenate((idx_r, idx_edge))) + idx_nb = unravel_hpx_index(idx_edge, self.npix_max) + idx_nb = self._get_neighbors(idx_nb) + idx_nb = ravel_hpx_index(idx_nb, self.npix_max) + + idx = unravel_hpx_index(idx_r, self.npix_max) + return self.__class__( + self.nside.copy(), + self.nest, + frame=self.frame, + region=idx, + axes=copy.deepcopy(self.axes), + ) + +
+[docs] + def crop(self, crop_width): + if self.is_allsky: + raise ValueError("Cannot crop an all-sky map.") + + idx = self.get_idx(flat=True) + idx_r = ravel_hpx_index(idx, self.npix_max) + + # TODO: Pre-filter indices to find those close to the edge + idx_nb = self._get_neighbors(idx) + idx_nb = ravel_hpx_index(idx_nb, self.npix_max) + + for _ in range(crop_width): + # Mask of pixels that have at least one neighbor not + # contained in the geometry + mask_edge = np.any(np.isin(idx_nb, idx_r, invert=True), axis=0) + idx_r = idx_r[~mask_edge] + idx_nb = idx_nb[:, ~mask_edge] + + idx = unravel_hpx_index(idx_r, self.npix_max) + return self.__class__( + self.nside.copy(), + self.nest, + frame=self.frame, + region=idx, + axes=copy.deepcopy(self.axes), + )
+ + +
+[docs] + def upsample(self, factor): + if not is_power2(factor): + raise ValueError("Upsample factor must be a power of 2.") + + if self.is_allsky: + return self.__class__( + self.nside * factor, + self.nest, + frame=self.frame, + region=self.region, + axes=copy.deepcopy(self.axes), + ) + + idx = list(self.get_idx(flat=True)) + nside = self._get_nside(idx) + + idx_new = get_subpixels(idx[0], nside, nside * factor, nest=self.nest) + for i in range(1, len(idx)): + idx[i] = idx[i][..., None] * np.ones(idx_new.shape, dtype=int) + + idx[0] = idx_new + return self.__class__( + self.nside * factor, + self.nest, + frame=self.frame, + region=tuple(idx), + axes=copy.deepcopy(self.axes), + )
+ + +
+[docs] + def downsample(self, factor, axis_name=None): + if not is_power2(factor): + raise ValueError("Downsample factor must be a power of 2.") + if axis_name is not None: + raise ValueError("Currently the only valid axis name is None.") + + if self.is_allsky: + return self.__class__( + self.nside // factor, + self.nest, + frame=self.frame, + region=self.region, + axes=copy.deepcopy(self.axes), + ) + + idx = list(self.get_idx(flat=True)) + nside = self._get_nside(idx) + idx_new = get_superpixels(idx[0], nside, nside // factor, nest=self.nest) + idx[0] = idx_new + return self.__class__( + self.nside // factor, + self.nest, + frame=self.frame, + region=tuple(idx), + axes=copy.deepcopy(self.axes), + )
+ + +
+[docs] + @classmethod + def create( + cls, + nside=None, + binsz=None, + nest=True, + frame="icrs", + region=None, + axes=None, + skydir=None, + width=None, + ): + """Create an HpxGeom object. + + Parameters + ---------- + nside : int or `~numpy.ndarray`, optional + HEALPix NSIDE parameter. This parameter sets the size of + the spatial pixels in the map. If nest is True, ``nside`` must be a + power of 2, less than 2**30. + Default is None. + binsz : float or `~numpy.ndarray`, optional + Approximate pixel size in degrees. An ``nside`` will be + chosen that corresponds to a pixel size closest to this + value. This option is superseded by ``nside``. + Default is None. + nest : bool, optional + Indexing scheme. If True, "NESTED" scheme. If False, "RING" scheme. + Default is True. + frame : {"icrs", "galactic"} + Coordinate system, either Galactic ("galactic") or Equatorial ("icrs"). + Default is "icrs". + region : str, optional + HEALPix region string. Allows for partial-sky maps. Default is None. + axes : list, optional + List of axes for non-spatial dimensions. Default is None. + skydir : tuple or `~astropy.coordinates.SkyCoord`, optional + Sky position of map center. Can be either a SkyCoord + object or a tuple of longitude and latitude in deg in the + coordinate system of the map. Default is None. + width : float, optional + Diameter of the map in degrees. If set the map will + encompass all pixels within a circular region centered on + ``skydir``. Default is None. + + Returns + ------- + geom : `~HpxGeom` + A HEALPix geometry object. + + Examples + -------- + >>> from gammapy.maps import HpxGeom, MapAxis + >>> axis = MapAxis.from_bounds(0,1,2) + >>> geom = HpxGeom.create(nside=16) # doctest: +SKIP + >>> geom = HpxGeom.create(binsz=0.1, width=10.0) # doctest: +SKIP + >>> geom = HpxGeom.create(nside=64, width=10.0, axes=[axis]) # doctest: +SKIP + >>> geom = HpxGeom.create(nside=[32,64], width=10.0, axes=[axis]) # doctest: +SKIP + """ + if nside is None and binsz is None: + raise ValueError("Either nside or binsz must be defined.") + + if nside is None and binsz is not None: + nside = get_nside_from_pix_size(binsz) + + if skydir is None: + lon, lat = (0.0, 0.0) + elif isinstance(skydir, tuple): + lon, lat = skydir + elif isinstance(skydir, SkyCoord): + lon, lat, frame = skycoord_to_lonlat(skydir, frame=frame) + else: + raise ValueError(f"Invalid type for skydir: {type(skydir)!r}") + + if region is None and width is not None: + region = f"DISK({lon},{lat},{width/2})" + + return cls(nside, nest=nest, frame=frame, region=region, axes=axes)
+ + +
+[docs] + @classmethod + def from_header(cls, header, hdu_bands=None, format=None): + """Create an HPX object from a FITS header. + + Parameters + ---------- + header : `~astropy.io.fits.Header` + The FITS header. + hdu_bands : `~astropy.io.fits.BinTableHDU`, optional + The BANDS table HDU. Default is None. + format : str, optional + FITS convention. Default is None. + If None the format is guessed. The following + formats are supported: + + - "gadf" + - "fgst-ccube" + - "fgst-ltcube" + - "fgst-bexpcube" + - "fgst-srcmap" + - "fgst-template" + - "fgst-srcmap-sparse" + - "galprop" + - "galprop2" + - "healpy" + + Returns + ------- + hpx : `~HpxGeom` + HEALPix geometry. + """ + if format is None: + format = HpxConv.identify_hpx_format(header) + + conv = HPX_FITS_CONVENTIONS[format] + + axes = MapAxes.from_table_hdu(hdu_bands, format=format) + + if header["PIXTYPE"] != "HEALPIX": + raise ValueError( + f"Invalid header PIXTYPE: {header['PIXTYPE']} (must be HEALPIX)" + ) + + if header["ORDERING"] == "RING": + nest = False + elif header["ORDERING"] == "NESTED": + nest = True + else: + raise ValueError( + f"Invalid header ORDERING: {header['ORDERING']} (must be RING or NESTED)" + ) + + if hdu_bands is not None and "NSIDE" in hdu_bands.columns.names: + nside = hdu_bands.data.field("NSIDE").reshape(axes.shape).astype(int) + elif "NSIDE" in header: + nside = header["NSIDE"] + elif "ORDER" in header: + nside = 2 ** header["ORDER"] + else: + raise ValueError("Failed to extract NSIDE or ORDER.") + + try: + frame = coordsys_to_frame(header[conv.frame]) + except KeyError: + frame = header.get("COORDSYS", "icrs") + + try: + region = header["HPX_REG"] + except KeyError: + try: + region = header["HPXREGION"] + except KeyError: + region = None + + return cls(nside, nest, frame=frame, region=region, axes=axes)
+ + +
+[docs] + @classmethod + def from_hdu(cls, hdu, hdu_bands=None): + """Create an HPX object from a BinTable HDU. + + Parameters + ---------- + hdu : `~astropy.io.fits.BinTableHDU` + The FITS HDU. + hdu_bands : `~astropy.io.fits.BinTableHDU`, optional + The BANDS table HDU. Default is None. + + Returns + ------- + hpx : `~HpxGeom` + HEALPix geometry. + """ + # FIXME: Need correct handling of IMPLICIT and EXPLICIT maps + + # if HPX region is not defined then geometry is defined by + # the set of all pixels in the table + if "HPX_REG" not in hdu.header: + pix = (hdu.data.field("PIX"), hdu.data.field("CHANNEL")) + else: + pix = None + + return cls.from_header(hdu.header, hdu_bands=hdu_bands, pix=pix)
+ + +
+[docs] + def to_header(self, format="gadf", **kwargs): + """Build and return FITS header for this HEALPix map.""" + header = fits.Header() + format = kwargs.get("format", HPX_FITS_CONVENTIONS[format]) + + # FIXME: For some sparse maps we may want to allow EXPLICIT + # with an empty region string + indxschm = kwargs.get("indxschm", None) + + if indxschm is None: + if self._region is None: + indxschm = "IMPLICIT" + elif self.is_regular == 1: + indxschm = "EXPLICIT" + else: + indxschm = "LOCAL" + + if "FGST" in format.convname.upper(): + header["TELESCOP"] = "GLAST" + header["INSTRUME"] = "LAT" + + header[format.frame] = frame_to_coordsys(self.frame) + header["PIXTYPE"] = "HEALPIX" + header["ORDERING"] = self.ordering + header["INDXSCHM"] = indxschm + header["ORDER"] = np.max(self.order) + header["NSIDE"] = np.max(self.nside) + header["FIRSTPIX"] = 0 + header["LASTPIX"] = np.max(self.npix_max) - 1 + header["HPX_CONV"] = format.convname.upper() + + if self.frame == "icrs": + header["EQUINOX"] = (2000.0, "Equinox of RA & DEC specifications") + + if self.region: + header["HPX_REG"] = self._region + + return header
+ + + def _make_bands_cols(self): + cols = [] + if self.nside.size > 1: + cols += [fits.Column("NSIDE", "I", array=np.ravel(self.nside))] + return cols + +
+[docs] + @staticmethod + def get_index_list(nside, nest, region): + """Get list of pixels indices for all the pixels in a region. + + Parameters + ---------- + nside : int + HEALPix NSIDE parameter. + nest : bool + Indexing scheme. If True, "NESTED" scheme. If False, "RING" scheme. + region : str + HEALPix region string. + + Returns + ------- + ilist : `~numpy.ndarray` + List of pixel indices. + """ + import healpy as hp + + # TODO: this should return something more friendly than a tuple + # e.g. a namedtuple or a dict + tokens = parse_hpxregion(region) + + reg_type = tokens[0] + if reg_type == "DISK": + lon, lat = float(tokens[1]), float(tokens[2]) + radius = np.radians(float(tokens[3])) + vec = coords_to_vec(lon, lat)[0] + ilist = hp.query_disc(nside, vec, radius, inclusive=False, nest=nest) + elif reg_type == "DISK_INC": + lon, lat = float(tokens[1]), float(tokens[2]) + radius = np.radians(float(tokens[3])) + vec = coords_to_vec(lon, lat)[0] + fact = int(tokens[4]) + ilist = hp.query_disc( + nside, vec, radius, inclusive=True, nest=nest, fact=fact + ) + elif reg_type == "HPX_PIXEL": + nside_pix = int(tokens[2]) + if tokens[1] == "NESTED": + ipix_ring = hp.nest2ring(nside_pix, int(tokens[3])) + elif tokens[1] == "RING": + ipix_ring = int(tokens[3]) + else: + raise ValueError(f"Invalid ordering scheme: {tokens[1]!r}") + ilist = match_hpx_pix(nside, nest, nside_pix, ipix_ring) + else: + raise ValueError(f"Invalid region type: {reg_type!r}") + + return ilist
+ + + @property + def width(self): + """Width of the map.""" + # TODO: simplify + import healpy as hp + + if self.is_allsky: + width = 180.0 + elif self.region == "explicit": + idx = unravel_hpx_index(self._ipix, self.npix_max) + nside = self._get_nside(idx) + ang = hp.pix2ang(nside, idx[0], nest=self.nest, lonlat=True) + dirs = SkyCoord(ang[0], ang[1], unit="deg", frame=self.frame) + width = np.max(dirs.separation(self.center_skydir)) + else: + tokens = parse_hpxregion(self.region) + if tokens[0] in {"DISK", "DISK_INC"}: + width = float(tokens[3]) + elif tokens[0] == "HPX_PIXEL": + pix_size = get_pix_size_from_nside(int(tokens[2])) + width = 2.0 * pix_size + + return u.Quantity(width, "deg") + + def _get_nside(self, idx): + if self.nside.size > 1: + return self.nside[tuple(idx[1:])] + else: + return self.nside + +
+[docs] + def to_wcs_geom(self, proj="AIT", oversample=2, width_pix=None): + """Make a WCS projection appropriate for this HEALPix pixelization. + + Parameters + ---------- + proj : str, optional + Projection type of WCS geometry. + Default is "AIT". + oversample : float, optional + Oversampling factor for WCS map. This will be the + approximate ratio of the width of a HEALPix pixel to a WCS + pixel. If this parameter is None then the width will be + set from ``width_pix``. + Default is 2. + width_pix : int, optional + Width of the WCS geometry in pixels. The pixel size will + be set to the number of pixels satisfying ``oversample`` + or ``width_pix`` whichever is smaller. If this parameter + is None then the width will be set from ``oversample``. + Default is None. + + Returns + ------- + wcs : `~gammapy.maps.WcsGeom` + WCS geometry. + """ + from gammapy.maps import WcsGeom + + pix_size = get_pix_size_from_nside(self.nside) + binsz = np.min(pix_size) / oversample + width = 2.0 * self.width.to_value("deg") + np.max(pix_size) + + if width_pix is not None and int(width / binsz) > width_pix: + binsz = width / width_pix + + if width > 90.0: + width = min(360.0, width), min(180.0, width) + + axes = copy.deepcopy(self.axes) + + return WcsGeom.create( + width=width, + binsz=binsz, + frame=self.frame, + axes=axes, + skydir=self.center_skydir, + proj=proj, + )
+ + +
+[docs] + def to_wcs_tiles(self, nside_tiles=4, margin="0 deg"): + """Create WCS tiles geometries from HPX geometry with given nside. + + The HEALPix geom is divide into superpixels defined by ``nside_tiles``, + which are then represented by a WCS geometry using a tangential + projection. The number of WCS tiles is given by the number of pixels + for the given ``nside_tiles``. + + Parameters + ---------- + nside_tiles : int, optional + HEALPix NSIDE parameter for super pixel tiles. + Default is 4. + margin : `~astropy.units.Quantity`, optional + Width margin of the WCS tile. + Default is "0 deg". + + Returns + ------- + wcs_tiles : list + List of WCS tile geometries. + """ + import healpy as hp + from gammapy.maps import WcsGeom + + margin = u.Quantity(margin) + + if nside_tiles >= self.nside: + raise ValueError(f"nside_tiles must be < {self.nside}") + + if not self.is_allsky: + raise ValueError("to_wcs_tiles() is only supported for all sky geoms") + + binsz = np.degrees(hp.nside2resol(self.nside)) * u.deg + + hpx = self.to_image().to_nside(nside=nside_tiles) + wcs_tiles = [] + + for pix in range(int(hpx.npix[0])): + skydir = hpx.pix_to_coord([pix]) + vtx = hp.boundaries(nside=hpx.nside.item(), pix=pix, nest=hpx.nest, step=1) + + lon, lat = hp.vec2ang(vtx.T, lonlat=True) + boundaries = SkyCoord(lon * u.deg, lat * u.deg, frame=hpx.frame) + + # Compute maximum separation between all pairs of boundaries and take it + # as width + width = boundaries.separation(boundaries[:, np.newaxis]).max() + + wcs_tile_geom = WcsGeom.create( + skydir=(float(skydir[0].item()), float(skydir[1].item())), + width=width + margin, + binsz=binsz, + frame=hpx.frame, + proj="TAN", + axes=self.axes, + ) + wcs_tiles.append(wcs_tile_geom) + + return wcs_tiles
+ + +
+[docs] + def get_idx( + self, + idx=None, + local=False, + flat=False, + sparse=False, + mode="center", + axis_name=None, + ): + # TODO: simplify this!!! + if idx is not None and np.any(np.array(idx) >= np.array(self.shape_axes)): + raise ValueError(f"Image index out of range: {idx!r}") + + # Regular all- and partial-sky maps + if self.is_regular: + pix = [np.arange(np.max(self._npix))] + if idx is None: + for ax in self.axes: + if mode == "edges" and ax.name == axis_name: + pix += [np.arange(-0.5, ax.nbin, dtype=float)] + else: + pix += [np.arange(ax.nbin, dtype=int)] + else: + pix += [t for t in idx] + + pix = np.meshgrid(*pix[::-1], indexing="ij", sparse=sparse)[::-1] + pix = self.local_to_global(pix) + + # Non-regular all-sky + elif self.is_allsky and not self.is_regular: + + shape = (np.max(self.npix),) + if idx is None: + shape = shape + self.shape_axes + else: + shape = shape + (1,) * len(self.axes) + pix = [np.full(shape, -1, dtype=int) for i in range(1 + len(self.axes))] + for idx_img in np.ndindex(self.shape_axes): + + if idx is not None and idx_img != idx: + continue + + npix = self._npix[idx_img] + if idx is None: + s_img = (slice(0, npix),) + idx_img + else: + s_img = (slice(0, npix),) + (0,) * len(self.axes) + + pix[0][s_img] = np.arange(self._npix[idx_img]) + for j in range(len(self.axes)): + pix[j + 1][s_img] = idx_img[j] + pix = [p.T for p in pix] + + # Explicit pixel indices + else: + + if idx is not None: + npix_sum = np.concatenate(([0], np.cumsum(self._npix))) + idx_ravel = np.ravel_multi_index(idx, self.shape_axes) + s = slice(npix_sum[idx_ravel], npix_sum[idx_ravel + 1]) + else: + s = slice(None) + pix_flat = unravel_hpx_index(self._ipix[s], self.npix_max) + + shape = (np.max(self.npix),) + if idx is None: + shape = shape + self.shape_axes + else: + shape = shape + (1,) * len(self.axes) + pix = [np.full(shape, -1, dtype=int) for _ in range(1 + len(self.axes))] + + for idx_img in np.ndindex(self.shape_axes): + + if idx is not None and idx_img != idx: + continue + + npix = int(self._npix[idx_img].item()) + if idx is None: + s_img = (slice(0, npix),) + idx_img + else: + s_img = (slice(0, npix),) + (0,) * len(self.axes) + + if self.axes: + m = np.all( + np.stack([pix_flat[i + 1] == t for i, t in enumerate(idx_img)]), + axis=0, + ) + pix[0][s_img] = pix_flat[0][m] + else: + pix[0][s_img] = pix_flat[0] + + for j in range(len(self.axes)): + pix[j + 1][s_img] = idx_img[j] + + pix = [p.T for p in pix] + + if local: + pix = self.global_to_local(pix) + + if flat: + pix = tuple([p[p != INVALID_INDEX.int] for p in pix]) + + return pix
+ + +
+[docs] + def region_mask(self, regions): + """Create a mask from a given list of regions. + + The mask is filled such that a pixel inside the region is filled with + "True". To invert the mask, e.g. to create a mask with exclusion regions + the tilde (~) operator can be used (see example below). + + Parameters + ---------- + regions : str, `~regions.Region` or list of `~regions.Region` + Region or list of regions (pixel or sky regions accepted). + A region can be defined as a string ind DS9 format as well. + See http://ds9.si.edu/doc/ref/region.html for details. + + Returns + ------- + mask_map : `~gammapy.maps.WcsNDMap` of boolean type + Boolean region mask. + + """ + from gammapy.maps import Map, RegionGeom + + if not self.is_regular: + raise ValueError("Multi-resolution maps not supported yet") + + # TODO: use spatial coordinates only... + geom = RegionGeom.from_regions(regions) + coords = self.get_coord() + mask = geom.contains(coords) + return Map.from_geom(self, data=mask)
+ + +
+[docs] + def get_coord( + self, idx=None, flat=False, sparse=False, mode="center", axis_name=None + ): + if mode == "edges" and axis_name is None: + raise ValueError("Mode 'edges' requires axis name to be defined") + + pix = self.get_idx( + idx=idx, flat=flat, sparse=sparse, mode=mode, axis_name=axis_name + ) + data = self.pix_to_coord(pix) + + coords = MapCoord.create( + data=data, frame=self.frame, axis_names=self.axes.names + ) + + return coords
+ + +
+[docs] + def contains(self, coords): + idx = self.coord_to_idx(coords) + return np.all(np.stack([t != INVALID_INDEX.int for t in idx]), axis=0)
+ + +
+[docs] + def solid_angle(self): + """Solid angle array as a `~astropy.units.Quantity` in ``sr``. + + The array has the same dimensionality as ``map.nside`` + as all pixels have the same solid angle. + """ + import healpy as hp + + return Quantity(hp.nside2pixarea(self.nside), "sr")
+ + + def __str__(self): + lon, lat = self.center_skydir.data.lon.deg, self.center_skydir.data.lat.deg + return ( + f"{self.__class__.__name__}\n\n" + f"\taxes : {self.axes_names}\n" + f"\tshape : {self.data_shape[::-1]}\n" + f"\tndim : {self.ndim}\n" + f"\tnside : {self.nside[0]}\n" + f"\tnested : {self.nest}\n" + f"\tframe : {self.frame}\n" + f"\tprojection : {self.projection}\n" + f"\tcenter : {lon:.1f} deg, {lat:.1f} deg\n" + ) + +
+[docs] + def is_allclose(self, other, rtol_axes=1e-6, atol_axes=1e-6): + """Compare two data IRFs for equivalency. + + Parameters + ---------- + other : `HpxGeom` + Geometry to compare against. + rtol_axes : float, optional + Relative tolerance for axes comparison. + Default is 1e-6. + atol_axes : float, optional + Relative tolerance for axes comparison. + Default is 1e-6. + + Returns + ------- + is_allclose : bool + Whether the geometry is all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self.is_allsky and not other.is_allsky: + return False + + if self.data_shape != other.data_shape: + return False + + axes_eq = self.axes.is_allclose(other.axes, rtol=rtol_axes, atol=atol_axes) + + hpx_eq = ( + self.nside == other.nside + and self.frame == other.frame + and self.order == other.order + and self.nest == other.nest + ) + + return axes_eq and hpx_eq
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other=other) + + def __ne__(self, other): + return not self.__eq__(other)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/hpx/ndmap.html b/docs/dev/_modules/gammapy/maps/hpx/ndmap.html new file mode 100644 index 00000000000..6c7a46701a9 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/hpx/ndmap.html @@ -0,0 +1,1727 @@ + + + + + + + + + + gammapy.maps.hpx.ndmap — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.hpx.ndmap

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import SkyCoord
+from astropy.io import fits
+from regions import PointSkyRegion
+import matplotlib.pyplot as plt
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.units import unit_from_fits_image_hdu
+from ..coord import MapCoord
+from ..geom import pix_tuple_to_idx
+from ..utils import INVALID_INDEX
+from .core import HpxMap
+from .geom import HpxGeom
+from .io import HPX_FITS_CONVENTIONS, HpxConv
+from .utils import HpxToWcsMapping, get_pix_size_from_nside, get_superpixels
+
+__all__ = ["HpxNDMap"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class HpxNDMap(HpxMap): + """HEALPix map with any number of non-spatial dimensions. + + This class uses an N+1D numpy array to represent the sequence of + HEALPix image planes. Following the convention of WCS-based maps + this class uses a column-wise ordering for the data array with the + spatial dimension being tied to the last index of the array. + + Parameters + ---------- + geom : `~gammapy.maps.HpxGeom` + HEALPix geometry object. + data : `~numpy.ndarray` + HEALPix data array. + If None, then an empty array will be allocated. + meta : `dict` + Dictionary to store metadata. + unit : str or `~astropy.units.Unit` + The map unit. + """ + + def __init__(self, geom, data=None, dtype="float32", meta=None, unit=""): + data_shape = geom.data_shape + + if data is None: + data = self._make_default_data(geom, data_shape, dtype) + + super().__init__(geom, data, meta, unit) + + @staticmethod + def _make_default_data(geom, shape_np, dtype): + if geom.npix.size > 1: + data = np.full(shape_np, np.nan, dtype=dtype) + idx = geom.get_idx(local=True) + data[idx[::-1]] = 0 + else: + data = np.zeros(shape_np, dtype=dtype) + + return data + +
+[docs] + @classmethod + def from_wcs_tiles(cls, wcs_tiles, nest=True): + """Create HEALPix map from WCS tiles. + + Parameters + ---------- + wcs_tiles : list of `WcsNDMap` + WCS map tiles. + nest : bool, optional + Indexing scheme. If True, "NESTED" scheme. If False, "RING" scheme. + Default is True. + + Returns + ------- + hpx_map : `HpxNDMap` + HEALPix map. + """ + import healpy as hp + + geom_wcs = wcs_tiles[0].geom + + geom_hpx = HpxGeom.create( + binsz=geom_wcs.pixel_scales[0], + frame=geom_wcs.frame, + nest=nest, + axes=geom_wcs.axes, + ) + + map_hpx = cls.from_geom(geom=geom_hpx, unit=wcs_tiles[0].unit) + + coords = map_hpx.geom.get_coord().skycoord + nside_superpix = hp.npix2nside(len(wcs_tiles)) + + hpx_ref = HpxGeom(nside=nside_superpix, nest=nest, frame=geom_wcs.frame) + + idx = np.arange(map_hpx.geom.to_image().npix.item()) + indices = get_superpixels(idx, map_hpx.geom.nside, nside_superpix, nest=nest) + + for wcs_tile in wcs_tiles: + hpx_idx = hpx_ref.coord_to_idx(wcs_tile.geom.center_skydir)[0] + hpx_idx = int(hpx_idx.item()) + mask = indices == hpx_idx + map_hpx.data[mask] = wcs_tile.interp_by_coord(coords[mask]) + + return map_hpx
+ + +
+[docs] + def to_wcs_tiles( + self, nside_tiles=4, margin="0 deg", method="nearest", oversampling_factor=1 + ): + """Convert HpxNDMap to a list of WCS tiles. + + Parameters + ---------- + nside_tiles : int, optional + HEALPix NSIDE parameter for super pixel tiles. Default is 4. + margin : Angle, optional + Width margin of the WCS tile. Default is "0 deg". + method : {'nearest', 'linear'} + Interpolation method. Default is "nearest". + oversampling_factor : int, optional + Oversampling factor. Default is 1. + + Returns + ------- + wcs_tiles : list of `WcsNDMap` + WCS tiles. + """ + wcs_tiles = [] + + wcs_geoms = self.geom.to_wcs_tiles(nside_tiles=nside_tiles, margin=margin) + + for geom in wcs_geoms: + if oversampling_factor > 1: + geom = geom.upsample(oversampling_factor) + + wcs_map = self.interp_to_geom(geom=geom, method=method) + wcs_tiles.append(wcs_map) + + return wcs_tiles
+ + +
+[docs] + @classmethod + def from_hdu(cls, hdu, hdu_bands=None, format=None, colname=None): + """Make a HpxNDMap object from a FITS HDU. + + Parameters + ---------- + hdu : `~astropy.io.fits.BinTableHDU` + The FITS HDU. + hdu_bands : `~astropy.io.fits.BinTableHDU`, optional + The BANDS table HDU. Default is None. + format : str, optional + FITS convention. Default is None. + If None the format is guessed. The following + formats are supported: + + - "gadf" + - "fgst-ccube" + - "fgst-ltcube" + - "fgst-bexpcube" + - "fgst-srcmap" + - "fgst-template" + - "fgst-srcmap-sparse" + - "galprop" + - "galprop2" + colname : str, optional + Data column name to be used for the HEALPix map. + Default is None. + + Returns + ------- + map : `HpxMap` + HEALPix map. + + """ + if format is None: + format = HpxConv.identify_hpx_format(hdu.header) + + geom = HpxGeom.from_header(hdu.header, hdu_bands, format=format) + + hpx_conv = HPX_FITS_CONVENTIONS[format] + + shape = geom.axes.shape[::-1] + + # TODO: Should we support extracting slices? + + meta = cls._get_meta_from_header(hdu.header) + unit = unit_from_fits_image_hdu(hdu.header) + map_out = cls(geom, None, meta=meta, unit=unit) + + colnames = hdu.columns.names + cnames = [] + if hdu.header.get("INDXSCHM", None) == "SPARSE": + pix = hdu.data.field("PIX") + vals = hdu.data.field("VALUE") + if "CHANNEL" in hdu.data.columns.names: + chan = hdu.data.field("CHANNEL") + chan = np.unravel_index(chan, shape) + idx = chan + (pix,) + else: + idx = (pix,) + + map_out.set_by_idx(idx[::-1], vals) + else: + if colname is not None: + cnames.append(colname) + else: + for c in colnames: + if c.find(hpx_conv.colstring) == 0: + cnames.append(c) + nbin = len(cnames) + if nbin == 1: + map_out.data = hdu.data.field(cnames[0]).reshape(geom.data_shape) + else: + for idx, cname in enumerate(cnames): + # TODO: check whether reshaping is needed here. Is this tested? + idx = np.unravel_index(idx, shape) + map_out.data[idx + (slice(None),)] = hdu.data.field(cname) + + return map_out
+ + +
+[docs] + def to_wcs( + self, + sum_bands=False, + normalize=True, + proj="AIT", + oversample=2, + width_pix=None, + hpx2wcs=None, + fill_nan=True, + ): + from gammapy.maps import WcsNDMap + + if sum_bands and self.geom.nside.size > 1: + map_sum = self.sum_over_axes() + return map_sum.to_wcs( + sum_bands=False, + normalize=normalize, + proj=proj, + oversample=oversample, + width_pix=width_pix, + ) + + # FIXME: Check whether the old mapping is still valid and reuse it + if hpx2wcs is None: + geom_wcs_image = self.geom.to_wcs_geom( + proj=proj, oversample=oversample, width_pix=width_pix + ).to_image() + + hpx2wcs = HpxToWcsMapping.create(self.geom, geom_wcs_image) + + # FIXME: Need a function to extract a valid shape from npix property + + if sum_bands: + axes = np.arange(self.data.ndim - 1) + hpx_data = np.apply_over_axes(np.sum, self.data, axes=axes) + hpx_data = np.squeeze(hpx_data) + wcs_shape = tuple([t.flat[0] for t in hpx2wcs.npix]) + wcs_data = np.zeros(wcs_shape).T + wcs = hpx2wcs.wcs.to_image() + else: + hpx_data = self.data + wcs_shape = tuple([t.flat[0] for t in hpx2wcs.npix]) + self.geom.shape_axes + wcs_data = np.zeros(wcs_shape).T + wcs = hpx2wcs.wcs.to_cube(self.geom.axes) + + # FIXME: Should reimplement instantiating map first and fill data array + hpx2wcs.fill_wcs_map_from_hpx_data(hpx_data, wcs_data, normalize, fill_nan) + return WcsNDMap(wcs, wcs_data, unit=self.unit)
+ + + def _pad_spatial(self, pad_width, mode="constant", cval=0): + geom = self.geom._pad_spatial(pad_width=pad_width) + map_out = self._init_copy(geom=geom, data=None) + map_out.coadd(self) + coords = geom.get_coord(flat=True) + m = self.geom.contains(coords) + coords = tuple([c[~m] for c in coords]) + + if mode == "constant": + map_out.set_by_coord(coords, cval) + elif mode == "interp": + raise ValueError("Method 'interp' not supported for HpxMap") + else: + raise ValueError(f"Unrecognized pad mode: {mode!r}") + + return map_out + +
+[docs] + def crop(self, crop_width): + geom = self.geom.crop(crop_width) + map_out = self._init_copy(geom=geom, data=None) + map_out.coadd(self) + return map_out
+ + +
+[docs] + def upsample(self, factor, order=0, preserve_counts=True, axis_name=None): + if axis_name: + raise NotImplementedError( + "HpxNDMap.upsample does currently not support upsampling of non-spatial axes." + ) + + if order != 0: + raise ValueError( + "HpxNDMap.upsample currently only supports nearest upsampling" + ) + + geom = self.geom.upsample(factor) + coords = geom.get_coord() + data = self.get_by_coord(coords) + + if preserve_counts: + data /= factor**2 + + return self._init_copy(geom=geom, data=data)
+ + +
+[docs] + def downsample(self, factor, preserve_counts=True, axis_name=None): + if axis_name: + raise NotImplementedError( + "HpxNDMap does currently not support upsampling of non-spatial axes." + ) + + geom = self.geom.downsample(factor) + coords = self.geom.get_coord() + vals = self.get_by_coord(coords) + + map_out = self._init_copy(geom=geom, data=None) + map_out.fill_by_coord(coords, vals) + + if not preserve_counts: + map_out.data /= factor**2 + + return map_out
+ + +
+[docs] + def to_nside(self, nside, preserve_counts=True): + """Upsample or downsample the map to a given nside. + + Parameters + ---------- + nside : int + HEALPix NSIDE parameter. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). + Default is True. + + Returns + ------- + geom : `~HpxNDMap` + HEALPix map with new NSIDE. + """ + if len(self.geom.nside) > 1: + raise NotImplementedError( + "to_nside() is not supported for an irregular map." + ) + + factor = nside / self.geom.nside.item() + + if factor > 1: + return self.upsample(factor=int(factor), preserve_counts=preserve_counts) + elif factor < 1: + return self.downsample( + factor=int(1 / factor), preserve_counts=preserve_counts + ) + else: + return self.copy()
+ + +
+[docs] + def interp_by_coord(self, coords, method="linear", fill_value=None): + # inherited docstring + coords = MapCoord.create(coords, frame=self.geom.frame) + + if method == "linear": + return self._interp_by_coord(coords) + elif method == "nearest": + return self.get_by_coord(coords) + else: + raise ValueError(f"Invalid interpolation method: {method!r}")
+ + +
+[docs] + def interp_by_pix(self, pix, method=None, fill_value=None): + """Interpolate map values at the given pixel coordinates.""" + raise NotImplementedError
+ + +
+[docs] + def cutout(self, position, width, *args, **kwargs): + """Create a cutout around a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : `~astropy.coordinates.Angle` or `~astropy.units.Quantity` + Diameter of the circular cutout region. + + Returns + ------- + cutout : `~gammapy.maps.HpxNDMap` + Cutout map. + """ + geom = self.geom.cutout(position=position, width=width) + + if self.geom.is_allsky: + idx = geom._ipix + else: + idx = self.geom.to_image().global_to_local((geom._ipix,))[0] + + data = self.data[..., idx] + return self.__class__(geom=geom, data=data, unit=self.unit, meta=self.meta)
+ + +
+[docs] + def stack(self, other, weights=None, nan_to_num=True): + """Stack cutout into map. + + Parameters + ---------- + other : `HpxNDMap` + Other map to stack. + weights : `HpxNDMap`, optional + Array to be used as weights. The spatial geometry must be equivalent + to `other` and additional axes must be broadcastable. + Default is None. + nan_to_num: bool, optional + Non-finite values are replaced by zero if True. + Default is True. + """ + if self.geom == other.geom: + idx = None + elif self.geom.is_aligned(other.geom): + if self.geom.is_allsky: + idx = other.geom._ipix + else: + idx = self.geom.to_image().global_to_local((other.geom._ipix,))[0] + else: + raise ValueError( + "Can only stack equivalent maps or cutout of the same map." + ) + + data = other.quantity.to_value(self.unit) + + if nan_to_num: + not_finite = ~np.isfinite(data) + if np.any(not_finite): + data = data.copy() + data[not_finite] = 0 + + if weights is not None: + if not other.geom.to_image() == weights.geom.to_image(): + raise ValueError("Incompatible spatial geoms between map and weights") + data = data * weights.data + + if idx is None: + self.data += data + else: + self.data[..., idx] += data
+ + +
+[docs] + def smooth(self, width, kernel="gauss"): + """Smooth the map. + + Iterates over 2D image planes, processing one at a time. + + Parameters + ---------- + width : `~astropy.units.Quantity`, str or float + Smoothing width given as quantity or float. If a float is given it is + interpreted as smoothing width in pixels. If an (angular) quantity + is given it is converted to pixels using `~healpy.nside2resol`. + It corresponds to the standard deviation in case of a Gaussian kernel, + and the radius in case of a disk kernel. + kernel : {'gauss', 'disk'}, optional + Kernel shape. Default is "gauss". + + Returns + ------- + image : `HpxNDMap` + Smoothed image (a copy, the original object is unchanged). + """ + import healpy as hp + + if len(self.geom.nside) > 1: + raise NotImplementedError("smooth is not supported for an irregular map.") + + nside = self.geom.nside.item() + lmax = int(3 * nside - 1) # maximum l of the power spectrum + ipix = self.geom._ipix + + if not self.geom.is_allsky: + # stack into an all sky map + full_sky_geom = HpxGeom.create( + nside=self.geom.nside, + nest=self.geom.nest, + frame=self.geom.frame, + axes=self.geom.axes, + ) + full_sky_map = HpxNDMap.from_geom(full_sky_geom) + + for img, idx in self.iter_by_image_data(): + full_sky_map.data[idx][ipix] = img + else: + full_sky_map = self + + # The smoothing width is expected by healpy in radians + if isinstance(width, (u.Quantity, str)): + width = u.Quantity(width) + width = width.to_value("rad") + else: + binsz = np.degrees(hp.nside2resol(nside)) + width = width * binsz + width = np.deg2rad(width) + + smoothed_data = np.empty(self.data.shape, dtype=float) + + for img, idx in full_sky_map.iter_by_image_data(): + img = img.astype(float) + + if self.geom.nest: + # reorder to ring to do the smoothing + img = hp.pixelfunc.reorder(img, n2r=True) + + if kernel == "gauss": + data = hp.sphtfunc.smoothing(img, sigma=width, pol=False, lmax=lmax) + elif kernel == "disk": + # create the step function in angular space + theta = np.linspace(0, width) + beam = np.ones(len(theta)) + beam[theta > width] = 0 + # convert to the spherical harmonics space + window_beam = hp.sphtfunc.beam2bl(beam, theta, lmax) + # normalize the window beam + window_beam = window_beam / window_beam.max() + data = hp.sphtfunc.smoothing( + img, beam_window=window_beam, pol=False, lmax=lmax + ) + else: + raise ValueError(f"Invalid kernel: {kernel!r}") + + if self.geom.nest: + # reorder back to nest after the smoothing + data = hp.pixelfunc.reorder(data, r2n=True) + + smoothed_data[idx] = data[ipix] + + return self._init_copy(data=smoothed_data)
+ + +
+[docs] + def convolve(self, kernel, convolution_method="wcs-tan", **kwargs): + """Convolve map with a WCS kernel. + + Project the map into a WCS geometry, convolve with a WCS kernel and + project back into the initial HEALPix geometry. + + If the kernel is two-dimensional, it is applied to all image planes likewise. + If the kernel is higher dimensional it must match the map in the number of + dimensions and the corresponding kernel is selected for every image plane. + + Parameters + ---------- + kernel : `~gammapy.irf.PSFKernel` + Convolution kernel. The pixel size must be upsampled by a factor 2 or bigger + with respect to the input map to prevent artifacts in the projection. + convolution_method : {"wcs-tan", ""} + Convolution method. If "wcs-tan", project on WCS geometry and + convolve with WCS kernel. See `~gammapy.maps.HpxNDMap.convolve_wcs`. + If "", convolve map with a symmetrical WCS kernel. See `~gammapy.maps.HpxNDMap.convolve_full`. + Default is "wcs-tan". + **kwargs : dict + Keyword arguments passed to `~gammapy.maps.WcsNDMap.convolve`. + + Returns + ------- + map : `HpxNDMap` + Convolved map. + """ + if convolution_method == "wcs-tan": + return self.convolve_wcs(kernel, **kwargs) + elif convolution_method == "": + return self.convolve_full(kernel) + else: + raise ValueError( + f"Not a valid method for HPX convolution: {convolution_method}" + )
+ + +
+[docs] + def convolve_wcs(self, kernel, **kwargs): + """Convolve map with a WCS kernel. + + Project the map into a WCS geometry, convolve with a WCS kernel and + project back into the initial HEALPix geometry. + + If the kernel is two-dimensional, it is applied to all image planes likewise. + If the kernel is higher dimensional should either match the map in the number of + dimensions or the map must be an image (no non-spatial axes). In that case, the + corresponding kernel is selected and applied to every image plane or to the single + input image respectively. + + Parameters + ---------- + kernel : `~gammapy.irf.PSFKernel` + Convolution kernel. The pixel size must be upsampled by a factor 2 or bigger + with respect to the input map to prevent artifacts in the projection. + **kwargs : dict + Keyword arguments passed to `~gammapy.maps.WcsNDMap.convolve`. + + Returns + ------- + map : `HpxNDMap` + Convolved map. + """ + # TODO: maybe go through `.to_wcs_tiles()` to make this work for allsky maps + if self.geom.is_allsky: + raise ValueError( + "Convolution via WCS projection is not supported for allsky maps." + ) + + if self.geom.width > 10 * u.deg: + log.warning( + "Convolution via WCS projection is not recommended for large " + "maps (> 10 deg). Perhaps the method `convolve_full()` is more suited for " + "this case." + ) + + geom_kernel = kernel.psf_kernel_map.geom + wcs_size = np.max(geom_kernel.to_image().pixel_scales.deg) + hpx_size = get_pix_size_from_nside(self.geom.nside[0]) + + if wcs_size > 0.5 * hpx_size: + raise ValueError( + f"The kernel pixel size of {wcs_size} has to be smaller by at least" + f" a factor 2 than the pixel size of the input map of {hpx_size}" + ) + + geom_wcs = self.geom.to_wcs_geom(proj="TAN").to_image() + hpx2wcs = HpxToWcsMapping.create( + hpx=self.geom, wcs=geom_wcs.to_binsz(binsz=wcs_size) + ) + + # Project to WCS and convolve + wcs_map = self.to_wcs(hpx2wcs=hpx2wcs, fill_nan=False) + conv_wcs_map = wcs_map.convolve(kernel=kernel, **kwargs) + + if self.geom.is_image and geom_kernel.ndim > 2: + target_geom = self.geom.to_cube(geom_kernel.axes) + else: + target_geom = self.geom + + # and back to hpx + data = np.zeros(target_geom.data_shape) + data = hpx2wcs.fill_hpx_map_from_wcs_data( + wcs_data=conv_wcs_map.data, hpx_data=data + ) + return HpxNDMap.from_geom(target_geom, data=data)
+ + +
+[docs] + def convolve_full(self, kernel): + """Convolve map with a symmetrical WCS kernel. + + Extract the radial profile of the kernel (assuming radial symmetry) and + convolve via `~healpy.sphtfunc.smoothing`. Since no projection is applied, this is + suited for full-sky and large maps. + + If the kernel is two-dimensional, it is applied to all image planes likewise. + If the kernel is higher dimensional it must match the map in the number of + dimensions and the corresponding kernel is selected for every image plane. + + Parameters + ---------- + kernel : `~gammapy.irf.PSFKernel` + Convolution kernel. The pixel size must be upsampled by a factor 2 or bigger + with respect to the input map to prevent artifacts in the projection. + + + Returns + ------- + map : `HpxNDMap` + Convolved map. + """ + import healpy as hp + + if len(self.geom.nside) > 1: + raise NotImplementedError( + "convolve_full() is not supported for an irregular map." + ) + + nside = self.geom.nside.item() + lmax = int(3 * nside - 1) # maximum l of the power spectrum + nest = self.geom.nest + allsky = self.geom.is_allsky + ipix = self.geom._ipix + + if not allsky: + # stack into an all sky map + full_sky_geom = HpxGeom.create( + nside=self.geom.nside, + nest=self.geom.nest, + frame=self.geom.frame, + axes=self.geom.axes, + ) + full_sky_map = HpxNDMap.from_geom(full_sky_geom) + for img, idx in self.iter_by_image_data(): + full_sky_map.data[idx][ipix] = img + else: + full_sky_map = self + + # Get radial profile from the kernel + psf_kernel = kernel.psf_kernel_map + + center_pix = psf_kernel.geom.center_pix[:2] + center = max(center_pix) + dim = np.argmax(center_pix) + + pixels = [0, 0] + pixels[dim] = np.linspace( + 0, center, int(center + 1) + ) # assuming radially symmetric kernel + pixels[abs(1 - dim)] = center_pix[abs(1 - dim)] * np.ones(int(center + 1)) + coords = psf_kernel.geom.pix_to_coord(pixels) + coordinates = SkyCoord(coords[0], coords[1], frame=psf_kernel.geom.frame) + angles = coordinates.separation(psf_kernel.geom.center_skydir).rad + values = psf_kernel.get_by_pix(pixels) + + # Do the convolution in each image plane + convolved_data = np.empty(self.data.shape, dtype=float) + for img, idx in full_sky_map.iter_by_image_data(): + img = img.astype(float) + if nest: + # reorder to ring to do the convolution + img = hp.pixelfunc.reorder(img, n2r=True) + radial_profile = np.reshape(values[:, idx], (values.shape[0],)) + window_beam = hp.sphtfunc.beam2bl( + np.flip(radial_profile), np.flip(angles), lmax + ) + window_beam = window_beam / window_beam.max() + data = hp.sphtfunc.smoothing( + img, beam_window=window_beam, pol=False, lmax=lmax + ) + if nest: + # reorder back to nest after the convolution + data = hp.pixelfunc.reorder(data, r2n=True) + + convolved_data[idx] = data[ipix] + return self._init_copy(data=convolved_data)
+ + +
+[docs] + def get_by_idx(self, idx): + # inherited docstring + idx = pix_tuple_to_idx(idx) + idx = self.geom.global_to_local(idx) + return self.data.T[idx]
+ + + def _interp_by_coord(self, coords): + """Linearly interpolate map values.""" + pix, wts = self.geom.interp_weights(coords) + + if self.geom.is_image: + return np.sum(self.data.T[tuple(pix)] * wts, axis=0) + + val = np.zeros(pix[0].shape[1:]) + + # Loop over function values at corners + for i in range(2 ** len(self.geom.axes)): + pix_i = [] + wt = np.ones(pix[0].shape[1:])[np.newaxis, ...] + for j, ax in enumerate(self.geom.axes): + idx = ax.coord_to_idx(coords[ax.name]) + idx = np.clip(idx, 0, len(ax.center) - 2) + + w = ax.center[idx + 1] - ax.center[idx] + c = u.Quantity( + coords[ax.name], ax.center.unit, copy=COPY_IF_NEEDED + ).value + + if i & (1 << j): + wt *= (c - ax.center[idx].value) / w.value + pix_i += [idx + 1] + else: + wt *= 1.0 - (c - ax.center[idx].value) / w.value + pix_i += [idx] + + if not self.geom.is_regular: + pix, wts = self.geom.interp_weights(coords, idxs=pix_i) + + wts[pix[0] == INVALID_INDEX.int] = 0 + wt[~np.isfinite(wt)] = 0 + val += np.nansum(wts * wt * self.data.T[tuple(pix[:1] + pix_i)], axis=0) + + return val + + def _resample_by_idx(self, idx, weights=None, preserve_counts=False): + idx = pix_tuple_to_idx(idx) + msk = np.all(np.stack([t != INVALID_INDEX.int for t in idx]), axis=0) + if weights is not None: + weights = weights[msk] + idx = [t[msk] for t in idx] + + idx_local = list(self.geom.global_to_local(idx)) + msk = idx_local[0] >= 0 + idx_local = [t[msk] for t in idx_local] + if weights is not None: + if isinstance(weights, u.Quantity): + weights = weights.to_value(self.unit) + weights = weights[msk] + + idx_local = np.ravel_multi_index(idx_local, self.data.T.shape) + idx_local, idx_inv = np.unique(idx_local, return_inverse=True) + weights = np.bincount(idx_inv, weights=weights) + if not preserve_counts: + weights /= np.bincount(idx_inv).astype(self.data.dtype) + self.data.T.flat[idx_local] += weights + +
+[docs] + def fill_by_idx(self, idx, weights=None): + return self._resample_by_idx(idx, weights=weights, preserve_counts=True)
+ + +
+[docs] + def set_by_idx(self, idx, vals): + idx = pix_tuple_to_idx(idx) + idx_local = self.geom.global_to_local(idx) + self.data.T[idx_local] = vals
+ + + def _make_cols(self, header, conv): + shape = self.data.shape + cols = [] + + if header["INDXSCHM"] == "SPARSE": + data = self.data.copy() + data[~np.isfinite(data)] = 0 + nonzero = np.where(data > 0) + value = data[nonzero].astype(float) + pix = self.geom.local_to_global(nonzero[::-1])[0] + if len(shape) == 1: + cols.append(fits.Column("PIX", "J", array=pix)) + cols.append(fits.Column("VALUE", "E", array=value)) + else: + channel = np.ravel_multi_index(nonzero[:-1], shape[:-1]) + cols.append(fits.Column("PIX", "J", array=pix)) + cols.append(fits.Column("CHANNEL", "I", array=channel)) + cols.append(fits.Column("VALUE", "E", array=value)) + elif len(shape) == 1: + name = conv.colname(indx=conv.firstcol) + array = self.data.astype(float) + cols.append(fits.Column(name, "E", array=array)) + else: + for i, idx in enumerate(np.ndindex(shape[:-1])): + name = conv.colname(indx=i + conv.firstcol) + array = self.data[idx].astype(float) + cols.append(fits.Column(name, "E", array=array)) + + return cols + +
+[docs] + def to_swapped(self): + import healpy as hp + + hpx_out = self.geom.to_swapped() + map_out = self._init_copy(geom=hpx_out, data=None) + idx = self.geom.get_idx(flat=True) + vals = self.get_by_idx(idx) + if self.geom.nside.size > 1: + nside = self.geom.nside[idx[1:]] + else: + nside = self.geom.nside + + if self.geom.nest: + idx_new = tuple([hp.nest2ring(nside, idx[0])]) + idx[1:] + else: + idx_new = tuple([hp.ring2nest(nside, idx[0])]) + idx[1:] + + map_out.set_by_idx(idx_new, vals) + return map_out
+ + +
+[docs] + def to_region_nd_map(self, region, func=np.nansum, weights=None, method="nearest"): + """Get region ND map in a given region. + + By default, the whole map region is considered. + + Parameters + ---------- + region: `~regions.Region` or `~astropy.coordinates.SkyCoord` + Region. + func : numpy.func, optional + Function to reduce the data. Default is np.nansum. + For boolean Map, use np.any or np.all. + weights : `WcsNDMap`, optional + Array to be used as weights. The geometry must be equivalent. + Default is None. + method : {"nearest", "linear"} + How to interpolate if a position is given. + Default is "neraest". + + Returns + ------- + spectrum : `~gammapy.maps.RegionNDMap` + Spectrum in the given region. + """ + from gammapy.maps import RegionGeom, RegionNDMap + + if isinstance(region, SkyCoord): + region = PointSkyRegion(region) + + if weights is not None: + if not self.geom == weights.geom: + raise ValueError("Incompatible spatial geoms between map and weights") + + geom = RegionGeom(region=region, axes=self.geom.axes) + + if isinstance(region, PointSkyRegion): + coords = geom.get_coord() + data = self.interp_by_coord(coords=coords, method=method) + if weights is not None: + data *= weights.interp_by_coord(coords=coords, method=method) + else: + cutout = self.cutout(position=geom.center_skydir, width=np.max(geom.width)) + + if weights is not None: + weights_cutout = weights.cutout( + position=geom.center_skydir, width=geom.width + ) + cutout.data *= weights_cutout.data + + mask = cutout.geom.to_image().region_mask([region]).data + data = func(cutout.data[..., mask], axis=-1) + + return RegionNDMap(geom=geom, data=data, unit=self.unit, meta=self.meta.copy())
+ + +
+[docs] + def plot( + self, + method="raster", + ax=None, + normalize=False, + proj="AIT", + oversample=2, + width_pix=1000, + **kwargs, + ): + """Quickplot method. + + This will generate a visualization of the map by converting to + a rasterized WCS image (method='raster') or drawing polygons + for each pixel (method='poly'). + + Parameters + ---------- + method : {'raster','poly'} + Method for mapping HEALPix pixels to a two-dimensional + image. Can be set to 'raster' (rasterization to cartesian + image plane) or 'poly' (explicit polygons for each pixel). + WARNING: The 'poly' method is much slower than 'raster' + and only suitable for maps with less than ~10k pixels. + Default is "raster". + proj : string, optional + Any valid WCS projection type. Default is "AIT". + oversample : float, optional + Oversampling factor for WCS map. This will be the + approximate ratio of the width of a HPX pixel to a WCS + pixel. If this parameter is None then the width will be + set from ``width_pix``. Default is 2. + width_pix : int, optional + Width of the WCS geometry in pixels. The pixel size will + be set to the number of pixels satisfying ``oversample`` + or ``width_pix`` whichever is smaller. If this parameter + is None then the width will be set from ``oversample``. + Default is 1000. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.imshow`. + + Returns + ------- + ax : `~astropy.visualization.wcsaxes.WCSAxes` + WCS axes object. + """ + if method == "raster": + m = self.to_wcs( + sum_bands=True, + normalize=normalize, + proj=proj, + oversample=oversample, + width_pix=width_pix, + ) + return m.plot(ax, **kwargs) + elif method == "poly": + return self._plot_poly(proj=proj, ax=ax) + else: + raise ValueError(f"Invalid method: {method!r}")
+ + + def _plot_poly(self, proj="AIT", step=1, ax=None): + """Plot the map using a collection of polygons. + + Parameters + ---------- + proj : string, optional + Any valid WCS projection type. + Default is "AIT". + step : int, optional + Set the number vertices that will be computed for each + pixel in multiples of 4. + Default is 1. + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + """ + # FIXME: At the moment this only works for all-sky maps if the + # projection is centered at (0,0) + + # FIXME: Figure out how to force a square aspect-ratio like imshow + + import healpy as hp + from matplotlib.collections import PatchCollection + from matplotlib.patches import Polygon + + wcs = self.geom.to_wcs_geom(proj=proj, oversample=1) + if ax is None: + fig = plt.gcf() + ax = fig.add_subplot(111, projection=wcs.wcs, aspect="equal") + + wcs_lonlat = wcs.center_coord[:2] + idx = self.geom.get_idx() + vtx = hp.boundaries( + self.geom.nside.item(), idx[0], nest=self.geom.nest, step=step + ) + theta, phi = hp.vec2ang(np.rollaxis(vtx, 2)) + theta = theta.reshape((4 * step, -1)).T + phi = phi.reshape((4 * step, -1)).T + + patches = [] + data = [] + + def get_angle(x, t): + return 180.0 - (180.0 - x + t) % 360.0 + + for i, (x, y) in enumerate(zip(phi, theta)): + lon, lat = np.degrees(x), np.degrees(np.pi / 2.0 - y) + # Add a small offset to avoid vertices wrapping to the + # other size of the projection + if get_angle(np.median(lon), wcs_lonlat[0].to_value("deg")) > 0: + idx = wcs.coord_to_pix((lon - 1e-4, lat)) + else: + idx = wcs.coord_to_pix((lon + 1e-4, lat)) + + dist = np.max(np.abs(idx[0][0] - idx[0])) + + # Split pixels that wrap around the edges of the projection + if dist > wcs.npix[0] / 1.5: + lon, lat = np.degrees(x), np.degrees(np.pi / 2.0 - y) + lon0 = lon - 1e-4 + lon1 = lon + 1e-4 + pix0 = wcs.coord_to_pix((lon0, lat)) + pix1 = wcs.coord_to_pix((lon1, lat)) + + idx0 = np.argsort(pix0[0]) + idx1 = np.argsort(pix1[0]) + + pix0 = (pix0[0][idx0][:3], pix0[1][idx0][:3]) + pix1 = (pix1[0][idx1][1:], pix1[1][idx1][1:]) + + patches.append(Polygon(np.vstack((pix0[0], pix0[1])).T, closed=True)) + patches.append(Polygon(np.vstack((pix1[0], pix1[1])).T, closed=True)) + data.append(self.data[i]) + data.append(self.data[i]) + else: + polygon = Polygon(np.vstack((idx[0], idx[1])).T, closed=True) + patches.append(polygon) + data.append(self.data[i]) + + p = PatchCollection(patches, linewidths=0, edgecolors="None") + p.set_array(np.array(data)) + ax.add_collection(p) + ax.autoscale_view() + ax.coords.grid(color="w", linestyle=":", linewidth=0.5) + + return ax + +
+[docs] + def plot_mask( + self, + method="raster", + ax=None, + proj="AIT", + oversample=2, + width_pix=1000, + **kwargs, + ): + """Plot the mask as a shaded area. + + Parameters + ---------- + method : {'raster','poly'} + Method for mapping HEALPix pixels to a two-dimensional + image. Can be set to 'raster' (rasterization to cartesian + image plane) or 'poly' (explicit polygons for each pixel). + WARNING: The 'poly' method is much slower than 'raster' + and only suitable for maps with less than ~10k pixels. + Default is "raster". + proj : string, optional + Any valid WCS projection type. Default is "AIT". + oversample : float, optional + Oversampling factor for WCS map. This will be the + approximate ratio of the width of a HPX pixel to a WCS + pixel. If this parameter is None then the width will be + set from ``width_pix``. Default is 2. + width_pix : int, optional + Width of the WCS geometry in pixels. The pixel size will + be set to the number of pixels satisfying ``oversample`` + or ``width_pix`` whichever is smaller. If this parameter + is None then the width will be set from ``oversample``. + Default is 1000. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.imshow`. + + Returns + ------- + ax : `~astropy.visualization.wcsaxes.WCSAxes` + WCS axis object. + """ + if not self.is_mask: + raise ValueError( + "`.plot_mask()` only supports maps containing boolean values." + ) + + if method == "raster": + m = self.to_wcs( + sum_bands=True, + normalize=False, + proj=proj, + oversample=oversample, + width_pix=width_pix, + ) + m.data = np.nan_to_num(m.data).astype(bool) + return m.plot_mask(ax=ax, **kwargs) + else: + raise ValueError(f"Invalid method: {method!r}")
+ + +
+[docs] + def sample_coord(self, n_events, random_state=0): + raise NotImplementedError("HpXNDMap.sample_coord is not implemented yet.")
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/maps.html b/docs/dev/_modules/gammapy/maps/maps.html new file mode 100644 index 00000000000..397211300b8 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/maps.html @@ -0,0 +1,744 @@ + + + + + + + + + + gammapy.maps.maps — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.maps

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+from collections.abc import MutableMapping
+from astropy.io import fits
+from gammapy.maps import Map
+from gammapy.utils.scripts import make_path
+
+__all__ = ["Maps"]
+
+
+
+[docs] +class Maps(MutableMapping): + """A Dictionary containing Map objects sharing the same geometry. + + This class simplifies handling and I/O of maps collections. + + For maps with different geometries, use a regular dict. + """ + + def __init__(self, **kwargs): + self._geom = None + self._data = {} + for key, value in kwargs.items(): + self.__setitem__(key, value) + + @property + def geom(self): + """Map geometry as a `~gammapy.maps.Geom` object.""" + return self._geom + + def __setitem__(self, key, value): + if value is not None and not isinstance(value, Map): + raise ValueError( + f"MapDict can only contain Map objects, got {type(value)} instead." + ) + # TODO: which loosers criterion to apply? broadcastability? + else: + self._geom = value.geom + + self._data[key] = value + + def __getitem__(self, key): + return self._data[key] + + def __len__(self): + """Returns the length of MapDict.""" + return len(self._data) + + def __delitem__(self, key): + del self._data[key] + + def __iter__(self): + return iter(self._data) + + def __repr__(self): + return f"{type(self).__name__}({self._data})" + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += "-" * len(self.__class__.__name__) + "\n" + str_ += "\n" + str_ += self._geom.__repr__() + str_ += "\n" + for name, value in self.items(): + str_ += f"{name} \n" + str_ += f"\t unit\t : {value.unit} \n" + str_ += f"\t dtype\t : {value.data.dtype}\n" + str_ += "\n" + return str_ + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def to_hdulist(self, hdu_bands="BANDS"): + """Convert map dictionary to list of HDUs. + + Parameters + ---------- + hdu_bands : str, optional + Name of the HDU with the BANDS table. If set to None, each map will have its own hdu_band. + Default is 'BANDS'. + + Returns + ------- + hdulist : `~astropy.io.fits.HDUList` + Map dataset list of HDUs. + """ + exclude_primary = slice(1, None) + + hdu_primary = fits.PrimaryHDU() + hdulist = fits.HDUList([hdu_primary]) + + for key, m in self.items(): + hdulist += m.to_hdulist(hdu=key, hdu_bands=hdu_bands)[exclude_primary] + + return hdulist
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, hdu_bands="BANDS"): + """Create map dictionary from a HDU list. + + Because FITS keywords are case-insensitive, all key names will return as lower-case. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + List of HDUs. + hdu_bands : str, optional + Name of the HDU with the BANDS table. If set to None, each map should have its own hdu_band. + Default is 'BANDS'. + + Returns + ------- + maps : `~gammapy.maps.Maps` + Maps object. + """ + maps = cls() + + for hdu in hdulist: + if hdu.is_image and hdu.data is not None: + map_name = hdu.name.lower() + maps[map_name] = Map.from_hdulist( + hdulist, hdu=map_name, hdu_bands=hdu_bands + ) + return maps
+ + +
+[docs] + @classmethod + def read(cls, filename, checksum=False): + """Read map dictionary from file. + + Because FITS keywords are case-insensitive, all key names will return as lower-case. + + Parameters + ---------- + filename : str + Filename to read from. + + Returns + ------- + maps : `~gammapy.maps.Maps` + Maps object. + """ + with fits.open( + str(make_path(filename)), memmap=False, checksum=checksum + ) as hdulist: + return cls.from_hdulist(hdulist)
+ + +
+[docs] + def write(self, filename, overwrite=False, checksum=False): + """Write map dictionary to file. + + Parameters + ---------- + filename : str + Filename to write to. + overwrite : bool, optional + Overwrite existing file. Default is False. + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + filename = make_path(filename) + + hdulist = self.to_hdulist() + hdulist.writeto(filename, overwrite=overwrite, checksum=checksum)
+ + +
+[docs] + @classmethod + def from_geom(cls, geom, names, kwargs_list=None): + """Create map dictionary from a geometry. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + The input geometry that will be used by all maps. + names : list of str + The list of all map names. + kwargs_list : list of dict + the list of arguments to be passed to `~gammapy.maps.Map.from_geom()`. + + Returns + ------- + maps : `~gammapy.maps.Maps` + Maps object. + """ + mapdict = {} + + if kwargs_list is None: + kwargs_list = [{}] * len(names) + + for name, kwargs in zip(names, kwargs_list): + mapdict[name] = Map.from_geom(geom, **kwargs) + + return cls(**mapdict)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/measure.html b/docs/dev/_modules/gammapy/maps/measure.html new file mode 100644 index 00000000000..15193b536dc --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/measure.html @@ -0,0 +1,659 @@ + + + + + + + + + + gammapy.maps.measure — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.measure

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from astropy.coordinates import SkyCoord
+from regions import PolygonSkyRegion
+import matplotlib as mpl
+import matplotlib.pyplot as plt
+
+
+
+[docs] +def containment_region(map_, fraction=0.393, apply_union=True): + """Find the iso-contours region corresponding to a given containment + for a map of integral quantities with a flat geometry. + + Parameters + ---------- + map_ : `~gammapy.maps.WcsNDMap` + Map of integral quantities. + fraction : float, optional + Containment fraction. Default is 0.393. + apply_union : bool, optional + It True return a compound region otherwise return a list of polygon regions. + Default is True. Note that compound regions cannot be written in ds9 format but can always be saved with numpy.savez. + + Returns + ------- + regions : list of `~regions.PolygonSkyRegion` or `~regions.CompoundSkyRegion` + Regions from iso-contours matching containment fraction. + """ + from . import WcsNDMap + + if not isinstance(map_, WcsNDMap): + raise TypeError( + f"This function is only supported for WcsNDMap, got {type(map_)} instead." + ) + + fmax = np.nanmax(map_.data) + if fmax > 0.0: + ordered = np.sort(map_.data.flatten())[::-1] + cumsum = np.nancumsum(ordered) + ind = np.argmin(np.abs(cumsum / cumsum.max() - fraction)) + fval = ordered[ind] + + plt.ioff() + fig = plt.figure() + cs = plt.contour(map_.data.squeeze(), [fval]) + plt.close(fig) + plt.ion() + regions_pieces = [] + + try: + paths_all = cs.get_paths()[0] + starts = np.where(paths_all.codes == 1)[0] + stops = np.where(paths_all.codes == 79)[0] + 1 + paths = [] + for start, stop in zip(starts, stops): + paths.append( + mpl.path.Path( + paths_all.vertices[start:stop], + codes=paths_all.codes[start:stop], + ) + ) + except AttributeError: + paths = cs.collections[0].get_paths() + for pp in paths: + vertices = [] + for v in pp.vertices: + v_coord = map_.geom.pix_to_coord(v) + vertices.append([v_coord[0], v_coord[1]]) + vertices = SkyCoord(vertices, frame=map_.geom.frame) + regions_pieces.append(PolygonSkyRegion(vertices)) + + if apply_union: + regions_union = regions_pieces[0] + for region in regions_pieces[1:]: + regions_union = regions_union.union(region) + return regions_union + else: + return regions_pieces + else: + raise ValueError("No positive values in the map.")
+ + + +
+[docs] +def containment_radius(map_, fraction=0.393, position=None): + """Compute containment radius from a position in a map + with integral quantities and flat geometry. + + Parameters + ---------- + map_ : `~gammapy.maps.WcsNDMap` + Map of integral quantities. + fraction : float + Containment fraction. Default is 0.393. + position : `~astropy.coordinates.SkyCoord` + Position from where the containment is computed. + Default is the center of the Map. + + Returns + ------- + radius : `~astropy.coordinates.Angle` + Minimal radius required to reach the given containement fraction. + + """ + from . import WcsNDMap + + if not isinstance(map_, WcsNDMap): + raise TypeError( + f"This function is only supported for WcsNDMap, got {type(map_)} instead." + ) + + if position is None: + position = map_.geom.center_skydir + + fmax = np.nanmax(map_.data) + if fmax > 0.0: + sep = map_.geom.separation(position).flatten() + order = np.argsort(sep) + ordered = map_.data.flatten()[order] + cumsum = np.nancumsum(ordered) + ind = np.argmin(np.abs(cumsum / cumsum.max() - fraction)) + else: + raise ValueError("No positive values in the map.") + return sep[order][ind]
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/region/geom.html b/docs/dev/_modules/gammapy/maps/region/geom.html new file mode 100644 index 00000000000..09dc3267409 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/region/geom.html @@ -0,0 +1,1490 @@ + + + + + + + + + + gammapy.maps.region.geom — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.region.geom

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+import logging
+from functools import lru_cache
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import Angle, SkyCoord
+from astropy.io import fits
+from astropy.table import QTable, Table
+from astropy.utils import lazyproperty
+from astropy.visualization.wcsaxes import WCSAxes
+from astropy.wcs.utils import (
+    proj_plane_pixel_area,
+    proj_plane_pixel_scales,
+    wcs_to_celestial_frame,
+)
+from regions import (
+    CompoundSkyRegion,
+    PixCoord,
+    PointSkyRegion,
+    RectanglePixelRegion,
+    Regions,
+    SkyRegion,
+)
+import matplotlib.pyplot as plt
+from gammapy.utils.regions import (
+    compound_region_center,
+    compound_region_to_regions,
+    regions_to_compound_region,
+)
+from gammapy.visualization.utils import ARTIST_TO_LINE_PROPERTIES
+from ..axes import MapAxes
+from ..coord import MapCoord
+from ..core import Map
+from ..geom import Geom, pix_tuple_to_idx
+from ..utils import _check_width
+from ..wcs import WcsGeom
+
+__all__ = ["RegionGeom"]
+
+
+
+[docs] +class RegionGeom(Geom): + """Map geometry representing a region on the sky. + + The spatial component of the geometry is made up of a + single pixel with an arbitrary shape and size. It can + also have any number of non-spatial dimensions. This class + represents the geometry for the `RegionNDMap` maps. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region object. + axes : list of `MapAxis` + Non-spatial data axes. + wcs : `~astropy.wcs.WCS` + Optional WCS object to project the region if needed. + binsz_wcs : `~astropy.units.Quantity` + Angular bin size of the underlying `~WcsGeom` used to evaluate + quantities in the region. Default is "0.1 deg". This default + value is adequate for the majority of use cases. If a WCS object + is provided, the input of ``binsz_wcs`` is overridden. + """ + + is_regular = True + is_allsky = False + is_hpx = False + is_region = True + + _slice_spatial_axes = slice(0, 2) + _slice_non_spatial_axes = slice(2, None) + projection = "TAN" + + def __init__(self, region, axes=None, wcs=None, binsz_wcs="0.1 deg"): + self._region = region + self._axes = MapAxes.from_default(axes, n_spatial_axes=2) + self._binsz_wcs = u.Quantity(binsz_wcs) + + if wcs is None and region is not None: + if isinstance(region, CompoundSkyRegion): + self._center = compound_region_center(region) + else: + self._center = region.center + + wcs = WcsGeom.create( + binsz=binsz_wcs, + skydir=self._center, + proj=self.projection, + frame=self._center.frame.name, + ).wcs + self._wcs = wcs + # TODO : can we get the width before defining the wcs ? + wcs = WcsGeom.create( + binsz=binsz_wcs, + width=tuple(self.width), + skydir=self._center, + proj=self.projection, + frame=self._center.frame.name, + ).wcs + + self._wcs = wcs + self.ndim = len(self.data_shape) + + # define cached methods + self.get_wcs_coord_and_weights = lru_cache()(self.get_wcs_coord_and_weights) + + def __setstate__(self, state): + for key, value in state.items(): + if key in ["get_wcs_coord_and_weights"]: + state[key] = lru_cache()(value) + self.__dict__ = state + + @property + def frame(self): + """Coordinate system, either Galactic ("galactic") or Equatorial ("icrs").""" + if self.region is None: + return "icrs" + try: + return self.region.center.frame.name + except AttributeError: + return wcs_to_celestial_frame(self.wcs).name + + @property + def binsz_wcs(self): + """Angular bin size of the underlying `~WcsGeom`. + + Returns + ------- + binsz_wcs: `~astropy.coordinates.Angle` + Angular bin size. + """ + return Angle(proj_plane_pixel_scales(self.wcs), unit="deg") + + @lazyproperty + def _rectangle_bbox(self): + if self.region is None: + raise ValueError("Region definition required.") + + regions = compound_region_to_regions(self.region) + regions_pix = [_.to_pixel(self.wcs) for _ in regions] + + bbox = regions_pix[0].bounding_box + + for region_pix in regions_pix[1:]: + bbox = bbox.union(region_pix.bounding_box) + + try: + rectangle_pix = bbox.to_region() + except ValueError: + rectangle_pix = RectanglePixelRegion( + center=PixCoord(*bbox.center[::-1]), width=1, height=1 + ) + return rectangle_pix.to_sky(self.wcs) + + @property + def width(self): + """Width of bounding box of the region. + + Returns + ------- + width : `~astropy.units.Quantity` + Dimensions of the region in both spatial dimensions. + Units: ``deg`` + """ + rectangle = self._rectangle_bbox + return u.Quantity([rectangle.width.to("deg"), rectangle.height.to("deg")]) + + @property + def region(self): + """The spatial component of the region geometry as a `~regions.SkyRegion`.""" + return self._region + + @property + def is_all_point_sky_regions(self): + """Whether regions are all point regions.""" + regions = compound_region_to_regions(self.region) + return np.all([isinstance(_, PointSkyRegion) for _ in regions]) + + @property + def axes(self): + """List of non-spatial axes.""" + return self._axes + + @property + def axes_names(self): + """All axes names.""" + return ["lon", "lat"] + self.axes.names + + @property + def wcs(self): + """WCS projection object.""" + return self._wcs + + @property + def center_coord(self): + """Center coordinate of the region as a `astropy.coordinates.SkyCoord`.""" + return self.pix_to_coord(self.center_pix) + + @property + def center_pix(self): + """Pixel values corresponding to the center of the region.""" + return tuple((np.array(self.data_shape) - 1.0) / 2)[::-1] + + @lazyproperty + def center_skydir(self): + """Sky coordinate of the center of the region.""" + if self.region is None: + return SkyCoord(np.nan * u.deg, np.nan * u.deg) + + return self._rectangle_bbox.center + + @property + def npix(self): + """Number of spatial pixels.""" + return ([1], [1]) + +
+[docs] + def contains(self, coords): + """Check if a given map coordinate is contained in the region. + + Requires the `.region` attribute to be set. + For `PointSkyRegion` the method always returns True. + + Parameters + ---------- + coords : tuple, dict, `MapCoord` or `~astropy.coordinates.SkyCoord` + Object containing coordinate arrays we wish to check for inclusion + in the region. + + Returns + ------- + mask : `~numpy.ndarray` + Boolean array with the same shape as the input that indicates + which coordinates are inside the region. + """ + if self.region is None: + raise ValueError("Region definition required.") + + coords = MapCoord.create(coords, frame=self.frame, axis_names=self.axes.names) + + if self.is_all_point_sky_regions: + return np.ones(coords.skycoord.shape, dtype=bool) + + return self.region.contains(coords.skycoord, self.wcs)
+ + +
+[docs] + def contains_wcs_pix(self, pix): + """Check if a given WCS pixel coordinate is contained in the region. + + For `PointSkyRegion` the method always returns True. + + Parameters + ---------- + pix : tuple + Tuple of pixel coordinates. + + Returns + ------- + containment : `~numpy.ndarray` + Boolean array. + """ + if self.is_all_point_sky_regions: + return np.ones(pix[0].shape, dtype=bool) + + region_pix = self.region.to_pixel(self.wcs) + return region_pix.contains(PixCoord(pix[0], pix[1]))
+ + +
+[docs] + def separation(self, position): + """Angular distance between the center of the region and the given position. + + Parameters + ---------- + position : `astropy.coordinates.SkyCoord` + Sky coordinate we want the angular distance to. + + Returns + ------- + sep : `~astropy.coordinates.Angle` + The on-sky separation between the given coordinate and the region center. + """ + return self.center_skydir.separation(position)
+ + + @property + def data_shape(self): + """Shape of the `~numpy.ndarray` matching this geometry.""" + return self._shape[::-1] + + @property + def data_shape_axes(self): + """Shape of data of the non-spatial axes and unit spatial axes.""" + return self.axes.shape[::-1] + (1, 1) + + @property + def _shape(self): + """Number of bins in each dimension. + + The spatial dimension is always (1, 1), as a + `RegionGeom` is not pixelized further. + """ + return tuple((1, 1) + self.axes.shape) + +
+[docs] + def get_coord(self, mode="center", frame=None, sparse=False, axis_name=None): + """Get map coordinates from the geometry. + + Parameters + ---------- + mode : {'center', 'edges'}, optional + Get center or edge coordinates for the non-spatial axes. + Default is "center". + frame : str or `~astropy.coordinates.Frame`, optional + Coordinate frame. Default is None. + sparse : bool, optional + Compute sparse coordinates. Default is False. + axis_name : str, optional + If mode = "edges", the edges will be returned for this axis only. + Default is None. + + Returns + ------- + coord : `~MapCoord` + Map coordinate object. + """ + if mode == "edges" and axis_name is None: + raise ValueError("Mode 'edges' requires axis name") + + coords = self.axes.get_coord(mode=mode, axis_name=axis_name) + coords["skycoord"] = self.center_skydir.reshape((1, 1)) + + if frame is None: + frame = self.frame + + coords = MapCoord.create(coords, frame=self.frame).to_frame(frame) + + if not sparse: + coords = coords.broadcasted + + return coords
+ + + def _pad_spatial(self, pad_width): + raise NotImplementedError("Spatial padding of `RegionGeom` not supported") + +
+[docs] + def crop(self): + raise NotImplementedError("Cropping of `RegionGeom` not supported")
+ + +
+[docs] + def solid_angle(self): + """Get solid angle of the region. + + Returns + ------- + angle : `~astropy.units.Quantity` + Solid angle of the region in steradians. + Units: ``sr`` + """ + if self.region is None: + raise ValueError("Region definition required.") + + # compound regions do not implement area() + # so we use the mask representation and estimate the area + # from the pixels in the mask using oversampling + if isinstance(self.region, CompoundSkyRegion): + # oversample by a factor of ten + oversampling = 10.0 + wcs = self.to_binsz_wcs(self.binsz_wcs / oversampling).wcs + pixel_region = self.region.to_pixel(wcs) + mask = pixel_region.to_mask() + area = np.count_nonzero(mask) / oversampling**2 + else: + # all other types of regions should implement area + area = self.region.to_pixel(self.wcs).area + + solid_angle = area * proj_plane_pixel_area(self.wcs) * u.deg**2 + return solid_angle.to("sr")
+ + +
+[docs] + def bin_volume(self): + """If the `RegionGeom` has a non-spatial axis, it returns the volume of the region. + If not, it returns the solid angle size. + + Returns + ------- + volume : `~astropy.units.Quantity` + Volume of the region. + """ + bin_volume = self.solid_angle() * np.ones(self.data_shape) + + for idx, ax in enumerate(self.axes): + shape = self.ndim * [1] + shape[-(idx + 3)] = -1 + bin_volume = bin_volume * ax.bin_width.reshape(tuple(shape)) + + return bin_volume
+ + +
+[docs] + def to_wcs_geom(self, width_min=None): + """Get the minimal equivalent geometry which contains the region. + + Parameters + ---------- + width_min : `~astropy.quantity.Quantity`, optional + Minimum width for the resulting geometry. Can be a single number or two, + for different minimum widths in each spatial dimension. + Default is None. + + Returns + ------- + wcs_geom : `~WcsGeom` + A WCS geometry object. + """ + if width_min is not None: + width = np.max( + [self.width.to_value("deg"), _check_width(width_min)], axis=0 + ) + else: + width = self.width + wcs_geom_region = WcsGeom(wcs=self.wcs) + wcs_geom = wcs_geom_region.cutout(position=self.center_skydir, width=width) + wcs_geom = wcs_geom.to_cube(self.axes) + return wcs_geom
+ + +
+[docs] + def to_binsz_wcs(self, binsz): + """Change the bin size of the underlying WCS geometry. + + Parameters + ---------- + binsz : float, str or `~astropy.quantity.Quantity` + Bin size. + + Returns + ------- + region : `~RegionGeom` + Region geometry with the same axes and region as the input, + but different WCS pixelization. + """ + new_geom = RegionGeom(self.region, axes=self.axes, binsz_wcs=binsz) + return new_geom
+ + +
+[docs] + def get_wcs_coord_and_weights(self, factor=10): + """Get the array of spatial coordinates and corresponding weights. + + The coordinates are the center of a pixel that intersects the region and + the weights that represent which fraction of the pixel is contained + in the region. + + Parameters + ---------- + factor : int, optional + Oversampling factor to compute the weights. + Default is 10. + + Returns + ------- + region_coord : `~MapCoord` + MapCoord object with the coordinates inside + the region. + weights : `~numpy.ndarray` + Weights representing the fraction of each pixel + contained in the region. + """ + wcs_geom = self.to_wcs_geom() + + weights = wcs_geom.to_image().region_weights( + regions=[self.region], oversampling_factor=factor + ) + + mask = weights.data > 0 + weights = weights.data[mask] + + # Get coordinates + coords = wcs_geom.get_coord(sparse=True).apply_mask(mask) + return coords, weights
+ + +
+[docs] + def to_binsz(self, binsz): + """Return self.""" + return self
+ + +
+[docs] + def to_cube(self, axes): + """Append non-spatial axes to create a higher-dimensional geometry. + + Returns + ------- + region : `~RegionGeom` + Region geometry with the added axes. + """ + axes = copy.deepcopy(self.axes) + axes + return self._init_copy(region=self.region, wcs=self.wcs, axes=axes)
+ + +
+[docs] + def to_image(self): + """Remove non-spatial axes to create a 2D region. + + Returns + ------- + region : `~RegionGeom` + Region geometry without any non-spatial axes. + """ + return self._init_copy(region=self.region, wcs=self.wcs, axes=None)
+ + +
+[docs] + def upsample(self, factor, axis_name=None): + """Upsample a non-spatial dimension of the region by a given factor. + + Returns + ------- + region : `~RegionGeom` + Region geometry with the upsampled axis. + """ + axes = self.axes.upsample(factor=factor, axis_name=axis_name) + return self._init_copy(region=self.region, wcs=self.wcs, axes=axes)
+ + +
+[docs] + def downsample(self, factor, axis_name): + """Downsample a non-spatial dimension of the region by a given factor. + + Returns + ------- + region : `~RegionGeom` + Region geometry with the downsampled axis. + """ + axes = self.axes.downsample(factor=factor, axis_name=axis_name) + return self._init_copy(region=self.region, wcs=self.wcs, axes=axes)
+ + +
+[docs] + def pix_to_coord(self, pix): + lon = np.where( + (-0.5 < pix[0]) & (pix[0] < 0.5), + self.center_skydir.data.lon, + np.nan * u.deg, + ) + lat = np.where( + (-0.5 < pix[1]) & (pix[1] < 0.5), + self.center_skydir.data.lat, + np.nan * u.deg, + ) + coords = (lon, lat) + + for p, ax in zip(pix[self._slice_non_spatial_axes], self.axes): + coords += (ax.pix_to_coord(p),) + + return coords
+ + +
+[docs] + def pix_to_idx(self, pix, clip=False): + idxs = list(pix_tuple_to_idx(pix)) + + for i, idx in enumerate(idxs[self._slice_non_spatial_axes]): + if clip: + np.clip(idx, 0, self.axes[i].nbin - 1, out=idx) + else: + np.putmask(idx, (idx < 0) | (idx >= self.axes[i].nbin), -1) + + return tuple(idxs)
+ + +
+[docs] + def coord_to_pix(self, coords): + # inherited docstring + if isinstance(coords, tuple) and len(coords) == len(self.axes): + skydir = self.center_skydir.transform_to(self.frame) + coords = (skydir.data.lon, skydir.data.lat) + coords + elif isinstance(coords, dict): + valid_keys = ["lon", "lat", "skycoord"] + if not any([_ in coords for _ in valid_keys]): + coords.setdefault("skycoord", self.center_skydir) + + coords = MapCoord.create(coords, frame=self.frame, axis_names=self.axes.names) + + if self.region is None: + pix = (0, 0) + else: + in_region = self.contains(coords.skycoord) + + x = np.zeros(coords.skycoord.shape) + x[~in_region] = np.nan + + y = np.zeros(coords.skycoord.shape) + y[~in_region] = np.nan + + pix = (x, y) + + pix += self.axes.coord_to_pix(coords) + return pix
+ + +
+[docs] + def get_idx(self): + idxs = [np.arange(n, dtype=float) for n in self.data_shape[::-1]] + return np.meshgrid(*idxs[::-1], indexing="ij")[::-1]
+ + + def _make_bands_cols(self): + return [] + +
+[docs] + @classmethod + def create(cls, region, **kwargs): + """Create region geometry. + + The input region can be passed in the form of a ds9 string and will be parsed + internally by `~regions.Regions.parse`. See: + + * https://astropy-regions.readthedocs.io/en/stable/region_io.html + * http://ds9.si.edu/doc/ref/region.html + + Parameters + ---------- + region : str or `~regions.SkyRegion` + Region definition. + **kwargs : dict + Keyword arguments passed to `RegionGeom.__init__`. + + Returns + ------- + geom : `RegionGeom` + Region geometry. + """ + return cls.from_regions(regions=region, **kwargs)
+ + + def __str__(self): + axes = ["lon", "lat"] + [_.name for _ in self.axes] + try: + frame = self.center_skydir.frame.name + lon = self.center_skydir.data.lon.deg + lat = self.center_skydir.data.lat.deg + except AttributeError: + frame, lon, lat = "", np.nan, np.nan + + return ( + f"{self.__class__.__name__}\n\n" + f"\tregion : {self.region.__class__.__name__}\n" + f"\taxes : {axes}\n" + f"\tshape : {self.data_shape[::-1]}\n" + f"\tndim : {self.ndim}\n" + f"\tframe : {frame}\n" + f"\tcenter : {lon:.1f} deg, {lat:.1f} deg\n" + ) + +
+[docs] + def is_allclose(self, other, rtol_axes=1e-6, atol_axes=1e-6): + """Compare two data IRFs for equivalency. + + Parameters + ---------- + other : `RegionGeom` + Region geometry to compare against. + rtol_axes : float, optional + Relative tolerance for the axes comparison. + Default is 1e-6. + atol_axes : float, optional + Relative tolerance for the axes comparison. + Default is 1e-6. + + Returns + ------- + is_allclose : bool + Whether the geometry is all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self.data_shape != other.data_shape: + return False + + axes_eq = self.axes.is_allclose(other.axes, rtol=rtol_axes, atol=atol_axes) + # TODO: compare regions based on masks... + regions_eq = True + return axes_eq and regions_eq
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + return self.is_allclose(other=other) + + def _to_region_table(self): + """Export region to a FITS region table.""" + if self.region is None: + raise ValueError("Region definition required.") + + region_list = compound_region_to_regions(self.region) + + pixel_region_list = [] + + for reg in region_list: + pixel_region_list.append(reg.to_pixel(self.wcs)) + + table = Regions(pixel_region_list).serialize(format="fits") + + header = WcsGeom(wcs=self.wcs).to_header() + table.meta.update(header) + return table + +
+[docs] + def to_hdulist(self, format="ogip", hdu_bands=None, hdu_region=None): + """Convert geometry to HDU list. + + Parameters + ---------- + format : {"ogip", "gadf", "ogip-sherpa"} + HDU format. Default is "ogip". + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. + Default is None. + hdu_region : str, optional + Name or index of the HDU with the region table. + Not used for the "gadf" format. + Default is None. + + Returns + ------- + hdulist : `~astropy.io.fits.HDUList` + HDU list. + + """ + if hdu_bands is None: + hdu_bands = "HDU_BANDS" + if hdu_region is None: + hdu_region = "HDU_REGION" + if format != "gadf": + hdu_region = "REGION" + + hdulist = fits.HDUList() + + hdulist.append(self.axes.to_table_hdu(hdu_bands=hdu_bands, format=format)) + + # region HDU + if self.region: + region_table = self._to_region_table() + + region_hdu = fits.BinTableHDU(region_table, name=hdu_region) + hdulist.append(region_hdu) + + return hdulist
+ + +
+[docs] + @classmethod + def from_regions(cls, regions, **kwargs): + """Create region geometry from list of regions. + + The regions are combined with union to a compound region. + + Parameters + ---------- + regions : list of `~regions.SkyRegion` or str + Regions. + **kwargs: dict + Keyword arguments forwarded to `RegionGeom`. + + Returns + ------- + geom : `RegionGeom` + Region map geometry. + """ + if isinstance(regions, str): + regions = Regions.parse(data=regions, format="ds9") + elif isinstance(regions, SkyRegion): + regions = [regions] + elif isinstance(regions, SkyCoord): + regions = [PointSkyRegion(center=regions)] + elif isinstance(regions, list) and len(regions) == 0: + regions = None + + if regions: + regions = regions_to_compound_region(regions) + + return cls(region=regions, **kwargs)
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, format="ogip", hdu=None): + """Read region table and convert it to region list. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + HDU list. + format : {"ogip", "ogip-arf", "gadf"} + HDU format. Default is "ogip". + hdu : str, optional + Name of the HDU. Default is None. + + Returns + ------- + geom : `RegionGeom` + Region map geometry. + + """ + region_hdu = "REGION" + + if format == "gadf" and hdu: + region_hdu = f"{hdu}_{region_hdu}" + + if region_hdu in hdulist: + try: + region_table = QTable.read(hdulist[region_hdu]) + regions_pix = Regions.parse(data=region_table, format="fits") + except TypeError: + region_table = Table.read(hdulist[region_hdu]) + regions_pix = Regions.parse(data=region_table, format="fits") + + wcs = WcsGeom.from_header(region_table.meta).wcs + regions = [] + + for region_pix in regions_pix: + # TODO: remove workaround once regions issue with fits serialization is sorted out + # see https://github.com/astropy/regions/issues/400 + # requires update regions to >=v0.6 + region_pix.meta["include"] = True + regions.append(region_pix.to_sky(wcs)) + + region = regions_to_compound_region(regions) + else: + region, wcs = None, None + + if format == "ogip": + hdu_bands = "EBOUNDS" + elif format == "ogip-arf": + hdu_bands = "SPECRESP" + elif format == "gadf": + hdu_bands = hdu + "_BANDS" + else: + raise ValueError(f"Unknown format {format}") + + axes = MapAxes.from_table_hdu(hdulist[hdu_bands], format=format) + return cls(region=region, wcs=wcs, axes=axes)
+ + +
+[docs] + def union(self, other): + """Stack a `RegionGeom` by making the union.""" + if not self == other: + raise ValueError("Can only make union if extra axes are equivalent.") + if other.region: + if self.region: + self._region = self.region.union(other.region) + else: + self._region = other.region
+ + +
+[docs] + def plot_region(self, ax=None, kwargs_point=None, path_effect=None, **kwargs): + """Plot region in the sky. + + Parameters + ---------- + ax : `~astropy.visualization.WCSAxes`, optional + Axes to plot on. If no axes are given, + the region is shown using the minimal + equivalent WCS geometry. + Default is None. + kwargs_point : dict, optional + Keyword arguments passed to `~matplotlib.lines.Line2D` for plotting + of point sources. Default is None. + path_effect : `~matplotlib.patheffects.PathEffect`, optional + Path effect applied to artists and lines. + Default is None. + **kwargs : dict + Keyword arguments forwarded to `~regions.PixelRegion.as_artist`. + + Returns + ------- + ax : `~astropy.visualization.WCSAxes` + Axes to plot on. + """ + if self.region: + kwargs_point = kwargs_point or {} + + if ax is None: + ax = plt.gca() + + if not isinstance(ax, WCSAxes): + ax.remove() + wcs_geom = self.to_wcs_geom() + m = Map.from_geom(geom=wcs_geom.to_image()) + ax = m.plot(add_cbar=False, vmin=-1, vmax=0) + + kwargs.setdefault("facecolor", "None") + kwargs.setdefault("edgecolor", "tab:blue") + kwargs_point.setdefault("marker", "*") + + for key, value in kwargs.items(): + key_point = ARTIST_TO_LINE_PROPERTIES.get(key, None) + if key_point: + kwargs_point[key_point] = value + + for region in compound_region_to_regions(self.region): + region_pix = region.to_pixel(wcs=ax.wcs) + + if isinstance(region, PointSkyRegion): + artist = region_pix.as_artist(**kwargs_point) + else: + artist = region_pix.as_artist(**kwargs) + + if path_effect: + artist.add_path_effect(path_effect) + + ax.add_artist(artist) + + return ax + else: + logging.info("Region definition required.")
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/region/ndmap.html b/docs/dev/_modules/gammapy/maps/region/ndmap.html new file mode 100644 index 00000000000..2aab52a4376 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/region/ndmap.html @@ -0,0 +1,1447 @@ + + + + + + + + + + gammapy.maps.region.ndmap — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.region.ndmap

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+from itertools import product
+import numpy as np
+from scipy.ndimage import label as ndi_label
+from astropy import units as u
+from astropy.io import fits
+from astropy.nddata import block_reduce
+from astropy.table import Table
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.utils.interpolation import ScaledRegularGridInterpolator, StatProfileScale
+from gammapy.utils.scripts import make_path
+from ..axes import MapAxes
+from ..core import Map
+from ..geom import pix_tuple_to_idx
+from ..region import RegionGeom
+from ..utils import INVALID_INDEX
+
+__all__ = ["RegionNDMap"]
+
+
+
+[docs] +class RegionNDMap(Map): + """N-dimensional region map. + + A `~RegionNDMap` owns a `~RegionGeom` instance as well as a data array + containing the values associated to that region in the sky along the non-spatial + axis, usually an energy axis. The spatial dimensions of a `~RegionNDMap` + are reduced to a single spatial bin with an arbitrary shape, + and any extra dimensions are described by an arbitrary number of non-spatial axes. + + Parameters + ---------- + geom : `~gammapy.maps.RegionGeom` + Region geometry object. + data : `~numpy.ndarray` + Data array. If None then an empty array will be allocated. + dtype : str, optional + Data type. Default is "float32". + meta : `dict`, optional + Dictionary to store metadata. + Default is None. + unit : str or `~astropy.units.Unit`, optional + The map unit. + Default is "". + """ + + def __init__(self, geom, data=None, dtype="float32", meta=None, unit=""): + if data is None: + data = np.zeros(geom.data_shape, dtype=dtype) + + if meta is None: + meta = {} + + self._geom = geom + self.data = data + self.meta = meta + self._unit = u.Unit(unit) + + @property + def data(self): + return self._data + + @data.setter + def data(self, value): + """Set data. + Parameters + ---------- + value : array-like + Data array. + """ + if np.isscalar(value): + value = value * np.ones(self.geom.data_shape, dtype=type(value)) + + if isinstance(value, u.Quantity): + raise TypeError("Map data must be a Numpy array. Set unit separately") + + input_shape = value.shape + if len(self.geom.data_shape) == 2 + len(value.shape): + if self.geom.data_shape[: len(value.shape)] == value.shape: + value = np.expand_dims(value, (-2, -1)) + + if self.geom.data_shape != value.shape: + raise ValueError( + f"Input shape {input_shape} is not compatible with shape from geometry {self.geom.data_shape}" + ) + + self._data = value + +
+[docs] + def plot(self, ax=None, axis_name=None, **kwargs): + """Plot the data contained in region map along the non-spatial axis. + + Parameters + ---------- + ax : `~matplotlib.pyplot.Axis`, optional + Axis used for plotting. + Default is None. + axis_name : str, optional + Which axis to plot on the x-axis. Extra axes will be plotted as + additional lines. Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.errorbar`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Axis used for plotting. + """ + ax = ax or plt.gca() + + if axis_name is None: + if self.geom.axes.is_unidimensional: + axis_name = self.geom.axes.primary_axis.name + else: + raise ValueError( + "Plotting a region map with multiple extra axes requires " + "specifying the 'axis_name' keyword." + ) + + axis = self.geom.axes[axis_name] + + kwargs.setdefault("marker", "o") + kwargs.setdefault("markersize", 4) + kwargs.setdefault("ls", "None") + kwargs.setdefault("xerr", axis.as_plot_xerr) + + yerr_nd, yerr = kwargs.pop("yerr", None), None + uplims_nd, uplims = kwargs.pop("uplims", None), None + label_default = kwargs.pop("label", None) + + labels = product( + *[ax.as_plot_labels for ax in self.geom.axes if ax.name != axis.name] + ) + + for label_axis, (idx, quantity) in zip( + labels, self.iter_by_axis_data(axis_name=axis.name) + ): + if isinstance(yerr_nd, tuple): + yerr = yerr_nd[0][idx], yerr_nd[1][idx] + elif isinstance(yerr_nd, np.ndarray): + yerr = yerr_nd[idx] + + if uplims_nd is not None: + uplims = uplims_nd[idx] + + label = " ".join(label_axis) if label_default is None else label_default + + with quantity_support(): + ax.errorbar( + x=axis.as_plot_center, + y=quantity, + yerr=yerr, + uplims=uplims, + label=label, + **kwargs, + ) + axis.format_plot_xaxis(ax=ax) + + if "energy" in axis_name: + ax.set_yscale("log", nonpositive="clip") + + return ax
+ + +
+[docs] + def plot_hist(self, ax=None, **kwargs): + """Plot as histogram. + + Parameters + ---------- + ax : `~matplotlib.axis`, optional + Axis instance to be used for the plot. + Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.hist`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Axis used for plotting. + """ + ax = plt.gca() if ax is None else ax + + kwargs.setdefault("histtype", "step") + kwargs.setdefault("lw", 1) + + if not self.geom.axes.is_unidimensional: + raise ValueError("Plotting is only supported for unidimensional maps") + + axis = self.geom.axes[0] + + with quantity_support(): + weights = self.data[:, 0, 0] + ax.hist( + axis.as_plot_center, bins=axis.as_plot_edges, weights=weights, **kwargs + ) + + if not self.unit.is_unity(): + ax.set_ylabel(f"Data [{self.unit.to_string(UNIT_STRING_FORMAT)}]") + + axis.format_plot_xaxis(ax=ax) + ax.set_yscale("log") + return ax
+ + +
+[docs] + def plot_interactive(self): + raise NotImplementedError( + "Interactive plotting currently not support for RegionNDMap" + )
+ + +
+[docs] + def plot_region(self, ax=None, **kwargs): + """Plot region. + + Parameters + ---------- + ax : `~astropy.visualization.WCSAxes`, optional + Axes to plot on. If no axes are given, + the region is shown using the minimal + equivalent WCS geometry. Default is None. + **kwargs : dict + Keyword arguments forwarded to `~regions.PixelRegion.as_artist`. + """ + ax = self.geom.plot_region(ax, **kwargs) + return ax
+ + +
+[docs] + def plot_mask(self, ax=None, **kwargs): + """Plot the mask as a shaded area in a xmin-xmax range. + + Parameters + ---------- + ax : `~matplotlib.axis`, optional + Axis instance to be used for the plot. + Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.axvspan`. + + Returns + ------- + ax : `~matplotlib.pyplot.Axis` + Axis used for plotting. + """ + if not self.is_mask: + raise ValueError("This is not a mask and cannot be plotted") + + kwargs.setdefault("color", "k") + kwargs.setdefault("alpha", 0.05) + kwargs.setdefault("label", "mask") + + ax = plt.gca() if ax is None else ax + + edges = self.geom.axes["energy"].edges.reshape((-1, 1, 1)) + + labels, nlabels = ndi_label(self.data) + + for idx in range(1, nlabels + 1): + mask = labels == idx + xmin = edges[:-1][mask].min().value + xmax = edges[1:][mask].max().value + ax.axvspan(xmin, xmax, **kwargs) + + return ax
+ + +
+[docs] + @classmethod + def create( + cls, + region, + axes=None, + dtype="float32", + meta=None, + unit="", + wcs=None, + binsz_wcs="0.1 deg", + data=None, + ): + """Create an empty region map object. + + Parameters + ---------- + region : str or `~regions.SkyRegion` + Region specification. + axes : list of `MapAxis`, optional + Non-spatial axes. Default is None. + dtype : str, optional + Data type. Default is 'float32'. + unit : str or `~astropy.units.Unit`, optional + Data unit. Default is "". + meta : `dict`, optional + Dictionary to store metadata. + Default is None. + wcs : `~astropy.wcs.WCS`, optional + WCS projection to use for local projections of the region. + Default is None. + binsz_wcs: `~astropy.units.Quantity` or str, optional + Bin size used for the default WCS, if ``wcs=None``. + Default is "0.1 deg". + data : `~numpy.ndarray`, optional + Data array. Default is None. + + Returns + ------- + map : `RegionNDMap` + Region map. + """ + geom = RegionGeom.create(region=region, axes=axes, wcs=wcs, binsz_wcs=binsz_wcs) + return cls(geom=geom, dtype=dtype, unit=unit, meta=meta, data=data)
+ + +
+[docs] + def downsample(self, factor, preserve_counts=True, axis_name=None, weights=None): + """Downsample the non-spatial dimension by a given factor. + + By default, the first axes is downsampled. + + Parameters + ---------- + factor : int + Downsampling factor. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the map is an integral quantity (e.g. counts) and false if + the map is a differential quantity (e.g. intensity). + Default is True. + axis_name : str, optional + Which axis to downsample. Default is "energy". + weights : `RegionNDMap`, optional + Contains the weights to apply to the axis to reduce. Default + weights of one. + + Returns + ------- + map : `RegionNDMap` + Downsampled region map. + """ + if axis_name is None: + axis_name = self.geom.axes[0].name + + geom = self.geom.downsample(factor=factor, axis_name=axis_name) + + block_size = [1] * self.data.ndim + idx = self.geom.axes.index_data(axis_name) + block_size[idx] = factor + + if weights is None: + weights = 1 + else: + weights = weights.data + + func = np.nansum if preserve_counts else np.nanmean + if self.is_mask: + func = np.all + data = block_reduce(self.data * weights, tuple(block_size), func=func) + + return self._init_copy(geom=geom, data=data)
+ + +
+[docs] + def upsample(self, factor, order=0, preserve_counts=True, axis_name=None): + """Upsample the non-spatial dimension by a given factor. + + By default, the first axes is upsampled. + + Parameters + ---------- + factor : int + Upsampling factor. + order : int, optional + Order of the interpolation used for upsampling. + Default is 0. + preserve_counts : bool, optional + Preserve the integral over each bin. This should be true + if the RegionNDMap is an integral quantity (e.g. counts) and false if + the RegionNDMap is a differential quantity (e.g. intensity). + Default is True. + axis_name : str, optional + Which axis to upsample. Default is "energy". + + Returns + ------- + map : `RegionNDMap` + Upsampled region map. + """ + if axis_name is None: + axis_name = self.geom.axes[0].name + + geom = self.geom.upsample(factor=factor, axis_name=axis_name) + data = self.interp_by_coord(geom.get_coord()) + + if preserve_counts: + data /= factor + + return self._init_copy(geom=geom, data=data)
+ + +
+[docs] + def iter_by_axis_data(self, axis_name): + """Iterate data by axis. + + Parameters + ---------- + axis_name : str + Axis name. + + Returns + ------- + idx, data : tuple, `~astropy.units.Quantity` + Data and index. + """ + idx_axis = self.geom.axes.index_data(axis_name) + shape = list(self.data.shape) + shape[idx_axis] = 1 + + for idx in np.ndindex(*shape): + idx = list(idx) + idx[idx_axis] = slice(None) + yield tuple(idx), self.quantity[tuple(idx)]
+ + + def _resample_by_idx(self, idx, weights=None, preserve_counts=False): + # inherited docstring + # TODO: too complex, simplify! + idx = pix_tuple_to_idx(idx) + + msk = np.all(np.stack([t != INVALID_INDEX.int for t in idx]), axis=0) + idx = [t[msk] for t in idx] + + if weights is not None: + if isinstance(weights, u.Quantity): + weights = weights.to_value(self.unit) + weights = weights[msk] + + idx = np.ravel_multi_index(idx, self.data.T.shape) + idx, idx_inv = np.unique(idx, return_inverse=True) + weights = np.bincount(idx_inv, weights=weights).astype(self.data.dtype) + if not preserve_counts: + weights /= np.bincount(idx_inv).astype(self.data.dtype) + self.data.T.flat[idx] += weights + +
+[docs] + def fill_by_idx(self, idx, weights=None): + return self._resample_by_idx(idx, weights=weights, preserve_counts=True)
+ + +
+[docs] + def get_by_idx(self, idxs): + # inherited docstring + return self.data[idxs[::-1]]
+ + +
+[docs] + def interp_by_coord(self, coords, **kwargs): + """Interpolate map values at the given map coordinates. + + Parameters + ---------- + coords : tuple, dict or `~gammapy.maps.MapCoord` + Coordinate arrays for each dimension of the map. Tuple + should be ordered as (lon, lat, x_0, ..., x_n) where x_i + are coordinates for non-spatial dimensions of the map. + "lon" and "lat" are optional and will be taken at the center + of the region by default. + method : {"linear", "nearest"} + Method to interpolate data values. Default is "linear". + fill_value : None or float value + The value to use for points outside the interpolation domain. + If None, values outside the domain are extrapolated. + values_scale : {"lin", "log", "sqrt"} + Optional value scaling. + + Returns + ------- + vals : `~numpy.ndarray` + Interpolated pixel values. + """ + pix = self.geom.coord_to_pix(coords=coords) + return self.interp_by_pix(pix, **kwargs)
+ + +
+[docs] + def interp_by_pix(self, pix, **kwargs): + # inherited docstring + grid_pix = [np.arange(n, dtype=float) for n in self.data.shape[::-1]] + + if np.any(np.isfinite(self.data)): + data = self.data.copy().T + data[~np.isfinite(data)] = 0.0 + else: + data = self.data.T + + scale = kwargs.get("values_scale", "lin") + + if scale == "stat-profile": + axis = 2 + self.geom.axes.index("norm") + kwargs["values_scale"] = StatProfileScale(axis=axis) + + fn = ScaledRegularGridInterpolator(grid_pix, data, **kwargs) + return fn(tuple(pix), clip=False)
+ + +
+[docs] + def set_by_idx(self, idx, value): + # inherited docstring + self.data[idx[::-1]] = value
+ + +
+[docs] + @classmethod + def read(cls, filename, format="gadf", ogip_column=None, hdu=None, checksum=False): + """Read from file. + + Parameters + ---------- + filename : `pathlib.Path` or str + Filename. + format : {"gadf", "ogip", "ogip-arf"} + Which format to use. Default is "gadf". + ogip_column : {None, "COUNTS", "QUALITY", "BACKSCAL"}, optional + If format 'ogip' is chosen which table hdu column to read. + Default is None. + hdu : str, optional + Name or index of the HDU with the map data. + Default is None. + checksum : bool + If True checks both DATASUM and CHECKSUM cards in the file headers. Default is False. + + Returns + ------- + region_map : `RegionNDMap` + Region map. + """ + filename = make_path(filename) + with fits.open(filename, memmap=False, checksum=checksum) as hdulist: + return cls.from_hdulist( + hdulist, format=format, ogip_column=ogip_column, hdu=hdu + )
+ + +
+[docs] + def write( + self, filename, overwrite=False, format="gadf", hdu="SKYMAP", checksum=False + ): + """Write map to file. + + Parameters + ---------- + filename : `pathlib.Path` or str + Filename. + overwrite : bool, optional + Overwrite existing file. Default is False. + format : {"gadf", "ogip", "ogip-sherpa", "ogip-arf", "ogip-arf-sherpa"} + Which format to use. Default is "gadf". + hdu : str, optional + Name of the HDU. Default is "SKYMAP". + checksum : bool, optional + When True adds both DATASUM and CHECKSUM cards to the headers written to the file. + Default is False. + """ + filename = make_path(filename) + self.to_hdulist(format=format, hdu=hdu).writeto( + filename, overwrite=overwrite, checksum=checksum + )
+ + +
+[docs] + def to_hdulist(self, format="gadf", hdu="SKYMAP", hdu_bands=None, hdu_region=None): + """Convert to `~astropy.io.fits.HDUList`. + + Parameters + ---------- + format : {"gadf", "ogip", "ogip-sherpa", "ogip-arf", "ogip-arf-sherpa"} + Format specification. Default is "gadf". + hdu : str, optional + Name of the HDU with the map data, used for "gadf" format. + Default is "SKYMAP". + hdu_bands : str, optional + Name or index of the HDU with the BANDS table, used for "gadf" format. + Default is None. + hdu_region : str, optional + Name or index of the HDU with the region table. + Default is None. + + Returns + ------- + hdulist : `~astropy.fits.HDUList` + HDU list. + """ + hdulist = fits.HDUList() + table = self.to_table(format=format) + + if hdu_bands is None: + hdu_bands = f"{hdu.upper()}_BANDS" + if hdu_region is None: + hdu_region = f"{hdu.upper()}_REGION" + + if format in ["ogip", "ogip-sherpa", "ogip-arf", "ogip-arf-sherpa"]: + hdulist.append(fits.BinTableHDU(table)) + elif format == "gadf": + table.meta.update(self.geom.axes.to_header()) + hdulist.append(fits.BinTableHDU(table, name=hdu)) + else: + raise ValueError(f"Unsupported format '{format}'") + + if format in ["ogip", "ogip-sherpa", "gadf"]: + hdulist_geom = self.geom.to_hdulist( + format=format, hdu_bands=hdu_bands, hdu_region=hdu_region + ) + hdulist.extend(hdulist_geom[1:]) + + return hdulist
+ + +
+[docs] + @classmethod + def from_table(cls, table, format="", colname=None): + """Create region map from table. + + Parameters + ---------- + table : `~astropy.table.Table` + Table with input data. + format : {"gadf-sed", "lightcurve", "profile"} + Format to use. + colname : str + Column name to take the data from. + + Returns + ------- + region_map : `RegionNDMap` + Region map. + """ + if format == "gadf-sed": + if colname is None: + raise ValueError("Column name required") + + axes = MapAxes.from_table(table=table, format=format) + + if colname == "stat_scan": + names = ["norm", "energy"] + # TODO: this is not officially supported by GADF... + elif colname in ["counts", "npred", "npred_excess"]: + names = ["dataset", "energy"] + else: + names = ["energy"] + + axes = axes[names] + data = table[colname].data + unit = table[colname].unit or "" + elif format == "lightcurve": + axes = MapAxes.from_table(table=table, format=format) + + if colname == "stat_scan": + names = ["norm", "energy", "time"] + # TODO: this is not officially supported by GADF... + elif colname in ["counts", "npred", "npred_excess"]: + names = ["dataset", "energy", "time"] + else: + names = ["energy", "time"] + + axes = axes[names] + data = table[colname].data + unit = table[colname].unit or "" + elif format == "profile": + axes = MapAxes.from_table(table=table, format=format) + + if colname == "stat_scan": + names = ["norm", "energy", "projected-distance"] + # TODO: this is not officially supported by GADF... + elif colname in ["counts", "npred", "npred_excess"]: + names = ["dataset", "energy", "projected-distance"] + else: + names = ["energy", "projected-distance"] + + axes = axes[names] + data = table[colname].data + unit = table[colname].unit or "" + else: + raise ValueError(f"Format not supported {format}") + + geom = RegionGeom.create(region=None, axes=axes) + data = data.reshape(geom.data_shape) + return cls(geom=geom, data=data, unit=unit, meta=table.meta, dtype=data.dtype)
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdulist, format="gadf", ogip_column=None, hdu=None, **kwargs): + """Create from `~astropy.io.fits.HDUList`. + + Parameters + ---------- + hdulist : `~astropy.io.fits.HDUList` + HDU list. + format : {"gadf", "ogip", "ogip-arf"} + Format specification. Default is "gadf". + ogip_column : {"COUNTS", "QUALITY", "BACKSCAL"}, optional + If format 'ogip' is chosen which table HDU column to read. + Default is None. + hdu : str, optional + Name or index of the HDU with the map data. + Default is None. + + Returns + ------- + region_nd_map : `RegionNDMap` + Region map. + """ + defaults = { + "ogip": {"hdu": "SPECTRUM", "column": "COUNTS"}, + "ogip-arf": {"hdu": "SPECRESP", "column": "SPECRESP"}, + "gadf": {"hdu": "SKYMAP", "column": "DATA"}, + } + + if hdu is None: + hdu = defaults[format]["hdu"] + + if ogip_column is None: + ogip_column = defaults[format]["column"] + + geom = RegionGeom.from_hdulist(hdulist, format=format, hdu=hdu) + + table = Table.read(hdulist[hdu]) + quantity = table[ogip_column].quantity.reshape(geom.data_shape) + + if ogip_column == "QUALITY": + data, unit = np.logical_not(quantity.value.astype(bool)), "" + else: + data, unit = quantity.value, quantity.unit + + return cls(geom=geom, data=data, meta=table.meta, unit=unit, dtype=data.dtype)
+ + + def _pad_spatial(self, *args, **kwargs): + raise NotImplementedError("Spatial padding is not supported by RegionNDMap") + +
+[docs] + def crop(self): + raise NotImplementedError("Crop is not supported by RegionNDMap")
+ + +
+[docs] + def stack(self, other, weights=None, nan_to_num=True): + """Stack other region map into map. + + Parameters + ---------- + other : `RegionNDMap` + Other map to stack. + weights : `RegionNDMap`, optional + Array to be used as weights. The spatial geometry must be equivalent + to `other` and additional axes must be broadcastable. + Default is None. + nan_to_num: bool, optional + Non-finite values are replaced by zero if True. + Default is True. + """ + data = other.quantity.to_value(self.unit).astype(self.data.dtype) + + # TODO: re-think stacking of regions. Is making the union reasonable? + # self.geom.union(other.geom) + if nan_to_num: + not_finite = ~np.isfinite(data) + if np.any(not_finite): + data = data.copy() + data[not_finite] = 0 + if weights is not None: + if not other.geom.to_image() == weights.geom.to_image(): + raise ValueError("Incompatible geoms between map and weights") + data = data * weights.data + + self.data += data
+ + +
+[docs] + def to_table(self, format="gadf"): + """Convert to `~astropy.table.Table`. + + Data format specification: :ref:`gadf:ogip-pha`. + + Parameters + ---------- + format : {"gadf", "ogip", "ogip-arf", "ogip-arf-sherpa"} + Format specification. Default is "gadf". + + Returns + ------- + table : `~astropy.table.Table` + Table. + """ + data = np.nan_to_num(self.quantity[:, 0, 0]) + + if format == "ogip": + if len(self.geom.axes) > 1: + raise ValueError( + f"Writing to format '{format}' only supports a " + f"single energy axis. Got {self.geom.axes.names}" + ) + + energy_axis = self.geom.axes[0] + energy_axis.assert_name("energy") + table = Table() + table["CHANNEL"] = np.arange(energy_axis.nbin, dtype=np.int16) + table["COUNTS"] = np.array(data, dtype=np.int32) + + # see https://heasarc.gsfc.nasa.gov/docs/heasarc/ofwg/docs/spectra/ogip_92_007/node6.html # noqa: E501 + table.meta = { + "EXTNAME": "SPECTRUM", + "telescop": "unknown", + "instrume": "unknown", + "filter": "None", + "exposure": 0, + "corrfile": "", + "corrscal": "", + "ancrfile": "", + "hduclass": "OGIP", + "hduclas1": "SPECTRUM", + "hduvers": "1.2.1", + "poisserr": True, + "chantype": "PHA", + "detchans": energy_axis.nbin, + "quality": 0, + "backscal": 0, + "grouping": 0, + "areascal": 1, + } + + elif format in ["ogip-arf", "ogip-arf-sherpa"]: + if len(self.geom.axes) > 1: + raise ValueError( + f"Writing to format '{format}' only supports a " + f"single energy axis. Got {self.geom.axes.names}" + ) + + energy_axis = self.geom.axes[0] + table = energy_axis.to_table(format=format) + table.meta = { + "EXTNAME": "SPECRESP", + "telescop": "unknown", + "instrume": "unknown", + "filter": "None", + "hduclass": "OGIP", + "hduclas1": "RESPONSE", + "hduclas2": "SPECRESP", + "hduvers": "1.1.0", + } + + if format == "ogip-arf-sherpa": + data = data.to("cm2") + + table["SPECRESP"] = data + + elif format == "gadf": + table = Table() + data = self.quantity + table["CHANNEL"] = np.arange(len(data), dtype=np.int16) + table["DATA"] = data + else: + raise ValueError(f"Unsupported format: '{format}'") + + meta = {k: self.meta.get(k, v) for k, v in table.meta.items()} + table.meta.update(meta) + return table
+ + +
+[docs] + def get_spectrum(self, *args, **kwargs): + """Return self.""" + return self
+ + +
+[docs] + def to_region_nd_map(self, *args, **kwargs): + """Return self.""" + return self
+ + +
+[docs] + def cutout(self, *args, **kwargs): + """Return self.""" + return self
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/wcs/core.html b/docs/dev/_modules/gammapy/maps/wcs/core.html new file mode 100644 index 00000000000..5c5598af61a --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/wcs/core.html @@ -0,0 +1,862 @@ + + + + + + + + + + gammapy.maps.wcs.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.wcs.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import json
+import numpy as np
+import astropy.units as u
+from astropy.io import fits
+from gammapy.utils.types import JsonQuantityEncoder
+from ..core import Map
+from ..io import find_bands_hdu, find_hdu
+from .geom import WcsGeom
+from .io import identify_wcs_format
+
+__all__ = ["WcsMap"]
+
+
+
+[docs] +class WcsMap(Map): + """Base class for WCS map classes. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + A WCS geometry object. + data : `~numpy.ndarray` + Data array. + """ + +
+[docs] + @classmethod + def create( + cls, + map_type="wcs", + npix=None, + binsz=0.1, + width=None, + proj="CAR", + frame="icrs", + refpix=None, + axes=None, + skydir=None, + dtype="float32", + meta=None, + unit="", + ): + """Factory method to create an empty WCS map. + + Parameters + ---------- + map_type : {'wcs', 'wcs-sparse'}, optional + Map type. Selects the class that will be used to + instantiate the map. Default is "wcs". + npix : int or tuple or list, optional + Width of the map in pixels. A tuple will be interpreted as + parameters for longitude and latitude axes. For maps with + non-spatial dimensions, list input can be used to define a + different map width in each image plane. This option + supersedes width. Default is None. + binsz : float or tuple or list, optional + Map pixel size in degrees. A tuple will be interpreted + as parameters for longitude and latitude axes. For maps + with non-spatial dimensions, list input can be used to + define a different bin size in each image plane. + Default is 0.1. + width : float or tuple or list, optional + Width of the map in degrees. A tuple will be interpreted + as parameters for longitude and latitude axes. For maps + with non-spatial dimensions, list input can be used to + define a different map width in each image plane. + Default is None. + proj : string, optional + Any valid WCS projection type. Default is 'CAR' (cartesian). + frame : {"icrs", "galactic"}, optional + Coordinate system, either Galactic ("galactic") or Equatorial ("icrs"). + Default is "icrs". + refpix : tuple, optional + Reference pixel of the projection. If None then this will + be chosen to be center of the map. Default is None. + axes : list, optional + List of non-spatial axes. Default is None. + skydir : tuple or `~astropy.coordinates.SkyCoord`, optional + Sky position of map center. Can be either a SkyCoord + object or a tuple of longitude and latitude in degrees in the + coordinate system of the map. + dtype : str, optional + Data type. Default is "float32". + meta : `dict`, optional + Dictionary to store metadata. Default is None. + unit : str or `~astropy.units.Unit`, optional + The unit of the map. Default is "". + + Returns + ------- + map : `~WcsMap` + A WCS map object. + """ + from .ndmap import WcsNDMap + + geom = WcsGeom.create( + npix=npix, + binsz=binsz, + width=width, + proj=proj, + skydir=skydir, + frame=frame, + refpix=refpix, + axes=axes, + ) + + if map_type == "wcs": + return WcsNDMap(geom, dtype=dtype, meta=meta, unit=unit) + elif map_type == "wcs-sparse": + raise NotImplementedError + else: + raise ValueError(f"Invalid map type: {map_type!r}")
+ + +
+[docs] + @classmethod + def from_hdulist(cls, hdu_list, hdu=None, hdu_bands=None, format="gadf"): + """Make a WcsMap object from a FITS HDUList. + + Parameters + ---------- + hdu_list : `~astropy.io.fits.HDUList` + HDU list containing HDUs for map data and bands. + hdu : str, optional + Name or index of the HDU with the map data. + Default is None. + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. + Default is None. + format : {'gadf', 'fgst-ccube', 'fgst-template'}, optional + FITS format convention. Default is "gadf". + + Returns + ------- + wcs_map : `WcsMap` + Map object. + """ + if hdu is None: + hdu = find_hdu(hdu_list) + else: + hdu = hdu_list[hdu] + + if hdu_bands is None: + hdu_bands = find_bands_hdu(hdu_list, hdu) + + if hdu_bands is not None: + hdu_bands = hdu_list[hdu_bands] + + format = identify_wcs_format(hdu_bands) + + wcs_map = cls.from_hdu(hdu, hdu_bands, format=format) + + if wcs_map.unit.is_equivalent(""): + if format == "fgst-template": + if "GTI" in hdu_list: # exposure maps have an additional GTI hdu + wcs_map._unit = u.Unit("cm2 s") + else: + wcs_map._unit = u.Unit("cm-2 s-1 MeV-1 sr-1") + + return wcs_map
+ + +
+[docs] + def to_hdulist(self, hdu=None, hdu_bands=None, sparse=False, format="gadf"): + """Convert to `~astropy.io.fits.HDUList`. + + Parameters + ---------- + hdu : str, optional + Name or index of the HDU with the map data. + Default is None. + hdu_bands : str, optional + Name or index of the HDU with the BANDS table. + Default is None. + sparse : bool, optional + Sparsify the map by only writing pixels with non-zero + amplitude. Default is False. + format : {'gadf', 'fgst-ccube','fgst-template'}, optional + FITS format convention. Default is "gadf". + + Returns + ------- + hdu_list : `~astropy.io.fits.HDUList` + HDU list. + """ + if sparse: + hdu = "SKYMAP" if hdu is None else hdu.upper() + else: + hdu = "PRIMARY" if hdu is None else hdu.upper() + + if sparse and hdu == "PRIMARY": + raise ValueError("Sparse maps cannot be written to the PRIMARY HDU.") + + if format in ["fgst-ccube", "fgst-template"]: + if self.geom.axes[0].name != "energy" or len(self.geom.axes) > 1: + raise ValueError( + "All 'fgst' formats don't support extra axes except for energy." + ) + + if hdu_bands is None: + hdu_bands = f"{hdu.upper()}_BANDS" + + if self.geom.axes: + hdu_bands_out = self.geom.to_bands_hdu(hdu_bands=hdu_bands, format=format) + hdu_bands = hdu_bands_out.name + else: + hdu_bands = None + + hdu_out = self.to_hdu(hdu=hdu, hdu_bands=hdu_bands, sparse=sparse) + + hdu_out.header["META"] = json.dumps(self.meta, cls=JsonQuantityEncoder) + + hdu_out.header["BUNIT"] = self.unit.to_string("fits") + + if hdu == "PRIMARY": + hdulist = [hdu_out] + else: + hdulist = [fits.PrimaryHDU(), hdu_out] + + if self.geom.axes: + hdulist += [hdu_bands_out] + + return fits.HDUList(hdulist)
+ + +
+[docs] + def to_hdu(self, hdu="SKYMAP", hdu_bands=None, sparse=False): + """Make a FITS HDU from this map. + + Parameters + ---------- + hdu : str, optional + The HDU extension name. + Default is "SKYMAP". + hdu_bands : str, optional + The HDU extension name for BANDS table. + Default is None. + sparse : bool, optional + Set INDXSCHM to SPARSE and sparsify the map by only + writing pixels with non-zero amplitude. + Default is False. + + Returns + ------- + hdu : `~astropy.io.fits.BinTableHDU` or `~astropy.io.fits.ImageHDU` + HDU containing the map data. + """ + header = self.geom.to_header() + + if self.is_mask: + data = self.data.astype(int) + else: + data = self.data + + if hdu_bands is not None: + header["BANDSHDU"] = hdu_bands + + if sparse: + hdu_out = self._make_hdu_sparse(data, self.geom.npix, hdu, header) + elif hdu == "PRIMARY": + hdu_out = fits.PrimaryHDU(data, header=header) + else: + hdu_out = fits.ImageHDU(data, header=header, name=hdu) + + return hdu_out
+ + + @staticmethod + def _make_hdu_sparse(data, npix, hdu, header): + shape = data.shape + + # We make a copy, because below we modify `data` to handle non-finite entries + # TODO: The code below could probably be simplified to use expressions + # that create new arrays instead of in-place modifications + # But first: do we want / need the non-finite entry handling at all and + # always cast to 64-bit float? + data = data.copy() + + if len(shape) == 2: + data_flat = np.ravel(data) + non_zero = np.where(~(data_flat == 0)) + value = data_flat[non_zero].astype(float) + cols = [ + fits.Column("PIX", "J", array=non_zero[0]), + fits.Column("VALUE", "E", array=value), + ] + elif npix[0].size == 1: + shape_flat = shape[:-2] + (shape[-1] * shape[-2],) + data_flat = np.ravel(data).reshape(shape_flat) + nonzero = np.where(~(data_flat == 0)) + channel = np.ravel_multi_index(nonzero[:-1], shape[:-2]) + value = data_flat[nonzero].astype(float) + cols = [ + fits.Column("PIX", "J", array=nonzero[-1]), + fits.Column("CHANNEL", "I", array=channel), + fits.Column("VALUE", "E", array=value), + ] + else: + data_flat = [] + channel = [] + pix = [] + for i, _ in np.ndenumerate(npix[0]): + data_i = np.ravel(data[i[::-1]]) + pix_i = np.where(~(data_i == 0)) + data_i = data_i[pix_i] + data_flat += [data_i] + pix += pix_i + channel += [ + np.ones(data_i.size, dtype=int) + * np.ravel_multi_index(i[::-1], shape[:-2]) + ] + + pix = np.concatenate(pix) + channel = np.concatenate(channel) + value = np.concatenate(data_flat).astype(float) + + cols = [ + fits.Column("PIX", "J", array=pix), + fits.Column("CHANNEL", "I", array=channel), + fits.Column("VALUE", "E", array=value), + ] + + return fits.BinTableHDU.from_columns(cols, header=header, name=hdu)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/wcs/geom.html b/docs/dev/_modules/gammapy/maps/wcs/geom.html new file mode 100644 index 00000000000..01c9d73c06d --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/wcs/geom.html @@ -0,0 +1,1893 @@ + + + + + + + + + + gammapy.maps.wcs.geom — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.wcs.geom

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import copy
+from functools import lru_cache
+import numpy as np
+import astropy.units as u
+from astropy.convolution import Tophat2DKernel
+from astropy.coordinates import Angle, SkyCoord
+from astropy.io import fits
+from astropy.nddata import Cutout2D
+from astropy.nddata.utils import overlap_slices
+from astropy.utils import lazyproperty
+from astropy.wcs import WCS
+from astropy.wcs.utils import (
+    celestial_frame_to_wcs,
+    proj_plane_pixel_scales,
+    wcs_to_celestial_frame,
+)
+from regions import RectangleSkyRegion
+from gammapy.utils.array import round_up_to_even, round_up_to_odd
+from gammapy.utils.compat import COPY_IF_NEEDED
+from ..axes import MapAxes
+from ..coord import MapCoord, skycoord_to_lonlat
+from ..geom import Geom, get_shape, pix_tuple_to_idx
+from ..utils import INVALID_INDEX, _check_binsz, _check_width
+
+__all__ = ["WcsGeom"]
+
+
+def cast_to_shape(param, shape, dtype):
+    """Cast a tuple of parameter arrays to a given shape."""
+    if not isinstance(param, tuple):
+        param = [param]
+
+    param = [np.array(p, ndmin=1, dtype=dtype) for p in param]
+
+    if len(param) == 1:
+        param = [param[0].copy(), param[0].copy()]
+
+    for i, p in enumerate(param):
+        if p.size > 1 and p.shape != shape:
+            raise ValueError
+
+        if p.shape == shape:
+            continue
+
+        param[i] = p * np.ones(shape, dtype=dtype)
+
+    return tuple(param)
+
+
+def get_resampled_wcs(wcs, factor, downsampled):
+    """Get resampled WCS object."""
+    wcs = wcs.deepcopy()
+
+    if not downsampled:
+        factor = 1.0 / factor
+
+    wcs.wcs.cdelt *= factor
+    wcs.wcs.crpix = (wcs.wcs.crpix - 0.5) / factor + 0.5
+    return wcs
+
+
+
+[docs] +class WcsGeom(Geom): + """Geometry class for WCS maps. + + This class encapsulates both the WCS transformation object and + the image extent (number of pixels in each dimension). Provides + methods for accessing the properties of the WCS object and + performing transformations between pixel and world coordinates. + + Parameters + ---------- + wcs : `~astropy.wcs.WCS` + WCS projection object. + npix : tuple + Number of pixels in each spatial dimension. + cdelt : tuple + Pixel size in each image plane. If None then a constant pixel size will be used. + crpix : tuple + Reference pixel coordinate in each image plane. + axes : list + Axes for non-spatial dimensions. + """ + + _slice_spatial_axes = slice(0, 2) + _slice_non_spatial_axes = slice(2, None) + is_hpx = False + is_region = False + + def __init__(self, wcs, npix=None, cdelt=None, crpix=None, axes=None): + self._wcs = wcs + self._frame = wcs_to_celestial_frame(wcs).name + self._projection = wcs.wcs.ctype[0][5:] + self._axes = MapAxes.from_default(axes, n_spatial_axes=2) + + if npix is None: + if wcs.array_shape is not None: + npix = wcs.array_shape[::-1] + else: + npix = (0, 0) + + if cdelt is None: + cdelt = tuple(np.abs(self.wcs.wcs.cdelt)) + + # Shape to use for WCS transformations + wcs_shape = max([get_shape(t) for t in [npix, cdelt]]) + self._npix = cast_to_shape(npix, wcs_shape, int) + self._cdelt = cast_to_shape(cdelt, wcs_shape, float) + + # By convention CRPIX is indexed from 1 + if crpix is None: + crpix = tuple(1.0 + (np.array(self._npix) - 1.0) / 2.0) + + self._crpix = crpix + + # define cached methods + self.get_coord = lru_cache()(self.get_coord) + self.get_pix = lru_cache()(self.get_pix) + + def __setstate__(self, state): + for key, value in state.items(): + if key in ["get_coord", "get_pix"]: + state[key] = lru_cache()(value) + + self.__dict__ = state + + @property + def data_shape(self): + """Shape of the `~numpy.ndarray` matching this geometry.""" + return self._shape[::-1] + + @property + def axes_names(self): + """All axes names.""" + return ["lon", "lat"] + self.axes.names + + @property + def data_shape_axes(self): + """Shape of data of the non-spatial axes and unit spatial axes.""" + return self.axes.shape[::-1] + (1, 1) + + @property + def data_shape_image(self): + """Shape of data of the spatial axes and unit non-spatial axes.""" + return (1,) * len(self.axes) + self.data_shape[len(self.axes) :] + + @property + def _shape(self): + npix_shape = tuple([np.max(self.npix[0]), np.max(self.npix[1])]) + return npix_shape + self.axes.shape + + @property + def _shape_edges(self): + npix_shape = tuple([np.max(self.npix[0]) + 1, np.max(self.npix[1]) + 1]) + return npix_shape + self.axes.shape + + @property + def shape_axes(self): + """Shape of non-spatial axes.""" + return self._shape[self._slice_non_spatial_axes] + + @property + def wcs(self): + """WCS projection object.""" + return self._wcs + + @property + def frame(self): + """Coordinate system of the projection. + + Galactic ("galactic") or Equatorial ("icrs"). + """ + return self._frame + +
+[docs] + def cutout_slices(self, geom, mode="partial"): + """Compute cutout slices. + + Parameters + ---------- + geom : `WcsGeom` + Parent geometry. + mode : {"trim", "partial", "strict"}, optional + Cutout slices mode. Default is "partial". + + Returns + ------- + slices : dict + Dictionary containing "parent-slices" and "cutout-slices". + """ + position = geom.to_image().coord_to_pix(self.center_skydir) + slices = overlap_slices( + large_array_shape=geom.data_shape[-2:], + small_array_shape=self.data_shape[-2:], + position=[_[0] for _ in position[::-1]], + mode=mode, + ) + return { + "parent-slices": slices[0], + "cutout-slices": slices[1], + }
+ + + @property + def projection(self): + """Map projection.""" + return self._projection + + @property + def is_allsky(self): + """Flag for all-sky maps.""" + if np.all(np.isclose(self._npix[0] * self._cdelt[0], 360.0)) and np.all( + np.isclose(self._npix[1] * self._cdelt[1], 180.0) + ): + return True + else: + return False + + @property + def is_regular(self): + """If geometry is regular in non-spatial dimensions as a boolean. + + - False for multi-resolution or irregular geometries. + - True if all image planes have the same pixel geometry. + """ + if self.npix[0].size > 1: + return False + else: + return True + + @property + def width(self): + """Tuple with image dimension in degrees in longitude and latitude.""" + dlon = self._cdelt[0] * self._npix[0] + dlat = self._cdelt[1] * self._npix[1] + return (dlon, dlat) * u.deg + + @property + def pixel_area(self): + """Pixel area in deg^2.""" + # FIXME: Correctly compute solid angle for projection + return self._cdelt[0] * self._cdelt[1] + + @property + def npix(self): + """Tuple with image dimension in pixels in longitude and latitude.""" + return self._npix + + @property + def axes(self): + """List of non-spatial axes.""" + return self._axes + + @property + def ndim(self): + return len(self.data_shape) + + @property + def center_coord(self): + """Map coordinate of the center of the geometry. + + Returns + ------- + coord : tuple + """ + return self.pix_to_coord(self.center_pix) + + @property + def center_pix(self): + """Pixel coordinate of the center of the geometry. + + Returns + ------- + pix : tuple + """ + return tuple((np.array(self.data_shape) - 1.0) / 2)[::-1] + + @property + def center_skydir(self): + """Sky coordinate of the center of the geometry. + + Returns + ------- + pix : `~astropy.coordinates.SkyCoord` + """ + return SkyCoord.from_pixel(self.center_pix[0], self.center_pix[1], self.wcs) + + @property + def pixel_scales(self): + """ + Pixel scale. + + Returns angles along each axis of the image at the CRPIX location once + it is projected onto the plane of intermediate world coordinates. + + Returns + ------- + angle: `~astropy.coordinates.Angle` + """ + return Angle(proj_plane_pixel_scales(self.wcs), "deg") + +
+[docs] + @classmethod + def create( + cls, + npix=None, + binsz=0.5, + proj="CAR", + frame="icrs", + refpix=None, + axes=None, + skydir=None, + width=None, + ): + """Create a WCS geometry object. + + Pixelization of the map is set with + ``binsz`` and one of either ``npix`` or ``width`` arguments. + For maps with non-spatial dimensions a different pixelization + can be used for each image plane by passing a list or array + argument for any of the pixelization parameters. If both npix + and width are None then an all-sky geometry will be created. + + Parameters + ---------- + npix : int or tuple or list, optional + Width of the map in pixels. A tuple will be interpreted as + parameters for longitude and latitude axes. For maps with + non-spatial dimensions, list input can be used to define a + different map width in each image plane. This option + supersedes width. Default is None. + binsz : float or tuple or list, optional + Map pixel size in degrees. A tuple will be interpreted + as parameters for longitude and latitude axes. For maps + with non-spatial dimensions, list input can be used to + define a different bin size in each image plane. + Default is 0.5 + proj : string, optional + Any valid WCS projection type. Default is 'CAR' (Plate-Carrée projection). + See `WCS supported projections <https://docs.astropy.org/en/stable/wcs/supported_projections.html>`__ # noqa: E501 + frame : {"icrs", "galactic"}, optional + Coordinate system, either Galactic ("galactic") or Equatorial ("icrs"). + Default is "icrs". + refpix : tuple, optional + Reference pixel of the projection. If None this will be + set to the center of the map. Default is None. + axes : list, optional + List of non-spatial axes. + skydir : tuple or `~astropy.coordinates.SkyCoord`, optional + Sky position of map center. Can be either a SkyCoord + object or a tuple of longitude and latitude in deg in the + coordinate system of the map. Default is None. + width : float or tuple or list or string, optional + Width of the map in degrees. A tuple will be interpreted + as parameters for longitude and latitude axes. For maps + with non-spatial dimensions, list input can be used to + define a different map width in each image plane. + Default is None. + + + Returns + ------- + geom : `~WcsGeom` + A WCS geometry object. + + Examples + -------- + >>> from gammapy.maps import WcsGeom + >>> from gammapy.maps import MapAxis + >>> axis = MapAxis.from_bounds(0,1,2) + >>> geom = WcsGeom.create(npix=(100,100), binsz=0.1) + >>> geom = WcsGeom.create(npix=(100,100), binsz="0.1deg") + >>> geom = WcsGeom.create(npix=[100,200], binsz=[0.1,0.05], axes=[axis]) + >>> geom = WcsGeom.create(npix=[100,200], binsz=["0.1deg","0.05deg"], axes=[axis]) + >>> geom = WcsGeom.create(width=[5.0,8.0], binsz=[0.1,0.05], axes=[axis]) + >>> geom = WcsGeom.create(npix=([100,200],[100,200]), binsz=0.1, axes=[axis]) + """ + if skydir is None: + crval = (0.0, 0.0) + elif isinstance(skydir, tuple): + crval = skydir + elif isinstance(skydir, SkyCoord): + xref, yref, frame = skycoord_to_lonlat(skydir, frame=frame) + crval = (xref, yref) + else: + raise ValueError(f"Invalid type for skydir: {type(skydir)!r}") + + if width is not None: + width = _check_width(width) + + binsz = _check_binsz(binsz) + + shape = max([get_shape(t) for t in [npix, binsz, width]]) + binsz = cast_to_shape(binsz, shape, float) + + # If both npix and width are None then create an all-sky geometry + if npix is None and width is None: + width = (360.0, 180.0) + + if npix is None: + width = cast_to_shape(width, shape, float) + npix = ( + np.rint(width[0] / binsz[0]).astype(int), + np.rint(width[1] / binsz[1]).astype(int), + ) + else: + npix = cast_to_shape(npix, shape, int) + + if refpix is None: + nxpix = int(npix[0].flat[0]) + nypix = int(npix[1].flat[0]) + refpix = ((nxpix + 1) / 2.0, (nypix + 1) / 2.0) + + # get frame class + frame = SkyCoord(np.nan, np.nan, frame=frame, unit="deg").frame + wcs = celestial_frame_to_wcs(frame, projection=proj) + wcs.wcs.crpix = refpix + wcs.wcs.crval = crval + + cdelt = (-binsz[0].flat[0], binsz[1].flat[0]) + wcs.wcs.cdelt = cdelt + + wcs.array_shape = npix[1].flat[0], npix[0].flat[0] + wcs.wcs.datfix() + return cls(wcs, npix, cdelt=binsz, axes=axes)
+ + + @property + def footprint(self): + """Footprint of the geometry as a `~astropy.coordinates.SkyCoord`.""" + coords = self.wcs.calc_footprint() + return SkyCoord(coords, frame=self.frame, unit="deg") + + @property + def footprint_rectangle_sky_region(self): + """Footprint of the geometry as a `~regions.RectangleSkyRegion`.""" + width, height = self.width + return RectangleSkyRegion( + center=self.center_skydir, width=width[0], height=height[0] + ) + +
+[docs] + @classmethod + def from_aligned(cls, geom, skydir, width): + """Create an aligned geometry from an existing one. + + Parameters + ---------- + geom : `~WcsGeom` + A reference WCS geometry object. + skydir : tuple or `~astropy.coordinates.SkyCoord` + Sky position of map center. Can be either a SkyCoord + object or a tuple of longitude and latitude in degrees in the + coordinate system of the map. + width : float or tuple or list or string + Width of the map in degrees. A tuple will be interpreted + as parameters for longitude and latitude axes. For maps + with non-spatial dimensions, list input can be used to + define a different map width in each image plane. + + Returns + ------- + geom : `~WcsGeom` + An aligned WCS geometry object with specified size and center. + + """ + width = _check_width(width) * u.deg + npix = tuple(np.round(width / geom.pixel_scales).astype(int)) + xref, yref = geom.to_image().coord_to_pix(skydir) + xref = int(np.floor(-xref[0] + npix[0] / 2.0)) + geom.wcs.wcs.crpix[0] + yref = int(np.floor(-yref[0] + npix[1] / 2.0)) + geom.wcs.wcs.crpix[1] + return cls.create( + skydir=tuple(geom.wcs.wcs.crval), + npix=npix, + refpix=(xref, yref), + frame=geom.frame, + binsz=tuple(geom.pixel_scales.deg), + axes=geom.axes, + proj=geom.projection, + )
+ + +
+[docs] + @classmethod + def from_header(cls, header, hdu_bands=None, format="gadf"): + """Create a WCS geometry object from a FITS header. + + Parameters + ---------- + header : `~astropy.io.fits.Header` + The FITS header. + hdu_bands : `~astropy.io.fits.BinTableHDU`, optional + The BANDS table HDU. Default is None. + format : {'gadf', 'fgst-ccube','fgst-template'}, optional + FITS format convention. Default is "gadf". + + Returns + ------- + wcs : `~WcsGeom` + WCS geometry object. + """ + wcs = WCS(header, naxis=2).sub(2) + + axes = MapAxes.from_table_hdu(hdu_bands, format=format) + shape = axes.shape + + if hdu_bands is not None and "NPIX" in hdu_bands.columns.names: + npix = hdu_bands.data.field("NPIX").reshape(shape + (2,)) + npix = (npix[..., 0], npix[..., 1]) + cdelt = hdu_bands.data.field("CDELT").reshape(shape + (2,)) + cdelt = (cdelt[..., 0], cdelt[..., 1]) + elif "WCSSHAPE" in header: + wcs_shape = eval(header["WCSSHAPE"]) + npix = (wcs_shape[0], wcs_shape[1]) + cdelt = None + wcs.array_shape = npix + else: + npix = (header["NAXIS1"], header["NAXIS2"]) + cdelt = None + + return cls(wcs, npix, cdelt=cdelt, axes=axes)
+ + + def _make_bands_cols(self): + cols = [] + if not self.is_regular: + cols += [ + fits.Column( + "NPIX", + "2I", + dim="(2)", + array=np.vstack((np.ravel(self.npix[0]), np.ravel(self.npix[1]))).T, + ) + ] + cols += [ + fits.Column( + "CDELT", + "2E", + dim="(2)", + array=np.vstack( + (np.ravel(self._cdelt[0]), np.ravel(self._cdelt[1])) + ).T, + ) + ] + cols += [ + fits.Column( + "CRPIX", + "2E", + dim="(2)", + array=np.vstack( + (np.ravel(self._crpix[0]), np.ravel(self._crpix[1])) + ).T, + ) + ] + return cols + +
+[docs] + def to_header(self): + header = self.wcs.to_header() + header.update(self.axes.to_header()) + shape = "{},{}".format(np.max(self.npix[0]), np.max(self.npix[1])) + for ax in self.axes: + shape += f",{ax.nbin}" + + header["WCSSHAPE"] = f"({shape})" + return header
+ + +
+[docs] + def get_idx(self, idx=None, flat=False): + pix = self.get_pix(idx=idx, mode="center") + if flat: + pix = tuple([p[np.isfinite(p)] for p in pix]) + return pix_tuple_to_idx(pix)
+ + + def _get_pix_all( + self, idx=None, mode="center", sparse=False, axis_name=("lon", "lat") + ): + """Get index coordinate array without footprint of the projection applied.""" + pix_all = [] + + for name, nbin in zip(self.axes_names, self._shape): + if mode == "edges" and name in axis_name: + pix = np.arange(-0.5, nbin, dtype=float) + else: + pix = np.arange(nbin, dtype=float) + + pix_all.append(pix) + + # TODO: improve varying bin size coordinate handling + if idx is not None: + pix_all = pix_all[self._slice_spatial_axes] + [float(t) for t in idx] + + return np.meshgrid(*pix_all[::-1], indexing="ij", sparse=sparse)[::-1] + +
+[docs] + def get_pix(self, idx=None, mode="center"): + """Get map pixel coordinates from the geometry. + + Parameters + ---------- + mode : {'center', 'edges'}, optional + Get center or edge pix coordinates for the spatial axes. + Default is "center". + + Returns + ------- + coord : tuple + Map pixel coordinate tuple. + """ + pix = self._get_pix_all(idx=idx, mode=mode) + coords = self.pix_to_coord(pix) + m = np.isfinite(coords[0]) + for _ in pix: + _[~m] = INVALID_INDEX.float + return pix
+ + +
+[docs] + def get_coord( + self, idx=None, mode="center", frame=None, sparse=False, axis_name=None + ): + """Get map coordinates from the geometry. + + Parameters + ---------- + mode : {'center', 'edges'}, optional + Get center or edge coordinates for the spatial axes. + Default is "center". + frame : str or `~astropy.coordinates.Frame`, optional + Coordinate frame. Default is None. + sparse : bool, optional + Compute sparse coordinates. Default is False. + axis_name : str, optional + If mode = "edges", the edges will be returned for this axis. + Default is None. + + Returns + ------- + coord : `~MapCoord` + Map coordinate object. + """ + if axis_name is None: + axis_name = ("lon", "lat") + + if frame is None: + frame = self.frame + + pix = self._get_pix_all(idx=idx, mode=mode, sparse=sparse, axis_name=axis_name) + + data = self.pix_to_coord(pix) + + coords = MapCoord.create( + data=data, frame=self.frame, axis_names=self.axes.names + ) + return coords.to_frame(frame)
+ + +
+[docs] + def coord_to_pix(self, coords): + coords = MapCoord.create(coords, frame=self.frame, axis_names=self.axes.names) + + if coords.size == 0: + return tuple([np.array([]) for i in range(coords.ndim)]) + + # Variable Bin Size + if not self.is_regular: + idxs = self.axes.coord_to_idx(coords, clip=True) + crpix = [t[idxs] for t in self._crpix] + cdelt = [t[idxs] for t in self._cdelt] + pix = world2pix(self.wcs, cdelt, crpix, (coords.lon, coords.lat)) + pix = list(pix) + else: + pix = self._wcs.wcs_world2pix(coords.lon, coords.lat, 0) + + pix += self.axes.coord_to_pix(coords) + return tuple(pix)
+ + +
+[docs] + def pix_to_coord(self, pix): + # Variable Bin Size + if not self.is_regular: + idxs = pix_tuple_to_idx(pix[self._slice_non_spatial_axes]) + crpix = [t[idxs] for t in self._crpix] + cdelt = [t[idxs] for t in self._cdelt] + coords = pix2world(self.wcs, cdelt, crpix, pix[self._slice_spatial_axes]) + else: + coords = self._wcs.wcs_pix2world(pix[0], pix[1], 0) + + coords = ( + u.Quantity(coords[0], unit="deg", copy=COPY_IF_NEEDED), + u.Quantity(coords[1], unit="deg", copy=COPY_IF_NEEDED), + ) + + coords += self.axes.pix_to_coord(pix[self._slice_non_spatial_axes]) + return coords
+ + +
+[docs] + def pix_to_idx(self, pix, clip=False): + pix = pix_tuple_to_idx(pix) + + idx_non_spatial = self.axes.pix_to_idx( + pix[self._slice_non_spatial_axes], clip=clip + ) + + if not self.is_regular: + npix = (self.npix[0][idx_non_spatial], self.npix[1][idx_non_spatial]) + else: + npix = self.npix + + idx_spatial = [] + + for idx, npix_ in zip(pix[self._slice_spatial_axes], npix): + if clip: + idx = np.clip(idx, 0, npix_) + else: + idx = np.where((idx < 0) | (idx >= npix_), -1, idx) + + idx_spatial.append(idx) + + return tuple(idx_spatial) + idx_non_spatial
+ + +
+[docs] + def contains(self, coords): + idx = self.coord_to_idx(coords) + return np.all(np.stack([t != INVALID_INDEX.int for t in idx]), axis=0)
+ + +
+[docs] + def to_image(self): + return self._image_geom
+ + + @lazyproperty + def _image_geom(self): + npix = (np.max(self._npix[0]), np.max(self._npix[1])) + cdelt = (np.max(self._cdelt[0]), np.max(self._cdelt[1])) + return self.__class__(self._wcs, npix, cdelt=cdelt) + +
+[docs] + def to_cube(self, axes): + npix = (np.max(self._npix[0]), np.max(self._npix[1])) + cdelt = (np.max(self._cdelt[0]), np.max(self._cdelt[1])) + axes = copy.deepcopy(self.axes) + axes + return self.__class__( + self._wcs.deepcopy(), + npix, + cdelt=cdelt, + axes=axes, + )
+ + + def _pad_spatial(self, pad_width): + if np.isscalar(pad_width): + pad_width = (pad_width, pad_width) + + npix = (self.npix[0] + 2 * pad_width[0], self.npix[1] + 2 * pad_width[1]) + wcs = self._wcs.deepcopy() + wcs.wcs.crpix += np.array(pad_width) + cdelt = copy.deepcopy(self._cdelt) + return self.__class__(wcs, npix, cdelt=cdelt, axes=copy.deepcopy(self.axes)) + +
+[docs] + def crop(self, crop_width): + if np.isscalar(crop_width): + crop_width = (crop_width, crop_width) + + npix = (self.npix[0] - 2 * crop_width[0], self.npix[1] - 2 * crop_width[1]) + wcs = self._wcs.deepcopy() + wcs.wcs.crpix -= np.array(crop_width) + cdelt = copy.deepcopy(self._cdelt) + return self.__class__(wcs, npix, cdelt=cdelt, axes=copy.deepcopy(self.axes))
+ + +
+[docs] + def downsample(self, factor, axis_name=None): + if axis_name is None: + if np.any(np.mod(self.npix, factor) > 0): + raise ValueError( + f"Spatial shape not divisible by factor {factor!r} in all axes." + f" You need to pad prior to calling downsample." + ) + + npix = (self.npix[0] / factor, self.npix[1] / factor) + cdelt = (self._cdelt[0] * factor, self._cdelt[1] * factor) + wcs = get_resampled_wcs(self.wcs, factor, True) + return self._init_copy(wcs=wcs, npix=npix, cdelt=cdelt) + else: + if not self.is_regular: + raise NotImplementedError( + "Upsampling in non-spatial axes not supported for irregular geometries" + ) + axes = self.axes.downsample(factor=factor, axis_name=axis_name) + return self._init_copy(axes=axes)
+ + +
+[docs] + def upsample(self, factor, axis_name=None): + if axis_name is None: + npix = (self.npix[0] * factor, self.npix[1] * factor) + cdelt = (self._cdelt[0] / factor, self._cdelt[1] / factor) + wcs = get_resampled_wcs(self.wcs, factor, False) + return self._init_copy(wcs=wcs, npix=npix, cdelt=cdelt) + else: + if not self.is_regular: + raise NotImplementedError( + "Upsampling in non-spatial axes not supported for irregular geometries" + ) + axes = self.axes.upsample(factor=factor, axis_name=axis_name) + return self._init_copy(axes=axes)
+ + +
+[docs] + def to_binsz(self, binsz): + """Change pixel size of the geometry. + + Parameters + ---------- + binsz : float or tuple or list + New pixel size in degree. + + Returns + ------- + geom : `WcsGeom` + Geometry with new pixel size. + """ + return self.create( + skydir=self.center_skydir, + binsz=binsz, + width=self.width, + proj=self.projection, + frame=self.frame, + axes=copy.deepcopy(self.axes), + )
+ + +
+[docs] + def solid_angle(self): + """Solid angle array as a `~astropy.units.Quantity` in ``sr``. + + The array has the same dimension as the WcsGeom object + if the spatial shape is not unique along the extra axis, + otherwise the array shape matches the spatial dimensions. + + To return solid angles for the spatial dimensions only use:: + + WcsGeom.to_image().solid_angle() + """ + return self._solid_angle
+ + + @lazyproperty + def _solid_angle(self): + if self.is_regular: + coord = self.to_image().get_coord(mode="edges").skycoord + else: + coord = self.get_coord(mode="edges").skycoord + + # define pixel corners + low_left = coord[..., :-1, :-1] + low_right = coord[..., 1:, :-1] + up_left = coord[..., :-1, 1:] + up_right = coord[..., 1:, 1:] + + # compute side lengths + low = low_left.separation(low_right) + left = low_left.separation(up_left) + up = up_left.separation(up_right) + right = low_right.separation(up_right) + + # compute enclosed angles + angle_low_right = low_right.position_angle(up_right) - low_right.position_angle( + low_left + ) + angle_up_left = up_left.position_angle(up_right) - low_left.position_angle( + up_left + ) + + # compute area assuming a planar triangle + area_low_right = 0.5 * low * right * np.sin(angle_low_right) + area_up_left = 0.5 * up * left * np.sin(angle_up_left) + # TODO: for non-negative cdelt a negative solid angle is returned + # find out why and fix properly + + value = np.abs( + u.Quantity(area_low_right + area_up_left, "sr", copy=COPY_IF_NEEDED) + ) + if self.is_regular: + value = value.reshape(self.data_shape_image) + return value + +
+[docs] + def bin_volume(self): + """Bin volume as a `~astropy.units.Quantity`.""" + return self._bin_volume
+ + + @lazyproperty + def _bin_volume(self): + """Cached property of bin volume.""" + value = self.to_image().solid_angle() + + if not self.is_image: + value = value * self.axes.bin_volume() + + return value + +
+[docs] + def separation(self, center): + """Compute sky separation with respect to a given center. + + Parameters + ---------- + center : `~astropy.coordinates.SkyCoord` + Center position. + + Returns + ------- + separation : `~astropy.coordinates.Angle` + Separation angle array (2D). + """ + coord = self.to_image().get_coord() + return center.separation(coord.skycoord)
+ + +
+[docs] + def cutout(self, position, width, mode="trim", odd_npix=False, min_npix=1): + """ + Create a cutout around a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + mode : {'trim', 'partial', 'strict'}, optional + Mode option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. + Default is "trim". + odd_npix : bool, optional + Force width to odd number of pixels. + Default is False. + min_npix : bool, optional + Force width to a minimmum number of pixels. + Default is 1. + + + Returns + ------- + cutout : `~gammapy.maps.WcsNDMap` + Cutout map. + """ + width = _check_width(width) * u.deg + + binsz = self.pixel_scales + width_npix = np.clip((width / binsz).to_value(""), min_npix, None) + + if odd_npix: + width_npix = round_up_to_odd(width_npix) + + dummy_data = np.empty(self.to_image().data_shape, dtype=bool) + c2d = Cutout2D( + data=dummy_data, + wcs=self.wcs, + position=position, + # Cutout2D takes size with order (lat, lon) + size=width_npix[::-1], + mode=mode, + ) + return self._init_copy(wcs=c2d.wcs, npix=c2d.shape[::-1])
+ + +
+[docs] + def boundary_mask(self, width): + """Create a mask applying binary erosion with a given width from geometry edges. + + Parameters + ---------- + width : tuple of `~astropy.units.Quantity` + Angular sizes of the margin in (lon, lat) in that specific order. + If only one value is passed, the same margin is applied in (lon, lat). + + Returns + ------- + mask_map : `~gammapy.maps.WcsNDMap` of boolean type + Boundary mask. + + """ + from .ndmap import WcsNDMap + + data = np.ones(self.data_shape, dtype=bool) + return WcsNDMap.from_geom(self, data=data).binary_erode( + width=2 * u.Quantity(width), kernel="box" + )
+ + +
+[docs] + def region_mask(self, regions, inside=True): + """Create a mask from a given list of regions. + + The mask is filled such that a pixel inside the region is filled with + "True". To invert the mask, e.g. to create a mask with exclusion regions + the tilde (~) operator can be used (see example below). + + Parameters + ---------- + regions : str, `~regions.Region` or list of `~regions.Region` + Region or list of regions (pixel or sky regions accepted). + A region can be defined as a string ind DS9 format as well. + See http://ds9.si.edu/doc/ref/region.html for details. + inside : bool, optional + For ``inside=True``, set pixels in the region to True. + For ``inside=False``, set pixels in the region to False. + Default is True. + + Returns + ------- + mask_map : `~gammapy.maps.WcsNDMap` of boolean type + Boolean region mask. + + + Examples + -------- + Make an exclusion mask for a circular region:: + + from regions import CircleSkyRegion + from astropy.coordinates import SkyCoord, Angle + from gammapy.maps import WcsNDMap, WcsGeom + + pos = SkyCoord(0, 0, unit='deg') + geom = WcsGeom.create(skydir=pos, npix=100, binsz=0.1) + + region = CircleSkyRegion( + SkyCoord(3, 2, unit='deg'), + Angle(1, 'deg'), + ) + + # the Gammapy convention for exclusion regions is to take the inverse + mask = ~geom.region_mask([region]) + + Note how we made a list with a single region, + since this method expects a list of regions. + """ + from gammapy.maps import Map, RegionGeom + + if not self.is_regular: + raise ValueError("Multi-resolution maps not supported yet") + + geom = RegionGeom.from_regions(regions, wcs=self.wcs) + idx = self.get_idx() + mask = geom.contains_wcs_pix(idx) + + if not inside: + np.logical_not(mask, out=mask) + + return Map.from_geom(self, data=mask)
+ + +
+[docs] + def region_weights(self, regions, oversampling_factor=10): + """Compute regions weights. + + Parameters + ---------- + regions : str, `~regions.Region` or list of `~regions.Region` + Region or list of regions (pixel or sky regions accepted). + A region can be defined as a string ind DS9 format as well. + See http://ds9.si.edu/doc/ref/region.html for details. + oversampling_factor : int, optional + Over-sampling factor to compute the region weights. + Default is 10. + + Returns + ------- + map : `~gammapy.maps.WcsNDMap` of boolean type + Weights region mask. + """ + geom = self.upsample(factor=oversampling_factor) + m = geom.region_mask(regions=regions) + m.data = m.data.astype(float) + return m.downsample(factor=oversampling_factor, preserve_counts=False)
+ + +
+[docs] + def binary_structure(self, width, kernel="disk"): + """Get binary structure. + + Parameters + ---------- + width : `~astropy.units.Quantity`, str or float + If a float is given it interpreted as width in pixels. If an (angular) + quantity is given it converted to pixels using ``geom.wcs.wcs.cdelt``. + The width corresponds to radius in case of a disk kernel, and + the side length in case of a box kernel. + kernel : {'disk', 'box'}, optional + Kernel shape. Default is "disk". + + Returns + ------- + structure : `~numpy.ndarray` + Binary structure. + """ + width = u.Quantity(width) + + if width.unit.is_equivalent("deg"): + width = width / self.pixel_scales + + width = round_up_to_odd(width.to_value("")) + + if kernel == "disk": + disk = Tophat2DKernel(width[0]) + disk.normalize("peak") + structure = disk.array + elif kernel == "box": + structure = np.ones(width) + else: + raise ValueError(f"Invalid kernel: {kernel!r}") + + shape = (1,) * len(self.axes) + structure.shape + return structure.reshape(shape)
+ + + def __str__(self): + lon = self.center_skydir.data.lon.deg + lat = self.center_skydir.data.lat.deg + lon_ref, lat_ref = self.wcs.wcs.crval + + return ( + f"{self.__class__.__name__}\n\n" + f"\taxes : {self.axes_names}\n" + f"\tshape : {self.data_shape[::-1]}\n" + f"\tndim : {self.ndim}\n" + f"\tframe : {self.frame}\n" + f"\tprojection : {self.projection}\n" + f"\tcenter : {lon:.1f} deg, {lat:.1f} deg\n" + f"\twidth : {self.width[0][0]:.1f} x {self.width[1][0]:.1f}\n" + f"\twcs ref : {lon_ref:.1f} deg, {lat_ref:.1f} deg\n" + ) + +
+[docs] + def to_odd_npix(self, max_radius=None): + """Create a new geometry object with an odd number of pixels and a maximum size. + + This is useful for PSF kernel creation. + + Parameters + ---------- + max_radius : `~astropy.units.Quantity`, optional + Maximum radius of the geometry (half the width). + Default is None. + + Returns + ------- + geom : `WcsGeom` + Geometry with odd number of pixels. + """ + if max_radius is None: + width = self.width.max() + else: + width = 2 * u.Quantity(max_radius) + + binsz = self.pixel_scales.max() + + width_npix = (width / binsz).to_value("") + npix = round_up_to_odd(width_npix) + return WcsGeom.create( + skydir=self.center_skydir, + binsz=binsz, + npix=npix, + proj=self.projection, + frame=self.frame, + axes=self.axes, + )
+ + +
+[docs] + def to_even_npix(self): + """Create a new geometry object with an even number of pixels and a maximum size. + + Returns + ------- + geom : `WcsGeom` + Geometry with odd number of pixels. + """ + width = self.width.max() + binsz = self.pixel_scales.max() + + width_npix = (width / binsz).to_value("") + npix = round_up_to_even(width_npix) + return WcsGeom.create( + skydir=self.center_skydir, + binsz=binsz, + npix=npix, + proj=self.projection, + frame=self.frame, + axes=self.axes, + )
+ + +
+[docs] + def is_aligned(self, other, tolerance=1e-6): + """Check if WCS and extra axes are aligned. + + Parameters + ---------- + other : `WcsGeom` + Other geometry. + tolerance : float, optional + Tolerance for the comparison. + Default is 1e-6. + + Returns + ------- + aligned : bool + Whether geometries are aligned. + """ + for axis, otheraxis in zip(self.axes, other.axes): + if axis != otheraxis: + return False + + # check WCS consistency with a priori tolerance of 1e-6 + return self.wcs.wcs.compare(other.wcs.wcs, cmp=2, tolerance=tolerance)
+ + +
+[docs] + def is_allclose(self, other, rtol_axes=1e-6, atol_axes=1e-6, rtol_wcs=1e-6): + """Compare two data IRFs for equivalency. + + Parameters + ---------- + other : `WcsGeom` + Geom to compare against. + rtol_axes : float, optional + Relative tolerance for the axes comparison. + Default is 1e-6. + atol_axes : float, optional + Relative tolerance for the axes comparison. + Default is 1e-6. + rtol_wcs : float, optional + Relative tolerance for the WCS comparison. + Default is 1e-6. + + Returns + ------- + is_allclose : bool + Whether the geometry is all close. + """ + if not isinstance(other, self.__class__): + return TypeError(f"Cannot compare {type(self)} and {type(other)}") + + if self.data_shape != other.data_shape: + return False + + axes_eq = self.axes.is_allclose(other.axes, rtol=rtol_axes, atol=atol_axes) + + # check WCS consistency with a priori tolerance of 1e-6 + # cmp=1 parameter ensures no comparison with ancillary information + # see https://github.com/astropy/astropy/pull/4522/files + wcs_eq = self.wcs.wcs.compare(other.wcs.wcs, cmp=1, tolerance=rtol_wcs) + + return axes_eq and wcs_eq
+ + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return False + + if not (self.is_regular and other.is_regular): + raise NotImplementedError( + "Geom comparison is not possible for irregular geometries." + ) + + return self.is_allclose(other=other, rtol_wcs=1e-6, rtol_axes=1e-6) + + def __ne__(self, other): + return not self.__eq__(other) + + def __hash__(self): + return id(self)
+ + + +def pix2world(wcs, cdelt, crpix, pix): + """Perform pixel to world coordinate transformation. + + For a WCS projection with a given pixel size (CDELT) and reference pixel + (CRPIX). This method can be used to perform WCS transformations + for projections with different pixelizations but the same + reference coordinate (CRVAL), projection type, and coordinate system. + + Parameters + ---------- + wcs : `~astropy.wcs.WCS` + WCS transform object. + cdelt : tuple + Tuple of X/Y pixel size in deg. Each element should have the + same length as ``pix``. + crpix : tuple + Tuple of reference pixel parameters in X and Y dimensions. Each + element should have the same length as ``pix``. + pix : tuple + Tuple of pixel coordinates. + """ + pix_ratio = [ + np.abs(wcs.wcs.cdelt[0] / cdelt[0]), + np.abs(wcs.wcs.cdelt[1] / cdelt[1]), + ] + pix = ( + (pix[0] - (crpix[0] - 1.0)) / pix_ratio[0] + wcs.wcs.crpix[0] - 1.0, + (pix[1] - (crpix[1] - 1.0)) / pix_ratio[1] + wcs.wcs.crpix[1] - 1.0, + ) + return wcs.wcs_pix2world(pix[0], pix[1], 0) + + +def world2pix(wcs, cdelt, crpix, coord): + pix_ratio = [ + np.abs(wcs.wcs.cdelt[0] / cdelt[0]), + np.abs(wcs.wcs.cdelt[1] / cdelt[1]), + ] + pix = wcs.wcs_world2pix(coord[0], coord[1], 0) + return ( + (pix[0] - (wcs.wcs.crpix[0] - 1.0)) * pix_ratio[0] + crpix[0] - 1.0, + (pix[1] - (wcs.wcs.crpix[1] - 1.0)) * pix_ratio[1] + crpix[1] - 1.0, + ) +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/maps/wcs/ndmap.html b/docs/dev/_modules/gammapy/maps/wcs/ndmap.html new file mode 100644 index 00000000000..0fdaaf6e096 --- /dev/null +++ b/docs/dev/_modules/gammapy/maps/wcs/ndmap.html @@ -0,0 +1,1695 @@ + + + + + + + + + + gammapy.maps.wcs.ndmap — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.maps.wcs.ndmap

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging
+from itertools import repeat
+import numpy as np
+import scipy.interpolate
+import scipy.ndimage as ndi
+import scipy.signal
+import astropy.units as u
+from astropy.convolution import Tophat2DKernel
+from astropy.coordinates import SkyCoord
+from astropy.io import fits
+from astropy.nddata import block_reduce
+from regions import PixCoord, PointPixelRegion, PointSkyRegion, SkyRegion
+import matplotlib.colors as mpcolors
+import matplotlib.pyplot as plt
+import gammapy.utils.parallel as parallel
+from gammapy.utils.interpolation import ScaledRegularGridInterpolator
+from gammapy.utils.units import unit_from_fits_image_hdu
+from gammapy.visualization.utils import add_colorbar
+from ..geom import pix_tuple_to_idx
+from ..utils import INVALID_INDEX
+from .core import WcsMap
+from .geom import WcsGeom
+
+__all__ = ["WcsNDMap"]
+
+log = logging.getLogger(__name__)
+
+
+C_MAP_MASK = mpcolors.ListedColormap(["black", "white"], name="mask")
+
+
+
+[docs] +class WcsNDMap(WcsMap): + """WCS map with any number of non-spatial dimensions. + + This class uses an ND numpy array to store map values. For maps with + non-spatial dimensions and variable pixel size it will allocate an + array with dimensions commensurate with the largest image plane. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + WCS geometry object. + data : `~numpy.ndarray` + Data array. If none then an empty array will be allocated. + dtype : str, optional + Data type, default is float32 + meta : `dict` + Dictionary to store meta data. + unit : str or `~astropy.units.Unit` + The map unit + """ + + def __init__(self, geom, data=None, dtype="float32", meta=None, unit=""): + # TODO: Figure out how to mask pixels for integer data types + + data_shape = geom.data_shape + + if data is None: + data = self._make_default_data(geom, data_shape, dtype) + + super().__init__(geom, data, meta, unit) + + @staticmethod + def _make_default_data(geom, shape_np, dtype): + # Check whether corners of each image plane are valid + + data = np.zeros(shape_np, dtype=dtype) + + if not geom.is_regular or geom.is_allsky: + coords = geom.get_coord() + is_nan = np.isnan(coords.lon) + data[is_nan] = np.nan + + return data + +
+[docs] + @classmethod + def from_hdu(cls, hdu, hdu_bands=None, format=None): + """Make a WcsNDMap object from a FITS HDU. + + Parameters + ---------- + hdu : `~astropy.io.fits.BinTableHDU` or `~astropy.io.fits.ImageHDU` + The map FITS HDU. + hdu_bands : `~astropy.io.fits.BinTableHDU` + The BANDS table HDU. + format : {'gadf', 'fgst-ccube','fgst-template'} + FITS format convention. + + Returns + ------- + map : `WcsNDMap` + WCS map. + """ + geom = WcsGeom.from_header(hdu.header, hdu_bands, format=format) + shape = geom.axes.shape + shape_wcs = tuple([np.max(geom.npix[0]), np.max(geom.npix[1])]) + + meta = cls._get_meta_from_header(hdu.header) + unit = unit_from_fits_image_hdu(hdu.header) + + # TODO: Should we support extracting slices? + if isinstance(hdu, fits.BinTableHDU): + map_out = cls(geom, meta=meta, unit=unit) + pix = hdu.data.field("PIX") + pix = np.unravel_index(pix, shape_wcs[::-1]) + vals = hdu.data.field("VALUE") + if "CHANNEL" in hdu.data.columns.names and shape: + chan = hdu.data.field("CHANNEL") + chan = np.unravel_index(chan, shape[::-1]) + idx = chan + pix + else: + idx = pix + + map_out.set_by_idx(idx[::-1], vals) + else: + if any(x in hdu.name.lower() for x in ["mask", "is_ul", "success"]): + data = hdu.data.astype(bool) + else: + data = hdu.data + + map_out = cls(geom=geom, meta=meta, data=data, unit=unit) + + return map_out
+ + +
+[docs] + def get_by_idx(self, idx): + idx = pix_tuple_to_idx(idx) + return self.data.T[idx]
+ + +
+[docs] + def interp_by_coord( + self, coords, method="linear", fill_value=None, values_scale="lin" + ): + """Interpolate map values at the given map coordinates. + + Parameters + ---------- + coords : tuple, dict or `~gammapy.maps.MapCoord` + Coordinate arrays for each dimension of the map. Tuple + should be ordered as (lon, lat, x_0, ..., x_n) where x_i + are coordinates for non-spatial dimensions of the map. + "lon" and "lat" are optional and will be taken at the center + of the region by default. + method : {"linear", "nearest"} + Method to interpolate data values. By default linear + interpolation is performed. + fill_value : None or float value + The value to use for points outside of the interpolation domain. + If None, values outside the domain are extrapolated. + values_scale : {"lin", "log", "sqrt"} + Optional value scaling. Default is "lin". + + Returns + ------- + vals : `~numpy.ndarray` + Interpolated pixel values. + """ + if self.geom.is_regular: + pix = self.geom.coord_to_pix(coords) + return self.interp_by_pix( + pix, method=method, fill_value=fill_value, values_scale=values_scale + ) + else: + return self._interp_by_coord_griddata(coords, method=method)
+ + +
+[docs] + def interp_by_pix(self, pix, method="linear", fill_value=None, values_scale="lin"): + if not self.geom.is_regular: + raise ValueError("interp_by_pix only supported for regular geom.") + + grid_pix = [np.arange(n, dtype=float) for n in self.data.shape[::-1]] + + if np.any(np.isfinite(self.data)): + data = self.data.copy().T + data[~np.isfinite(data)] = 0.0 + else: + data = self.data.T + + fn = ScaledRegularGridInterpolator( + grid_pix, + data, + fill_value=None, + bounds_error=False, + method=method, + values_scale=values_scale, + ) + interp_data = fn(tuple(pix), clip=False) + + if fill_value is not None: + idxs = self.geom.pix_to_idx(pix, clip=False) + invalid = np.broadcast_arrays(*[idx == -1 for idx in idxs]) + mask = np.any(invalid, axis=0) + if not interp_data.shape: + mask = mask.squeeze() + interp_data[mask] = fill_value + interp_data[~np.isfinite(interp_data)] = fill_value + + return interp_data
+ + + def _interp_by_coord_griddata(self, coords, method="linear"): + grid_coords = self.geom.get_coord() + + data = self.data[np.isfinite(self.data)] + vals = scipy.interpolate.griddata( + tuple(grid_coords.flat), data, tuple(coords), method=method + ) + + m = ~np.isfinite(vals) + if np.any(m): + vals_fill = scipy.interpolate.griddata( + tuple(grid_coords.flat), + data, + tuple([c[m] for c in coords]), + method="nearest", + ) + vals[m] = vals_fill + + return vals + + def _resample_by_idx(self, idx, weights=None, preserve_counts=False): + idx = pix_tuple_to_idx(idx) + msk = np.all(np.stack([t != INVALID_INDEX.int for t in idx]), axis=0) + idx = [t[msk] for t in idx] + + if weights is not None: + if isinstance(weights, u.Quantity): + weights = weights.to_value(self.unit) + weights = weights[msk] + + idx = np.ravel_multi_index(idx, self.data.T.shape) + idx, idx_inv = np.unique(idx, return_inverse=True) + weights = np.bincount(idx_inv, weights=weights).astype(self.data.dtype) + + if not preserve_counts: + weights /= np.bincount(idx_inv).astype(self.data.dtype) + + self.data.T.flat[idx] += weights + +
+[docs] + def fill_by_idx(self, idx, weights=None): + return self._resample_by_idx(idx, weights=weights, preserve_counts=True)
+ + +
+[docs] + def set_by_idx(self, idx, vals): + idx = pix_tuple_to_idx(idx) + self.data.T[idx] = vals
+ + + def _pad_spatial( + self, pad_width, axis_name=None, mode="constant", cval=0, method="linear" + ): + if axis_name is None: + if np.isscalar(pad_width): + pad_width = (pad_width, pad_width) + + if len(pad_width) == 2: + pad_width += (0,) * (self.geom.ndim - 2) + + geom = self.geom._pad_spatial(pad_width[:2]) + if self.geom.is_regular and mode != "interp": + return self._pad_np(geom, pad_width, mode, cval) + else: + return self._pad_coadd(geom, pad_width, mode, cval, method) + + def _pad_np(self, geom, pad_width, mode, cval): + """Pad a map using `~numpy.pad`. + + This method only works for regular geometries but should be more + efficient when working with large maps. + """ + kwargs = {} + if mode == "constant": + kwargs["constant_values"] = cval + + pad_width = [(t, t) for t in pad_width] + data = np.pad(self.data, pad_width[::-1], mode, **kwargs) + return self._init_copy(geom=geom, data=data) + + def _pad_coadd(self, geom, pad_width, mode, cval, method): + """Pad a map manually by co-adding the original map with the new map.""" + idx_in = self.geom.get_idx(flat=True) + idx_in = tuple([t + w for t, w in zip(idx_in, pad_width)])[::-1] + idx_out = geom.get_idx(flat=True)[::-1] + map_out = self._init_copy(geom=geom, data=None) + map_out.coadd(self) + + if mode == "constant": + pad_msk = np.zeros_like(map_out.data, dtype=bool) + pad_msk[idx_out] = True + pad_msk[idx_in] = False + map_out.data[pad_msk] = cval + elif mode == "interp": + coords = geom.pix_to_coord(idx_out[::-1]) + m = self.geom.contains(coords) + coords = tuple([c[~m] for c in coords]) + vals = self.interp_by_coord(coords, method=method) + map_out.set_by_coord(coords, vals) + else: + raise ValueError(f"Invalid mode: {mode!r}") + + return map_out + +
+[docs] + def crop(self, crop_width): + if np.isscalar(crop_width): + crop_width = (crop_width, crop_width) + + geom = self.geom.crop(crop_width) + if self.geom.is_regular: + slices = [slice(None)] * len(self.geom.axes) + slices += [ + slice(crop_width[1], int(self.geom.npix[1][0] - crop_width[1])), + slice(crop_width[0], int(self.geom.npix[0][0] - crop_width[0])), + ] + data = self.data[tuple(slices)] + map_out = self._init_copy(geom=geom, data=data) + else: + # FIXME: This could be done more efficiently by + # constructing the appropriate slices for each image plane + map_out = self._init_copy(geom=geom, data=None) + map_out.coadd(self) + + return map_out
+ + +
+[docs] + def upsample(self, factor, order=0, preserve_counts=True, axis_name=None): + if factor == 1 or factor is None: + return self + + geom = self.geom.upsample(factor, axis_name=axis_name) + idx = geom.get_idx() + + if axis_name is None: + pix = ( + (idx[0] - 0.5 * (factor - 1)) / factor, + (idx[1] - 0.5 * (factor - 1)) / factor, + ) + idx[2:] + else: + pix = list(idx) + idx_ax = self.geom.axes_names.index(axis_name) + pix[idx_ax] = (pix[idx_ax] - 0.5 * (factor - 1)) / factor + + if preserve_counts: + data = self.data / self.geom.bin_volume().value + else: + data = self.data + + data = ndi.map_coordinates(data.T, tuple(pix), order=order, mode="nearest") + + if preserve_counts: + data *= geom.bin_volume().value + + return self._init_copy(geom=geom, data=data.astype(self.data.dtype))
+ + +
+[docs] + def downsample(self, factor, preserve_counts=True, axis_name=None, weights=None): + if factor == 1 or factor is None: + return self + + geom = self.geom.downsample(factor, axis_name=axis_name) + + if axis_name is None: + block_size = (1,) * len(self.geom.axes) + (factor, factor) + else: + block_size = [1] * self.data.ndim + idx = self.geom.axes.index_data(axis_name) + block_size[idx] = factor + + func = np.nansum if preserve_counts else np.nanmean + + if weights is None: + weights = 1 + else: + weights = weights.data + + data = block_reduce(self.data * weights, tuple(block_size), func=func) + return self._init_copy(geom=geom, data=data.astype(self.data.dtype))
+ + +
+[docs] + def plot( + self, + ax=None, + fig=None, + add_cbar=False, + stretch="linear", + axes_loc=None, + kwargs_colorbar=None, + **kwargs, + ): + """ + Plot image on matplotlib WCS axes. + + Parameters + ---------- + ax : `~astropy.visualization.wcsaxes.WCSAxes`, optional + WCS axis object to plot on. Default is None. + fig : `~matplotlib.figure.Figure`, optional + Figure object. Default is None. + add_cbar : bool, optional + Add color bar. Default is False. + stretch : str, optional + Passed to `astropy.visualization.simple_norm`. + Default is "linear". + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs_colorbar : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.imshow`. + + Returns + ------- + ax : `~astropy.visualization.wcsaxes.WCSAxes` + WCS axes object. + """ + from astropy.visualization import simple_norm + + if not self.geom.is_flat: + raise TypeError("Use .plot_interactive() for Map dimension > 2") + + ax = self._plot_default_axes(ax=ax) + + if fig is None: + fig = plt.gcf() + + if self.geom.is_image: + data = self.data.astype(float) + else: + axis = tuple(np.arange(len(self.geom.axes))) + data = np.squeeze(self.data, axis=axis).astype(float) + + kwargs.setdefault("interpolation", "nearest") + kwargs.setdefault("origin", "lower") + kwargs.setdefault("cmap", "afmhot") + + kwargs_colorbar = kwargs_colorbar or {} + + mask = np.isfinite(data) + + if self.is_mask: + kwargs.setdefault("vmin", 0) + kwargs.setdefault("vmax", 1) + kwargs["cmap"] = C_MAP_MASK + + if mask.any(): + min_cut, max_cut = kwargs.pop("vmin", None), kwargs.pop("vmax", None) + try: + norm = simple_norm(data[mask], stretch, vmin=min_cut, vmax=max_cut) + except TypeError: + # astropy <6.1 + norm = simple_norm( + data[mask], stretch, min_cut=min_cut, max_cut=max_cut + ) + kwargs.setdefault("norm", norm) + + im = ax.imshow(data, **kwargs) + + if add_cbar: + label = str(self.unit) + kwargs_colorbar.setdefault("label", label) + add_colorbar(im, ax=ax, axes_loc=axes_loc, **kwargs_colorbar) + + if self.geom.is_allsky: + ax = self._plot_format_allsky(ax) + else: + ax = self._plot_format(ax) + + # without this the axis limits are changed when calling scatter + ax.autoscale(enable=False) + return ax
+ + +
+[docs] + def plot_mask(self, ax=None, **kwargs): + """Plot the mask as a shaded area. + + Parameters + ---------- + ax : `~astropy.visualization.wcsaxes.WCSAxes`, optional + WCS axis object to plot on. Default is None. + + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.contourf`. + + Returns + ------- + ax : `~astropy.visualization.wcsaxes.WCSAxes`, optional + WCS axis object to plot on. + """ + if not self.geom.is_flat: + raise TypeError("Use .plot_interactive() for Map dimension > 2") + + if not self.is_mask: + raise ValueError( + "`.plot_mask()` only supports maps containing boolean values." + ) + + ax = self._plot_default_axes(ax=ax) + + kwargs.setdefault("alpha", 0.5) + kwargs.setdefault("colors", "w") + + data = np.squeeze(self.data).astype(float) + + ax.contourf(data, levels=[0, 0.5], **kwargs) + + if self.geom.is_allsky: + ax = self._plot_format_allsky(ax) + else: + ax = self._plot_format(ax) + + # without this the axis limits are changed when calling scatter + ax.autoscale(enable=False) + return ax
+ + + def _plot_default_axes(self, ax): + from astropy.visualization.wcsaxes.frame import EllipticalFrame + + if ax is None: + fig = plt.gcf() + if self.geom.projection in ["AIT"]: + ax = fig.add_subplot( + 1, 1, 1, projection=self.geom.wcs, frame_class=EllipticalFrame + ) + else: + ax = fig.add_subplot(1, 1, 1, projection=self.geom.wcs) + + return ax + + @staticmethod + def _plot_format(ax): + try: + ax.coords["glon"].set_axislabel("Galactic Longitude") + ax.coords["glat"].set_axislabel("Galactic Latitude") + except KeyError: + ax.coords["ra"].set_axislabel("Right Ascension") + ax.coords["dec"].set_axislabel("Declination") + except AttributeError: + log.info("Can't set coordinate axes. No WCS information available.") + return ax + + def _plot_format_allsky(self, ax): + # Remove frame + ax.coords.frame.set_linewidth(0) + + # Set plot axis limits + xmin, _ = self.geom.to_image().coord_to_pix({"lon": 180, "lat": 0}) + xmax, _ = self.geom.to_image().coord_to_pix({"lon": -180, "lat": 0}) + + _, ymin = self.geom.to_image().coord_to_pix({"lon": 0, "lat": -90}) + _, ymax = self.geom.to_image().coord_to_pix({"lon": 0, "lat": 90}) + + ax.set_xlim(xmin[0], xmax[0]) + ax.set_ylim(ymin[0], ymax[0]) + + ax.text(0, ymax[0], self.geom.frame + " coords") + + # Grid and ticks + glon_spacing, glat_spacing = 45, 15 + lon, lat = ax.coords + lon.set_ticks(spacing=glon_spacing * u.deg, color="w", alpha=0.8) + lat.set_ticks(spacing=glat_spacing * u.deg) + lon.set_ticks_visible(False) + + lon.set_major_formatter("d") + lat.set_major_formatter("d") + + lon.set_ticklabel(color="w", alpha=0.8) + lon.grid(alpha=0.2, linestyle="solid", color="w") + lat.grid(alpha=0.2, linestyle="solid", color="w") + return ax + +
+[docs] + def cutout_and_mask_region(self, region=None): + """Compute cutout and mask for a given region of the map. + + The function will estimate the minimal size of the cutout, which encloses + the region. + + Parameters + ---------- + region: `~regions.Region`, optional + Extended region. Default is None. + + Returns + ------- + cutout, mask : tuple of `WcsNDMap` + Cutout and mask map. + """ + from gammapy.maps import RegionGeom + + if region is None: + region = self.geom.footprint_rectangle_sky_region + + geom = RegionGeom.from_regions(regions=region, wcs=self.geom.wcs) + cutout = self.cutout(position=geom.center_skydir, width=geom.width) + + mask = cutout.geom.to_image().region_mask([region]) + return self.__class__(data=cutout.data, geom=cutout.geom, unit=self.unit), mask
+ + +
+[docs] + def to_region_nd_map( + self, region=None, func=np.nansum, weights=None, method="nearest" + ): + """Get region ND map in a given region. + + By default, the whole map region is considered. + + Parameters + ---------- + region: `~regions.Region` or `~astropy.coordinates.SkyCoord`, optional + Region. Default is None. + func : numpy.func, optional + Function to reduce the data. Default is np.nansum. + For boolean Map, use np.any or np.all. + weights : `WcsNDMap`, optional + Array to be used as weights. The geometry must be equivalent. + Default is None. + method : {"nearest", "linear"}, optional + How to interpolate if a position is given. + Default is "nearest". + + Returns + ------- + spectrum : `~gammapy.maps.RegionNDMap` + Spectrum in the given region. + """ + from gammapy.maps import RegionGeom, RegionNDMap + + if region is None: + region = self.geom.footprint_rectangle_sky_region + + if weights is not None: + if not self.geom == weights.geom: + raise ValueError("Incompatible spatial geoms between map and weights") + + geom = RegionGeom.from_regions( + regions=region, axes=self.geom.axes, wcs=self.geom.wcs + ) + + if geom.is_all_point_sky_regions: + coords = geom.get_coord() + data = self.interp_by_coord(coords=coords, method=method) + + if weights is not None: + data *= weights.interp_by_coord(coords=coords, method=method) + # Casting needed as interp_by_coord transforms boolean + data = data.astype(self.data.dtype) + else: + cutout, mask = self.cutout_and_mask_region(region=region) + + if weights is not None: + weights_cutout = weights.cutout( + position=geom.center_skydir, width=geom.width + ) + cutout.data *= weights_cutout.data + + idx_y, idx_x = np.where(mask) + data = func(cutout.data[..., idx_y, idx_x], axis=-1) + + return RegionNDMap(geom=geom, data=data, unit=self.unit, meta=self.meta.copy())
+ + +
+[docs] + def to_region_nd_map_histogram( + self, region=None, bins_axis=None, nbin=100, density=False + ): + """Convert map into region map by histogramming. + + By default, it creates a linearly spaced axis with 100 bins between + (-max(abs(data)), max(abs(data))) within the given region. + + Parameters + ---------- + region: `~regions.Region`, optional + Region to histogram over. Default is None. + bins_axis : `MapAxis`, optional + Binning of the histogram. Default is None. + nbin : int, optional + Number of bins to use if no bins_axis is given. + Default is 100. + density : bool, optional + Normalize integral of the histogram to 1. + Default is False. + + + Examples + -------- + This is how to use the method to create energy dependent histograms: + + :: + + from gammapy.maps import MapAxis, Map + import numpy as np + + random_state = np.random.RandomState(seed=0) + + energy_axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=3) + + data = Map.create(axes=[energy_axis], width=10, unit="cm2 s-1", binsz=0.02) + data.data = random_state.normal( + size=data.data.shape, loc=0, scale=np.array([1.0, 2.0, 3.0]).reshape((-1, 1, 1)) + ) + + hist = data.to_region_nd_map_histogram() + hist.plot(axis_name="bins") + + + Returns + ------- + region_map : `RegionNDMap` + Region map with histogram. + + """ + from gammapy.maps import MapAxis, RegionGeom, RegionNDMap + + if isinstance(region, (PointSkyRegion, SkyCoord)): + raise ValueError("Histogram method not supported for point regions") + + cutout, mask = self.cutout_and_mask_region(region=region) + idx_y, idx_x = np.where(mask) + quantity = cutout.quantity[..., idx_y, idx_x] + + value = np.abs(quantity).max() + + if bins_axis is None: + bins_axis = MapAxis.from_bounds( + -value, + value, + nbin=nbin, + interp="lin", + unit=self.unit, + name="bins", + ) + + if not bins_axis.unit.is_equivalent(self.unit): + raise ValueError("Unit of bins_axis must be equivalent to unit of map.") + + axes = [bins_axis] + list(self.geom.axes) + geom_hist = RegionGeom(region=region, axes=axes, wcs=self.geom.wcs) + + # This is likely not the most efficient way to do this + data = np.apply_along_axis( + lambda a: np.histogram(a, bins=bins_axis.edges.value, density=density)[0], + axis=-1, + arr=quantity.to_value(bins_axis.unit), + ) + + unit = 1.0 / bins_axis.unit if density else "" + + return RegionNDMap.from_geom(geom=geom_hist, data=data, unit=unit)
+ + +
+[docs] + def mask_contains_region(self, region): + """Check if input region is contained in a boolean mask map. + + Parameters + ---------- + region: `~regions.SkyRegion` or `~regions.PixRegion` + Region or list of Regions (pixel or sky regions accepted). + + Returns + ------- + contained : bool + Whether region is contained in the mask. + """ + if not self.is_mask: + raise ValueError("mask_contains_region is only supported for boolean masks") + + if not self.geom.is_image: + raise ValueError("Method only supported for 2D images") + + if isinstance(region, SkyRegion): + region = region.to_pixel(self.geom.wcs) + + if isinstance(region, PointPixelRegion): + lon, lat = region.center.x, region.center.y + contains = self.get_by_pix((lon, lat)) + else: + idx = self.geom.get_idx() + coords_pix = PixCoord(idx[0][self.data], idx[1][self.data]) + contains = region.contains(coords_pix) + + return np.any(contains)
+ + +
+[docs] + def binary_erode(self, width, kernel="disk", use_fft=True): + """Binary erosion of boolean mask removing a given margin. + + Parameters + ---------- + width : `~astropy.units.Quantity`, str or float + If a float is given it interpreted as width in pixels. If an (angular) + quantity is given it converted to pixels using ``geom.wcs.wcs.cdelt``. + The width corresponds to radius in case of a disk kernel, and + the side length in case of a box kernel. + kernel : {'disk', 'box'}, optional + Kernel shape. Default is "disk". + use_fft : bool, optional + Use `scipy.signal.fftconvolve` if True. Otherwise, use + `scipy.ndimage.binary_erosion`. + Default is True. + + + Returns + ------- + map : `WcsNDMap` + Eroded mask map. + + """ + if not self.is_mask: + raise ValueError("Binary operations only supported for boolean masks") + + structure = self.geom.binary_structure(width=width, kernel=kernel) + + if use_fft: + return self.convolve(structure.squeeze(), method="fft") > ( + structure.sum() - 1 + ) + + data = ndi.binary_erosion(self.data, structure=structure) + return self._init_copy(data=data)
+ + +
+[docs] + def binary_dilate(self, width, kernel="disk", use_fft=True): + """Binary dilation of boolean mask adding a given margin. + + Parameters + ---------- + width : tuple of `~astropy.units.Quantity` + Angular sizes of the margin in (lon, lat) in that specific order. + If only one value is passed, the same margin is applied in (lon, lat). + kernel : {'disk', 'box'}, optional + Kernel shape. Default is "disk". + use_fft : bool, optional + Use `scipy.signal.fftconvolve` if True. Otherwise, use + `scipy.ndimage.binary_dilation`. + Default is True. + + Returns + ------- + map : `WcsNDMap` + Dilated mask map. + """ + if not self.is_mask: + raise ValueError("Binary operations only supported for boolean masks") + + structure = self.geom.binary_structure(width=width, kernel=kernel) + + if use_fft: + return self.convolve(structure.squeeze(), method="fft") > 1 + + data = ndi.binary_dilation(self.data, structure=structure) + return self._init_copy(data=data)
+ + +
+[docs] + def convolve(self, kernel, method="fft", mode="same"): + """Convolve map with a kernel. + + If the kernel is two-dimensional, it is applied to all image planes likewise. + If the kernel is higher dimensional, it should either match the map in the number of + dimensions or the map must be an image (no non-spatial axes). In that case, the + corresponding kernel is selected and applied to every image plane or to the single + input image respectively. + + Parameters + ---------- + kernel : `~gammapy.irf.PSFKernel` or `numpy.ndarray` + Convolution kernel. + method : str, optional + The method used by `~scipy.signal.convolve`. + Default is 'fft'. + mode : str, optional + The convolution mode used by `~scipy.signal.convolve`. + Default is 'same'. + + Returns + ------- + map : `WcsNDMap` + Convolved map. + """ + from gammapy.irf import PSFKernel + + if self.geom.is_image and not isinstance(kernel, PSFKernel): + if kernel.ndim > 2: + raise ValueError( + "Image convolution with 3D kernel requires a PSFKernel object" + ) + + geom = self.geom.copy() + + if isinstance(kernel, PSFKernel): + kmap = kernel.psf_kernel_map + if not np.allclose( + self.geom.pixel_scales.deg, kmap.geom.pixel_scales.deg, rtol=1e-5 + ): + raise ValueError("Pixel size of kernel and map not compatible.") + kernel = kmap.data.astype(np.float32) + if self.geom.is_image: + geom = geom.to_cube(kmap.geom.axes) + + if mode == "full": + pad_width = [0.5 * (width - 1) for width in kernel.shape[-2:]] + geom = geom.pad(pad_width, axis_name=None) + elif mode == "valid": + raise NotImplementedError( + "WcsNDMap.convolve: mode='valid' is not supported." + ) + + shape_axes_kernel = kernel.shape[slice(0, -2)] + + if len(shape_axes_kernel) > 0: + if not geom.shape_axes == shape_axes_kernel: + raise ValueError( + f"Incompatible shape between data {geom.shape_axes}" + " and kernel {shape_axes_kernel}" + ) + + if self.geom.is_image and kernel.ndim == 3: + indexes = range(kernel.shape[0]) + images = repeat(self.data.astype(np.float32)) + else: + indexes = list(self.iter_by_image_index()) + images = (self.data[idx] for idx in indexes) + kernels = ( + kernel[Ellipsis] if kernel.ndim == 2 else kernel[idx] for idx in indexes + ) + + convolved = parallel.run_multiprocessing( + self._convolve, + zip( + images, + kernels, + repeat(method), + repeat(mode), + ), + task_name="Convolution", + ) + data = np.empty(geom.data_shape, dtype=np.float32) + for idx_res, idx in enumerate(indexes): + data[idx] = convolved[idx_res] + return self._init_copy(data=data, geom=geom)
+ + + @staticmethod + def _convolve(image, kernel, method, mode): + """Convolve using `~scipy.signal.convolve` without kwargs for parallel evaluation.""" + return scipy.signal.convolve(image, kernel, method=method, mode=mode) + +
+[docs] + def smooth(self, width, kernel="gauss", **kwargs): + """Smooth the map. + + Iterates over 2D image planes, processing one at a time. + + Parameters + ---------- + width : `~astropy.units.Quantity`, str or float + Smoothing width given as quantity or float. If a float is given it + interpreted as smoothing width in pixels. If an (angular) quantity + is given it converted to pixels using ``geom.wcs.wcs.cdelt``. + It corresponds to the standard deviation in case of a Gaussian kernel, + the radius in case of a disk kernel, and the side length in case + of a box kernel. + kernel : {'gauss', 'disk', 'box'}, optional + Kernel shape. Default is "gauss". + kwargs : dict + Keyword arguments passed to `~ndi.uniform_filter` + ('box'), `~ndi.gaussian_filter` ('gauss') or + `~ndi.convolve` ('disk'). + + Returns + ------- + image : `WcsNDMap` + Smoothed image (a copy, the original object is unchanged). + """ + if isinstance(width, (u.Quantity, str)): + width = u.Quantity(width) / self.geom.pixel_scales.mean() + width = width.to_value("") + + smoothed_data = np.empty(self.data.shape, dtype=float) + + for img, idx in self.iter_by_image_data(): + img = img.astype(float) + if kernel == "gauss": + data = ndi.gaussian_filter(img, width, **kwargs) + elif kernel == "disk": + disk = Tophat2DKernel(width) + disk.normalize("integral") + data = ndi.convolve(img, disk.array, **kwargs) + elif kernel == "box": + data = ndi.uniform_filter(img, width, **kwargs) + else: + raise ValueError(f"Invalid kernel: {kernel!r}") + smoothed_data[idx] = data + + return self._init_copy(data=smoothed_data)
+ + +
+[docs] + def cutout(self, position, width, mode="trim", odd_npix=False, min_npix=1): + """ + Create a cutout around a given position. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + mode : {'trim', 'partial', 'strict'}, optional + Mode option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. + Default is "trim". + odd_npix : bool, optional + Force width to odd number of pixels. + Default is False. + min_npix : bool, optional + Force width to a minimmum number of pixels. + Default is 1. + + Returns + ------- + cutout : `~gammapy.maps.WcsNDMap` + Cutout map. + """ + geom_cutout = self.geom.cutout( + position=position, + width=width, + mode=mode, + odd_npix=odd_npix, + min_npix=min_npix, + ) + cutout_info = geom_cutout.cutout_slices(self.geom, mode=mode) + + slices = cutout_info["parent-slices"] + parent_slices = Ellipsis, slices[0], slices[1] + + slices = cutout_info["cutout-slices"] + cutout_slices = Ellipsis, slices[0], slices[1] + + data = np.zeros(shape=geom_cutout.data_shape, dtype=self.data.dtype) + data[cutout_slices] = self.data[parent_slices] + + return self._init_copy(geom=geom_cutout, data=data)
+ + + def _cutout_view(self, position, width, odd_npix=False): + """ + Create a cutout around a given position without copy of the data. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + odd_npix : bool, optional + Force width to odd number of pixels. + Default is False. + + Returns + ------- + cutout : `~gammapy.maps.WcsNDMap` + Cutout map. + """ + geom_cutout = self.geom.cutout( + position=position, width=width, mode="trim", odd_npix=odd_npix + ) + cutout_info = geom_cutout.cutout_slices(self.geom, mode="trim") + + slices = cutout_info["parent-slices"] + parent_slices = Ellipsis, slices[0], slices[1] + + return self.__class__.from_geom( + geom=geom_cutout, data=self.quantity[parent_slices] + ) + +
+[docs] + def stack(self, other, weights=None, nan_to_num=True): + """Stack cutout into map. + + Parameters + ---------- + other : `WcsNDMap` + Other map to stack. + weights : `WcsNDMap`, optional + Array to be used as weights. The spatial geometry must be equivalent + to `other` and additional axes must be broadcastable. + Default is None. + nan_to_num: bool, optional + Non-finite values are replaced by zero if True. + Default is True. + + """ + if self.geom == other.geom: + parent_slices, cutout_slices = None, None + elif self.geom.is_aligned(other.geom): + cutout_slices = other.geom.cutout_slices(self.geom) + + slices = cutout_slices["parent-slices"] + parent_slices = Ellipsis, slices[0], slices[1] + + slices = cutout_slices["cutout-slices"] + cutout_slices = Ellipsis, slices[0], slices[1] + else: + raise ValueError( + "Can only stack equivalent maps or cutout of the same map." + ) + + data = other.quantity[cutout_slices].to_value(self.unit) + if nan_to_num: + not_finite = ~np.isfinite(data) + if np.any(not_finite): + data = data.copy() + data[not_finite] = 0 + if weights is not None: + if not other.geom.to_image() == weights.geom.to_image(): + raise ValueError("Incompatible spatial geoms between map and weights") + data = data * weights.data[cutout_slices] + self.data[parent_slices] += data
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/covariance.html b/docs/dev/_modules/gammapy/modeling/covariance.html new file mode 100644 index 00000000000..15efc2bf28c --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/covariance.html @@ -0,0 +1,791 @@ + + + + + + + + + + gammapy.modeling.covariance — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.covariance

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Covariance class."""
+
+import numpy as np
+import scipy
+import matplotlib.pyplot as plt
+from gammapy.utils.parallel import is_ray_initialized
+from .parameter import Parameters
+
+__all__ = ["Covariance"]
+
+
+
+[docs] +class Covariance: + """Parameter covariance class. + + Parameters + ---------- + parameters : `~gammapy.modeling.Parameters` + Parameter list. + data : `~numpy.ndarray` + Covariance data array. + + """ + + def __init__(self, parameters, data=None): + self.parameters = parameters + if data is None: + data = np.diag([p.error**2 for p in self.parameters]) + + self._data = np.asanyarray(data, dtype=float) + + @property + def shape(self): + """Covariance shape.""" + npars = len(self.parameters) + return npars, npars + + @property + def data(self): + """Covariance data as a `~numpy.ndarray`.""" + return self._data + + @data.setter + def data(self, value): + value = np.asanyarray(value) + + npars = len(self.parameters) + shape = (npars, npars) + if value.shape != shape: + raise ValueError( + f"Invalid covariance shape: {value.shape}, expected {shape}" + ) + + self._data = value + + @staticmethod + def _expand_factor_matrix(matrix, parameters): + """Expand covariance matrix with zeros for frozen parameters.""" + npars = len(parameters) + matrix_expanded = np.zeros((npars, npars)) + mask_frozen = [par.frozen for par in parameters] + pars_index = [np.where(np.array(parameters) == p)[0][0] for p in parameters] + mask_duplicate = [pars_idx != idx for idx, pars_idx in enumerate(pars_index)] + mask = np.array(mask_frozen) | np.array(mask_duplicate) + free_parameters = ~(mask | mask[:, np.newaxis]) + matrix_expanded[free_parameters] = matrix.ravel() + return matrix_expanded + +
+[docs] + @classmethod + def from_factor_matrix(cls, parameters, matrix): + """Set covariance from factor covariance matrix. + + Used in the optimizer interface. + """ + npars = len(parameters) + + if not matrix.shape == (npars, npars): + matrix = cls._expand_factor_matrix(matrix, parameters) + + scales = [par.scale for par in parameters] + scale_matrix = np.outer(scales, scales) + data = scale_matrix * matrix + + return cls(parameters, data=data)
+ + +
+[docs] + @classmethod + def from_stack(cls, covar_list): + """Stack sub-covariance matrices from list. + + Parameters + ---------- + covar_list : list of `Covariance` + List of sub-covariances. + + Returns + ------- + covar : `Covariance` + Stacked covariance. + """ + parameters = Parameters.from_stack([_.parameters for _ in covar_list]) + + covar = cls(parameters) + + for subcovar in covar_list: + covar.set_subcovariance(subcovar) + + return covar
+ + +
+[docs] + def get_subcovariance(self, parameters): + """Get sub-covariance matrix. + + Parameters + ---------- + parameters : `Parameters` + Sub list of parameters. + + Returns + ------- + covariance : `~numpy.ndarray` + Sub-covariance. + """ + idx = [self.parameters.index(par) for par in parameters] + data = self._data[np.ix_(idx, idx)] + return self.__class__(parameters=parameters, data=data)
+ + +
+[docs] + def set_subcovariance(self, covar): + """Set sub-covariance matrix. + + Parameters + ---------- + covar : `Covariance` + Sub-covariance. + """ + if is_ray_initialized(): + # This copy is required to make the covariance setting work with ray + self._data = self._data.copy() + + idx = [self.parameters.index(par) for par in covar.parameters] + + if not np.allclose(self.data[np.ix_(idx, idx)], covar.data): + self.data[idx, :] = 0 + self.data[:, idx] = 0 + + self._data[np.ix_(idx, idx)] = covar.data
+ + +
+[docs] + def plot_correlation(self, figsize=None, **kwargs): + """Plot correlation matrix. + + Parameters + ---------- + figsize : tuple, optional + Figure size. Default is None, which takes + (number_params*0.9, number_params*0.7). + **kwargs : dict + Keyword arguments passed to `~gammapy.visualization.plot_heatmap`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + + """ + from gammapy.visualization import annotate_heatmap, plot_heatmap + + npars = len(self.parameters) + figsize = (npars * 0.9, npars * 0.7) if figsize is None else figsize + + plt.figure(figsize=figsize) + ax = plt.gca() + kwargs.setdefault("cmap", "coolwarm") + + names = self.parameters.names + im, cbar = plot_heatmap( + data=self.correlation, + col_labels=names, + row_labels=names, + ax=ax, + vmin=-1, + vmax=1, + cbarlabel="Correlation", + **kwargs, + ) + annotate_heatmap(im=im) + return ax
+ + + @property + def correlation(self): + r"""Correlation matrix as a `numpy.ndarray`. + + Correlation :math:`C` is related to covariance :math:`\Sigma` via: + + .. math:: + C_{ij} = \frac{ \Sigma_{ij} }{ \sqrt{\Sigma_{ii} \Sigma_{jj}} } + """ + err = np.sqrt(np.diag(self.data)) + + with np.errstate(invalid="ignore", divide="ignore"): + correlation = self.data / np.outer(err, err) + + return np.nan_to_num(correlation) + + @property + def scipy_mvn(self): + return scipy.stats.multivariate_normal( + self.parameters.value, self.data, allow_singular=True + ) + + def __str__(self): + return str(self.data) + + def __array__(self): + return self.data
+ + + +class CovarianceMixin: + """Mixin class for covariance property on multi-components models""" + + def _check_covariance(self): + if not self.parameters == self._covariance.parameters: + self._covariance = Covariance.from_stack( + [model.covariance for model in self._models] + ) + + @property + def covariance(self): + """Covariance as a `~gammapy.modeling.Covariance` object.""" + self._check_covariance() + + for model in self._models: + self._covariance.set_subcovariance(model.covariance) + + return self._covariance + + @covariance.setter + def covariance(self, covariance): + self._check_covariance() + self._covariance.data = covariance + + for model in self._models: + subcovar = self._covariance.get_subcovariance(model.covariance.parameters) + model.covariance = subcovar +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/fit.html b/docs/dev/_modules/gammapy/modeling/fit.html new file mode 100644 index 00000000000..d9a19dc9e85 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/fit.html @@ -0,0 +1,1461 @@ + + + + + + + + + + gammapy.modeling.fit — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.fit

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import itertools
+import logging
+import numpy as np
+from astropy.table import Table
+from gammapy.utils.pbar import progress_bar
+from gammapy.modeling.utils import _parse_datasets
+from .covariance import Covariance
+from .iminuit import (
+    confidence_iminuit,
+    contour_iminuit,
+    covariance_iminuit,
+    optimize_iminuit,
+)
+from .scipy import confidence_scipy, optimize_scipy
+from .sherpa import optimize_sherpa
+
+__all__ = ["Fit", "FitResult", "OptimizeResult", "CovarianceResult"]
+
+log = logging.getLogger(__name__)
+
+
+class Registry:
+    """Registry of available backends for given tasks.
+
+    Gives users the power to extend from their scripts.
+    Used by `Fit` below.
+
+    Not sure if we should call it "backend" or "method" or something else.
+    Probably we will code up some methods, e.g. for profile analysis ourselves,
+    using scipy or even just Python / Numpy?
+    """
+
+    register = {
+        "optimize": {
+            "minuit": optimize_iminuit,
+            "sherpa": optimize_sherpa,
+            "scipy": optimize_scipy,
+        },
+        "covariance": {
+            "minuit": covariance_iminuit,
+            # "sherpa": covariance_sherpa,
+            # "scipy": covariance_scipy,
+        },
+        "confidence": {
+            "minuit": confidence_iminuit,
+            # "sherpa": confidence_sherpa,
+            "scipy": confidence_scipy,
+        },
+    }
+
+    @classmethod
+    def get(cls, task, backend):
+        if task not in cls.register:
+            raise ValueError(f"Unknown task {task!r}")
+
+        backend_options = cls.register[task]
+
+        if backend not in backend_options:
+            raise ValueError(f"Unknown backend {backend!r} for task {task!r}")
+
+        return backend_options[backend]
+
+
+registry = Registry()
+
+
+
+[docs] +class Fit: + """Fit class. + + The fit class provides a uniform interface to multiple fitting backends. + Currently available: "minuit", "sherpa" and "scipy". + + Parameters + ---------- + backend : {"minuit", "scipy" "sherpa"} + Global backend used for fitting. Default is "minuit". + optimize_opts : dict + Keyword arguments passed to the optimizer. For the `"minuit"` backend + see https://iminuit.readthedocs.io/en/stable/reference.html#iminuit.Minuit + for a detailed description of the available options. If there is an entry + 'migrad_opts', those options will be passed to `iminuit.Minuit.migrad()`. + + For the `"sherpa"` backend you can from the options: + + * `"simplex"` + * `"levmar"` + * `"moncar"` + * `"gridsearch"` + + Those methods are described and compared in detail on + http://cxc.cfa.harvard.edu/sherpa/methods/index.html. The available + options of the optimization methods are described on the following + pages in detail: + + * http://cxc.cfa.harvard.edu/sherpa/ahelp/neldermead.html + * http://cxc.cfa.harvard.edu/sherpa/ahelp/montecarlo.html + * http://cxc.cfa.harvard.edu/sherpa/ahelp/gridsearch.html + * http://cxc.cfa.harvard.edu/sherpa/ahelp/levmar.html + + For the `"scipy"` backend the available options are described in detail here: + https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html + + covariance_opts : dict + Covariance options passed to the given backend. + confidence_opts : dict + Extra arguments passed to the backend. E.g. `iminuit.Minuit.minos` supports + a ``maxcall`` option. For the scipy backend ``confidence_opts`` are forwarded + to `~scipy.optimize.brentq`. If the confidence estimation fails, the bracketing + interval can be adapted by modifying the upper bound of the interval (``b``) value. + store_trace : bool + Whether to store the trace of the fit. + """ + + def __init__( + self, + backend="minuit", + optimize_opts=None, + covariance_opts=None, + confidence_opts=None, + store_trace=False, + ): + self.store_trace = store_trace + self.backend = backend + + if optimize_opts is None: + optimize_opts = {"backend": backend} + + if covariance_opts is None: + covariance_opts = {"backend": backend} + + if confidence_opts is None: + confidence_opts = {"backend": backend} + + self.optimize_opts = optimize_opts + self.covariance_opts = covariance_opts + self.confidence_opts = confidence_opts + self._minuit = None + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def run(self, datasets): + """Run all fitting steps. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + + Returns + ------- + fit_result : `FitResult` + Fit result. + """ + + datasets, parameters = _parse_datasets(datasets=datasets) + + optimize_result = self.optimize(datasets=datasets) + + if self.backend not in registry.register["covariance"]: + log.warning("No covariance estimate - not supported by this backend.") + return FitResult(optimize_result=optimize_result) + + covariance_result = self.covariance( + datasets=datasets, optimize_result=optimize_result + ) + + optimize_result.models.covariance = Covariance( + optimize_result.models.parameters, covariance_result.matrix + ) + + datasets._covariance = Covariance(parameters, covariance_result.matrix) + + return FitResult( + optimize_result=optimize_result, + covariance_result=covariance_result, + )
+ + +
+[docs] + def optimize(self, datasets): + """Run the optimization. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + + Returns + ------- + optimize_result : `OptimizeResult` + Optimization result. + """ + datasets, parameters = _parse_datasets(datasets=datasets) + datasets.parameters.check_limits() + + if len(parameters.free_parameters.names) == 0: + raise ValueError("No free parameters for fitting") + + parameters.autoscale() + + kwargs = self.optimize_opts.copy() + backend = kwargs.pop("backend", self.backend) + + compute = registry.get("optimize", backend) + # TODO: change this calling interface! + # probably should pass a fit statistic, which has a model, which has parameters + # and return something simpler, not a tuple of three things + factors, info, optimizer = compute( + parameters=parameters, + function=datasets.stat_sum, + store_trace=self.store_trace, + **kwargs, + ) + + if backend == "minuit": + self._minuit = optimizer + kwargs["method"] = "migrad" + + trace = Table(info.pop("trace")) + + if self.store_trace: + idx = [ + parameters.index(par) + for par in parameters.unique_parameters.free_parameters + ] + unique_names = np.array(datasets.models.parameters_unique_names)[idx] + trace.rename_columns(trace.colnames[1:], list(unique_names)) + + # Copy final results into the parameters object + parameters.set_parameter_factors(factors) + parameters.check_limits() + + return OptimizeResult( + models=datasets.models.copy(), + total_stat=datasets.stat_sum(), + backend=backend, + method=kwargs.get("method", backend), + trace=trace, + minuit=optimizer, + **info, + )
+ + +
+[docs] + def covariance(self, datasets, optimize_result=None): + """Estimate the covariance matrix. + + Assumes that the model parameters are already optimised. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + optimize_result : `OptimizeResult`, optional + Optimization result. Can be optionally used to pass the state of the IMinuit object + to the covariance estimation. This might save computation time in certain cases. + Default is None. + + Returns + ------- + result : `CovarianceResult` + Results. + """ + datasets, unique_pars = _parse_datasets(datasets=datasets) + parameters = datasets.models.parameters + + kwargs = self.covariance_opts.copy() + + if optimize_result is not None and optimize_result.backend == "minuit": + kwargs["minuit"] = optimize_result.minuit + + backend = kwargs.pop("backend", self.backend) + compute = registry.get("covariance", backend) + + with unique_pars.restore_status(): + if self.backend == "minuit": + method = "hesse" + else: + method = "" + + factor_matrix, info = compute( + parameters=unique_pars, function=datasets.stat_sum, **kwargs + ) + + matrix = Covariance.from_factor_matrix( + parameters=parameters, matrix=factor_matrix + ) + datasets.models.covariance = matrix + + if optimize_result: + optimize_result.models.covariance = matrix.data.copy() + + return CovarianceResult( + backend=backend, + method=method, + success=info["success"], + message=info["message"], + matrix=matrix.data, + )
+ + +
+[docs] + def confidence(self, datasets, parameter, sigma=1, reoptimize=True): + """Estimate confidence interval. + + Extra ``kwargs`` are passed to the backend. + E.g. `iminuit.Minuit.minos` supports a ``maxcall`` option. + + For the scipy backend ``kwargs`` are forwarded to `~scipy.optimize.brentq`. If the + confidence estimation fails, the bracketing interval can be adapted by modifying the + upper bound of the interval (``b``) value. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + parameter : `~gammapy.modeling.Parameter` + Parameter of interest. + sigma : float, optional + Number of standard deviations for the confidence level. Default is 1. + reoptimize : bool, optional + Re-optimize other parameters, when computing the confidence region. + Default is True. + + Returns + ------- + result : dict + Dictionary with keys "errp", 'errn", "success" and "nfev". + """ + datasets, parameters = _parse_datasets(datasets=datasets) + + kwargs = self.confidence_opts.copy() + backend = kwargs.pop("backend", self.backend) + + compute = registry.get("confidence", backend) + parameter = parameters[parameter] + + with parameters.restore_status(): + result = compute( + parameters=parameters, + parameter=parameter, + function=datasets.stat_sum, + sigma=sigma, + reoptimize=reoptimize, + **kwargs, + ) + + result["errp"] *= parameter.scale + result["errn"] *= parameter.scale + return result
+ + +
+[docs] + def stat_profile(self, datasets, parameter, reoptimize=False): + """Compute fit statistic profile. + + The method used is to vary one parameter, keeping all others fixed. + So this is taking a "slice" or "scan" of the fit statistic. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + parameter : `~gammapy.modeling.Parameter` + Parameter of interest. The specification for the scan, such as bounds + and number of values is taken from the parameter object. + reoptimize : bool, optional + Re-optimize other parameters, when computing the confidence region. Default is False. + + Returns + ------- + results : dict + Dictionary with keys "parameter_name_scan", "stat_scan" and "fit_results". The latter contains an + empty list, if `reoptimize` is set to False. + + Examples + -------- + >>> from gammapy.datasets import Datasets, SpectrumDatasetOnOff + >>> from gammapy.modeling.models import SkyModel, LogParabolaSpectralModel + >>> from gammapy.modeling import Fit + >>> datasets = Datasets() + >>> for obs_id in [23523, 23526]: + ... dataset = SpectrumDatasetOnOff.read( + ... f"$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs{obs_id}.fits" + ... ) + ... datasets.append(dataset) + >>> datasets = datasets.stack_reduce(name="HESS") + >>> model = SkyModel(spectral_model=LogParabolaSpectralModel(), name="crab") + >>> datasets.models = model + >>> fit = Fit() + >>> result = fit.run(datasets) + >>> parameter = datasets.models.parameters['amplitude'] + >>> stat_profile = fit.stat_profile(datasets=datasets, parameter=parameter) + """ + datasets, parameters = _parse_datasets(datasets=datasets) + + parameter = parameters[parameter] + values = parameter.scan_values + + stats = [] + fit_results = [] + with parameters.restore_status(): + for value in progress_bar(values, desc="Scan values"): + parameter.value = value + if reoptimize: + parameter.frozen = True + result = self.optimize(datasets=datasets) + stat = result.total_stat + fit_results.append(result) + else: + stat = datasets.stat_sum() + stats.append(stat) + + idx = datasets.parameters.index(parameter) + name = datasets.models.parameters_unique_names[idx] + + return { + f"{name}_scan": values, + "stat_scan": np.array(stats), + "fit_results": fit_results, + }
+ + +
+[docs] + def stat_surface(self, datasets, x, y, reoptimize=False): + """Compute fit statistic surface. + + The method used is to vary two parameters, keeping all others fixed. + So this is taking a "slice" or "scan" of the fit statistic. + + Caveat: This method can be very computationally intensive and slow + + See also: `Fit.stat_contour`. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + x, y : `~gammapy.modeling.Parameter` + Parameters of interest. + reoptimize : bool, optional + Re-optimize other parameters, when computing the confidence region. Default is False. + + Returns + ------- + results : dict + Dictionary with keys "x_values", "y_values", "stat" and "fit_results". + The latter contains an empty list, if `reoptimize` is set to False. + + Examples + -------- + >>> from gammapy.datasets import Datasets, SpectrumDatasetOnOff + >>> from gammapy.modeling.models import SkyModel, LogParabolaSpectralModel + >>> from gammapy.modeling import Fit + >>> import numpy as np + >>> datasets = Datasets() + >>> for obs_id in [23523, 23526]: + ... dataset = SpectrumDatasetOnOff.read( + ... f"$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs{obs_id}.fits" + ... ) + ... datasets.append(dataset) + >>> datasets = datasets.stack_reduce(name="HESS") + >>> model = SkyModel(spectral_model=LogParabolaSpectralModel(), name="crab") + >>> datasets.models = model + >>> par_alpha = datasets.models.parameters["alpha"] + >>> par_beta = datasets.models.parameters["beta"] + >>> par_alpha.scan_values = np.linspace(1.55, 2.7, 20) + >>> par_beta.scan_values = np.linspace(-0.05, 0.55, 20) + >>> fit = Fit() + >>> stat_surface = fit.stat_surface( + ... datasets=datasets, + ... x=par_alpha, + ... y=par_beta, + ... reoptimize=False, + ... ) + """ + datasets, parameters = _parse_datasets(datasets=datasets) + + x = parameters[x] + y = parameters[y] + + stats = [] + fit_results = [] + + with parameters.restore_status(): + for x_value, y_value in progress_bar( + itertools.product(x.scan_values, y.scan_values), desc="Trial values" + ): + x.value, y.value = x_value, y_value + + if reoptimize: + x.frozen, y.frozen = True, True + result = self.optimize(datasets=datasets) + stat = result.total_stat + fit_results.append(result) + else: + stat = datasets.stat_sum() + + stats.append(stat) + + shape = (len(x.scan_values), len(y.scan_values)) + stats = np.array(stats).reshape(shape) + + if reoptimize: + fit_results = np.array(fit_results).reshape(shape) + + i1, i2 = datasets.parameters.index(x), datasets.parameters.index(y) + name_x = datasets.models.parameters_unique_names[i1] + name_y = datasets.models.parameters_unique_names[i2] + + return { + f"{name_x}_scan": x.scan_values, + f"{name_y}_scan": y.scan_values, + "stat_scan": stats, + "fit_results": fit_results, + }
+ + +
+[docs] + def stat_contour(self, datasets, x, y, numpoints=10, sigma=1): + """Compute stat contour. + + Calls ``iminuit.Minuit.mncontour``. + + This is a contouring algorithm for a 2D function + which is not simply the fit statistic function. + That 2D function is given at each point ``(par_1, par_2)`` + by re-optimising all other free parameters, + and taking the fit statistic at that point. + + Very compute-intensive and slow. + + Parameters + ---------- + datasets : `Datasets` or list of `Dataset` + Datasets to optimize. + x, y : `~gammapy.modeling.Parameter` + Parameters of interest. + numpoints : int, optional + Number of contour points. Default is 10. + sigma : float, optional + Number of standard deviations for the confidence level. Default is 1. + + Returns + ------- + result : dict + Dictionary containing the parameter values defining the contour, with the + boolean flag "success" and the information objects from ``mncontour``. + + Examples + -------- + >>> from gammapy.datasets import Datasets, SpectrumDatasetOnOff + >>> from gammapy.modeling.models import SkyModel, LogParabolaSpectralModel + >>> from gammapy.modeling import Fit + >>> datasets = Datasets() + >>> for obs_id in [23523, 23526]: + ... dataset = SpectrumDatasetOnOff.read( + ... f"$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs{obs_id}.fits" + ... ) + ... datasets.append(dataset) + >>> datasets = datasets.stack_reduce(name="HESS") + >>> model = SkyModel(spectral_model=LogParabolaSpectralModel(), name="crab") + >>> datasets.models = model + >>> fit = Fit(backend='minuit') + >>> optimize = fit.optimize(datasets) + >>> stat_contour = fit.stat_contour( + ... datasets=datasets, + ... x=model.spectral_model.alpha, + ... y=model.spectral_model.amplitude, + ... ) + """ + + datasets, parameters = _parse_datasets(datasets=datasets) + + x = parameters[x] + y = parameters[y] + + i1, i2 = datasets.parameters.index(x), datasets.parameters.index(y) + name_x = datasets.models.parameters_unique_names[i1] + name_y = datasets.models.parameters_unique_names[i2] + + with parameters.restore_status(): + result = contour_iminuit( + parameters=parameters, + function=datasets.stat_sum, + x=x, + y=y, + numpoints=numpoints, + sigma=sigma, + ) + + x = result["x"] * x.scale + y = result["y"] * y.scale + + return { + name_x: x, + name_y: y, + "success": result["success"], + }
+
+ + + +class FitStepResult: + """Fit result base class.""" + + def __init__(self, backend, method, success, message): + self._success = success + self._message = message + self._backend = backend + self._method = method + + @property + def backend(self): + """Optimizer backend used for the fit.""" + return self._backend + + @property + def method(self): + """Optimizer method used for the fit.""" + return self._method + + @property + def success(self): + """Fit success status flag.""" + return self._success + + @property + def message(self): + """Optimizer status message.""" + return self._message + + def __str__(self): + return ( + f"{self.__class__.__name__}\n\n" + f"\tbackend : {self.backend}\n" + f"\tmethod : {self.method}\n" + f"\tsuccess : {self.success}\n" + f"\tmessage : {self.message}\n" + ) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def to_dict(self): + """Convert to dictionary.""" + return { + self.__class__.__name__: { + "backend": self.backend, + "method": self.method, + "success": self.success, + "message": self.message, + } + } + + +
+[docs] +class CovarianceResult(FitStepResult): + """Covariance result object. + + Parameters + ---------- + matrix : `~numpy.ndarray`, optional + The covariance matrix. Default is None. + kwargs : dict + Extra ``kwargs`` are passed to the backend. + """ + + def __init__(self, matrix=None, **kwargs): + self._matrix = matrix + super().__init__(**kwargs) + + @property + def matrix(self): + """Covariance matrix as a `~numpy.ndarray`.""" + return self._matrix
+ + + +
+[docs] +class OptimizeResult(FitStepResult): + """Optimize result object. + + Parameters + ---------- + models : `~gammapy.modeling.models.DatasetModels` + Best fit models. + nfev : int + Number of function evaluations. + total_stat : float + Value of the fit statistic at minimum. + trace : `~astropy.table.Table` + Parameter trace from the optimisation. + minuit : `~iminuit.minuit.Minuit`, optional + Minuit object. Default is None. + kwargs : dict + Extra ``kwargs`` are passed to the backend. + """ + + def __init__(self, models, nfev, total_stat, trace, minuit=None, **kwargs): + self._models = models + self._nfev = nfev + self._total_stat = total_stat + self._trace = trace + self._minuit = minuit + super().__init__(**kwargs) + + @property + def minuit(self): + """Minuit object.""" + return self._minuit + + @property + def parameters(self): + """Best fit parameters.""" + return self.models.parameters + + @property + def models(self): + """Best fit models.""" + return self._models + + @property + def trace(self): + """Parameter trace from the optimisation.""" + return self._trace + + @property + def nfev(self): + """Number of function evaluations.""" + return self._nfev + + @property + def total_stat(self): + """Value of the fit statistic at minimum.""" + return self._total_stat + + def __str__(self): + string = super().__str__() + string += f"\tnfev : {self.nfev}\n" + string += f"\ttotal stat : {self.total_stat:.2f}\n\n" + return string + +
+[docs] + def to_dict(self): + """Convert to dictionary.""" + output = super().to_dict() + output[self.__class__.__name__]["nfev"] = self.nfev + output[self.__class__.__name__]["total_stat"] = float(self._total_stat) + return output
+
+ + + +
+[docs] +class FitResult: + """Fit result class. + + The fit result class provides the results from the optimisation and covariance of the fit. + + Parameters + ---------- + optimize_result : `~OptimizeResult` + Result of the optimization step. + covariance_result : `~CovarianceResult` + Result of the covariance step. + """ + + def __init__(self, optimize_result=None, covariance_result=None): + self._optimize_result = optimize_result + self._covariance_result = covariance_result + + @property + def minuit(self): + """Minuit object.""" + return self.optimize_result.minuit + + @property + def parameters(self): + """Best fit parameters of the optimization step.""" + return self.optimize_result.parameters + + @property + def models(self): + """Best fit parameters of the optimization step.""" + return self.optimize_result.models + + @property + def total_stat(self): + """Total stat of the optimization step.""" + return self.optimize_result.total_stat + + @property + def trace(self): + """Parameter trace of the optimisation step.""" + return self.optimize_result.trace + + @property + def nfev(self): + """Number of function evaluations of the optimisation step.""" + return self.optimize_result.nfev + + @property + def backend(self): + """Optimizer backend used for the fit.""" + return self.optimize_result.backend + + @property + def method(self): + """Optimizer method used for the fit.""" + return self.optimize_result.method + + @property + def message(self): + """Optimizer status message.""" + return self.optimize_result.message + + @property + def success(self): + """Total success flag.""" + success = self.optimize_result.success + + if self.covariance_result: + success &= self.covariance_result.success + + return success + + @property + def optimize_result(self): + """Optimize result.""" + return self._optimize_result + + @property + def covariance_result(self): + """Optimize result.""" + return self._covariance_result + +
+[docs] + def write( + self, + path, + overwrite=False, + full_output=True, + overwrite_templates=False, + write_covariance=True, + checksum=False, + ): + """Write to file. + + Parameters + ---------- + path : `pathlib.Path` or str + Path to write files. + overwrite : bool, optional + Overwrite existing file. Default is False. + full_output : bool, optional + Store full parameter output. Default is True. + overwrite_templates : bool, optional + Overwrite templates FITS files. Default is False. + checksum : bool, optional + When True adds a CHECKSUM entry to the file. + Default is False. + """ + from gammapy.modeling.models.core import _write_models + + output = {} + if self.optimize_result is not None: + output.update(self.optimize_result.to_dict()) + if self.covariance_result is not None: + output.update(self.covariance_result.to_dict()) + _write_models( + self.models, + path, + overwrite, + full_output, + overwrite_templates, + write_covariance, + extra_dict=output, + )
+ + + def __str__(self): + string = "" + if self.optimize_result: + string += str(self.optimize_result) + + if self.covariance_result: + string += str(self.covariance_result) + + return string + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>"
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/core.html b/docs/dev/_modules/gammapy/modeling/models/core.html new file mode 100644 index 00000000000..7f6aecb050b --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/core.html @@ -0,0 +1,1903 @@ + + + + + + + + + + gammapy.modeling.models.core — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.core

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import collections.abc
+import copy
+import html
+import logging
+from os.path import split
+import numpy as np
+import astropy.units as u
+from astropy.coordinates import SkyCoord
+from astropy.table import Table
+import matplotlib.pyplot as plt
+from gammapy.maps import Map, RegionGeom
+from gammapy.modeling import Covariance, Parameter, Parameters
+from gammapy.modeling.covariance import CovarianceMixin
+from gammapy.utils.scripts import from_yaml, make_name, make_path, to_yaml, write_yaml
+
+__all__ = ["Model", "Models", "DatasetModels", "ModelBase"]
+
+
+log = logging.getLogger(__name__)
+
+
+def _set_link(shared_register, model):
+    for param in model.parameters:
+        name = param.name
+        link_label = param._link_label_io
+        if link_label is not None:
+            if link_label in shared_register:
+                new_param = shared_register[link_label]
+                setattr(model, name, new_param)
+            else:
+                shared_register[link_label] = param
+    return shared_register
+
+
+def _get_model_class_from_dict(data):
+    """Get a model class from a dictionary."""
+    from . import (
+        MODEL_REGISTRY,
+        PRIOR_REGISTRY,
+        SPATIAL_MODEL_REGISTRY,
+        SPECTRAL_MODEL_REGISTRY,
+        TEMPORAL_MODEL_REGISTRY,
+    )
+
+    if "type" in data:
+        cls = MODEL_REGISTRY.get_cls(data["type"])
+    elif "spatial" in data:
+        cls = SPATIAL_MODEL_REGISTRY.get_cls(data["spatial"]["type"])
+    elif "spectral" in data:
+        cls = SPECTRAL_MODEL_REGISTRY.get_cls(data["spectral"]["type"])
+    elif "temporal" in data:
+        cls = TEMPORAL_MODEL_REGISTRY.get_cls(data["temporal"]["type"])
+    elif "prior" in data:
+        cls = PRIOR_REGISTRY.get_cls(data["prior"]["type"])
+    return cls
+
+
+def _build_parameters_from_dict(data, default_parameters):
+    """Build a `~gammapy.modeling.Parameters` object from input dictionary and default parameter values."""
+    par_data = []
+
+    input_names = [_["name"] for _ in data]
+
+    for par in default_parameters:
+        par_dict = par.to_dict()
+        try:
+            index = input_names.index(par_dict["name"])
+            par_dict.update(data[index])
+        except ValueError:
+            log.warning(
+                f"Parameter '{par_dict['name']}' not defined in YAML file."
+                f" Using default value: {par_dict['value']} {par_dict['unit']}"
+            )
+        par_data.append(par_dict)
+
+    return Parameters.from_dict(par_data)
+
+
+def _check_name_unique(model, names):
+    """Check if a model is not duplicated"""
+    if model.name in names:
+        raise (
+            ValueError(
+                f"Model names must be unique. Models named '{model.name}' are duplicated."
+            )
+        )
+    return
+
+
+def _write_models(
+    models,
+    path,
+    overwrite=False,
+    full_output=False,
+    overwrite_templates=False,
+    write_covariance=True,
+    checksum=False,
+    extra_dict=None,
+):
+    """Write models to YAML file with additionnal informations using an `extra_dict`"""
+
+    base_path, _ = split(path)
+    path = make_path(path)
+    base_path = make_path(base_path)
+
+    if path.exists() and not overwrite:
+        raise IOError(f"File exists already: {path}")
+
+    if (
+        write_covariance
+        and models.covariance is not None
+        and len(models.parameters) != 0
+    ):
+        filecovar = path.stem + "_covariance.dat"
+        kwargs = dict(format="ascii.fixed_width", delimiter="|", overwrite=overwrite)
+        models.write_covariance(base_path / filecovar, **kwargs)
+        models._covar_file = filecovar
+
+    yaml_str = ""
+    if extra_dict is not None:
+        yaml_str += to_yaml(extra_dict)
+    yaml_str += models.to_yaml(full_output, overwrite_templates)
+
+    write_yaml(yaml_str, path, overwrite=overwrite, checksum=checksum)
+
+
+
+[docs] +class ModelBase: + """Model base class.""" + + _type = None + + def __init__(self, **kwargs): + # Copy default parameters from the class to the instance + default_parameters = self.default_parameters.copy() + + for par in default_parameters: + value = kwargs.get(par.name, par) + + if not isinstance(value, Parameter): + par.quantity = u.Quantity(value) + else: + par = value + + setattr(self, par.name, par) + + self._covariance = Covariance(self.parameters) + + covariance_data = kwargs.get("covariance_data", None) + + if covariance_data is not None: + self.covariance = covariance_data + + def __getattribute__(self, name): + value = object.__getattribute__(self, name) + + if isinstance(value, Parameter): + return value.__get__(self, None) + + return value + + @property + def type(self): + return self._type + + def __init_subclass__(cls, **kwargs): + # Add parameters list on the model sub-class (not instances) + cls.default_parameters = Parameters( + [_ for _ in cls.__dict__.values() if isinstance(_, Parameter)] + ) + +
+[docs] + @classmethod + def from_parameters(cls, parameters, **kwargs): + """Create model from parameter list. + + Parameters + ---------- + parameters : `Parameters` + Parameters for init. + + Returns + ------- + model : `Model` + Model instance. + """ + for par in parameters: + kwargs[par.name] = par + return cls(**kwargs)
+ + + def _check_covariance(self): + if not self.parameters == self._covariance.parameters: + self._covariance = Covariance(self.parameters) + + @property + def covariance(self): + self._check_covariance() + for par in self.parameters: + pars = Parameters([par]) + error = np.nan_to_num(par.error**2, nan=1) + covar = Covariance(pars, data=[[error]]) + self._covariance.set_subcovariance(covar) + + return self._covariance + + @covariance.setter + def covariance(self, covariance): + self._check_covariance() + self._covariance.data = covariance + + for par in self.parameters: + pars = Parameters([par]) + variance = self._covariance.get_subcovariance(pars).data + par.error = np.sqrt(variance[0][0]) + + @property + def parameters(self): + """Parameters as a `~gammapy.modeling.Parameters` object.""" + return Parameters( + [getattr(self, name) for name in self.default_parameters.names] + ) + + @property + def parameters_unique_names(self): + return self.parameters.unique_parameters.names + +
+[docs] + def copy(self, **kwargs): + """Deep copy.""" + return copy.deepcopy(self)
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serialisation.""" + tag = self.tag[0] if isinstance(self.tag, list) else self.tag + params = self.parameters.to_dict() + + if not full_output: + for par, par_default in zip(params, self.default_parameters): + init = par_default.to_dict() + for item in [ + "min", + "max", + "error", + "interp", + "scale_method", + ]: + default = init[item] + + if par[item] == default or ( + np.isnan(par[item]) and np.isnan(default) + ): + del par[item] + + if par["frozen"] == init["frozen"]: + del par["frozen"] + + if init["unit"] == "": + del par["unit"] + + data = {"type": tag, "parameters": params} + + if self.type is None: + return data + else: + return {self.type: data}
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + key0 = next(iter(data)) + + if key0 in ["spatial", "temporal", "spectral"]: + data = data[key0] + + if data["type"] not in cls.tag: + raise ValueError( + f"Invalid model type {data['type']} for class {cls.__name__}" + ) + + parameters = _build_parameters_from_dict( + data["parameters"], cls.default_parameters + ) + + return cls.from_parameters(parameters, **kwargs)
+ + + def __str__(self): + string = f"{self.__class__.__name__}\n" + if len(self.parameters) > 0: + string += f"\n{self.parameters.to_table()}" + return string + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + @property + def frozen(self): + """Frozen status of a model, True if all parameters are frozen.""" + return np.all([p.frozen for p in self.parameters]) + +
+[docs] + def freeze(self): + """Freeze all parameters.""" + self.parameters.freeze_all()
+ + +
+[docs] + def unfreeze(self): + """Restore parameters frozen status to default.""" + for p, default in zip(self.parameters, self.default_parameters): + p.frozen = default.frozen
+ + +
+[docs] + def reassign(self, datasets_names, new_datasets_names): + """Reassign a model from one dataset to another. + + Parameters + ---------- + datasets_names : str or list + Name of the datasets where the model is currently defined. + new_datasets_names : str or list + Name of the datasets where the model should be defined instead. + If multiple names are given the two list must have the save length, + as the reassignment is element-wise. + + Returns + ------- + model : `Model` + Reassigned model. + + """ + model = self.copy(name=self.name) + + if not isinstance(datasets_names, list): + datasets_names = [datasets_names] + + if not isinstance(new_datasets_names, list): + new_datasets_names = [new_datasets_names] + + if isinstance(model.datasets_names, str): + model.datasets_names = [model.datasets_names] + + if getattr(model, "datasets_names", None): + for name, name_new in zip(datasets_names, new_datasets_names): + model.datasets_names = [ + _.replace(name, name_new) for _ in model.datasets_names + ] + + return model
+
+ + + +
+[docs] +class Model: + """Model class that contains only methods to create a model listed in the registries.""" + +
+[docs] + @staticmethod + def create(tag, model_type=None, *args, **kwargs): + """Create a model instance. + + Examples + -------- + >>> from gammapy.modeling.models import Model + >>> spectral_model = Model.create( + ... "pl-2", model_type="spectral", amplitude="1e-10 cm-2 s-1", index=3 + ... ) + >>> type(spectral_model) + <class 'gammapy.modeling.models.spectral.PowerLaw2SpectralModel'> + """ + data = {"type": tag} + if model_type is not None: + data = {model_type: data} + + cls = _get_model_class_from_dict(data) + return cls(*args, **kwargs)
+ + +
+[docs] + @staticmethod + def from_dict(data): + """Create a model instance from a dictionary.""" + cls = _get_model_class_from_dict(data) + return cls.from_dict(data)
+
+ + + +
+[docs] +class DatasetModels(collections.abc.Sequence, CovarianceMixin): + """Immutable models container. + + Parameters + ---------- + models : `SkyModel`, list of `SkyModel` or `Models` + Sky models. + covariance_data : `~numpy.ndarray` + Covariance data. + """ + + def __init__(self, models=None, covariance_data=None): + if models is None: + models = [] + + if isinstance(models, (Models, DatasetModels)): + if covariance_data is None and models.covariance is not None: + covariance_data = models.covariance.data + models = models._models + elif isinstance(models, ModelBase): + models = [models] + elif not isinstance(models, list): + raise TypeError(f"Invalid type: {models!r}") + + unique_names = [] + + for model in models: + _check_name_unique(model, names=unique_names) + unique_names.append(model.name) + + self._models = models + self._covar_file = None + + self._covariance = Covariance(self.parameters) + + # Set separately because this triggers the update mechanism on the sub-models + if covariance_data is not None: + self.covariance = covariance_data + + @property + def parameters(self): + """Parameters as a `~gammapy.modeling.Parameters` object.""" + return Parameters.from_stack([_.parameters for _ in self._models]) + + @property + def parameters_unique_names(self): + """List of unique parameter names. Return formatted as model_name.par_type.par_name.""" + names = [] + for model in self._models: + for par_name in model.parameters_unique_names: + components = [model.name, par_name] + name = ".".join(components) + names.append(name) + return names + + @property + def names(self): + """List of model names.""" + return [m.name for m in self._models] + +
+[docs] + @classmethod + def read(cls, filename, checksum=False): + """Read from YAML file. + + Parameters + ---------- + filename : str + input filename + checksum : bool, optional + Whether to perform checksum verification. Default is False. + """ + yaml_str = make_path(filename).read_text() + path, filename = split(filename) + return cls.from_yaml(yaml_str, path=path, checksum=checksum)
+ + +
+[docs] + @classmethod + def from_yaml(cls, yaml_str, path="", checksum=False): + """Create from YAML string. + + Parameters + ---------- + yaml_str : str + yaml str + path : str + base path of model files + checksum : bool, optional + Whether to perform checksum verification. Default is False. + + + """ + data = from_yaml(yaml_str, checksum=checksum) + # TODO : for now metadata are not kept. Add proper metadata creation. + data.pop("metadata", None) + return cls.from_dict(data, path=path)
+ + +
+[docs] + @classmethod + def from_dict(cls, data, path=""): + """Create from dictionary.""" + from . import MODEL_REGISTRY, SkyModel + + models = [] + + for component in data["components"]: + model_cls = MODEL_REGISTRY.get_cls(component["type"]) + model = model_cls.from_dict(component) + models.append(model) + + models = cls(models) + + if "covariance" in data: + filename = data["covariance"] + path = make_path(path) + if not (path / filename).exists(): + path, filename = split(filename) + + models.read_covariance(path, filename, format="ascii.fixed_width") + + shared_register = {} + for model in models: + if isinstance(model, SkyModel): + submodels = [ + model.spectral_model, + model.spatial_model, + model.temporal_model, + ] + for submodel in submodels: + if submodel is not None: + shared_register = _set_link(shared_register, submodel) + else: + shared_register = _set_link(shared_register, model) + return models
+ + +
+[docs] + def write( + self, + path, + overwrite=False, + full_output=False, + overwrite_templates=False, + write_covariance=True, + checksum=False, + ): + """Write to YAML file. + + Parameters + ---------- + path : `pathlib.Path` or str + Path to write files. + overwrite : bool, optional + Overwrite existing file. Default is False. + full_output : bool, optional + Store full parameter output. Default is False. + overwrite_templates : bool, optional + Overwrite templates FITS files. Default is False. + write_covariance : bool, optional + Whether to save the covariance. Default is True. + checksum : bool, optional + When True adds a CHECKSUM entry to the file. + Default is False. + """ + _write_models( + self, + path, + overwrite, + full_output, + overwrite_templates, + write_covariance, + checksum, + )
+ + +
+[docs] + def to_yaml(self, full_output=False, overwrite_templates=False): + """Convert to YAML string. + + Parameters + ---------- + full_output : bool, optional + Store full parameter output. Default is False. + overwrite_templates : bool, optional + Overwrite templates FITS files. Default is False. + """ + data = self.to_dict(full_output, overwrite_templates) + return to_yaml(data)
+ + + + + +
+[docs] + def to_dict(self, full_output=False, overwrite_templates=False): + """Convert to dictionary.""" + self.update_link_label() + + models_data = [] + for model in self._models: + model_data = model.to_dict(full_output) + models_data.append(model_data) + if ( + hasattr(model, "spatial_model") + and model.spatial_model is not None + and "template" in model.spatial_model.tag + ): + model.spatial_model.write(overwrite=overwrite_templates) + if model.tag == "TemplateNPredModel": + model.write(overwrite=overwrite_templates) + + if self._covar_file is not None: + return { + "components": models_data, + "covariance": str(self._covar_file), + } + else: + return {"components": models_data}
+ + +
+[docs] + def to_parameters_table(self): + """Convert model parameters to a `~astropy.table.Table`.""" + table = self.parameters.to_table() + # Warning: splitting of parameters will break is source name has a "." in its name. + model_name = [name.split(".")[0] for name in self.parameters_unique_names] + table.add_column(model_name, name="model", index=0) + return table
+ + +
+[docs] + def update_parameters_from_table(self, t): + """Update models from a `~astropy.table.Table`.""" + parameters_dict = [dict(zip(t.colnames, row)) for row in t] + for k, data in enumerate(parameters_dict): + self.parameters[k].update_from_dict(data)
+ + +
+[docs] + def read_covariance(self, path, filename="_covariance.dat", **kwargs): + """Read covariance data from file. + + Parameters + ---------- + path : str or `Path` + Base path. + filename : str + Filename. + **kwargs : dict + Keyword arguments passed to `~astropy.table.Table.read`. + + """ + path = make_path(path) + filepath = str(path / filename) + t = Table.read(filepath, **kwargs) + t.remove_column("Parameters") + arr = np.array(t) + data = arr.view(float).reshape(arr.shape + (-1,)) + self.covariance = data + self._covar_file = filename
+ + +
+[docs] + def write_covariance(self, filename, **kwargs): + """Write covariance to file. + + Parameters + ---------- + filename : str + Filename. + **kwargs : dict + Keyword arguments passed to `~astropy.table.Table.write`. + + """ + names = self.parameters_unique_names + table = Table() + table["Parameters"] = names + + for idx, name in enumerate(names): + values = self.covariance.data[idx] + table[str(idx)] = values + + table.write(make_path(filename), **kwargs)
+ + + def __str__(self): + self.update_link_label() + + str_ = f"{self.__class__.__name__}\n\n" + + for idx, model in enumerate(self): + str_ += f"Component {idx}: " + str_ += str(model) + + return str_.expandtabs(tabsize=2) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def __add__(self, other): + if isinstance(other, (Models, list)): + return Models([*self, *other]) + elif isinstance(other, ModelBase): + _check_name_unique(other, self.names) + return Models([*self, other]) + else: + raise TypeError(f"Invalid type: {other!r}") + + def __getitem__(self, key): + if isinstance(key, np.ndarray) and key.dtype == bool: + return self.__class__(list(np.array(self._models)[key])) + else: + return self._models[self.index(key)] + +
+[docs] + def index(self, key): + if isinstance(key, (int, slice)): + return key + elif isinstance(key, str): + return self.names.index(key) + elif isinstance(key, ModelBase): + return self._models.index(key) + else: + raise TypeError(f"Invalid type: {type(key)!r}")
+ + + def __len__(self): + return len(self._models) + + def _ipython_key_completions_(self): + return self.names + +
+[docs] + def copy(self, copy_data=False): + """Deep copy. + + Parameters + ---------- + copy_data : bool + Whether to copy data attached to template models. + + Returns + ------- + models: `Models` + Copied models. + """ + models = [] + + for model in self: + model_copy = model.copy(name=model.name, copy_data=copy_data) + models.append(model_copy) + + return self.__class__( + models=models, covariance_data=self.covariance.data.copy() + )
+ + + def _slice_by_energy(self, energy_min, energy_max, sum_over_energy_groups=False): + """Copy models and slice TemplateNPredModel in energy range. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Energy bounds of the slice + sum_over_energy_groups : bool + Whether to sum over the energy groups or not. Default is False. + + Returns + ------- + models : `Models` + Sliced models. + """ + models_sliced = Models(self.copy()) + for k, m in enumerate(models_sliced): + if m.tag == "TemplateNPredModel": + m_sliced = m.slice_by_energy(energy_min, energy_max) + if sum_over_energy_groups: + m_sliced.map = m_sliced.map.sum_over_axes(keepdims=True) + models_sliced[k] = m_sliced + return models_sliced + +
+[docs] + def select( + self, + name_substring=None, + datasets_names=None, + tag=None, + model_type=None, + frozen=None, + ): + """Select models that meet all specified conditions. + + Parameters + ---------- + name_substring : str, optional + Substring contained in the model name. Default is None. + datasets_names : str or list, optional + Name of the dataset. Default is None. + tag : str or list, optional + Model tag. Default is None. + model_type : {'None', 'spatial', 'spectral'} + Type of model, used together with "tag", if the tag is not unique. Default is None. + frozen : bool, optional + If True, select models with all parameters frozen; if False, exclude them. Default is None. + + Returns + ------- + models : `DatasetModels` + Selected models. + """ + mask = self.selection_mask( + name_substring, datasets_names, tag, model_type, frozen + ) + return self[mask]
+ + +
+[docs] + def selection_mask( + self, + name_substring=None, + datasets_names=None, + tag=None, + model_type=None, + frozen=None, + ): + """Create a mask of models, that meet all specified conditions. + + Parameters + ---------- + name_substring : str, optional + Substring contained in the model name. Default is None. + datasets_names : str or list of str, optional + Name of the dataset. Default is None. + tag : str or list of str, optional + Model tag. Default is None. + model_type : {'None', 'spatial', 'spectral'} + Type of model, used together with "tag", if the tag is not unique. Default is None. + frozen : bool, optional + Select models with all parameters frozen if True, exclude them if False. Default is None. + + Returns + ------- + mask : `numpy.array` + Boolean mask, True for selected models. + """ + selection = np.ones(len(self), dtype=bool) + + if tag and not isinstance(tag, list): + tag = [tag] + + if datasets_names and not isinstance(datasets_names, list): + datasets_names = [datasets_names] + + for idx, model in enumerate(self): + if name_substring: + selection[idx] &= name_substring in model.name + + if datasets_names: + selection[idx] &= model.datasets_names is None or np.any( + [name in model.datasets_names for name in datasets_names] + ) + + if tag: + if model_type is None: + sub_model = model + else: + sub_model = getattr(model, f"{model_type}_model", None) + + if sub_model: + selection[idx] &= np.any([t in sub_model.tag for t in tag]) + else: + selection[idx] &= False + + if frozen is not None: + if frozen: + selection[idx] &= model.frozen + else: + selection[idx] &= ~model.frozen + + return np.array(selection, dtype=bool)
+ + +
+[docs] + def select_mask(self, mask, margin="0 deg", use_evaluation_region=True): + """Check if sky models contribute within a mask map. + + Parameters + ---------- + mask : `~gammapy.maps.WcsNDMap` of boolean type + Map containing a boolean mask. + margin : `~astropy.unit.Quantity`, optional + Add a margin in degree to the source evaluation radius. + Used to take into account PSF width. Default is "0 deg". + use_evaluation_region : bool, optional + Account for the extension of the model or not. Default is True. + + Returns + ------- + models : `DatasetModels` + Selected models contributing inside the region where mask==True. + """ + models = [] + + if not mask.geom.is_image: + mask = mask.reduce_over_axes(func=np.logical_or) + + for model in self.select(tag="sky-model"): + if use_evaluation_region: + contributes = model.contributes(mask=mask, margin=margin) + else: + contributes = mask.get_by_coord(model.position, fill_value=0) + + if np.any(contributes): + models.append(model) + + return self.__class__(models=models)
+ + +
+[docs] + def select_from_geom(self, geom, **kwargs): + """Select models that fall inside a given geometry. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Geometry to select models from. + **kwargs : dict + Keyword arguments passed to `~gammapy.modeling.models.DatasetModels.select_mask`. + + Returns + ------- + models : `DatasetModels` + Selected models. + """ + mask = Map.from_geom(geom=geom, data=True, dtype=bool) + return self.select_mask(mask=mask, **kwargs)
+ + +
+[docs] + def select_region(self, regions, wcs=None): + """Select sky models with center position contained within a given region. + + Parameters + ---------- + regions : str, `~regions.Region` or list of `~regions.Region` + Region or list of regions (pixel or sky regions accepted). + A region can be defined as a string ind DS9 format as well. + See http://ds9.si.edu/doc/ref/region.html for details. + wcs : `~astropy.wcs.WCS`, optional + World coordinate system transformation. Default is None. + + Returns + ------- + models : `DatasetModels` + Selected models. + """ + geom = RegionGeom.from_regions(regions, wcs=wcs) + + models = [] + + for model in self.select(tag="sky-model"): + if geom.contains(model.position): + models.append(model) + + return self.__class__(models=models)
+ + +
+[docs] + def restore_status(self, restore_values=True): + """Context manager to restore status. + + A copy of the values is made on enter, + and those values are restored on exit. + + Parameters + ---------- + restore_values : bool, optional + Restore values if True, otherwise restore only frozen status and covariance matrix. + Default is True. + + """ + return restore_models_status(self, restore_values)
+ + +
+[docs] + def set_parameters_bounds( + self, tag, model_type, parameters_names=None, min=None, max=None, value=None + ): + """Set bounds for the selected models types and parameters names. + + Parameters + ---------- + tag : str or list + Tag of the models. + model_type : {"spatial", "spectral", "temporal"} + Type of model. + parameters_names : str or list, optional + Parameters names. Default is None. + min : float, optional + Minimum value. Default is None. + max : float, optional + Maximum value. Default is None. + value : float, optional + Initial value. Default is None. + """ + models = self.select(tag=tag, model_type=model_type) + parameters = models.parameters.select(name=parameters_names, type=model_type) + n = len(parameters) + + if min is not None: + parameters.min = np.ones(n) * min + if max is not None: + parameters.max = np.ones(n) * max + if value is not None: + parameters.value = np.ones(n) * value
+ + +
+[docs] + def freeze(self, model_type=None): + """Freeze parameters depending on model type. + + Parameters + ---------- + model_type : {None, "spatial", "spectral"} + Freeze all parameters or only spatial or only spectral. + Default is None. + """ + for m in self: + m.freeze(model_type)
+ + +
+[docs] + def unfreeze(self, model_type=None): + """Restore parameters frozen status to default depending on model type. + + Parameters + ---------- + model_type : {None, "spatial", "spectral"} + Restore frozen status to default for all parameters or only spatial or only spectral. + Default is None. + """ + for m in self: + m.unfreeze(model_type)
+ + + @property + def frozen(self): + """Boolean mask, True if all parameters of a given model are frozen.""" + return np.all([m.frozen for m in self]) + +
+[docs] + def reassign(self, dataset_name, new_dataset_name): + """Reassign a model from one dataset to another. + + Parameters + ---------- + dataset_name : str or list + Name of the datasets where the model is currently defined. + new_dataset_name : str or list + Name of the datasets where the model should be defined instead. + If multiple names are given the two list must have the save length, + as the reassignment is element-wise. + """ + models = [m.reassign(dataset_name, new_dataset_name) for m in self] + return self.__class__(models)
+ + +
+[docs] + def to_template_sky_model(self, geom, spectral_model=None, name=None): + """Merge a list of models into a single `~gammapy.modeling.models.SkyModel`. + + Parameters + ---------- + geom : `Geom` + Map geometry of the result template model. + spectral_model : `~gammapy.modeling.models.SpectralModel`, optional + One of the NormSpectralModel. Default is None. + name : str, optional + Name of the new model. Default is None. + + Returns + ------- + model : `SkyModel` + Template sky model. + """ + from . import PowerLawNormSpectralModel, SkyModel, TemplateSpatialModel + + unit = u.Unit("1 / (cm2 s sr TeV)") + map_ = Map.from_geom(geom, unit=unit) + + for m in self: + map_ += m.evaluate_geom(geom).to(unit) + + spatial_model = TemplateSpatialModel(map_, normalize=False) + + if spectral_model is None: + spectral_model = PowerLawNormSpectralModel() + + return SkyModel( + spectral_model=spectral_model, spatial_model=spatial_model, name=name + )
+ + +
+[docs] + def to_template_spectral_model(self, geom, mask=None): + """Merge a list of models into a single `~gammapy.modeling.models.TemplateSpectralModel`. + + For each model the spatial component is integrated over the given geometry where the mask is true + and multiplied by the spectral component value in each energy bin. + + Parameters + ---------- + geom : `~gammapy.maps.Geom` + Map geometry on which the template model is computed. + mask : `~gammapy.maps.Map` with bool dtype. + Evaluate the model only where the mask is True. + + Returns + ------- + model : `~gammapy.modeling.models.TemplateSpectralModel` + Template spectral model. + """ + + from . import TemplateSpectralModel + + energy = geom.axes[0].center + if mask is None: + mask = Map.from_geom(geom, data=True) + elif mask.geom != geom: + mask = mask.interp_to_geom(geom, method="nearest") + values = 0 + for m in self: + dnde = m.spectral_model(energy) + spatial_integ = m.spatial_model.integrate_geom(geom) + masked_integ = spatial_integ.data * np.isfinite(spatial_integ.data) * mask + spatial_integ.data[~np.isfinite(spatial_integ.data)] = np.nan + dnde *= masked_integ.sum(axis=(1, 2)) * spatial_integ.unit + values += dnde + return TemplateSpectralModel(energy, values)
+ + + @property + def positions(self): + """Positions of the models as a `~astropy.coordinates.SkyCoord`.""" + positions = [] + + for model in self.select(tag="sky-model"): + if model.position: + positions.append(model.position.icrs) + else: + log.warning( + f"Skipping model {model.name} - no spatial component present" + ) + + return SkyCoord(positions) + +
+[docs] + def to_regions(self): + """Return a list of the regions for the spatial models. + + Returns + ------- + regions: list of `~regions.SkyRegion` + Regions. + """ + regions = [] + + for model in self.select(tag="sky-model"): + try: + region = model.spatial_model.to_region() + regions.append(region) + except AttributeError: + log.warning( + f"Skipping model {model.name} - no spatial component present" + ) + return regions
+ + + @property + def wcs_geom(self): + """Minimum WCS geom in which all the models are contained.""" + regions = self.to_regions() + try: + return RegionGeom.from_regions(regions).to_wcs_geom() + except IndexError: + log.error("No spatial component in any model. Geom not defined") + +
+[docs] + def plot_regions(self, ax=None, kwargs_point=None, path_effect=None, **kwargs): + """Plot extent of the spatial models on a given WCS axis. + + Parameters + ---------- + ax : `~astropy.visualization.WCSAxes`, optional + Axes to plot on. If no axes are given, an all-sky WCS + is chosen using a CAR projection. Default is None. + kwargs_point : dict, optional + Keyword arguments passed to `~matplotlib.lines.Line2D` for plotting + of point sources. Default is None. + path_effect : `~matplotlib.patheffects.PathEffect`, optional + Path effect applied to artists and lines. Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.artists.Artist`. + + + Returns + ------- + ax : `~astropy.visualization.WcsAxes` + WCS axes. + """ + regions = self.to_regions() + + geom = RegionGeom.from_regions(regions=regions) + return geom.plot_region( + ax=ax, kwargs_point=kwargs_point, path_effect=path_effect, **kwargs + )
+ + +
+[docs] + def plot_positions(self, ax=None, **kwargs): + """Plot the centers of the spatial models on a given WCS axis. + + Parameters + ---------- + ax : `~astropy.visualization.WCSAxes`, optional + Axes to plot on. If no axes are given, an all-sky WCS + is chosen using a CAR projection. Default is None. + **kwargs : dict + Keyword arguments passed to `~matplotlib.pyplot.scatter`. + + + Returns + ------- + ax : `~astropy.visualization.WcsAxes` + WCS axes. + """ + from astropy.visualization.wcsaxes import WCSAxes + + if ax is None or not isinstance(ax, WCSAxes): + ax = Map.from_geom(self.wcs_geom).plot() + + kwargs.setdefault("marker", "*") + kwargs.setdefault("color", "tab:blue") + path_effects = kwargs.get("path_effects", None) + + xp, yp = self.positions.to_pixel(ax.wcs) + p = ax.scatter(xp, yp, **kwargs) + + if path_effects: + plt.setp(p, path_effects=path_effects) + + return ax
+
+ + + +
+[docs] +class Models(DatasetModels, collections.abc.MutableSequence): + """Sky model collection. + + Parameters + ---------- + models : `SkyModel`, list of `SkyModel` or `Models` + Sky models. + """ + + def __delitem__(self, key): + del self._models[self.index(key)] + + def __setitem__(self, key, model): + from gammapy.modeling.models import ( + FoVBackgroundModel, + SkyModel, + TemplateNPredModel, + ) + + if isinstance(model, (SkyModel, FoVBackgroundModel, TemplateNPredModel)): + self._models[self.index(key)] = model + else: + raise TypeError(f"Invalid type: {model!r}") + +
+[docs] + def insert(self, idx, model): + _check_name_unique(model, self.names) + self._models.insert(idx, model)
+ + +
+[docs] + def set_prior(self, parameters, priors): + for parameter, prior in zip(parameters, priors): + parameter.prior = prior
+
+ + + +class restore_models_status: + def __init__(self, models, restore_values=True): + self.restore_values = restore_values + self.models = models + self.values = [_.value for _ in models.parameters] + self.frozen = [_.frozen for _ in models.parameters] + self.covariance_data = models.covariance.data + + def __enter__(self): + pass + + def __exit__(self, type, value, traceback): + for value, par, frozen in zip(self.values, self.models.parameters, self.frozen): + if self.restore_values: + par.value = value + par.frozen = frozen + self.models.covariance = self.covariance_data +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/cube.html b/docs/dev/_modules/gammapy/modeling/models/cube.html new file mode 100644 index 00000000000..e29401962b0 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/cube.html @@ -0,0 +1,1872 @@ + + + + + + + + + + gammapy.modeling.models.cube — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.cube

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Cube models (axes: lon, lat, energy)."""
+
+import logging
+import warnings
+import os
+import numpy as np
+import astropy.units as u
+from astropy.nddata import NoOverlapError
+from astropy.time import Time
+from gammapy.maps import Map, MapAxis, WcsGeom
+from gammapy.modeling import Parameters
+from gammapy.modeling.covariance import CovarianceMixin
+from gammapy.modeling.parameter import _get_parameters_str
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.fits import LazyFitsData
+from gammapy.utils.scripts import make_name, make_path
+from gammapy.utils.deprecation import GammapyDeprecationWarning
+from .core import Model, ModelBase, Models
+from .spatial import ConstantSpatialModel, SpatialModel
+from .spectral import PowerLawNormSpectralModel, SpectralModel, TemplateSpectralModel
+from .temporal import TemporalModel
+
+log = logging.getLogger(__name__)
+
+
+__all__ = [
+    "create_fermi_isotropic_diffuse_model",
+    "FoVBackgroundModel",
+    "SkyModel",
+    "TemplateNPredModel",
+]
+
+
+
+[docs] +class SkyModel(CovarianceMixin, ModelBase): + """Sky model component. + + This model represents a factorised sky model. + It has `~gammapy.modeling.Parameters` combining the spatial and spectral parameters. + + Parameters + ---------- + spectral_model : `~gammapy.modeling.models.SpectralModel` + Spectral model. + spatial_model : `~gammapy.modeling.models.SpatialModel` + Spatial model (must be normalised to integrate to 1). + temporal_model : `~gammapy.modeling.models.TemporalModel` + Temporal model. + name : str + Model identifier. + apply_irf : dict + Dictionary declaring which IRFs should be applied to this model. Options + are {"exposure": True, "psf": True, "edisp": True}. + datasets_names : list of str + Which datasets this model is applied to. + """ + + tag = ["SkyModel", "sky-model"] + _apply_irf_default = {"exposure": True, "psf": True, "edisp": True} + + def __init__( + self, + spectral_model, + spatial_model=None, + temporal_model=None, + name=None, + apply_irf=None, + datasets_names=None, + covariance_data=None, + ): + self.spatial_model = spatial_model + self.spectral_model = spectral_model + self.temporal_model = temporal_model + self._name = make_name(name) + + if apply_irf is None: + apply_irf = self._apply_irf_default.copy() + + self.apply_irf = apply_irf + self.datasets_names = datasets_names + self._check_unit() + + super().__init__(covariance_data=covariance_data) + + @property + def _models(self): + models = self.spectral_model, self.spatial_model, self.temporal_model + return [model for model in models if model is not None] + + def _check_unit(self): + axis = MapAxis.from_energy_bounds( + "0.1 TeV", "10 TeV", nbin=1, name="energy_true" + ) + + geom = WcsGeom.create(skydir=self.position, npix=(2, 2), axes=[axis]) + time = Time(55555, format="mjd") + if self.apply_irf["exposure"]: + ref_unit = u.Unit("cm-2 s-1 MeV-1") + else: + ref_unit = u.Unit("") + obt_unit = self.spectral_model(axis.center).unit + + if self.spatial_model: + obt_unit = obt_unit * self.spatial_model.evaluate_geom(geom).unit + ref_unit = ref_unit / u.sr + + if self.temporal_model: + if u.Quantity(self.temporal_model(time)).unit.is_equivalent( + self.spectral_model(axis.center).unit + ): + obt_unit = ( + ( + self.temporal_model(time) + * self.spatial_model.evaluate_geom(geom).unit + ) + .to(obt_unit.to_string()) + .unit + ) + else: + obt_unit = obt_unit * u.Quantity(self.temporal_model(time)).unit + + if not obt_unit.is_equivalent(ref_unit): + raise ValueError( + f"SkyModel unit {obt_unit} is not equivalent to {ref_unit}" + ) + + @property + def name(self): + return self._name + + @property + def parameters(self): + parameters = [] + + parameters.append(self.spectral_model.parameters) + + if self.spatial_model is not None: + parameters.append(self.spatial_model.parameters) + + if self.temporal_model is not None: + parameters.append(self.temporal_model.parameters) + + return Parameters.from_stack(parameters) + + @property + def parameters_unique_names(self): + """List of unique parameter names. Return formatted as par_type.par_name.""" + names = [] + for model in self._models: + for par_name in model.parameters_unique_names: + components = [model.type, par_name] + name = ".".join(components) + names.append(name) + return names + + @property + def spatial_model(self): + """Spatial model as a `~gammapy.modeling.models.SpatialModel` object.""" + return self._spatial_model + + @spatial_model.setter + def spatial_model(self, model): + if not (model is None or isinstance(model, SpatialModel)): + raise TypeError(f"Invalid type: {model!r}") + + self._spatial_model = model + + @property + def spectral_model(self): + """Spectral model as a `~gammapy.modeling.models.SpectralModel` object.""" + return self._spectral_model + + @spectral_model.setter + def spectral_model(self, model): + if not (model is None or isinstance(model, SpectralModel)): + raise TypeError(f"Invalid type: {model!r}") + self._spectral_model = model + + @property + def temporal_model(self): + """Temporal model as a `~gammapy.modeling.models.TemporalModel` object.""" + return self._temporal_model + + @temporal_model.setter + def temporal_model(self, model): + if not (model is None or isinstance(model, TemporalModel)): + raise TypeError(f"Invalid type: {model!r}") + + self._temporal_model = model + + @property + def position(self): + """Position as a `~astropy.coordinates.SkyCoord`.""" + return getattr(self.spatial_model, "position", None) + + @property + def position_lonlat(self): + """Spatial model center position `(lon, lat)` in radians and frame of the model.""" + return getattr(self.spatial_model, "position_lonlat", None) + + @property + def evaluation_bin_size_min(self): + """Minimal spatial bin size for spatial model evaluation.""" + if ( + self.spatial_model is not None + and self.spatial_model.evaluation_bin_size_min is not None + ): + return self.spatial_model.evaluation_bin_size_min + else: + return None + + @property + def evaluation_radius(self): + """Evaluation radius as an `~astropy.coordinates.Angle`.""" + return self.spatial_model.evaluation_radius + + @property + def evaluation_region(self): + """Evaluation region as an `~astropy.coordinates.Angle`.""" + return self.spatial_model.evaluation_region + + @property + def frame(self): + return self.spatial_model.frame + + def __add__(self, other): + if isinstance(other, (Models, list)): + return Models([self, *other]) + elif isinstance(other, (SkyModel, TemplateNPredModel)): + return Models([self, other]) + else: + raise TypeError(f"Invalid type: {other!r}") + + def __radd__(self, model): + return self.__add__(model) + +
+[docs] + def __call__(self, lon, lat, energy, time=None): + return self.evaluate(lon, lat, energy, time)
+ + + def __repr__(self): + return ( + f"{self.__class__.__name__}(" + f"spatial_model={self.spatial_model!r}, " + f"spectral_model={self.spectral_model!r})" + f"temporal_model={self.temporal_model!r})" + ) + +
+[docs] + def contributes(self, mask, margin="0 deg"): + """Check if a sky model contributes within a mask map. + + Parameters + ---------- + mask : `~gammapy.maps.WcsNDMap` of boolean type + Map containing a boolean mask. + margin : `~astropy.units.Quantity` + Add a margin in degree to the source evaluation radius. + Used to take into account PSF width. + + + Returns + ------- + models : `DatasetModels` + Selected models contributing inside the region where mask is True. + """ + from gammapy.datasets.evaluator import CUTOUT_MARGIN + + margin = u.Quantity(margin) + + if not mask.geom.is_image: + mask = mask.reduce_over_axes(func=np.logical_or) + + if mask.geom.is_region and mask.geom.region is not None: + if mask.geom.is_all_point_sky_regions: + return True + + geom = mask.geom.to_wcs_geom() + mask = geom.region_mask([mask.geom.region]) + + try: + mask_cutout = mask.cutout( + position=self.position, + width=(2 * self.evaluation_radius + CUTOUT_MARGIN + margin), + ) + contributes = np.any(mask_cutout.data) + except (NoOverlapError, ValueError): + contributes = False + + return contributes
+ + +
+[docs] + def evaluate(self, lon, lat, energy, time=None): + """Evaluate the model at given points. + + The model evaluation follows numpy broadcasting rules. + + Return differential surface brightness cube. + At the moment in units: ``cm-2 s-1 TeV-1 deg-2``. + + Parameters + ---------- + lon, lat : `~astropy.units.Quantity` + Spatial coordinates. + energy : `~astropy.units.Quantity` + Energy coordinate. + time: `~astropy.time.Time`, optional + Time coordinate. Default is None. + + Returns + ------- + value : `~astropy.units.Quantity` + Model value at the given point. + """ + value = self.spectral_model(energy) # pylint:disable=not-callable + # TODO: case if self.temporal_model is not None, introduce time in arguments ? + + if self.spatial_model is not None: + if self.spatial_model.is_energy_dependent: + spatial = self.spatial_model(lon, lat, energy) + else: + spatial = self.spatial_model(lon, lat) + + value = value * spatial # pylint:disable=not-callable + + if (self.temporal_model is not None) and (time is not None): + value = value * self.temporal_model(time) + + return value
+ + +
+[docs] + def evaluate_geom(self, geom, gti=None): + """Evaluate model on `~gammapy.maps.Geom`.""" + coords = geom.get_coord(sparse=True) + + value = self.spectral_model(coords["energy_true"]) + + additional_axes = set(coords.axis_names) - { + "lon", + "lat", + "energy_true", + "time", + } + for axis in additional_axes: + value = value * np.ones_like(coords[axis]) + + if self.spatial_model: + value = value * self.spatial_model.evaluate_geom(geom) + + if self.temporal_model: + value = self._compute_time_integral(value, geom, gti) + + return value
+ + +
+[docs] + def integrate_geom(self, geom, gti=None, oversampling_factor=None): + """Integrate model on `~gammapy.maps.Geom`. + + See `~gammapy.modeling.models.SpatialModel.integrate_geom` and + `~gammapy.modeling.models.SpectralModel.integral`. + + Parameters + ---------- + geom : `Geom` or `~gammapy.maps.RegionGeom` + Map geometry. + gti : `GTI`, optional + GIT table. Default is None. + oversampling_factor : int, optional + The oversampling factor to use for spatial integration. + Default is None: the factor is estimated from the model minimal bin size. + + Returns + ------- + flux : `Map` + Predicted flux map. + """ + energy = geom.axes["energy_true"].edges + shape = len(geom.data_shape) * [ + 1, + ] + shape[geom.axes.index_data("energy_true")] = -1 + value = self.spectral_model.integral( + energy[:-1], + energy[1:], + ).reshape(shape) + + if self.spatial_model: + value = ( + value + * self.spatial_model.integrate_geom( + geom, oversampling_factor=oversampling_factor + ).quantity + ) + + if self.temporal_model: + value = self._compute_time_integral(value, geom, gti) + + value = value * np.ones(geom.data_shape) + + return Map.from_geom(geom=geom, data=value.value, unit=value.unit)
+ + + def _compute_time_integral(self, value, geom, gti): + """Multiply input value with time integral for the given geometry and GTI.""" + if "time" in geom.axes.names: + if geom.axes.names[-1] != "time": + raise ValueError( + "Incorrect axis order. The time axis must be the last axis" + ) + time_axis = geom.axes["time"] + + temp_eval = np.ones(time_axis.nbin) + for idx in range(time_axis.nbin): + if gti is None: + t1, t2 = time_axis.time_min[idx], time_axis.time_max[idx] + else: + gti_in_bin = gti.select_time( + time_interval=[ + time_axis.time_min[idx], + time_axis.time_max[idx], + ] + ) + t1, t2 = gti_in_bin.time_start, gti_in_bin.time_stop + integral = self.temporal_model.integral(t1, t2) + temp_eval[idx] = np.sum(integral) + value = (value.T * temp_eval).T + + else: + if gti is not None: + integral = self.temporal_model.integral(gti.time_start, gti.time_stop) + value = value * np.sum(integral) + return value + +
+[docs] + def copy(self, name=None, copy_data=False, **kwargs): + """Copy sky model. + + Parameters + ---------- + name : str, optional + Assign a new name to the copied model. Default is None. + copy_data : bool, optional + Copy the data arrays attached to models. Default is False. + **kwargs : dict + Keyword arguments forwarded to `SkyModel`. + + Returns + ------- + model : `SkyModel` + Copied sky model. + """ + if self.spatial_model is not None: + spatial_model = self.spatial_model.copy(copy_data=copy_data) + else: + spatial_model = None + + if self.temporal_model is not None: + temporal_model = self.temporal_model.copy() + else: + temporal_model = None + + kwargs.setdefault("name", make_name(name)) + kwargs.setdefault("spectral_model", self.spectral_model.copy()) + kwargs.setdefault("spatial_model", spatial_model) + kwargs.setdefault("temporal_model", temporal_model) + kwargs.setdefault("apply_irf", self.apply_irf.copy()) + kwargs.setdefault("datasets_names", self.datasets_names) + kwargs.setdefault("covariance_data", self.covariance.data.copy()) + + return self.__class__(**kwargs)
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + data = {} + data["name"] = self.name + data["type"] = self.tag[0] + + if self.apply_irf != self._apply_irf_default: + data["apply_irf"] = self.apply_irf + + if self.datasets_names is not None: + data["datasets_names"] = self.datasets_names + + data.update(self.spectral_model.to_dict(full_output)) + + if self.spatial_model is not None: + data.update(self.spatial_model.to_dict(full_output)) + + if self.temporal_model is not None: + data.update(self.temporal_model.to_dict(full_output)) + + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create SkyModel from dictionary.""" + from gammapy.modeling.models import ( + SPATIAL_MODEL_REGISTRY, + SPECTRAL_MODEL_REGISTRY, + TEMPORAL_MODEL_REGISTRY, + ) + + model_class = SPECTRAL_MODEL_REGISTRY.get_cls(data["spectral"]["type"]) + spectral_model = model_class.from_dict({"spectral": data["spectral"]}) + + spatial_data = data.get("spatial") + + if spatial_data is not None: + model_class = SPATIAL_MODEL_REGISTRY.get_cls(spatial_data["type"]) + spatial_model = model_class.from_dict({"spatial": spatial_data}) + else: + spatial_model = None + + temporal_data = data.get("temporal") + + if temporal_data is not None: + model_class = TEMPORAL_MODEL_REGISTRY.get_cls(temporal_data["type"]) + temporal_model = model_class.from_dict({"temporal": temporal_data}) + else: + temporal_model = None + + return cls( + name=data["name"], + spatial_model=spatial_model, + spectral_model=spectral_model, + temporal_model=temporal_model, + apply_irf=data.get("apply_irf", cls._apply_irf_default), + datasets_names=data.get("datasets_names"), + )
+ + + def __str__(self): + str_ = f"{self.__class__.__name__}\n\n" + + str_ += "\t{:26}: {}\n".format("Name", self.name) + + str_ += "\t{:26}: {}\n".format("Datasets names", self.datasets_names) + + str_ += "\t{:26}: {}\n".format( + "Spectral model type", self.spectral_model.__class__.__name__ + ) + + if self.spatial_model is not None: + spatial_type = self.spatial_model.__class__.__name__ + else: + spatial_type = "" + str_ += "\t{:26}: {}\n".format("Spatial model type", spatial_type) + + if self.temporal_model is not None: + temporal_type = self.temporal_model.__class__.__name__ + else: + temporal_type = "" + str_ += "\t{:26}: {}\n".format("Temporal model type", temporal_type) + + str_ += "\tParameters:\n" + info = _get_parameters_str(self.parameters) + lines = info.split("\n") + str_ += "\t" + "\n\t".join(lines[:-1]) + + str_ += "\n\n" + return str_.expandtabs(tabsize=2) + +
+[docs] + @classmethod + def create(cls, spectral_model, spatial_model=None, temporal_model=None, **kwargs): + """Create a model instance. + + Parameters + ---------- + spectral_model : str + Tag to create spectral model. + spatial_model : str, optional + Tag to create spatial model. Default is None. + temporal_model : str, optional + Tag to create temporal model. Default is None. + **kwargs : dict + Keyword arguments passed to `SkyModel`. + + Returns + ------- + model : SkyModel + Sky model. + """ + spectral_model = Model.create(spectral_model, model_type="spectral") + + if spatial_model: + spatial_model = Model.create(spatial_model, model_type="spatial") + + if temporal_model: + temporal_model = Model.create(temporal_model, model_type="temporal") + + return cls( + spectral_model=spectral_model, + spatial_model=spatial_model, + temporal_model=temporal_model, + **kwargs, + )
+ + +
+[docs] + def freeze(self, model_type=None): + """Freeze parameters depending on model type. + + Parameters + ---------- + model_type : {None, "spatial", "spectral", "temporal"} + Freeze all parameters or only spatial/spectral/temporal. + Default is None, such that all parameters are frozen. + """ + if model_type is None: + self.parameters.freeze_all() + else: + model = getattr(self, f"{model_type}_model") + model.freeze()
+ + +
+[docs] + def unfreeze(self, model_type=None): + """Restore parameters frozen status to default depending on model type. + + Parameters + ---------- + model_type : {None, "spatial", "spectral", "temporal"} + Restore frozen status to default for all parameters or only spatial/spectral/temporal. + Default is None, such that all parameters are restored to default frozen status. + + """ + if model_type is None: + for model_type in ["spectral", "spatial", "temporal"]: + self.unfreeze(model_type) + else: + model = getattr(self, f"{model_type}_model") + if model: + model.unfreeze()
+
+ + + +
+[docs] +class FoVBackgroundModel(ModelBase): + """Field of view background model. + + The background model holds the correction parameters applied to + the instrumental background attached to a `MapDataset` or + `SpectrumDataset`. + + Parameters + ---------- + dataset_name : str + Dataset name. + spectral_model : `~gammapy.modeling.models.SpectralModel`, Optional + Normalized spectral model. + Default is `~gammapy.modeling.models.PowerLawNormSpectralModel` + spatial_model : `~gammapy.modeling.models.SpatialModel`, Optional + Unitless Spatial model (unit is dropped on evaluation if defined). + Default is None. + """ + + tag = ["FoVBackgroundModel", "fov-bkg"] + + def __init__( + self, + dataset_name, + spectral_model=None, + spatial_model=None, + covariance_data=None, + ): + # TODO: remove this in v2.0 + if isinstance(dataset_name, SpectralModel): + warnings.warn( + "dataset_name has been made first argument since v1.3.", + GammapyDeprecationWarning, + stacklevel=2, + ) + buf = dataset_name + dataset_name = spectral_model + spectral_model = buf + + self.datasets_names = [dataset_name] + + if spectral_model is None: + spectral_model = PowerLawNormSpectralModel() + + if not spectral_model.is_norm_spectral_model: + raise ValueError("A norm spectral model is required.") + + self._spatial_model = spatial_model + self._spectral_model = spectral_model + super().__init__(covariance_data=covariance_data) + +
+[docs] + @staticmethod + def contributes(*args, **kwargs): + """FoV background models always contribute.""" + return True
+ + + @property + def spectral_model(self): + """Spectral norm model.""" + return self._spectral_model + + @property + def spatial_model(self): + """Spatial norm model.""" + return self._spatial_model + + @property + def _models(self): + models = self.spectral_model, self.spatial_model + return [model for model in models if model is not None] + + @property + def name(self): + """Model name.""" + return self.datasets_names[0] + "-bkg" + + @property + def parameters(self): + """Model parameters.""" + parameters = [] + parameters.append(self.spectral_model.parameters) + if self.spatial_model is not None: + parameters.append(self.spatial_model.parameters) + return Parameters.from_stack(parameters) + + @property + def parameters_unique_names(self): + """List of unique parameter names. Return formatted as par_type.par_name.""" + names = [] + for model in self._models: + for par_name in model.parameters_unique_names: + components = [model.type, par_name] + name = ".".join(components) + names.append(name) + return names + + def __str__(self): + str_ = f"{self.__class__.__name__}\n\n" + + str_ += "\t{:26}: {}\n".format("Name", self.name) + str_ += "\t{:26}: {}\n".format("Datasets names", self.datasets_names) + str_ += "\t{:26}: {}\n".format( + "Spectral model type", self.spectral_model.__class__.__name__ + ) + if self.spatial_model is not None: + str_ += "\t{:26}: {}\n".format( + "Spatial model type", self.spatial_model.__class__.__name__ + ) + str_ += "\tParameters:\n" + info = _get_parameters_str(self.parameters) + lines = info.split("\n") + str_ += "\t" + "\n\t".join(lines[:-1]) + + str_ += "\n\n" + return str_.expandtabs(tabsize=2) + +
+[docs] + def evaluate_geom(self, geom): + """Evaluate map.""" + coords = geom.get_coord(sparse=True) + return self.evaluate(**coords._data)
+ + +
+[docs] + def evaluate(self, energy, lon=None, lat=None): + """Evaluate model.""" + value = self.spectral_model(energy) + if self.spatial_model is not None: + if lon is not None and lat is not None: + if self.spatial_model.is_energy_dependent: + return self.spatial_model(lon, lat, energy).value * value + else: + return self.spatial_model(lon, lat).value * value + else: + raise ValueError( + "lon and lat are required if a spatial model is defined" + ) + else: + return value
+ + +
+[docs] + def copy(self, name=None, copy_data=False, **kwargs): + """Copy the `FoVBackgroundModel` instance. + + Parameters + ---------- + name : str, optional + Ignored, present for API compatibility. + Default is None. + copy_data : bool, optional + Ignored, present for API compatibility. + Default is False. + **kwargs : dict + Keyword arguments forwarded to `FoVBackgroundModel`. + + Returns + ------- + model : `FoVBackgroundModel` + Copied FoV background model. + """ + kwargs.setdefault("spectral_model", self.spectral_model.copy()) + kwargs.setdefault("dataset_name", self.datasets_names[0]) + kwargs.setdefault("covariance_data", self.covariance.data.copy()) + if self.spatial_model is not None: + kwargs.setdefault("spatial_model", self.spatial_model.copy()) + return self.__class__(**kwargs)
+ + +
+[docs] + def to_dict(self, full_output=False): + data = {} + data["type"] = self.tag[0] + data["datasets_names"] = self.datasets_names + data.update(self.spectral_model.to_dict(full_output=full_output)) + if self.spatial_model is not None: + data.update(self.spatial_model.to_dict(full_output)) + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create model from dictionary. + + Parameters + ---------- + data : dict + Data dictionary. + """ + from gammapy.modeling.models import ( + SPATIAL_MODEL_REGISTRY, + SPECTRAL_MODEL_REGISTRY, + ) + + spectral_data = data.get("spectral") + if spectral_data is not None: + model_class = SPECTRAL_MODEL_REGISTRY.get_cls(spectral_data["type"]) + spectral_model = model_class.from_dict({"spectral": spectral_data}) + else: + spectral_model = None + + spatial_data = data.get("spatial") + if spatial_data is not None: + model_class = SPATIAL_MODEL_REGISTRY.get_cls(spatial_data["type"]) + spatial_model = model_class.from_dict({"spatial": spatial_data}) + else: + spatial_model = None + + datasets_names = data.get("datasets_names") + + if datasets_names is None: + raise ValueError("FoVBackgroundModel must define a dataset name") + + if len(datasets_names) > 1: + raise ValueError("FoVBackgroundModel can only be assigned to one dataset") + + return cls( + spatial_model=spatial_model, + spectral_model=spectral_model, + dataset_name=datasets_names[0], + )
+ + +
+[docs] + def reset_to_default(self): + """Reset parameter values to default.""" + values = self.spectral_model.default_parameters.value + self.spectral_model.parameters.value = values
+ + +
+[docs] + def freeze(self, model_type="spectral"): + """Freeze model parameters.""" + if model_type is None or model_type == "spectral": + self._spectral_model.freeze()
+ + +
+[docs] + def unfreeze(self, model_type="spectral"): + """Restore parameters frozen status to default.""" + if model_type is None or model_type == "spectral": + self._spectral_model.unfreeze()
+
+ + + +
+[docs] +class TemplateNPredModel(ModelBase): + """Background model. + + Create a new map by a tilt and normalization on the available map. + + Parameters + ---------- + map : `~gammapy.maps.Map` + Background model map. + spectral_model : `~gammapy.modeling.models.SpectralModel` + Normalized spectral model. + Default is `~gammapy.modeling.models.PowerLawNormSpectralModel`. + copy_data : bool + Create a deepcopy of the map data or directly use the original. Default is True. + Use False to save memory in case of large maps. + spatial_model : `~gammapy.modeling.models.SpatialModel` + Unitless Spatial model (unit is dropped on evaluation if defined). + Default is None. + """ + + tag = "TemplateNPredModel" + map = LazyFitsData(cache=True) + + def __init__( + self, + map, + spectral_model=None, + name=None, + filename=None, + datasets_names=None, + copy_data=True, + spatial_model=None, + covariance_data=None, + ): + if isinstance(map, Map): + axis = map.geom.axes["energy"] + if axis.node_type != "edges": + raise ValueError( + 'Need an integrated map, energy axis node_type="edges"' + ) + + if copy_data: + self.map = map.copy() + else: + self.map = map + + self._name = make_name(name) + self.filename = filename + + if spectral_model is None: + spectral_model = PowerLawNormSpectralModel() + spectral_model.tilt.frozen = True + + self.spatial_model = spatial_model + self.spectral_model = spectral_model + + if isinstance(datasets_names, str): + datasets_names = [datasets_names] + + if isinstance(datasets_names, list): + if len(datasets_names) != 1: + raise ValueError( + "Currently background models can only be assigned to one dataset." + ) + self.datasets_names = datasets_names + super().__init__(covariance_data=covariance_data) + +
+[docs] + def copy(self, name=None, copy_data=False, **kwargs): + """Copy template npred model. + + Parameters + ---------- + name : str, optional + Assign a new name to the copied model. + Default is None. + copy_data : bool, optional + Copy the data arrays attached to models. + Default is False. + **kwargs : dict + Keyword arguments forwarded to `TemplateNPredModel`. + + Returns + ------- + model : `TemplateNPredModel` + Copied template npred model. + """ + name = make_name(name) + kwargs.setdefault("map", self.map) + kwargs.setdefault("spectral_model", self.spectral_model.copy()) + kwargs.setdefault("filename", self.filename) + kwargs.setdefault("datasets_names", self.datasets_names) + kwargs.setdefault("covariance_data", self.covariance.data.copy()) + return self.__class__(name=name, copy_data=copy_data, **kwargs)
+ + + @property + def name(self): + return self._name + + @property + def energy_center(self): + """True energy axis bin centers as a `~astropy.units.Quantity`.""" + energy_axis = self.map.geom.axes["energy"] + energy = energy_axis.center + return energy[:, np.newaxis, np.newaxis] + + @property + def spectral_model(self): + """Spectral model as a `~gammapy.modeling.models.SpectralModel` object.""" + return self._spectral_model + + @spectral_model.setter + def spectral_model(self, model): + if not (model is None or isinstance(model, SpectralModel)): + raise TypeError(f"Invalid type: {model!r}") + self._spectral_model = model + + @property + def _models(self): + models = self.spectral_model, self.spatial_model + return [model for model in models if model is not None] + + @property + def parameters(self): + parameters = [] + parameters.append(self.spectral_model.parameters) + return Parameters.from_stack(parameters) + + @property + def parameters_unique_names(self): + """List of unique parameter names. Return formatted as par_type.par_name.""" + names = [] + for model in self._models: + for par_name in model.parameters_unique_names: + components = [model.type, par_name] + name = ".".join(components) + names.append(name) + return names + +
+[docs] + def evaluate(self): + """Evaluate background model. + + Returns + ------- + background_map : `~gammapy.maps.Map` + Background evaluated on the Map. + """ + value = self.spectral_model(self.energy_center).value + back_values = self.map.data * value + if self.spatial_model is not None: + value = self.spatial_model.evaluate_geom(self.map.geom).value + back_values *= value + return self.map.copy(data=back_values)
+ + +
+[docs] + def to_dict(self, full_output=False): + data = {} + data["name"] = self.name + data["type"] = self.tag + if self.spatial_model is not None: + data["spatial"] = self.spatial_model.to_dict(full_output)["spatial"] + data["spectral"] = self.spectral_model.to_dict(full_output)["spectral"] + + if self.filename is not None: + data["filename"] = self.filename + + if self.datasets_names is not None: + data["datasets_names"] = self.datasets_names + + return data
+ + +
+[docs] + def write(self, overwrite=False): + """ + Write the map. + + Parameters + ---------- + overwrite: bool, optional + Overwrite existing file. + Default is False, which will raise a warning if the template file exists already. + """ + if self.filename is None: + raise IOError("Missing filename") + elif os.path.isfile(make_path(self.filename)) and not overwrite: + log.warning("Template file already exits, and overwrite is False") + else: + self.map.write(self.filename, overwrite=overwrite)
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + from gammapy.modeling.models import ( + SPATIAL_MODEL_REGISTRY, + SPECTRAL_MODEL_REGISTRY, + ) + + spectral_data = data.get("spectral") + if spectral_data is not None: + model_class = SPECTRAL_MODEL_REGISTRY.get_cls(spectral_data["type"]) + spectral_model = model_class.from_dict({"spectral": spectral_data}) + else: + spectral_model = None + + spatial_data = data.get("spatial") + if spatial_data is not None: + model_class = SPATIAL_MODEL_REGISTRY.get_cls(spatial_data["type"]) + spatial_model = model_class.from_dict({"spatial": spatial_data}) + else: + spatial_model = None + + if "filename" in data: + bkg_map = Map.read(data["filename"]) + else: + raise IOError("Missing filename") + + return cls( + map=bkg_map, + spatial_model=spatial_model, + spectral_model=spectral_model, + name=data["name"], + datasets_names=data.get("datasets_names"), + filename=data.get("filename"), + )
+ + +
+[docs] + def cutout(self, position, width, mode="trim", name=None): + """Cutout background model. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Center position of the cutout region. + width : tuple of `~astropy.coordinates.Angle` + Angular sizes of the region in (lon, lat) in that specific order. + If only one value is passed, a square region is extracted. + mode : {'trim', 'partial', 'strict'} + Mode option for Cutout2D, for details see `~astropy.nddata.utils.Cutout2D`. + Default is "trim". + name : str, optional + Name of the returned background model. Default is None. + + Returns + ------- + cutout : `TemplateNPredModel` + Cutout background model. + """ + cutout_kwargs = {"position": position, "width": width, "mode": mode} + + bkg_map = self.map.cutout(**cutout_kwargs) + spectral_model = self.spectral_model.copy() + return self.__class__(bkg_map, spectral_model=spectral_model, name=name)
+ + +
+[docs] + def stack(self, other, weights=None, nan_to_num=True): + """Stack background model in place. + + Stacking the background model resets the current parameters values. + + Parameters + ---------- + other : `TemplateNPredModel` + Other background model. + weights : float, optional + Weights. Default is None. + nan_to_num: bool, optional + Non-finite values are replaced by zero if True. Default is True. + """ + bkg = self.evaluate() + if nan_to_num: + bkg.data[~np.isfinite(bkg.data)] = 0 + other_bkg = other.evaluate() + bkg.stack(other_bkg, weights=weights, nan_to_num=nan_to_num) + self.map = bkg + + # reset parameter values + self.spectral_model.norm.value = 1 + self.spectral_model.tilt.value = 0
+ + +
+[docs] + def slice_by_energy(self, energy_min=None, energy_max=None, name=None): + """Select and slice model template in energy range + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Energy bounds of the slice. Default is None. + name : str + Name of the sliced model. Default is None. + + Returns + ------- + model : `TemplateNpredModel` + Sliced Model. + + """ + name = make_name(name) + + energy_axis = self.map._geom.axes["energy"] + + if energy_min is None: + energy_min = energy_axis.bounds[0] + + if energy_max is None: + energy_max = energy_axis.bounds[1] + + if name is None: + name = self.name + + energy_min, energy_max = u.Quantity(energy_min), u.Quantity(energy_max) + + group = energy_axis.group_table(edges=[energy_min, energy_max]) + + is_normal = group["bin_type"] == "normal " + group = group[is_normal] + + slices = { + "energy": slice(int(group["idx_min"][0]), int(group["idx_max"][0]) + 1) + } + + model = self.copy(name=name) + model.map = model.map.slice_by_idx(slices=slices) + return model
+ + + def __str__(self): + str_ = self.__class__.__name__ + "\n\n" + str_ += "\t{:26}: {}\n".format("Name", self.name) + str_ += "\t{:26}: {}\n".format("Datasets names", self.datasets_names) + + str_ += "\tParameters:\n" + info = _get_parameters_str(self.parameters) + lines = info.split("\n") + str_ += "\t" + "\n\t".join(lines[:-1]) + + str_ += "\n\n" + return str_.expandtabs(tabsize=2) + + @property + def position(self): + """Position as a `~astropy.coordinates.SkyCoord`.""" + return self.map.geom.center_skydir + + @property + def evaluation_radius(self): + """Evaluation radius as a `~astropy.coordinates.Angle`.""" + return np.max(self.map.geom.width) / 2.0 + +
+[docs] + def freeze(self, model_type="spectral"): + """Freeze model parameters.""" + if model_type is None or model_type == "spectral": + self._spectral_model.freeze()
+ + +
+[docs] + def unfreeze(self, model_type="spectral"): + """Restore parameters frozen status to default.""" + if model_type is None or model_type == "spectral": + self._spectral_model.unfreeze()
+
+ + + +
+[docs] +def create_fermi_isotropic_diffuse_model(filename, **kwargs): + """Read Fermi isotropic diffuse model. + + See `LAT Background models <https://fermi.gsfc.nasa.gov/ssc/data/access/lat/BackgroundModels.html>`__. + + Parameters + ---------- + filename : str + Filename. + kwargs : dict + Keyword arguments forwarded to `TemplateSpectralModel`. + + Returns + ------- + diffuse_model : `SkyModel` + Fermi isotropic diffuse sky model. + """ + vals = np.loadtxt(make_path(filename)) + energy = u.Quantity(vals[:, 0], "MeV", copy=COPY_IF_NEEDED) + values = u.Quantity(vals[:, 1], "MeV-1 s-1 cm-2", copy=COPY_IF_NEEDED) + + kwargs.setdefault("interp_kwargs", {"fill_value": None}) + + spatial_model = ConstantSpatialModel() + spectral_model = ( + TemplateSpectralModel(energy=energy, values=values, **kwargs) + * PowerLawNormSpectralModel() + ) + return SkyModel( + spatial_model=spatial_model, + spectral_model=spectral_model, + name="fermi-diffuse-iso", + apply_irf={"psf": False, "exposure": True, "edisp": False}, + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/prior.html b/docs/dev/_modules/gammapy/modeling/models/prior.html new file mode 100644 index 00000000000..2637e6378c0 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/prior.html @@ -0,0 +1,743 @@ + + + + + + + + + + gammapy.modeling.models.prior — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.prior

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Priors for Gammapy."""
+
+import logging
+import numpy as np
+import astropy.units as u
+from gammapy.modeling import PriorParameter, PriorParameters
+from .core import ModelBase
+
+__all__ = ["GaussianPrior", "UniformPrior", "Prior"]
+
+log = logging.getLogger(__name__)
+
+
+def _build_priorparameters_from_dict(data, default_parameters):
+    """Build a `~gammapy.modeling.PriorParameters` object from input dictionary and default prior parameter values."""
+    par_data = []
+
+    input_names = [_["name"] for _ in data]
+
+    for par in default_parameters:
+        par_dict = par.to_dict()
+        try:
+            index = input_names.index(par_dict["name"])
+            par_dict.update(data[index])
+        except ValueError:
+            log.warning(
+                f"PriorParameter '{par_dict['name']}' not defined in YAML file."
+                f" Using default value: {par_dict['value']} {par_dict['unit']}"
+            )
+        par_data.append(par_dict)
+
+    return PriorParameters.from_dict(par_data)
+
+
+
+[docs] +class Prior(ModelBase): + """Prior base class.""" + + _unit = "" + + def __init__(self, **kwargs): + # Copy default parameters from the class to the instance + default_parameters = self.default_parameters.copy() + + for par in default_parameters: + value = kwargs.get(par.name, par) + if not isinstance(value, PriorParameter): + par.quantity = u.Quantity(value) + else: + par = value + + setattr(self, par.name, par) + + _weight = kwargs.get("weight", None) + + if _weight is not None: + self._weight = _weight + else: + self._weight = 1 + + @property + def parameters(self): + """Prior parameters as a `~gammapy.modeling.PriorParameters` object.""" + return PriorParameters( + [getattr(self, name) for name in self.default_parameters.names] + ) + + def __init_subclass__(cls, **kwargs): + # Add priorparameters list on the model sub-class (not instances) + cls.default_parameters = PriorParameters( + [_ for _ in cls.__dict__.values() if isinstance(_, PriorParameter)] + ) + + @property + def weight(self): + """Weight mulitplied to the prior when evaluated.""" + return self._weight + + @weight.setter + def weight(self, value): + self._weight = value + +
+[docs] + def __call__(self, value): + """Call evaluate method.""" + # assuming the same unit as the PriorParamater here + kwargs = {par.name: par.value for par in self.parameters} + return self.weight * self.evaluate(value.value, **kwargs)
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serialisation.""" + tag = self.tag[0] if isinstance(self.tag, list) else self.tag + params = self.parameters.to_dict() + + if not full_output: + for par, par_default in zip(params, self.default_parameters): + init = par_default.to_dict() + for item in [ + "min", + "max", + "error", + ]: + default = init[item] + + if par[item] == default or ( + np.isnan(par[item]) and np.isnan(default) + ): + del par[item] + + data = {"type": tag, "parameters": params, "weight": self.weight} + + if self.type is None: + return data + else: + return {self.type: data}
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Get prior parameters from dictionary.""" + kwargs = {} + + key0 = next(iter(data)) + if key0 in ["prior"]: + data = data[key0] + if data["type"] not in cls.tag: + raise ValueError( + f"Invalid model type {data['type']} for class {cls.__name__}" + ) + + priorparameters = _build_priorparameters_from_dict( + data["parameters"], cls.default_parameters + ) + kwargs["weight"] = data["weight"] + return cls.from_parameters(priorparameters, **kwargs)
+
+ + + +
+[docs] +class GaussianPrior(Prior): + """One-dimensional Gaussian Prior. + + Parameters + ---------- + mu : float + Mean of the Gaussian distribution. + Default is 0. + sigma : float + Standard deviation of the Gaussian distribution. + Default is 1. + """ + + tag = ["GaussianPrior"] + _type = "prior" + mu = PriorParameter(name="mu", value=0) + sigma = PriorParameter(name="sigma", value=1) + +
+[docs] + @staticmethod + def evaluate(value, mu, sigma): + """Evaluate the Gaussian prior.""" + return ((value - mu) / sigma) ** 2
+
+ + + +
+[docs] +class UniformPrior(Prior): + """Uniform Prior. + + Returns 1 if the parameter value is in (min, max). + 0, if otherwise. + + Parameters + ---------- + min : float + Minimum value. + Default is -inf. + max : float + Maxmimum value. + Default is inf. + """ + + tag = ["UniformPrior"] + _type = "prior" + min = PriorParameter(name="min", value=-np.inf, unit="") + max = PriorParameter(name="max", value=np.inf, unit="") + +
+[docs] + @staticmethod + def evaluate(value, min, max): + """Evaluate the uniform prior.""" + if min < value < max: + return 0.0 + else: + return 1.0
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/spatial.html b/docs/dev/_modules/gammapy/modeling/models/spatial.html new file mode 100644 index 00000000000..8ae70214dc7 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/spatial.html @@ -0,0 +1,2506 @@ + + + + + + + + + + gammapy.modeling.models.spatial — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.spatial

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Spatial models."""
+
+import logging
+import os
+import numpy as np
+import scipy.integrate
+import scipy.special
+from scipy.interpolate import griddata
+import astropy.units as u
+from astropy.coordinates import Angle, SkyCoord, angular_separation, position_angle
+from astropy.nddata import NoOverlapError
+from astropy.utils import lazyproperty
+from regions import (
+    CircleAnnulusSkyRegion,
+    CircleSkyRegion,
+    EllipseAnnulusSkyRegion,
+    EllipseSkyRegion,
+    PointSkyRegion,
+    RectangleSkyRegion,
+)
+import matplotlib.pyplot as plt
+from gammapy.maps import HpxNDMap, Map, MapCoord, WcsGeom, WcsNDMap
+from gammapy.modeling import Parameter, Parameters
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.gauss import Gauss2DPDF
+from gammapy.utils.interpolation import interpolation_scale
+from gammapy.utils.regions import region_circle_to_ellipse, region_to_frame
+from gammapy.utils.scripts import make_path
+from .core import ModelBase, _build_parameters_from_dict
+
+__all__ = [
+    "ConstantFluxSpatialModel",
+    "ConstantSpatialModel",
+    "DiskSpatialModel",
+    "GaussianSpatialModel",
+    "GeneralizedGaussianSpatialModel",
+    "PointSpatialModel",
+    "Shell2SpatialModel",
+    "ShellSpatialModel",
+    "SpatialModel",
+    "TemplateSpatialModel",
+    "TemplateNDSpatialModel",
+    "PiecewiseNormSpatialModel",
+]
+
+
+log = logging.getLogger(__name__)
+
+MAX_OVERSAMPLING = 200
+
+
+def compute_sigma_eff(lon_0, lat_0, lon, lat, phi, major_axis, e):
+    """Effective radius, used for the evaluation of elongated models."""
+    phi_0 = position_angle(lon_0, lat_0, lon, lat)
+    d_phi = phi - phi_0
+    minor_axis = Angle(major_axis * np.sqrt(1 - e**2))
+
+    a2 = (major_axis * np.sin(d_phi)) ** 2
+    b2 = (minor_axis * np.cos(d_phi)) ** 2
+    denominator = np.sqrt(a2 + b2)
+    sigma_eff = major_axis * minor_axis / denominator
+    return minor_axis, sigma_eff
+
+
+
+[docs] +class SpatialModel(ModelBase): + """Spatial model base class.""" + + _type = "spatial" + + def __init__(self, **kwargs): + frame = kwargs.pop("frame", "icrs") + super().__init__(**kwargs) + if not hasattr(self, "frame"): + self.frame = frame + +
+[docs] + def __call__(self, lon, lat, energy=None): + """Call evaluate method.""" + kwargs = {par.name: par.quantity for par in self.parameters} + + if energy is None and self.is_energy_dependent: + raise ValueError("Missing energy value for evaluation") + + if energy is not None: + kwargs["energy"] = energy + + return self.evaluate(lon, lat, **kwargs)
+ + + @property + def evaluation_bin_size_min(self): + return None + + # TODO: make this a hard-coded class attribute? + @lazyproperty + def is_energy_dependent(self): + varnames = self.evaluate.__code__.co_varnames + return "energy" in varnames + + @property + def position(self): + """Spatial model center position as a `~astropy.coordinates.SkyCoord`.""" + lon = self.lon_0.quantity + lat = self.lat_0.quantity + return SkyCoord(lon, lat, frame=self.frame) + + @position.setter + def position(self, skycoord): + """Spatial model center position.""" + coord = skycoord.transform_to(self.frame) + self.lon_0.quantity = coord.data.lon + self.lat_0.quantity = coord.data.lat + + @property + def position_lonlat(self): + """Spatial model center position `(lon, lat)` in radians and frame of the model.""" + lon = self.lon_0.quantity.to_value(u.rad) + lat = self.lat_0.quantity.to_value(u.rad) + return lon, lat + + # TODO: get rid of this! + _phi_0 = 0.0 + + @property + def phi_0(self): + return self._phi_0 + + @phi_0.setter + def phi_0(self, phi_0=0.0): + self._phi_0 = phi_0 + + @property + def position_error(self): + """Get 95% containment position error as `~regions.EllipseSkyRegion`.""" + if self.covariance is None: + raise ValueError("No position error information available.") + + pars = self.parameters + sub_covar = self.covariance.get_subcovariance(["lon_0", "lat_0"]).data.copy() + cos_lat = np.cos(self.lat_0.quantity.to_value("rad")) + sub_covar[0, 0] *= cos_lat**2.0 + sub_covar[0, 1] *= cos_lat + sub_covar[1, 0] *= cos_lat + eig_vals, eig_vecs = np.linalg.eig(sub_covar) + lon_err, lat_err = np.sqrt(eig_vals) + y_vec = eig_vecs[:, 0] + phi = (np.arctan2(y_vec[1], y_vec[0]) * u.rad).to("deg") + self.phi_0 + err = np.sort([lon_err, lat_err]) + scale_r95 = Gauss2DPDF(sigma=1).containment_radius(0.95) + err *= scale_r95 + if err[1] == lon_err * scale_r95: + phi += 90 * u.deg + height = 2 * err[1] * pars["lon_0"].unit + width = 2 * err[0] * pars["lat_0"].unit + else: + height = 2 * err[1] * pars["lat_0"].unit + width = 2 * err[0] * pars["lon_0"].unit + + return EllipseSkyRegion( + center=self.position, height=height, width=width, angle=phi + ) + +
+[docs] + def evaluate_geom(self, geom): + """Evaluate model on `~gammapy.maps.Geom`. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Map geometry. + + Returns + ------- + map : `~gammapy.maps.Map` + Map containing the value in each spatial bin. + """ + coords = geom.get_coord(frame=self.frame, sparse=True) + + if self.is_energy_dependent: + return self(coords.lon, coords.lat, energy=coords["energy_true"]) + else: + return self(coords.lon, coords.lat)
+ + +
+[docs] + def integrate_geom(self, geom, oversampling_factor=None): + """Integrate model on `~gammapy.maps.Geom` or `~gammapy.maps.RegionGeom`. + + Integration is performed by simple rectangle approximation, the pixel center model value + is multiplied by the pixel solid angle. + An oversampling factor can be used for precision. By default, this parameter is set to None + and an oversampling factor is automatically estimated based on the model estimation maximal + bin width. + + For a RegionGeom, the model is integrated on a tangent WCS projection in the region. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` or `~gammapy.maps.RegionGeom` + The geom on which the integration is performed. + oversampling_factor : int or None + The oversampling factor to use for integration. + Default is None: the factor is estimated from the model minimal bin size. + + Returns + ------- + map : `~gammapy.maps.Map` or `gammapy.maps.RegionNDMap` + Map containing the integral value in each spatial bin. + """ + wcs_geom = geom + mask = None + + if geom.is_region: + wcs_geom = geom.to_wcs_geom().to_image() + + result = Map.from_geom(geom=wcs_geom) + integrated = Map.from_geom(wcs_geom) + + pix_scale = np.max(wcs_geom.pixel_scales.to_value("deg")) + if self.evaluation_radius is not None: + try: + width = 2 * np.maximum( + self.evaluation_radius.to_value("deg"), pix_scale + ) + wcs_geom_cut = wcs_geom.cutout(self.position, width) + integrated = Map.from_geom(wcs_geom_cut) + except (NoOverlapError, ValueError): + oversampling_factor = 1 + + if oversampling_factor is None: + if self.evaluation_bin_size_min is not None: + res_scale = self.evaluation_bin_size_min.to_value("deg") + if res_scale > 0: + oversampling_factor = np.minimum( + int(np.ceil(pix_scale / res_scale)), MAX_OVERSAMPLING + ) + else: + oversampling_factor = MAX_OVERSAMPLING + else: + oversampling_factor = 1 + + if oversampling_factor > 1: + upsampled_geom = integrated.geom.upsample( + oversampling_factor, axis_name=None + ) + # assume the upsampled solid angles are approximately factor**2 smaller + values = self.evaluate_geom(upsampled_geom) / oversampling_factor**2 + upsampled = Map.from_geom(upsampled_geom, unit=values.unit) + upsampled += values + + if geom.is_region: + mask = geom.contains(upsampled_geom.get_coord()).astype("int") + + integrated.quantity = upsampled.downsample( + oversampling_factor, preserve_counts=True, weights=mask + ).quantity + + # Finally stack result + result._unit = integrated.unit + result.stack(integrated) + else: + values = self.evaluate_geom(wcs_geom) + result._unit = values.unit + result += values + + result *= result.geom.solid_angle() + + if geom.is_region: + mask = result.geom.region_mask([geom.region]) + result = Map.from_geom( + geom, data=np.sum(result.data[mask]), unit=result.unit + ) + return result
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + data = super().to_dict(full_output) + data["spatial"]["frame"] = self.frame + data["spatial"]["parameters"] = data["spatial"].pop("parameters") + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create a spatial model from a dictionary. + + Parameters + ---------- + data : dict + Dictionary containing model parameters. + kwargs : dict + Keyword arguments passed to `~SpatialModel.from_parameters`. + """ + kwargs = kwargs or {} + spatial_data = data.get("spatial", data) + if "frame" in spatial_data: + kwargs["frame"] = spatial_data["frame"] + return super().from_dict(data, **kwargs)
+ + + @property + def _evaluation_geom(self): + if isinstance(self, TemplateSpatialModel): + geom = self.map.geom + else: + width = 2 * max(self.evaluation_radius, 0.1 * u.deg) + geom = WcsGeom.create( + skydir=self.position, frame=self.frame, width=width, binsz=0.02 + ) + return geom + + def _get_plot_map(self, geom): + if self.evaluation_radius is None and geom is None: + raise ValueError( + f"{self.__class__.__name__} requires geom to be defined for plotting." + ) + + if geom is None: + geom = self._evaluation_geom + + data = self.evaluate_geom(geom) + return Map.from_geom(geom, data=data.value, unit=data.unit) + +
+[docs] + def plot(self, ax=None, geom=None, **kwargs): + """Plot spatial model. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + geom : `~gammapy.maps.WcsGeom`, optional + Geometry to use for plotting. Default is None. + **kwargs : dict + Keyword arguments passed to `~gammapy.maps.WcsMap.plot()`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + m = self._get_plot_map(geom) + if not m.geom.is_flat: + raise TypeError( + "Use .plot_interactive() or .plot_grid() for Map dimension > 2" + ) + return m.plot(ax=ax, **kwargs)
+ + +
+[docs] + def plot_interactive(self, ax=None, geom=None, **kwargs): + """Plot spatial model. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + geom : `~gammapy.maps.WcsGeom`, optional + Geom to use for plotting. Default is None. + **kwargs : dict + Keyword arguments passed to `~gammapy.maps.WcsMap.plot()`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + m = self._get_plot_map(geom) + if m.geom.is_image: + raise TypeError("Use .plot() for 2D Maps") + m.plot_interactive(ax=ax, **kwargs)
+ + +
+[docs] + def plot_position_error(self, ax=None, **kwargs): + """Plot position error. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes to plot the position error on. Default is None. + **kwargs : dict + Keyword arguments passed to `~gammapy.maps.WcsMap.plot()`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + # plot center position + lon, lat = self.lon_0.value, self.lat_0.value + + ax = plt.gca() if ax is None else ax + + kwargs.setdefault("marker", "x") + kwargs.setdefault("color", "red") + kwargs.setdefault("label", "position") + + ax.scatter(lon, lat, transform=ax.get_transform(self.frame), **kwargs) + + # plot position error + if not np.all(self.covariance.data == 0): + region = self.position_error.to_pixel(ax.wcs) + artist = region.as_artist(facecolor="none", edgecolor=kwargs["color"]) + ax.add_artist(artist) + + return ax
+ + + def _to_region_error(self): + pass + +
+[docs] + def plot_error( + self, ax=None, which="position", kwargs_position=None, kwargs_extension=None + ): + """Plot the errors of the spatial model. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes to plot the errors on. Default is None. + which: list of str + Which errors to plot. + Available options are: + + * "all": all the optional steps are plotted + * "position": plot the position error of the spatial model + * "extension": plot the extension error of the spatial model + + kwargs_position : dict, optional + Keyword arguments passed to `~SpatialModel.plot_position_error`. + Default is None. + kwargs_extension : dict, optional + Keyword arguments passed to `~SpatialModel.plot_extension_error`. + Default is None. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + kwargs_position = kwargs_position or {} + kwargs_extension = kwargs_extension or {} + + ax = plt.gca() if ax is None else ax + + kwargs_extension.setdefault("edgecolor", "red") + kwargs_extension.setdefault("facecolor", "red") + kwargs_extension.setdefault("alpha", 0.15) + kwargs_extension.setdefault("fill", True) + + if "all" in which: + self.plot_position_error(ax, **kwargs_position) + + region = self._to_region_error() + if region is not None: + artist = region.to_pixel(ax.wcs).as_artist(**kwargs_extension) + ax.add_artist(artist) + + if "position" in which: + self.plot_position_error(ax, **kwargs_position) + + if "extension" in which: + region = self._to_region_error() + if region is not None: + artist = region.to_pixel(ax.wcs).as_artist(**kwargs_extension) + ax.add_artist(artist)
+ + +
+[docs] + def plot_grid(self, geom=None, **kwargs): + """Plot spatial model energy slices in a grid. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom`, optional + Geometry to use for plotting. Default is None. + **kwargs : dict + Keyword arguments passed to `~gammapy.maps.WcsMap.plot()`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + m = self._get_plot_map(geom) + if (m.geom is None) or m.geom.is_image: + raise TypeError("Use .plot() for 2D Maps") + m.plot_grid(**kwargs)
+ + +
+[docs] + @classmethod + def from_position(cls, position, **kwargs): + """Define the position of the model using a `~astropy.coordinates.SkyCoord`. + + The model will be created in the frame of the `~astropy.coordinates.SkyCoord`. + + Parameters + ---------- + position : `~astropy.coordinates.SkyCoord` + Position. + + Returns + ------- + model : `SpatialModel` + Spatial model. + """ + lon_0, lat_0 = position.data.lon, position.data.lat + return cls(lon_0=lon_0, lat_0=lat_0, frame=position.frame.name, **kwargs)
+ + + @property + def evaluation_radius(self): + """Evaluation radius.""" + return None + + @property + def evaluation_region(self): + """Evaluation region.""" + if hasattr(self, "to_region"): + return self.to_region() + elif self.evaluation_radius is not None: + return CircleSkyRegion( + center=self.position, + radius=self.evaluation_radius, + ) + else: + return None
+ + + +
+[docs] +class PointSpatialModel(SpatialModel): + """Point Source. + + For more information see :ref:`point-spatial-model`. + + Parameters + ---------- + lon_0, lat_0 : `~astropy.coordinates.Angle` + Center position. + Default is "0 deg", "0 deg". + frame : {"icrs", "galactic"} + Center position coordinate frame. + """ + + tag = ["PointSpatialModel", "point"] + lon_0 = Parameter("lon_0", "0 deg") + lat_0 = Parameter("lat_0", "0 deg", min=-90, max=90) + + @property + def evaluation_bin_size_min(self): + """Minimal evaluation bin size as an `~astropy.coordinates.Angle`.""" + return 0 * u.deg + + @property + def evaluation_radius(self): + """Evaluation radius as an `~astropy.coordinates.Angle`. + + Set as zero degrees. + """ + return 0 * u.deg + + @staticmethod + def _grid_weights(x, y, x0, y0): + """Compute 4-pixel weights such that centroid is preserved.""" + dx = np.abs(x - x0) + dx = np.where(dx < 1, 1 - dx, 0) + + dy = np.abs(y - y0) + dy = np.where(dy < 1, 1 - dy, 0) + + return dx * dy + + @property + def is_energy_dependent(self): + return False + +
+[docs] + def evaluate_geom(self, geom): + """Evaluate model on `~gammapy.maps.Geom`.""" + values = self.integrate_geom(geom).data + return values / geom.solid_angle()
+ + +
+[docs] + def integrate_geom(self, geom, oversampling_factor=None): + """Integrate model on `~gammapy.maps.Geom`. + + Parameters + ---------- + geom : `Geom` + Map geometry. + + Returns + ------- + flux : `Map` + Predicted flux map. + """ + geom_image = geom.to_image() + if geom.is_hpx: + idx, weights = geom_image.interp_weights({"skycoord": self.position}) + data = np.zeros(geom_image.data_shape) + data[tuple(idx)] = weights + else: + x, y = geom_image.get_pix() + x0, y0 = self.position.to_pixel(geom.wcs) + data = self._grid_weights(x, y, x0, y0) + return Map.from_geom(geom=geom_image, data=data, unit="")
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline as a `~regions.PointSkyRegion`.""" + return PointSkyRegion(center=self.position, **kwargs)
+
+ + + +
+[docs] +class GaussianSpatialModel(SpatialModel): + r"""Two-dimensional Gaussian model. + + For more information see :ref:`gaussian-spatial-model`. + + Parameters + ---------- + lon_0, lat_0 : `~astropy.coordinates.Angle` + Center position. + Default is "0 deg", "0 deg". + sigma : `~astropy.coordinates.Angle` + Length of the major semiaxis of the Gaussian, in angular units. + Default is 1 deg. + e : `float` + Eccentricity of the Gaussian (:math:`0< e< 1`). + Default is 0. + phi : `~astropy.coordinates.Angle` + Rotation angle :math:`\phi`: of the major semiaxis. + Increases counter-clockwise from the North direction. + Default is 0 deg. + frame : {"icrs", "galactic"} + Center position coordinate frame. + """ + + tag = ["GaussianSpatialModel", "gauss"] + + lon_0 = Parameter("lon_0", "0 deg") + lat_0 = Parameter("lat_0", "0 deg", min=-90, max=90) + sigma = Parameter("sigma", "1 deg", min=0) + e = Parameter("e", 0, min=0, max=1, frozen=True) + phi = Parameter("phi", "0 deg", frozen=True) + + @property + def evaluation_bin_size_min(self): + """Minimal evaluation bin size as an `~astropy.coordinates.Angle`, chosen as sigma/3.""" + return self.parameters["sigma"].quantity / 3.0 + + @property + def evaluation_radius(self): + r"""Evaluation radius as an `~astropy.coordinates.Angle`. + + Set as :math:`5\sigma`. + """ + return 5 * self.parameters["sigma"].quantity + +
+[docs] + @staticmethod + def evaluate(lon, lat, lon_0, lat_0, sigma, e, phi): + """Evaluate model.""" + sep = angular_separation(lon, lat, lon_0, lat_0) + + if e == 0: + a = 1.0 - np.cos(sigma) + norm = (1 / (4 * np.pi * a * (1.0 - np.exp(-1.0 / a)))).value + else: + minor_axis, sigma_eff = compute_sigma_eff( + lon_0, lat_0, lon, lat, phi, sigma, e + ) + a = 1.0 - np.cos(sigma_eff) + norm = (1 / (2 * np.pi * sigma * minor_axis)).to_value("sr-1") + + exponent = -0.5 * ((1 - np.cos(sep)) / a) + return u.Quantity(norm * np.exp(exponent).value, "sr-1", copy=COPY_IF_NEEDED)
+ + +
+[docs] + def to_region(self, x_sigma=1.5, **kwargs): + r"""Model outline at a given number of :math:`\sigma`. + + Parameters + ---------- + x_sigma : float + Number of :math:`\sigma + Default is :math:`1.5\sigma` which corresponds to about 68% + containment for a 2D symmetric Gaussian. + + Returns + ------- + region : `~regions.EllipseSkyRegion` + Model outline. + """ + minor_axis = Angle(self.sigma.quantity * np.sqrt(1 - self.e.quantity**2)) + return EllipseSkyRegion( + center=self.position, + height=2 * x_sigma * self.sigma.quantity, + width=2 * x_sigma * minor_axis, + angle=self.phi.quantity, + **kwargs, + )
+ + + @property + def evaluation_region(self): + """Evaluation region consistent with evaluation radius.""" + return self.to_region(x_sigma=5) + + def _to_region_error(self, x_sigma=1.5): + r"""Plot model error at a given number of :math:`\sigma`. + + Parameters + ---------- + x_sigma : float + Number of :math:`\sigma + Default is :math:`1.5\sigma` which corresponds to about 68% + containment for a 2D symmetric Gaussian. + + Returns + ------- + region : `~regions.EllipseSkyRegion` + Model error region. + """ + sigma_hi = self.sigma.quantity + (self.sigma.error * self.sigma.unit) + sigma_lo = self.sigma.quantity - (self.sigma.error * self.sigma.unit) + + minor_axis_hi = Angle( + sigma_hi * np.sqrt(1 - (self.e.quantity + self.e.error) ** 2) + ) + minor_axis_lo = Angle( + sigma_lo * np.sqrt(1 - (self.e.quantity - self.e.error) ** 2) + ) + + return EllipseAnnulusSkyRegion( + center=self.position, + inner_height=2 * x_sigma * sigma_lo, + outer_height=2 * x_sigma * sigma_hi, + inner_width=2 * x_sigma * minor_axis_lo, + outer_width=2 * x_sigma * minor_axis_hi, + angle=self.phi.quantity, + )
+ + + +
+[docs] +class GeneralizedGaussianSpatialModel(SpatialModel): + r"""Two-dimensional Generalized Gaussian model. + + For more information see :ref:`generalized-gaussian-spatial-model`. + + Parameters + ---------- + lon_0, lat_0 : `~astropy.coordinates.Angle` + Center position. + Default is "0 deg", "0 deg". + r_0 : `~astropy.coordinates.Angle` + Length of the major semiaxis, in angular units. + Default is 1 deg. + eta : `float` + Shape parameter within (0, 1). Special cases for disk: ->0, Gaussian: 0.5, Laplace:1 + Default is 0.5. + e : `float` + Eccentricity (:math:`0< e< 1`). + Default is 0. + phi : `~astropy.coordinates.Angle` + Rotation angle :math:`\phi`: of the major semiaxis. + Increases counter-clockwise from the North direction. + Default is 0 deg. + frame : {"icrs", "galactic"} + Center position coordinate frame. + """ + + tag = ["GeneralizedGaussianSpatialModel", "gauss-general"] + lon_0 = Parameter("lon_0", "0 deg") + lat_0 = Parameter("lat_0", "0 deg", min=-90, max=90) + r_0 = Parameter("r_0", "1 deg") + eta = Parameter("eta", 0.5, min=0.01, max=1.0) + e = Parameter("e", 0.0, min=0.0, max=1.0, frozen=True) + phi = Parameter("phi", "0 deg", frozen=True) + +
+[docs] + @staticmethod + def evaluate(lon, lat, lon_0, lat_0, r_0, eta, e, phi): + sep = angular_separation(lon, lat, lon_0, lat_0) + if isinstance(eta, u.Quantity): + eta = eta.value # gamma function does not allow quantities + minor_axis, r_eff = compute_sigma_eff(lon_0, lat_0, lon, lat, phi, r_0, e) + z = sep / r_eff + norm = 1 / (2 * np.pi * minor_axis * r_0 * eta * scipy.special.gamma(2 * eta)) + return (norm * np.exp(-(z ** (1 / eta)))).to("sr-1")
+ + + @property + def evaluation_bin_size_min(self): + """Minimal evaluation bin size as an `~astropy.coordinates.Angle`. + + The bin min size is defined as r_0/(3+8*eta)/(e+1). + """ + return self.r_0.quantity / (3 + 8 * self.eta.value) / (self.e.value + 1) + + @property + def evaluation_radius(self): + r"""Evaluation radius as an `~astropy.coordinates.Angle`. + + The evaluation radius is defined as r_eval = r_0*(1+8*eta) so it verifies: + r_eval -> r_0 if eta -> 0 + r_eval = 5*r_0 > 5*sigma_gauss = 5*r_0/sqrt(2) ~ 3.5*r_0 if eta=0.5 + r_eval = 9*r_0 > 5*sigma_laplace = 5*sqrt(2)*r_0 ~ 7*r_0 if eta = 1 + r_eval -> inf if eta -> inf + """ + return self.r_0.quantity * (1 + 8 * self.eta.value) + +
+[docs] + def to_region(self, x_r_0=1, **kwargs): + r"""Model outline at a given number of :math:`r_0`. + + Parameters + ---------- + x_r_0 : float, optional + Number of :math:`r_0`. Default is 1. + + Returns + ------- + region : `~regions.EllipseSkyRegion` + Model outline. + """ + minor_axis = Angle(self.r_0.quantity * np.sqrt(1 - self.e.quantity**2)) + return EllipseSkyRegion( + center=self.position, + height=2 * x_r_0 * self.r_0.quantity, + width=2 * x_r_0 * minor_axis, + angle=self.phi.quantity, + **kwargs, + )
+ + + @property + def evaluation_region(self): + """Evaluation region consistent with evaluation radius.""" + scale = self.evaluation_radius / self.r_0.quantity + return self.to_region(x_r_0=scale) + + def _to_region_error(self, x_r_0=1): + r"""Model error at a given number of :math:`r_0`. + + Parameters + ---------- + x_r_0 : float, optional + Number of :math:`r_0`. Default is 1. + + Returns + ------- + region : `~regions.EllipseSkyRegion` + Model error region. + """ + r_0_lo = self.r_0.quantity - self.r_0.error * self.r_0.unit + r_0_hi = self.r_0.quantity + self.r_0.error * self.r_0.unit + + minor_axis_hi = Angle( + r_0_hi * np.sqrt(1 - (self.e.quantity + self.e.error) ** 2) + ) + minor_axis_lo = Angle( + r_0_lo * np.sqrt(1 - (self.e.quantity - self.e.error) ** 2) + ) + + return EllipseAnnulusSkyRegion( + center=self.position, + inner_height=2 * x_r_0 * r_0_lo, + outer_height=2 * x_r_0 * r_0_hi, + inner_width=2 * x_r_0 * minor_axis_lo, + outer_width=2 * x_r_0 * minor_axis_hi, + angle=self.phi.quantity, + )
+ + + +
+[docs] +class DiskSpatialModel(SpatialModel): + r"""Constant disk model. + + For more information see :ref:`disk-spatial-model`. + + Parameters + ---------- + lon_0, lat_0 : `~astropy.coordinates.Angle` + Center position. + Default is "0 deg", "0 deg". + r_0 : `~astropy.coordinates.Angle` + :math:`a`: length of the major semiaxis, in angular units. + Default is 1 deg. + e : `float` + Eccentricity of the ellipse (:math:`0< e< 1`). + Default is 0. + phi : `~astropy.coordinates.Angle` + Rotation angle :math:`\phi`: of the major semiaxis. + Increases counter-clockwise from the North direction. + Default is 0 deg. + edge_width : float + Width of the edge. The width is defined as the range within which + the smooth edge of the model drops from 95% to 5% of its amplitude. + It is given as fraction of r_0. + Default is 0.01. + frame : {"icrs", "galactic"} + Center position coordinate frame. + """ + + tag = ["DiskSpatialModel", "disk"] + lon_0 = Parameter("lon_0", "0 deg") + lat_0 = Parameter("lat_0", "0 deg", min=-90, max=90) + r_0 = Parameter("r_0", "1 deg", min=0) + e = Parameter("e", 0, min=0, max=1, frozen=True) + phi = Parameter("phi", "0 deg", frozen=True) + edge_width = Parameter("edge_width", value=0.01, min=0, max=1, frozen=True) + + @property + def evaluation_bin_size_min(self): + """Minimal evaluation bin size as an `~astropy.coordinates.Angle`. + + The bin min size is defined as r_0*(1-edge_width)/10. + """ + return self.r_0.quantity * (1 - self.edge_width.quantity) / 10.0 + + @property + def evaluation_radius(self): + """Evaluation radius as an `~astropy.coordinates.Angle`. + + Set to the length of the semi-major axis plus the edge width. + """ + return 1.1 * self.r_0.quantity * (1 + self.edge_width.quantity) + + @staticmethod + def _evaluate_norm_factor(r_0, e): + """Compute the normalization factor.""" + semi_minor = r_0 * np.sqrt(1 - e**2) + + def integral_fcn(x, a, b): + A = 1 / np.sin(a) ** 2 + B = 1 / np.sin(b) ** 2 + C = A - B + cs2 = np.cos(x) ** 2 + + return 1 - np.sqrt(1 - 1 / (B + C * cs2)) + + return ( + 2 + * scipy.integrate.quad( + lambda x: integral_fcn(x, r_0, semi_minor), 0, np.pi + )[0] + ) ** -1 + + @staticmethod + def _evaluate_smooth_edge(x, width): + value = (x / width).to_value("") + edge_width_95 = 2.326174307353347 + return 0.5 * (1 - scipy.special.erf(value * edge_width_95)) + +
+[docs] + @staticmethod + def evaluate(lon, lat, lon_0, lat_0, r_0, e, phi, edge_width): + """Evaluate model.""" + sep = angular_separation(lon, lat, lon_0, lat_0) + + if e == 0: + sigma_eff = r_0 + else: + sigma_eff = compute_sigma_eff(lon_0, lat_0, lon, lat, phi, r_0, e)[1] + + norm = DiskSpatialModel._evaluate_norm_factor(r_0, e) + + in_ellipse = DiskSpatialModel._evaluate_smooth_edge( + sep - sigma_eff, sigma_eff * edge_width + ) + return u.Quantity(norm * in_ellipse, "sr-1", copy=COPY_IF_NEEDED)
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline as a `~regions.EllipseSkyRegion`.""" + minor_axis = Angle(self.r_0.quantity * np.sqrt(1 - self.e.quantity**2)) + return EllipseSkyRegion( + center=self.position, + height=2 * self.r_0.quantity, + width=2 * minor_axis, + angle=self.phi.quantity, + **kwargs, + )
+ + +
+[docs] + @classmethod + def from_region(cls, region, **kwargs): + """Create a `DiskSpatialModel from a ~regions.EllipseSkyRegion`. + + Parameters + ---------- + region : `~regions.EllipseSkyRegion` or ~regions.CircleSkyRegion` + Region to create model from. + kwargs : dict + Keyword arguments passed to `~gammapy.modeling.models.DiskSpatialModel`. + + Returns + ------- + spatial_model : `~gammapy.modeling.models.DiskSpatialModel` + Spatial model. + """ + if isinstance(region, CircleSkyRegion): + region = region_circle_to_ellipse(region) + if not isinstance(region, EllipseSkyRegion): + raise ValueError( + f"Please provide a `CircleSkyRegion` " + f"or `EllipseSkyRegion`, got {type(region)} instead." + ) + frame = kwargs.pop("frame", region.center.frame) + region = region_to_frame(region, frame=frame) + + if region.height > region.width: + major_axis, minor_axis = region.height, region.width + phi = region.angle + else: + minor_axis, major_axis = region.height, region.width + phi = 90 * u.deg + region.angle + + kwargs.setdefault("phi", phi) + kwargs.setdefault("e", np.sqrt(1.0 - np.power(minor_axis / major_axis, 2))) + kwargs.setdefault("r_0", major_axis / 2.0) + + return cls.from_position(region.center, **kwargs)
+ + + def _to_region_error(self): + """Model error. + + Returns + ------- + region : `~regions.EllipseSkyRegion` + Model error region. + """ + r_0_lo = self.r_0.quantity - self.r_0.error * self.r_0.unit + r_0_hi = self.r_0.quantity + self.r_0.error * self.r_0.unit + + minor_axis_hi = Angle( + r_0_hi * np.sqrt(1 - (self.e.quantity + self.e.error) ** 2) + ) + minor_axis_lo = Angle( + r_0_lo * np.sqrt(1 - (self.e.quantity - self.e.error) ** 2) + ) + + return EllipseAnnulusSkyRegion( + center=self.position, + inner_height=2 * r_0_lo, + outer_height=2 * r_0_hi, + inner_width=2 * minor_axis_lo, + outer_width=2 * minor_axis_hi, + angle=self.phi.quantity, + )
+ + + +
+[docs] +class ShellSpatialModel(SpatialModel): + r"""Shell model. + + For more information see :ref:`shell-spatial-model`. + + Parameters + ---------- + lon_0, lat_0 : `~astropy.coordinates.Angle` + Center position. + Default is "0 deg", "0 deg". + radius : `~astropy.coordinates.Angle` + Inner radius, :math:`r_{in}`. + Default is 1 deg. + width : `~astropy.coordinates.Angle` + Shell width. + Default is 0.2 deg. + frame : {"icrs", "galactic"} + Center position coordinate frame. + + See Also + -------- + Shell2SpatialModel + """ + + tag = ["ShellSpatialModel", "shell"] + lon_0 = Parameter("lon_0", "0 deg") + lat_0 = Parameter("lat_0", "0 deg", min=-90, max=90) + radius = Parameter("radius", "1 deg") + width = Parameter("width", "0.2 deg") + + @property + def evaluation_bin_size_min(self): + """Minimal evaluation bin size as an `~astropy.coordinates.Angle`. + + The bin min size is defined as the shell width. + """ + return self.width.quantity + + @property + def evaluation_radius(self): + r"""Evaluation radius as an `~astropy.coordinates.Angle`. + + Set to :math:`r_\text{out}`. + """ + return self.radius.quantity + self.width.quantity + +
+[docs] + @staticmethod + def evaluate(lon, lat, lon_0, lat_0, radius, width): + """Evaluate model.""" + sep = angular_separation(lon, lat, lon_0, lat_0) + radius_out = radius + width + + norm = 3 / (2 * np.pi * (radius_out**3 - radius**3)) + + with np.errstate(invalid="ignore"): + # np.where and np.select do not work with quantities, so we use the + # workaround with indexing + value = np.sqrt(radius_out**2 - sep**2) + mask = sep < radius + value[mask] = (value - np.sqrt(radius**2 - sep**2))[mask] + value[sep > radius_out] = 0 + + return norm * value
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline as a `~regions.CircleAnnulusSkyRegion`.""" + return CircleAnnulusSkyRegion( + center=self.position, + inner_radius=self.radius.quantity, + outer_radius=self.radius.quantity + self.width.quantity, + **kwargs, + )
+
+ + + +
+[docs] +class Shell2SpatialModel(SpatialModel): + r"""Shell model with outer radius and relative width parametrization. + + For more information see :ref:`shell2-spatial-model`. + + Parameters + ---------- + lon_0, lat_0 : `~astropy.coordinates.Angle` + Center position. + Default is "0 deg", "0 deg". + r_0 : `~astropy.coordinates.Angle` + Outer radius, :math:`r_{out}`. + Default is 1 deg. + eta : float + Shell width relative to outer radius, r_0, should be within (0,1). + Default is 0.2. + frame : {"icrs", "galactic"} + Center position coordinate frame. + + See Also + -------- + ShellSpatialModel + """ + + tag = ["Shell2SpatialModel", "shell2"] + lon_0 = Parameter("lon_0", "0 deg") + lat_0 = Parameter("lat_0", "0 deg", min=-90, max=90) + r_0 = Parameter("r_0", "1 deg") + eta = Parameter("eta", 0.2, min=0.02, max=1) + + @property + def evaluation_bin_size_min(self): + """Minimal evaluation bin size as an `~astropy.coordinates.Angle`. + + The bin min size is defined as r_0*eta. + """ + return self.eta.value * self.r_0.quantity + + @property + def evaluation_radius(self): + r"""Evaluation radius as an `~astropy.coordinates.Angle`. + + Set to :math:`r_\text{out}`. + """ + return self.r_0.quantity + + @property + def r_in(self): + return (1 - self.eta.quantity) * self.r_0.quantity + +
+[docs] + @staticmethod + def evaluate(lon, lat, lon_0, lat_0, r_0, eta): + """Evaluate model.""" + sep = angular_separation(lon, lat, lon_0, lat_0) + r_in = (1 - eta) * r_0 + + norm = 3 / (2 * np.pi * (r_0**3 - r_in**3)) + + with np.errstate(invalid="ignore"): + # np.where and np.select do not work with quantities, so we use the + # workaround with indexing + value = np.sqrt(r_0**2 - sep**2) + mask = sep < r_in + value[mask] = (value - np.sqrt(r_in**2 - sep**2))[mask] + value[sep > r_0] = 0 + + return norm * value
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline as a `~regions.CircleAnnulusSkyRegion`.""" + return CircleAnnulusSkyRegion( + center=self.position, + inner_radius=self.r_in, + outer_radius=self.r_0.quantity, + **kwargs, + )
+
+ + + +
+[docs] +class ConstantSpatialModel(SpatialModel): + """Spatially constant (isotropic) spatial model. + + For more information see :ref:`constant-spatial-model`. + + Parameters + ---------- + value : `~astropy.units.Quantity` + Value. Default is 1 sr-1. + """ + + tag = ["ConstantSpatialModel", "const"] + value = Parameter("value", "1 sr-1", frozen=True) + + frame = "icrs" + evaluation_radius = None + position = None + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + # redefined to ignore frame attribute from parent class + data = super().to_dict(full_output) + data["spatial"].pop("frame") + data["spatial"]["parameters"] = [] + return data
+ + +
+[docs] + @staticmethod + def evaluate(lon, lat, value): + """Evaluate model.""" + return value
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline as a `~regions.RectangleSkyRegion`.""" + return RectangleSkyRegion( + center=SkyCoord(0 * u.deg, 0 * u.deg, frame=self.frame), + height=180 * u.deg, + width=360 * u.deg, + **kwargs, + )
+
+ + + +
+[docs] +class ConstantFluxSpatialModel(SpatialModel): + """Spatially constant flux spatial model. + + For more information see :ref:`constant-spatial-model`. + + """ + + tag = ["ConstantFluxSpatialModel", "const-flux"] + + frame = "icrs" + evaluation_radius = None + position = None + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + # redefined to ignore frame attribute from parent class + data = super().to_dict(full_output) + data["spatial"].pop("frame") + return data
+ + +
+[docs] + @staticmethod + def evaluate(lon, lat): + """Evaluate model.""" + return 1 / u.sr
+ + +
+[docs] + @staticmethod + def evaluate_geom(geom): + """Evaluate model.""" + return 1 / geom.solid_angle()
+ + +
+[docs] + @staticmethod + def integrate_geom(geom, oversampling_factor=None): + """Evaluate model.""" + return Map.from_geom(geom=geom, data=1)
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline as a `~regions.RectangleSkyRegion`.""" + return RectangleSkyRegion( + center=SkyCoord(0 * u.deg, 0 * u.deg, frame=self.frame), + height=180 * u.deg, + width=360 * u.deg, + **kwargs, + )
+
+ + + +
+[docs] +class TemplateSpatialModel(SpatialModel): + """Spatial sky map template model. + + For more information see :ref:`template-spatial-model`. + By default, the position of the model is fixed at the center of the map. + The position can be fitted by unfreezing the `lon_0` and `lat_0` parameters. + In that case, the coordinate of every pixel is shifted in lon and lat + in the frame of the map. NOTE: planar distances are calculated, so + the results are correct only when the fitted position is close to the + map center. + + Parameters + ---------- + map : `~gammapy.maps.Map` + Map template. + meta : dict, optional + Meta information, meta['filename'] will be used for serialisation. + normalize : bool + Normalize the input map so that it integrates to unity. + interp_kwargs : dict + Interpolation keyword arguments passed to `gammapy.maps.Map.interp_by_coord`. + Default arguments are {'method': 'linear', 'fill_value': 0, "values_scale": "log"}. + filename : str + Name of the map file. + copy_data : bool + Create a deepcopy of the map data or directly use the original. Default is True. + Use False to save memory in case of large maps. + **kwargs : dict + Keyword arguments forwarded to `SpatialModel.__init__`. + """ + + tag = ["TemplateSpatialModel", "template"] + lon_0 = Parameter("lon_0", np.nan, unit="deg", frozen=True) + lat_0 = Parameter("lat_0", np.nan, unit="deg", min=-90, max=90, frozen=True) + + def __init__( + self, + map, + meta=None, + normalize=True, + interp_kwargs=None, + filename=None, + copy_data=True, + **kwargs, + ): + if (map.data < 0).any(): + log.warning("Map has negative values. Check and fix this!") + if (map.data == 0.0).all(): + log.warning("Map values are all zeros. Check and fix this!") + if np.isnan(map.data).any(): + log.warning("Map has NaN values. Check and fix this!") + if not map.geom.is_image and (map.data.sum(axis=(1, 2)) == 0).any(): + log.warning( + "Map values are all zeros in at least one energy bin. Check and fix this!" + ) + + if filename is not None: + filename = str(make_path(filename)) + + self.normalize = normalize + + if normalize: + # Normalize the diffuse map model so that it integrates to unity + if map.geom.is_image: + data_sum = map.data.sum() + else: + # Normalize in each energy bin + data_sum = map.data.sum(axis=(1, 2)).reshape((-1, 1, 1)) + + data = np.divide( + map.data.astype(float), + data_sum, + out=np.zeros_like(map.data, dtype=float), + where=data_sum != 0, + ) + data /= map.geom.solid_angle().to_value("sr") + map = map.copy(data=data, unit="sr-1") + + if map.unit.is_equivalent(""): + map = map.copy(data=map.data, unit="sr-1") + log.warning("Missing spatial template unit, assuming sr^-1") + + if copy_data: + self._map = map.copy() + else: + self._map = map.copy(data=map.data) + + self.meta = {} if meta is None else meta + + interp_kwargs = {} if interp_kwargs is None else interp_kwargs + interp_kwargs.setdefault("method", "linear") + interp_kwargs.setdefault("fill_value", 0) + interp_kwargs.setdefault("values_scale", "log") + + self._interp_kwargs = interp_kwargs + self.filename = filename + kwargs["frame"] = self.map.geom.frame + if "lon_0" not in kwargs or ( + isinstance(kwargs["lon_0"], Parameter) and np.isnan(kwargs["lon_0"].value) + ): + kwargs["lon_0"] = self.map_center.data.lon + if "lat_0" not in kwargs or ( + isinstance(kwargs["lat_0"], Parameter) and np.isnan(kwargs["lat_0"].value) + ): + kwargs["lat_0"] = self.map_center.data.lat + super().__init__(**kwargs) + + def __str__(self): + width = self.map.geom.width + data_min = np.nanmin(self.map.data) + data_max = np.nanmax(self.map.data) + + prnt = ( + f"{self.__class__.__name__} model summary:\n " + f"Model center: {self.position} \n " + f"Map center: {self.map_center} \n " + f"Map width: {width} \n " + f"Data min: {data_min} \n" + f"Data max: {data_max} \n" + f"Data unit: {self.map.unit}" + ) + + if self.is_energy_dependent: + energy_min = self.map.geom.axes["energy_true"].center[0] + energy_max = self.map.geom.axes["energy_true"].center[-1] + prnt1 = f"Energy min: {energy_min} \n" f"Energy max: {energy_max} \n" + prnt = prnt + prnt1 + + return prnt + +
+[docs] + def copy(self, copy_data=False, **kwargs): + """Copy model. + + Parameters + ---------- + copy_data : bool + Whether to copy the data. Default is False. + **kwargs : dict + Keyword arguments forwarded to `TemplateSpatialModel`. + + Returns + ------- + model : `TemplateSpatialModel` + Copied template spatial model. + """ + kwargs.setdefault("map", self.map) + kwargs.setdefault("meta", self.meta.copy()) + kwargs.setdefault("normalize", self.normalize) + kwargs.setdefault("interp_kwargs", self._interp_kwargs) + kwargs.setdefault("filename", self.filename) + kwargs.setdefault("lon_0", self.parameters["lon_0"].copy()) + kwargs.setdefault("lat_0", self.parameters["lat_0"].copy()) + return self.__class__(copy_data=copy_data, **kwargs)
+ + + @property + def map(self): + """Template map as a `~gammapy.maps.Map` object.""" + return self._map + + @property + def is_energy_dependent(self): + return "energy_true" in self.map.geom.axes.names + + @property + def evaluation_radius(self): + """Evaluation radius as an `~astropy.coordinates.Angle`. + + Set to half of the maximal dimension of the map. + """ + return np.max(self.map.geom.width) / 2.0 + + @property + def map_center(self): + return self.map.geom.center_skydir + +
+[docs] + @classmethod + def read(cls, filename, normalize=True, **kwargs): + """Read spatial template model from FITS image. + + If unit is not given in the FITS header the default is ``sr-1``. + + Parameters + ---------- + filename : str + FITS image filename. + normalize : bool + Normalize the input map so that it integrates to unity. + kwargs : dict + Keyword arguments passed to `Map.read()`. + """ + m = Map.read(filename, **kwargs) + return cls(m, normalize=normalize, filename=filename)
+ + +
+[docs] + def evaluate(self, lon, lat, energy=None, lon_0=None, lat_0=None): + """Evaluate the model at given coordinates. + + Note that, if the map data assume negative values, these are + clipped to zero. + """ + + offset_lon = 0.0 * u.deg if lon_0 is None else lon_0 - self.map_center.data.lon + offset_lat = 0.0 * u.deg if lat_0 is None else lat_0 - self.map_center.data.lat + + coord = { + "lon": (lon - offset_lon).to_value("deg"), + "lat": (lat - offset_lat).to_value("deg"), + } + if energy is not None: + coord["energy_true"] = energy + + val = self.map.interp_by_coord(coord, **self._interp_kwargs) + val = np.clip(val, 0, a_max=None) + return u.Quantity(val, self.map.unit, copy=COPY_IF_NEEDED)
+ + + @property + def position_lonlat(self): + """Spatial model center position `(lon, lat)` in radians and frame of the model.""" + lon = self.position.data.lon.rad + lat = self.position.data.lat.rad + return lon, lat + +
+[docs] + @classmethod + def from_dict(cls, data): + data = data["spatial"] + filename = data["filename"] + normalize = data.get("normalize", True) + m = Map.read(filename) + pars = data.get("parameters") + if pars is not None: + parameters = _build_parameters_from_dict(pars, cls.default_parameters) + kwargs = {par.name: par for par in parameters} + else: + kwargs = {} + return cls(m, normalize=normalize, filename=filename, **kwargs)
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + data = super().to_dict(full_output) + data["spatial"]["filename"] = self.filename + data["spatial"]["normalize"] = self.normalize + data["spatial"]["unit"] = str(self.map.unit) + return data
+ + +
+[docs] + def write(self, overwrite=False, filename=None): + """ + Write the map. + + Parameters + ---------- + overwrite: bool, optional + Overwrite existing file. + Default is False, which will raise a warning if the template file exists already. + filename: str, optional + Filename of the template model. By default, the template model + will be saved with the `TemplateSpatialModel.filename` attribute, + if `filename` is provided this attribute will be updated. + """ + if filename is not None: + self.filename = filename + if self.filename is None: + raise IOError("Missing filename") + if os.path.isfile(make_path(self.filename)) and not overwrite: + log.warning("Template file already exits, and overwrite is False") + else: + self.map.write(self.filename, overwrite=overwrite)
+ + +
+[docs] + def to_region(self, **kwargs): + """Model outline from template map boundary as a `~regions.RectangleSkyRegion`.""" + return RectangleSkyRegion( + center=self.map.geom.center_skydir, + width=self.map.geom.width[0][0], + height=self.map.geom.width[1][0], + **kwargs, + )
+ + +
+[docs] + def plot(self, ax=None, geom=None, **kwargs): + if geom is None: + geom = self.map.geom + super().plot(ax=ax, geom=geom, **kwargs)
+ + +
+[docs] + def plot_interactive(self, ax=None, geom=None, **kwargs): + if geom is None: + geom = self.map.geom + super().plot_interactive(ax=ax, geom=geom, **kwargs)
+
+ + + +
+[docs] +class TemplateNDSpatialModel(SpatialModel): + """A model generated from a ND map where extra dimensions define the parameter space. + + Parameters + ---------- + map : `~gammapy.maps.WcsNDMap` or `~gammapy.maps.HpxNDMap` + Map template. + meta : dict, optional + Meta information, meta['filename'] will be used for serialisation. + interp_kwargs : dict + Interpolation keyword arguments passed to `gammapy.maps.Map.interp_by_pix`. + Default arguments are {'method': 'linear', 'fill_value': 0, "values_scale": "log"}. + copy_data : bool + Create a deepcopy of the map data or directly use the original. Default is True. + Use False to save memory in case of large maps. + + """ + + tag = ["TemplateNDSpatialModel", "templateND"] + + def __init__( + self, + map, + interp_kwargs=None, + meta=None, + filename=None, + copy_data=True, + ): + if not isinstance(map, (HpxNDMap, WcsNDMap)): + raise TypeError("Map should be a HpxNDMap or WcsNDMap") + if copy_data: + self._map = map.copy() + else: + self._map = map.copy(data=map.data) + self.meta = dict() if meta is None else meta + if filename is not None: + filename = str(make_path(filename)) + self.filename = filename + + parameters = [] + for axis in map.geom.axes: + if axis.name not in ["energy_true", "energy"]: + center = (axis.bounds[1] + axis.bounds[0]) / 2 + parameter = Parameter( + name=axis.name, + value=center, + unit=axis.unit, + scale_method="scale10", + min=axis.bounds[0], + max=axis.bounds[-1], + interp=axis.interp, + ) + parameters.append(parameter) + self.default_parameters = Parameters(parameters) + + interp_kwargs = interp_kwargs or {} + interp_kwargs.setdefault("method", "linear") + interp_kwargs.setdefault("fill_value", 0) + interp_kwargs.setdefault("values_scale", "log") + self._interp_kwargs = interp_kwargs + super().__init__() + + @property + def map(self): + """Template map as a `~gammapy.maps.WcsNDMap` or `~gammapy.maps.HpxNDMap`.""" + return self._map + + @property + def is_energy_dependent(self): + return "energy_true" in self.map.geom.axes.names + +
+[docs] + def evaluate(self, lon, lat, energy=None, **kwargs): + coord = { + "lon": lon.to_value("deg"), + "lat": lat.to_value("deg"), + } + if energy is not None: + coord["energy_true"] = energy + + coord.update(kwargs) + + val = self.map.interp_by_coord(coord, **self._interp_kwargs) + val = np.clip(val, 0, a_max=None) + + return u.Quantity(val, self.map.unit, copy=COPY_IF_NEEDED)
+ + +
+[docs] + def write(self, overwrite=False): + """ + Write the map. + + Parameters + ---------- + overwrite: bool, optional + Overwrite existing file. + Default is False, which will raise a warning if the template file exists already. + """ + if self.filename is None: + raise IOError("Missing filename") + elif os.path.isfile(self.filename) and not overwrite: + log.warning("Template file already exits, and overwrite is False") + else: + self.map.write(self.filename)
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + data = data["spatial"] + filename = data["filename"] + m = Map.read(filename) + model = cls(m, filename=filename) + for idx, p in enumerate(model.parameters): + par = p.to_dict() + par.update(data["parameters"][idx]) + setattr(model, p.name, Parameter(**par)) + return model
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serialisation.""" + data = super().to_dict(full_output) + data["spatial"]["filename"] = self.filename + data["spatial"]["unit"] = str(self.map.unit) + return data
+
+ + + +
+[docs] +class PiecewiseNormSpatialModel(SpatialModel): + """Piecewise spatial correction with a free normalization at each fixed nodes. + + For more information see :ref:`piecewise-norm-spatial`. + + Parameters + ---------- + coord : `gammapy.maps.MapCoord` + Flat coordinates list at which the model values are given (nodes). + norms : `~numpy.ndarray` or list of `Parameter` + Array with the initial norms of the model at energies ``energy``. + Normalisation parameters are created for each value. + Default is one at each node. + interp : {"lin", "log"} + Interpolation scaling. Default is "lin". + """ + + tag = ["PiecewiseNormSpatialModel", "piecewise-norm"] + + def __init__(self, coords, norms=None, interp="lin", **kwargs): + self._coords = coords.copy() + lon = Angle(coords.lon).wrap_at(0 * u.deg) + self._wrap_angle = (lon.max() - lon.min()) / 2 + self._coords["lon"] = Angle(lon).wrap_at(self._wrap_angle) + self._interp = interp + + if norms is None: + norms = np.ones(coords.shape) + + if len(norms) != coords.shape[0]: + raise ValueError("dimension mismatch") + + if len(norms) < 4: + raise ValueError("Input arrays must contain at least 4 elements") + + if self.is_energy_dependent: + raise ValueError("Energy dependent nodes are not supported") + + if not isinstance(norms[0], Parameter): + parameters = Parameters( + [Parameter(f"norm_{k}", norm) for k, norm in enumerate(norms)] + ) + else: + parameters = Parameters(norms) + self.default_parameters = parameters + super().__init__(**kwargs) + + @property + def coords(self): + """Energy nodes.""" + return self._coords + + @property + def norms(self): + """Norm values.""" + return u.Quantity([p.quantity for p in self.parameters]) + + @property + def is_energy_dependent(self): + keys = self.coords._data.keys() + return "energy" in keys or "energy_true" in keys + +
+[docs] + def evaluate(self, lon, lat, energy=None, **norms): + """Evaluate the model at given coordinates.""" + scale = interpolation_scale(scale=self._interp) + v_nodes = scale(self.norms.value) + coords = [value.value for value in self.coords._data.values()] + # TODO: apply axes scaling in this loop + coords = list(zip(*coords)) + lon = Angle(lon).wrap_at(0 * u.deg) + lon = Angle(lon).wrap_at(self._wrap_angle) + # by default rely on CloughTocher2DInterpolator + # (Piecewise cubic, C1 smooth, curvature-minimizing interpolant) + interpolated = griddata(coords, v_nodes, (lon, lat), method="cubic") + return scale.inverse(interpolated) * self.norms.unit
+ + +
+[docs] + def evaluate_geom(self, geom): + """Evaluate model on `~gammapy.maps.Geom`. + + Parameters + ---------- + geom : `~gammapy.maps.WcsGeom` + Map geometry. + + Returns + ------- + map : `~gammapy.maps.Map` + Map containing the value in each spatial bin. + + """ + coords = geom.get_coord(frame=self.frame, sparse=True) + return self(coords.lon, coords.lat)
+ + +
+[docs] + def to_dict(self, full_output=False): + data = super().to_dict(full_output=full_output) + for key, value in self.coords._data.items(): + data["spatial"][key] = { + "data": value.data.tolist(), + "unit": str(value.unit), + } + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create model from dictionary.""" + data = data["spatial"] + lon = u.Quantity(data["lon"]["data"], data["lon"]["unit"]) + lat = u.Quantity(data["lat"]["data"], data["lat"]["unit"]) + coords = MapCoord.create((lon, lat)) + + parameters = Parameters.from_dict(data["parameters"]) + return cls.from_parameters(parameters, coords=coords, frame=data["frame"])
+ + +
+[docs] + @classmethod + def from_parameters(cls, parameters, **kwargs): + """Create model from parameters.""" + return cls(norms=parameters, **kwargs)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/spectral.html b/docs/dev/_modules/gammapy/modeling/models/spectral.html new file mode 100644 index 00000000000..e3c381c377c --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/spectral.html @@ -0,0 +1,3252 @@ + + + + + + + + + + gammapy.modeling.models.spectral — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.spectral

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Spectral models for Gammapy."""
+
+import logging
+import operator
+import os
+import warnings
+from pathlib import Path
+import numpy as np
+import scipy.optimize
+import scipy.special
+import astropy.units as u
+from astropy import constants as const
+from astropy.table import Table
+from astropy.units import Quantity
+from astropy.utils.decorators import classproperty
+from astropy.visualization import quantity_support
+import matplotlib.pyplot as plt
+from gammapy.maps import MapAxis, RegionNDMap
+from gammapy.maps.axes import UNIT_STRING_FORMAT
+from gammapy.modeling import Parameter, Parameters
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.deprecation import GammapyDeprecationWarning
+from gammapy.utils.integrate import trapz_loglog
+from gammapy.utils.interpolation import (
+    ScaledRegularGridInterpolator,
+    interpolation_scale,
+)
+from gammapy.utils.roots import find_roots
+from gammapy.utils.scripts import make_path
+from ..covariance import CovarianceMixin
+from .core import ModelBase
+
+log = logging.getLogger(__name__)
+
+
+__all__ = [
+    "BrokenPowerLawSpectralModel",
+    "CompoundSpectralModel",
+    "ConstantSpectralModel",
+    "EBLAbsorptionNormSpectralModel",
+    "ExpCutoffPowerLaw3FGLSpectralModel",
+    "ExpCutoffPowerLawNormSpectralModel",
+    "ExpCutoffPowerLawSpectralModel",
+    "GaussianSpectralModel",
+    "integrate_spectrum",
+    "LogParabolaNormSpectralModel",
+    "LogParabolaSpectralModel",
+    "NaimaSpectralModel",
+    "PiecewiseNormSpectralModel",
+    "PowerLaw2SpectralModel",
+    "PowerLawNormSpectralModel",
+    "PowerLawSpectralModel",
+    "scale_plot_flux",
+    "ScaleSpectralModel",
+    "SmoothBrokenPowerLawSpectralModel",
+    "SpectralModel",
+    "SuperExpCutoffPowerLaw3FGLSpectralModel",
+    "SuperExpCutoffPowerLaw4FGLDR3SpectralModel",
+    "SuperExpCutoffPowerLaw4FGLSpectralModel",
+    "TemplateSpectralModel",
+    "TemplateNDSpectralModel",
+    "EBL_DATA_BUILTIN",
+]
+
+
+EBL_DATA_BUILTIN = {
+    "franceschini": "$GAMMAPY_DATA/ebl/ebl_franceschini.fits.gz",
+    "dominguez": "$GAMMAPY_DATA/ebl/ebl_dominguez11.fits.gz",
+    "finke": "$GAMMAPY_DATA/ebl/frd_abs.fits.gz",
+    "franceschini17": "$GAMMAPY_DATA/ebl/ebl_franceschini_2017.fits.gz",
+    "saldana-lopez21": "$GAMMAPY_DATA/ebl/ebl_saldana-lopez_2021.fits.gz",
+}
+
+
+
+[docs] +def scale_plot_flux(flux, energy_power=0): + """Scale flux to plot. + + Parameters + ---------- + flux : `Map` + Flux map. + energy_power : int, optional + Power of energy to multiply flux axis with. Default is 0. + + Returns + ------- + flux : `Map` + Scaled flux map. + """ + energy = flux.geom.get_coord(sparse=True)["energy"] + try: + eunit = [_ for _ in flux.unit.bases if _.physical_type == "energy"][0] + except IndexError: + eunit = energy.unit + y = flux * np.power(energy, energy_power) + return y.to_unit(flux.unit * eunit**energy_power)
+ + + +
+[docs] +def integrate_spectrum(func, energy_min, energy_max, ndecade=100): + """Integrate one-dimensional function using the log-log trapezoidal rule. + + Internally an oversampling of the energy bins to "ndecade" is used. + + Parameters + ---------- + func : callable + Function to integrate. + energy_min : `~astropy.units.Quantity` + Integration range minimum. + energy_max : `~astropy.units.Quantity` + Integration range minimum. + ndecade : int, optional + Number of grid points per decade used for the integration. + Default is 100. + """ + # Here we impose to duplicate the number + num = np.maximum(np.max(ndecade * np.log10(energy_max / energy_min)), 2) + energy = np.geomspace(energy_min, energy_max, num=int(num), axis=-1) + integral = trapz_loglog(func(energy), energy, axis=-1) + return integral.sum(axis=0)
+ + + +
+[docs] +class SpectralModel(ModelBase): + """Spectral model base class.""" + + _type = "spectral" + +
+[docs] + def __call__(self, energy): + kwargs = {par.name: par.quantity for par in self.parameters} + kwargs = self._convert_evaluate_unit(kwargs, energy) + return self.evaluate(energy, **kwargs)
+ + + @classproperty + def is_norm_spectral_model(cls): + """Whether model is a norm spectral model.""" + return "Norm" in cls.__name__ + + @staticmethod + def _convert_evaluate_unit(kwargs_ref, energy): + kwargs = {} + for name, quantity in kwargs_ref.items(): + if quantity.unit.physical_type == "energy": + quantity = quantity.to(energy.unit) + kwargs[name] = quantity + return kwargs + + def __add__(self, model): + if not isinstance(model, SpectralModel): + model = ConstantSpectralModel(const=model) + return CompoundSpectralModel(self, model, operator.add) + + def __mul__(self, other): + if isinstance(other, SpectralModel): + return CompoundSpectralModel(self, other, operator.mul) + else: + raise TypeError(f"Multiplication invalid for type {other!r}") + + def __radd__(self, model): + return self.__add__(model) + + def __sub__(self, model): + if not isinstance(model, SpectralModel): + model = ConstantSpectralModel(const=model) + return CompoundSpectralModel(self, model, operator.sub) + + def __rsub__(self, model): + return self.__sub__(model) + + def _propagate_error(self, epsilon, fct, **kwargs): + """Evaluate error for a given function with uncertainty propagation. + + Parameters + ---------- + fct : `~astropy.units.Quantity` + Function to estimate the error. + epsilon : float + Step size of the gradient evaluation. Given as a + fraction of the parameter error. + **kwargs : dict + Keyword arguments. + + Returns + ------- + f_cov : `~astropy.units.Quantity` + Error of the given function. + """ + eps = np.sqrt(np.diag(self.covariance)) * epsilon + + n, f_0 = len(self.parameters), fct(**kwargs) + shape = (n, len(np.atleast_1d(f_0))) + df_dp = np.zeros(shape) + + for idx, parameter in enumerate(self.parameters): + if parameter.frozen or eps[idx] == 0: + continue + + parameter.value += eps[idx] + df = fct(**kwargs) - f_0 + + df_dp[idx] = df.value / eps[idx] + parameter.value -= eps[idx] + + f_cov = df_dp.T @ self.covariance @ df_dp + f_err = np.sqrt(np.diagonal(f_cov)) + return u.Quantity([np.atleast_1d(f_0.value), f_err], unit=f_0.unit).squeeze() + +
+[docs] + def evaluate_error(self, energy, epsilon=1e-4): + """Evaluate spectral model with error propagation. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Energy at which to evaluate. + epsilon : float, optional + Step size of the gradient evaluation. Given as a + fraction of the parameter error. Default is 1e-4. + + Returns + ------- + dnde, dnde_error : tuple of `~astropy.units.Quantity` + Tuple of flux and flux error. + """ + return self._propagate_error(epsilon=epsilon, fct=self, energy=energy)
+ + + @property + def pivot_energy(self): + """Pivot or decorrelation energy, for a given spectral model calculated numerically. + + It is defined as the energy at which the correlation between the spectral parameters is minimized. + + Returns + ------- + pivot energy : `~astropy.units.Quantity` + The energy at which the statistical error in the computed flux is smallest. + If no minimum is found, NaN will be returned. + """ + x_unit = self.reference.unit + + def min_func(x): + """Function to minimise.""" + x = np.exp(x) + dnde, dnde_error = self.evaluate_error(x * x_unit) + return dnde_error / dnde + + bounds = [np.log(self.reference.value) - 3, np.log(self.reference.value) + 3] + + std = np.std(min_func(x=np.linspace(bounds[0], bounds[1], 100))) + if std < 1e-5: + log.warning( + "The relative error on the flux does not depend on energy. No pivot energy found." + ) + return np.nan * x_unit + + minimizer = scipy.optimize.minimize_scalar(min_func, bounds=bounds) + + if not minimizer.success: + log.warning( + "No minima found in the relative error on the flux. Pivot energy computation failed." + ) + return np.nan * x_unit + else: + return np.exp(minimizer.x) * x_unit + +
+[docs] + def integral(self, energy_min, energy_max, **kwargs): + r"""Integrate spectral model numerically if no analytical solution defined. + + .. math:: + F(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}} \phi(E) dE + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + **kwargs : dict + Keyword arguments passed to :func:`~gammapy.modeling.models.spectral.integrate_spectrum`. + """ + if hasattr(self, "evaluate_integral"): + kwargs = {par.name: par.quantity for par in self.parameters} + kwargs = self._convert_evaluate_unit(kwargs, energy_min) + return self.evaluate_integral(energy_min, energy_max, **kwargs) + else: + return integrate_spectrum(self, energy_min, energy_max, **kwargs)
+ + +
+[docs] + def integral_error(self, energy_min, energy_max, epsilon=1e-4, **kwargs): + """Evaluate the error of the integral flux of a given spectrum in a given energy range. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + epsilon : float, optional + Step size of the gradient evaluation. Given as a + fraction of the parameter error. Default is 1e-4. + + + Returns + ------- + flux, flux_err : tuple of `~astropy.units.Quantity` + Integral flux and flux error between energy_min and energy_max. + """ + return self._propagate_error( + epsilon=epsilon, + fct=self.integral, + energy_min=energy_min, + energy_max=energy_max, + **kwargs, + )
+ + +
+[docs] + def energy_flux(self, energy_min, energy_max, **kwargs): + r"""Compute energy flux in given energy range. + + .. math:: + G(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}} E \phi(E) dE + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + **kwargs : dict + Keyword arguments passed to :func:`~gammapy.modeling.models.spectral.integrate_spectrum`. + """ + + def f(x): + return x * self(x) + + if hasattr(self, "evaluate_energy_flux"): + kwargs = {par.name: par.quantity for par in self.parameters} + kwargs = self._convert_evaluate_unit(kwargs, energy_min) + return self.evaluate_energy_flux(energy_min, energy_max, **kwargs) + else: + return integrate_spectrum(f, energy_min, energy_max, **kwargs)
+ + +
+[docs] + def energy_flux_error(self, energy_min, energy_max, epsilon=1e-4, **kwargs): + """Evaluate the error of the energy flux of a given spectrum in a given energy range. + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + epsilon : float, optional + Step size of the gradient evaluation. Given as a + fraction of the parameter error. Default is 1e-4. + + + Returns + ------- + energy_flux, energy_flux_err : tuple of `~astropy.units.Quantity` + Energy flux and energy flux error between energy_min and energy_max. + """ + return self._propagate_error( + epsilon=epsilon, + fct=self.energy_flux, + energy_min=energy_min, + energy_max=energy_max, + **kwargs, + )
+ + +
+[docs] + def reference_fluxes(self, energy_axis): + """Get reference fluxes for a given energy axis. + + Parameters + ---------- + energy_axis : `MapAxis` + Energy axis. + + Returns + ------- + fluxes : dict of `~astropy.units.Quantity` + Reference fluxes. + """ + energy = energy_axis.center + energy_min, energy_max = energy_axis.edges_min, energy_axis.edges_max + return { + "e_ref": energy, + "e_min": energy_min, + "e_max": energy_max, + "ref_dnde": self(energy), + "ref_flux": self.integral(energy_min, energy_max), + "ref_eflux": self.energy_flux(energy_min, energy_max), + "ref_e2dnde": self(energy) * energy**2, + }
+ + + def _get_plot_flux(self, energy, sed_type): + flux = RegionNDMap.create(region=None, axes=[energy]) + flux_err = RegionNDMap.create(region=None, axes=[energy]) + + if sed_type in ["dnde", "norm"]: + flux.quantity, flux_err.quantity = self.evaluate_error(energy.center) + + elif sed_type == "e2dnde": + flux.quantity, flux_err.quantity = energy.center**2 * self.evaluate_error( + energy.center + ) + + elif sed_type == "flux": + flux.quantity, flux_err.quantity = self.integral_error( + energy.edges_min, energy.edges_max + ) + + elif sed_type == "eflux": + flux.quantity, flux_err.quantity = self.energy_flux_error( + energy.edges_min, energy.edges_max + ) + else: + raise ValueError(f"Not a valid SED type: '{sed_type}'") + + return flux, flux_err + +
+[docs] + def plot( + self, + energy_bounds, + ax=None, + sed_type="dnde", + energy_power=0, + n_points=100, + **kwargs, + ): + """Plot spectral model curve. + + By default a log-log scaling of the axes is used, if you want to change + the y-axis scaling to linear you can use:: + + >>> from gammapy.modeling.models import ExpCutoffPowerLawSpectralModel + >>> from astropy import units as u + + >>> pwl = ExpCutoffPowerLawSpectralModel() + >>> ax = pwl.plot(energy_bounds=(0.1, 100) * u.TeV) + >>> ax.set_yscale('linear') + + Parameters + ---------- + energy_bounds : `~astropy.units.Quantity`, list of `~astropy.units.Quantity` or `~gammapy.maps.MapAxis` + Energy bounds between which the model is to be plotted. Or an + axis defining the energy bounds between which the model is to be plotted. + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + sed_type : {"dnde", "flux", "eflux", "e2dnde"} + Evaluation methods of the model. Default is "dnde". + energy_power : int, optional + Power of energy to multiply flux axis with. Default is 0. + n_points : int, optional + Number of evaluation nodes. Default is 100. + **kwargs : dict + Keyword arguments forwarded to `~matplotlib.pyplot.plot`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + + Notes + ----- + If ``energy_bounds`` is supplied as a list, tuple, or Quantity, an ``energy_axis`` is created internally with + ``n_points`` bins between the given bounds. + """ + from gammapy.estimators.map.core import DEFAULT_UNIT + + if self.is_norm_spectral_model: + sed_type = "norm" + + if isinstance(energy_bounds, (tuple, list, Quantity)): + energy_min, energy_max = energy_bounds + energy = MapAxis.from_energy_bounds( + energy_min, + energy_max, + n_points, + ) + elif isinstance(energy_bounds, MapAxis): + energy = energy_bounds + + ax = plt.gca() if ax is None else ax + + if ax.yaxis.units is None: + ax.yaxis.set_units(DEFAULT_UNIT[sed_type] * energy.unit**energy_power) + + flux, _ = self._get_plot_flux(sed_type=sed_type, energy=energy) + + flux = scale_plot_flux(flux, energy_power=energy_power) + + with quantity_support(): + ax.plot(energy.center, flux.quantity[:, 0, 0], **kwargs) + + self._plot_format_ax(ax, energy_power, sed_type) + return ax
+ + +
+[docs] + def plot_error( + self, + energy_bounds, + ax=None, + sed_type="dnde", + energy_power=0, + n_points=100, + **kwargs, + ): + """Plot spectral model error band. + + .. note:: + + This method calls ``ax.set_yscale("log", nonpositive='clip')`` and + ``ax.set_xscale("log", nonposx='clip')`` to create a log-log representation. + The additional argument ``nonposx='clip'`` avoids artefacts in the plot, + when the error band extends to negative values (see also + https://github.com/matplotlib/matplotlib/issues/8623). + + When you call ``plt.loglog()`` or ``plt.semilogy()`` explicitly in your + plotting code and the error band extends to negative values, it is not + shown correctly. To circumvent this issue also use + ``plt.loglog(nonposx='clip', nonpositive='clip')`` + or ``plt.semilogy(nonpositive='clip')``. + + Parameters + ---------- + energy_bounds : `~astropy.units.Quantity`, list of `~astropy.units.Quantity` or `~gammapy.maps.MapAxis` + Energy bounds between which the model is to be plotted. Or an + axis defining the energy bounds between which the model is to be plotted. + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. Default is None. + sed_type : {"dnde", "flux", "eflux", "e2dnde"} + Evaluation methods of the model. Default is "dnde". + energy_power : int, optional + Power of energy to multiply flux axis with. Default is 0. + n_points : int, optional + Number of evaluation nodes. Default is 100. + **kwargs : dict + Keyword arguments forwarded to `matplotlib.pyplot.fill_between`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + + Notes + ----- + If ``energy_bounds`` is supplied as a list, tuple, or Quantity, an ``energy_axis`` is created internally with + ``n_points`` bins between the given bounds. + """ + from gammapy.estimators.map.core import DEFAULT_UNIT + + if self.is_norm_spectral_model: + sed_type = "norm" + + if isinstance(energy_bounds, (tuple, list, Quantity)): + energy_min, energy_max = energy_bounds + energy = MapAxis.from_energy_bounds( + energy_min, + energy_max, + n_points, + ) + elif isinstance(energy_bounds, MapAxis): + energy = energy_bounds + + ax = plt.gca() if ax is None else ax + + kwargs.setdefault("facecolor", "black") + kwargs.setdefault("alpha", 0.2) + kwargs.setdefault("linewidth", 0) + + if ax.yaxis.units is None: + ax.yaxis.set_units(DEFAULT_UNIT[sed_type] * energy.unit**energy_power) + + flux, flux_err = self._get_plot_flux(sed_type=sed_type, energy=energy) + y_lo = scale_plot_flux(flux - flux_err, energy_power).quantity[:, 0, 0] + y_hi = scale_plot_flux(flux + flux_err, energy_power).quantity[:, 0, 0] + + with quantity_support(): + ax.fill_between(energy.center, y_lo, y_hi, **kwargs) + + self._plot_format_ax(ax, energy_power, sed_type) + return ax
+ + + @staticmethod + def _plot_format_ax(ax, energy_power, sed_type): + ax.set_xlabel(f"Energy [{ax.xaxis.units.to_string(UNIT_STRING_FORMAT)}]") + if energy_power > 0: + ax.set_ylabel( + f"e{energy_power} * {sed_type} [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + else: + ax.set_ylabel( + f"{sed_type} [{ax.yaxis.units.to_string(UNIT_STRING_FORMAT)}]" + ) + + ax.set_xscale("log", nonpositive="clip") + ax.set_yscale("log", nonpositive="clip") + +
+[docs] + def spectral_index(self, energy, epsilon=1e-5): + """Compute spectral index at given energy. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Energy at which to estimate the index. + epsilon : float, optional + Fractional energy increment to use for determining the spectral index. + Default is 1e-5. + + Returns + ------- + index : float + Estimated spectral index. + """ + f1 = self(energy) + f2 = self(energy * (1 + epsilon)) + return np.log(f1 / f2) / np.log(1 + epsilon)
+ + +
+[docs] + def spectral_index_error(self, energy, epsilon=1e-5): + """Evaluate the error on spectral index at the given energy. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Energy at which to estimate the index. + epsilon : float, optional + Fractional energy increment to use for determining the spectral index. + Default is 1e-5. + + Returns + ------- + index, index_error : tuple of float + Estimated spectral index and its error. + """ + return self._propagate_error( + epsilon=epsilon, fct=self.spectral_index, energy=energy + )
+ + +
+[docs] + def inverse(self, value, energy_min=0.1 * u.TeV, energy_max=100 * u.TeV): + """Return energy for a given function value of the spectral model. + + Calls the `scipy.optimize.brentq` numerical root finding method. + + Parameters + ---------- + value : `~astropy.units.Quantity` + Function value of the spectral model. + energy_min : `~astropy.units.Quantity`, optional + Lower energy bound of the roots finding. Default is 0.1 TeV. + energy_max : `~astropy.units.Quantity`, optional + Upper energy bound of the roots finding. Default is 100 TeV. + + Returns + ------- + energy : `~astropy.units.Quantity` + Energies at which the model has the given ``value``. + """ + eunit = "TeV" + energy_min = energy_min.to(eunit) + energy_max = energy_max.to(eunit) + + def f(x): + # scale by 1e12 to achieve better precision + energy = u.Quantity(x, eunit, copy=COPY_IF_NEEDED) + y = self(energy).to_value(value.unit) + return 1e12 * (y - value.value) + + roots, res = find_roots(f, energy_min, energy_max, points_scale="log") + return roots
+ + +
+[docs] + def inverse_all(self, values, energy_min=0.1 * u.TeV, energy_max=100 * u.TeV): + """Return energies for multiple function values of the spectral model. + + Calls the `scipy.optimize.brentq` numerical root finding method. + + Parameters + ---------- + values : `~astropy.units.Quantity` + Function values of the spectral model. + energy_min : `~astropy.units.Quantity`, optional + Lower energy bound of the roots finding. Default is 0.1 TeV. + energy_max : `~astropy.units.Quantity`, optional + Upper energy bound of the roots finding. Default is 100 TeV. + + Returns + ------- + energy : list of `~astropy.units.Quantity` + Each element contains the energies at which the model + has corresponding value of ``values``. + """ + energies = [] + for val in np.atleast_1d(values): + res = self.inverse(val, energy_min, energy_max) + energies.append(res) + return energies
+
+ + + +
+[docs] +class ConstantSpectralModel(SpectralModel): + r"""Constant model. + + For more information see :ref:`constant-spectral-model`. + + Parameters + ---------- + const : `~astropy.units.Quantity` + :math:`k`. Default is 1e-12 cm-2 s-1 TeV-1. + """ + + tag = ["ConstantSpectralModel", "const"] + const = Parameter("const", "1e-12 cm-2 s-1 TeV-1") + +
+[docs] + @staticmethod + def evaluate(energy, const): + """Evaluate the model (static function).""" + return np.ones(np.atleast_1d(energy).shape) * const
+
+ + + +
+[docs] +class CompoundSpectralModel(CovarianceMixin, SpectralModel): + """Arithmetic combination of two spectral models. + + For more information see :ref:`compound-spectral-model`. + """ + + tag = ["CompoundSpectralModel", "compound"] + + def __init__(self, model1, model2, operator): + self.model1 = model1 + self.model2 = model2 + self.operator = operator + super().__init__() + + @property + def _models(self): + return [self.model1, self.model2] + + @property + def parameters(self): + return self.model1.parameters + self.model2.parameters + + @property + def parameters_unique_names(self): + names = [] + for idx, model in enumerate(self._models): + for par_name in model.parameters_unique_names: + components = [f"model{idx+1}", par_name] + name = ".".join(components) + names.append(name) + return names + + def __str__(self): + return ( + f"{self.__class__.__name__}\n" + f" Component 1 : {self.model1}\n" + f" Component 2 : {self.model2}\n" + f" Operator : {self.operator.__name__}\n" + ) + +
+[docs] + def __call__(self, energy): + val1 = self.model1(energy) + val2 = self.model2(energy) + return self.operator(val1, val2)
+ + +
+[docs] + def to_dict(self, full_output=False): + dict1 = self.model1.to_dict(full_output) + dict2 = self.model2.to_dict(full_output) + return { + self._type: { + "type": self.tag[0], + "model1": dict1["spectral"], # for cleaner output + "model2": dict2["spectral"], + "operator": self.operator.__name__, + } + }
+ + +
+[docs] + def evaluate(self, energy, *args): + args1 = args[: len(self.model1.parameters)] + args2 = args[len(self.model1.parameters) :] + val1 = self.model1.evaluate(energy, *args1) + val2 = self.model2.evaluate(energy, *args2) + return self.operator(val1, val2)
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + from gammapy.modeling.models import SPECTRAL_MODEL_REGISTRY + + data = data["spectral"] + model1_cls = SPECTRAL_MODEL_REGISTRY.get_cls(data["model1"]["type"]) + model1 = model1_cls.from_dict({"spectral": data["model1"]}) + model2_cls = SPECTRAL_MODEL_REGISTRY.get_cls(data["model2"]["type"]) + model2 = model2_cls.from_dict({"spectral": data["model2"]}) + op = getattr(operator, data["operator"]) + return cls(model1, model2, op)
+
+ + + +
+[docs] +class PowerLawSpectralModel(SpectralModel): + r"""Spectral power-law model. + + For more information see :ref:`powerlaw-spectral-model`. + + Parameters + ---------- + index : `~astropy.units.Quantity` + :math:`\Gamma`. + Default is 2.0. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. + Default is 1 TeV. + + See Also + -------- + PowerLaw2SpectralModel, PowerLawNormSpectralModel + """ + + tag = ["PowerLawSpectralModel", "pl"] + index = Parameter("index", 2.0) + amplitude = Parameter( + "amplitude", + "1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "1 TeV", frozen=True) + +
+[docs] + @staticmethod + def evaluate(energy, index, amplitude, reference): + """Evaluate the model (static function).""" + return amplitude * np.power((energy / reference), -index)
+ + +
+[docs] + @staticmethod + def evaluate_integral(energy_min, energy_max, index, amplitude, reference): + r"""Integrate power law analytically (static function). + + .. math:: + F(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}\phi(E)dE = \left. + \phi_0 \frac{E_0}{-\Gamma + 1} \left( \frac{E}{E_0} \right)^{-\Gamma + 1} + \right \vert _{E_{min}}^{E_{max}} + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + """ + val = -1 * index + 1 + + prefactor = amplitude * reference / val + upper = np.power((energy_max / reference), val) + lower = np.power((energy_min / reference), val) + integral = prefactor * (upper - lower) + + mask = np.isclose(val, 0) + + if mask.any(): + integral[mask] = (amplitude * reference * np.log(energy_max / energy_min))[ + mask + ] + + return integral
+ + +
+[docs] + @staticmethod + def evaluate_energy_flux(energy_min, energy_max, index, amplitude, reference): + r"""Compute energy flux in given energy range analytically (static function). + + .. math:: + G(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}E \phi(E)dE = \left. + \phi_0 \frac{E_0^2}{-\Gamma + 2} \left( \frac{E}{E_0} \right)^{-\Gamma + 2} + \right \vert _{E_{min}}^{E_{max}} + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + """ + val = -1 * index + 2 + + prefactor = amplitude * reference**2 / val + upper = (energy_max / reference) ** val + lower = (energy_min / reference) ** val + energy_flux = prefactor * (upper - lower) + + mask = np.isclose(val, 0) + + if mask.any(): + # see https://www.wolframalpha.com/input/?i=a+*+x+*+(x%2Fb)+%5E+(-2) + # for reference + energy_flux[mask] = ( + amplitude * reference**2 * np.log(energy_max / energy_min)[mask] + ) + + return energy_flux
+ + +
+[docs] + def inverse(self, value, *args): + """Return energy for a given function value of the spectral model. + + Parameters + ---------- + value : `~astropy.units.Quantity` + Function value of the spectral model. + """ + base = value / self.amplitude.quantity + return self.reference.quantity * np.power(base, -1.0 / self.index.value)
+ + + @property + def pivot_energy(self): + r"""The pivot or decorrelation energy is defined as: + + .. math:: + + E_D = E_0 * \exp{cov(\phi_0, \Gamma) / (\phi_0 \Delta \Gamma^2)} + + Formula (1) in https://arxiv.org/pdf/0910.4881.pdf + + Returns + ------- + pivot energy : `~astropy.units.Quantity` + If no minimum is found, NaN will be returned. + """ + index_err = self.index.error + reference = self.reference.quantity + amplitude = self.amplitude.quantity + cov_index_ampl = self.covariance.data[0, 1] * amplitude.unit + return reference * np.exp(cov_index_ampl / (amplitude * index_err**2))
+ + + +
+[docs] +class PowerLawNormSpectralModel(SpectralModel): + r"""Spectral power-law model with normalized amplitude parameter. + + Parameters + ---------- + tilt : `~astropy.units.Quantity` + :math:`\Gamma`. + Default is 0. + norm : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1. + reference : `~astropy.units.Quantity` + :math:`E_0`. + Default is 1 TeV. + + See Also + -------- + PowerLawSpectralModel, PowerLaw2SpectralModel + """ + + tag = ["PowerLawNormSpectralModel", "pl-norm"] + norm = Parameter("norm", 1, unit="", interp="log") + tilt = Parameter("tilt", 0, frozen=True) + reference = Parameter("reference", "1 TeV", frozen=True) + +
+[docs] + @staticmethod + def evaluate(energy, tilt, norm, reference): + """Evaluate the model (static function).""" + return norm * np.power((energy / reference), -tilt)
+ + +
+[docs] + @staticmethod + def evaluate_integral(energy_min, energy_max, tilt, norm, reference): + """Evaluate powerlaw integral.""" + val = -1 * tilt + 1 + + prefactor = norm * reference / val + upper = np.power((energy_max / reference), val) + lower = np.power((energy_min / reference), val) + integral = prefactor * (upper - lower) + + mask = np.isclose(val, 0) + + if mask.any(): + integral[mask] = (norm * reference * np.log(energy_max / energy_min))[mask] + + return integral
+ + +
+[docs] + @staticmethod + def evaluate_energy_flux(energy_min, energy_max, tilt, norm, reference): + """Evaluate the energy flux (static function).""" + val = -1 * tilt + 2 + + prefactor = norm * reference**2 / val + upper = (energy_max / reference) ** val + lower = (energy_min / reference) ** val + energy_flux = prefactor * (upper - lower) + + mask = np.isclose(val, 0) + + if mask.any(): + # see https://www.wolframalpha.com/input/?i=a+*+x+*+(x%2Fb)+%5E+(-2) + # for reference + energy_flux[mask] = ( + norm * reference**2 * np.log(energy_max / energy_min)[mask] + ) + + return energy_flux
+ + +
+[docs] + def inverse(self, value, *args): + """Return energy for a given function value of the spectral model. + + Parameters + ---------- + value : `~astropy.units.Quantity` + Function value of the spectral model. + """ + base = value / self.norm.quantity + return self.reference.quantity * np.power(base, -1.0 / self.tilt.value)
+ + + @property + def pivot_energy(self): + r"""The pivot or decorrelation energy is defined as: + + .. math:: + + E_D = E_0 * \exp{cov(\phi_0, \Gamma) / (\phi_0 \Delta \Gamma^2)} + + Formula (1) in https://arxiv.org/pdf/0910.4881.pdf + + Returns + ------- + pivot energy : `~astropy.units.Quantity` + If no minimum is found, NaN will be returned. + """ + tilt_err = self.tilt.error + reference = self.reference.quantity + norm = self.norm.quantity + cov_tilt_norm = self.covariance.data[0, 1] * norm.unit + return reference * np.exp(cov_tilt_norm / (norm * tilt_err**2))
+ + + +
+[docs] +class PowerLaw2SpectralModel(SpectralModel): + r"""Spectral power-law model with integral as amplitude parameter. + + For more information see :ref:`powerlaw2-spectral-model`. + + Parameters + ---------- + index : `~astropy.units.Quantity` + Spectral index :math:`\Gamma`. + Default is 2. + amplitude : `~astropy.units.Quantity` + Integral flux :math:`F_0`. + Default is 1e-12 cm-2 s-1. + emin : `~astropy.units.Quantity` + Lower energy limit :math:`E_{0, min}`. + Default is 0.1 TeV. + emax : `~astropy.units.Quantity` + Upper energy limit :math:`E_{0, max}`. + Default is 100 TeV. + + See Also + -------- + PowerLawSpectralModel, PowerLawNormSpectralModel + """ + + tag = ["PowerLaw2SpectralModel", "pl-2"] + + amplitude = Parameter( + name="amplitude", + value="1e-12 cm-2 s-1", + scale_method="scale10", + interp="log", + ) + index = Parameter("index", 2) + emin = Parameter("emin", "0.1 TeV", frozen=True) + emax = Parameter("emax", "100 TeV", frozen=True) + +
+[docs] + @staticmethod + def evaluate(energy, amplitude, index, emin, emax): + """Evaluate the model (static function).""" + top = -index + 1 + + # to get the energies dimensionless we use a modified formula + bottom = emax - emin * (emin / emax) ** (-index) + return amplitude * (top / bottom) * np.power(energy / emax, -index)
+ + +
+[docs] + @staticmethod + def evaluate_integral(energy_min, energy_max, amplitude, index, emin, emax): + r"""Integrate power law analytically. + + .. math:: + F(E_{min}, E_{max}) = F_0 \cdot \frac{E_{max}^{\Gamma + 1} \ + - E_{min}^{\Gamma + 1}}{E_{0, max}^{\Gamma + 1} \ + - E_{0, min}^{\Gamma + 1}} + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + """ + temp1 = np.power(energy_max, -index.value + 1) + temp2 = np.power(energy_min, -index.value + 1) + top = temp1 - temp2 + + temp1 = np.power(emax, -index.value + 1) + temp2 = np.power(emin, -index.value + 1) + bottom = temp1 - temp2 + + return amplitude * top / bottom
+ + +
+[docs] + def inverse(self, value, *args): + """Return energy for a given function value of the spectral model. + + Parameters + ---------- + value : `~astropy.units.Quantity` + Function value of the spectral model. + """ + amplitude = self.amplitude.quantity + index = self.index.value + energy_min = self.emin.quantity + energy_max = self.emax.quantity + + # to get the energies dimensionless we use a modified formula + top = -index + 1 + bottom = energy_max - energy_min * (energy_min / energy_max) ** (-index) + term = (bottom / top) * (value / amplitude) + return np.power(term.to_value(""), -1.0 / index) * energy_max
+
+ + + +
+[docs] +class BrokenPowerLawSpectralModel(SpectralModel): + r"""Spectral broken power-law model. + + For more information see :ref:`broken-powerlaw-spectral-model`. + + Parameters + ---------- + index1 : `~astropy.units.Quantity` + :math:`\Gamma1`. + Default is 2. + index2 : `~astropy.units.Quantity` + :math:`\Gamma2`. + Default is 2. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1e-12 cm-2 s-1 TeV-1. + ebreak : `~astropy.units.Quantity` + :math:`E_{break}`. + Default is 1 TeV. + + See Also + -------- + SmoothBrokenPowerLawSpectralModel + """ + + tag = ["BrokenPowerLawSpectralModel", "bpl"] + index1 = Parameter("index1", 2.0) + index2 = Parameter("index2", 2.0) + amplitude = Parameter( + name="amplitude", + value="1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + ebreak = Parameter("ebreak", "1 TeV") + +
+[docs] + @staticmethod + def evaluate(energy, index1, index2, amplitude, ebreak): + """Evaluate the model (static function).""" + energy = np.atleast_1d(energy) + cond = energy < ebreak + bpwl = amplitude * np.ones(energy.shape) + bpwl[cond] *= (energy[cond] / ebreak) ** (-index1) + bpwl[~cond] *= (energy[~cond] / ebreak) ** (-index2) + return bpwl
+
+ + + +
+[docs] +class SmoothBrokenPowerLawSpectralModel(SpectralModel): + r"""Spectral smooth broken power-law model. + + For more information see :ref:`smooth-broken-powerlaw-spectral-model`. + + Parameters + ---------- + index1 : `~astropy.units.Quantity` + :math:`\Gamma_1`. Default is 2. + index2 : `~astropy.units.Quantity` + :math:`\Gamma_2`. Default is 2. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. Default is 1 TeV. + ebreak : `~astropy.units.Quantity` + :math:`E_{break}`. Default is 1 TeV. + beta : `~astropy.units.Quantity` + :math:`\beta`. Default is 1. + + See Also + -------- + BrokenPowerLawSpectralModel + """ + + tag = ["SmoothBrokenPowerLawSpectralModel", "sbpl"] + index1 = Parameter("index1", 2.0) + index2 = Parameter("index2", 2.0) + amplitude = Parameter( + name="amplitude", + value="1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + ebreak = Parameter("ebreak", "1 TeV") + reference = Parameter("reference", "1 TeV", frozen=True) + beta = Parameter("beta", 1, frozen=True) + +
+[docs] + @staticmethod + def evaluate(energy, index1, index2, amplitude, ebreak, reference, beta): + """Evaluate the model (static function).""" + beta *= np.sign(index2 - index1) + pwl = amplitude * (energy / reference) ** (-index1) + brk = (1 + (energy / ebreak) ** ((index2 - index1) / beta)) ** (-beta) + return pwl * brk
+
+ + + +
+[docs] +class PiecewiseNormSpectralModel(SpectralModel): + """Piecewise spectral correction with a free normalization at each fixed energy nodes. + + For more information see :ref:`piecewise-norm-spectral`. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Array of energies at which the model values are given (nodes). + norms : `~numpy.ndarray` or list of `Parameter` + Array with the initial norms of the model at energies ``energy``. + Normalisation parameters are created for each value. + Default is one at each node. + interp : str + Interpolation scaling in {"log", "lin"}. Default is "log". + """ + + tag = ["PiecewiseNormSpectralModel", "piecewise-norm"] + + def __init__(self, energy, norms=None, interp="log"): + self._energy = energy + self._interp = interp + + if norms is None: + norms = np.ones(len(energy)) + + if len(norms) != len(energy): + raise ValueError("dimension mismatch") + + if len(norms) < 2: + raise ValueError("Input arrays must contain at least 2 elements") + + parameters_list = [] + if not isinstance(norms[0], Parameter): + parameters_list += [ + Parameter(f"norm_{k}", norm) for k, norm in enumerate(norms) + ] + else: + parameters_list += norms + + self.default_parameters = Parameters(parameters_list) + super().__init__() + + @property + def energy(self): + """Energy nodes.""" + return self._energy + + @property + def norms(self): + """Norm values""" + return u.Quantity([p.value for p in self.parameters]) + +
+[docs] + def evaluate(self, energy, **norms): + scale = interpolation_scale(scale=self._interp) + e_eval = scale(np.atleast_1d(energy.value)) + e_nodes = scale(self.energy.to(energy.unit).value) + v_nodes = scale(self.norms) + log_interp = scale.inverse(np.interp(e_eval, e_nodes, v_nodes)) + return log_interp
+ + +
+[docs] + def to_dict(self, full_output=False): + data = super().to_dict(full_output=full_output) + data["spectral"]["energy"] = { + "data": self.energy.data.tolist(), + "unit": str(self.energy.unit), + } + data["spectral"]["interp"] = self._interp + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create model from dictionary.""" + data = data["spectral"] + energy = u.Quantity(data["energy"]["data"], data["energy"]["unit"]) + parameters = Parameters.from_dict(data["parameters"]) + if "interp" in data: + return cls.from_parameters(parameters, energy=energy, interp=data["interp"]) + else: + return cls.from_parameters(parameters, energy=energy)
+ + +
+[docs] + @classmethod + def from_parameters(cls, parameters, **kwargs): + """Create model from parameters.""" + return cls(norms=parameters, **kwargs)
+
+ + + +
+[docs] +class ExpCutoffPowerLawSpectralModel(SpectralModel): + r"""Spectral exponential cutoff power-law model. + + For more information see :ref:`exp-cutoff-powerlaw-spectral-model`. + + Parameters + ---------- + index : `~astropy.units.Quantity` + :math:`\Gamma`. + Default is 1.5. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. + Default is 1 TeV. + lambda_ : `~astropy.units.Quantity` + :math:`\lambda`. + Default is 0.1 TeV-1. + alpha : `~astropy.units.Quantity` + :math:`\alpha`. + Default is 1. + + See Also + -------- + ExpCutoffPowerLawNormSpectralModel + """ + + tag = ["ExpCutoffPowerLawSpectralModel", "ecpl"] + + index = Parameter("index", 1.5) + amplitude = Parameter( + name="amplitude", + value="1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "1 TeV", frozen=True) + lambda_ = Parameter("lambda_", "0.1 TeV-1") + alpha = Parameter("alpha", "1.0", frozen=True) + +
+[docs] + @staticmethod + def evaluate(energy, index, amplitude, reference, lambda_, alpha): + """Evaluate the model (static function).""" + pwl = amplitude * (energy / reference) ** (-index) + cutoff = np.exp(-np.power(energy * lambda_, alpha)) + + return pwl * cutoff
+ + + @property + def e_peak(self): + r"""Spectral energy distribution peak energy (`~astropy.units.Quantity`). + + This is the peak in E^2 x dN/dE and is given by: + + .. math:: + E_{Peak} = \left(\frac{2 - \Gamma}{\alpha}\right)^{1/\alpha} / \lambda + """ + reference = self.reference.quantity + index = self.index.quantity + lambda_ = self.lambda_.quantity + alpha = self.alpha.quantity + + if index >= 2 or lambda_ == 0.0 or alpha == 0.0: + return np.nan * reference.unit + else: + return np.power((2 - index) / alpha, 1 / alpha) / lambda_
+ + + +
+[docs] +class ExpCutoffPowerLawNormSpectralModel(SpectralModel): + r"""Norm spectral exponential cutoff power-law model. + + Parameters + ---------- + index : `~astropy.units.Quantity` + :math:`\Gamma`. + Default is 0. + norm : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1. + reference : `~astropy.units.Quantity` + :math:`E_0`. + Default is 1 TeV. + lambda_ : `~astropy.units.Quantity` + :math:`\lambda`. + Default is 0.1 TeV-1. + alpha : `~astropy.units.Quantity` + :math:`\alpha`. + Default is 1. + + See Also + -------- + ExpCutoffPowerLawSpectralModel + """ + + tag = ["ExpCutoffPowerLawNormSpectralModel", "ecpl-norm"] + + index = Parameter("index", 0.0) + norm = Parameter("norm", 1, unit="", interp="log") + reference = Parameter("reference", "1 TeV", frozen=True) + lambda_ = Parameter("lambda_", "0.1 TeV-1") + alpha = Parameter("alpha", "1.0", frozen=True) + + def __init__( + self, index=None, norm=None, reference=None, lambda_=None, alpha=None, **kwargs + ): + if index is None: + warnings.warn( + "The default index value changed from 1.5 to 0 since v1.3", + GammapyDeprecationWarning, + ) + + if norm is not None: + kwargs.update({"norm": norm}) + if index is not None: + kwargs.update({"index": index}) + if reference is not None: + kwargs.update({"reference": reference}) + if lambda_ is not None: + kwargs.update({"lambda_": lambda_}) + if alpha is not None: + kwargs.update({"alpha": alpha}) + + super().__init__(**kwargs) + +
+[docs] + @staticmethod + def evaluate(energy, index, norm, reference, lambda_, alpha): + """Evaluate the model (static function).""" + pwl = norm * (energy / reference) ** (-index) + cutoff = np.exp(-np.power(energy * lambda_, alpha)) + + return pwl * cutoff
+
+ + + +
+[docs] +class ExpCutoffPowerLaw3FGLSpectralModel(SpectralModel): + r"""Spectral exponential cutoff power-law model used for 3FGL. + + For more information see :ref:`exp-cutoff-powerlaw-3fgl-spectral-model`. + + Parameters + ---------- + index : `~astropy.units.Quantity` + :math:`\Gamma`. + Default is 1.5. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. + Default is 1 TeV. + ecut : `~astropy.units.Quantity` + :math:`E_{C}`. + Default is 10 TeV. + """ + + tag = ["ExpCutoffPowerLaw3FGLSpectralModel", "ecpl-3fgl"] + index = Parameter("index", 1.5) + amplitude = Parameter( + "amplitude", + "1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "1 TeV", frozen=True) + ecut = Parameter("ecut", "10 TeV") + +
+[docs] + @staticmethod + def evaluate(energy, index, amplitude, reference, ecut): + """Evaluate the model (static function).""" + pwl = amplitude * (energy / reference) ** (-index) + cutoff = np.exp((reference - energy) / ecut) + return pwl * cutoff
+
+ + + +
+[docs] +class SuperExpCutoffPowerLaw3FGLSpectralModel(SpectralModel): + r"""Spectral super exponential cutoff power-law model used for 3FGL. + + For more information see :ref:`super-exp-cutoff-powerlaw-3fgl-spectral-model`. + + .. math:: + \phi(E) = \phi_0 \cdot \left(\frac{E}{E_0}\right)^{-\Gamma_1} + \exp \left( \left(\frac{E_0}{E_{C}} \right)^{\Gamma_2} - + \left(\frac{E}{E_{C}} \right)^{\Gamma_2} + \right) + + Parameters + ---------- + index_1 : `~astropy.units.Quantity` + :math:`\Gamma_1`. + Default is 1.5. + index_2 : `~astropy.units.Quantity` + :math:`\Gamma_2`. + Default is 2. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. + Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. + Default is 1 TeV. + ecut : `~astropy.units.Quantity` + :math:`E_{C}`. + Default is 10 TeV. + """ + + tag = ["SuperExpCutoffPowerLaw3FGLSpectralModel", "secpl-3fgl"] + amplitude = Parameter( + "amplitude", + "1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "1 TeV", frozen=True) + ecut = Parameter("ecut", "10 TeV") + index_1 = Parameter("index_1", 1.5) + index_2 = Parameter("index_2", 2) + +
+[docs] + @staticmethod + def evaluate(energy, amplitude, reference, ecut, index_1, index_2): + """Evaluate the model (static function).""" + pwl = amplitude * (energy / reference) ** (-index_1) + cutoff = np.exp((reference / ecut) ** index_2 - (energy / ecut) ** index_2) + return pwl * cutoff
+
+ + + +
+[docs] +class SuperExpCutoffPowerLaw4FGLSpectralModel(SpectralModel): + r"""Spectral super exponential cutoff power-law model used for 4FGL-DR1 (and DR2). + + See equation (4) of https://arxiv.org/pdf/1902.10045.pdf + For more information see :ref:`super-exp-cutoff-powerlaw-4fgl-spectral-model`. + + Parameters + ---------- + index_1 : `~astropy.units.Quantity` + :math:`\Gamma_1`. Default is 1.5. + index_2 : `~astropy.units.Quantity` + :math:`\Gamma_2`. Default is 2. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. Default is 1 TeV. + expfactor : `~astropy.units.Quantity` + :math:`a`, given as dimensionless value but + internally assumes unit of :math:`{\rm MeV}^{-\Gamma_2}`. + Default is 1e-14. + """ + + tag = ["SuperExpCutoffPowerLaw4FGLSpectralModel", "secpl-4fgl"] + amplitude = Parameter( + "amplitude", + "1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "1 TeV", frozen=True) + expfactor = Parameter("expfactor", "1e-14") + index_1 = Parameter("index_1", 1.5) + index_2 = Parameter("index_2", 2) + +
+[docs] + @staticmethod + def evaluate(energy, amplitude, reference, expfactor, index_1, index_2): + """Evaluate the model (static function).""" + if isinstance(index_1, u.Quantity): + index_1 = index_1.to_value(u.one) + if isinstance(index_2, u.Quantity): + index_2 = index_2.to_value(u.one) + + pwl = amplitude * (energy / reference) ** (-index_1) + cutoff = np.exp( + expfactor / u.MeV**index_2 * (reference**index_2 - energy**index_2) + ) + return pwl * cutoff
+
+ + + +
+[docs] +class SuperExpCutoffPowerLaw4FGLDR3SpectralModel(SpectralModel): + r"""Spectral super exponential cutoff power-law model used for 4FGL-DR3. + + See equations (2) and (3) of https://arxiv.org/pdf/2201.11184.pdf + For more information see :ref:`super-exp-cutoff-powerlaw-4fgl-dr3-spectral-model`. + + Parameters + ---------- + index_1 : `~astropy.units.Quantity` + :math:`\Gamma_1`. Default is 1.5. + index_2 : `~astropy.units.Quantity` + :math:`\Gamma_2`. Default is 2. + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. Default is 1 TeV. + expfactor : `~astropy.units.Quantity` + :math:`a`, given as dimensionless value. Default is 1e-2. + """ + + tag = ["SuperExpCutoffPowerLaw4FGLDR3SpectralModel", "secpl-4fgl-dr3"] + amplitude = Parameter( + name="amplitude", + value="1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "1 TeV", frozen=True) + expfactor = Parameter("expfactor", "1e-2") + index_1 = Parameter("index_1", 1.5) + index_2 = Parameter("index_2", 2) + +
+[docs] + @staticmethod + def evaluate(energy, amplitude, reference, expfactor, index_1, index_2): + """Evaluate the model (static function).""" + # https://fermi.gsfc.nasa.gov/ssc/data/analysis/scitools/source_models.html#PLSuperExpCutoff4 + pwl = amplitude * (energy / reference) ** (-index_1) + cutoff = (energy / reference) ** (expfactor / index_2) * np.exp( + expfactor / index_2**2 * (1 - (energy / reference) ** index_2) + ) + + mask = np.abs(index_2 * np.log(energy / reference)) < 1e-2 + ln_ = np.log(energy[mask] / reference) + power = expfactor * ( + ln_ / 2.0 + index_2 / 6.0 * ln_**2.0 + index_2**2.0 / 24.0 * ln_**3 + ) + cutoff[mask] = (energy[mask] / reference) ** power + return pwl * cutoff
+
+ + + +
+[docs] +class LogParabolaSpectralModel(SpectralModel): + r"""Spectral log parabola model. + + For more information see :ref:`logparabola-spectral-model`. + + Parameters + ---------- + amplitude : `~astropy.units.Quantity` + :math:`\phi_0`. Default is 1e-12 cm-2 s-1 TeV-1. + reference : `~astropy.units.Quantity` + :math:`E_0`. Default is 10 TeV. + alpha : `~astropy.units.Quantity` + :math:`\alpha`. Default is 2. + beta : `~astropy.units.Quantity` + :math:`\beta`. Default is 1. + + See Also + -------- + LogParabolaNormSpectralModel + """ + + tag = ["LogParabolaSpectralModel", "lp"] + amplitude = Parameter( + "amplitude", + "1e-12 cm-2 s-1 TeV-1", + scale_method="scale10", + interp="log", + ) + reference = Parameter("reference", "10 TeV", frozen=True) + alpha = Parameter("alpha", 2) + beta = Parameter("beta", 1) + +
+[docs] + @classmethod + def from_log10(cls, amplitude, reference, alpha, beta): + """Construct from :math:`log_{10}` parametrization.""" + beta_ = beta / np.log(10) + return cls(amplitude=amplitude, reference=reference, alpha=alpha, beta=beta_)
+ + +
+[docs] + @staticmethod + def evaluate(energy, amplitude, reference, alpha, beta): + """Evaluate the model (static function).""" + xx = energy / reference + exponent = -alpha - beta * np.log(xx) + return amplitude * np.power(xx, exponent)
+ + + @property + def e_peak(self): + r"""Spectral energy distribution peak energy (`~astropy.units.Quantity`). + + This is the peak in E^2 x dN/dE and is given by: + + .. math:: + E_{Peak} = E_{0} \exp{ (2 - \alpha) / (2 * \beta)} + """ + reference = self.reference.quantity + alpha = self.alpha.quantity + beta = self.beta.quantity + return reference * np.exp((2 - alpha) / (2 * beta))
+ + + +
+[docs] +class LogParabolaNormSpectralModel(SpectralModel): + r"""Norm spectral log parabola model. + + Parameters + ---------- + norm : `~astropy.units.Quantity` + :math:`\phi_0`. Default is 1. + reference : `~astropy.units.Quantity` + :math:`E_0`. Default is 10 TeV. + alpha : `~astropy.units.Quantity` + :math:`\alpha`. Default is 0. + beta : `~astropy.units.Quantity` + :math:`\beta`. Default is 0. + + See Also + -------- + LogParabolaSpectralModel + """ + + tag = ["LogParabolaNormSpectralModel", "lp-norm"] + + norm = Parameter("norm", 1, unit="", interp="log") + reference = Parameter("reference", "10 TeV", frozen=True) + alpha = Parameter("alpha", 0) + beta = Parameter("beta", 0) + + def __init__(self, norm=None, reference=None, alpha=None, beta=None, **kwargs): + if norm is not None: + kwargs.update({"norm": norm}) + if beta is not None: + kwargs.update({"beta": beta}) + if reference is not None: + kwargs.update({"reference": reference}) + if alpha is not None: + kwargs.update({"alpha": alpha}) + + super().__init__(**kwargs) + +
+[docs] + @classmethod + def from_log10(cls, norm, reference, alpha, beta): + """Construct from :math:`log_{10}` parametrization.""" + beta_ = beta / np.log(10) + return cls(norm=norm, reference=reference, alpha=alpha, beta=beta_)
+ + +
+[docs] + @staticmethod + def evaluate(energy, norm, reference, alpha, beta): + """Evaluate the model (static function).""" + xx = energy / reference + exponent = -alpha - beta * np.log(xx) + return norm * np.power(xx, exponent)
+
+ + + +
+[docs] +class TemplateSpectralModel(SpectralModel): + """A model generated from a table of energy and value arrays. + + For more information see :ref:`template-spectral-model`. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Array of energies at which the model values are given + values : `~numpy.ndarray` + Array with the values of the model at energies ``energy``. + interp_kwargs : dict + Interpolation option passed to `~gammapy.utils.interpolation.ScaledRegularGridInterpolator`. + By default, all values outside the interpolation range are set to NaN. + If you want to apply linear extrapolation you can pass `interp_kwargs={'extrapolate': + True, 'method': 'linear'}`. If you want to choose the interpolation + scaling applied to values, you can use `interp_kwargs={"values_scale": "log"}`. + meta : dict, optional + Meta information, meta['filename'] will be used for serialisation. + """ + + tag = ["TemplateSpectralModel", "template"] + + def __init__( + self, + energy, + values, + interp_kwargs=None, + meta=None, + ): + self.energy = energy + self.values = u.Quantity(values, copy=COPY_IF_NEEDED) + self.meta = {} if meta is None else meta + interp_kwargs = interp_kwargs or {} + interp_kwargs.setdefault("values_scale", "log") + interp_kwargs.setdefault("points_scale", ("log",)) + + if len(energy) == 1: + interp_kwargs["method"] = "nearest" + + self._evaluate = ScaledRegularGridInterpolator( + points=(energy,), values=values, **interp_kwargs + ) + + super().__init__() + +
+[docs] + @classmethod + def read_xspec_model(cls, filename, param, **kwargs): + """Read XSPEC table model. + + The input is a table containing absorbed values from a XSPEC model as a + function of energy. + + TODO: Format of the file should be described and discussed in + https://gamma-astro-data-formats.readthedocs.io/en/latest/index.html + + Parameters + ---------- + filename : str + File containing the XSPEC model. + param : float + Model parameter value. + + Examples + -------- + Fill table from an EBL model (Franceschini, 2008) + + >>> from gammapy.modeling.models import TemplateSpectralModel + >>> filename = '$GAMMAPY_DATA/ebl/ebl_franceschini.fits.gz' + >>> table_model = TemplateSpectralModel.read_xspec_model(filename=filename, param=0.3) + """ + filename = make_path(filename) + + # Check if parameter value is in range + table_param = Table.read(filename, hdu="PARAMETERS") + pmin = table_param["MINIMUM"] + pmax = table_param["MAXIMUM"] + if param < pmin or param > pmax: + raise ValueError(f"Out of range: param={param}, min={pmin}, max={pmax}") + + # Get energy values + table_energy = Table.read(filename, hdu="ENERGIES") + energy_lo = table_energy["ENERG_LO"] + energy_hi = table_energy["ENERG_HI"] + + # set energy to log-centers + energy = np.sqrt(energy_lo * energy_hi) + + # Get spectrum values (no interpolation, take closest value for param) + table_spectra = Table.read(filename, hdu="SPECTRA") + idx = np.abs(table_spectra["PARAMVAL"] - param).argmin() + values = u.Quantity( + table_spectra[idx][1], "", copy=COPY_IF_NEEDED + ) # no dimension + + kwargs.setdefault("interp_kwargs", {"values_scale": "lin"}) + return cls(energy=energy, values=values, **kwargs)
+ + +
+[docs] + def evaluate(self, energy): + """Evaluate the model (static function).""" + return self._evaluate((energy,), clip=True)
+ + +
+[docs] + def to_dict(self, full_output=False): + data = super().to_dict(full_output) + data["spectral"]["energy"] = { + "data": self.energy.data.tolist(), + "unit": str(self.energy.unit), + } + data["spectral"]["values"] = { + "data": self.values.data.tolist(), + "unit": str(self.values.unit), + } + + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + data = data["spectral"] + energy = u.Quantity(data["energy"]["data"], data["energy"]["unit"]) + values = u.Quantity(data["values"]["data"], data["values"]["unit"]) + return cls(energy=energy, values=values)
+ + +
+[docs] + @classmethod + def from_region_map(cls, map, **kwargs): + """Create model from region map.""" + energy = map.geom.axes["energy_true"].center + values = map.quantity[:, 0, 0] + return cls(energy=energy, values=values, **kwargs)
+
+ + + +
+[docs] +class TemplateNDSpectralModel(SpectralModel): + """A model generated from a ND map where extra dimensions define the parameter space. + + Parameters + ---------- + map : `~gammapy.maps.RegionNDMap` + Map template. + meta : dict, optional + Meta information, meta['filename'] will be used for serialisation. + interp_kwargs : dict + Interpolation keyword arguments passed to `gammapy.maps.Map.interp_by_pix`. + Default arguments are {'method': 'linear', 'fill_value': 0}. + """ + + tag = ["TemplateNDSpectralModel", "templateND"] + + def __init__(self, map, interp_kwargs=None, meta=None, filename=None): + self._map = map.copy() + self.meta = dict() if meta is None else meta + if filename is not None: + filename = str(make_path(filename)) + self.filename = filename + + parameters = [] + has_energy = False + for axis in map.geom.axes: + if axis.name not in ["energy_true", "energy"]: + unit = axis.unit + center = (axis.bounds[1] + axis.bounds[0]) / 2 + parameter = Parameter( + name=axis.name, + value=center.to_value(unit), + unit=unit, + scale_method="scale10", + min=axis.bounds[0].to_value(unit), + max=axis.bounds[-1].to_value(unit), + interp=axis.interp, + ) + parameters.append(parameter) + else: + has_energy |= True + if not has_energy: + raise ValueError("Invalid map, no energy axis found") + + self.default_parameters = Parameters(parameters) + + interp_kwargs = interp_kwargs or {} + interp_kwargs.setdefault("values_scale", "log") + self._interp_kwargs = interp_kwargs + super().__init__() + + @property + def map(self): + """Template map as a `~gammapy.maps.RegionNDMap`.""" + return self._map + +
+[docs] + def evaluate(self, energy, **kwargs): + coord = {"energy_true": energy} + coord.update(kwargs) + + pixels = [0, 0] + [ + self.map.geom.axes[key].coord_to_pix(value) for key, value in coord.items() + ] + + val = self.map.interp_by_pix(pixels, **self._interp_kwargs) + return u.Quantity(val, self.map.unit, copy=COPY_IF_NEEDED)
+ + +
+[docs] + def write(self, overwrite=False): + """ + Write the map. + + Parameters + ---------- + overwrite: bool, optional + Overwrite existing file. + Default is False, which will raise a warning if the template file exists already. + """ + if self.filename is None: + raise IOError("Missing filename") + elif os.path.isfile(self.filename) and not overwrite: + log.warning("Template file already exits, and overwrite is False") + else: + self.map.write(self.filename)
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + data = data["spectral"] + filename = data["filename"] + m = RegionNDMap.read(filename) + model = cls(m, filename=filename) + for idx, p in enumerate(model.parameters): + par = p.to_dict() + par.update(data["parameters"][idx]) + setattr(model, p.name, Parameter(**par)) + return model
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + data = super().to_dict(full_output) + data["spectral"]["filename"] = self.filename + data["spectral"]["unit"] = str(self.map.unit) + return data
+
+ + + +
+[docs] +class ScaleSpectralModel(SpectralModel): + """Wrapper to scale another spectral model by a norm factor. + + Parameters + ---------- + model : `SpectralModel` + Spectral model to wrap. + norm : float + Multiplicative norm factor for the model value. + Default is 1. + """ + + tag = ["ScaleSpectralModel", "scale"] + norm = Parameter("norm", 1, unit="", interp="log") + + def __init__(self, model, norm=norm.quantity): + self.model = model + self._covariance = None + super().__init__(norm=norm) + +
+[docs] + def evaluate(self, energy, norm): + return norm * self.model(energy)
+ + +
+[docs] + def integral(self, energy_min, energy_max, **kwargs): + return self.norm.value * self.model.integral(energy_min, energy_max, **kwargs)
+
+ + + +
+[docs] +class EBLAbsorptionNormSpectralModel(SpectralModel): + r"""Gamma-ray absorption models. + + For more information see :ref:`absorption-spectral-model`. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Energy node values. + param : `~astropy.units.Quantity` + Parameter node values. + data : `~astropy.units.Quantity` + Model value. + redshift : float + Redshift of the absorption model. + Default is 0.1. + alpha_norm: float + Norm of the EBL model. + Default is 1. + interp_kwargs : dict + Interpolation option passed to `~gammapy.utils.interpolation.ScaledRegularGridInterpolator`. + By default the models are extrapolated outside the range. To prevent + this and raise an error instead use interp_kwargs = {"extrapolate": False}. + """ + + tag = ["EBLAbsorptionNormSpectralModel", "ebl-norm"] + alpha_norm = Parameter("alpha_norm", 1.0, frozen=True) + redshift = Parameter("redshift", 0.1, frozen=True) + + def __init__(self, energy, param, data, redshift, alpha_norm, interp_kwargs=None): + self.filename = None + # set values log centers + self.param = param + self.energy = energy + self.data = u.Quantity(data, copy=COPY_IF_NEEDED) + + interp_kwargs = interp_kwargs or {} + interp_kwargs.setdefault("points_scale", ("lin", "log")) + interp_kwargs.setdefault("values_scale", "log") + interp_kwargs.setdefault("extrapolate", True) + + self._evaluate_table_model = ScaledRegularGridInterpolator( + points=(self.param, self.energy), values=self.data, **interp_kwargs + ) + super().__init__(redshift=redshift, alpha_norm=alpha_norm) + +
+[docs] + def to_dict(self, full_output=False): + data = super().to_dict(full_output=full_output) + param = u.Quantity(self.param) + if self.filename is None: + data["spectral"]["energy"] = { + "data": self.energy.data.tolist(), + "unit": str(self.energy.unit), + } + data["spectral"]["param"] = { + "data": param.data.tolist(), + "unit": str(param.unit), + } + data["spectral"]["values"] = { + "data": self.data.value.tolist(), + "unit": str(self.data.unit), + } + else: + data["spectral"]["filename"] = str(self.filename) + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + data = data["spectral"] + redshift = [p["value"] for p in data["parameters"] if p["name"] == "redshift"][ + 0 + ] + alpha_norm = [ + p["value"] for p in data["parameters"] if p["name"] == "alpha_norm" + ][0] + if "filename" in data: + if os.path.exists(data["filename"]): + return cls.read( + data["filename"], redshift=redshift, alpha_norm=alpha_norm + ) + else: + for reference, filename in EBL_DATA_BUILTIN.items(): + if Path(filename).stem in data["filename"]: + return cls.read_builtin( + reference, redshift=redshift, alpha_norm=alpha_norm + ) + raise IOError(f'File {data["filename"]} not found') + else: + energy = u.Quantity(data["energy"]["data"], data["energy"]["unit"]) + param = u.Quantity(data["param"]["data"], data["param"]["unit"]) + values = u.Quantity(data["values"]["data"], data["values"]["unit"]) + return cls( + energy=energy, + param=param, + data=values, + redshift=redshift, + alpha_norm=alpha_norm, + )
+ + +
+[docs] + @classmethod + def read(cls, filename, redshift=0.1, alpha_norm=1, interp_kwargs=None): + """Build object from an XSPEC model. + + Parameters + ---------- + filename : str + File containing the model. + redshift : float, optional + Redshift of the absorption model. + Default is 0.1. + alpha_norm: float, optional + Norm of the EBL model. + Default is 1. + interp_kwargs : dict, optional + Interpolation option passed to `~gammapy.utils.interpolation.ScaledRegularGridInterpolator`. + Default is None. + + """ + # Create EBL data array + filename = make_path(filename) + table_param = Table.read(filename, hdu="PARAMETERS") + + # TODO: for some reason the table contain duplicated values + param, idx = np.unique(table_param[0]["VALUE"], return_index=True) + + # Get energy values + table_energy = Table.read(filename, hdu="ENERGIES") + energy_lo = u.Quantity( + table_energy["ENERG_LO"], "keV", copy=COPY_IF_NEEDED + ) # unit not stored in file + energy_hi = u.Quantity( + table_energy["ENERG_HI"], "keV", copy=COPY_IF_NEEDED + ) # unit not stored in file + energy = np.sqrt(energy_lo * energy_hi) + + # Get spectrum values + table_spectra = Table.read(filename, hdu="SPECTRA") + data = table_spectra["INTPSPEC"].data[idx, :] + model = cls( + energy=energy, + param=param, + data=data, + redshift=redshift, + alpha_norm=alpha_norm, + interp_kwargs=interp_kwargs, + ) + model.filename = filename + return model
+ + +
+[docs] + @classmethod + def read_builtin( + cls, reference="dominguez", redshift=0.1, alpha_norm=1, interp_kwargs=None + ): + """Read from one of the built-in absorption models. + + Parameters + ---------- + reference : {'franceschini', 'dominguez', 'finke'}, optional + Name of one of the available model in gammapy-data. Default is 'dominquez'. + redshift : float, optional + Redshift of the absorption model. Default is 0.1. + alpha_norm : float, optional + Norm of the EBL model. Default is 1. + interp_kwargs : dict, optional + Interpolation keyword arguments. Default is None. + + References + ---------- + .. [1] Franceschini et al. (2008), "Extragalactic optical-infrared background radiation, its time evolution and the cosmic photon-photon opacity", # noqa: E501 + `Link <https://ui.adsabs.harvard.edu/abs/2008A%26A...487..837F>`__ + .. [2] Dominguez et al. (2011), " Extragalactic background light inferred from AEGIS galaxy-SED-type fractions" # noqa: E501 + `Link <https://ui.adsabs.harvard.edu/abs/2011MNRAS.410.2556D>`__ + .. [3] Finke et al. (2010), "Modeling the Extragalactic Background Light from Stars and Dust" + `Link <https://ui.adsabs.harvard.edu/abs/2010ApJ...712..238F>`__ + .. [4] Franceschini et al. (2017), "The extragalactic background light revisited and the cosmic photon-photon opacity" + `Link <https://ui.adsabs.harvard.edu/abs/2017A%26A...603A..34F/abstract>`__ + .. [5] Saldana-Lopez et al. (2021) "An observational determination of the evolving extragalactic background light from the multiwavelength HST/CANDELS survey in the Fermi and CTA era" + `Link <https://ui.adsabs.harvard.edu/abs/2021MNRAS.507.5144S/abstract>`__ + """ + return cls.read( + EBL_DATA_BUILTIN[reference], + redshift, + alpha_norm, + interp_kwargs=interp_kwargs, + )
+ + +
+[docs] + def evaluate(self, energy, redshift, alpha_norm): + """Evaluate model for energy and parameter value.""" + absorption = np.clip(self._evaluate_table_model((redshift, energy)), 0, 1) + return np.power(absorption, alpha_norm)
+
+ + + +
+[docs] +class NaimaSpectralModel(SpectralModel): + r"""A wrapper for Naima models. + + For more information see :ref:`naima-spectral-model`. + + Parameters + ---------- + radiative_model : `~naima.models.BaseRadiative` + An instance of a radiative model defined in `~naima.models`. + distance : `~astropy.units.Quantity`, optional + Distance to the source. If set to 0, the intrinsic differential + luminosity will be returned. Default is 1 kpc. + seed : str or list of str, optional + Seed photon field(s) to be considered for the `radiative_model` flux computation, + in case of a `~naima.models.InverseCompton` model. It can be a subset of the + `seed_photon_fields` list defining the `radiative_model`. Default is the whole list + of photon fields. + nested_models : dict + Additional parameters for nested models not supplied by the radiative model, + for now this is used only for synchrotron self-compton model. + """ + + tag = ["NaimaSpectralModel", "naima"] + + def __init__( + self, + radiative_model, + distance=1.0 * u.kpc, + seed=None, + nested_models=None, + use_cache=False, + ): + import naima + + self.radiative_model = radiative_model + self.radiative_model._memoize = use_cache + self.distance = u.Quantity(distance) + self.seed = seed + + if nested_models is None: + nested_models = {} + + self.nested_models = nested_models + + if isinstance(self.particle_distribution, naima.models.TableModel): + param_names = ["amplitude"] + else: + param_names = self.particle_distribution.param_names + + parameters = [] + + for name in param_names: + value = getattr(self.particle_distribution, name) + parameter = Parameter(name, value) + parameters.append(parameter) + + # In case of a synchrotron radiative model, append B to the fittable parameters + if "B" in self.radiative_model.param_names: + value = getattr(self.radiative_model, "B") + parameter = Parameter("B", value) + parameters.append(parameter) + + # In case of a synchrotron self compton model, append B and Rpwn to the fittable parameters + if self.include_ssc: + B = self.nested_models["SSC"]["B"] + radius = self.nested_models["SSC"]["radius"] + parameters.append(Parameter("B", B)) + parameters.append(Parameter("radius", radius, frozen=True)) + + self.default_parameters = Parameters(parameters) + self.ssc_energy = np.logspace(-7, 9, 100) * u.eV + super().__init__() + + @property + def include_ssc(self): + """Whether the model includes an SSC component.""" + import naima + + is_ic_model = isinstance(self.radiative_model, naima.models.InverseCompton) + return is_ic_model and "SSC" in self.nested_models + + @property + def ssc_model(self): + """Synchrotron model.""" + import naima + + if self.include_ssc: + return naima.models.Synchrotron( + self.particle_distribution, + B=self.B.quantity, + Eemax=self.radiative_model.Eemax, + Eemin=self.radiative_model.Eemin, + ) + + @property + def particle_distribution(self): + """Particle distribution.""" + return self.radiative_model.particle_distribution + + def _evaluate_ssc( + self, + energy, + ): + """ + Compute photon density spectrum from synchrotron emission for synchrotron self-compton + model, assuming uniform synchrotron emissivity inside a sphere of radius R (see Section + 4.1 of Atoyan & Aharonian 1996). + + Based on : + https://naima.readthedocs.io/en/latest/examples.html#crab-nebula-ssc-model + + """ + Lsy = self.ssc_model.flux( + self.ssc_energy, distance=0 * u.cm + ) # use distance 0 to get luminosity + phn_sy = Lsy / (4 * np.pi * self.radius.quantity**2 * const.c) * 2.24 + # The factor 2.24 comes from the assumption on uniform synchrotron + # emissivity inside a sphere + + if "SSC" not in self.radiative_model.seed_photon_fields: + self.radiative_model.seed_photon_fields["SSC"] = { + "isotropic": True, + "type": "array", + "energy": self.ssc_energy, + "photon_density": phn_sy, + } + else: + self.radiative_model.seed_photon_fields["SSC"]["photon_density"] = phn_sy + + dnde = self.radiative_model.flux( + energy, seed=self.seed, distance=self.distance + ) + self.ssc_model.flux(energy, distance=self.distance) + return dnde + + def _update_naima_parameters(self, **kwargs): + """Update Naima model parameters.""" + for name, value in kwargs.items(): + setattr(self.particle_distribution, name, value) + + if "B" in self.radiative_model.param_names: + self.radiative_model.B = self.B.quantity + +
+[docs] + def evaluate(self, energy, **kwargs): + """Evaluate the model. + + Parameters + ---------- + energy : `~astropy.units.Quantity` + Energy to evaluate the model at. + + Returns + ------- + dnde : `~astropy.units.Quantity` + Differential flux at given energy. + """ + self._update_naima_parameters(**kwargs) + + if self.include_ssc: + dnde = self._evaluate_ssc(energy.flatten()) + elif self.seed is not None: + dnde = self.radiative_model.flux( + energy.flatten(), seed=self.seed, distance=self.distance + ) + else: + dnde = self.radiative_model.flux(energy.flatten(), distance=self.distance) + + dnde = dnde.reshape(energy.shape) + unit = 1 / (energy.unit * u.cm**2 * u.s) + return dnde.to(unit)
+ + +
+[docs] + def to_dict(self, full_output=True): + # for full_output to True otherwise broken + return super().to_dict(full_output=True)
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + raise NotImplementedError( + "Currently the NaimaSpectralModel cannot be read from YAML" + )
+ + +
+[docs] + @classmethod + def from_parameters(cls, parameters, **kwargs): + raise NotImplementedError( + "Currently the NaimaSpectralModel cannot be built from a list of parameters." + )
+
+ + + +
+[docs] +class GaussianSpectralModel(SpectralModel): + r"""Gaussian spectral model. + + For more information see :ref:`gaussian-spectral-model`. + + Parameters + ---------- + amplitude : `~astropy.units.Quantity` + :math:`N_0`. Default is 1e-12 cm-2 s-1. + mean : `~astropy.units.Quantity` + :math:`\bar{E}`. Default is 1 TeV. + sigma : `~astropy.units.Quantity` + :math:`\sigma`. Default is 2 TeV. + """ + + tag = ["GaussianSpectralModel", "gauss"] + amplitude = Parameter("amplitude", 1e-12 * u.Unit("cm-2 s-1"), interp="log") + + mean = Parameter("mean", 1 * u.TeV) + sigma = Parameter("sigma", 2 * u.TeV) + +
+[docs] + @staticmethod + def evaluate(energy, amplitude, mean, sigma): + return ( + amplitude + / (sigma * np.sqrt(2 * np.pi)) + * np.exp(-((energy - mean) ** 2) / (2 * sigma**2)) + )
+ + +
+[docs] + def integral(self, energy_min, energy_max, **kwargs): + r"""Integrate Gaussian analytically. + + .. math:: + F(E_{min}, E_{max}) = \frac{N_0}{2} \left[ erf(\frac{E - \bar{E}}{\sqrt{2} \sigma})\right]_{E_{min}}^{E_{max}} + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range + """ # noqa: E501 + # kwargs are passed to this function but not used + # this is to get a consistent API with SpectralModel.integral() + u_min = ( + (energy_min - self.mean.quantity) / (np.sqrt(2) * self.sigma.quantity) + ).to_value("") + u_max = ( + (energy_max - self.mean.quantity) / (np.sqrt(2) * self.sigma.quantity) + ).to_value("") + + return ( + self.amplitude.quantity + / 2 + * (scipy.special.erf(u_max) - scipy.special.erf(u_min)) + )
+ + +
+[docs] + def energy_flux(self, energy_min, energy_max): + r"""Compute energy flux in given energy range analytically. + + .. math:: + G(E_{min}, E_{max}) = \frac{N_0 \sigma}{\sqrt{2*\pi}}* \left[ - \exp(\frac{E_{min}-\bar{E}}{\sqrt{2} \sigma}) + \right]_{E_{min}}^{E_{max}} + \frac{N_0 * \bar{E}}{2} \left[ erf(\frac{E - \bar{E}}{\sqrt{2} \sigma}) + \right]_{E_{min}}^{E_{max}} + + + Parameters + ---------- + energy_min, energy_max : `~astropy.units.Quantity` + Lower and upper bound of integration range. + """ # noqa: E501 + u_min = ( + (energy_min - self.mean.quantity) / (np.sqrt(2) * self.sigma.quantity) + ).to_value("") + u_max = ( + (energy_max - self.mean.quantity) / (np.sqrt(2) * self.sigma.quantity) + ).to_value("") + a = self.amplitude.quantity * self.sigma.quantity / np.sqrt(2 * np.pi) + b = self.amplitude.quantity * self.mean.quantity / 2 + return a * (np.exp(-(u_min**2)) - np.exp(-(u_max**2))) + b * ( + scipy.special.erf(u_max) - scipy.special.erf(u_min) + )
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/spectral_cosmic_ray.html b/docs/dev/_modules/gammapy/modeling/models/spectral_cosmic_ray.html new file mode 100644 index 00000000000..1e68d937a12 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/spectral_cosmic_ray.html @@ -0,0 +1,631 @@ + + + + + + + + + + gammapy.modeling.models.spectral_cosmic_ray — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.spectral_cosmic_ray

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Simple models for cosmic ray spectra at Earth.
+
+For measurements, the "Database of Charged Cosmic Rays (CRDB)" is a great resource:
+https://lpsc.in2p3.fr/crdb/
+"""
+import numpy as np
+from astropy import units as u
+from gammapy.modeling import Parameter
+from .spectral import PowerLawSpectralModel, SpectralModel
+
+__all__ = [
+    "create_cosmic_ray_spectral_model",
+]
+
+
+class _LogGaussianSpectralModel(SpectralModel):
+    r"""Log Gaussian spectral model with a weird parametrisation.
+
+    This should not be exposed to end-users as a Gammapy spectral model!
+    See Table 3 in https://ui.adsabs.harvard.edu/abs/2013APh....43..171B
+    """
+
+    L = Parameter("L", 1e-12 * u.Unit("cm-2 s-1"))
+    Ep = Parameter("Ep", 0.107 * u.TeV)
+    w = Parameter("w", 0.776)
+
+    @staticmethod
+    def evaluate(energy, L, Ep, w):
+        return (
+            L
+            / (energy * w * np.sqrt(2 * np.pi))
+            * np.exp(-((np.log(energy / Ep)) ** 2) / (2 * w**2))
+        )
+
+
+
+[docs] +def create_cosmic_ray_spectral_model(particle="proton"): + """Cosmic a cosmic ray spectral model at Earth. + + These are the spectra assumed in this CTAO study: + Table 3 in https://ui.adsabs.harvard.edu/abs/2013APh....43..171B + + The spectrum given is a differential flux ``dnde`` in units of + ``cm-2 s-1 TeV-1``, as the value integrated over the whole sky. + To get a surface brightness you need to compute + ``dnde / (4 * np.pi * u.sr)``. + To get the ``dnde`` in a region of solid angle ``omega``, you need + to compute ``dnde * omega / (4 * np.pi * u.sr)``. + + The hadronic spectra are simple power-laws, the electron spectrum + is the sum of a power law and a log-normal component to model the + "Fermi shoulder". + + Parameters + ---------- + particle : {'electron', 'proton', 'He', 'N', 'Si', 'Fe'}, optional + Particle type. Default is 'proton'. + + Returns + ------- + `~gammapy.modeling.models.SpectralModel` + Spectral model (for all-sky cosmic ray flux). + """ + omega = 4 * np.pi * u.sr + if particle == "proton": + return PowerLawSpectralModel( + amplitude=0.096 * u.Unit("1 / (m2 s TeV sr)") * omega, + index=2.70, + reference=1 * u.TeV, + ) + elif particle == "N": + return PowerLawSpectralModel( + amplitude=0.0719 * u.Unit("1 / (m2 s TeV sr)") * omega, + index=2.64, + reference=1 * u.TeV, + ) + elif particle == "Si": + return PowerLawSpectralModel( + amplitude=0.0284 * u.Unit("1 / (m2 s TeV sr)") * omega, + index=2.66, + reference=1 * u.TeV, + ) + elif particle == "Fe": + return PowerLawSpectralModel( + amplitude=0.0134 * u.Unit("1 / (m2 s TeV sr)") * omega, + index=2.63, + reference=1 * u.TeV, + ) + elif particle == "electron": + return PowerLawSpectralModel( + amplitude=6.85e-5 * u.Unit("1 / (m2 s TeV sr)") * omega, + index=3.21, + reference=1 * u.TeV, + ) + _LogGaussianSpectralModel(L=3.19e-3 * u.Unit("1 / (m2 s sr)") * omega) + else: + raise ValueError(f"Invalid particle: {particle!r}")
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/spectral_crab.html b/docs/dev/_modules/gammapy/modeling/models/spectral_crab.html new file mode 100644 index 00000000000..dd368d87ddd --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/spectral_crab.html @@ -0,0 +1,664 @@ + + + + + + + + + + gammapy.modeling.models.spectral_crab — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.spectral_crab

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from astropy import units as u
+from gammapy.modeling import Parameter
+from gammapy.utils.compat import COPY_IF_NEEDED
+from .spectral import (
+    ExpCutoffPowerLawSpectralModel,
+    LogParabolaSpectralModel,
+    PowerLawSpectralModel,
+    SpectralModel,
+)
+
+__all__ = [
+    "create_crab_spectral_model",
+    "MeyerCrabSpectralModel",
+]
+
+
+
+[docs] +class MeyerCrabSpectralModel(SpectralModel): + """Meyer 2010 log polynomial Crab spectral model. + + Reference: https://ui.adsabs.harvard.edu/abs/2010A%26A...523A...2M, Appendix D + """ + + norm = Parameter("norm", value=1, frozen=True) + coefficients = [-0.00449161, 0, 0.0473174, -0.179475, -0.53616, -10.2708] + +
+[docs] + @staticmethod + def evaluate(energy, norm): + """Evaluate the model.""" + polynomial = np.poly1d(MeyerCrabSpectralModel.coefficients) + log_energy = np.log10(energy.to_value("TeV")) + log_flux = polynomial(log_energy) + flux = u.Quantity(np.power(10, log_flux), "erg / (cm2 s)", copy=COPY_IF_NEEDED) + return norm * flux / energy**2
+
+ + + +
+[docs] +def create_crab_spectral_model(reference="meyer"): + """Create a Crab nebula reference spectral model. + + The Crab nebula is often used as a standard candle in gamma-ray astronomy. + Fluxes and sensitivities are often quoted relative to the Crab spectrum. + + The following references are available: + + * 'meyer', https://ui.adsabs.harvard.edu/abs/2010A%26A...523A...2M, Appendix D + * 'hegra', https://ui.adsabs.harvard.edu/abs/2000ApJ...539..317A + * 'hess_pl' and 'hess_ecpl': https://ui.adsabs.harvard.edu/abs/2006A%26A...457..899A + * 'magic_lp' and 'magic_ecpl': https://ui.adsabs.harvard.edu/abs/2015JHEAp...5...30A + + Parameters + ---------- + reference : {'meyer', 'hegra', 'hess_pl', 'hess_ecpl', 'magic_lp', 'magic_ecpl'}, optional + Which reference to use for the spectral model. Default is 'meyer'. + + Examples + -------- + Let's first import what we need:: + + >>> import astropy.units as u + >>> from gammapy.modeling.models import PowerLawSpectralModel, create_crab_spectral_model + + Plot the 'hess_ecpl' reference Crab spectrum between 1 TeV and 100 TeV:: + + >>> crab_hess_ecpl = create_crab_spectral_model('hess_ecpl') + >>> crab_hess_ecpl.plot([1, 100] * u.TeV) #doctest: +SKIP + + Use a reference crab spectrum as unit to measure a differential flux (at 10 TeV):: + + >>> pwl = PowerLawSpectralModel( + ... index=2.3, amplitude=1e-12 * u.Unit('1 / (cm2 s TeV)'), reference=1 * u.TeV + ... ) + >>> crab = create_crab_spectral_model('hess_pl') + >>> energy = 10 * u.TeV + >>> dnde_cu = (pwl(energy) / crab(energy)).to('%') + >>> print(dnde_cu) + 6.196991563774588 % + + And the same for integral fluxes (between 1 and 10 TeV):: + + >>> # compute integral flux in crab units + >>> emin, emax = [1, 10] * u.TeV + >>> flux_int_cu = (pwl.integral(emin, emax) / crab.integral(emin, emax)).to('%') + >>> print(flux_int_cu) + 3.535058216604496 % + """ + if reference == "meyer": + return MeyerCrabSpectralModel() + elif reference == "hegra": + return PowerLawSpectralModel( + amplitude=2.83e-11 * u.Unit("1 / (cm2 s TeV)"), + index=2.62, + reference=1 * u.TeV, + ) + elif reference == "hess_pl": + return PowerLawSpectralModel( + amplitude=3.45e-11 * u.Unit("1 / (cm2 s TeV)"), + index=2.63, + reference=1 * u.TeV, + ) + elif reference == "hess_ecpl": + return ExpCutoffPowerLawSpectralModel( + amplitude=3.76e-11 * u.Unit("1 / (cm2 s TeV)"), + index=2.39, + lambda_=1 / (14.3 * u.TeV), + reference=1 * u.TeV, + ) + elif reference == "magic_lp": + return LogParabolaSpectralModel( + amplitude=3.23e-11 * u.Unit("1 / (cm2 s TeV)"), + alpha=2.47, + beta=0.24 / np.log(10), + reference=1 * u.TeV, + ) + elif reference == "magic_ecpl": + return ExpCutoffPowerLawSpectralModel( + amplitude=3.80e-11 * u.Unit("1 / (cm2 s TeV)"), + index=2.21, + lambda_=1 / (6.0 * u.TeV), + reference=1 * u.TeV, + ) + else: + raise ValueError(f"Invalid reference: {reference!r}")
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/temporal.html b/docs/dev/_modules/gammapy/modeling/models/temporal.html new file mode 100644 index 00000000000..700ef4e77c7 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/temporal.html @@ -0,0 +1,1903 @@ + + + + + + + + + + gammapy.modeling.models.temporal — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.temporal

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Time-dependent models."""
+
+import logging
+import numpy as np
+import scipy.interpolate
+from astropy import units as u
+from astropy.io import fits
+from astropy.table import Table
+from astropy.time import Time
+from gammapy.maps import MapAxis, RegionNDMap, TimeMapAxis
+from astropy.utils import lazyproperty
+from gammapy.modeling import Parameter
+from gammapy.utils.compat import COPY_IF_NEEDED
+from gammapy.utils.random import InverseCDFSampler, get_random_state
+from gammapy.utils.scripts import make_path
+from gammapy.utils.time import time_ref_from_dict, time_ref_to_dict
+from .core import ModelBase, _build_parameters_from_dict
+
+__all__ = [
+    "ConstantTemporalModel",
+    "ExpDecayTemporalModel",
+    "GaussianTemporalModel",
+    "GeneralizedGaussianTemporalModel",
+    "LightCurveTemplateTemporalModel",
+    "LinearTemporalModel",
+    "PowerLawTemporalModel",
+    "SineTemporalModel",
+    "TemplatePhaseCurveTemporalModel",
+    "TemporalModel",
+]
+
+log = logging.getLogger(__name__)
+
+
+# TODO: make this a small ABC to define a uniform interface.
+
+[docs] +class TemporalModel(ModelBase): + """Temporal model base class. + + Evaluates on `~astropy.time.Time` objects. + """ + + _type = "temporal" + + def __init__(self, **kwargs): + scale = kwargs.pop("scale", "utc") + + if scale not in Time.SCALES: + raise ValueError( + f"{scale} is not a valid time scale. Choose from {Time.SCALES}" + ) + + self.scale = scale + super().__init__(**kwargs) + +
+[docs] + def __call__(self, time, energy=None): + """Evaluate model. + + Parameters + ---------- + time : `~astropy.time.Time` + Time object. + energy : `~astropy.units.Quantity`, optional + Energy. Default is None. + + Returns + ------- + values : `~astropy.units.Quantity` + Model values. + """ + kwargs = {par.name: par.quantity for par in self.parameters} + + if energy is not None: + kwargs["energy"] = energy + + time = Time(time, scale=self.scale).mjd * u.d + return self.evaluate(time, **kwargs)
+ + + @property + def type(self): + return self._type + + @property + def is_energy_dependent(self): + return False + + @property + def reference_time(self): + """Reference time in MJD.""" + return Time(self.t_ref.value, format="mjd", scale=self.scale) + + @reference_time.setter + def reference_time(self, t_ref): + """Reference time.""" + if not isinstance(t_ref, Time): + raise TypeError(f"{t_ref} is not a {Time} object") + self.t_ref.value = Time(t_ref, scale=self.scale).mjd + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serilisation.""" + data = super().to_dict(full_output) + data["temporal"]["scale"] = self.scale + return data
+ + +
+[docs] + @classmethod + def from_dict(cls, data, **kwargs): + """Create a temporal model from a dictionary. + + Parameters + ---------- + data : dict + Dictionary containing the model parameters. + **kwargs : dict + Keyword arguments passed to `~TemporalModel.from_parameters`. + """ + kwargs = kwargs or {} + temporal_data = data.get("temporal", data) + if "scale" in temporal_data: + kwargs["scale"] = temporal_data["scale"] + return super().from_dict(data, **kwargs)
+ + +
+[docs] + @staticmethod + def time_sum(t_min, t_max): + """Total time between t_min and t_max. + + Parameters + ---------- + t_min, t_max : `~astropy.time.Time` + Lower and upper bound of integration range. + + Returns + ------- + time_sum : `~astropy.time.TimeDelta` + Summed time in the intervals. + + """ + diff = t_max - t_min + return np.sum(diff).to(u.day)
+ + +
+[docs] + def plot(self, time_range, ax=None, n_points=100, **kwargs): + """ + Plot the temporal model. + + Parameters + ---------- + time_range : `~astropy.time.Time` + Times to plot the model. + ax : `~matplotlib.axes.Axes`, optional + Axis to plot on. + n_points : int + Number of bins to plot model. Default is 100. + **kwargs : dict + Keywords forwarded to `~matplotlib.pyplot.errorbar`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + time_min, time_max = time_range + time_axis = TimeMapAxis.from_time_bounds( + time_min=time_min, time_max=time_max, nbin=n_points + ) + + m = RegionNDMap.create(region=None, axes=[time_axis]) + kwargs.setdefault("marker", "None") + kwargs.setdefault("ls", "-") + kwargs.setdefault("xerr", None) + m.quantity = self(time_axis.time_mid).to(u.one) + ax = m.plot(ax=ax, **kwargs) + ax.set_ylabel("Norm / A.U.") + return ax
+ + +
+[docs] + def sample_time(self, n_events, t_min, t_max, t_delta="1 s", random_state=0): + """Sample arrival times of events. + + Parameters + ---------- + n_events : int + Number of events to sample. + t_min : `~astropy.time.Time` + Start time of the sampling. + t_max : `~astropy.time.Time` + Stop time of the sampling. + t_delta : `~astropy.units.Quantity`, optional + Time step used for sampling of the temporal model. Default is 1 s. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is 0. + + Returns + ------- + time : `~astropy.units.Quantity` + Array with times of the sampled events. + """ + t_min = Time(t_min, scale=self.scale) + t_max = Time(t_max, scale=self.scale) + t_delta = u.Quantity(t_delta) + random_state = get_random_state(random_state) + + ontime = (t_max - t_min).to("s") + n_step = (ontime / t_delta).to_value("").item() + t_step = ontime / n_step + + indices = np.arange(n_step + 1) + steps = indices * t_step + t = Time(t_min + steps, format="mjd") + + pdf = self(t) + + sampler = InverseCDFSampler(pdf=pdf, random_state=random_state) + time_pix = sampler.sample(n_events)[0] + time = np.interp(time_pix, indices, steps) + return t_min + time
+ + +
+[docs] + def integral(self, t_min, t_max, oversampling_factor=100, **kwargs): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min: `~astropy.time.Time` + Start times of observation. + t_max: `~astropy.time.Time` + Stop times of observation. + oversampling_factor : int, optional + Oversampling factor to be used for numerical integration. + Default is 100. + + Returns + ------- + norm : float + Integrated flux norm on the given time intervals. + """ + t_values, steps = np.linspace( + t_min.mjd, t_max.mjd, oversampling_factor, retstep=True, axis=-1 + ) + times = Time(t_values, format="mjd", scale=self.scale) + values = self(times) + integral = np.sum(values, axis=-1) * steps + return integral / self.time_sum(t_min, t_max).to_value("d")
+
+ + + +
+[docs] +class ConstantTemporalModel(TemporalModel): + """Constant temporal model. + + For more information see :ref:`constant-temporal-model`. + """ + + tag = ["ConstantTemporalModel", "const"] + +
+[docs] + @staticmethod + def evaluate(time): + """Evaluate at given times.""" + return np.ones(time.shape) * u.one
+ + +
+[docs] + def integral(self, t_min, t_max): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min : `~astropy.time.Time` + Start times of observation. + t_max : `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm : `~astropy.units.Quantity` + Integrated flux norm on the given time intervals. + """ + return (t_max - t_min) / self.time_sum(t_min, t_max)
+
+ + + +
+[docs] +class LinearTemporalModel(TemporalModel): + """Temporal model with a linear variation. + + For more information see :ref:`linear-temporal-model`. + + Parameters + ---------- + alpha : float + Constant term of the baseline flux. + Default is 1. + beta : `~astropy.units.Quantity` + Time variation coefficient of the flux. + Default is 0. + t_ref : `~astropy.units.Quantity` + The reference time in mjd. + Frozen per default, at 2000-01-01. + """ + + tag = ["LinearTemporalModel", "linear"] + + alpha = Parameter("alpha", 1.0, frozen=False) + beta = Parameter("beta", 0.0, unit="d-1", frozen=False) + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=True) + +
+[docs] + @staticmethod + def evaluate(time, alpha, beta, t_ref): + """Evaluate at given times.""" + return alpha + beta * (time - t_ref)
+ + +
+[docs] + def integral(self, t_min, t_max): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min : `~astropy.time.Time` + Start times of observation. + t_max : `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm : float + Integrated flux norm on the given time intervals. + """ + pars = self.parameters + alpha = pars["alpha"] + beta = pars["beta"].quantity + t_ref = self.reference_time + value = alpha * (t_max - t_min) + beta / 2.0 * ( + (t_max - t_ref) * (t_max - t_ref) - (t_min - t_ref) * (t_min - t_ref) + ) + return value / self.time_sum(t_min, t_max)
+
+ + + +
+[docs] +class ExpDecayTemporalModel(TemporalModel): + r"""Temporal model with an exponential decay. + + For more information see :ref:`expdecay-temporal-model`. + + Parameters + ---------- + t0 : `~astropy.units.Quantity` + Decay timescale. Default is 1 day. + t_ref : `~astropy.units.Quantity` + The reference time in mjd. Frozen per default, at 2000-01-01. + """ + + tag = ["ExpDecayTemporalModel", "exp-decay"] + + t0 = Parameter("t0", "1 d", frozen=False) + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=True) + +
+[docs] + @staticmethod + def evaluate(time, t0, t_ref): + """Evaluate at given times.""" + return np.exp(-(time - t_ref) / t0)
+ + +
+[docs] + def integral(self, t_min, t_max): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min : `~astropy.time.Time` + Start times of observation. + t_max : `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm : float + Integrated flux norm on the given time intervals. + """ + pars = self.parameters + t0 = pars["t0"].quantity + t_ref = self.reference_time + value = self.evaluate(t_max, t0, t_ref) - self.evaluate(t_min, t0, t_ref) + return -t0 * value / self.time_sum(t_min, t_max)
+
+ + + +
+[docs] +class GaussianTemporalModel(TemporalModel): + r"""A Gaussian temporal profile. + + For more information see :ref:`gaussian-temporal-model`. + + Parameters + ---------- + t_ref : `~astropy.units.Quantity` + The reference time in mjd at the peak. + Default is 2000-01-01. + sigma : `~astropy.units.Quantity` + Width of the gaussian profile. + Default is 1 day. + """ + + tag = ["GaussianTemporalModel", "gauss"] + + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=False) + sigma = Parameter("sigma", "1 d", frozen=False) + +
+[docs] + @staticmethod + def evaluate(time, t_ref, sigma): + return np.exp(-((time - t_ref) ** 2) / (2 * sigma**2))
+ + +
+[docs] + def integral(self, t_min, t_max, **kwargs): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min : `~astropy.time.Time` + Start times of observation. + t_max : `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm : float + Integrated flux norm on the given time intervals. + """ + pars = self.parameters + sigma = pars["sigma"].quantity + t_ref = self.reference_time + norm = np.sqrt(np.pi / 2) * sigma + + u_min = (t_min - t_ref) / (np.sqrt(2) * sigma) + u_max = (t_max - t_ref) / (np.sqrt(2) * sigma) + + integral = norm * (scipy.special.erf(u_max) - scipy.special.erf(u_min)) + return integral / self.time_sum(t_min, t_max)
+
+ + + +
+[docs] +class GeneralizedGaussianTemporalModel(TemporalModel): + r"""A generalized Gaussian temporal profile. + + For more information see :ref:`generalized-gaussian-temporal-model`. + + Parameters + ---------- + t_ref : `~astropy.units.Quantity` + The time of the pulse's maximum intensity. + Default is 2000-01-01. + t_rise : `~astropy.units.Quantity` + Rise time constant. + Default is 1 day. + t_decay : `~astropy.units.Quantity` + Decay time constant. + Default is 1 day. + eta : `~astropy.units.Quantity` + Inverse pulse sharpness -> higher values implies a more peaked pulse. + Default is 1/2. + + """ + + tag = ["GeneralizedGaussianTemporalModel", "gengauss"] + + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=False) + t_rise = Parameter("t_rise", "1d", frozen=False) + t_decay = Parameter("t_decay", "1d", frozen=False) + eta = Parameter("eta", 1 / 2, unit="", frozen=False) + +
+[docs] + @staticmethod + def evaluate(time, t_ref, t_rise, t_decay, eta): + val_rise = np.exp( + -0.5 + * (np.abs(u.Quantity(time - t_ref, "d")) ** (1 / eta)) + / (t_rise ** (1 / eta)) + ) + val_decay = np.exp( + -0.5 + * (np.abs(u.Quantity(time - t_ref, "d")) ** (1 / eta)) + / (t_decay ** (1 / eta)) + ) + val = np.where(time < t_ref, val_rise, val_decay) + return val
+
+ + + +
+[docs] +class LightCurveTemplateTemporalModel(TemporalModel): + """Temporal light curve model. + + The lightcurve is given at specific times (and optionally energies) as a ``norm`` + It can be serialised either as an astropy table or a `~gammapy.maps.RegionNDMap` + + The ``norm`` is supposed to be a unit-less multiplicative factor in the model, + to be multiplied with a spectral model. + + The model does linear interpolation for times between the given ``(time, energy, norm)`` + values. + + When the temporal model is energy-dependent, the default interpolation scheme is + linear with a log scale for the values. The interpolation method and scale values + can be changed with the ``method`` and ``values_scale`` arguments. + + For more information see :ref:`LightCurve-temporal-model`. + + Examples + -------- + Read an example light curve object: + + >>> from gammapy.modeling.models import LightCurveTemplateTemporalModel + >>> path = '$GAMMAPY_DATA/tests/models/light_curve/lightcrv_PKSB1222+216.fits' + >>> light_curve = LightCurveTemplateTemporalModel.read(path) + + Show basic information about the lightcurve: + + >>> print(light_curve) + LightCurveTemplateTemporalModel model summary: + Reference time: 59000.49919925926 MJD + Start time: 58999.99919925926 MJD + End time: 61862.99919925926 MJD + Norm min: 0.01551196351647377 + Norm max: 1.0 + + <BLANKLINE> + + Compute ``norm`` at a given time: + + >>> from astropy.time import Time + >>> t = Time(59001.195, format="mjd") + >>> light_curve.evaluate(t) + <Quantity [0.02288737]> + + Compute mean ``norm`` in a given time interval: + + >>> import astropy.units as u + >>> t_r = Time(59000.5, format='mjd') + >>> t_min = t_r + [1, 4, 8] * u.d + >>> t_max = t_r + [1.5, 6, 9] * u.d + >>> light_curve.integral(t_min, t_max) + <Quantity [0.00375698, 0.0143724 , 0.00688029]> + """ + + tag = ["LightCurveTemplateTemporalModel", "template"] + + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=True) + + def __init__(self, map, t_ref=None, filename=None, method=None, values_scale=None): + if (map.data < 0).any(): + log.warning("Map has negative values. Check and fix this!") + + self.map = map.copy() + super().__init__() + + if t_ref: + self.reference_time = t_ref + + self.filename = filename + + if method is None: + method = "linear" + + if values_scale is None: + if self.is_energy_dependent: + values_scale = "log" + else: + values_scale = "lin" + + self.method = method + self.values_scale = values_scale + + def __str__(self): + start_time = self.t_ref.quantity + self.map.geom.axes["time"].edges[0] + end_time = self.t_ref.quantity + self.map.geom.axes["time"].edges[-1] + norm_min = np.nanmin(self.map.data) + norm_max = np.nanmax(self.map.data) + + prnt = ( + f"{self.__class__.__name__} model summary:\n " + f"Reference time: {self.t_ref.value} MJD \n " + f"Start time: {start_time.value} MJD \n " + f"End time: {end_time.value} MJD \n " + f"Norm min: {norm_min} \n" + f"Norm max: {norm_max}" + ) + + if self.is_energy_dependent: + energy_min = self.map.geom.axes["energy"].center[0] + energy_max = self.map.geom.axes["energy"].center[-1] + prnt1 = f"Energy min: {energy_min} \n" f"Energy max: {energy_max} \n" + prnt = prnt + prnt1 + + return prnt + + @property + def is_energy_dependent(self): + """Whether the model is energy dependent.""" + return self.map.geom.has_energy_axis + +
+[docs] + @classmethod + def from_table(cls, table, filename=None): + """Create a template model from an astropy table. + + Parameters + ---------- + table : `~astropy.table.Table` + Table containing the template model. + filename : str, optional + Name of input file. Default is None. + + Returns + ------- + model : `LightCurveTemplateTemporalModel` + Light curve template model. + """ + columns = [_.lower() for _ in table.colnames] + if "time" not in columns: + raise ValueError("A TIME column is necessary") + + t_ref = time_ref_from_dict(table.meta, scale="utc") + nodes = table["TIME"] + + ax_unit = nodes.quantity.unit + + if not ax_unit.is_equivalent("d"): + try: + ax_unit = u.Unit(table.meta["TIMEUNIT"]) + except KeyError: + raise ValueError("Time unit not found in the table") + + time_axis = MapAxis.from_nodes(nodes=nodes, name="time", unit=ax_unit) + axes = [time_axis] + m = RegionNDMap.create(region=None, axes=axes, data=table["NORM"]) + + return cls(m, t_ref=t_ref, filename=filename)
+ + +
+[docs] + @classmethod + def read(cls, filename, format="table"): + """Read a template model. + + Parameters + ---------- + filename : str + Name of file to read. + format : {"table", "map"} + Format of the input file. + + Returns + ------- + model : `LightCurveTemplateTemporalModel` + Light curve template model. + """ + filename = str(make_path(filename)) + if format == "table": + table = Table.read(filename) + return cls.from_table(table, filename=filename) + + elif format == "map": + with fits.open(filename) as hdulist: + header = hdulist["SKYMAP_BANDS"].header + t_ref = time_ref_from_dict(header) + # TODO : Ugly hack to prevent creating a TimeMapAxis + # By default, MapAxis.from_table tries to create a + # TimeMapAxis, failing which, it creates a normal MapAxis. + # This ugly hack forces the fail. We need a normal Axis to + # have the evaluate method work + hdulist["SKYMAP_BANDS"].header.pop("MJDREFI") + m = RegionNDMap.from_hdulist(hdulist) + return cls(m, t_ref=t_ref, filename=filename) + + else: + raise ValueError( + f"Not a valid format: '{format}', choose from: {'table', 'map'}" + )
+ + +
+[docs] + def to_table(self): + """Convert model to an astropy table.""" + if self.is_energy_dependent: + raise NotImplementedError("Not supported for energy dependent models") + table = Table( + data=[self.map.geom.axes["time"].center, self.map.quantity], + names=["TIME", "NORM"], + meta=time_ref_to_dict(self.reference_time, scale=self.scale), + ) + return table
+ + +
+[docs] + def write(self, filename, format="table", overwrite=False): + """Write a model to disk as per the specified format. + + Parameters: + filename : str + Name of output file. + format : {"table" or "map"} + If format is "table", it is serialised as a `~astropy.table.Table`. + If "map", then it is serialised as a `~gammapy.maps.RegionNDMap`. + Default is "table". + overwrite : bool, optional + Overwrite existing file. Default is False. + """ + if self.filename is None: + raise IOError("Missing filename") + + if format == "table": + table = self.to_table() + table.write(filename, overwrite=overwrite) + elif format == "map": + # RegionNDMap.from_hdulist does not update the header + hdulist = self.map.to_hdulist() + hdulist["SKYMAP_BANDS"].header.update( + time_ref_to_dict(self.reference_time, scale=self.scale) + ) + hdulist.writeto(filename, overwrite=overwrite) + else: + raise ValueError("Not a valid format, choose from ['map', 'table']")
+ + +
+[docs] + def evaluate(self, time, t_ref=None, energy=None): + """Evaluate the model at given coordinates. + + Parameters + ---------- + time: `~astropy.time.Time` + Time. + t_ref: `~gammapy.modeling.Parameter`, optional + Reference time for the model. Default is None. + energy: `~astropy.units.Quantity`, optional + Energy. Default is None. + + Returns + ------- + values : `~astropy.units.Quantity` + Model values. + """ + if t_ref is None: + t_ref = self.reference_time + + t = (time - t_ref).to_value(self.map.geom.axes["time"].unit) + coords = {"time": t} + + if self.is_energy_dependent: + if energy is None: + energy = self.map.geom.axes["energy"].center + + coords["energy"] = energy.reshape(-1, 1) + + val = self.map.interp_by_coord( + coords, method=self.method, values_scale=self.values_scale + ) + val = np.clip(val, 0, a_max=None) + return u.Quantity(val, unit=self.map.unit, copy=COPY_IF_NEEDED)
+ + +
+[docs] + def integral(self, t_min, t_max, oversampling_factor=100, **kwargs): + if self.is_energy_dependent: + raise NotImplementedError( + "Integral not supported for energy dependent models" + ) + + return super().integral(t_min, t_max, oversampling_factor, **kwargs)
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + data = data["temporal"] + filename = data["filename"] + format = data.get("format", "table") + return cls.read(filename, format)
+ + + def _guess_format(self): + if self.is_energy_dependent: + format = "map" + else: + format = "table" + log.info("Inferred format: " + format) + return format + +
+[docs] + def to_dict(self, full_output=False, format=None): + """Create dictionary for YAML serialisation.""" + data = super().to_dict(full_output) + if format is None: + format = self._guess_format() + data["temporal"]["filename"] = self.filename + data["temporal"]["format"] = format + data["temporal"]["unit"] = str(self.map.unit) + return data
+ + +
+[docs] + def plot(self, time_range, ax=None, n_points=100, energy=None, **kwargs): + """ + Plot the temporal model. + + Parameters + ---------- + time_range : `~astropy.time.Time` + Times to plot the model. + ax : `~matplotlib.axes.Axes`, optional + Axis to plot on. Default is None. + n_points : int, optional + Number of bins to plot model. Default is 100. + energy : `~astropy.units.quantity`, optional + Energies to compute the model at for energy dependent models. Default is None. + **kwargs : dict + Keywords forwarded to `~matplotlib.pyplot.errorbar`. + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + if not self.is_energy_dependent: + super().plot(time_range=time_range, ax=ax, n_points=n_points, **kwargs) + else: + time_min, time_max = Time(time_range, scale=self.scale) + time_axis = TimeMapAxis.from_time_bounds( + time_min=time_min, time_max=time_max, nbin=n_points + ) + if energy is None: + energy_axis = self.map.geom.axes["energy"] + else: + energy_axis = MapAxis.from_nodes( + nodes=energy, name="energy", interp="log" + ) + + m = RegionNDMap.create(region=None, axes=[time_axis, energy_axis]) + kwargs.setdefault("marker", "None") + kwargs.setdefault("ls", "-") + m.quantity = self.evaluate( + time=time_axis.time_mid, energy=energy_axis.center + ) + ax = m.plot(axis_name="time", ax=ax, **kwargs) + ax.set_ylabel("Norm / A.U.") + + return ax, m
+
+ + + +
+[docs] +class PowerLawTemporalModel(TemporalModel): + """Temporal model with a Power Law decay. + + For more information see :ref:`powerlaw-temporal-model`. + + Parameters + ---------- + alpha : float + Decay time power. Default is 1. + t_ref: `~astropy.units.Quantity` + The reference time in mjd. + Frozen by default, at 2000-01-01. + t0: `~astropy.units.Quantity` + The scaling time in mjd. + Fixed by default, at 1 day. + """ + + tag = ["PowerLawTemporalModel", "powerlaw"] + + alpha = Parameter("alpha", 1.0, frozen=False) + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=True) + t0 = Parameter("t0", "1 d", frozen=True) + +
+[docs] + @staticmethod + def evaluate(time, alpha, t_ref, t0=1 * u.day): + """Evaluate at given times.""" + return np.power((time - t_ref) / t0, alpha)
+ + +
+[docs] + def integral(self, t_min, t_max): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min: `~astropy.time.Time` + Start times of observation. + t_max: `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm : float + Integrated flux norm on the given time intervals. + """ + pars = self.parameters + alpha = pars["alpha"].quantity + t0 = pars["t0"].quantity + t_ref = self.reference_time + if alpha != -1: + value = self.evaluate(t_max, alpha + 1.0, t_ref, t0) - self.evaluate( + t_min, alpha + 1.0, t_ref, t0 + ) + return t0 / (alpha + 1.0) * value / self.time_sum(t_min, t_max) + else: + value = np.log((t_max - t_ref) / (t_min - t_ref)) + return t0 * value / self.time_sum(t_min, t_max)
+
+ + + +
+[docs] +class SineTemporalModel(TemporalModel): + """Temporal model with a sinusoidal modulation. + + For more information see :ref:`sine-temporal-model`. + + Parameters + ---------- + amp : float + Amplitude of the sinusoidal function. + Default is 1. + t_ref: `~astropy.units.Quantity` + The reference time in mjd. + Default is 2000-01-01. + omega: `~astropy.units.Quantity` + Pulsation of the signal. + Default is 1 rad/day. + """ + + tag = ["SineTemporalModel", "sinus"] + + amp = Parameter("amp", 1.0, frozen=False) + omega = Parameter("omega", "1. rad/day", frozen=False) + _t_ref_default = Time("2000-01-01") + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=False) + +
+[docs] + @staticmethod + def evaluate(time, amp, omega, t_ref): + """Evaluate at given times.""" + return 1.0 + amp * np.sin(omega * (time - t_ref))
+ + +
+[docs] + def integral(self, t_min, t_max): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min: `~astropy.time.Time` + Start times of observation. + t_max: `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm : float + Integrated flux norm on the given time intervals. + """ + pars = self.parameters + omega = pars["omega"].quantity.to_value("rad/day") + amp = pars["amp"].value + t_ref = self.reference_time + + value = (t_max - t_min).to_value(u.day) - amp / omega * ( + np.sin(omega * (t_max - t_ref).to_value(u.day)) + - np.sin(omega * (t_min - t_ref).to_value(u.day)) + ) + return value / self.time_sum(t_min, t_max).to_value(u.day)
+
+ + + +
+[docs] +class TemplatePhaseCurveTemporalModel(TemporalModel): + """Temporal phase curve model. + + A timing solution is used to compute the phase corresponding to time and + a template phase curve is used to determine the associated ``norm``. + + The phasecurve is given as a table with columns ``phase`` and ``norm``. + + The ``norm`` is supposed to be a unit-less multiplicative factor in the model, + to be multiplied with a spectral model. + + The model does linear interpolation for times between the given ``(phase, norm)`` values. + + The implementation currently uses `scipy.interpolate. InterpolatedUnivariateSpline`, + using degree ``k=1`` to get linear interpolation. + This class also contains an ``integral`` method, making the computation of + mean fluxes for a given time interval a one-liner. + + Parameters + ---------- + table : `~astropy.table.Table` + A table with 'PHASE' vs 'NORM'. + filename : str + The name of the file containing the phase curve. + t_ref : `~astropy.units.Quantity` + The reference time in mjd. + Default is 48442.5 mjd. + phi_ref : `~astropy.units.Quantity` + The phase at reference time. + Default is 0. + f0 : `~astropy.units.Quantity` + The frequency at t_ref in s-1. + Default is 29.946923 s-1. + f1 : `~astropy.units.Quantity` + The frequency derivative at t_ref in s-2. + Default is 0 s-2. + f2 : `~astropy.units.Quantity` + The frequency second derivative at t_ref in s-3. + Default is 0 s-3. + """ + + tag = ["TemplatePhaseCurveTemporalModel", "template-phase"] + _t_ref_default = Time(48442.5, format="mjd") + _phi_ref_default = 0 + _f0_default = 29.946923 * u.s**-1 + _f1_default = 0 * u.s**-2 + _f2_default = 0 * u.s**-3 + + t_ref = Parameter("t_ref", _t_ref_default.mjd, unit="day", frozen=True) + phi_ref = Parameter("phi_ref", _phi_ref_default, unit="", frozen=True) + f0 = Parameter("f0", _f0_default, frozen=True) + f1 = Parameter("f1", _f1_default, frozen=True) + f2 = Parameter("f2", _f2_default, frozen=True) + + def __init__(self, table, filename=None, **kwargs): + self.table = self._normalise_table(table) + if filename is not None: + filename = str(make_path(filename)) + self.filename = filename + super().__init__(**kwargs) + + @staticmethod + def _normalise_table(table): + x = table["PHASE"].data + y = table["NORM"].data + + interpolator = scipy.interpolate.InterpolatedUnivariateSpline( + x, y, k=1, ext=2, bbox=[0.0, 1.0] + ) + + integral = interpolator.integral(0, 1) + + table["NORM"] *= 1 / integral + return table + +
+[docs] + @classmethod + def read( + cls, + path, + t_ref=_t_ref_default.mjd * u.d, + phi_ref=_phi_ref_default, + f0=_f0_default, + f1=_f1_default, + f2=_f2_default, + ): + """Read phasecurve model table from FITS file. + + Beware : this does **not** read parameters. + They will be set to defaults. + + Parameters + ---------- + path : str or `~pathlib.Path` + Filename with path. + """ + filename = str(make_path(path)) + + return cls( + Table.read(filename), + filename=filename, + t_ref=t_ref, + phi_ref=phi_ref, + f0=f0, + f1=f1, + f2=f2, + )
+ + + @staticmethod + def _time_to_phase(time, t_ref, phi_ref, f0, f1, f2): + """Convert time to phase given timing solution parameters. + + Parameters + ---------- + time : `~astropy.units.Quantity` + The time at which to compute the phase. + t_ref : `~astropy.units.Quantity` + The reference time in mjd. + phi_ref : `~astropy.units.Quantity` + The phase at reference time. + Default is 0. + f0 : `~astropy.units.Quantity` + The frequency at t_ref in s-1. + f1 : `~astropy.units.Quantity` + The frequency derivative at t_ref in s-2. + f2 : `~astropy.units.Quantity` + The frequency second derivative at t_ref in s-3. + + Returns + ------- + phase : float + Phase. + period_number : int + Number of period since t_ref. + """ + delta_t = time - t_ref + phase = ( + phi_ref + delta_t * (f0 + delta_t / 2.0 * (f1 + delta_t / 3 * f2)) + ).to_value("") + + period_number = np.floor(phase) + phase -= period_number + return phase, period_number + +
+[docs] + def write(self, path=None, overwrite=False): + if path is None: + path = self.filename + if path is None: + raise ValueError(f"filename is required for {self.tag}") + else: + self.filename = str(make_path(path)) + self.table.write(self.filename, overwrite=overwrite)
+ + + @lazyproperty + def _interpolator(self): + x = self.table["PHASE"].data + y = self.table["NORM"].data + + return scipy.interpolate.InterpolatedUnivariateSpline( + x, y, k=1, ext=2, bbox=[0.0, 1.0] + ) + +
+[docs] + def evaluate(self, time, t_ref, phi_ref, f0, f1, f2): + phase, _ = self._time_to_phase(time, t_ref, phi_ref, f0, f1, f2) + return self._interpolator(phase) * u.one
+ + +
+[docs] + def integral(self, t_min, t_max): + """Evaluate the integrated flux within the given time intervals. + + Parameters + ---------- + t_min: `~astropy.time.Time` + Start times of observation. + t_max: `~astropy.time.Time` + Stop times of observation. + + Returns + ------- + norm: The model integrated flux. + """ + kwargs = {par.name: par.quantity for par in self.parameters} + ph_min, n_min = self._time_to_phase(t_min.mjd * u.d, **kwargs) + ph_max, n_max = self._time_to_phase(t_max.mjd * u.d, **kwargs) + + # here we assume that the frequency does not change during the integration boundaries + delta_t = (t_min - self.reference_time).to(u.d) + frequency = self.f0.quantity + delta_t * ( + self.f1.quantity + delta_t * self.f2.quantity / 2 + ) + + # Compute integral of one phase + phase_integral = self._interpolator.antiderivative()( + 1 + ) - self._interpolator.antiderivative()(0) + # Multiply by the total number of phases + phase_integral *= n_max - n_min - 1 + + # Compute integrals before first full phase and after the last full phase + end_integral = self._interpolator.antiderivative()( + ph_max + ) - self._interpolator.antiderivative()(0) + start_integral = self._interpolator.antiderivative()( + 1 + ) - self._interpolator.antiderivative()(ph_min) + + # Divide by Jacobian (here we neglect variations of frequency during the integration period) + total = phase_integral + start_integral + end_integral + # Normalize by total integration time + n_period = (self.time_sum(t_min, t_max) * frequency).to("") + if int(n_period) == 0: + n_period = 1 + + integral_norm = total / n_period + + return integral_norm
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + params = _build_parameters_from_dict( + data["temporal"]["parameters"], cls.default_parameters + ) + filename = data["temporal"]["filename"] + kwargs = {par.name: par for par in params} + return cls.read(filename, **kwargs)
+ + +
+[docs] + def to_dict(self, full_output=False): + """Create dictionary for YAML serialisation.""" + model_dict = super().to_dict() + model_dict["temporal"]["filename"] = self.filename + return model_dict
+ + +
+[docs] + def plot_phasogram(self, ax=None, n_points=100, **kwargs): + """ + Plot phasogram of the phase model. + + Parameters + ---------- + ax : `~matplotlib.axes.Axes`, optional + Axis to plot on. Default is None. + n_points : int, optional + Number of bins to plot model. Default is 100. + **kwargs : dict + Keywords forwarded to `~matplotlib.pyplot.errorbar`. + + Returns + ------- + ax : `~matplotlib.axes.Axes`, optional + Matplotlib axes. + """ + phase_axis = MapAxis.from_bounds(0.0, 1, nbin=n_points, name="Phase", unit="") + + m = RegionNDMap.create(region=None, axes=[phase_axis]) + kwargs.setdefault("marker", "None") + kwargs.setdefault("ls", "-") + kwargs.setdefault("xerr", None) + m.quantity = self._interpolator(phase_axis.center) + ax = m.plot(ax=ax, **kwargs) + ax.set_ylabel("Norm / A.U.") + return ax
+ + +
+[docs] + def sample_time(self, n_events, t_min, t_max, t_delta="1 s", random_state=0): + """Sample arrival times of events. + + To fully cover the phase range, t_delta is the minimum between the input + and product of the period at 0.5*(t_min + t_max) and the table bin size. + + Parameters + ---------- + n_events : int + Number of events to sample. + t_min : `~astropy.time.Time` + Start time of the sampling. + t_max : `~astropy.time.Time` + Stop time of the sampling. + t_delta : `~astropy.units.Quantity` + Time step used for sampling of the temporal model. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + + Returns + ------- + time : `~astropy.units.Quantity` + Array with times of the sampled events. + """ + t_delta = u.Quantity(t_delta) + + # Determine period at the mid time + t_mid = Time(t_min, scale=self.scale) + 0.5 * (t_max - t_min) + delta_t = (t_mid - self.reference_time).to(u.d) + frequency = self.f0.quantity + delta_t * ( + self.f1.quantity + delta_t * self.f2.quantity / 2 + ) + period = 1 / frequency + + # Take minimum time delta between user input and the period divided by the number of rows in the model table + # this assumes that phase values are evenly spaced. + t_delta = np.minimum(period / len(self.table), t_delta) + + return super().sample_time(n_events, t_min, t_max, t_delta, random_state)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/models/utils.html b/docs/dev/_modules/gammapy/modeling/models/utils.html new file mode 100644 index 00000000000..bb0e425ad62 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/models/utils.html @@ -0,0 +1,652 @@ + + + + + + + + + + gammapy.modeling.models.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.models.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from astropy import units as u
+from astropy.coordinates import SkyCoord
+from astropy.io import fits
+from astropy.nddata import NoOverlapError
+from astropy.time import Time
+from regions import PointSkyRegion
+from gammapy.maps import HpxNDMap, Map, MapAxis, RegionNDMap
+from gammapy.maps.hpx.io import HPX_FITS_CONVENTIONS, HpxConv
+from gammapy.utils.scripts import make_path
+from gammapy.utils.time import time_ref_from_dict, time_ref_to_dict
+from . import LightCurveTemplateTemporalModel, Models, SkyModel, TemplateSpatialModel
+
+__all__ = ["read_hermes_cube"]
+
+
+def _template_model_from_cta_sdc(filename, t_ref=None):
+    """To create a `LightCurveTemplateTemporalModel` from the energy-dependent temporal model files of the cta-sdc1.
+
+    This format is subject to change.
+    """
+    filename = str(make_path(filename))
+    with fits.open(filename) as hdul:
+        frame = hdul[0].header.get("frame", "icrs")
+        position = SkyCoord(
+            hdul[0].header["LONG"] * u.deg, hdul[0].header["LAT"] * u.deg, frame=frame
+        )
+
+        energy_hdu = hdul["ENERGIES"]
+        energy_axis = MapAxis.from_nodes(
+            nodes=energy_hdu.data,
+            unit=energy_hdu.header["TUNIT1"],
+            name="energy",
+            interp="log",
+        )
+        time_hdu = hdul["TIMES"]
+        time_header = time_hdu.header
+
+        if t_ref is None:
+            t_ref = Time(55555.5, format="mjd", scale="tt")
+        time_header.update(time_ref_to_dict(t_ref, t_ref.scale))
+        time_min = time_hdu.data["Initial Time"]
+        time_max = time_hdu.data["Final Time"]
+        edges = np.append(time_min, time_max[-1]) * u.Unit(time_header["TUNIT1"])
+        data = hdul["SPECTRA"]
+
+        time_ref = time_ref_from_dict(time_header, scale=t_ref.scale)
+        time_axis = MapAxis.from_edges(edges=edges, name="time", interp="log")
+
+        reg_map = RegionNDMap.create(
+            region=PointSkyRegion(center=position),
+            axes=[energy_axis, time_axis],
+            data=np.array(list(data.data) * u.Unit(data.header["UNITS"])),
+        )
+    return LightCurveTemplateTemporalModel(reg_map, t_ref=time_ref, filename=filename)
+
+
+
+[docs] +def read_hermes_cube(filename): + """Read 3d templates produced with hermes.""" + # add hermes conventions to the list used by gammapy + hermes_conv = HpxConv( + convname="hermes-template", + colstring="TFLOAT", + hduname="xtension", + frame="COORDTYPE", + quantity_type="differential", + ) + HPX_FITS_CONVENTIONS["hermes-template"] = hermes_conv + + maps = [] + energy_nodes = [] + with fits.open(filename) as hdulist: + # cannot read directly in 3d with Map.read because BANDS HDU is missing + # https://gamma-astro-data-formats.readthedocs.io/en/v0.2/skymaps/index.html#bands-hdu + # so we have to loop over hdus and create the energy axis + for hdu in hdulist[1:]: + template = HpxNDMap.from_hdu(hdu, format="hermes-template") + # fix missing/incompatible infos + template._unit = u.Unit(hdu.header["TUNIT1"]) # .from_hdu expect "BUNIT" + if template.geom.frame == "G": + template._geom._frame = "galactic" + maps.append(template) + energy_nodes.append(hdu.header["ENERGY"]) # SI unit (see header comment) + # create energy axis and set unit + energy_nodes *= u.Joule + energy_nodes = energy_nodes.to("GeV") + axis = MapAxis( + energy_nodes, interp="log", name="energy_true", node_type="center", unit="GeV" + ) + return Map.from_stack(maps, axis=axis)
+ + + +def cutout_template_models(models, cutout_kwargs, datasets_names=None): + """Apply cutout to template models.""" + models_cut = Models() + if models is None: + return models_cut + for m in models: + if isinstance(m.spatial_model, TemplateSpatialModel): + try: + map_ = m.spatial_model.map.cutout(**cutout_kwargs) + except (NoOverlapError, ValueError): + continue + template_cut = TemplateSpatialModel( + map_, + normalize=m.spatial_model.normalize, + ) + model_cut = SkyModel( + spatial_model=template_cut, + spectral_model=m.spectral_model, + datasets_names=datasets_names, + ) + models_cut.append(model_cut) + else: + models_cut.append(m) + return models_cut +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/parameter.html b/docs/dev/_modules/gammapy/modeling/parameter.html new file mode 100644 index 00000000000..d7afca3ac9e --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/parameter.html @@ -0,0 +1,1505 @@ + + + + + + + + + + gammapy.modeling.parameter — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.parameter

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Model parameter classes."""
+
+import collections.abc
+import copy
+import html
+import itertools
+import logging
+import numpy as np
+from astropy import units as u
+from astropy.table import Table
+from gammapy.utils.interpolation import interpolation_scale
+
+__all__ = ["Parameter", "Parameters", "PriorParameter", "PriorParameters"]
+
+log = logging.getLogger(__name__)
+
+
+def _get_parameters_str(parameters):
+    str_ = ""
+
+    for par in parameters:
+        if par.name == "amplitude":
+            value_format, error_format = "{:10.2e}", "{:7.1e}"
+        else:
+            value_format, error_format = "{:10.3f}", "{:7.2f}"
+
+        line = "\t{:21} {:8}: " + value_format + "\t {} {:<12s}\n"
+
+        if par._link_label_io is not None:
+            name = par._link_label_io
+        else:
+            name = par.name
+
+        if par.frozen:
+            frozen, error = "(frozen)", "\t\t"
+        else:
+            frozen = ""
+            try:
+                error = "+/- " + error_format.format(par.error)
+            except AttributeError:
+                error = ""
+        str_ += line.format(name, frozen, par.value, error, par.unit)
+    return str_.expandtabs(tabsize=2)
+
+
+
+[docs] +class Parameter: + """A model parameter. + + Note that the parameter value has been split into + a factor and scale like this:: + + value = factor x scale + + Users should interact with the ``value``, ``quantity`` + or ``min`` and ``max`` properties and consider the fact + that there is a ``factor``` and ``scale`` an implementation detail. + + That was introduced for numerical stability in parameter and error + estimation methods, only in the Gammapy optimiser interface do we + interact with the ``factor``, ``factor_min`` and ``factor_max`` properties, + i.e. the optimiser "sees" the well-scaled problem. + + Parameters + ---------- + name : str + Name. + value : float or `~astropy.units.Quantity` + Value. + scale : float, optional + Scale (sometimes used in fitting). + unit : `~astropy.units.Unit` or str, optional + Unit. + min : float, optional + Minimum (sometimes used in fitting). + max : float, optional + Maximum (sometimes used in fitting). + frozen : bool, optional + Frozen (used in fitting). + error : float + Parameter error. + scan_min : float + Minimum value for the parameter scan. Overwrites scan_n_sigma. + scan_max : float + Minimum value for the parameter scan. Overwrites scan_n_sigma. + scan_n_values: int + Number of values to be used for the parameter scan. + scan_n_sigma : int + Number of sigmas to scan. + scan_values: `numpy.array` + Scan values. Overwrites all the scan keywords before. + scale_method : {'scale10', 'factor1', None} + Method used to set ``factor`` and ``scale``. + interp : {"lin", "sqrt", "log"} + Parameter scaling to use for the scan. + prior : `~gammapy.modeling.models.Prior` + Prior set on the parameter. + """ + + def __init__( + self, + name, + value, + unit="", + scale=1, + min=np.nan, + max=np.nan, + frozen=False, + error=0, + scan_min=None, + scan_max=None, + scan_n_values=11, + scan_n_sigma=2, + scan_values=None, + scale_method="scale10", + interp="lin", + prior=None, + ): + if not isinstance(name, str): + raise TypeError(f"Name must be string, got '{type(name)}' instead") + + self._name = name + self._link_label_io = None + self.scale = scale + self.min = min + self.max = max + self.frozen = frozen + self._error = error + self._type = None + + # TODO: move this to a setter method that can be called from `__set__` also! + # Having it here is bad: behaviour not clear if Quantity and `unit` is passed. + if isinstance(value, u.Quantity) or isinstance(value, str): + val = u.Quantity(value) + self.value = val.value + self.unit = val.unit + else: + self.value = float(value) + self.unit = unit + + self.scan_min = scan_min + self.scan_max = scan_max + self.scan_values = scan_values + self.scan_n_values = scan_n_values + self.scan_n_sigma = scan_n_sigma + self.interp = interp + self.scale_method = scale_method + self.prior = prior + + def __get__(self, instance, owner): + if instance is None: + return self + + par = instance.__dict__[self.name] + par._type = getattr(instance, "type", None) + return par + + def __set__(self, instance, value): + if isinstance(value, Parameter): + instance.__dict__[self.name] = value + else: + par = instance.__dict__[self.name] + raise TypeError(f"Cannot assign {value!r} to parameter {par!r}") + + def __set_name__(self, owner, name): + if not self._name == name: + raise ValueError(f"Expected parameter name '{name}', got {self._name}") + + @property + def prior(self): + """Prior applied to the parameter as a `~gammapy.modeling.models.Prior`.""" + return self._prior + + @prior.setter + def prior(self, value): + if value is not None: + from .models import Prior + + if isinstance(value, dict): + from .models import Model + + self._prior = Model.from_dict({"prior": value}) + elif isinstance(value, Prior): + self._prior = value + else: + raise TypeError(f"Invalid type: {value!r}") + else: + self._prior = value + +
+[docs] + def prior_stat_sum(self): + if self.prior is not None: + return self.prior(self)
+ + + @property + def type(self): + return self._type + + @property + def error(self): + return self._error + + @error.setter + def error(self, value): + self._error = float(u.Quantity(value, unit=self.unit).value) + + @property + def name(self): + """Name as a string.""" + return self._name + + @property + def factor(self): + """Factor as a float.""" + return self._factor + + @factor.setter + def factor(self, val): + self._factor = float(val) + + @property + def scale(self): + """Scale as a float.""" + return self._scale + + @scale.setter + def scale(self, val): + self._scale = float(val) + + @property + def unit(self): + """Unit as a `~astropy.units.Unit` object.""" + return self._unit + + @unit.setter + def unit(self, val): + self._unit = u.Unit(val) + + @property + def min(self): + """Minimum as a float.""" + return self._min + + @min.setter + def min(self, val): + """`~astropy.table.Table` has masked values for NaN. Replacing with NaN.""" + if isinstance(val, np.ma.core.MaskedConstant): + self._min = np.nan + else: + self._min = float(val) + + @property + def factor_min(self): + """Factor minimum as a float. + + This ``factor_min = min / scale`` is for the optimizer interface. + """ + return self.min / self.scale + + @property + def max(self): + """Maximum as a float.""" + return self._max + + @max.setter + def max(self, val): + """`~astropy.table.Table` has masked values for NaN. Replacing with NaN.""" + if isinstance(val, np.ma.core.MaskedConstant): + self._max = np.nan + else: + self._max = float(val) + + @property + def factor_max(self): + """Factor maximum as a float. + + This ``factor_max = max / scale`` is for the optimizer interface. + """ + return self.max / self.scale + + @property + def scale_method(self): + """Method used to set ``factor`` and ``scale``.""" + return self._scale_method + + @scale_method.setter + def scale_method(self, val): + if val not in ["scale10", "factor1"] and val is not None: + raise ValueError(f"Invalid method: {val}") + self._scale_method = val + + @property + def frozen(self): + """Frozen (used in fitting) (bool).""" + return self._frozen + + @frozen.setter + def frozen(self, val): + if val in ["True", "False"]: + val = bool(val) + if not isinstance(val, bool) and not isinstance(val, np.bool_): + raise TypeError(f"Invalid type: {val}, {type(val)}") + self._frozen = val + + @property + def value(self): + """Value = factor x scale (float).""" + return self._factor * self._scale + + @value.setter + def value(self, val): + self.factor = float(val) / self._scale + + @property + def quantity(self): + """Value times unit as a `~astropy.units.Quantity`.""" + return self.value * self.unit + + @quantity.setter + def quantity(self, val): + val = u.Quantity(val) + + if not val.unit.is_equivalent(self.unit): + raise u.UnitConversionError( + f"Unit must be equivalent to {self.unit} for parameter {self.name}" + ) + + self.value = val.value + self.unit = val.unit + + # TODO: possibly allow to set this independently + @property + def conf_min(self): + """Confidence minimum value as a `float`. + + Return parameter minimum if defined, otherwise return the scan_min. + """ + if not np.isnan(self.min): + return self.min + else: + return self.scan_min + + # TODO: possibly allow to set this independently + @property + def conf_max(self): + """Confidence maximum value as a `float`. + + Return parameter maximum if defined, otherwise return the scan_max. + """ + if not np.isnan(self.max): + return self.max + else: + return self.scan_max + + @property + def scan_min(self): + """Stat scan minimum.""" + if self._scan_min is None: + return self.value - self.error * self.scan_n_sigma + + return self._scan_min + + @property + def scan_max(self): + """Stat scan maximum.""" + if self._scan_max is None: + return self.value + self.error * self.scan_n_sigma + + return self._scan_max + + @scan_min.setter + def scan_min(self, value): + """Stat scan minimum setter.""" + self._scan_min = value + + @scan_max.setter + def scan_max(self, value): + """Stat scan maximum setter.""" + self._scan_max = value + + @property + def scan_n_sigma(self): + """Stat scan n sigma.""" + return self._scan_n_sigma + + @scan_n_sigma.setter + def scan_n_sigma(self, n_sigma): + """Stat scan n sigma.""" + self._scan_n_sigma = int(n_sigma) + + @property + def scan_values(self): + """Stat scan values as a `~numpy.ndarray`.""" + if self._scan_values is None: + scale = interpolation_scale(self.interp) + parmin, parmax = scale([self.scan_min, self.scan_max]) + values = np.linspace(parmin, parmax, self.scan_n_values) + return scale.inverse(values) + + return self._scan_values + + @scan_values.setter + def scan_values(self, values): + """Set scan values.""" + self._scan_values = values + +
+[docs] + def check_limits(self): + """Emit a warning or error if value is outside the minimum/maximum range.""" + if not self.frozen: + if (~np.isnan(self.min) and (self.value <= self.min)) or ( + ~np.isnan(self.max) and (self.value >= self.max) + ): + log.warning( + f"Value {self.value} is outside bounds [{self.min}, {self.max}]" + f" for parameter '{self.name}'" + )
+ + + def __repr__(self): + return ( + f"{self.__class__.__name__}(name={self.name!r}, value={self.value!r}, " + f"factor={self.factor!r}, scale={self.scale!r}, unit={self.unit!r}, " + f"min={self.min!r}, max={self.max!r}, frozen={self.frozen!r}, prior={self.prior!r}, id={hex(id(self))})" + ) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def copy(self): + """Deep copy.""" + return copy.deepcopy(self)
+ + +
+[docs] + def update_from_dict(self, data): + """Update parameters from a dictionary.""" + keys = ["value", "unit", "min", "max", "frozen", "prior"] + for k in keys: + if k == "prior" and data[k] == "": + data[k] = None + setattr(self, k, data[k])
+ + +
+[docs] + def to_dict(self): + """Convert to dictionary.""" + output = { + "name": self.name, + "value": self.value, + "unit": self.unit.to_string("fits"), + "error": self.error, + "min": self.min, + "max": self.max, + "frozen": self.frozen, + "interp": self.interp, + "scale_method": self.scale_method, + } + + if self._link_label_io is not None: + output["link"] = self._link_label_io + if self.prior is not None: + output["prior"] = self.prior.to_dict()["prior"] + return output
+ + +
+[docs] + def autoscale(self): + """Autoscale the parameters. + + Set ``factor`` and ``scale`` according to ``scale_method`` attribute. + + Available ``scale_method``. + + * ``scale10`` sets ``scale`` to power of 10, + so that abs(factor) is in the range 1 to 10 + * ``factor1`` sets ``factor, scale = 1, value`` + + In both cases the sign of value is stored in ``factor``, + i.e. the ``scale`` is always positive. + If ``scale_method`` is None the scaling is ignored. + + """ + if self.scale_method == "scale10": + value = self.value + if value != 0: + exponent = np.floor(np.log10(np.abs(value))) + scale = np.power(10.0, exponent) + self.factor = value / scale + self.scale = scale + + elif self.scale_method == "factor1": + self.factor, self.scale = 1, self.value
+
+ + + +
+[docs] +class Parameters(collections.abc.Sequence): + """Parameters container. + + - List of `Parameter` objects. + - Covariance matrix. + + Parameters + ---------- + parameters : list of `Parameter` + List of parameters. + """ + + def __init__(self, parameters=None): + if parameters is None: + parameters = [] + else: + parameters = list(parameters) + + self._parameters = parameters + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def check_limits(self): + """Check parameter limits and emit a warning.""" + for par in self: + par.check_limits()
+ + + @property + def prior(self): + return [par.prior for par in self] + +
+[docs] + def prior_stat_sum(self): + parameters_stat_sum = 0 + for par in self: + if par.prior is not None: + parameters_stat_sum += par.prior_stat_sum() + return parameters_stat_sum
+ + + @property + def types(self): + """Parameter types.""" + return [par.type for par in self] + + @property + def min(self): + """Parameter minima as a `numpy.ndarray`.""" + return np.array([_.min for _ in self._parameters], dtype=np.float64) + + @min.setter + def min(self, min_array): + """Parameter minima as a `numpy.ndarray`.""" + if not len(self) == len(min_array): + raise ValueError("Minima must have same length as parameter list") + + for min_, par in zip(min_array, self): + par.min = min_ + + @property + def max(self): + """Parameter maxima as a `numpy.ndarray`.""" + return np.array([_.max for _ in self._parameters], dtype=np.float64) + + @max.setter + def max(self, max_array): + """Parameter maxima as a `numpy.ndarray`.""" + if not len(self) == len(max_array): + raise ValueError("Maxima must have same length as parameter list") + + for max_, par in zip(max_array, self): + par.max = max_ + + @property + def value(self): + """Parameter values as a `numpy.ndarray`.""" + return np.array([_.value for _ in self._parameters], dtype=np.float64) + + @value.setter + def value(self, values): + """Parameter values as a `numpy.ndarray`.""" + if not len(self) == len(values): + raise ValueError("Values must have same length as parameter list") + + for value, par in zip(values, self): + par.value = value + +
+[docs] + @classmethod + def from_stack(cls, parameters_list): + """Create `Parameters` by stacking a list of other `Parameters` objects. + + Parameters + ---------- + parameters_list : list of `Parameters` + List of `Parameters` objects. + """ + pars = itertools.chain(*parameters_list) + return cls(pars)
+ + +
+[docs] + def copy(self): + """Deep copy.""" + return copy.deepcopy(self)
+ + + @property + def free_parameters(self): + """List of free parameters.""" + return self.__class__([par for par in self._parameters if not par.frozen]) + + @property + def unique_parameters(self): + """Unique parameters as a `Parameters` object.""" + return self.__class__(dict.fromkeys(self._parameters)) + + @property + def names(self): + """List of parameter names.""" + return [par.name for par in self._parameters] + +
+[docs] + def index(self, val): + """Get position index for a given parameter. + + The input can be a parameter object, parameter name (str) + or if a parameter index (int) is passed in, it is simply returned. + """ + if isinstance(val, int): + return val + elif isinstance(val, Parameter): + return self._parameters.index(val) + elif isinstance(val, str): + for idx, par in enumerate(self._parameters): + if val == par.name: + return idx + raise IndexError(f"No parameter: {val!r}") + else: + raise TypeError(f"Invalid type: {type(val)!r}")
+ + + def __getitem__(self, key): + """Access parameter by name, index or boolean mask.""" + if isinstance(key, np.ndarray) and key.dtype == bool: + return self.__class__(list(np.array(self._parameters)[key])) + else: + idx = self.index(key) + return self._parameters[idx] + + def __len__(self): + return len(self._parameters) + + def __add__(self, other): + if isinstance(other, Parameters): + return Parameters.from_stack([self, other]) + else: + raise TypeError(f"Invalid type: {other!r}") + +
+[docs] + def to_dict(self): + data = [] + + for par in self._parameters: + data.append(par.to_dict()) + + return data
+ + + @staticmethod + def _create_default_table(): + name_to_type = { + "type": "str", + "name": "str", + "value": "float", + "unit": "str", + "error": "float", + "min": "float", + "max": "float", + "frozen": "bool", + "link": "str", + "prior": "str", + } + return Table(names=name_to_type.keys(), dtype=name_to_type.values()) + +
+[docs] + def to_table(self): + """Convert parameter attributes to `~astropy.table.Table`.""" + table = self._create_default_table() + + for p in self._parameters: + d = {k: v for k, v in p.to_dict().items() if k in table.colnames} + if "prior" in d: + d["prior"] = d["prior"]["type"] + table.add_row(d) + + table["value"].format = ".4e" + for name in ["error", "min", "max"]: + table[name].format = ".3e" + + return table
+ + + def __eq__(self, other): + all_equal = np.all([p is p_new for p, p_new in zip(self, other)]) + return all_equal and len(self) == len(other) + +
+[docs] + @classmethod + def from_dict(cls, data): + parameters = [] + + for par in data: + link_label = par.pop("link", None) + par.pop("is_norm", None) + parameter = Parameter(**par) + parameter._link_label_io = link_label + parameters.append(parameter) + + return cls(parameters=parameters)
+ + +
+[docs] + def set_parameter_factors(self, factors): + """Set factor of all parameters. + + Used in the optimizer interface. + """ + idx = 0 + for parameter in self._parameters: + if not parameter.frozen: + parameter.factor = factors[idx] + idx += 1
+ + +
+[docs] + def autoscale(self): + """Autoscale all parameters. + + See :func:`~gammapy.modeling.Parameter.autoscale`. + + """ + for par in self._parameters: + par.autoscale()
+ + +
+[docs] + def select( + self, + name=None, + type=None, + frozen=None, + ): + """Create a mask of models, true if all conditions are verified. + + Parameters + ---------- + name : str or list, optional + Name of the parameter. Default is None. + type : {None, "spatial", "spectral", "temporal"} + Type of models. Default is None. + frozen : bool, optional + Select frozen parameters if True, exclude them if False. Default is None. + + Returns + ------- + parameters : `Parameters` + Selected parameters. + """ + selection = np.ones(len(self), dtype=bool) + + if name and not isinstance(name, list): + name = [name] + + for idx, par in enumerate(self): + if name: + selection[idx] &= np.any([_ == par.name for _ in name]) + + if type: + selection[idx] &= type == par.type + + if frozen is not None: + if frozen: + selection[idx] &= par.frozen + else: + selection[idx] &= ~par.frozen + + return self[selection]
+ + +
+[docs] + def freeze_all(self): + """Freeze all parameters.""" + for par in self._parameters: + par.frozen = True
+ + +
+[docs] + def unfreeze_all(self): + """Unfreeze all parameters (even those frozen by default).""" + for par in self._parameters: + par.frozen = False
+ + +
+[docs] + def restore_status(self, restore_values=True): + """Context manager to restore status. + + A copy of the values is made on enter, + and those values are restored on exit. + + Parameters + ---------- + restore_values : bool, optional + Restore values if True, otherwise restore only frozen status. Default is None. + + Examples + -------- + >>> from gammapy.modeling.models import PowerLawSpectralModel + >>> pwl = PowerLawSpectralModel(index=2) + >>> with pwl.parameters.restore_status(): + ... pwl.parameters["index"].value = 3 + >>> print(pwl.parameters["index"].value) # doctest: +SKIP + """ + return restore_parameters_status(self, restore_values)
+
+ + + +class restore_parameters_status: + def __init__(self, parameters, restore_values=True): + self.restore_values = restore_values + self._parameters = parameters + self.values = [_.value for _ in parameters] + self.frozen = [_.frozen for _ in parameters] + + def __enter__(self): + pass + + def __exit__(self, type, value, traceback): + for value, par, frozen in zip(self.values, self._parameters, self.frozen): + if self.restore_values: + par.value = value + par.frozen = frozen + + +
+[docs] +class PriorParameter(Parameter): + def __init__( + self, + name, + value, + unit="", + scale=1, + min=np.nan, + max=np.nan, + error=0, + ): + if not isinstance(name, str): + raise TypeError(f"Name must be string, got '{type(name)}' instead") + + self._name = name + self.scale = scale + self.min = min + self.max = max + self._error = error + if isinstance(value, u.Quantity) or isinstance(value, str): + val = u.Quantity(value) + self.value = val.value + self.unit = val.unit + else: + self.factor = value + self.unit = unit + self._type = "prior" + +
+[docs] + def to_dict(self): + """Convert to dictionary.""" + output = { + "name": self.name, + "value": self.value, + "unit": self.unit.to_string("fits"), + "error": self.error, + "min": self.min, + "max": self.max, + } + return output
+ + + def __repr__(self): + return ( + f"{self.__class__.__name__}(name={self.name!r}, value={self.value!r}, " + f"factor={self.factor!r}, scale={self.scale!r}, unit={self.unit!r}, " + f"min={self.min!r}, max={self.max!r})" + )
+ + + +
+[docs] +class PriorParameters(Parameters): + def __init__(self, parameters=None): + if parameters is None: + parameters = [] + else: + parameters = list(parameters) + + self._parameters = parameters + +
+[docs] + def to_table(self): + """Convert parameter attributes to `~astropy.table.Table`.""" + rows = [] + for p in self._parameters: + d = p.to_dict() + rows.append({**dict(type=p.type), **d}) + table = Table(rows) + + table["value"].format = ".4e" + for name in ["error", "min", "max"]: + table[name].format = ".3e" + + return table
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + parameters = [] + + for par in data: + parameter = PriorParameter(**par) + parameters.append(parameter) + + return cls(parameters=parameters)
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/scipy.html b/docs/dev/_modules/gammapy/modeling/scipy.html new file mode 100644 index 00000000000..16f66347e63 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/scipy.html @@ -0,0 +1,710 @@ + + + + + + + + + + gammapy.modeling.scipy — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.scipy

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import scipy.optimize
+from gammapy.utils.interpolation import interpolate_profile
+from gammapy.utils.roots import find_roots
+from .likelihood import Likelihood
+
+__all__ = [
+    "confidence_scipy",
+    "covariance_scipy",
+    "optimize_scipy",
+    "stat_profile_ul_scipy",
+]
+
+
+def optimize_scipy(parameters, function, store_trace=False, **kwargs):
+    method = kwargs.pop("method", "Nelder-Mead")
+    pars = [par.factor for par in parameters.free_parameters]
+
+    bounds = []
+
+    for par in parameters.free_parameters:
+        parmin = par.factor_min if not np.isnan(par.factor_min) else None
+        parmax = par.factor_max if not np.isnan(par.factor_max) else None
+        bounds.append((parmin, parmax))
+
+    likelihood = Likelihood(function, parameters, store_trace)
+    result = scipy.optimize.minimize(
+        likelihood.fcn, pars, bounds=bounds, method=method, **kwargs
+    )
+
+    factors = result.x
+    info = {
+        "success": result.success,
+        "message": result.message,
+        "nfev": result.nfev,
+        "trace": likelihood.trace,
+    }
+    optimizer = None
+
+    return factors, info, optimizer
+
+
+class TSDifference:
+    """Fit statistic function wrapper to compute TS differences."""
+
+    def __init__(self, function, parameters, parameter, reoptimize, ts_diff):
+        self.stat_null = function()
+        self.parameters = parameters
+        self.function = function
+        self.parameter = parameter
+        self.ts_diff = ts_diff
+        self.reoptimize = reoptimize
+
+    def fcn(self, factor):
+        self.parameter.factor = factor
+        if self.reoptimize:
+            self.parameter.frozen = True
+            optimize_scipy(self.parameters, self.function, method="L-BFGS-B")
+        value = self.function() - self.stat_null - self.ts_diff
+        return value
+
+
+def _confidence_scipy_brentq(
+    parameters, parameter, function, sigma, reoptimize, upper=True, **kwargs
+):
+
+    ts_diff = TSDifference(
+        function, parameters, parameter, reoptimize, ts_diff=sigma**2
+    )
+
+    lower_bound = parameter.factor
+
+    if upper:
+        upper_bound = parameter.conf_max / parameter.scale
+    else:
+        upper_bound = parameter.conf_min / parameter.scale
+
+    message, success = "Confidence terminated successfully.", True
+    kwargs.setdefault("nbin", 1)
+
+    roots, res = find_roots(
+        ts_diff.fcn, lower_bound=lower_bound, upper_bound=upper_bound, **kwargs
+    )
+    result = (roots[0], res[0])
+
+    if np.isnan(roots[0]):
+        message = (
+            "Confidence estimation failed. Try to set the parameter.min/max by hand."
+        )
+        success = False
+
+    suffix = "errp" if upper else "errn"
+
+    return {
+        "nfev_" + suffix: result[1].iterations,
+        suffix: np.abs(result[0] - lower_bound),
+        "success_" + suffix: success,
+        "message_" + suffix: message,
+        "stat_null": ts_diff.stat_null,
+    }
+
+
+def confidence_scipy(parameters, parameter, function, sigma, reoptimize=True, **kwargs):
+
+    if len(parameters.free_parameters) <= 1:
+        reoptimize = False
+
+    with parameters.restore_status():
+        result = _confidence_scipy_brentq(
+            parameters=parameters,
+            parameter=parameter,
+            function=function,
+            sigma=sigma,
+            upper=False,
+            reoptimize=reoptimize,
+            **kwargs,
+        )
+
+    with parameters.restore_status():
+        result_errp = _confidence_scipy_brentq(
+            parameters=parameters,
+            parameter=parameter,
+            function=function,
+            sigma=sigma,
+            upper=True,
+            reoptimize=reoptimize,
+            **kwargs,
+        )
+
+    result.update(result_errp)
+    return result
+
+
+# TODO: implement, e.g. with numdifftools.Hessian
+def covariance_scipy(parameters, function):
+    raise NotImplementedError
+
+
+
+[docs] +def stat_profile_ul_scipy( + value_scan, stat_scan, delta_ts=4, interp_scale="sqrt", **kwargs +): + """Compute upper limit of a parameter from a likelihood profile. + + Parameters + ---------- + value_scan : `~numpy.ndarray` + Array of parameter values. + stat_scan : `~numpy.ndarray` + Array of delta fit statistic values, with respect to the minimum. + delta_ts : float, optional + Difference in test statistics for the upper limit. Default is 4. + interp_scale : {"sqrt", "lin"}, optional + Interpolation scale applied to the fit statistic profile. If the profile is + of parabolic shape, a "sqrt" scaling is recommended. In other cases or + for fine sampled profiles a "lin" can also be used. Default is "sqrt". + **kwargs : dict + Keyword arguments passed to `~scipy.optimize.brentq`. + + Returns + ------- + ul : float + Upper limit value. + """ + interp = interpolate_profile(value_scan, stat_scan, interp_scale=interp_scale) + + def f(x): + return interp((x,)) - delta_ts + + idx = np.argmin(stat_scan) + norm_best_fit = value_scan[idx] + roots, res = find_roots( + f, lower_bound=norm_best_fit, upper_bound=value_scan[-1], nbin=1, **kwargs + ) + return roots[0]
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/modeling/selection.html b/docs/dev/_modules/gammapy/modeling/selection.html new file mode 100644 index 00000000000..766968cbbd5 --- /dev/null +++ b/docs/dev/_modules/gammapy/modeling/selection.html @@ -0,0 +1,794 @@ + + + + + + + + + + gammapy.modeling.selection — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.modeling.selection

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from gammapy.modeling import Fit, Parameter, Covariance
+from gammapy.stats.utils import sigma_to_ts
+from .fit import FitResult, OptimizeResult
+
+__all__ = ["select_nested_models"]
+
+
+class TestStatisticNested:
+    """Compute the test statistic (TS) between two nested hypothesis.
+
+    The null hypothesis is the minimal one, for which a set of parameters
+    are frozen to given values. The model is updated to the alternative hypothesis
+    if there is a significant improvement (larger than the given threshold).
+
+    Parameters
+    ----------
+    parameters : `~gammapy.modeling.Parameters` or list of `~gammapy.modeling.Parameter`
+        List of parameters frozen for the null hypothesis but free for the test hypothesis.
+    null_values : list of float or `~gammapy.modeling.Parameters`
+        Values of the parameters frozen for the null hypothesis.
+        If a `Parameters` object or a list of `Parameters` is given
+        the null hypothesis follows the values of these parameters,
+        so this tests linked parameters versus unliked.
+    n_sigma : float
+        Threshold in number of sigma to switch from the null hypothesis
+        to the alternative one. Default is 2.
+        The TS is converted to sigma assuming that the Wilk's theorem is verified.
+    n_free_parameters : int
+        Number of free parameters to consider between the two hypothesis
+        in order to estimate the `ts_threshold` from the `n_sigma` threshold.
+        Default is len(parameters).
+    fit : `Fit`
+        Fit instance specifying the backend and fit options.
+    """
+
+    __test__ = False
+
+    def __init__(
+        self, parameters, null_values, n_sigma=2, n_free_parameters=None, fit=None
+    ):
+        self.parameters = parameters
+        self.null_values = null_values
+        self.n_sigma = n_sigma
+
+        if n_free_parameters is None:
+            n_free_parameters = len(parameters)
+        self.n_free_parameters = n_free_parameters
+
+        if fit is None:
+            fit = Fit()
+            minuit_opts = {"tol": 0.1, "strategy": 1}
+            fit.backend = "minuit"
+            fit.optimize_opts = minuit_opts
+        self.fit = fit
+
+    @property
+    def ts_threshold(self):
+        """Threshold value in TS corresponding to `n_sigma`.
+
+        This assumes that the TS follows a chi squared distribution
+        with a number of degree of freedom equal to `n_free_parameters`.
+        """
+        return np.sign(self.n_sigma) * sigma_to_ts(self.n_sigma, self.n_free_parameters)
+
+    def ts_known_bkg(self, datasets):
+        """Perform the alternative hypothesis testing assuming known background (all parameters frozen).
+        This implicitly assumes that the non-null model is a good representation of the true model.
+        If the assumption is true the ts_known_bkg should tend to the ts_asimov (deviation would indicate a bad fit of the data).
+        Deviations between ts and frozen_ts can be used to identify potential sources of confusion depending on which parameters are let free for the ts computation
+         (for example considereing diffuse background or nearby source).
+        """
+        stat = datasets.stat_sum()
+        cache = self._apply_null_hypothesis(datasets)
+        stat_null = datasets.stat_sum()
+        self._restore_status(datasets, cache)
+        return stat_null - stat
+
+    def ts_asimov(self, datasets):
+        """Perform the alternative hypothesis testing in the Asimov dataset.
+        The Asimov dataset is defined by counts=npred such as the non-null model is the true model.
+        """
+        counts_cache = [d.counts for d in datasets]
+        for d in datasets:
+            d.counts = d.npred()
+
+        ts = self.ts_known_bkg(datasets)
+
+        for kd, d in enumerate(datasets):
+            d.counts = counts_cache[kd]
+        return ts
+
+    def ts(self, datasets):
+        """Perform the alternative hypothesis testing."""
+        return self.run(datasets, apply_selection=False)["ts"]
+
+    def run(self, datasets, apply_selection=True):
+        """Perform the alternative hypothesis testing and apply model selection.
+
+        Parameters
+        ----------
+        datasets : `~gammapy.datasets.Datasets`
+            Datasets.
+        apply_selection : bool
+            Apply or not the model selection. Default is True.
+
+        Returns
+        -------
+        result : dict
+            Dictionary with the TS of the best fit value compared to the null hypothesis
+            and fit results for the two hypotheses. Entries are:
+
+                * "ts" : fit statistic difference with null hypothesis
+                * "fit_results" : results for the best fit
+                * "fit_results_null" : fit results for the null hypothesis
+        """
+
+        for p in self.parameters:
+            p.frozen = False
+        fit_results = self.fit.run(datasets)
+        stat = datasets.stat_sum()
+
+        cache = self._apply_null_hypothesis(datasets)
+
+        if len(datasets.models.parameters.free_parameters) > 0:
+            fit_results_null = self.fit.run(datasets)
+        else:
+            fit_results_null = FitResult(
+                OptimizeResult(
+                    models=datasets.models.copy(),
+                    nfev=0,
+                    total_stat=datasets.stat_sum(),
+                    trace=None,
+                    backend=None,
+                    method=None,
+                    success=None,
+                    message=None,
+                )
+            )
+        stat_null = datasets.stat_sum()
+
+        ts = stat_null - stat
+        if not apply_selection or ts > self.ts_threshold:
+            # restore default model if preferred against null hypothesis or if selection is ignored
+            self._restore_status(datasets, cache)
+        return dict(
+            ts=ts,
+            fit_results=fit_results,
+            fit_results_null=fit_results_null,
+        )
+
+    def _apply_null_hypothesis(self, datasets):
+        cache = dict()
+        cache["object"] = [p.__dict__ for p in datasets.models.parameters]
+        cache["values"] = [p.value for p in datasets.models.parameters]
+        cache["error"] = [p.error for p in datasets.models.parameters]
+        for p, val in zip(self.parameters, self.null_values):
+            if isinstance(val, Parameter):
+                p.__dict__ = val.__dict__
+            else:
+                p.value = val
+                p.frozen = True
+        cache["covar"] = Covariance(
+            datasets.models.parameters, datasets.models.covariance.data
+        )
+        return cache
+
+    def _restore_status(self, datasets, cache):
+        """Restore parameters to given cached objects and values"""
+        for p in self.parameters:
+            p.frozen = False
+        for kp, p in enumerate(datasets.models.parameters):
+            p.__dict__ = cache["object"][kp]
+            p.value = cache["values"][kp]
+            p.error = cache["error"][kp]
+        datasets._covariance = cache["covar"]
+
+
+
+[docs] +def select_nested_models( + datasets, parameters, null_values, n_sigma=2, n_free_parameters=None, fit=None +): + """Compute the test statistic (TS) between two nested hypothesis. + + The null hypothesis is the minimal one, for which a set of parameters + are frozen to given values. The model is updated to the alternative hypothesis + if there is a significant improvement (larger than the given threshold). + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` + Datasets. + parameters : `~gammapy.modeling.Parameters` or list of `~gammapy.modeling.Parameter` + List of parameters frozen for the null hypothesis but free for the test hypothesis. + null_values : list of float or `~gammapy.modeling.Parameters` + Values of the parameters frozen for the null hypothesis. + If a `Parameters` object or a list of `Parameters` is given + the null hypothesis follows the values of these parameters, + so this tests linked parameters versus unliked. + n_sigma : float, optional + Threshold in number of sigma to switch from the null hypothesis + to the alternative one. Default is 2. + The TS is converted to sigma assuming that the Wilk's theorem is verified. + n_free_parameters : int, optional + Number of free parameters to consider between the two hypothesis + in order to estimate the `ts_threshold` from the `n_sigma` threshold. + Default is ``len(parameters)``. + fit : `Fit`, optional + Fit instance specifying the backend and fit options. Default is None, which utilises + the "minuit" backend with tol=0.1 and strategy=1. + + Returns + ------- + result : dict + Dictionary with the TS of the best fit value compared to the null hypothesis + and fit results for the two hypotheses. Entries are: + + * "ts" : fit statistic difference with null hypothesis + * "fit_results" : results for the best fit + * "fit_results_null" : fit results for the null hypothesis + + Examples + -------- + .. testcode:: + + from gammapy.modeling.selection import select_nested_models + from gammapy.datasets import Datasets, SpectrumDatasetOnOff + from gammapy.modeling.models import SkyModel + + # Test if cutoff is significant + dataset = SpectrumDatasetOnOff.read("$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs23523.fits") + datasets = Datasets(dataset) + model = SkyModel.create(spectral_model="ecpl", spatial_model="point", name='hess') + datasets.models = model + result = select_nested_models(datasets, + parameters=[model.spectral_model.lambda_], + null_values=[0], + ) + + # Test if source is significant + filename = "$GAMMAPY_DATA/fermi-3fhl-crab/Fermi-LAT-3FHL_datasets.yaml" + filename_models = "$GAMMAPY_DATA/fermi-3fhl-crab/Fermi-LAT-3FHL_models.yaml" + fermi_datasets = Datasets.read(filename=filename, filename_models=filename_models) + model = fermi_datasets.models["Crab Nebula"] + # Number of parameters previously fit for the source of interest + n_free_parameters = len(model.parameters.free_parameters) + # Freeze spatial parameters to ensure another weaker source does not move from its position + # to replace the source of interest during the null hypothesis test. + # (with all parameters free you test N vs. N+1 models and not the detection of a specific source.) + fermi_datasets.models.freeze(model_type='spatial') + results = select_nested_models(fermi_datasets, + parameters=[model.spectral_model.amplitude], + null_values=[0], + n_free_parameters=n_free_parameters, + n_sigma=4, + ) + """ + test = TestStatisticNested(parameters, null_values, n_sigma, n_free_parameters, fit) + return test.run(datasets)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/stats/counts_statistic.html b/docs/dev/_modules/gammapy/stats/counts_statistic.html new file mode 100644 index 00000000000..b1b2e226013 --- /dev/null +++ b/docs/dev/_modules/gammapy/stats/counts_statistic.html @@ -0,0 +1,1042 @@ + + + + + + + + + + gammapy.stats.counts_statistic — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.stats.counts_statistic

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import abc
+import html
+import numpy as np
+from scipy.special import lambertw
+from scipy.stats import chi2
+from gammapy.utils.roots import find_roots
+from .fit_statistics import cash, wstat
+
+__all__ = ["WStatCountsStatistic", "CashCountsStatistic"]
+
+
+class CountsStatistic(abc.ABC):
+    """Counts statistics base class."""
+
+    @property
+    @abc.abstractmethod
+    def stat_null(self):
+        pass
+
+    @property
+    @abc.abstractmethod
+    def stat_max(self):
+        pass
+
+    @property
+    @abc.abstractmethod
+    def n_sig(self):
+        pass
+
+    @property
+    @abc.abstractmethod
+    def n_bkg(self):
+        pass
+
+    @property
+    @abc.abstractmethod
+    def error(self):
+        pass
+
+    @abc.abstractmethod
+    def _stat_fcn(self):
+        pass
+
+    @property
+    def ts(self):
+        """Return stat difference (TS) of measured excess versus no excess."""
+        # Remove (small) negative TS due to error in root finding
+        ts = np.clip(self.stat_null - self.stat_max, 0, None)
+        return ts
+
+    @property
+    def sqrt_ts(self):
+        """Return statistical significance of measured excess.
+
+        The sign of the excess is applied to distinguish positive and negative fluctuations.
+        """
+        return np.sign(self.n_sig) * np.sqrt(self.ts)
+
+    @property
+    def p_value(self):
+        """Return p_value of measured excess.
+
+        Here the value accounts only for the positive excess significance (i.e. one-sided).
+        """
+        return 0.5 * chi2.sf(self.ts, 1)
+
+    def __str__(self):
+        str_ = "\t{:32}: {{n_on:.2f}} \n".format("Total counts")
+        str_ += "\t{:32}: {{background:.2f}}\n".format("Total background counts")
+        str_ += "\t{:32}: {{excess:.2f}}\n".format("Total excess counts")
+        str_ += "\t{:32}: {{significance:.2f}}\n".format("Total significance")
+        str_ += "\t{:32}: {{p_value:.3f}}\n".format("p - value")
+        str_ += "\t{:32}: {{n_bins:.0f}}\n".format("Total number of bins")
+        info = self.info_dict()
+        info["n_bins"] = np.array(self.n_on).size
+        str_ = str_.format(**info)
+
+        return str_.expandtabs(tabsize=2)
+
+    def _repr_html_(self):
+        try:
+            return self.to_html()
+        except AttributeError:
+            return f"<pre>{html.escape(str(self))}</pre>"
+
+    def info_dict(self):
+        """A dictionary of the relevant quantities.
+
+        Returns
+        -------
+        info_dict : dict
+            Dictionary with summary information.
+        """
+        info_dict = {}
+        info_dict["n_on"] = self.n_on
+        info_dict["background"] = self.n_bkg
+        info_dict["excess"] = self.n_sig
+        info_dict["significance"] = self.sqrt_ts
+        info_dict["p_value"] = self.p_value
+        return info_dict
+
+    def compute_errn(self, n_sigma=1.0):
+        """Compute downward excess uncertainties.
+
+        Searches the signal value for which the test statistics is n_sigma**2 away from the maximum.
+
+        Parameters
+        ----------
+        n_sigma : float
+            Confidence level of the uncertainty expressed in number of sigma. Default is 1.
+        """
+        errn = np.zeros_like(self.n_sig, dtype="float")
+        min_range = self.n_sig - 2 * n_sigma * (self.error + 1)
+
+        it = np.nditer(errn, flags=["multi_index"])
+        while not it.finished:
+            roots, res = find_roots(
+                self._stat_fcn,
+                min_range[it.multi_index],
+                self.n_sig[it.multi_index],
+                nbin=1,
+                args=(self.stat_max[it.multi_index] + n_sigma**2, it.multi_index),
+            )
+            if np.isnan(roots[0]):
+                errn[it.multi_index] = self.n_on[it.multi_index]
+            else:
+                errn[it.multi_index] = self.n_sig[it.multi_index] - roots[0]
+            it.iternext()
+
+        return errn
+
+    def compute_errp(self, n_sigma=1):
+        """Compute upward excess uncertainties.
+
+        Searches the signal value for which the test statistics is n_sigma**2 away from the maximum.
+
+        Parameters
+        ----------
+        n_sigma : float
+            Confidence level of the uncertainty expressed in number of sigma. Default is 1.
+        """
+        errp = np.zeros_like(self.n_on, dtype="float")
+        max_range = self.n_sig + 2 * n_sigma * (self.error + 1)
+
+        it = np.nditer(errp, flags=["multi_index"])
+        while not it.finished:
+            roots, res = find_roots(
+                self._stat_fcn,
+                self.n_sig[it.multi_index],
+                max_range[it.multi_index],
+                nbin=1,
+                args=(self.stat_max[it.multi_index] + n_sigma**2, it.multi_index),
+            )
+            errp[it.multi_index] = roots[0]
+            it.iternext()
+
+        return errp - self.n_sig
+
+    def compute_upper_limit(self, n_sigma=3):
+        """Compute upper limit on the signal.
+
+        Searches the signal value for which the test statistics is n_sigma**2 away from the maximum
+        or from 0 if the measured excess is negative.
+
+        Parameters
+        ----------
+        n_sigma : float
+            Confidence level of the upper limit expressed in number of sigma. Default is 3.
+        """
+        ul = np.zeros_like(self.n_on, dtype="float")
+
+        min_range = self.n_sig
+        max_range = min_range + 2 * n_sigma * (self.error + 1)
+        it = np.nditer(ul, flags=["multi_index"])
+
+        while not it.finished:
+            ts_ref = self._stat_fcn(min_range[it.multi_index], 0.0, it.multi_index)
+
+            roots, res = find_roots(
+                self._stat_fcn,
+                min_range[it.multi_index],
+                max_range[it.multi_index],
+                nbin=1,
+                args=(ts_ref + n_sigma**2, it.multi_index),
+            )
+            ul[it.multi_index] = roots[0]
+            it.iternext()
+        return ul
+
+    @abc.abstractmethod
+    def _n_sig_matching_significance_fcn(self):
+        pass
+
+    def n_sig_matching_significance(self, significance):
+        """Compute excess matching a given significance.
+
+        This function is the inverse of `significance`.
+
+        Parameters
+        ----------
+        significance : float
+            Significance.
+
+        Returns
+        -------
+        n_sig : `numpy.ndarray`
+            Excess.
+        """
+        n_sig = np.zeros_like(self.n_bkg, dtype="float")
+        it = np.nditer(n_sig, flags=["multi_index"])
+
+        while not it.finished:
+            lower_bound = np.sqrt(self.n_bkg[it.multi_index]) * significance
+            # find upper bounds for secant method as in scipy
+            eps = 1e-4
+            upper_bound = lower_bound * (1 + eps)
+            upper_bound += eps if upper_bound >= 0 else -eps
+            roots, res = find_roots(
+                self._n_sig_matching_significance_fcn,
+                lower_bound=lower_bound,
+                upper_bound=upper_bound,
+                args=(significance, it.multi_index),
+                nbin=1,
+                method="secant",
+            )
+            n_sig[it.multi_index] = roots[0]  # return NaN if fail
+            it.iternext()
+        return n_sig
+
+    @abc.abstractmethod
+    def sum(self, axis=None):
+        """Return summed CountsStatistics.
+
+        Parameters
+        ----------
+        axis : None or int or tuple of ints, optional
+             Axis or axes on which to perform the summation.
+             Default, axis=None, will perform the sum over the whole array.
+
+        Returns
+        -------
+        stat : `~gammapy.stats.CountsStatistics`
+             The summed stat object.
+        """
+        pass
+
+
+
+[docs] +class CashCountsStatistic(CountsStatistic): + """Class to compute statistics for Poisson distributed variable with known background. + + Parameters + ---------- + n_on : int + Measured counts. + mu_bkg : float + Known level of background. + """ + + def __init__(self, n_on, mu_bkg): + self.n_on = np.asanyarray(n_on) + self.mu_bkg = np.asanyarray(mu_bkg) + + @property + def n_bkg(self): + """Expected background counts.""" + return self.mu_bkg + + @property + def n_sig(self): + """Excess.""" + return self.n_on - self.n_bkg + + @property + def error(self): + """Approximate error from the covariance matrix.""" + return np.sqrt(self.n_on) + + @property + def stat_null(self): + """Stat value for null hypothesis, i.e. 0 expected signal counts.""" + return cash(self.n_on, self.mu_bkg + 0) + + @property + def stat_max(self): + """Stat value for best fit hypothesis, i.e. expected signal mu = n_on - mu_bkg.""" + return cash(self.n_on, self.n_on) + +
+[docs] + def info_dict(self): + """A dictionary of the relevant quantities. + + Returns + ------- + info_dict : dict + Dictionary with summary info. + """ + info_dict = super().info_dict() + info_dict["mu_bkg"] = self.mu_bkg + return info_dict
+ + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += super().__str__() + str_ += "\t{:32}: {:.2f} \n".format( + "Predicted background counts", self.info_dict()["mu_bkg"] + ) + return str_.expandtabs(tabsize=2) + + def _stat_fcn(self, mu, delta=0, index=None): + return cash(self.n_on[index], self.mu_bkg[index] + mu) - delta + + def _n_sig_matching_significance_fcn(self, n_sig, significance, index): + TS0 = cash(n_sig + self.mu_bkg[index], self.mu_bkg[index]) + TS1 = cash(n_sig + self.mu_bkg[index], self.mu_bkg[index] + n_sig) + return np.sign(n_sig) * np.sqrt(np.clip(TS0 - TS1, 0, None)) - significance + +
+[docs] + def sum(self, axis=None): + n_on = self.n_on.sum(axis=axis) + bkg = self.n_bkg.sum(axis=axis) + return CashCountsStatistic(n_on=n_on, mu_bkg=bkg)
+ + + def __getitem__(self, key): + return CashCountsStatistic(n_on=self.n_on[key], mu_bkg=self.n_bkg[key]) + +
+[docs] + def compute_errn(self, n_sigma=1.0): + result = np.zeros_like(self.n_on, dtype="float") + c = n_sigma**2 / 2 + mask = self.n_on > 0 + on = self.n_on[mask] + result[mask] = on * (lambertw(-np.exp(-c / on - 1), k=0).real + 1) + result[~mask] = 0 + return result
+ + +
+[docs] + def compute_errp(self, n_sigma=1.0): + result = np.zeros_like(self.n_on, dtype="float") + c = n_sigma**2 / 2 + mask = self.n_on > 0 + + on = self.n_on[mask] + result[mask] = -on * (lambertw(-np.exp(-c / on - 1), k=-1).real + 1) + result[~mask] = c + return result
+ + +
+[docs] + def compute_upper_limit(self, n_sigma=3): + result = np.zeros_like(self.n_on, dtype="float") + c = n_sigma**2 / 2 + mask = self.n_on > 0 + + on = self.n_on[mask] + result[mask] = ( + -on * (lambertw(-np.exp(-c / on - 1), k=-1).real + 1) + self.n_sig[mask] + ) + + result[~mask] = c + return result
+ + +
+[docs] + def n_sig_matching_significance(self, significance): + result = np.zeros_like(self.mu_bkg, dtype="float") + c = significance**2 / 2 + mask = self.mu_bkg > 0 + + bkg = self.mu_bkg[mask] + branch = 0 if significance > 0 else -1 + res = lambertw((c / bkg - 1) / np.exp(1), k=branch).real + result[mask] = bkg * (np.exp(res + 1) - 1) + result[~mask] = np.nan + return result
+
+ + + +
+[docs] +class WStatCountsStatistic(CountsStatistic): + """Class to compute statistics for Poisson distributed variable with unknown background. + + Parameters + ---------- + n_on : int + Measured counts in on region. + n_off : int + Measured counts in off region. + alpha : float + Acceptance ratio of on and off measurements. + mu_sig : float + Expected signal counts in on region. + """ + + def __init__(self, n_on, n_off, alpha, mu_sig=None): + self.n_on = np.asanyarray(n_on) + self.n_off = np.asanyarray(n_off) + self.alpha = np.asanyarray(alpha) + + if mu_sig is None: + self.mu_sig = np.zeros_like(self.n_on) + else: + self.mu_sig = np.asanyarray(mu_sig) + + @property + def n_bkg(self): + """Known background computed alpha * n_off.""" + return self.alpha * self.n_off + + @property + def n_sig(self): + """Excess.""" + return self.n_on - self.n_bkg - self.mu_sig + + @property + def error(self): + """Approximate error from the covariance matrix.""" + return np.sqrt(self.n_on + self.alpha**2 * self.n_off) + + @property + def stat_null(self): + """Stat value for null hypothesis, i.e. mu_sig expected signal counts.""" + return wstat(self.n_on, self.n_off, self.alpha, self.mu_sig) + + @property + def stat_max(self): + """Stat value for best fit hypothesis. + + i.e. expected signal mu = n_on - alpha * n_off - mu_sig. + """ + return wstat(self.n_on, self.n_off, self.alpha, self.n_sig + self.mu_sig) + +
+[docs] + def info_dict(self): + """A dictionary of the relevant quantities. + + Returns + ------- + info_dict : dict + Dictionary with summary info. + """ + info_dict = super().info_dict() + info_dict["n_off"] = self.n_off + info_dict["alpha"] = self.alpha + info_dict["mu_sig"] = self.mu_sig + return info_dict
+ + + def __str__(self): + str_ = f"{self.__class__.__name__}\n" + str_ += super().__str__() + info_dict = self.info_dict() + str_ += "\t{:32}: {:.2f} \n".format("Off counts", info_dict["n_off"]) + str_ += "\t{:32}: {:.2f} \n".format("alpha ", info_dict["alpha"]) + str_ += "\t{:32}: {:.2f} \n".format( + "Predicted signal counts", info_dict["mu_sig"] + ) + return str_.expandtabs(tabsize=2) + + def _stat_fcn(self, mu, delta=0, index=None): + return ( + wstat( + self.n_on[index], + self.n_off[index], + self.alpha[index], + (mu + self.mu_sig[index]), + ) + - delta + ) + + def _n_sig_matching_significance_fcn(self, n_sig, significance, index): + stat0 = wstat( + n_sig + self.n_bkg[index], self.n_off[index], self.alpha[index], 0 + ) + stat1 = wstat( + n_sig + self.n_bkg[index], + self.n_off[index], + self.alpha[index], + n_sig, + ) + return np.sign(n_sig) * np.sqrt(np.clip(stat0 - stat1, 0, None)) - significance + +
+[docs] + def sum(self, axis=None): + n_on = self.n_on.sum(axis=axis) + n_off = self.n_off.sum(axis=axis) + alpha = self.n_bkg.sum(axis=axis) / n_off + return WStatCountsStatistic(n_on=n_on, n_off=n_off, alpha=alpha)
+ + + def __getitem__(self, key): + return WStatCountsStatistic( + n_on=self.n_on[key], n_off=self.n_off[key], alpha=self.alpha[key] + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/stats/fit_statistics.html b/docs/dev/_modules/gammapy/stats/fit_statistics.html new file mode 100644 index 00000000000..43bea39d28f --- /dev/null +++ b/docs/dev/_modules/gammapy/stats/fit_statistics.html @@ -0,0 +1,777 @@ + + + + + + + + + + gammapy.stats.fit_statistics — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.stats.fit_statistics

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Common fit statistics used in gamma-ray astronomy.
+
+see :ref:`fit-statistics`
+"""
+
+import numpy as np
+from gammapy.stats.fit_statistics_cython import TRUNCATION_VALUE
+
+__all__ = ["cash", "cstat", "wstat", "get_wstat_mu_bkg", "get_wstat_gof_terms"]
+
+
+
+[docs] +def cash(n_on, mu_on, truncation_value=TRUNCATION_VALUE): + r"""Cash statistic, for Poisson data. + + The Cash statistic is defined as: + + .. math:: + C = 2 \left( \mu_{on} - n_{on} \log \mu_{on} \right) + + and :math:`C = 0` where :math:`\mu <= 0`. + For more information see :ref:`fit-statistics`. + + Parameters + ---------- + n_on : `~numpy.ndarray` or array_like + Observed counts. + mu_on : `~numpy.ndarray` or array_like + Expected counts. + truncation_value : `~numpy.ndarray` or array_like + Minimum value use for ``mu_on`` + ``mu_on`` = ``truncation_value`` where ``mu_on`` <= ``truncation_value``. + Default is 1e-25. + + Returns + ------- + stat : ndarray + Statistic per bin. + + References + ---------- + * `Sherpa statistics page section on the Cash statistic: + <http://cxc.cfa.harvard.edu/sherpa/statistics/#cash>`_ + * `Sherpa help page on the Cash statistic: + <http://cxc.harvard.edu/sherpa/ahelp/cash.html>`_ + * `Cash 1979, ApJ 228, 939, + <https://ui.adsabs.harvard.edu/abs/1979ApJ...228..939C>`_ + """ + n_on = np.asanyarray(n_on) + mu_on = np.asanyarray(mu_on) + truncation_value = np.asanyarray(truncation_value) + if np.any(truncation_value) <= 0: + raise ValueError("Cash statistic truncation value must be positive.") + + mu_on = np.where(mu_on <= truncation_value, truncation_value, mu_on) + + # suppress zero division warnings, they are corrected below + with np.errstate(divide="ignore", invalid="ignore"): + stat = 2 * (mu_on - n_on * np.log(mu_on)) + return stat
+ + + +
+[docs] +def cstat(n_on, mu_on, truncation_value=TRUNCATION_VALUE): + r"""C statistic, for Poisson data. + + The C statistic is defined as: + + .. math:: + C = 2 \left[ \mu_{on} - n_{on} + n_{on} + (\log(n_{on}) - log(\mu_{on}) \right] + + and :math:`C = 0` where :math:`\mu_{on} <= 0`. + + ``truncation_value`` handles the case where ``n_on`` or ``mu_on`` is 0 or less and + the log cannot be taken. + For more information see :ref:`fit-statistics`. + + Parameters + ---------- + n_on : `~numpy.ndarray` or array_like + Observed counts. + mu_on : `~numpy.ndarray` or array_like + Expected counts. + truncation_value : float + ``n_on`` = ``truncation_value`` where ``n_on`` <= ``truncation_value.`` + ``mu_on`` = ``truncation_value`` where ``n_on`` <= ``truncation_value`` + Default is 1e-25. + + Returns + ------- + stat : ndarray + Statistic per bin. + + References + ---------- + * `Sherpa stats page section on the C statistic: + <http://cxc.cfa.harvard.edu/sherpa/statistics/#cstat>`_ + * `Sherpa help page on the C statistic: + <http://cxc.harvard.edu/sherpa/ahelp/cash.html>`_ + * `Cash 1979, ApJ 228, 939, + <https://ui.adsabs.harvard.edu/abs/1979ApJ...228..939C>`_ + """ + n_on = np.asanyarray(n_on, dtype=np.float64) + mu_on = np.asanyarray(mu_on, dtype=np.float64) + truncation_value = np.asanyarray(truncation_value, dtype=np.float64) + + if np.any(truncation_value) <= 0: + raise ValueError("Cstat statistic truncation value must be positive.") + + n_on = np.where(n_on <= truncation_value, truncation_value, n_on) + mu_on = np.where(mu_on <= truncation_value, truncation_value, mu_on) + + term1 = np.log(n_on) - np.log(mu_on) + stat = 2 * (mu_on - n_on + n_on * term1) + stat = np.where(mu_on > 0, stat, 0) + + return stat
+ + + +
+[docs] +def wstat(n_on, n_off, alpha, mu_sig, mu_bkg=None, extra_terms=True): + r"""W statistic, for Poisson data with Poisson background. + + For a definition of WStat see :ref:`wstat`. If ``mu_bkg`` is not provided + it will be calculated according to the profile likelihood formula. + + Parameters + ---------- + n_on : `~numpy.ndarray` or array_like + Total observed counts. + n_off : `~numpy.ndarray` or array_like + Total observed background counts. + alpha : `~numpy.ndarray` or array_like + Exposure ratio between on and off region. + mu_sig : `~numpy.ndarray` or array_like + Signal expected counts. + mu_bkg : `~numpy.ndarray` or array_like, optional + Background expected counts. + extra_terms : bool, optional + Add model independent terms to convert stat into goodness-of-fit + parameter. Default is True. + + Returns + ------- + stat : ndarray + Statistic per bin. + + References + ---------- + * `Habilitation M. de Naurois, p. 141, + <http://inspirehep.net/record/1122589/files/these_short.pdf>`_ + * `XSPEC page on Poisson data with Poisson background, + <https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XSappendixStatistics.html>`_ + """ + # Note: This is equivalent to what's defined on the XSPEC page under the + # following assumptions + # t_s * m_i = mu_sig + # t_b * m_b = mu_bkg + # t_s / t_b = alpha + + n_on = np.asanyarray(n_on, dtype=np.float64) + n_off = np.asanyarray(n_off, dtype=np.float64) + alpha = np.asanyarray(alpha, dtype=np.float64) + mu_sig = np.asanyarray(mu_sig, dtype=np.float64) + + if mu_bkg is None: + mu_bkg = get_wstat_mu_bkg(n_on, n_off, alpha, mu_sig) + + term1 = mu_sig + (1 + alpha) * mu_bkg + + # suppress zero division warnings, they are corrected below + with np.errstate(divide="ignore", invalid="ignore"): + # This is a false positive error from pylint + # See https://github.com/PyCQA/pylint/issues/2436 + term2_ = -n_on * np.log(mu_sig + alpha * mu_bkg) # pylint:disable=invalid-unary-operand-type + # Handle n_on == 0 + condition = n_on == 0 + term2 = np.where(condition, 0, term2_) + + # suppress zero division warnings, they are corrected below + with np.errstate(divide="ignore", invalid="ignore"): + # This is a false positive error from pylint + # See https://github.com/PyCQA/pylint/issues/2436 + term3_ = -n_off * np.log(mu_bkg) # pylint:disable=invalid-unary-operand-type + # Handle n_off == 0 + condition = n_off == 0 + term3 = np.where(condition, 0, term3_) + + stat = 2 * (term1 + term2 + term3) + + if extra_terms: + stat += get_wstat_gof_terms(n_on, n_off) + + return stat
+ + + +
+[docs] +def get_wstat_mu_bkg(n_on, n_off, alpha, mu_sig): + """Background estimate ``mu_bkg`` for WSTAT. + + See :ref:`wstat`. + """ + n_on = np.asanyarray(n_on, dtype=np.float64) + n_off = np.asanyarray(n_off, dtype=np.float64) + alpha = np.asanyarray(alpha, dtype=np.float64) + mu_sig = np.asanyarray(mu_sig, dtype=np.float64) + + # NOTE: Corner cases in the docs are all handled correctly by this formula + C = alpha * (n_on + n_off) - (1 + alpha) * mu_sig + D = np.sqrt(C**2 + 4 * alpha * (alpha + 1) * n_off * mu_sig) + with np.errstate(invalid="ignore", divide="ignore"): + mu_bkg = (C + D) / (2 * alpha * (alpha + 1)) + + return mu_bkg
+ + + +
+[docs] +def get_wstat_gof_terms(n_on, n_off): + """Goodness of fit terms for WSTAT. + + See :ref:`wstat`. + """ + term = np.zeros(n_on.shape) + + # suppress zero division warnings, they are corrected below + with np.errstate(divide="ignore", invalid="ignore"): + term1 = -n_on * (1 - np.log(n_on)) + term2 = -n_off * (1 - np.log(n_off)) + + term += np.where(n_on == 0, 0, term1) + term += np.where(n_off == 0, 0, term2) + + return 2 * term
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/stats/variability.html b/docs/dev/_modules/gammapy/stats/variability.html new file mode 100644 index 00000000000..b64a851659d --- /dev/null +++ b/docs/dev/_modules/gammapy/stats/variability.html @@ -0,0 +1,1068 @@ + + + + + + + + + + gammapy.stats.variability — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.stats.variability

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import scipy.stats as stats
+import astropy.units as u
+from gammapy.utils.random import get_random_state
+
+__all__ = [
+    "compute_fvar",
+    "compute_fpp",
+    "compute_chisq",
+    "compute_flux_doubling",
+    "structure_function",
+    "TimmerKonig_lightcurve_simulator",
+    "discrete_correlation",
+]
+
+
+
+[docs] +def compute_fvar(flux, flux_err, axis=0): + r"""Calculate the fractional excess variance. + + This method accesses the ``FLUX`` and ``FLUX_ERR`` columns + from the lightcurve data. + + The fractional excess variance :math:`F_{var}`, an intrinsic + variability estimator, is given by: + + .. math:: + F_{var} = \sqrt{ \frac{S^{2} - \bar{ \sigma^{2}}}{ \bar{x}^{2}}} + + It is the excess variance after accounting for the measurement errors + on the light curve :math:`\sigma`. :math:`S` is the variance. + + It is important to note that the errors on the flux must be gaussian. + + Parameters + ---------- + flux : `~astropy.units.Quantity` + The measured fluxes. + flux_err : `~astropy.units.Quantity` + The error on measured fluxes. + axis : int, optional + Axis along which the excess variance is computed. + Default is 0. + + Returns + ------- + fvar, fvar_err : `~numpy.ndarray` + Fractional excess variance. + + References + ---------- + .. [Vaughan2003] "On characterizing the variability properties of X-ray light + curves from active galaxies", Vaughan et al. (2003) + https://ui.adsabs.harvard.edu/abs/2003MNRAS.345.1271V + """ + flux_mean = np.nanmean(flux, axis=axis) + n_points = np.count_nonzero(~np.isnan(flux), axis=axis) + + s_square = np.nansum((flux - flux_mean) ** 2, axis=axis) / (n_points - 1) + sig_square = np.nansum(flux_err**2, axis=axis) / n_points + fvar = np.sqrt(np.abs(s_square - sig_square)) / flux_mean + + sigxserr_a = np.sqrt(2 / n_points) * sig_square / flux_mean**2 + sigxserr_b = np.sqrt(sig_square / n_points) * (2 * fvar / flux_mean) + sigxserr = np.sqrt(sigxserr_a**2 + sigxserr_b**2) + fvar_err = sigxserr / (2 * fvar) + + return fvar, fvar_err
+ + + +
+[docs] +def compute_fpp(flux, flux_err, axis=0): + r"""Calculate the point-to-point excess variance. + + F_pp is a quantity strongly related to the fractional excess variance F_var + implemented in `~gammapy.stats.compute_fvar`; F_pp probes the variability + on a shorter timescale. + + For white noise, F_pp and F_var give the same value. + However, for red noise, F_var will be larger + than F_pp, as the variations will be larger on longer timescales. + + It is important to note that the errors on the flux must be Gaussian. + + Parameters + ---------- + flux : `~astropy.units.Quantity` + The measured fluxes. + flux_err : `~astropy.units.Quantity` + The error on measured fluxes. + axis : int, optional + Axis along which the excess variance is computed. + Default is 0. + + Returns + ------- + fpp, fpp_err : `~numpy.ndarray` + Point-to-point excess variance. + + References + ---------- + .. [Edelson2002] "X-Ray Spectral Variability and Rapid Variability + of the Soft X-Ray Spectrum Seyfert 1 Galaxies + Arakelian 564 and Ton S180", Edelson et al. (2002), equation 3, + https://iopscience.iop.org/article/10.1086/323779 + """ + flux_mean = np.nanmean(flux, axis=axis) + n_points = np.count_nonzero(~np.isnan(flux), axis=axis) + flux = flux.swapaxes(0, axis).T + + s_square = np.nansum((flux[..., 1:] - flux[..., :-1]) ** 2, axis=-1) / ( + n_points.T - 1 + ) + sig_square = np.nansum(flux_err**2, axis=axis) / n_points + fpp = np.sqrt(np.abs(s_square.T - sig_square)) / flux_mean + + sigxserr_a = np.sqrt(2 / n_points) * sig_square / flux_mean**2 + sigxserr_b = np.sqrt(sig_square / n_points) * (2 * fpp / flux_mean) + sigxserr = np.sqrt(sigxserr_a**2 + sigxserr_b**2) + fpp_err = sigxserr / (2 * fpp) + + return fpp, fpp_err
+ + + +
+[docs] +def compute_chisq(flux): + r"""Calculate the chi-square test for `LightCurve`. + + Chisquare test is a variability estimator. It computes + deviations from the expected value here mean value. + + Parameters + ---------- + flux : `~astropy.units.Quantity` + The measured fluxes. + + Returns + ------- + ChiSq, P-value : tuple of float or `~numpy.ndarray` + Tuple of Chi-square and P-value. + """ + yexp = np.mean(flux) + yobs = flux.data + chi2, pval = stats.chisquare(yobs, yexp) + return chi2, pval
+ + + +
+[docs] +def compute_flux_doubling(flux, flux_err, coords, axis=0): + r"""Compute the minimum characteristic flux doubling and halving + over a certain coordinate axis for a series of measurements. + + Computing the flux doubling can give the doubling time in a lightcurve + displaying significant temporal variability, e.g. an AGN flare. + + The variable is computed as: + + .. math:: + doubling = min(\frac{t_(i+1)-t_i}{log_2{f_(i+1)/f_i}}) + + where f_i and f_(i+1) are the fluxes measured at subsequent coordinates t_i and t_(i+1). + The error is obtained by propagating the relative errors on the flux measures. + + Parameters + ---------- + flux : `~astropy.units.Quantity` + The measured fluxes. + flux_err : `~astropy.units.Quantity` + The error on measured fluxes. + coords : `~astropy.units.Quantity` + The coordinates at which the fluxes are measured. + axis : int, optional + Axis along which the value is computed. + + Returns + ------- + doubling_dict : dict + Dictionary containing the characteristic flux doubling, halving and errors, + with coordinates at which they were found. + """ + flux = np.atleast_2d(flux).swapaxes(0, axis).T + flux_err = np.atleast_2d(flux_err).swapaxes(0, axis).T + + axes = np.diff(coords) / np.log2(flux[..., 1:] / flux[..., :-1]) + axes_err_1 = ( + np.diff(coords) + * np.log(2) + / flux[..., 1:] + * np.log(flux[..., 1:] / flux[..., :-1]) ** 2 + ) + axes_err_2 = ( + np.diff(coords) + * np.log(2) + / flux[..., :-1] + * np.log(flux[..., 1:] / flux[..., :-1]) ** 2 + ) + axes_err = np.sqrt( + (flux_err[..., 1:] * axes_err_1) ** 2 + (flux_err[..., :-1] * axes_err_2) ** 2 + ) + + imin = np.expand_dims( + np.argmin( + np.where( + np.logical_and(np.isfinite(axes), axes > 0), axes, np.inf * coords.unit + ), + axis=-1, + ), + axis=-1, + ) + imax = np.expand_dims( + np.argmax( + np.where( + np.logical_and(np.isfinite(axes), axes < 0), axes, -np.inf * coords.unit + ), + axis=-1, + ), + axis=-1, + ) + + index = np.concatenate([imin, imax], axis=-1) + coord = np.take_along_axis(coords, index.flatten(), axis=0).reshape(index.shape) + + doubling = np.take_along_axis(axes, index, axis=-1) + doubling_err = np.take_along_axis(axes_err, index, axis=-1) + + doubling_dict = { + "doubling": doubling.T[0], + "doubling_err": doubling_err.T[0], + "doubling_coord": coord.T[0], + "halving": np.abs(doubling.T[1]), + "halving_err": doubling_err.T[1], + "halving_coord": coord.T[1], + } + + return doubling_dict
+ + + +
+[docs] +def structure_function(flux, flux_err, time, tdelta_precision=5): + """Compute the discrete structure function for a variable source. + + Parameters + ---------- + flux : `~astropy.units.Quantity` + The measured fluxes. + flux_err : `~astropy.units.Quantity` + The error on measured fluxes. + time : `~astropy.units.Quantity` + The time coordinates at which the fluxes are measured. + tdelta_precision : int, optional + The number of decimal places to check to separate the time deltas. Default is 5. + + Returns + ------- + sf, distances : `~numpy.ndarray`, `~astropy.units.Quantity` + Discrete structure function and array of time distances. + + References + ---------- + .. [Emmanoulopoulos2010] "On the use of structure functions to study blazar variability: + caveats and problems", Emmanoulopoulos et al. (2010) + https://academic.oup.com/mnras/article/404/2/931/968488 + """ + dist_matrix = (time[np.newaxis, :] - time[:, np.newaxis]).round( + decimals=tdelta_precision + ) + distances = np.unique(dist_matrix) + distances = distances[distances > 0] + shape = distances.shape + flux.shape[1:] + factor = np.zeros(shape) + norm = np.zeros(shape) + + for i, distance in enumerate(distances): + indexes = np.array(np.where(dist_matrix == distance)) + for index in indexes.T: + f = (flux[index[1], ...] - flux[index[0], ...]) ** 2 + w = (flux[index[1], ...] / flux_err[index[1], ...]) * ( + flux[index[0], ...] / flux_err[index[0], ...] + ) + + f = np.nan_to_num(f) + w = np.nan_to_num(w) + factor[i] = factor[i] + f * w + norm[i] = norm[i] + w + + sf = factor / norm + return sf, distances
+ + + +
+[docs] +def discrete_correlation(flux1, flux_err1, flux2, flux_err2, time1, time2, tau, axis=0): + """Compute the discrete correlation function for a variable source. + + Parameters + ---------- + flux1, flux_err1: `~astropy.units.Quantity` + The first set of measured fluxes and associated error. + flux2, flux_err2 : `~astropy.units.Quantity` + The second set of measured fluxes and associated error. + time1, time2 : `~astropy.units.Quantity` + The time coordinates at which the fluxes are measured. + tau : `~astropy.units.Quantity` + Size of the bins to compute the discrete correlation. + axis : int, optional + Axis along which the correlation is computed. + Default is 0. + + Returns + ------- + bincenters: `~astropy.units.Quantity` + Array of discrete time bins. + discrete_correlation: `~numpy.ndarray` + Array of discrete correlation function values for each bin. + discrete_correlation_err : `~numpy.ndarray` + Error associated to the discrete correlation values. + + References + ---------- + .. [Edelson1988] "THE DISCRETE CORRELATION FUNCTION: A NEW METHOD FOR ANALYZING + UNEVENLY SAMPLED VARIABILITY DATA", Edelson et al. (1988) + https://ui.adsabs.harvard.edu/abs/1988ApJ...333..646E/abstract + """ + flux1 = np.rollaxis(flux1, axis, 0) + flux2 = np.rollaxis(flux2, axis, 0) + + if np.squeeze(flux1).shape[1:] != np.squeeze(flux2).shape[1:]: + raise ValueError( + "flux1 and flux2 must have the same squeezed shape, apart from the chosen axis." + ) + + tau = tau.to(time1.unit) + time2 = time2.to(time1.unit) + + mean1, mean2 = np.nanmean(flux1, axis=0), np.nanmean(flux2, axis=0) + sigma1, sigma2 = np.nanstd(flux1, axis=0), np.nanstd(flux2, axis=0) + + udcf1 = (flux1 - mean1) / np.sqrt((sigma1**2 - np.nanmean(flux_err1, axis=0) ** 2)) + udcf2 = (flux2 - mean2) / np.sqrt((sigma2**2 - np.nanmean(flux_err2, axis=0) ** 2)) + + udcf = np.empty(((flux1.shape[0],) + flux2.shape)) + dist = u.Quantity(np.empty(((flux1.shape[0], flux2.shape[0]))), unit=time1.unit) + + for i, x1 in enumerate(udcf1): + for j, x2 in enumerate(udcf2): + udcf[i, j, ...] = x1 * x2 + dist[i, j] = time1[i] - time2[j] + + maxfactor = np.floor(np.amax(dist) / tau).value + 1 + minfactor = np.floor(np.amin(dist) / tau).value + + bins = ( + np.linspace( + minfactor, maxfactor, int(np.abs(maxfactor) + np.abs(minfactor) + 1) + ) + * tau + ) + + bin_indices = np.digitize(dist, bins).flatten() + + udcf = np.reshape(udcf, (udcf.shape[0] * udcf.shape[1], -1)) + discrete_correlation = np.array( + [np.nanmean(udcf[bin_indices == i], axis=0) for i in range(1, len(bins))] + ) + + discrete_correlation_err = [] + for i in range(1, len(bins)): + terms = (discrete_correlation[i - 1] - udcf[bin_indices == i]) ** 2 + num = np.sqrt(np.nansum(terms, axis=0)) + den = len(udcf[bin_indices == i]) - 1 + discrete_correlation_err.append(num / den) + + bincenters = (bins[1:] + bins[:-1]) / 2 + + return bincenters, discrete_correlation, np.array(discrete_correlation_err)
+ + + +
+[docs] +def TimmerKonig_lightcurve_simulator( + power_spectrum, + npoints, + spacing, + nchunks=10, + random_state="random-seed", + power_spectrum_params=None, + mean=0.0, + std=1.0, + poisson=False, +): + """Implementation of the Timmer-Koenig algorithm to simulate a time series from a power spectrum. + + Parameters + ---------- + power_spectrum : function + Power spectrum used to generate the time series. It is expected to be + a function mapping the input frequencies to the periodogram. + npoints : int + Number of points in the output time series. + spacing : `~astropy.units.Quantity` + Sample spacing, inverse of the sampling rate. The units are inherited by the resulting time axis. + nchunks : int, optional + Factor by which to multiply the length of the time series to avoid red noise leakage. Default is 10. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. Default is "random-seed". + power_spectrum_params : dict, optional + Dictionary of parameters to be provided to the power spectrum function. + mean : float, `~astropy.units.Quantity`, optional + Desired mean of the final series. Default is 0. + std : float, `~astropy.units.Quantity`, optional + Desired standard deviation of the final series. Default is 1. + poisson : bool, optional + Whether to apply poissonian noise to the final time series. Default is False. + + + Returns + ------- + time_series : `~numpy.ndarray` + Simulated time series. + time_axis : `~astropy.units.Quantity` + Time axis of the series in the same units as 'spacing'. It will be defined with length 'npoints', from 0 to + 'npoints'*'spacing'. + + Examples + -------- + To pass the function to be used in the simlation one can use either the 'lambda' keyword or an extended definition. + Parameters of the function can be passed using the 'power_spectrum_params' keyword. + For example, these are three ways to pass a power law (red noise) with index 2: + + >>> from gammapy.stats import TimmerKonig_lightcurve_simulator + >>> import astropy.units as u + >>> def powerlaw(x): + ... return x**(-2) + >>> def powerlaw_with_parameters(x, i): + ... return x**(-i) + >>> ts, ta = TimmerKonig_lightcurve_simulator(lambda x: x**(-2), 20, 1*u.h) + >>> ts2, ta2 = TimmerKonig_lightcurve_simulator(powerlaw, 20, 1*u.h) + >>> ts3, ta3 = TimmerKonig_lightcurve_simulator(powerlaw_with_parameters, + ... 20, 1*u.h, power_spectrum_params={"i":2}) + + References + ---------- + .. [Timmer1995] "On generating power law noise", J. Timmer and M, Konig, section 3 + https://ui.adsabs.harvard.edu/abs/1995A%26A...300..707T/abstract + """ + if not callable(power_spectrum): + raise ValueError( + "The power spectrum has to be provided as a callable function." + ) + + if not isinstance(npoints * nchunks, int): + raise TypeError("npoints and nchunks must be integers") + + if poisson: + if isinstance(mean, u.Quantity): + wmean = mean.value * spacing.value + else: + wmean = mean * spacing.value + if wmean < 1.0: + raise Warning( + "Poisson noise was requested but the target mean is too low - resulting counts will likely be 0." + ) + + random_state = get_random_state(random_state) + + npoints_ext = npoints * nchunks + + frequencies = np.fft.fftfreq(npoints_ext, spacing.value) + + # To obtain real data only the positive or negative part of the frequency is necessary. + real_frequencies = np.sort(np.abs(frequencies[frequencies < 0])) + + if power_spectrum_params: + periodogram = power_spectrum(real_frequencies, **power_spectrum_params) + else: + periodogram = power_spectrum(real_frequencies) + + real_part = random_state.normal(0, 1, len(periodogram) - 1) + imaginary_part = random_state.normal(0, 1, len(periodogram) - 1) + + # Nyquist frequency component handling + if npoints_ext % 2 == 0: + idx0 = -2 + random_factor = random_state.normal(0, 1) + else: + idx0 = -1 + random_factor = random_state.normal(0, 1) + 1j * random_state.normal(0, 1) + + fourier_coeffs = np.concatenate( + [ + np.sqrt(0.5 * periodogram[:-1]) * (real_part + 1j * imaginary_part), + np.sqrt(0.5 * periodogram[-1:]) * random_factor, + ] + ) + fourier_coeffs = np.concatenate( + [fourier_coeffs, np.conjugate(fourier_coeffs[idx0::-1])] + ) + + fourier_coeffs = np.insert(fourier_coeffs, 0, 0) + time_series = np.fft.ifft(fourier_coeffs).real + + ndiv = npoints_ext // (2 * nchunks) + setstart = npoints_ext // 2 - ndiv + setend = npoints_ext // 2 + ndiv + if npoints % 2 != 0: + setend = setend + 1 + time_series = time_series[setstart:setend] + + time_series = (time_series - time_series.mean()) / time_series.std() + time_series = time_series * std + mean + + if poisson: + time_series = ( + random_state.poisson( + np.where(time_series >= 0, time_series, 0) * spacing.value + ) + / spacing.value + ) + + time_axis = np.linspace(0, npoints * spacing.value, npoints) * spacing.unit + + return time_series, time_axis
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/cluster.html b/docs/dev/_modules/gammapy/utils/cluster.html new file mode 100644 index 00000000000..41ebeb1d210 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/cluster.html @@ -0,0 +1,684 @@ + + + + + + + + + + gammapy.utils.cluster — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.cluster

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Utilities for hierarchical/agglomerative clustering."""
+import numpy as np
+import scipy.cluster.hierarchy as sch
+
+__all__ = ["standard_scaler", "hierarchical_clustering"]
+
+
+
+[docs] +def standard_scaler(features): + r"""Compute standardized features by removing the mean and scaling to unit variance. + + Calculated through: + + .. math:: + f_\text{scaled} = \frac{f-\text{mean}(f)}{\text{std}(f)} . + + Parameters + ---------- + features : `~astropy.table.Table` + Table containing the features. + + Returns + ------- + scaled_features : `~astropy.table.Table` + Table containing the scaled features (dimensionless). + + + Examples + -------- + Compute standardized features of a cluster observations based on their IRF quantities:: + + >>> from gammapy.data.utils import get_irfs_features + >>> from gammapy.data import DataStore + >>> from gammapy.utils.cluster import standard_scaler + >>> from astropy.coordinates import SkyCoord + >>> import astropy.units as u + + >>> data_store = DataStore.from_dir("$GAMMAPY_DATA/hess-dl3-dr1/") + >>> obs_ids = data_store.obs_table["OBS_ID"][:3] + >>> obs = data_store.get_observations(obs_ids) + + >>> position = SkyCoord(329.716 * u.deg, -30.225 * u.deg, frame="icrs") + >>> names = ["edisp-res", "psf-radius"] + >>> features_irfs = get_irfs_features( + ... obs, + ... energy_true="1 TeV", + ... position=position, + ... names=names + ... ) + >>> scaled_features_irfs = standard_scaler(features_irfs) + >>> print(scaled_features_irfs) + edisp-res obs_id psf-radius + ------------------- ------ -------------------- + -0.1379190199428797 20136 -0.18046952655570045 + 1.2878662980210884 20137 1.3049664466089965 + -1.1499472780781963 20151 -1.1244969200533408 + """ + scaled_features = features.copy() + for col in scaled_features.columns: + if col not in ["obs_id", "dataset_name"]: + data = scaled_features[col].data + scaled_features[col] = (data - data.mean()) / data.std() + return scaled_features
+ + + +
+[docs] +def hierarchical_clustering(features, linkage_kwargs=None, fcluster_kwargs=None): + """Hierarchical clustering using given features. + + Parameters + ---------- + features : `~astropy.table.Table` + Table containing the features. + linkage_kwargs : dict, optional + Arguments forwarded to `scipy.cluster.hierarchy.linkage`. + Default is None, which uses method="ward" and metric="euclidean". + fcluster_kwargs : dict, optional + Arguments forwarded to `scipy.cluster.hierarchy.fcluster`. + Default is None, which uses criterion="maxclust" and t=3. + + + Returns + ------- + features : `~astropy.table.Table` + Table containing the features and an extra column for the groups labels. + + + Examples + -------- + Cluster features into t=2 groups with a corresponding label for each group:: + + >>> from gammapy.data.utils import get_irfs_features + >>> from gammapy.data import DataStore + >>> from gammapy.utils.cluster import standard_scaler, hierarchical_clustering + >>> from astropy.coordinates import SkyCoord + >>> import astropy.units as u + + >>> data_store = DataStore.from_dir("$GAMMAPY_DATA/hess-dl3-dr1/") + >>> obs_ids = data_store.obs_table["OBS_ID"][13:20] + >>> obs = data_store.get_observations(obs_ids) + + >>> position = SkyCoord(329.716 * u.deg, -30.225 * u.deg, frame="icrs") + >>> names = ["edisp-res", "psf-radius"] + >>> features_irfs = get_irfs_features( + ... obs, + ... energy_true="1 TeV", + ... position=position, + ... names=names + ... ) + >>> scaled_features_irfs = standard_scaler(features_irfs) + + >>> features = hierarchical_clustering(scaled_features_irfs, fcluster_kwargs={"t": 2}) + >>> print(features) + edisp-res obs_id psf-radius labels + ------------------- ------ ------------------- ------ + -1.3020791585772495 20326 -1.2471938975366008 2 + -1.3319831545301117 20327 -1.4586649826004114 2 + -0.7763307219821931 20339 -0.6705024680435898 2 + 0.9677107409819438 20343 0.9500979841335693 1 + 0.820562952023891 20344 0.8160964882165554 1 + 0.7771617763704126 20345 0.7718272408581743 1 + 0.8449575657133206 20346 0.8383396349722769 1 + + """ + features = features.copy() + features_array = np.array( + [ + features[col].data + for col in features.columns + if col not in ["obs_id", "dataset_name"] + ] + ).T + + default_linkage_kwargs = dict(method="ward", metric="euclidean") + if linkage_kwargs is not None: + default_linkage_kwargs.update(linkage_kwargs) + + pairwise_distances = sch.distance.pdist(features_array) + linkage = sch.linkage(pairwise_distances, **default_linkage_kwargs) + + default_fcluster_kwargs = dict(criterion="maxclust", t=3) + if fcluster_kwargs is not None: + default_fcluster_kwargs.update(fcluster_kwargs) + labels = sch.fcluster(linkage, **default_fcluster_kwargs) + + features["labels"] = labels + return features
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/coordinates/fov.html b/docs/dev/_modules/gammapy/utils/coordinates/fov.html new file mode 100644 index 00000000000..e1399e38d1c --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/coordinates/fov.html @@ -0,0 +1,604 @@ + + + + + + + + + + gammapy.utils.coordinates.fov — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.coordinates.fov

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+from astropy.coordinates import SkyCoord, SkyOffsetFrame
+
+__all__ = ["fov_to_sky", "sky_to_fov"]
+
+
+
+[docs] +def fov_to_sky(lon, lat, lon_pnt, lat_pnt): + """Transform field-of-view coordinates to sky coordinates. + + Parameters + ---------- + lon, lat : `~astropy.units.Quantity` + Field-of-view coordinate to be transformed. + lon_pnt, lat_pnt : `~astropy.units.Quantity` + Coordinate specifying the pointing position. + (i.e. the center of the field of view.) + + Returns + ------- + lon_t, lat_t : `~astropy.units.Quantity` + Transformed sky coordinate. + """ + # Create a frame that is centered on the pointing position + center = SkyCoord(lon_pnt, lat_pnt) + fov_frame = SkyOffsetFrame(origin=center) + + # Define coordinate to be transformed. + # Need to switch the sign of the longitude angle here + # because this axis is reversed in our definition of the FoV-system + target_fov = SkyCoord(-lon, lat, frame=fov_frame) + + # Transform into celestial system (need not be ICRS) + target_sky = target_fov.icrs + + return target_sky.ra, target_sky.dec
+ + + +
+[docs] +def sky_to_fov(lon, lat, lon_pnt, lat_pnt): + """Transform sky coordinates to field-of-view coordinates. + + Parameters + ---------- + lon, lat : `~astropy.units.Quantity` + Sky coordinate to be transformed. + lon_pnt, lat_pnt : `~astropy.units.Quantity` + Coordinate specifying the pointing position. + (i.e. the center of the field of view.) + + Returns + ------- + lon_t, lat_t : `~astropy.units.Quantity` + Transformed field-of-view coordinate. + """ + # Create a frame that is centered on the pointing position + center = SkyCoord(lon_pnt, lat_pnt) + fov_frame = SkyOffsetFrame(origin=center) + + # Define coordinate to be transformed. + target_sky = SkyCoord(lon, lat) + + # Transform into FoV-system + target_fov = target_sky.transform_to(fov_frame) + + # Switch sign of longitude angle since this axis is + # reversed in our definition of the FoV-system + return -target_fov.lon, target_fov.lat
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/coordinates/other.html b/docs/dev/_modules/gammapy/utils/coordinates/other.html new file mode 100644 index 00000000000..2c192ac2c27 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/coordinates/other.html @@ -0,0 +1,649 @@ + + + + + + + + + + gammapy.utils.coordinates.other — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.coordinates.other

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Other coordinate and distance-related functions."""
+import numpy as np
+from astropy.units import Quantity, Unit
+
+__all__ = [
+    "cartesian",
+    "D_SUN_TO_GALACTIC_CENTER",
+    "galactic",
+    "motion_since_birth",
+    "polar",
+    "velocity_glon_glat",
+]
+
+# TODO: replace this with the default from the Galactocentric frame in astropy.coordinates
+D_SUN_TO_GALACTIC_CENTER = Quantity(8.5, "kpc")
+"""Default assumed distance from the Sun to the Galactic center (`~astropy.units.Quantity`)"""
+
+
+
+[docs] +def cartesian(r, theta): + """Convert polar coordinates to cartesian coordinates.""" + x = r * np.cos(theta) + y = r * np.sin(theta) + return x, y
+ + + +
+[docs] +def polar(x, y): + """Convert cartesian coordinates to polar coordinates.""" + r = np.sqrt(x**2 + y**2) + theta = np.arctan2(y, x) + return r, theta
+ + + +
+[docs] +def galactic(x, y, z, obs_pos=None): + """Compute galactic coordinates lon, lat and distance. + + For given position in cartesian coordinates (kpc). + """ + obs_pos = obs_pos or [D_SUN_TO_GALACTIC_CENTER, 0, 0] + y_prime = y + D_SUN_TO_GALACTIC_CENTER + d = np.sqrt(x**2 + y_prime**2 + z**2) + glon = np.arctan2(x, y_prime).to("deg") + glat = np.arcsin(z / d).to("deg") + return d, glon, glat
+ + + +
+[docs] +def velocity_glon_glat(x, y, z, vx, vy, vz): + """ + Compute projected angular velocity in galactic coordinates. + + Parameters + ---------- + x, y, z : `~astropy.units.Quantity` + Position in x, y, z direction. + vx, vy, vz : `~astropy.units.Quantity` + Velocity in x, y, z direction. + + Returns + ------- + v_glon, v_glat : `~astropy.units.Quantity` + Projected velocity in Galactic sky coordinates. + """ + y_prime = y + D_SUN_TO_GALACTIC_CENTER + d = np.sqrt(x**2 + y_prime**2 + z**2) + r = np.sqrt(x**2 + y_prime**2) + + v_glon = (-y_prime * vx + x * vy) / r**2 + v_glat = vz / (np.sqrt(1 - (z / d) ** 2) * d) - np.sqrt( + vx**2 + vy**2 + vz**2 + ) * z / (np.sqrt(1 - (z / d) ** 2) * d**2) + return v_glon * Unit("rad"), v_glat * Unit("rad")
+ + + +
+[docs] +def motion_since_birth(v, age, theta, phi): + """ + Compute motion of an astrophysical object with a given velocity, direction and age. + + Parameters + ---------- + v : `~astropy.units.Quantity` + Absolute value of the velocity. + age : `~astropy.units.Quantity` + Age of the source. + theta, phi : `~astropy.units.Quantity` + Angular direction of the velocity. + + Returns + ------- + dx, dy, dz : `~astropy.units.Quantity` + Displacement in x, y, z direction. + vx, vy, vz : `~astropy.units.Quantity` + Velocity in x, y, z direction. + """ + vx = v * np.cos(phi) * np.sin(theta) + vy = v * np.sin(phi) * np.sin(theta) + vz = v * np.cos(theta) + + # Compute new positions + dx = vx * age + dy = vy * age + dz = vz * age + return dx, dy, dz, vx, vy, vz
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/fits.html b/docs/dev/_modules/gammapy/utils/fits.html new file mode 100644 index 00000000000..bc7cb38d948 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/fits.html @@ -0,0 +1,767 @@ + + + + + + + + + + gammapy.utils.fits — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.fits

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import logging
+import sys
+import astropy.units as u
+from astropy.coordinates import AltAz, Angle, EarthLocation, SkyCoord
+from astropy.io import fits
+from astropy.units import Quantity
+from .scripts import make_path
+
+log = logging.getLogger(__name__)
+
+__all__ = ["earth_location_from_dict", "LazyFitsData", "HDULocation"]
+
+
+
+[docs] +class HDULocation: + """HDU localisation, loading and Gammapy object mapper. + + This represents one row in `HDUIndexTable`. + + It's more a helper class, that is wrapped by `~gammapy.data.Observation`, + usually those objects will be used to access data. + + See also :ref:`gadf:hdu-index`. + """ + + def __init__( + self, + hdu_class, + base_dir=".", + file_dir=None, + file_name=None, + hdu_name=None, + cache=True, + format=None, + ): + self.hdu_class = hdu_class + self.base_dir = base_dir + self.file_dir = file_dir + self.file_name = file_name + self.hdu_name = hdu_name + self.cache = cache + self.format = format + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def info(self, file=None): + """Print some summary information to stdout.""" + if not file: + file = sys.stdout + print(f"HDU_CLASS = {self.hdu_class}", file=file) + print(f"BASE_DIR = {self.base_dir}", file=file) + print(f"FILE_DIR = {self.file_dir}", file=file) + print(f"FILE_NAME = {self.file_name}", file=file) + print(f"HDU_NAME = {self.hdu_name}", file=file)
+ + +
+[docs] + def path(self, abs_path=True): + """Full filename path. + + Include ``base_dir`` if ``abs_path`` is True. + """ + path = make_path(self.base_dir) / self.file_dir / self.file_name + + if abs_path and path.exists(): + return path + else: + return make_path(self.file_dir) / self.file_name
+ + +
+[docs] + def get_hdu(self): + """Get HDU.""" + filename = self.path(abs_path=True) + # Here we're intentionally not calling `with fits.open` + # because we don't want the file to remain open. + hdu_list = fits.open(str(filename), memmap=False) + return hdu_list[self.hdu_name]
+ + +
+[docs] + def load(self): + """Load HDU as appropriate class.""" + from gammapy.irf import IRF_REGISTRY + + hdu_class = self.hdu_class + filename = self.path() + hdu = self.hdu_name + + if hdu_class == "events": + from gammapy.data import EventList + + return EventList.read(filename, hdu=hdu) + elif hdu_class == "gti": + from gammapy.data.gti import GTI + + return GTI.read(filename, hdu=hdu) + elif hdu_class == "map": + from gammapy.maps import Map + + return Map.read(filename, hdu=hdu, format=self.format) + elif hdu_class == "pointing": + # FIXME: support loading the pointing table + from gammapy.data import FixedPointingInfo + + return FixedPointingInfo.read(filename, hdu=hdu) + else: + cls = IRF_REGISTRY.get_cls(hdu_class) + + return cls.read(filename, hdu=hdu)
+
+ + + +
+[docs] +class LazyFitsData(object): + """A lazy FITS data descriptor. + + Parameters + ---------- + cache : bool + Whether to cache the data. + """ + + def __init__(self, cache=True): + self.cache = cache + + def __set_name__(self, owner, name): + self.name = name + + def __get__(self, instance, objtype): + if instance is None: + # Accessed on a class, not an instance + return self + + try: + return instance.__dict__[self.name] + except KeyError: + hdu_loc = instance.__dict__[f"_{self.name}_hdu"] + try: + value = hdu_loc.load() + except KeyError: + value = None + log.warning(f"HDU '{hdu_loc.hdu_name}' not found") + if self.cache and hdu_loc.cache: + instance.__dict__[self.name] = value + return value + + def __set__(self, instance, value): + if isinstance(value, HDULocation): + instance.__dict__[f"_{self.name}_hdu"] = value + else: + instance.__dict__[self.name] = value
+ + + +
+[docs] +def earth_location_from_dict(meta): + """Create `~astropy.coordinates.EarthLocation` from FITS header dictionary.""" + lon = Angle(meta["GEOLON"], "deg") + lat = Angle(meta["GEOLAT"], "deg") + if "GEOALT" in meta: + height = Quantity(meta["GEOALT"], "meter") + elif "ALTITUDE" in meta: + height = Quantity(meta["ALTITUDE"], "meter") + else: + raise KeyError("The GEOALT or ALTITUDE header keyword must be set") + + return EarthLocation(lon=lon, lat=lat, height=height)
+ + + +def earth_location_to_dict(location): + """Convert `~astropy.coordinates.EarthLocation` to FITS header dictionary.""" + return { + "GEOLON": location.lon.deg, + "GEOLAT": location.lat.deg, + "ALTITUDE": location.height.to_value(u.m), + } + + +def skycoord_from_dict(header, frame="icrs", ext="PNT"): + """Create `~astropy.coordinates.SkyCoord` from a dictionary of FITS keywords. + + Parameters + ---------- + header : dict + The input dictionary. + frame : {"icrs", "galactic", "altaz"} + The frame to use. Default is 'icrs'. + ext: str, optional + The keyword extension to apply to the keywords names. Default is 'PNT'. + + Returns + ------- + skycoord : `~astropy.coordinates.skycoord` + The input SkyCoord. + """ + + ext = "_" + ext if ext != "" else "" + + if frame == "altaz": + alt = header.get("ALT" + ext, None) + az = header.get("AZ" + ext, None) + return ( + AltAz(alt=alt * u.deg, az=az * u.deg) + if (alt is not None and az is not None) + else None + ) + elif frame == "icrs": + coords = header.get("RA" + ext, None), header.get("DEC" + ext, None) + elif frame == "galactic": + coords = header.get("GLON" + ext, None), header.get("GLAT" + ext, None) + else: + raise ValueError( + f"Unsupported frame {frame}. Select in 'icrs', 'galactic', 'altaz'." + ) + if coords[0] is not None and coords[1] is not None: + return SkyCoord(coords[0], coords[1], unit="deg", frame=frame) + else: + return None +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/integrate.html b/docs/dev/_modules/gammapy/utils/integrate.html new file mode 100644 index 00000000000..2c17181f5c2 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/integrate.html @@ -0,0 +1,584 @@ + + + + + + + + + + gammapy.utils.integrate — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.integrate

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+from .interpolation import LogScale
+
+__all__ = ["trapz_loglog"]
+
+
+
+[docs] +def trapz_loglog(y, x, axis=-1): + """Integrate using the composite trapezoidal rule in log-log space. + + Integrate `y` (`x`) along given axis in loglog space. + + Parameters + ---------- + y : `~numpy.ndarray` + Input array to integrate. + x : `~numpy.ndarray` + Independent variable to integrate over. + axis : int, optional + Specify the axis. Default is -1. + + Returns + ------- + trapz : float + Definite integral as approximated by trapezoidal rule in loglog space. + """ + from gammapy.modeling.models import PowerLawSpectralModel as pl + + # see https://stackoverflow.com/a/56840428 + x, y = np.moveaxis(x, axis, 0), np.moveaxis(y, axis, 0) + + energy_min, energy_max = x[:-1], x[1:] + vals_energy_min, vals_energy_max = y[:-1], y[1:] + + # log scale has the built-in zero clipping + log = LogScale() + + with np.errstate(invalid="ignore", divide="ignore"): + index = -log(vals_energy_min / vals_energy_max) / log(energy_min / energy_max) + + index[np.isnan(index)] = np.inf + + return pl.evaluate_integral( + energy_min=energy_min, + energy_max=energy_max, + index=index, + reference=energy_min, + amplitude=vals_energy_min, + )
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/interpolation.html b/docs/dev/_modules/gammapy/utils/interpolation.html new file mode 100644 index 00000000000..c00ae7d56c3 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/interpolation.html @@ -0,0 +1,817 @@ + + + + + + + + + + gammapy.utils.interpolation — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.interpolation

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Interpolation utilities."""
+
+import html
+from itertools import compress
+import numpy as np
+import scipy.interpolate
+from astropy import units as u
+from .compat import COPY_IF_NEEDED
+
+__all__ = [
+    "interpolate_profile",
+    "interpolation_scale",
+    "ScaledRegularGridInterpolator",
+]
+
+INTERPOLATION_ORDER = {None: 0, "nearest": 0, "linear": 1, "quadratic": 2, "cubic": 3}
+
+
+
+[docs] +class ScaledRegularGridInterpolator: + """Thin wrapper around `scipy.interpolate.RegularGridInterpolator`. + + The values are scaled before the interpolation and back-scaled after the + interpolation. + + Dimensions of length 1 are ignored in the interpolation of the data. + + Parameters + ---------- + points : tuple of `~numpy.ndarray` or `~astropy.units.Quantity` + Tuple of points passed to `RegularGridInterpolator`. + values : `~numpy.ndarray` + Values passed to `RegularGridInterpolator`. + points_scale : tuple of str + Interpolation scale used for the points. + values_scale : {'lin', 'log', 'sqrt'} + Interpolation scaling applied to values. If the values vary over many magnitudes + a 'log' scaling is recommended. + axis : int or None + Axis along which to interpolate. + method : {"linear", "nearest"} + Default interpolation method. Can be overwritten when calling the + `ScaledRegularGridInterpolator`. + **kwargs : dict + Keyword arguments passed to `RegularGridInterpolator`. + """ + + def __init__( + self, + points, + values, + points_scale=None, + values_scale="lin", + extrapolate=True, + axis=None, + **kwargs, + ): + if points_scale is None: + points_scale = ["lin"] * len(points) + + self.scale_points = [interpolation_scale(scale) for scale in points_scale] + self.scale = interpolation_scale(values_scale) + self.axis = axis + + self._include_dimensions = [len(p) > 1 for p in points] + + values_scaled = self.scale(values) + points_scaled = self._scale_points(points=points) + + kwargs.setdefault("bounds_error", False) + + if extrapolate: + kwargs.setdefault("fill_value", None) + + method = kwargs.get("method", None) + + if not np.any(self._include_dimensions): + if method != "nearest": + raise ValueError( + "Interpolating scalar values requires using " + "method='nearest' explicitly." + ) + + if np.any(self._include_dimensions): + values_scaled = np.squeeze(values_scaled) + + if axis is None: + self._interpolate = scipy.interpolate.RegularGridInterpolator( + points=points_scaled, values=values_scaled, **kwargs + ) + else: + self._interpolate = scipy.interpolate.interp1d( + points_scaled[0], values_scaled, axis=axis + ) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def _scale_points(self, points): + points_scaled = [scale(p) for p, scale in zip(points, self.scale_points)] + + if np.any(self._include_dimensions): + points_scaled = compress(points_scaled, self._include_dimensions) + + return tuple(points_scaled) + +
+[docs] + def __call__(self, points, method=None, clip=True, **kwargs): + """Interpolate data points. + + Parameters + ---------- + points : tuple of `~numpy.ndarray` or `~astropy.units.Quantity` + Tuple of coordinate arrays of the form (x_1, x_2, x_3, ...). Arrays are + broadcast internally. + method : {None, "linear", "nearest"} + Linear or nearest neighbour interpolation. + Default is None, which is `method` defined on init. + clip : bool + Clip values at zero after interpolation. + """ + points = self._scale_points(points=points) + + if self.axis is None: + points = np.broadcast_arrays(*points) + points_interp = np.stack([_.flat for _ in points]).T + values = self._interpolate(points_interp, method, **kwargs) + values = self.scale.inverse(values.reshape(points[0].shape)) + else: + values = self._interpolate(points[0]) + values = self.scale.inverse(values) + + if clip: + values = np.clip(values, 0, np.inf) + + return values
+
+ + + +
+[docs] +def interpolation_scale(scale="lin"): + """Interpolation scaling. + + Parameters + ---------- + scale : {"lin", "log", "sqrt"} + Choose interpolation scaling. + """ + if scale in ["lin", "linear"]: + return LinearScale() + elif scale == "log": + return LogScale() + elif scale == "sqrt": + return SqrtScale() + elif scale == "stat-profile": + return StatProfileScale() + elif isinstance(scale, InterpolationScale): + return scale + else: + raise ValueError(f"Not a valid value scaling mode: '{scale}'.")
+ + + +class InterpolationScale: + """Interpolation scale base class.""" + + def __call__(self, values): + if hasattr(self, "_unit"): + values = u.Quantity(values, copy=COPY_IF_NEEDED).to_value(self._unit) + else: + if isinstance(values, u.Quantity): + self._unit = values.unit + values = values.value + return self._scale(values) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + + def inverse(self, values): + values = self._inverse(values) + if hasattr(self, "_unit"): + return u.Quantity(values, self._unit, copy=COPY_IF_NEEDED) + else: + return values + + +class LogScale(InterpolationScale): + """Logarithmic scaling.""" + + tiny = np.finfo(np.float32).tiny + + def _scale(self, values): + values = np.clip(values, self.tiny, np.inf) + return np.log(values) + + @classmethod + def _inverse(cls, values): + output = np.exp(values) + return np.where(abs(output) - cls.tiny <= cls.tiny, 0, output) + + +class SqrtScale(InterpolationScale): + """Square root scaling.""" + + @staticmethod + def _scale(values): + sign = np.sign(values) + return sign * np.sqrt(sign * values) + + @classmethod + def _inverse(cls, values): + return np.power(values, 2) + + +class StatProfileScale(InterpolationScale): + """Square root profile scaling.""" + + def __init__(self, axis=0): + self.axis = axis + + def _scale(self, values): + values = np.sign(np.gradient(values, axis=self.axis)) * values + sign = np.sign(values) + return sign * np.sqrt(sign * values) + + @classmethod + def _inverse(cls, values): + return np.power(values, 2) + + +class LinearScale(InterpolationScale): + """Linear scaling.""" + + @staticmethod + def _scale(values): + return values + + @classmethod + def _inverse(cls, values): + return values + + +
+[docs] +def interpolate_profile(x, y, interp_scale="sqrt", extrapolate=False): + """Helper function to interpolate one-dimensional profiles. + + Parameters + ---------- + x : `~numpy.ndarray` + Array of x values. + y : `~numpy.ndarray` + Array of y values. + interp_scale : {"sqrt", "lin"} + Interpolation scale applied to the profile. If the profile is + of parabolic shape, a "sqrt" scaling is recommended. In other cases or + for fine sampled profiles a "lin" can also be used. + Default is "sqrt". + extrapolate : bool + Extrapolate or not if the evaluation value is outside the range of x values. + Default is False. + + Returns + ------- + interp : `interp1d` + Interpolator. + """ + method_dict = {"sqrt": "quadratic", "lin": "linear"} + kwargs = dict(kind=method_dict[interp_scale]) + if extrapolate: + kwargs["bounds_error"] = False + kwargs["fill_value"] = "extrapolate" + return scipy.interpolate.interp1d(x, y, **kwargs)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/parallel.html b/docs/dev/_modules/gammapy/utils/parallel.html new file mode 100644 index 00000000000..2ab2b6bef3d --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/parallel.html @@ -0,0 +1,879 @@ + + + + + + + + + + gammapy.utils.parallel — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.parallel

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Multiprocessing and multithreading setup."""
+import importlib
+import logging
+from enum import Enum
+from gammapy.utils.pbar import progress_bar
+
+log = logging.getLogger(__name__)
+
+__all__ = [
+    "multiprocessing_manager",
+    "run_multiprocessing",
+    "BACKEND_DEFAULT",
+    "N_JOBS_DEFAULT",
+    "POOL_KWARGS_DEFAULT",
+    "METHOD_DEFAULT",
+    "METHOD_KWARGS_DEFAULT",
+]
+
+
+class ParallelBackendEnum(Enum):
+    """Enum for parallel backend."""
+
+    multiprocessing = "multiprocessing"
+    ray = "ray"
+
+    @classmethod
+    def from_str(cls, value):
+        """Get enum from string."""
+
+        if value == "ray" and not is_ray_available():
+            log.warning("Ray is not installed, falling back to multiprocessing backend")
+            value = "multiprocessing"
+
+        return cls(value)
+
+
+class PoolMethodEnum(Enum):
+    """Enum for pool method."""
+
+    starmap = "starmap"
+    apply_async = "apply_async"
+
+
+BACKEND_DEFAULT = ParallelBackendEnum.multiprocessing
+N_JOBS_DEFAULT = 1
+ALLOW_CHILD_JOBS = False
+POOL_KWARGS_DEFAULT = dict(processes=N_JOBS_DEFAULT)
+METHOD_DEFAULT = PoolMethodEnum.starmap
+METHOD_KWARGS_DEFAULT = {}
+
+
+def get_multiprocessing():
+    """Get multiprocessing module."""
+    import multiprocessing
+
+    return multiprocessing
+
+
+def get_multiprocessing_ray():
+    """Get multiprocessing module for ray backend."""
+    import ray.util.multiprocessing as multiprocessing
+
+    log.warning(
+        "Gammapy support for parallelisation with ray is still a prototype and is not fully functional."
+    )
+    return multiprocessing
+
+
+def is_ray_initialized():
+    """Check if ray is initialized."""
+    try:
+        from ray import is_initialized
+
+        return is_initialized()
+    except ModuleNotFoundError:
+        return False
+
+
+def is_ray_available():
+    """Check if ray is available."""
+    try:
+        importlib.import_module("ray")
+        return True
+    except ModuleNotFoundError:
+        return False
+
+
+
+[docs] +class multiprocessing_manager: + """Context manager to update the default configuration for multiprocessing. + + Only the default configuration will be modified, if class arguments like + `n_jobs` and `parallel_backend` are set they will overwrite the default configuration. + + Parameters + ---------- + backend : {'multiprocessing', 'ray'} + Backend to use. + pool_kwargs : dict + Keyword arguments passed to the pool. The number of processes is limited + to the number of physical CPUs. + method : {'starmap', 'apply_async'} + Pool method to use. + method_kwargs : dict + Keyword arguments passed to the method + + Examples + -------- + :: + + import gammapy.utils.parallel as parallel + from gammapy.estimators import FluxPointsEstimator + + fpe = FluxPointsEstimator(energy_edges=[1, 3, 10] * u.TeV) + + with parallel.multiprocessing_manager( + backend="multiprocessing", + pool_kwargs=dict(processes=2), + ): + fpe.run(datasets) + """ + + def __init__(self, backend=None, pool_kwargs=None, method=None, method_kwargs=None): + global BACKEND_DEFAULT, POOL_KWARGS_DEFAULT, METHOD_DEFAULT, METHOD_KWARGS_DEFAULT, N_JOBS_DEFAULT + self._backend = BACKEND_DEFAULT + self._pool_kwargs = POOL_KWARGS_DEFAULT + self._method = METHOD_DEFAULT + self._method_kwargs = METHOD_KWARGS_DEFAULT + self._n_jobs = N_JOBS_DEFAULT + if backend is not None: + BACKEND_DEFAULT = ParallelBackendEnum.from_str(backend).value + if pool_kwargs is not None: + POOL_KWARGS_DEFAULT = pool_kwargs + N_JOBS_DEFAULT = pool_kwargs.get("processes", N_JOBS_DEFAULT) + if method is not None: + METHOD_DEFAULT = PoolMethodEnum(method).value + if method_kwargs is not None: + METHOD_KWARGS_DEFAULT = method_kwargs + + def __enter__(self): + pass + + def __exit__(self, type, value, traceback): + global BACKEND_DEFAULT, POOL_KWARGS_DEFAULT, METHOD_DEFAULT, METHOD_KWARGS_DEFAULT, N_JOBS_DEFAULT + BACKEND_DEFAULT = self._backend + POOL_KWARGS_DEFAULT = self._pool_kwargs + METHOD_DEFAULT = self._method + METHOD_KWARGS_DEFAULT = self._method_kwargs + N_JOBS_DEFAULT = self._n_jobs
+ + + +class ParallelMixin: + """Mixin class to handle parallel processing.""" + + _n_child_jobs = 1 + + @property + def n_jobs(self): + """Number of jobs as an integer.""" + # TODO: this is somewhat unusual behaviour. It deviates from a normal default value handling + if self._n_jobs is None: + return N_JOBS_DEFAULT + + return self._n_jobs + + @n_jobs.setter + def n_jobs(self, value): + """Number of jobs setter as an integer.""" + if not isinstance(value, (int, type(None))): + raise ValueError( + f"Invalid type: {value!r}, and integer or None is expected." + ) + + self._n_jobs = value + if ALLOW_CHILD_JOBS: + self._n_child_jobs = value + + def _update_child_jobs(self): + """needed because we can update only in the main process + otherwise global ALLOW_CHILD_JOBS has default value""" + if ALLOW_CHILD_JOBS: + self._n_child_jobs = self.n_jobs + else: + self._n_child_jobs = 1 + + @property + def _get_n_child_jobs(self): + """Number of allowed child jobs as an integer.""" + return self._n_child_jobs + + @property + def parallel_backend(self): + """Parallel backend as a string.""" + if self._parallel_backend is None: + return BACKEND_DEFAULT + + return self._parallel_backend + + @parallel_backend.setter + def parallel_backend(self, value): + """Parallel backend setter (str)""" + if value is None: + self._parallel_backend = None + else: + self._parallel_backend = ParallelBackendEnum.from_str(value).value + + +
+[docs] +def run_multiprocessing( + func, + inputs, + backend=None, + pool_kwargs=None, + method=None, + method_kwargs=None, + task_name="", +): + """Run function in a loop or in Parallel. + + Notes + ----- + The progress bar can be displayed for this function. + + Parameters + ---------- + func : function + Function to run. + inputs : list + List of arguments to pass to the function. + backend : {'multiprocessing', 'ray'}, optional + Backend to use. Default is None. + pool_kwargs : dict, optional + Keyword arguments passed to the pool. The number of processes is limited + to the number of physical CPUs. Default is None. + method : {'starmap', 'apply_async'} + Pool method to use. Default is "starmap". + method_kwargs : dict, optional + Keyword arguments passed to the method. Default is None. + task_name : str, optional + Name of the task to display in the progress bar. Default is "". + """ + + if backend is None: + backend = BACKEND_DEFAULT + + if method is None: + method = METHOD_DEFAULT + + if method_kwargs is None: + method_kwargs = METHOD_KWARGS_DEFAULT + + if pool_kwargs is None: + pool_kwargs = POOL_KWARGS_DEFAULT + + try: + method_enum = PoolMethodEnum(method) + except ValueError as e: + raise ValueError(f"Invalid method: {method}") from e + + processes = pool_kwargs.get("processes", N_JOBS_DEFAULT) + + backend = ParallelBackendEnum.from_str(backend) + multiprocessing = PARALLEL_BACKEND_MODULES[backend]() + + if backend == ParallelBackendEnum.multiprocessing: + cpu_count = multiprocessing.cpu_count() + + if processes > cpu_count: + log.info(f"Limiting number of processes from {processes} to {cpu_count}") + processes = cpu_count + + if multiprocessing.current_process().name != "MainProcess": + # with multiprocessing subprocesses cannot have childs (but possible with ray) + processes = 1 + + if processes == 1: + return run_loop( + func=func, inputs=inputs, method_kwargs=method_kwargs, task_name=task_name + ) + + if backend == ParallelBackendEnum.ray: + address = "auto" if is_ray_initialized() else None + pool_kwargs.setdefault("ray_address", address) + + log.info(f"Using {processes} processes to compute {task_name}") + + with multiprocessing.Pool(**pool_kwargs) as pool: + pool_func = POOL_METHODS[method_enum] + results = pool_func( + pool=pool, + func=func, + inputs=inputs, + method_kwargs=method_kwargs, + task_name=task_name, + ) + + return results
+ + + +def run_loop(func, inputs, method_kwargs=None, task_name=""): + """Loop over inputs and run function.""" + results = [] + + callback = method_kwargs.get("callback", None) + + for arguments in progress_bar(inputs, desc=task_name): + result = func(*arguments) + + if callback is not None: + result = callback(result) + + results.append(result) + + return results + + +def run_pool_star_map(pool, func, inputs, method_kwargs=None, task_name=""): + """Run function in parallel.""" + return pool.starmap(func, progress_bar(inputs, desc=task_name), **method_kwargs) + + +def run_pool_async(pool, func, inputs, method_kwargs=None, task_name=""): + """Run function in parallel async.""" + results = [] + + for arguments in progress_bar(inputs, desc=task_name): + result = pool.apply_async(func, arguments, **method_kwargs) + results.append(result) + # wait async run is done + [result.wait() for result in results] + return results + + +POOL_METHODS = { + PoolMethodEnum.starmap: run_pool_star_map, + PoolMethodEnum.apply_async: run_pool_async, +} + +PARALLEL_BACKEND_MODULES = { + ParallelBackendEnum.multiprocessing: get_multiprocessing, + ParallelBackendEnum.ray: get_multiprocessing_ray, +} +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/random/inverse_cdf.html b/docs/dev/_modules/gammapy/utils/random/inverse_cdf.html new file mode 100644 index 00000000000..16a62639288 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/random/inverse_cdf.html @@ -0,0 +1,636 @@ + + + + + + + + + + gammapy.utils.random.inverse_cdf — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.random.inverse_cdf

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import html
+import numpy as np
+from .utils import get_random_state
+
+__all__ = ["InverseCDFSampler"]
+
+
+
+[docs] +class InverseCDFSampler: + """Inverse CDF sampler. + + It determines a set of random numbers and calculate the cumulative + distribution function. + + Parameters + ---------- + pdf : `~gammapy.maps.Map` + Map of the predicted source counts. + axis : int + Axis along which sampling the indexes. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + """ + + def __init__(self, pdf, axis=None, random_state=0): + self.random_state = get_random_state(random_state) + self.axis = axis + + if axis is not None: + self.cdf = np.cumsum(pdf, axis=self.axis) + self.cdf /= self.cdf[:, [-1]] + else: + self.pdf_shape = pdf.shape + + pdf = pdf.ravel() / pdf.sum() + self.sortindex = np.argsort(pdf, axis=None) + + self.pdf = pdf[self.sortindex] + self.cdf = np.cumsum(self.pdf) + + def _repr_html_(self): + try: + return self.to_html() + except AttributeError: + return f"<pre>{html.escape(str(self))}</pre>" + +
+[docs] + def sample_axis(self): + """Sample along a given axis. + + Returns + ------- + index : tuple of `~numpy.ndarray` + Coordinates of the drawn sample. + """ + choices = self.random_state.uniform(high=1, size=len(self.cdf)) + shape_cdf = self.cdf.shape + + cdf_all = np.insert(self.cdf, 0, 0, axis=1) + edges = np.arange(shape_cdf[1] + 1) - 0.5 + + pix_coords = [] + + for cdf, choice in zip(cdf_all, choices): + pix = np.interp(choice, cdf, edges) + pix_coords.append(pix) + + return np.array(pix_coords)
+ + +
+[docs] + def sample(self, size): + """Draw sample from the given PDF. + + Parameters + ---------- + size : int + Number of samples to draw. + + Returns + ------- + index : tuple of `~numpy.ndarray` + Coordinates of the drawn sample. + """ + # pick numbers which are uniformly random over the cumulative distribution function + choice = self.random_state.uniform(high=1, size=size) + + # find the indices corresponding to this point on the CDF + index = np.searchsorted(self.cdf, choice) + index = self.sortindex[index] + + # map back to multi-dimensional indexing + index = np.unravel_index(index, self.pdf_shape) + index = np.vstack(index) + + index = index + self.random_state.uniform(low=-0.5, high=0.5, size=index.shape) + return index
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/random/utils.html b/docs/dev/_modules/gammapy/utils/random/utils.html new file mode 100644 index 00000000000..5acec7904c4 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/random/utils.html @@ -0,0 +1,845 @@ + + + + + + + + + + gammapy.utils.random.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.random.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Helper functions to work with distributions."""
+import numbers
+import numpy as np
+import scipy.integrate
+from astropy.coordinates import Angle
+from astropy.time import TimeDelta
+
+__all__ = [
+    "draw",
+    "get_random_state",
+    "normalize",
+    "pdf",
+    "sample_powerlaw",
+    "sample_sphere",
+    "sample_sphere_distance",
+    "sample_times",
+]
+
+
+
+[docs] +def normalize(func, x_min, x_max): + """Normalize a 1D function over a given range.""" + + def f(x): + return func(x) / scipy.integrate.quad(func, x_min, x_max)[0] + + return f
+ + + +
+[docs] +def pdf(func): + """One-dimensional PDF of a given radial surface density.""" + + def f(x): + return x * func(x) + + return f
+ + + +
+[docs] +def draw(low, high, size, dist, random_state="random-seed", *args, **kwargs): + """Allow drawing of random numbers from any distribution.""" + from .inverse_cdf import InverseCDFSampler + + n = 1000 + x = np.linspace(low, high, n) + + pdf = dist(x) + sampler = InverseCDFSampler(pdf=pdf, random_state=random_state) + + idx = sampler.sample(size) + x_sampled = np.interp(idx, np.arange(n), x) + return np.squeeze(x_sampled)
+ + + +
+[docs] +def get_random_state(init): + """Get a `numpy.random.RandomState` instance. + + The purpose of this utility function is to have a flexible way + to initialise a `~numpy.random.RandomState` instance, + a.k.a. a random number generator (``rng``). + + See :ref:`dev_random` for usage examples and further information. + + Parameters + ---------- + init : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`} + Available options to initialise the RandomState object: + + * ``int`` -- new RandomState instance seeded with this integer + (calls `~numpy.random.RandomState` with ``seed=init``) + * ``'random-seed'`` -- new RandomState instance seeded in a random way + (calls `~numpy.random.RandomState` with ``seed=None``) + * ``'global-rng'``, return the RandomState singleton used by ``numpy.random``. + * `~numpy.random.RandomState` -- do nothing, return the input. + + Returns + ------- + random_state : `~numpy.random.RandomState` + RandomState instance. + """ + if isinstance(init, (numbers.Integral, np.integer)): + return np.random.RandomState(init) + elif init == "random-seed": + return np.random.RandomState(None) + elif init == "global-rng": + return np.random.mtrand._rand + elif isinstance(init, np.random.RandomState): + return init + else: + raise ValueError( + "{} cannot be used to seed a numpy.random.RandomState" + " instance".format(init) + )
+ + + +
+[docs] +def sample_sphere(size, lon_range=None, lat_range=None, random_state="random-seed"): + """Sample random points on the sphere. + + Reference: http://mathworld.wolfram.com/SpherePointPicking.html + + Parameters + ---------- + size : int + Number of samples to generate. + lon_range : `~astropy.coordinates.Angle`, optional + Longitude range (min, max). + lat_range : `~astropy.coordinates.Angle`, optional + Latitude range (min, max). + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is "random-seed". + + Returns + ------- + lon, lat: `~astropy.coordinates.Angle` + Longitude and latitude coordinate arrays. + """ + random_state = get_random_state(random_state) + + if lon_range is None: + lon_range = Angle([0.0, 360.0], "deg") + + if lat_range is None: + lat_range = Angle([-90.0, 90.0], "deg") + + # Sample random longitude + u = random_state.uniform(size=size) + lon = lon_range[0] + (lon_range[1] - lon_range[0]) * u + + # Sample random latitude + v = random_state.uniform(size=size) + z_range = np.sin(lat_range) + z = z_range[0] + (z_range[1] - z_range[0]) * v + lat = np.arcsin(z) + + return lon, lat
+ + + +
+[docs] +def sample_sphere_distance( + distance_min=0, distance_max=1, size=None, random_state="random-seed" +): + """Sample random distances if the 3-dim space density is constant. + + This function uses inverse transform sampling + (`Wikipedia <http://en.wikipedia.org/wiki/Inverse_transform_sampling>`__) + to generate random distances for an observer located in a 3-dim + space with constant source density in the range ``(distance_min, distance_max)``. + + Parameters + ---------- + distance_min : float, optional + Minimum distance. Default is 0. + distance_max : float, optional + Maximum distance. Default is 1. + size : int or tuple of ints, optional + Output shape. Default is one sample. Passed to `numpy.random.uniform`. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is "random-seed". + + Returns + ------- + distance : `~numpy.ndarray` + Array of samples. + """ + random_state = get_random_state(random_state) + + # Since the differential distribution is dP / dr ~ r ^ 2, + # we have a cumulative distribution + # P(r) = a * r ^ 3 + b + # with P(r_min) = 0 and P(r_max) = 1 implying + # a = 1 / (r_max ^ 3 - r_min ^ 3) + # b = -a * r_min ** 3 + + a = 1.0 / (distance_max**3 - distance_min**3) + b = -a * distance_min**3 + + # Now for inverse transform sampling we need to use the inverse of + # u = a * r ^ 3 + b + # which is + # r = [(u - b)/ a] ^ (1 / 3) + u = random_state.uniform(size=size) + distance = ((u - b) / a) ** (1.0 / 3) + + return distance
+ + + +
+[docs] +def sample_powerlaw(x_min, x_max, gamma, size=None, random_state="random-seed"): + """Sample random values from a power law distribution. + + f(x) = x ** (-gamma) in the range x_min to x_max + + It is assumed that *gamma* is the **differential** spectral index. + + Reference: http://mathworld.wolfram.com/RandomNumber.html + + Parameters + ---------- + x_min : float + Minimum x range. + x_max : float + Maximum x range. + gamma : float + Power law index. + size : int, optional + Number of samples to generate. Default is None. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is "random-seed". + + Returns + ------- + x : `~numpy.ndarray` + Array of samples from the distribution. + """ + random_state = get_random_state(random_state) + + size = int(size) + + exp = -gamma + base = random_state.uniform(x_min**exp, x_max**exp, size) + x = base ** (1 / exp) + + return x
+ + + +
+[docs] +def sample_times( + size, + rate, + dead_time=TimeDelta(0, format="sec"), + return_diff=False, + random_state="random-seed", +): + """Make random times assuming a Poisson process. + + This function can be used to test event time series, + to have a comparison what completely random data looks like. + + Can be used in two ways (in either case the return type is `~astropy.time.TimeDelta`): + + * ``return_delta=False`` - Return absolute times, relative to zero (default) + * ``return_delta=True`` - Return time differences between consecutive events. + + Parameters + ---------- + size : int + Number of samples. + rate : `~astropy.units.Quantity` + Event rate. + dead_time : `~astropy.units.Quantity` or `~astropy.time.TimeDelta`, optional + Dead time after event. + return_diff : bool + Return time difference between events. Default False, return absolute times. + random_state : {int, 'random-seed', 'global-rng', `~numpy.random.RandomState`}, optional + Defines random number generator initialisation. + Passed to `~gammapy.utils.random.get_random_state`. + Default is "random-seed". + + Returns + ------- + time : `~astropy.time.TimeDelta` + Time differences (second) after time zero. + + Examples + -------- + Example how to simulate 100 events at a rate of 10 Hz. + As expected the last event occurs after about 10 seconds. + + >>> from astropy.units import Quantity + >>> from gammapy.utils.random import sample_times + >>> rate = Quantity(10, 'Hz') + >>> times = sample_times(size=100, rate=rate, random_state=0) + >>> times[-1] + <TimeDelta object: scale='None' format='sec' value=9.186484131475074> + """ + random_state = get_random_state(random_state) + + dead_time = TimeDelta(dead_time) + scale = (1 / rate).to("s").value + time_delta = random_state.exponential(scale=scale, size=size) + time_delta += dead_time.to("s").value + + if return_diff: + return TimeDelta(time_delta, format="sec") + else: + time = time_delta.cumsum() + return TimeDelta(time, format="sec")
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/regions.html b/docs/dev/_modules/gammapy/utils/regions.html new file mode 100644 index 00000000000..f2938408115 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/regions.html @@ -0,0 +1,823 @@ + + + + + + + + + + gammapy.utils.regions — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.regions

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Regions helper functions.
+
+Throughout Gammapy, we use `regions` to represent and work with regions.
+
+https://astropy-regions.readthedocs.io
+
+We might add in other conveniences and features here, e.g. sky coord contains
+without a WCS (see "sky and pixel regions" in PIG 10), or some HEALPix integration.
+
+TODO: before Gammapy v1.0, discuss what to do about ``gammapy.utils.regions``.
+Options: keep as-is, hide from the docs, or to remove it completely
+(if the functionality is available in ``astropy-regions`` directly.
+"""
+import operator
+import numpy as np
+from scipy.optimize import Bounds, minimize
+from astropy import units as u
+from astropy.coordinates import SkyCoord
+from regions import (
+    CircleAnnulusSkyRegion,
+    CircleSkyRegion,
+    CompoundSkyRegion,
+    EllipseSkyRegion,
+    RectangleSkyRegion,
+    Regions,
+)
+
+__all__ = [
+    "compound_region_to_regions",
+    "make_concentric_annulus_sky_regions",
+    "make_orthogonal_rectangle_sky_regions",
+    "regions_to_compound_region",
+    "region_to_frame",
+]
+
+
+def compound_region_center(compound_region):
+    """Compute center for a CompoundRegion.
+
+    The center of the compound region is defined here as the geometric median
+    of the individual centers of the regions. The geometric median is defined
+    as the point the minimises the distance to all other points.
+
+    Parameters
+    ----------
+    compound_region : `CompoundRegion`
+        Compound region.
+
+    Returns
+    -------
+    center : `~astropy.coordinates.SkyCoord`
+        Geometric median of the positions of the individual regions.
+    """
+    regions = compound_region_to_regions(compound_region)
+
+    if len(regions) == 1:
+        return regions[0].center
+
+    positions = SkyCoord([region.center.icrs for region in regions])
+
+    def f(x, coords):
+        """Function to minimize."""
+        lon, lat = x
+        center = SkyCoord(lon * u.deg, lat * u.deg)
+        return np.sum(center.separation(coords).deg)
+
+    ra, dec = positions.ra.wrap_at("180d").deg, positions.dec.deg
+
+    ub = np.array([np.max(ra), np.max(dec)])
+    lb = np.array([np.min(ra), np.min(dec)])
+
+    if np.all(ub == lb):
+        bounds = None
+    else:
+        bounds = Bounds(ub=ub, lb=lb)
+
+    result = minimize(
+        f,
+        x0=[np.mean(ra), np.mean(dec)],
+        args=(positions,),
+        bounds=bounds,
+        method="L-BFGS-B",
+    )
+
+    return SkyCoord(result.x[0], result.x[1], frame="icrs", unit="deg")
+
+
+
+[docs] +def compound_region_to_regions(region): + """Create list of regions from compound regions. + + Parameters + ---------- + region : `~regions.CompoundSkyRegion` or `~regions.SkyRegion` + Compound sky region. + + Returns + ------- + regions : `~regions.Regions` + List of regions. + """ + regions = Regions([]) + + if isinstance(region, CompoundSkyRegion): + if region.operator is operator.or_: + regions_1 = compound_region_to_regions(region.region1) + regions.extend(regions_1) + + regions_2 = compound_region_to_regions(region.region2) + regions.extend(regions_2) + else: + raise ValueError("Only union operator supported") + else: + return Regions([region]) + + return regions
+ + + +
+[docs] +def regions_to_compound_region(regions): + """Create compound region from list of regions, by creating the union. + + Parameters + ---------- + regions : `~regions.Regions` + List of regions. + + Returns + ------- + compound : `~regions.CompoundSkyRegion` or `~regions.CompoundPixelRegion` + Compound sky region. + """ + region_union = regions[0] + + for region in regions[1:]: + region_union = region_union.union(region) + + return region_union
+ + + +class SphericalCircleSkyRegion(CircleSkyRegion): + """Spherical circle sky region. + + TODO: is this separate class a good idea? + + - If yes, we could move it to the ``regions`` package? + - If no, we should implement some other solution. + Probably the alternative is to add extra methods to + the ``CircleSkyRegion`` class and have that support + both planar approximation and spherical case? + Or we go with the approach to always make a + TAN WCS and not have true cone select at all? + """ + + def contains(self, skycoord, wcs=None): + """Defined by spherical distance.""" + separation = self.center.separation(skycoord) + return separation < self.radius + + +
+[docs] +def make_orthogonal_rectangle_sky_regions(start_pos, end_pos, wcs, height, nbin=1): + """Utility returning an array of regions to make orthogonal projections. + + Parameters + ---------- + start_pos : `~astropy.regions.SkyCoord` + First sky coordinate defining the line to which the orthogonal boxes made. + end_pos : `~astropy.regions.SkyCoord` + Second sky coordinate defining the line to which the orthogonal boxes made. + height : `~astropy.quantity.Quantity` + Height of the rectangle region. + wcs : `~astropy.wcs.WCS` + WCS projection object. + nbin : int, optional + Number of boxes along the line. Default is 1. + + Returns + ------- + regions : list of `~regions.RectangleSkyRegion` + Regions in which the profiles are made. + """ + pix_start = start_pos.to_pixel(wcs) + pix_stop = end_pos.to_pixel(wcs) + + points = np.linspace(start=pix_start, stop=pix_stop, num=nbin + 1).T + centers = 0.5 * (points[:, :-1] + points[:, 1:]) + coords = SkyCoord.from_pixel(centers[0], centers[1], wcs) + + width = start_pos.separation(end_pos).to("rad") / nbin + angle = end_pos.position_angle(start_pos) - 90 * u.deg + + regions = [] + + for center in coords: + reg = RectangleSkyRegion( + center=center, width=width, height=u.Quantity(height), angle=angle + ) + regions.append(reg) + + return regions
+ + + +
+[docs] +def make_concentric_annulus_sky_regions( + center, radius_max, radius_min=1e-5 * u.deg, nbin=11 +): + """Make a list of concentric annulus regions. + + Parameters + ---------- + center : `~astropy.coordinates.SkyCoord` + Center coordinate. + radius_max : `~astropy.units.Quantity` + Maximum radius. + radius_min : `~astropy.units.Quantity`, optional + Minimum radius. Default is 1e-5 deg. + nbin : int, optional + Number of boxes along the line. Default is 11. + + Returns + ------- + regions : list of `~regions.RectangleSkyRegion` + Regions in which the profiles are made. + """ + regions = [] + + edges = np.linspace(radius_min, u.Quantity(radius_max), nbin) + + for r_in, r_out in zip(edges[:-1], edges[1:]): + region = CircleAnnulusSkyRegion( + center=center, + inner_radius=r_in, + outer_radius=r_out, + ) + regions.append(region) + + return regions
+ + + +
+[docs] +def region_to_frame(region, frame): + """Convert a region to a different frame. + + Parameters + ---------- + region : `~regions.SkyRegion` + Region to transform. + frame : {"icrs", "galactic"} + Frame to transform the region into. + + Returns + ------- + region_new : `~regions.SkyRegion` + Region in the given frame. + """ + from gammapy.maps import WcsGeom + + wcs = WcsGeom.create(skydir=region.center, binsz=0.01, frame=frame).wcs + region_new = region.to_pixel(wcs).to_sky(wcs) + return region_new
+ + + +def region_circle_to_ellipse(region): + """Convert a CircleSkyRegion to an EllipseSkyRegion. + + Parameters + ---------- + region : `~regions.CircleSkyRegion` + Region to transform. + + Returns + ------- + region_new : `~regions.EllipseSkyRegion` + Elliptical region with same major and minor axis. + """ + region_new = EllipseSkyRegion( + center=region.center, width=region.radius, height=region.radius + ) + return region_new +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/scripts.html b/docs/dev/_modules/gammapy/utils/scripts.html new file mode 100644 index 00000000000..b4b00d1fcfb --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/scripts.html @@ -0,0 +1,769 @@ + + + + + + + + + + gammapy.utils.scripts — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.scripts

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Utilities to create scripts and command-line tools."""
+import codecs
+import os.path
+import warnings
+from base64 import urlsafe_b64encode
+from pathlib import Path
+from uuid import uuid4
+import yaml
+from gammapy.utils.check import add_checksum, verify_checksum
+from gammapy.utils.deprecation import deprecated_renamed_argument
+
+__all__ = [
+    "from_yaml",
+    "get_images_paths",
+    "make_path",
+    "read_yaml",
+    "recursive_merge_dicts",
+    "to_yaml",
+    "write_yaml",
+]
+
+PATH_DOCS = Path(__file__).resolve().parent / ".." / ".." / "docs"
+SKIP = ["_static", "_build", "_checkpoints", "docs/user-guide/model-gallery/"]
+YAML_FORMAT = dict(sort_keys=False, indent=4, width=80, default_flow_style=False)
+
+
+
+[docs] +def get_images_paths(folder=PATH_DOCS): + """Generator yields a Path for each image used in notebook. + + Parameters + ---------- + folder : str + Folder where to search. + """ + for i in Path(folder).rglob("images/*"): + if not any(s in str(i) for s in SKIP): + yield i.resolve()
+ + + +
+[docs] +def from_yaml(text, sort_keys=False, checksum=False): + """Read YAML file. + + Parameters + ---------- + text : str + yaml str + sort_keys : bool, optional + Whether to sort keys. Default is False. + checksum : bool + Whether to perform checksum verification. Default is False. + + Returns + ------- + data : dict + YAML file content as a dictionary. + + """ + data = yaml.safe_load(text) + checksum_str = data.pop("checksum", None) + if checksum: + yaml_format = YAML_FORMAT.copy() + yaml_format["sort_keys"] = sort_keys + yaml_str = yaml.dump(data, **yaml_format) + if not verify_checksum(yaml_str, checksum_str): + warnings.warn("Checksum verification failed.", UserWarning) + + return data
+ + + +
+[docs] +def read_yaml(filename, logger=None, checksum=False): + """Read YAML file. + + Parameters + ---------- + filename : `~pathlib.Path` + Filename. + logger : `~logging.Logger` + Logger. + checksum : bool + Whether to perform checksum verification. Default is False. + + Returns + ------- + data : dict + YAML file content as a dictionary. + """ + path = make_path(filename) + if logger is not None: + logger.info(f"Reading {path}") + + text = path.read_text() + return from_yaml(text, checksum=checksum)
+ + + +
+[docs] +def to_yaml(dictionary, sort_keys=False): + """dict to yaml + + Parameters + ---------- + dictionary : dict + Python dictionary. + sort_keys : bool, optional + Whether to sort keys. Default is False. + """ + from gammapy.utils.metadata import CreatorMetaData + + yaml_format = YAML_FORMAT.copy() + yaml_format["sort_keys"] = sort_keys + text = yaml.safe_dump(dictionary, **yaml_format) + creation = CreatorMetaData() + return text + creation.to_yaml()
+ + + +
+[docs] +@deprecated_renamed_argument("dictionary", "text", "v1.3") +def write_yaml( + text, filename, logger=None, sort_keys=False, checksum=False, overwrite=False +): + """Write YAML file. + + Parameters + ---------- + text : str + yaml str + filename : `~pathlib.Path` + Filename. + logger : `~logging.Logger`, optional + Logger. Default is None. + sort_keys : bool, optional + Whether to sort keys. Default is True. + checksum : bool, optional + Whether to add checksum keyword. Default is False. + overwrite : bool, optional + Overwrite existing file. Default is False. + """ + + if checksum: + text = add_checksum(text, sort_keys=sort_keys) + + path = make_path(filename) + path.parent.mkdir(exist_ok=True) + if path.exists() and not overwrite: + raise IOError(f"File exists already: {path}") + if logger is not None: + logger.info(f"Writing {path}") + path.write_text(text)
+ + + +def make_name(name=None): + """Make a dataset name.""" + if name is None: + name = urlsafe_b64encode(codecs.decode(uuid4().hex, "hex")).decode()[:8] + while name[0] == "_": + name = urlsafe_b64encode(codecs.decode(uuid4().hex, "hex")).decode()[:8] + + if not isinstance(name, str): + raise ValueError( + "Name argument must be a string, " + f"got '{name}', which is of type '{type(name)}'" + ) + + return name + + +
+[docs] +def make_path(path): + """Expand environment variables on `~pathlib.Path` construction. + + Parameters + ---------- + path : str, `pathlib.Path` + Path to expand. + """ + # TODO: raise error or warning if environment variables that don't resolve are used + # e.g. "spam/$DAMN/ham" where `$DAMN` is not defined + # Otherwise this can result in cryptic errors later on + if path is None: + return None + else: + return Path(os.path.expandvars(path))
+ + + +
+[docs] +def recursive_merge_dicts(a, b): + """Recursively merge two dictionaries. + + Entries in 'b' override entries in 'a'. The built-in update function cannot be + used for hierarchical dicts, see: + http://stackoverflow.com/questions/3232943/update-value-of-a-nested-dictionary-of-varying-depth/3233356#3233356 + + Parameters + ---------- + a : dict + Dictionary to be merged. + b : dict + Dictionary to be merged. + + Returns + ------- + c : dict + Merged dictionary. + + Examples + -------- + >>> from gammapy.utils.scripts import recursive_merge_dicts + >>> a = dict(a=42, b=dict(c=43, e=44)) + >>> b = dict(d=99, b=dict(c=50, g=98)) + >>> c = recursive_merge_dicts(a, b) + >>> print(c) + {'a': 42, 'b': {'c': 50, 'e': 44, 'g': 98}, 'd': 99} + """ + c = a.copy() + for k, v in b.items(): + if k in c and isinstance(c[k], dict): + c[k] = recursive_merge_dicts(c[k], v) + else: + c[k] = v + return c
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/table.html b/docs/dev/_modules/gammapy/utils/table.html new file mode 100644 index 00000000000..a921d37918c --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/table.html @@ -0,0 +1,636 @@ + + + + + + + + + + gammapy.utils.table — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.table

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Table helper utilities."""
+import numpy as np
+from astropy.table import Table
+from astropy.units import Quantity
+from .units import standardise_unit
+
+__all__ = [
+    "hstack_columns",
+    "table_row_to_dict",
+    "table_standardise_units_copy",
+    "table_standardise_units_inplace",
+]
+
+
+
+[docs] +def hstack_columns(table, table_other): + """Stack the column data horizontally. + + Parameters + ---------- + table : `~astropy.table.Table` + Input table. + table_other : `~astropy.table.Table` + Other input table. + + Returns + ------- + stacked : `~astropy.table.Table` + Stacked table. + """ + stacked = Table() + + for column in table.colnames: + data = np.hstack([table[column].data[0], table_other[column].data[0]]) + stacked[column] = data[np.newaxis, :] + return stacked
+ + + +
+[docs] +def table_standardise_units_copy(table): + """Standardise units for all columns in a table in a copy. + + Calls `~gammapy.utils.units.standardise_unit`. + + Parameters + ---------- + table : `~astropy.table.Table` + Input table (won't be modified). + + Returns + ------- + table : `~astropy.table.Table` + Copy of the input table with standardised column units. + """ + # Note: we could add an `inplace` option (or variant of this function) + # See https://github.com/astropy/astropy/issues/6098 + table = Table(table) + return table_standardise_units_inplace(table)
+ + + +
+[docs] +def table_standardise_units_inplace(table): + """Standardise units for all columns in a table in place.""" + for column in table.columns.values(): + if column.unit: + column.unit = standardise_unit(column.unit) + + return table
+ + + +
+[docs] +def table_row_to_dict(row, make_quantity=True): + """Make one source data dictionary. + + Parameters + ---------- + row : `~astropy.table.Row` + Row. + make_quantity : bool, optional + Make quantity values for columns with units. + Default is True. + + Returns + ------- + data : dict + Row data. + """ + data = {} + for name, col in row.columns.items(): + val = row[name] + + if make_quantity and col.unit: + val = Quantity(val, unit=col.unit) + data[name] = val + return data
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/testing.html b/docs/dev/_modules/gammapy/utils/testing.html new file mode 100644 index 00000000000..9c832c77987 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/testing.html @@ -0,0 +1,819 @@ + + + + + + + + + + gammapy.utils.testing — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.testing

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Utilities for testing."""
+import os
+import sys
+from numpy.testing import assert_allclose
+import astropy
+import astropy.units as u
+from astropy.coordinates import SkyCoord
+from astropy.time import Time
+from astropy.utils.introspection import minversion
+import matplotlib.pyplot as plt
+from .compat import COPY_IF_NEEDED
+
+__all__ = [
+    "assert_quantity_allclose",
+    "assert_skycoord_allclose",
+    "assert_time_allclose",
+    "Checker",
+    "mpl_plot_check",
+    "requires_data",
+    "requires_dependency",
+]
+
+
+ASTROPY_LT_5_3 = minversion(astropy, "5.3.dev")
+
+# Cache for `requires_dependency`
+_requires_dependency_cache = {}
+
+
+
+[docs] +def requires_dependency(name): + """Decorator to declare required dependencies for tests. + + Examples + -------- + :: + + from gammapy.utils.testing import requires_dependency + + @requires_dependency('scipy') + def test_using_scipy(): + import scipy + ... + """ + import pytest + + if name in _requires_dependency_cache: + skip_it = _requires_dependency_cache[name] + else: + try: + __import__(name) + skip_it = False + except ImportError: + skip_it = True + + _requires_dependency_cache[name] = skip_it + + reason = f"Missing dependency: {name}" + return pytest.mark.skipif(skip_it, reason=reason)
+ + + +def has_data(name): + """Check if certain set of data available.""" + if name == "gammapy-extra": + return "GAMMAPY_EXTRA" in os.environ + elif name == "gammapy-data": + return "GAMMAPY_DATA" in os.environ + elif name == "gamma-cat": + return "GAMMA_CAT" in os.environ + elif name == "fermi-lat": + return "GAMMAPY_FERMI_LAT_DATA" in os.environ + else: + raise ValueError(f"Invalid name: {name}") + + +
+[docs] +def requires_data(name="gammapy-data"): + """Decorator to declare required data for tests. + + Examples + -------- + :: + + from gammapy.utils.testing import requires_data + + @requires_data() + def test_using_data_files(): + filename = "$GAMMAPY_DATA/..." + ... + """ + import pytest + + if not isinstance(name, str): + raise TypeError( + "You must call @requires_data with a name (str). " + "Usually this: @requires_data()" + ) + + skip_it = not has_data(name) + + reason = f"Missing data: {name}" + return pytest.mark.skipif(skip_it, reason=reason)
+ + + +def run_cli(cli, args, exit_code=0): + """Run Click command line tool. + + Thin wrapper around `click.testing.CliRunner` + that prints info to stderr if the command fails. + + Parameters + ---------- + cli : click.Command + Click command. + args : list of str + Argument list. + exit_code : int, optional + Expected exit code of the command. Default is 0. + + Returns + ------- + result : `click.testing.Result` + Result. + """ + from click.testing import CliRunner + + result = CliRunner().invoke(cli, args, catch_exceptions=False) + + if result.exit_code != exit_code: + sys.stderr.write("Exit code mismatch!\n") + sys.stderr.write("Output:\n") + sys.stderr.write(result.output) + + return result + + +
+[docs] +def assert_skycoord_allclose(actual, desired): + """Assert all-close for `astropy.coordinates.SkyCoord` objects. + + - Frames can be different, aren't checked at the moment. + """ + assert isinstance(actual, SkyCoord) + assert isinstance(desired, SkyCoord) + assert_allclose(actual.data.lon.deg, desired.data.lon.deg) + assert_allclose(actual.data.lat.deg, desired.data.lat.deg)
+ + + +
+[docs] +def assert_time_allclose(actual, desired, atol=1e-3): + """Assert all-close for `astropy.time.Time` objects. + + atol : Absolute tolerance in seconds. Default is 1e-3. + """ + assert isinstance(actual, Time) + assert isinstance(desired, Time) + assert actual.scale == desired.scale + assert actual.format == desired.format + dt = actual - desired + assert_allclose(dt.sec, 0, rtol=0, atol=atol)
+ + + +
+[docs] +def assert_quantity_allclose(actual, desired, rtol=1.0e-7, atol=None, **kwargs): + """Assert all-close for `~astropy.units.Quantity` objects. + + Notes + ----- + Requires that ``unit`` is identical, not just that quantities + are allclose taking different units into account. + + We prefer this kind of assert for testing, since units + should only change on purpose, so this tests more behaviour. + """ + # TODO: change this later to explicitly check units are the same! + # assert actual.unit == desired.unit + args = _unquantify_allclose_arguments(actual, desired, rtol, atol) + assert_allclose(*args, **kwargs)
+ + + +def _unquantify_allclose_arguments(actual, desired, rtol, atol): + actual = u.Quantity(actual, subok=True, copy=COPY_IF_NEEDED) + + desired = u.Quantity(desired, subok=True, copy=COPY_IF_NEEDED) + try: + desired = desired.to(actual.unit) + except u.UnitsError: + raise u.UnitsError( + "Units for 'desired' ({}) and 'actual' ({}) " + "are not convertible".format(desired.unit, actual.unit) + ) + + if atol is None: + # by default, we assume an absolute tolerance of 0 + atol = u.Quantity(0) + else: + atol = u.Quantity(atol, subok=True, copy=COPY_IF_NEEDED) + try: + atol = atol.to(actual.unit) + except u.UnitsError: + raise u.UnitsError( + "Units for 'atol' ({}) and 'actual' ({}) " + "are not convertible".format(atol.unit, actual.unit) + ) + + rtol = u.Quantity(rtol, subok=True, copy=COPY_IF_NEEDED) + try: + rtol = rtol.to(u.dimensionless_unscaled) + except Exception: + raise u.UnitsError("`rtol` should be dimensionless") + + return actual.value, desired.value, rtol.value, atol.value + + +
+[docs] +def mpl_plot_check(): + """Matplotlib plotting test context manager. + + Create a new figure on __enter__ and calls savefig for the + current figure in __exit__. This will trigger a render of the + Figure, which can sometimes raise errors if there is a problem. + + This is writing to an in-memory byte buffer, i.e. is faster + than writing to disk. + """ + from io import BytesIO + + class MPLPlotCheck: + def __enter__(self): + plt.figure() + + def __exit__(self, type, value, traceback): + plt.savefig(BytesIO(), format="png") + plt.close() + + return MPLPlotCheck()
+ + + +
+[docs] +class Checker: + """Base class for checker classes in Gammapy.""" + +
+[docs] + def run(self, checks="all"): + if checks == "all": + checks = self.CHECKS.keys() + + unknown_checks = sorted(set(checks).difference(self.CHECKS.keys())) + if unknown_checks: + raise ValueError(f"Unknown checks: {unknown_checks!r}") + + for check in checks: + method = getattr(self, self.CHECKS[check]) + yield from method()
+
+ + + +UNIT_REPLACEMENTS_ASTROPY_5_3 = { + "cm2 s TeV": "TeV s cm2", + "1 / (cm2 s)": "1 / (s cm2)", + "erg / (cm2 s)": "erg / (s cm2)", +} + + +def modify_unit_order_astropy_5_3(expected_str): + """Modify unit order for tests with astropy >= 5.3.""" + if ASTROPY_LT_5_3: + for old, new in UNIT_REPLACEMENTS_ASTROPY_5_3.items(): + expected_str = expected_str.replace(old, new) + + return expected_str +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/time.html b/docs/dev/_modules/gammapy/utils/time.html new file mode 100644 index 00000000000..fc2bae60f4d --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/time.html @@ -0,0 +1,760 @@ + + + + + + + + + + gammapy.utils.time — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.time

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Time related utility functions."""
+import numpy as np
+import astropy.units as u
+from astropy.time import Time, TimeDelta
+
+__all__ = [
+    "absolute_time",
+    "time_ref_from_dict",
+    "time_ref_to_dict",
+    "time_relative_to_ref",
+]
+
+TIME_KEYWORDS = ["MJDREFI", "MJDREFF", "TIMEUNIT", "TIMESYS", "TIMEREF"]
+
+# TODO: implement and document this properly.
+# see https://github.com/gammapy/gammapy/issues/284
+TIME_REF_FERMI = Time("2001-01-01T00:00:00")
+
+# Default time ref used for GTIs
+TIME_REF_DEFAULT = Time("2000-01-01T00:00:00", scale="tt")
+
+#: Default epoch gammapy uses for FITS files (MJDREF)
+#: 0 MJD, TT
+DEFAULT_EPOCH = Time(0, format="mjd", scale="tt")
+
+
+def time_to_fits(time, epoch=None, unit=u.s):
+    """Convert time to fits format.
+
+    Times are stored as duration since an epoch in FITS.
+
+
+    Parameters
+    ----------
+    time : `~astropy.time.Time`
+        Time to be converted.
+    epoch : `~astropy.time.Time`, optional
+        Epoch to use for the time. The corresponding keywords must
+        be stored in the same FITS header.
+        Default is None, so the `DEFAULT_EPOCH` is used.
+    unit : `~astropy.units.Unit`, optional
+        Unit, should be stored as `TIMEUNIT` in the same FITS header.
+        Default is u.s.
+
+    Returns
+    -------
+    time : astropy.units.Quantity
+        Duration since epoch.
+    """
+    if epoch is None:
+        epoch = DEFAULT_EPOCH
+    return (time - epoch).to(unit)
+
+
+def time_to_fits_header(time, epoch=None, unit=u.s):
+    """Convert time to fits header format.
+
+    Times are stored as duration since an epoch in FITS.
+
+
+    Parameters
+    ----------
+    time : `~astropy.time.Time`
+        Time to be converted.
+    epoch : `~astropy.time.Time`, optional
+        Epoch to use for the time. The corresponding keywords must
+        be stored in the same FITS header.
+        Default is None, so `DEFAULT_EPOCH` is used.
+    unit : `~astropy.units.Unit`, optional
+        Unit, should be stored as `TIMEUNIT` in the same FITS header.
+        Default is u.s.
+
+    Returns
+    -------
+    header_entry : tuple(float, string)
+        A float / comment tuple with the time and unit.
+    """
+    if epoch is None:
+        epoch = DEFAULT_EPOCH
+    time = time_to_fits(time, epoch)
+    return time.to_value(unit), unit.to_string("fits")
+
+
+
+[docs] +def time_ref_from_dict(meta, format="mjd", scale="tt"): + """Calculate the time reference from metadata. + + Parameters + ---------- + meta : dict + FITS time standard header information. + format: str, optional + Format of the `~astropy.time.Time` information. Default is 'mjd'. + scale: str, optional + Scale of the `~astropy.time.Time` information. Default is 'tt'. + + Returns + ------- + time : `~astropy.time.Time` + Time object with ``format='MJD'``. + """ + scale = meta.get("TIMESYS", scale).lower() + + # some files seem to have MJDREFF as string, not as float + mjdrefi = float(meta["MJDREFI"]) + mjdreff = float(meta["MJDREFF"]) + return Time(mjdrefi, mjdreff, format=format, scale=scale)
+ + + +
+[docs] +def time_ref_to_dict(time=None, scale="tt"): + """Convert the epoch to the relevant FITS header keywords. + + Parameters + ---------- + time : `~astropy.time.Time`, optional + The reference epoch for storing time in FITS. + Default is None, so 'DEFAULT_EPOCH' is used. + scale: str, optional + Scale of the `~astropy.time.Time` information. + Default is "tt". + + Returns + ------- + meta : dict + FITS time standard header information. + """ + if time is None: + time = DEFAULT_EPOCH + mjd = Time(time, scale=scale).mjd + i = np.floor(mjd).astype(np.int64) + f = mjd - i + return dict(MJDREFI=i, MJDREFF=f, TIMESYS=scale)
+ + + +
+[docs] +def time_relative_to_ref(time, meta): + """Convert a time using an existing reference. + + The time reference is built as MJDREFI + MJDREFF in units of MJD. + The time will be converted to seconds after the reference. + + Parameters + ---------- + time : `~astropy.time.Time` + Time to be converted. + meta : dict + Dictionary with the keywords ``MJDREFI`` and ``MJDREFF``. + + Returns + ------- + time_delta : `~astropy.time.TimeDelta` + Time in seconds after the reference. + """ + time_ref = time_ref_from_dict(meta) + return TimeDelta(time - time_ref, format="sec")
+ + + +
+[docs] +def absolute_time(time_delta, meta): + """Convert a MET into human-readable date and time. + + Parameters + ---------- + time_delta : `~astropy.time.TimeDelta` + Time in seconds after the MET reference. + meta : dict + Dictionary with the keywords ``MJDREFI`` and ``MJDREFF``. + + Returns + ------- + time : `~astropy.time.Time` + Absolute time with ``format='ISOT'`` and ``scale='UTC'``. + """ + time = time_ref_from_dict(meta) + time_delta + return Time(time.utc.isot)
+ + + +def extract_time_info(row): + """Extract the timing metadata from an event file header. + + Parameters + ---------- + row : dict + Dictionary with all the metadata of an event file. + + Returns + ------- + time_row : dict + Dictionary with only the time metadata. + """ + time_row = {} + for name in TIME_KEYWORDS: + time_row[name] = row[name] + return time_row + + +def unique_time_info(rows): + """Check if the time information are identical between all metadata dictionaries. + + Parameters + ---------- + rows : list + List of dictionaries with a list of time metadata from different observations. + + Returns + ------- + status : bool + True if the time metadata are identical between observations. + """ + if len(rows) <= 1: + return True + + first_obs = rows[0] + for row in rows[1:]: + for name in TIME_KEYWORDS: + if first_obs[name] != row[name] or row[name] is None: + return False + return True +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/utils/units.html b/docs/dev/_modules/gammapy/utils/units.html new file mode 100644 index 00000000000..d337ab112b3 --- /dev/null +++ b/docs/dev/_modules/gammapy/utils/units.html @@ -0,0 +1,638 @@ + + + + + + + + + + gammapy.utils.units — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.utils.units

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Units and Quantity related helper functions."""
+import logging
+from math import floor
+import numpy as np
+import astropy.units as u
+
+__all__ = ["standardise_unit", "unit_from_fits_image_hdu"]
+
+log = logging.getLogger(__name__)
+
+
+
+[docs] +def standardise_unit(unit): + """Standardise unit. + + Changes applied by this function: + + * Drop "photon" == "ph" from the unit + * Drop "count" == "ct" from the unit + + Parameters + ---------- + unit : `~astropy.units.Unit` or str + Any old unit. + + Returns + ------- + unit : `~astropy.units.Unit` + Shiny new, standardised unit. + + Examples + -------- + >>> from gammapy.utils.units import standardise_unit + >>> standardise_unit('ph cm-2 s-1') + Unit("1 / (s cm2)") + >>> standardise_unit('ct cm-2 s-1') + Unit("1 / (s cm2)") + >>> standardise_unit('cm-2 s-1') + Unit("1 / (s cm2)") + """ + unit = u.Unit(unit) + bases, powers = [], [] + for base, power in zip(unit.bases, unit.powers): + if str(base) not in {"ph", "ct"}: + bases.append(base) + powers.append(power) + + return u.CompositeUnit(scale=unit.scale, bases=bases, powers=powers)
+ + + +
+[docs] +def unit_from_fits_image_hdu(header): + """Read unit from a FITS image HDU. + + - The ``BUNIT`` key is used. + - `astropy.units.Unit` is called. + If the ``BUNIT`` value is invalid, a log warning + is emitted and the empty unit is used. + - `standardise_unit` is called + """ + unit = header.get("BUNIT", "") + + try: + u.Unit(unit) + except ValueError: + log.warning(f"Invalid value BUNIT={unit!r} in FITS header. Setting empty unit.") + unit = "" + + return standardise_unit(unit)
+ + + +def energy_unit_format(E): + """Format energy quantities to a string representation that is more comfortable to read. + + This is done by switching to the most relevant unit (keV, MeV, GeV, TeV) and changing the float precision. + + Parameters + ---------- + E: `~astropy.units.Quantity` + Quantity or list of quantities. + + Returns + ------- + str : str + A string or tuple of strings with energy unit formatted. + """ + try: + iter(E) + except TypeError: + pass + else: + return tuple(map(energy_unit_format, E)) + + i = floor(np.log10(E.to_value(u.eV)) / 3) # a new unit every 3 decades + unit = (u.eV, u.keV, u.MeV, u.GeV, u.TeV, u.PeV)[i] if i < 5 else u.PeV + + v = E.to_value(unit) + i = floor(np.log10(v)) + prec = (2, 1, 0)[i] if i < 3 else 0 + + return f"{v:0.{prec}f} {unit}" +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/visualization/cmap.html b/docs/dev/_modules/gammapy/visualization/cmap.html new file mode 100644 index 00000000000..992be1c7bb4 --- /dev/null +++ b/docs/dev/_modules/gammapy/visualization/cmap.html @@ -0,0 +1,671 @@ + + + + + + + + + + gammapy.visualization.cmap — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.visualization.cmap

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Helper functions and functions for plotting gamma-ray images."""
+from matplotlib.colors import LinearSegmentedColormap
+
+__all__ = ["colormap_hess", "colormap_milagro"]
+
+
+
+[docs] +def colormap_hess(transition=0.5, width=0.1): + """Colormap often used in H.E.S.S. collaboration publications. + + This colormap goes black -> blue -> red -> yellow -> white. + + A sharp blue -> red -> yellow transition is often used for significance images + with a value of red at ``transition ~ 5`` or ``transition ~ 7`` + so that the following effect is achieved: + + - black, blue: non-significant features, not well visible + - red: features at the detection threshold ``transition`` + - yellow, white: significant features, very well visible + + The transition parameter is defined between 0 and 1. To calculate the value + from data units an `~astropy.visualization.mpl_normalize.ImageNormalize` + instance should be used (see example below). + + Parameters + ---------- + transition : float + Value of the transition to red (between 0 and 1). Default is 0.5. + width : float + Width of the blue-red color transition (between 0 and 1). Default is 0.5. + + Returns + ------- + colormap : `matplotlib.colors.LinearSegmentedColormap` + Colormap. + + Examples + -------- + >>> from gammapy.visualization import colormap_hess + >>> from astropy.visualization.mpl_normalize import ImageNormalize + >>> from astropy.visualization import LinearStretch + >>> normalize = ImageNormalize(vmin=-5, vmax=15, stretch=LinearStretch()) + >>> transition = normalize(5) + >>> cmap = colormap_hess(transition=transition) + """ + # Compute normalised values (range 0 to 1) that + # correspond to red, blue, yellow. + red = float(transition) + + if width > red: + blue = 0.1 * red + else: + blue = red - width + + yellow = 2.0 / 3.0 * (1 - red) + red + + black, white = 0, 1 + + # Create custom colormap + # List entries: (value, (R, G, B)) + colors = [ + (black, "k"), + (blue, (0, 0, 0.8)), + (red, "r"), + (yellow, (1.0, 1.0, 0)), + (white, "w"), + ] + + return LinearSegmentedColormap.from_list(name="hess", colors=colors)
+ + + +
+[docs] +def colormap_milagro(transition=0.5, width=0.0001, huestart=0.6): + """Colormap often used in Milagro collaboration publications. + + This colormap is gray below ``transition`` and similar to the jet colormap above. + + A sharp gray -> color transition is often used for significance images + with a transition value of ``transition ~ 5`` or ``transition ~ 7``, + so that the following effect is achieved: + + - gray: non-significant features are not well visible + - color: significant features at the detection threshold ``transition`` + + Note that this colormap is often criticised for over-exaggerating small differences + in significance below and above the gray - color transition threshold. + + The transition parameter is defined between 0 and 1. To calculate the value + from data units an `~astropy.visualization.mpl_normalize.ImageNormalize` instance should be + used (see example below). + + Parameters + ---------- + transition : float + Transition value (below: gray, above: color). Default is 0.5. + width : float + Width of the transition. Default is 0.0001. + huestart : float + Hue of the color at ``transition``. Default is 0.6. + + Returns + ------- + colormap : `~matplotlib.colors.LinearSegmentedColormap` + Colormap. + + Examples + -------- + >>> from gammapy.visualization import colormap_milagro + >>> from astropy.visualization.mpl_normalize import ImageNormalize + >>> from astropy.visualization import LinearStretch + >>> normalize = ImageNormalize(vmin=-5, vmax=15, stretch=LinearStretch()) + >>> transition = normalize(5) + >>> cmap = colormap_milagro(transition=transition) + """ + from colorsys import hls_to_rgb + + # Compute normalised red, blue, yellow values + transition = float(transition) + + # Create custom colormap + # List entries: (value, (H, L, S)) + colors = [ + (0, (1, 1, 0)), + (transition - width, (1, 0, 0)), + (transition, (huestart, 0.4, 0.5)), + (transition + width, (huestart, 0.4, 1)), + (0.99, (0, 0.6, 1)), + (1, (0, 1, 1)), + ] + + # Convert HLS values to RGB values + rgb_colors = [(val, hls_to_rgb(*hls)) for (val, hls) in colors] + + return LinearSegmentedColormap.from_list(name="milagro", colors=rgb_colors)
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/visualization/datasets.html b/docs/dev/_modules/gammapy/visualization/datasets.html new file mode 100644 index 00000000000..1b25135413d --- /dev/null +++ b/docs/dev/_modules/gammapy/visualization/datasets.html @@ -0,0 +1,701 @@ + + + + + + + + + + gammapy.visualization.datasets — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.visualization.datasets

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import matplotlib.pyplot as plt
+
+__all__ = [
+    "plot_spectrum_datasets_off_regions",
+    "plot_npred_signal",
+]
+
+
+
+[docs] +def plot_spectrum_datasets_off_regions( + datasets, ax=None, legend=None, legend_kwargs=None, **kwargs +): + """Plot the off regions of spectrum datasets. + + Parameters + ---------- + datasets : `~gammapy.datasets.Datasets` or list of `~gammapy.datasets.SpectrumDatasetOnOff` + List of spectrum on-off datasets. + ax : `~astropy.visualization.wcsaxes.WCSAxes`, optional + Axes object to plot on. Default is None. + legend : bool, optional + Whether to add/display the labels of the off regions in a legend. By default True if + ``len(datasets) <= 10``. Default is None. + legend_kwargs : dict, optional + Keyword arguments used in `matplotlib.axes.Axes.legend`. The ``handler_map`` cannot be + overridden. Default is None. + **kwargs : dict + Keyword arguments used in `gammapy.maps.RegionNDMap.plot_region`. Can contain a + `~cycler.Cycler` in a ``prop_cycle`` argument. + + Notes + ----- + Properties from the ``prop_cycle`` have maximum priority, except ``color``, + ``edgecolor``/``color`` is selected from the sources below in this order: + ``kwargs["edgecolor"]``, ``kwargs["prop_cycle"]``, ``matplotlib.rcParams["axes.prop_cycle"]`` + ``matplotlib.rcParams["patch.edgecolor"]``, ``matplotlib.rcParams["patch.facecolor"]`` + is never used. + + Examples + -------- + Plot without legend and with thick circles:: + + plot_spectrum_datasets_off_regions(datasets, ax, legend=False, linewidth=2.5) + + Plot to visualise the overlap of off regions:: + + plot_spectrum_datasets_off_regions(datasets, ax, alpha=0.3, facecolor='black') + + Plot that cycles through colors (``edgecolor``) and line styles together:: + + plot_spectrum_datasets_off_regions(datasets, ax, prop_cycle=plt.cycler(color=list('rgb'), ls=['--', '-', ':'])) # noqa: E501 + + Plot that uses a modified `~matplotlib.rcParams`, has two legend columns, static and + dynamic colors, but only shows labels for ``datasets1`` and ``datasets2``. Note that + ``legend_kwargs`` only applies if it's given in the last function call with ``legend=True``:: + + plt.rc('legend', columnspacing=1, fontsize=9) + plot_spectrum_datasets_off_regions(datasets1, ax, legend=True, edgecolor='cyan') + plot_spectrum_datasets_off_regions(datasets2, ax, legend=True, legend_kwargs=dict(ncol=2)) + plot_spectrum_datasets_off_regions(datasets3, ax, legend=False, edgecolor='magenta') + """ + from matplotlib.legend_handler import HandlerPatch, HandlerTuple + from matplotlib.patches import CirclePolygon, Patch + + if ax is None: + ax = plt.subplot(projection=datasets[0].counts_off.geom.wcs) + + legend = legend or legend is None and len(datasets) <= 10 + legend_kwargs = legend_kwargs or {} + handles, labels = [], [] + + prop_cycle = kwargs.pop("prop_cycle", plt.rcParams["axes.prop_cycle"]) + + for props, dataset in zip(prop_cycle(), datasets): + plot_kwargs = kwargs.copy() + plot_kwargs["facecolor"] = "None" + plot_kwargs.setdefault("edgecolor") + plot_kwargs.update(props) + + dataset.counts_off.plot_region(ax, **plot_kwargs) + + # create proxy artist for the custom legend + if legend: + handle = Patch(**plot_kwargs) + handles.append(handle) + labels.append(dataset.name) + + if legend: + legend = ax.get_legend() + if legend: + handles = legend.legendHandles + handles + labels = [text.get_text() for text in legend.texts] + labels + + handles = [(handle, handle) for handle in handles] + tuple_handler = HandlerTuple(ndivide=None, pad=0) + + def patch_func( + legend, orig_handle, xdescent, ydescent, width, height, fontsize + ): + radius = width / 2 + return CirclePolygon((radius - xdescent, height / 2 - ydescent), radius) + + patch_handler = HandlerPatch(patch_func) + + legend_kwargs.setdefault("handletextpad", 0.5) + legend_kwargs["handler_map"] = {Patch: patch_handler, tuple: tuple_handler} + ax.legend(handles, labels, **legend_kwargs) + + return ax
+ + + +
+[docs] +def plot_npred_signal( + dataset, + ax=None, + model_names=None, + region=None, + **kwargs, +): + """ + Plot the energy distribution of predicted counts of a selection of models assigned to a dataset. + + The background and the sum af all the considered models predicted counts are plotted on top of individual + contributions of the considered models. + + Parameters + ---------- + dataset : an instance of `~gammapy.datasets.MapDataset` + The dataset from which to plot the npred_signal. + ax : `~matplotlib.axes.Axes`, optional + Axis object to plot on. Default is None. + model_names : list of str, optional + The list of models for which the npred_signal is plotted. Default is None. + If None, all models are considered. + region : `~regions.Region` or `~astropy.coordinates.SkyCoord`, optional + Region used to reproject predicted counts. Default is None. + If None, use the full dataset geometry. + **kwargs : dict + Keyword arguments to pass to `~gammapy.maps.RegionNDMap.plot`. + + Returns + ------- + axes : `~matplotlib.axes.Axes` + Axis object. + """ + + npred_not_stack = dataset.npred_signal( + model_names=model_names, stack=False + ).to_region_nd_map(region) + npred_background = dataset.npred_background().to_region_nd_map(region) + + if ax is None: + ax = plt.gca() + + npred_not_stack.plot(ax=ax, axis_name="energy", **kwargs) + if npred_not_stack.geom.axes["models"].nbin > 1: + npred_stack = npred_not_stack.sum_over_axes(["models"]) + npred_stack.plot(ax=ax, label="stacked models") + npred_background.plot(ax=ax, label="background", **kwargs) + + ax.set_ylabel("Predicted counts") + ax.legend() + + return ax
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/visualization/heatmap.html b/docs/dev/_modules/gammapy/visualization/heatmap.html new file mode 100644 index 00000000000..7f9665e9faa --- /dev/null +++ b/docs/dev/_modules/gammapy/visualization/heatmap.html @@ -0,0 +1,674 @@ + + + + + + + + + + gammapy.visualization.heatmap — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.visualization.heatmap

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import numpy as np
+import matplotlib.pyplot as plt
+
+# taken from the matploltlib documentation
+# https://matplotlib.org/3.1.0/gallery/images_contours_and_fields/image_annotated_heatmap.html#sphx-glr-gallery-images-contours-and-fields-image-annotated-heatmap-py
+
+__all__ = [
+    "annotate_heatmap",
+    "plot_heatmap",
+]
+
+
+
+[docs] +def plot_heatmap( + data, row_labels, col_labels, ax=None, cbar_kw=None, cbarlabel="", **kwargs +): + """ + Create a heatmap from a numpy array and two lists of labels. + + Parameters + ---------- + data : `~numpy.ndarray` + Data array. + row_labels : list or `~numpy.ndarray` + List or array of labels for the rows. + col_labels : list or `~numpy.ndarray` + List or array of labels for the columns. + ax : `matplotlib.axes.Axes`, optional + Axis instance to which the heatmap is plotted. Default is None. If None, the current one is used. + cbar_kw : dict, optional + A dictionary with arguments to `matplotlib.Figure.colorbar`. Default is None. + cbarlabel : str, optional + The label for the color bar. Default is "". + **kwargs : dict, optional + Other keyword arguments forwarded to `matplotlib.axes.Axes.imshow`. + """ + if ax is None: + ax = plt.gca() + + if cbar_kw is None: + cbar_kw = {} + + # Plot the heatmap + im = ax.imshow(data, **kwargs) + + # Create colorbar + cbar = ax.figure.colorbar(im, ax=ax, **cbar_kw) + cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom") + + # We want to show all ticks... + ax.set_xticks(np.arange(data.shape[1])) + ax.set_yticks(np.arange(data.shape[0])) + # ... and label them with the respective list entries. + ax.set_xticklabels(col_labels) + ax.set_yticklabels(row_labels) + + # Let the horizontal axes labeling appear on top. + ax.tick_params(top=True, bottom=False, labeltop=True, labelbottom=False) + + # Rotate the tick labels and set their alignment. + plt.setp(ax.get_xticklabels(), rotation=-30, ha="right", rotation_mode="anchor") + + # Turn spines off and create white grid. + for edge, spine in ax.spines.items(): + spine.set_visible(False) + + ax.set_xticks(np.arange(data.shape[1] + 1) - 0.5, minor=True) + ax.set_yticks(np.arange(data.shape[0] + 1) - 0.5, minor=True) + ax.grid(which="minor", color="w", linestyle="-", linewidth=1.5) + ax.tick_params(which="minor", bottom=False, left=False) + + return im, cbar
+ + + +
+[docs] +def annotate_heatmap( + im, + data=None, + valfmt="{x:.2f}", + textcolors=("black", "white"), + threshold=None, + **textkw, +): + """ + A function to annotate a heatmap. + + Parameters + ---------- + im + The AxesImage to be labeled. + data : `~numpy.ndarray`, optional + Data used to annotate. Default is None. If None, the image's data is used. + valfmt : str format or `matplotlib.ticker.Formatter`, optional + The format of the annotations inside the heatmap. This should either + use the string format method, e.g. "$ {x:.2f}" + or be a `matplotlib.ticker.Formatter` instance. Default is "{x:.2f}". + textcolors : list or `~numpy.ndarray`, optional + Two color specifications. The first is used for + values below a threshold, the second for those above. Default is ["black", "white"]. + threshold : float, optional + Value in data units according to which the colors from textcolors are + applied. Default is None. If None the middle of the colormap is used as + separation. + **kwargs : dict, optional + Other keyword arguments forwarded to each call to `text` used to create + the text labels. + """ + import matplotlib + + if not isinstance(data, (list, np.ndarray)): + data = im.get_array() + + # Normalize the threshold to the images color range. + if threshold is not None: + threshold = im.norm(threshold) + else: + threshold = im.norm(data.max()) / 2.0 + + # Set default alignment to center, but allow it to be + # overwritten by textkw. + kw = dict(horizontalalignment="center", verticalalignment="center") + kw.update(textkw) + + # Get the formatter in case a string is supplied + if isinstance(valfmt, str): + valfmt = matplotlib.ticker.StrMethodFormatter(valfmt) + + # Loop over the data and create a `Text` for each "pixel". + # Change the text's color depending on the data. + texts = [] + for i in range(data.shape[0]): + for j in range(data.shape[1]): + kw.update(color=textcolors[int(im.norm(data[i, j]) > threshold)]) + text = im.axes.text(j, i, valfmt(data[i, j], None), **kw) + texts.append(text) + + return texts
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/visualization/panel.html b/docs/dev/_modules/gammapy/visualization/panel.html new file mode 100644 index 00000000000..ff0e92362db --- /dev/null +++ b/docs/dev/_modules/gammapy/visualization/panel.html @@ -0,0 +1,656 @@ + + + + + + + + + + gammapy.visualization.panel — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.visualization.panel

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+"""Helper functions and functions for plotting gamma-ray images."""
+import numpy as np
+from astropy.coordinates import Angle
+from matplotlib.gridspec import GridSpec
+
+__all__ = ["MapPanelPlotter"]
+
+__doctest_requires__ = {("colormap_hess", "colormap_milagro"): ["matplotlib"]}
+
+
+
+[docs] +class MapPanelPlotter: + """ + Map panel plotter class. + + Given a `~matplotlib.pyplot.Figure` object this class creates axes objects + using `~matplotlib.gridspec.GridSpec` and plots a given sky map onto these. + + Parameters + ---------- + figure : `~matplotlib.pyplot.figure.` + Figure instance. + xlim : `~astropy.coordinates.Angle` + Angle object specifying the longitude limits. + ylim : `~astropy.coordinates.Angle` + Angle object specifying the latitude limits. + npanels : int + Number of panels. + **kwargs : dict + Keyword arguments passed to `~matplotlib.gridspec.GridSpec`. + """ + + def __init__(self, figure, xlim, ylim, npanels=4, **kwargs): + + self.figure = figure + self.parameters = {"xlim": xlim, "ylim": ylim, "npanels": npanels} + self.grid_spec = GridSpec(nrows=npanels, ncols=1, **kwargs) + + def _get_ax_extend(self, ax, panel): + """Get width and height of the axis in world coordinates.""" + p = self.parameters + + # compute aspect ratio of the axis + aspect = ax.bbox.width / ax.bbox.height + + # compute width and height in world coordinates + height = np.abs(p["ylim"].diff()[0]) + width = aspect * height + + left, bottom = p["xlim"][0].wrap_at("180d"), p["ylim"][0] + + width_all = np.abs(p["xlim"].wrap_at("180d").diff()[0]) + xoverlap = ((p["npanels"] * width) - width_all) / (p["npanels"] - 1.0) + if xoverlap < 0: + raise ValueError( + "No overlap between panels. Please reduce figure " + "height or increase vertical space between the panels." + ) + + left = left - panel * (width - xoverlap) + return left, bottom, width, height + + def _set_ax_fov(self, ax, panel): + left, bottom, width, height = self._get_ax_extend(ax, panel) + + # set fov + xlim = Angle([left, left - width]) + ylim = Angle([bottom, bottom + height]) + xlim_pix, ylim_pix = ax.wcs.wcs_world2pix(xlim.deg, ylim.deg, 1) + + ax.set_xlim(*xlim_pix) + ax.set_ylim(*ylim_pix) + return ax + +
+[docs] + def plot_panel(self, map, panel=1, panel_fov=None, **kwargs): + """ + Plot sky map on one panel. + + Parameters + ---------- + map : `~gammapy.maps.WcsNDMap` + Map to plot. + panel : int + Which panel to plot on (counted from top). Default is 1. + panel_fov : int, optional + Field of view of the panel. Default is None. + kwargs : dict + Keyword arguments to be passed to `~map.plot`. + """ + if panel_fov is None: + panel_fov = panel + spec = self.grid_spec[panel] + ax = self.figure.add_subplot(spec, projection=map.geom.wcs) + try: + ax = map.plot(ax=ax, **kwargs) + except AttributeError: + ax = map.plot_rgb(ax=ax, **kwargs) + ax = self._set_ax_fov(ax, panel_fov) + return ax
+ + +
+[docs] + def plot(self, map, **kwargs): + """ + Plot sky map on all panels. + + Parameters + ---------- + map : `~gammapy.maps.WcsNDMap` + Map to plot. + """ + p = self.parameters + axes = [] + for panel in range(p["npanels"]): + ax = self.plot_panel(map, panel=panel, **kwargs) + axes.append(ax) + return axes
+
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/gammapy/visualization/utils.html b/docs/dev/_modules/gammapy/visualization/utils.html new file mode 100644 index 00000000000..b59226e0d5c --- /dev/null +++ b/docs/dev/_modules/gammapy/visualization/utils.html @@ -0,0 +1,959 @@ + + + + + + + + + + gammapy.visualization.utils — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for gammapy.visualization.utils

+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+import logging as log
+import numpy as np
+from scipy.interpolate import CubicSpline
+from scipy.optimize import curve_fit
+from scipy.stats import norm
+from astropy.visualization import make_lupton_rgb
+import matplotlib.axes as maxes
+import matplotlib.pyplot as plt
+from mpl_toolkits.axes_grid1 import make_axes_locatable
+
+__all__ = [
+    "add_colorbar",
+    "plot_contour_line",
+    "plot_map_rgb",
+    "plot_theta_squared_table",
+    "plot_distribution",
+]
+
+
+ARTIST_TO_LINE_PROPERTIES = {
+    "color": "markeredgecolor",
+    "edgecolor": "markeredgecolor",
+    "ec": "markeredgecolor",
+    "facecolor": "markerfacecolor",
+    "fc": "markerfacecolor",
+    "linewidth": "markeredgewidth",
+    "lw": "markeredgewidth",
+}
+
+
+
+[docs] +def add_colorbar(img, ax, axes_loc=None, **kwargs): + """ + Add colorbar to a given axis. + + Parameters + ---------- + img : `~matplotlib.image.AxesImage` + The image to plot the colorbar for. + ax : `~matplotlib.axes.Axes` + Matplotlib axes. + axes_loc : dict, optional + Keyword arguments passed to `~mpl_toolkits.axes_grid1.axes_divider.AxesDivider.append_axes`. + kwargs : dict, optional + Keyword arguments passed to `~matplotlib.pyplot.colorbar`. + + Returns + ------- + cbar : `~matplotlib.pyplot.colorbar` + The colorbar. + + Examples + -------- + .. testcode:: + + from gammapy.maps import Map + from gammapy.visualization import add_colorbar + import matplotlib.pyplot as plt + map_ = Map.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + axes_loc = {"position": "right", "size": "2%", "pad": "10%"} + kwargs_colorbar = {'label':'Colorbar label'} + + # Example outside gammapy + fig = plt.figure(figsize=(6, 3)) + ax = fig.add_subplot(111) + img = ax.imshow(map_.sum_over_axes().data[0,:,:]) + add_colorbar(img, ax=ax, axes_loc=axes_loc, **kwargs_colorbar) + + # `add_colorbar` is available for the `plot` function here: + fig = plt.figure(figsize=(6, 3)) + ax = fig.add_subplot(111) + map_.sum_over_axes().plot(ax=ax, add_cbar=True, axes_loc=axes_loc, + kwargs_colorbar=kwargs_colorbar) # doctest: +SKIP + + """ + kwargs.setdefault("use_gridspec", True) + kwargs.setdefault("orientation", "vertical") + + axes_loc = axes_loc or {} + axes_loc.setdefault("position", "right") + axes_loc.setdefault("size", "5%") + axes_loc.setdefault("pad", "2%") + axes_loc.setdefault("axes_class", maxes.Axes) + + divider = make_axes_locatable(ax) + cax = divider.append_axes(**axes_loc) + cbar = plt.colorbar(img, cax=cax, **kwargs) + return cbar
+ + + +
+[docs] +def plot_map_rgb(map_, ax=None, **kwargs): + """ + Plot RGB image on matplotlib WCS axes. + + This function is based on the `~astropy.visualization.make_lupton_rgb` function. The input map must + contain 1 non-spatial axis with exactly 3 bins. If this is not the case, the map has to be resampled + before using the `plot_map_rgb` function (e.g. as shown in the code example below). + + Parameters + ---------- + map_ : `~gammapy.maps.WcsNDMap` + WCS map. The map must contain 1 non-spatial axis with exactly 3 bins. + ax : `~astropy.visualization.wcsaxes.WCSAxes`, optional + WCS axis object to plot on. + **kwargs : dict + Keyword arguments passed to `~astropy.visualization.make_lupton_rgb`. + + Returns + ------- + ax : `~astropy.visualization.wcsaxes.WCSAxes` + WCS axis object. + + Examples + -------- + >>> from gammapy.visualization import plot_map_rgb + >>> from gammapy.maps import Map, MapAxis + >>> import astropy.units as u + >>> map_ = Map.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> axis_rgb = MapAxis.from_energy_edges( + ... [0.1, 0.2, 0.5, 10], unit=u.TeV, name="energy", interp="log" + ... ) + >>> map_ = map_.resample_axis(axis_rgb) + >>> kwargs = {"stretch": 0.5, "Q": 1, "minimum": 0.15} + >>> plot_map_rgb(map_.smooth(0.08*u.deg), **kwargs) #doctest: +SKIP + """ + geom = map_.geom + if len(geom.axes) != 1 or geom.axes[0].nbin != 3: + raise ValueError( + "One non-spatial axis with exactly 3 bins is needed to plot an RGB image" + ) + + data = [data_slice / np.nanmax(data_slice.flatten()) for data_slice in map_.data] + data = make_lupton_rgb(*data, **kwargs) + + ax = map_._plot_default_axes(ax=ax) + ax.imshow(data) + + if geom.is_allsky: + ax = map_._plot_format_allsky(ax) + else: + ax = map_._plot_format(ax) + + # without this the axis limits are changed when calling scatter + ax.autoscale(enable=False) + + return ax
+ + + +
+[docs] +def plot_contour_line(ax, x, y, **kwargs): + """Plot smooth curve from contour points.""" + xf = x + yf = y + + # close contour + if not (x[0] == x[-1] and y[0] == y[-1]): + xf = np.append(x, x[0]) + yf = np.append(y, y[0]) + + # curve parametrization must be strictly increasing + # so we use the cumulative distance of each point from the first one + dist = np.sqrt(np.diff(xf) ** 2.0 + np.diff(yf) ** 2.0) + dist = [0] + list(dist) + t = np.cumsum(dist) + ts = np.linspace(0, t[-1], 50) + + # 1D cubic spline interpolation + cs = CubicSpline(t, np.c_[xf, yf], bc_type="periodic") + out = cs(ts) + + # plot + if "marker" in kwargs.keys(): + marker = kwargs.pop("marker") + else: + marker = "+" + if "color" in kwargs.keys(): + color = kwargs.pop("color") + else: + color = "b" + + ax.plot(out[:, 0], out[:, 1], "-", color=color, **kwargs) + ax.plot(xf, yf, linestyle="", marker=marker, color=color)
+ + + +
+[docs] +def plot_theta_squared_table(table): + """Plot the theta2 distribution of counts, excess and significance. + + Take the table containing the ON counts, the OFF counts, the acceptance, + the off acceptance and the alpha (normalisation between ON and OFF) + for each theta2 bin. + + Parameters + ---------- + table : `~astropy.table.Table` + Required columns: theta2_min, theta2_max, counts, counts_off and alpha + """ + from gammapy.maps import MapAxis + from gammapy.maps.axes import UNIT_STRING_FORMAT + from gammapy.maps.utils import edges_from_lo_hi + + theta2_edges = edges_from_lo_hi( + table["theta2_min"].quantity, table["theta2_max"].quantity + ) + theta2_axis = MapAxis.from_edges(theta2_edges, interp="lin", name="theta_squared") + + ax0 = plt.subplot(2, 1, 1) + + x = theta2_axis.center.value + x_edges = theta2_axis.edges.value + xerr = (x - x_edges[:-1], x_edges[1:] - x) + + ax0.errorbar( + x, + table["counts"], + xerr=xerr, + yerr=np.sqrt(table["counts"]), + linestyle="None", + label="Counts", + ) + + ax0.errorbar( + x, + table["counts_off"], + xerr=xerr, + yerr=np.sqrt(table["counts_off"]), + linestyle="None", + label="Counts Off", + ) + + ax0.errorbar( + x, + table["excess"], + xerr=xerr, + yerr=(table["excess_errn"], table["excess_errp"]), + fmt="+", + linestyle="None", + label="Excess", + ) + + ax0.set_ylabel("Counts") + ax0.set_xticks([]) + ax0.set_xlabel("") + ax0.legend() + + ax1 = plt.subplot(2, 1, 2) + ax1.errorbar(x, table["sqrt_ts"], xerr=xerr, linestyle="None") + ax1.set_xlabel(f"Theta [{theta2_axis.unit.to_string(UNIT_STRING_FORMAT)}]") + ax1.set_ylabel("Significance")
+ + + +
+[docs] +def plot_distribution( + wcs_map, + ax=None, + ncols=3, + func=None, + kwargs_hist=None, + kwargs_axes=None, + kwargs_fit=None, +): + """ + Plot the 1D distribution of data inside a map as an histogram. If the dimension of the map is smaller than 2, + a unique plot will be displayed. Otherwise, if the dimension is 3 or greater, a grid of plot will be displayed. + + Parameters + ---------- + wcs_map : `~gammapy.maps.WcsNDMap` + A map that contains data to be plotted. + ax : `~matplotlib.axes.Axes` or list of `~matplotlib.axes.Axes` + Axis object to plot on. If a list of Axis is provided it has to be the same length as the length of _map.data. + ncols : int + Number of columns to plot if a "plot grid" was to be done. + func : function object or str + The function used to fit a map data histogram or "norm". Default is None. + If None, no fit will be performed. If "norm" is given, `scipy.stats.norm.pdf` + will be passed to `scipy.optimize.curve_fit`. + kwargs_hist : dict + Keyword arguments to pass to `matplotlib.pyplot.hist`. + kwargs_axes : dict + Keyword arguments to pass to `matplotlib.axes.Axes`. + kwargs_fit : dict + Keyword arguments to pass to `scipy.optimize.curve_fit` + + Returns + ------- + axes : `~numpy.ndarray` of `~matplotlib.pyplot.Axes` + Array of Axes. + result_list : list of dict + List of dictionnary that contains the results of `scipy.optimize.curve_fit`. The number of elements in the list + correspond to the dimension of the non-spatial axis of the map. + The dictionnary contains: + + * `axis_edges` : the edges of the non-spatial axis bin used + * `param` : the best-fit parameters of the input function `func` + * `covar` : the covariance matrix for the fitted parameters `param` + * `info_dict` : the `infodict` return of `scipy.optimize.curve_fit` + + Examples + -------- + >>> from gammapy.datasets import MapDataset + >>> from gammapy.estimators import TSMapEstimator + >>> from scipy.stats import norm + >>> from gammapy.visualization import plot_distribution + >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") + >>> tsmap_est = TSMapEstimator().run(dataset) + >>> axs, res = plot_distribution(tsmap_est.sqrt_ts, func="norm", kwargs_hist={'bins': 75, 'range': (-10, 10), 'density': True}) + >>> # Equivalently, one can do the following: + >>> func = lambda x, mu, sig : norm.pdf(x, loc=mu, scale=sig) + >>> axs, res = plot_distribution(tsmap_est.sqrt_ts, func=func, kwargs_hist={'bins': 75, 'range': (-10, 10), 'density': True}) + """ + + from gammapy.maps import WcsNDMap # import here to avoid circular import + + if not isinstance(wcs_map, WcsNDMap): + raise TypeError( + f"map_ must be an instance of gammapy.maps.WcsNDMap, given {type(wcs_map)}" + ) + + kwargs_hist = kwargs_hist or {} + kwargs_axes = kwargs_axes or {} + kwargs_fit = kwargs_fit or {} + + kwargs_hist.setdefault("density", True) + kwargs_fit.setdefault("full_output", True) + + cutout, mask = wcs_map.cutout_and_mask_region() + idx_x, idx_y = np.where(mask) + + data = cutout.data[..., idx_x, idx_y] + + if ax is None: + n_plot = len(data) + cols = min(ncols, n_plot) + rows = 1 + (n_plot - 1) // cols + + width = 12 + figsize = (width, width * rows / cols) + + fig, axes = plt.subplots( + nrows=rows, + ncols=cols, + figsize=figsize, + ) + cells_in_grid = rows * cols + else: + axes = np.array([ax]) + cells_in_grid = axes.size + + if not isinstance(axes, np.ndarray): + axes = np.array([axes]) + + result_list = [] + + for idx in range(cells_in_grid): + + axe = axes.flat[idx] + if idx > len(data) - 1: + axe.set_visible(False) + continue + d = data[idx][np.isfinite(data[idx])] + n, bins, _ = axe.hist(d, **kwargs_hist) + + if func is not None: + kwargs_plot_fit = {"label": "Fit"} + centers = 0.5 * (bins[1:] + bins[:-1]) + + if func == "norm": + + def func_to_fit(x, mu, sigma): + return norm.pdf(x, mu, sigma) + + pars, cov, infodict, message, _ = curve_fit( + func_to_fit, centers, n, **kwargs_fit + ) + + mu, sig = pars[0], pars[1] + err_mu, err_sig = np.sqrt(cov[0][0]), np.sqrt(cov[1][1]) + + label_norm = ( + r"$\mu$ = {:.2f} ± {:.2E}\n$\sigma$ = {:.2f} ± {:.2E}".format( + mu, err_mu, sig, err_sig + ) + ).replace(r"\n", "\n") + kwargs_plot_fit["label"] = label_norm + + else: + func_to_fit = func + + pars, cov, infodict, message, _ = curve_fit( + func_to_fit, centers, n, **kwargs_fit + ) + + axis_edges = ( + wcs_map.geom.axes[-1].edges[idx], + wcs_map.geom.axes[-1].edges[idx + 1], + ) + result_dict = { + "axis_edges": axis_edges, + "param": pars, + "covar": cov, + "info_dict": infodict, + } + result_list.append(result_dict) + log.info(message) + + xmin, xmax = kwargs_hist.get("range", (np.min(d), np.max(d))) + x = np.linspace(xmin, xmax, 1000) + + axe.plot(x, func_to_fit(x, *pars), lw=2, color="black", **kwargs_plot_fit) + + axe.set(**kwargs_axes) + axe.legend() + + return axes, result_list
+ +
+ +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_modules/index.html b/docs/dev/_modules/index.html new file mode 100644 index 00000000000..99aa6f6c1b2 --- /dev/null +++ b/docs/dev/_modules/index.html @@ -0,0 +1,654 @@ + + + + + + + + + + Overview: module code — gammapy vX.Y.Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +

All modules for which code is available

+ + +
+ + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/dev/_sources/sg_execution_times.rst.txt b/docs/dev/_sources/sg_execution_times.rst.txt index 4ae56c1caa3..10cdffd681c 100644 --- a/docs/dev/_sources/sg_execution_times.rst.txt +++ b/docs/dev/_sources/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**09:48.892** total execution time for 84 files **from all galleries**: +**09:35.198** total execution time for 84 files **from all galleries**: .. container:: @@ -33,253 +33,253 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_api_priors.py` (``../examples/tutorials/api/priors.py``) - - 01:23.353 + - 01:16.929 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_light_curve_flare.py` (``../examples/tutorials/analysis-time/light_curve_flare.py``) - - 00:36.234 + - 00:35.825 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_analysis_3d.py` (``../examples/tutorials/analysis-3d/analysis_3d.py``) - - 00:33.576 + - 00:32.201 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectral_analysis.py` (``../examples/tutorials/analysis-1d/spectral_analysis.py``) - - 00:31.403 + - 00:30.836 - 0.0 * - :ref:`sphx_glr_tutorials_api_astro_dark_matter.py` (``../examples/tutorials/api/astro_dark_matter.py``) - - 00:28.372 + - 00:27.616 + - 0.0 + * - :ref:`sphx_glr_tutorials_analysis-3d_event_sampling.py` (``../examples/tutorials/analysis-3d/event_sampling.py``) + - 00:23.378 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_time_resolved_spectroscopy.py` (``../examples/tutorials/analysis-time/time_resolved_spectroscopy.py``) - - 00:22.645 + - 00:22.182 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_flux_profiles.py` (``../examples/tutorials/analysis-3d/flux_profiles.py``) - - 00:22.040 + - 00:21.969 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-2d_detect.py` (``../examples/tutorials/analysis-2d/detect.py``) - - 00:20.709 + - 00:20.755 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_energy_dependent_estimation.py` (``../examples/tutorials/analysis-3d/energy_dependent_estimation.py``) - - 00:20.641 + - 00:19.832 - 0.0 - * - :ref:`sphx_glr_tutorials_analysis-3d_event_sampling.py` (``../examples/tutorials/analysis-3d/event_sampling.py``) - - 00:20.232 + * - :ref:`sphx_glr_tutorials_analysis-time_light_curve_simulation.py` (``../examples/tutorials/analysis-time/light_curve_simulation.py``) + - 00:19.340 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_cta_data_analysis.py` (``../examples/tutorials/analysis-3d/cta_data_analysis.py``) - - 00:17.666 - - 0.0 - * - :ref:`sphx_glr_tutorials_analysis-time_light_curve_simulation.py` (``../examples/tutorials/analysis-time/light_curve_simulation.py``) - - 00:17.228 + - 00:17.098 - 0.0 * - :ref:`sphx_glr_tutorials_api_datasets.py` (``../examples/tutorials/api/datasets.py``) - - 00:16.524 + - 00:15.979 - 0.0 * - :ref:`sphx_glr_tutorials_api_makers.py` (``../examples/tutorials/api/makers.py``) - - 00:15.478 + - 00:15.004 - 0.0 * - :ref:`sphx_glr_tutorials_starting_analysis_1.py` (``../examples/tutorials/starting/analysis_1.py``) - - 00:15.125 + - 00:14.832 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-2d_ring_background.py` (``../examples/tutorials/analysis-2d/ring_background.py``) - - 00:12.697 + - 00:12.271 - 0.0 * - :ref:`sphx_glr_tutorials_api_fitting.py` (``../examples/tutorials/api/fitting.py``) - - 00:11.576 + - 00:11.319 - 0.0 * - :ref:`sphx_glr_tutorials_api_model_management.py` (``../examples/tutorials/api/model_management.py``) - - 00:10.548 + - 00:10.304 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_simulate_3d.py` (``../examples/tutorials/analysis-3d/simulate_3d.py``) - - 00:09.680 + - 00:09.838 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectral_analysis_hli.py` (``../examples/tutorials/analysis-1d/spectral_analysis_hli.py``) - - 00:08.091 + - 00:07.941 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_light_curve.py` (``../examples/tutorials/analysis-time/light_curve.py``) - - 00:07.645 + - 00:07.570 - 0.0 * - :ref:`sphx_glr_tutorials_starting_analysis_2.py` (``../examples/tutorials/starting/analysis_2.py``) - - 00:07.627 + - 00:07.435 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectrum_simulation.py` (``../examples/tutorials/analysis-1d/spectrum_simulation.py``) - - 00:07.450 - - 0.0 - * - :ref:`sphx_glr_tutorials_data_hawc.py` (``../examples/tutorials/data/hawc.py``) - - 00:07.407 - - 0.0 - * - :ref:`sphx_glr_tutorials_api_estimators.py` (``../examples/tutorials/api/estimators.py``) - - 00:07.092 + - 00:07.300 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_ebl.py` (``../examples/tutorials/analysis-1d/ebl.py``) - - 00:07.047 + - 00:06.980 + - 0.0 + * - :ref:`sphx_glr_tutorials_data_hawc.py` (``../examples/tutorials/data/hawc.py``) + - 00:06.798 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_analysis_mwl.py` (``../examples/tutorials/analysis-3d/analysis_mwl.py``) - - 00:06.868 + - 00:06.777 - 0.0 - * - :ref:`sphx_glr_tutorials_data_fermi_lat.py` (``../examples/tutorials/data/fermi_lat.py``) - - 00:06.800 + * - :ref:`sphx_glr_tutorials_api_estimators.py` (``../examples/tutorials/api/estimators.py``) + - 00:06.688 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_pulsar_analysis.py` (``../examples/tutorials/analysis-time/pulsar_analysis.py``) - - 00:06.701 + - 00:06.502 + - 0.0 + * - :ref:`sphx_glr_tutorials_data_fermi_lat.py` (``../examples/tutorials/data/fermi_lat.py``) + - 00:06.477 - 0.0 * - :ref:`sphx_glr_tutorials_api_catalog.py` (``../examples/tutorials/api/catalog.py``) - - 00:06.142 + - 00:06.020 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-2d_modeling_2D.py` (``../examples/tutorials/analysis-2d/modeling_2D.py``) - - 00:05.905 + - 00:05.603 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_sed_fitting.py` (``../examples/tutorials/analysis-1d/sed_fitting.py``) - - 00:05.478 + - 00:05.451 - 0.0 * - :ref:`sphx_glr_tutorials_data_cta.py` (``../examples/tutorials/data/cta.py``) - - 00:05.458 + - 00:05.193 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_extended_source_spectral_analysis.py` (``../examples/tutorials/analysis-1d/extended_source_spectral_analysis.py``) - - 00:04.634 + - 00:04.478 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectral_analysis_rad_max.py` (``../examples/tutorials/analysis-1d/spectral_analysis_rad_max.py``) - - 00:04.522 + - 00:04.304 - 0.0 * - :ref:`sphx_glr_tutorials_api_observation_clustering.py` (``../examples/tutorials/api/observation_clustering.py``) - - 00:04.113 + - 00:03.963 - 0.0 * - :ref:`sphx_glr_tutorials_api_irfs.py` (``../examples/tutorials/api/irfs.py``) - - 00:03.963 + - 00:03.469 - 0.0 * - :ref:`sphx_glr_tutorials_data_hess.py` (``../examples/tutorials/data/hess.py``) - - 00:03.435 - - 0.0 - * - :ref:`sphx_glr_tutorials_api_models.py` (``../examples/tutorials/api/models.py``) - - 00:03.056 + - 00:03.396 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_event_sampling_nrg_depend_models.py` (``../examples/tutorials/analysis-3d/event_sampling_nrg_depend_models.py``) - - 00:02.778 + - 00:02.943 - 0.0 - * - :ref:`sphx_glr_tutorials_api_maps.py` (``../examples/tutorials/api/maps.py``) - - 00:02.757 + * - :ref:`sphx_glr_tutorials_api_models.py` (``../examples/tutorials/api/models.py``) + - 00:02.497 - 0.0 * - :ref:`sphx_glr_tutorials_scripts_survey_map.py` (``../examples/tutorials/scripts/survey_map.py``) - - 00:02.564 + - 00:02.482 + - 0.0 + * - :ref:`sphx_glr_tutorials_api_maps.py` (``../examples/tutorials/api/maps.py``) + - 00:02.399 - 0.0 * - :ref:`sphx_glr_tutorials_api_mask_maps.py` (``../examples/tutorials/api/mask_maps.py``) - - 00:02.360 + - 00:02.057 - 0.0 * - :ref:`sphx_glr_tutorials_starting_overview.py` (``../examples/tutorials/starting/overview.py``) - - 00:01.961 + - 00:02.016 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_cta_sensitivity.py` (``../examples/tutorials/analysis-1d/cta_sensitivity.py``) - - 00:00.912 + - 00:00.892 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_absorbed.py` (``../examples/models/spectral/plot_absorbed.py``) - - 00:00.856 + - 00:00.812 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_variability_estimation.py` (``../examples/tutorials/analysis-time/variability_estimation.py``) - - 00:00.677 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_naima.py` (``../examples/models/spectral/plot_naima.py``) - - 00:00.471 + - 00:00.688 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_template_spectral.py` (``../examples/models/spectral/plot_template_spectral.py``) - - 00:00.464 + - 00:00.443 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_naima.py` (``../examples/models/spectral/plot_naima.py``) + - 00:00.429 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_exp_cutoff_powerlaw_3fgl.py` (``../examples/models/spectral/plot_exp_cutoff_powerlaw_3fgl.py``) - - 00:00.421 + - 00:00.382 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_exp_cutoff_powerlaw_norm_spectral.py` (``../examples/models/spectral/plot_exp_cutoff_powerlaw_norm_spectral.py``) - - 00:00.356 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_compound.py` (``../examples/models/spectral/plot_compound.py``) - - 00:00.339 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_broken_powerlaw.py` (``../examples/models/spectral/plot_broken_powerlaw.py``) - - 00:00.338 + - 00:00.340 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_powerlaw2.py` (``../examples/models/spectral/plot_powerlaw2.py``) - 00:00.335 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_smooth_broken_powerlaw.py` (``../examples/models/spectral/plot_smooth_broken_powerlaw.py``) - - 00:00.334 + - 00:00.323 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_broken_powerlaw.py` (``../examples/models/spectral/plot_broken_powerlaw.py``) + - 00:00.320 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_compound.py` (``../examples/models/spectral/plot_compound.py``) + - 00:00.320 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_powerlaw.py` (``../examples/models/spectral/plot_powerlaw.py``) - - 00:00.328 + - 00:00.318 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_disk.py` (``../examples/models/spatial/plot_disk.py``) - - 00:00.316 + - 00:00.307 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_gen_gauss.py` (``../examples/models/spatial/plot_gen_gauss.py``) - - 00:00.313 + - 00:00.303 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_powerlaw_norm_spectral.py` (``../examples/models/spectral/plot_powerlaw_norm_spectral.py``) - - 00:00.286 + - 00:00.274 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_logparabola_norm_spectral.py` (``../examples/models/spectral/plot_logparabola_norm_spectral.py``) - - 00:00.282 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_constant.py` (``../examples/models/spatial/plot_constant.py``) - - 00:00.278 + - 00:00.271 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_constant_spectral.py` (``../examples/models/spectral/plot_constant_spectral.py``) - - 00:00.247 + - 00:00.262 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_constant.py` (``../examples/models/spatial/plot_constant.py``) + - 00:00.226 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_template.py` (``../examples/models/spatial/plot_template.py``) - - 00:00.240 + - 00:00.225 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_piecewise_norm_spectral.py` (``../examples/models/spectral/plot_piecewise_norm_spectral.py``) - - 00:00.233 + - 00:00.225 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_4fgl_dr1.py` (``../examples/models/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.py``) - - 00:00.231 + - 00:00.220 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_4fgl.py` (``../examples/models/spectral/plot_super_exp_cutoff_powerlaw_4fgl.py``) - - 00:00.229 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_3fgl.py` (``../examples/models/spectral/plot_super_exp_cutoff_powerlaw_3fgl.py``) - - 00:00.227 + - 00:00.220 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_gauss_spectral.py` (``../examples/models/spectral/plot_gauss_spectral.py``) - - 00:00.226 + - 00:00.220 - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_gauss.py` (``../examples/models/spatial/plot_gauss.py``) - - 00:00.213 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_3fgl.py` (``../examples/models/spectral/plot_super_exp_cutoff_powerlaw_3fgl.py``) + - 00:00.219 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_logparabola.py` (``../examples/models/spectral/plot_logparabola.py``) - - 00:00.213 + - 00:00.207 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_exp_cutoff_powerlaw.py` (``../examples/models/spectral/plot_exp_cutoff_powerlaw.py``) - - 00:00.212 + - 00:00.206 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_point.py` (``../examples/models/spatial/plot_point.py``) - - 00:00.204 + - 00:00.198 - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_shell2.py` (``../examples/models/spatial/plot_shell2.py``) - - 00:00.186 + * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_powerlaw_temporal.py` (``../examples/models/temporal/plot_powerlaw_temporal.py``) + - 00:00.196 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_gauss.py` (``../examples/models/spatial/plot_gauss.py``) + - 00:00.184 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_shell.py` (``../examples/models/spatial/plot_shell.py``) - - 00:00.180 + - 00:00.181 - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_powerlaw_temporal.py` (``../examples/models/temporal/plot_powerlaw_temporal.py``) - - 00:00.164 + * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_shell2.py` (``../examples/models/spatial/plot_shell2.py``) + - 00:00.176 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_piecewise_norm_spatial.py` (``../examples/models/spatial/plot_piecewise_norm_spatial.py``) - - 00:00.153 + - 00:00.149 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_template_phase_temporal.py` (``../examples/models/temporal/plot_template_phase_temporal.py``) - - 00:00.133 + - 00:00.131 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_template_temporal.py` (``../examples/models/temporal/plot_template_temporal.py``) - - 00:00.125 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_gaussian_temporal.py` (``../examples/models/temporal/plot_gaussian_temporal.py``) - - 00:00.113 + - 00:00.121 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_generalized_gaussian_temporal.py` (``../examples/models/temporal/plot_generalized_gaussian_temporal.py``) - - 00:00.098 + - 00:00.110 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_gaussian_temporal.py` (``../examples/models/temporal/plot_gaussian_temporal.py``) + - 00:00.109 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_expdecay_temporal.py` (``../examples/models/temporal/plot_expdecay_temporal.py``) - - 00:00.098 + - 00:00.107 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_sine_temporal.py` (``../examples/models/temporal/plot_sine_temporal.py``) - - 00:00.093 + - 00:00.106 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_constant_temporal.py` (``../examples/models/temporal/plot_constant_temporal.py``) - - 00:00.092 + - 00:00.098 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_linear_temporal.py` (``../examples/models/temporal/plot_linear_temporal.py``) - 00:00.091 diff --git a/docs/dev/_sources/tutorials/analysis-1d/cta_sensitivity.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/cta_sensitivity.rst.txt index e2e9c113be3..2d83e2ba11a 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/cta_sensitivity.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/cta_sensitivity.rst.txt @@ -113,14 +113,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/analysis-1d/ebl.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/ebl.rst.txt index 7aa3098e782..39462c03327 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/ebl.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/ebl.rst.txt @@ -352,7 +352,7 @@ compound model. SkyModel - Name : 6vFdtFvE + Name : cB10uYE3 Datasets names : None Spectral model type : CompoundSpectralModel Spatial model type : @@ -367,7 +367,7 @@ compound model. SkyModel - Name : xP2y2u-k + Name : 1nW5kvpw Datasets names : None Spectral model type : PowerLawSpectralModel Spatial model type : diff --git a/docs/dev/_sources/tutorials/analysis-1d/extended_source_spectral_analysis.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/extended_source_spectral_analysis.rst.txt index 18749d16a11..3b86579aa3c 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/extended_source_spectral_analysis.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/extended_source_spectral_analysis.rst.txt @@ -157,14 +157,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/analysis-1d/sed_fitting.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/sed_fitting.rst.txt index 2fa8c2174f1..3fd1fa0a2ee 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/sed_fitting.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/sed_fitting.rst.txt @@ -162,7 +162,7 @@ attribute:
Table length=5 - +
diff --git a/docs/dev/_sources/tutorials/analysis-1d/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/sg_execution_times.rst.txt index 808fa568652..ab84e99960a 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**01:09.537** total execution time for 8 files **from tutorials/analysis-1d**: +**01:08.182** total execution time for 8 files **from tutorials/analysis-1d**: .. container:: @@ -33,26 +33,26 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_analysis-1d_spectral_analysis.py` (``spectral_analysis.py``) - - 00:31.403 + - 00:30.836 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectral_analysis_hli.py` (``spectral_analysis_hli.py``) - - 00:08.091 + - 00:07.941 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectrum_simulation.py` (``spectrum_simulation.py``) - - 00:07.450 + - 00:07.300 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_ebl.py` (``ebl.py``) - - 00:07.047 + - 00:06.980 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_sed_fitting.py` (``sed_fitting.py``) - - 00:05.478 + - 00:05.451 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_extended_source_spectral_analysis.py` (``extended_source_spectral_analysis.py``) - - 00:04.634 + - 00:04.478 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_spectral_analysis_rad_max.py` (``spectral_analysis_rad_max.py``) - - 00:04.522 + - 00:04.304 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-1d_cta_sensitivity.py` (``cta_sensitivity.py``) - - 00:00.912 + - 00:00.892 - 0.0 diff --git a/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis.rst.txt index 404f91b0ade..12fcd7112d2 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis.rst.txt @@ -199,14 +199,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -1220,7 +1220,7 @@ tutorial. .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 31.403 seconds) + **Total running time of the script:** (0 minutes 30.836 seconds) .. _sphx_glr_download_tutorials_analysis-1d_spectral_analysis.py: diff --git a/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_hli.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_hli.rst.txt index 3b940a80427..036522f592d 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_hli.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_hli.rst.txt @@ -143,14 +143,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -350,8 +350,8 @@ Here is what the configuration for our analysis looks like: parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:33:39.198723' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:09:56.901527' origin: null @@ -571,8 +571,8 @@ One can export/import the `~gammapy.analysis.AnalysisConfig` to/from a YAML file parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:33:39.227889' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:09:56.925886' origin: null @@ -1106,8 +1106,8 @@ This is how we can write the model back to file again: unit: TeV covariance: model-best-fit_covariance.dat metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:33:42.843072' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:10:00.472728' origin: null diff --git a/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_rad_max.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_rad_max.rst.txt index a82f7c6dd53..a9a2fcc9d25 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_rad_max.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/spectral_analysis_rad_max.rst.txt @@ -199,14 +199,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -749,10 +749,10 @@ provide a good distribution of the background. result = super().__array_ufunc__(function, method, *arrays, **kwargs) model type name value unit ... min max frozen link prior --------- ---- --------- ---------- -------------- ... --- --- ------ ---- ----- - simulated amplitude 4.2830e-11 TeV-1 s-1 cm-2 ... nan nan False + simulated amplitude 3.7652e-11 TeV-1 s-1 cm-2 ... nan nan False simulated reference 1.0000e+00 TeV ... nan nan True - simulated alpha 2.6920e+00 ... nan nan False - simulated beta 2.4091e-01 ... nan nan False + simulated alpha 2.4861e+00 ... nan nan False + simulated beta 8.2380e-02 ... nan nan False diff --git a/docs/dev/_sources/tutorials/analysis-1d/spectrum_simulation.rst.txt b/docs/dev/_sources/tutorials/analysis-1d/spectrum_simulation.rst.txt index f6bee92c1c3..58163b30f62 100644 --- a/docs/dev/_sources/tutorials/analysis-1d/spectrum_simulation.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-1d/spectrum_simulation.rst.txt @@ -135,14 +135,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -411,14 +411,14 @@ dealing with simulations based on observations of real off counts. SpectrumDatasetOnOff -------------------- - Name : KAGCs2jy + Name : 59VAruxE - Total counts : 315 - Total background counts : 20.00 - Total excess counts : 295.00 + Total counts : 285 + Total background counts : 18.80 + Total excess counts : 266.20 - Predicted counts : 301.57 - Predicted background counts : 20.20 + Predicted counts : 299.96 + Predicted background counts : 18.59 Predicted excess counts : 281.37 Exposure min : 2.53e+08 m2 s @@ -428,7 +428,7 @@ dealing with simulations based on observations of real off counts. Number of fit bins : 9 Fit statistic type : wstat - Fit statistic value (-2 log(L)) : 4.16 + Fit statistic value (-2 log(L)) : 10.26 Number of models : 1 Number of parameters : 3 @@ -446,7 +446,7 @@ dealing with simulations based on observations of real off counts. amplitude : 2.50e-12 +/- 0.0e+00 1 / (TeV s cm2) reference (frozen): 1.000 TeV - Total counts_off : 100 + Total counts_off : 94 Acceptance : 9 Acceptance off : 45 diff --git a/docs/dev/_sources/tutorials/analysis-2d/detect.rst.txt b/docs/dev/_sources/tutorials/analysis-2d/detect.rst.txt index c682cf562a1..ac9cd6ab2c4 100644 --- a/docs/dev/_sources/tutorials/analysis-2d/detect.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-2d/detect.rst.txt @@ -117,14 +117,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -425,7 +425,7 @@ normalisation factor: SkyModel - Name : 54_uHdFE + Name : xLa2nCZ- Datasets names : None Spectral model type : PowerLawSpectralModel Spatial model type : PointSpatialModel @@ -624,7 +624,7 @@ Here’s some suggestions what to do next: .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 20.709 seconds) + **Total running time of the script:** (0 minutes 20.755 seconds) .. _sphx_glr_download_tutorials_analysis-2d_detect.py: diff --git a/docs/dev/_sources/tutorials/analysis-2d/modeling_2D.rst.txt b/docs/dev/_sources/tutorials/analysis-2d/modeling_2D.rst.txt index 18d593f8989..e3cd1ac4ef9 100644 --- a/docs/dev/_sources/tutorials/analysis-2d/modeling_2D.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-2d/modeling_2D.rst.txt @@ -117,14 +117,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -342,8 +342,8 @@ analysis as *3D*, and define the geometry of the analysis. parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:34:51.710930' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:11:08.135509' origin: null diff --git a/docs/dev/_sources/tutorials/analysis-2d/ring_background.rst.txt b/docs/dev/_sources/tutorials/analysis-2d/ring_background.rst.txt index 91b52578344..79ce04835fd 100644 --- a/docs/dev/_sources/tutorials/analysis-2d/ring_background.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-2d/ring_background.rst.txt @@ -119,14 +119,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -326,8 +326,8 @@ MSH 1552 parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:34:38.808473' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:10:55.677066' origin: null @@ -475,8 +475,8 @@ Create the config: parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:34:38.867591' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:10:55.733941' origin: null @@ -797,7 +797,7 @@ we can recompute the maps after adding a `mask_fit` to our dataset. .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 12.697 seconds) + **Total running time of the script:** (0 minutes 12.271 seconds) .. _sphx_glr_download_tutorials_analysis-2d_ring_background.py: diff --git a/docs/dev/_sources/tutorials/analysis-2d/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/analysis-2d/sg_execution_times.rst.txt index 2f48a7fb9af..9d26fd24002 100644 --- a/docs/dev/_sources/tutorials/analysis-2d/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-2d/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:39.311** total execution time for 3 files **from tutorials/analysis-2d**: +**00:38.629** total execution time for 3 files **from tutorials/analysis-2d**: .. container:: @@ -33,11 +33,11 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_analysis-2d_detect.py` (``detect.py``) - - 00:20.709 + - 00:20.755 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-2d_ring_background.py` (``ring_background.py``) - - 00:12.697 + - 00:12.271 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-2d_modeling_2D.py` (``modeling_2D.py``) - - 00:05.905 + - 00:05.603 - 0.0 diff --git a/docs/dev/_sources/tutorials/analysis-3d/analysis_3d.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/analysis_3d.rst.txt index f60bc11e824..be3977553cf 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/analysis_3d.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/analysis_3d.rst.txt @@ -89,14 +89,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -295,8 +295,8 @@ the analysis, we will programmatically build a config file from scratch. parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:34:57.836319' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:11:13.925626' origin: null AnalysisConfig @@ -409,8 +409,8 @@ the analysis, we will programmatically build a config file from scratch. parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:34:57.844644' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:11:13.933632' origin: null @@ -1074,21 +1074,21 @@ Data reduction Dataset 0: Type : MapDataset - Name : pIJhvIYO + Name : 9ZvmYZBJ Instrument : CTA Models : Dataset 1: Type : MapDataset - Name : XadGTK69 + Name : VYTFnh1j Instrument : CTA Models : Dataset 2: Type : MapDataset - Name : blk_jR47 + Name : qhdVh8xP Instrument : CTA Models : @@ -1121,7 +1121,7 @@ You can access each one by name or by index, eg: MapDataset ---------- - Name : pIJhvIYO + Name : 9ZvmYZBJ Total counts : 40481 Total background counts : 36014.51 @@ -1189,9 +1189,9 @@ map, omit the region argument. name counts excess ... n_fit_bins stat_type stat_sum ... -------- ------ ----------------- ... ---------- --------- -------- - pIJhvIYO 40481 4466.493043594026 ... 693940 cash nan - XadGTK69 40525 4510.505523195905 ... 693940 cash nan - blk_jR47 40235 4220.480554966154 ... 693940 cash nan + 9ZvmYZBJ 40481 4466.493043594026 ... 693940 cash nan + VYTFnh1j 40525 4510.505523195905 ... 693940 cash nan + qhdVh8xP 40235 4220.480554966154 ... 693940 cash nan Models Component 0: SkyModel @@ -1212,8 +1212,8 @@ map, omit the region argument. Component 1: FoVBackgroundModel - Name : pIJhvIYO-bkg - Datasets names : ['pIJhvIYO'] + Name : 9ZvmYZBJ-bkg + Datasets names : ['9ZvmYZBJ'] Spectral model type : PowerLawNormSpectralModel Parameters: norm : 1.000 +/- 0.00 @@ -1222,8 +1222,8 @@ map, omit the region argument. Component 2: FoVBackgroundModel - Name : XadGTK69-bkg - Datasets names : ['XadGTK69'] + Name : VYTFnh1j-bkg + Datasets names : ['VYTFnh1j'] Spectral model type : PowerLawNormSpectralModel Parameters: norm : 1.000 +/- 0.00 @@ -1232,8 +1232,8 @@ map, omit the region argument. Component 3: FoVBackgroundModel - Name : blk_jR47-bkg - Datasets names : ['blk_jR47'] + Name : qhdVh8xP-bkg + Datasets names : ['qhdVh8xP'] Spectral model type : PowerLawNormSpectralModel Parameters: norm : 1.000 +/- 0.00 @@ -1348,8 +1348,8 @@ Check best-fit parameters and error estimates: Component 1: FoVBackgroundModel - Name : pIJhvIYO-bkg - Datasets names : ['pIJhvIYO'] + Name : 9ZvmYZBJ-bkg + Datasets names : ['9ZvmYZBJ'] Spectral model type : PowerLawNormSpectralModel Parameters: norm : 1.118 +/- 0.01 @@ -1358,8 +1358,8 @@ Check best-fit parameters and error estimates: Component 2: FoVBackgroundModel - Name : XadGTK69-bkg - Datasets names : ['XadGTK69'] + Name : VYTFnh1j-bkg + Datasets names : ['VYTFnh1j'] Spectral model type : PowerLawNormSpectralModel Parameters: norm : 1.119 +/- 0.01 @@ -1368,8 +1368,8 @@ Check best-fit parameters and error estimates: Component 3: FoVBackgroundModel - Name : blk_jR47-bkg - Datasets names : ['blk_jR47'] + Name : qhdVh8xP-bkg + Datasets names : ['qhdVh8xP'] Spectral model type : PowerLawNormSpectralModel Parameters: norm : 1.111 +/- 0.01 @@ -1498,7 +1498,7 @@ Exercises .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 33.576 seconds) + **Total running time of the script:** (0 minutes 32.201 seconds) .. _sphx_glr_download_tutorials_analysis-3d_analysis_3d.py: diff --git a/docs/dev/_sources/tutorials/analysis-3d/analysis_mwl.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/analysis_mwl.rst.txt index f89ce51a753..ead1bc8edd0 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/analysis_mwl.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/analysis_mwl.rst.txt @@ -116,14 +116,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/analysis-3d/cta_data_analysis.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/cta_data_analysis.rst.txt index 27d567cc4d3..8dfd6e8e06a 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/cta_data_analysis.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/cta_data_analysis.rst.txt @@ -111,14 +111,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -818,7 +818,7 @@ profile to compute the flux and flux error.
Table length=5 -
e_refe_mine_maxdndednde_errpdnde_errndnde_ulsqrt_tsis_ul
GeVGeVGeV1 / (GeV s cm2)1 / (GeV s cm2)1 / (GeV s cm2)1 / (GeV s cm2)
float64float64float64float64float64float64float64float32bool
+
@@ -912,7 +912,7 @@ What next? .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 17.666 seconds) + **Total running time of the script:** (0 minutes 17.098 seconds) .. _sphx_glr_download_tutorials_analysis-3d_cta_data_analysis.py: diff --git a/docs/dev/_sources/tutorials/analysis-3d/energy_dependent_estimation.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/energy_dependent_estimation.rst.txt index 90a516f34f8..843bfcec323 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/energy_dependent_estimation.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/energy_dependent_estimation.rst.txt @@ -119,14 +119,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -482,7 +482,7 @@ Plotting the results .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 20.641 seconds) + **Total running time of the script:** (0 minutes 19.832 seconds) .. _sphx_glr_download_tutorials_analysis-3d_energy_dependent_estimation.py: diff --git a/docs/dev/_sources/tutorials/analysis-3d/event_sampling.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/event_sampling.rst.txt index fdea8e1a78c..c2eafe9ded3 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/event_sampling.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/event_sampling.rst.txt @@ -167,14 +167,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -1070,7 +1070,7 @@ Exercises .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 20.232 seconds) + **Total running time of the script:** (0 minutes 23.378 seconds) .. _sphx_glr_download_tutorials_analysis-3d_event_sampling.py: diff --git a/docs/dev/_sources/tutorials/analysis-3d/event_sampling_nrg_depend_models.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/event_sampling_nrg_depend_models.rst.txt index 1bce4216991..ce89046a113 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/event_sampling_nrg_depend_models.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/event_sampling_nrg_depend_models.rst.txt @@ -118,14 +118,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/analysis-3d/flux_profiles.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/flux_profiles.rst.txt index 00bb471288b..b464144f914 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/flux_profiles.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/flux_profiles.rst.txt @@ -124,14 +124,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -381,11 +381,11 @@ We can see the full configuration by printing the estimator object: -------------------- energy_edges : [ 10. 2000.] GeV - fit : + fit : n_jobs : None n_sigma : 1 n_sigma_ul : 2 - norm : Parameter(name='norm', value=1.0, factor=1.0, scale=1.0, unit=Unit(dimensionless), min=nan, max=nan, frozen=False, prior=None, id=0x7f8f35233b20) + norm : Parameter(name='norm', value=1.0, factor=1.0, scale=1.0, unit=Unit(dimensionless), min=nan, max=nan, frozen=False, prior=None, id=0x7effc27bc220) null_value : 0 parallel_backend : None reoptimize : False @@ -841,7 +841,7 @@ And now plot the points together with the likelihood profiles: .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 22.040 seconds) + **Total running time of the script:** (0 minutes 21.969 seconds) .. _sphx_glr_download_tutorials_analysis-3d_flux_profiles.py: diff --git a/docs/dev/_sources/tutorials/analysis-3d/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/sg_execution_times.rst.txt index f862770f208..59c02437409 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**02:13.482** total execution time for 8 files **from tutorials/analysis-3d**: +**02:14.035** total execution time for 8 files **from tutorials/analysis-3d**: .. container:: @@ -33,26 +33,26 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_analysis-3d_analysis_3d.py` (``analysis_3d.py``) - - 00:33.576 + - 00:32.201 + - 0.0 + * - :ref:`sphx_glr_tutorials_analysis-3d_event_sampling.py` (``event_sampling.py``) + - 00:23.378 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_flux_profiles.py` (``flux_profiles.py``) - - 00:22.040 + - 00:21.969 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_energy_dependent_estimation.py` (``energy_dependent_estimation.py``) - - 00:20.641 - - 0.0 - * - :ref:`sphx_glr_tutorials_analysis-3d_event_sampling.py` (``event_sampling.py``) - - 00:20.232 + - 00:19.832 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_cta_data_analysis.py` (``cta_data_analysis.py``) - - 00:17.666 + - 00:17.098 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_simulate_3d.py` (``simulate_3d.py``) - - 00:09.680 + - 00:09.838 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_analysis_mwl.py` (``analysis_mwl.py``) - - 00:06.868 + - 00:06.777 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-3d_event_sampling_nrg_depend_models.py` (``event_sampling_nrg_depend_models.py``) - - 00:02.778 + - 00:02.943 - 0.0 diff --git a/docs/dev/_sources/tutorials/analysis-3d/simulate_3d.rst.txt b/docs/dev/_sources/tutorials/analysis-3d/simulate_3d.rst.txt index 24493bd7f14..b5eb985bf8a 100644 --- a/docs/dev/_sources/tutorials/analysis-3d/simulate_3d.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-3d/simulate_3d.rst.txt @@ -303,9 +303,9 @@ the `selection` of the maps that you want to produce Name : dataset-simu - Total counts : 170172 + Total counts : 170150 Total background counts : 161250.95 - Total excess counts : 8921.05 + Total excess counts : 8899.05 Predicted counts : 169871.64 Predicted background counts : 161250.95 @@ -318,7 +318,7 @@ the `selection` of the maps that you want to produce Number of fit bins : 804492 Fit statistic type : cash - Fit statistic value (-2 log(L)) : 562885.43 + Fit statistic value (-2 log(L)) : 562637.67 Number of models : 2 Number of parameters : 11 @@ -537,12 +537,12 @@ Compare the injected and fitted models: Spatial model type : GaussianSpatialModel Temporal model type : Parameters: - index : 3.036 +/- 0.02 - amplitude : 9.59e-12 +/- 3.3e-13 1 / (TeV s cm2) + index : 2.996 +/- 0.02 + amplitude : 9.87e-12 +/- 3.3e-13 1 / (TeV s cm2) reference (frozen): 1.000 TeV - lon_0 : 0.208 +/- 0.01 deg - lat_0 : 0.101 +/- 0.01 deg - sigma : 0.304 +/- 0.00 deg + lon_0 : 0.212 +/- 0.01 deg + lat_0 : 0.108 +/- 0.01 deg + sigma : 0.302 +/- 0.00 deg e (frozen): 0.000 phi (frozen): 0.000 deg @@ -572,12 +572,12 @@ Get the errors on the fitted parameters from the parameter table type name value unit ... max frozen link prior ---- --------- ---------- -------------- ... --------- ------ ---- ----- - index 3.0358e+00 ... nan False - amplitude 9.5919e-12 TeV-1 s-1 cm-2 ... nan False + index 2.9965e+00 ... nan False + amplitude 9.8750e-12 TeV-1 s-1 cm-2 ... nan False reference 1.0000e+00 TeV ... nan True - lon_0 2.0786e-01 deg ... nan False - lat_0 1.0079e-01 deg ... 9.000e+01 False - sigma 3.0351e-01 deg ... nan False + lon_0 2.1153e-01 deg ... nan False + lat_0 1.0793e-01 deg ... 9.000e+01 False + sigma 3.0249e-01 deg ... nan False e 0.0000e+00 ... 1.000e+00 True phi 0.0000e+00 deg ... nan True norm 1.0000e+00 ... nan True diff --git a/docs/dev/_sources/tutorials/analysis-time/light_curve.rst.txt b/docs/dev/_sources/tutorials/analysis-time/light_curve.rst.txt index 97970b92308..cda5328f87f 100644 --- a/docs/dev/_sources/tutorials/analysis-time/light_curve.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/light_curve.rst.txt @@ -125,14 +125,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/analysis-time/light_curve_flare.rst.txt b/docs/dev/_sources/tutorials/analysis-time/light_curve_flare.rst.txt index fb676cd8882..514bbd6efa8 100644 --- a/docs/dev/_sources/tutorials/analysis-time/light_curve_flare.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/light_curve_flare.rst.txt @@ -143,14 +143,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -681,7 +681,7 @@ as shown in the doc:`/tutorials/analysis-time/variability_estimation` tutorial. .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 36.234 seconds) + **Total running time of the script:** (0 minutes 35.825 seconds) .. _sphx_glr_download_tutorials_analysis-time_light_curve_flare.py: diff --git a/docs/dev/_sources/tutorials/analysis-time/light_curve_simulation.rst.txt b/docs/dev/_sources/tutorials/analysis-time/light_curve_simulation.rst.txt index 240dce6a633..e0ebf9b84db 100644 --- a/docs/dev/_sources/tutorials/analysis-time/light_curve_simulation.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/light_curve_simulation.rst.txt @@ -160,14 +160,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -413,16 +413,16 @@ quick look into our datasets. name counts excess ... n_fit_bins stat_type stat_sum ... --------- ------ ------------------ ... ---------- --------- ------------------- - dataset-0 809 788.6812310184489 ... 9 cash -6428.1556453201265 - dataset-1 302 292.76419591747674 ... 9 cash -1844.3749626322403 - dataset-2 308 298.3947637541758 ... 9 cash -1918.3304290732412 - dataset-3 308 293.2227134679628 ... 9 cash -1858.8615800097566 - dataset-4 197 182.22271346796282 ... 9 cash -1040.820318044435 - dataset-5 171 152.52839183495354 ... 9 cash -872.0211376632384 - dataset-6 40 25.222713467962826 ... 9 cash -87.81321308703623 - dataset-7 40 20.78952750835169 ... 9 cash -85.44008776202558 - dataset-8 32 16.114416978060042 ... 9 cash -44.89136561972272 - dataset-9 45 27.63668832485633 ... 9 cash -95.0639008912973 + dataset-0 828 807.6812310184489 ... 9 cash -6613.966320200775 + dataset-1 341 331.76419591747674 ... 9 cash -2123.833641627862 + dataset-2 321 311.3947637541758 ... 9 cash -2000.196255435633 + dataset-3 325 310.2227134679628 ... 9 cash -1960.5688457981682 + dataset-4 206 191.22271346796282 ... 9 cash -1086.7499485121887 + dataset-5 182 163.52839183495354 ... 9 cash -906.8216216699063 + dataset-6 39 24.222713467962826 ... 9 cash -88.95100371070536 + dataset-7 42 22.78952750835169 ... 9 cash -95.50422739220292 + dataset-8 36 20.114416978060042 ... 9 cash -71.04033864761682 + dataset-9 33 15.63668832485633 ... 9 cash -55.800371732421134 @@ -572,10 +572,10 @@ that ``t_ref`` should be fixed by default for the Name : dataset_lc Number of total flux points : 30 - Number of fit bins : 25 + Number of fit bins : 24 Fit statistic type : chi2 - Fit statistic value (-2 log(L)) : 1449.69 + Fit statistic value (-2 log(L)) : 1543.10 Number of models : 1 Number of parameters : 5 @@ -623,10 +623,10 @@ Fit the dataset type name value unit error min max frozen link prior ---- --------- ---------- -------------- --------- --- --- ------ ---- ----- - index 2.9924e+00 2.825e-02 nan nan False - amplitude 9.5553e-12 TeV-1 s-1 cm-2 3.309e-13 nan nan False + index 2.9646e+00 2.675e-02 nan nan False + amplitude 1.0132e-11 TeV-1 s-1 cm-2 3.369e-13 nan nan False reference 1.0000e+00 TeV 0.000e+00 nan nan True - t0 6.1372e+00 h 2.376e-01 nan nan False + t0 6.1127e+00 h 2.288e-01 nan nan False t_ref 5.8909e+04 d 0.000e+00 nan nan True @@ -739,10 +739,10 @@ Perform a joint fit type name value unit error min max frozen link prior ---- --------- ---------- -------------- --------- --- --- ------ ---- ----- - index 3.0118e+00 3.245e-02 nan nan False - amplitude 9.5777e-12 TeV-1 s-1 cm-2 3.375e-13 nan nan False + index 2.9569e+00 3.081e-02 nan nan False + amplitude 1.0404e-11 TeV-1 s-1 cm-2 3.527e-13 nan nan False reference 1.0000e+00 TeV 0.000e+00 nan nan True - t0 6.0998e+00 h 2.151e-01 nan nan False + t0 5.9928e+00 h 2.031e-01 nan nan False t_ref 5.8909e+04 d 0.000e+00 nan nan True @@ -768,7 +768,7 @@ Exercises .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 17.228 seconds) + **Total running time of the script:** (0 minutes 19.340 seconds) .. _sphx_glr_download_tutorials_analysis-time_light_curve_simulation.py: diff --git a/docs/dev/_sources/tutorials/analysis-time/pulsar_analysis.rst.txt b/docs/dev/_sources/tutorials/analysis-time/pulsar_analysis.rst.txt index 63a1d51344f..432cfcda537 100644 --- a/docs/dev/_sources/tutorials/analysis-time/pulsar_analysis.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/pulsar_analysis.rst.txt @@ -110,14 +110,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/analysis-time/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/analysis-time/sg_execution_times.rst.txt index c478115c9aa..6ebfa08e9e8 100644 --- a/docs/dev/_sources/tutorials/analysis-time/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**01:31.130** total execution time for 6 files **from tutorials/analysis-time**: +**01:32.107** total execution time for 6 files **from tutorials/analysis-time**: .. container:: @@ -33,20 +33,20 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_analysis-time_light_curve_flare.py` (``light_curve_flare.py``) - - 00:36.234 + - 00:35.825 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_time_resolved_spectroscopy.py` (``time_resolved_spectroscopy.py``) - - 00:22.645 + - 00:22.182 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_light_curve_simulation.py` (``light_curve_simulation.py``) - - 00:17.228 + - 00:19.340 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_light_curve.py` (``light_curve.py``) - - 00:07.645 + - 00:07.570 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_pulsar_analysis.py` (``pulsar_analysis.py``) - - 00:06.701 + - 00:06.502 - 0.0 * - :ref:`sphx_glr_tutorials_analysis-time_variability_estimation.py` (``variability_estimation.py``) - - 00:00.677 + - 00:00.688 - 0.0 diff --git a/docs/dev/_sources/tutorials/analysis-time/time_resolved_spectroscopy.rst.txt b/docs/dev/_sources/tutorials/analysis-time/time_resolved_spectroscopy.rst.txt index e5e9a6250cb..ad12c26d50a 100644 --- a/docs/dev/_sources/tutorials/analysis-time/time_resolved_spectroscopy.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/time_resolved_spectroscopy.rst.txt @@ -272,238 +272,238 @@ modelled. Dataset 0: Type : SpectrumDatasetOnOff - Name : aBI6KWL0 + Name : GCV5dVYP Instrument : HESS Models : Dataset 1: Type : SpectrumDatasetOnOff - Name : A9GA2kQ- + Name : XHu-ghAM Instrument : HESS Models : Dataset 2: Type : SpectrumDatasetOnOff - Name : PWAbcbBU + Name : uUXTe90r Instrument : HESS Models : Dataset 3: Type : SpectrumDatasetOnOff - Name : bgT2fQE0 + Name : JGdoZlKT Instrument : HESS Models : Dataset 4: Type : SpectrumDatasetOnOff - Name : N8P7hZGT + Name : 2TLKMZq0 Instrument : HESS Models : Dataset 5: Type : SpectrumDatasetOnOff - Name : Nsi2ln3J + Name : DMiTIsEj Instrument : HESS Models : Dataset 6: Type : SpectrumDatasetOnOff - Name : nuAmOaPS + Name : BDK5Y6VE Instrument : HESS Models : Dataset 7: Type : SpectrumDatasetOnOff - Name : HayJT6iA + Name : zqlOtdbe Instrument : HESS Models : Dataset 8: Type : SpectrumDatasetOnOff - Name : k6Z01o7l + Name : jJS5Kuax Instrument : HESS Models : Dataset 9: Type : SpectrumDatasetOnOff - Name : ldQG0rcQ + Name : zN2A9-Do Instrument : HESS Models : Dataset 10: Type : SpectrumDatasetOnOff - Name : 3TheAGxY + Name : E1k-ZGUe Instrument : HESS Models : Dataset 11: Type : SpectrumDatasetOnOff - Name : Up8N5ef6 + Name : 7Gy6iud8 Instrument : HESS Models : Dataset 12: Type : SpectrumDatasetOnOff - Name : tzgvn5H0 + Name : uKO7ctzt Instrument : HESS Models : Dataset 13: Type : SpectrumDatasetOnOff - Name : q7m6AGyD + Name : LD_hARHZ Instrument : HESS Models : Dataset 14: Type : SpectrumDatasetOnOff - Name : miBGLD7c + Name : cVhUuYV3 Instrument : HESS Models : Dataset 15: Type : SpectrumDatasetOnOff - Name : t2Nfbyox + Name : 5v-eN-1f Instrument : HESS Models : Dataset 16: Type : SpectrumDatasetOnOff - Name : LxKwCaHX + Name : prcOHAnZ Instrument : HESS Models : Dataset 17: Type : SpectrumDatasetOnOff - Name : x6BSRP7x + Name : eFoPF8Fn Instrument : HESS Models : Dataset 18: Type : SpectrumDatasetOnOff - Name : gHtVDWzY + Name : 3kqL8fcg Instrument : HESS Models : Dataset 19: Type : SpectrumDatasetOnOff - Name : ywyrWakr + Name : O504NVL6 Instrument : HESS Models : Dataset 20: Type : SpectrumDatasetOnOff - Name : M8GBdhak + Name : abl7bRxX Instrument : HESS Models : Dataset 21: Type : SpectrumDatasetOnOff - Name : DkVoJCJ6 + Name : BUJCuiXa Instrument : HESS Models : Dataset 22: Type : SpectrumDatasetOnOff - Name : U9F7se2T + Name : 42aTyG-X Instrument : HESS Models : Dataset 23: Type : SpectrumDatasetOnOff - Name : -hKv7G9u + Name : jySjyGS4 Instrument : HESS Models : Dataset 24: Type : SpectrumDatasetOnOff - Name : g6SGkLDw + Name : lYSYLJVw Instrument : HESS Models : Dataset 25: Type : SpectrumDatasetOnOff - Name : W7byPL7d + Name : 82rRtSYm Instrument : HESS Models : Dataset 26: Type : SpectrumDatasetOnOff - Name : -8x9zWFF + Name : 1I93-Qfw Instrument : HESS Models : Dataset 27: Type : SpectrumDatasetOnOff - Name : TXriPM4e + Name : kf7y6Y8_ Instrument : HESS Models : Dataset 28: Type : SpectrumDatasetOnOff - Name : EG86bTgN + Name : x6A4HSVK Instrument : HESS Models : Dataset 29: Type : SpectrumDatasetOnOff - Name : -e9RHWq3 + Name : 05dq9fCp Instrument : HESS Models : Dataset 30: Type : SpectrumDatasetOnOff - Name : pOi3Qgwf + Name : Ii8_XLO3 Instrument : HESS Models : Dataset 31: Type : SpectrumDatasetOnOff - Name : 0BVzWnbP + Name : bZGnXb4q Instrument : HESS Models : Dataset 32: Type : SpectrumDatasetOnOff - Name : ZNFx72B3 + Name : otITIpcU Instrument : HESS Models : Dataset 33: Type : SpectrumDatasetOnOff - Name : Brvmcw9I + Name : UKHXwCj8 Instrument : HESS Models : @@ -932,7 +932,7 @@ Exercises .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 22.645 seconds) + **Total running time of the script:** (0 minutes 22.182 seconds) .. _sphx_glr_download_tutorials_analysis-time_time_resolved_spectroscopy.py: diff --git a/docs/dev/_sources/tutorials/analysis-time/variability_estimation.rst.txt b/docs/dev/_sources/tutorials/analysis-time/variability_estimation.rst.txt index 191c152aa83..5073c7286f6 100644 --- a/docs/dev/_sources/tutorials/analysis-time/variability_estimation.rst.txt +++ b/docs/dev/_sources/tutorials/analysis-time/variability_estimation.rst.txt @@ -476,7 +476,7 @@ Plot the new lightcurve on top of the old one: .. code-block:: none - + diff --git a/docs/dev/_sources/tutorials/api/astro_dark_matter.rst.txt b/docs/dev/_sources/tutorials/api/astro_dark_matter.rst.txt index 90b2b4ca8ed..9ef5806b421 100644 --- a/docs/dev/_sources/tutorials/api/astro_dark_matter.rst.txt +++ b/docs/dev/_sources/tutorials/api/astro_dark_matter.rst.txt @@ -99,14 +99,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -478,7 +478,7 @@ Finally flux maps for decay can be produced like this: .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 28.372 seconds) + **Total running time of the script:** (0 minutes 27.616 seconds) .. _sphx_glr_download_tutorials_api_astro_dark_matter.py: diff --git a/docs/dev/_sources/tutorials/api/catalog.rst.txt b/docs/dev/_sources/tutorials/api/catalog.rst.txt index f1d515bd881..45bc268e634 100644 --- a/docs/dev/_sources/tutorials/api/catalog.rst.txt +++ b/docs/dev/_sources/tutorials/api/catalog.rst.txt @@ -112,14 +112,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/api/datasets.rst.txt b/docs/dev/_sources/tutorials/api/datasets.rst.txt index 4d9ff8fee9e..5617532c30c 100644 --- a/docs/dev/_sources/tutorials/api/datasets.rst.txt +++ b/docs/dev/_sources/tutorials/api/datasets.rst.txt @@ -96,14 +96,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -297,7 +297,7 @@ To see the geometry of each map, we can use: .. code-block:: none - {'geom': , 'geom_exposure': , 'geom_psf': , 'geom_edisp': } + {'geom': , 'geom_exposure': , 'geom_psf': , 'geom_edisp': } @@ -1883,7 +1883,7 @@ Or slice all datasets by a given energy range: .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 16.524 seconds) + **Total running time of the script:** (0 minutes 15.979 seconds) .. _sphx_glr_download_tutorials_api_datasets.py: diff --git a/docs/dev/_sources/tutorials/api/estimators.rst.txt b/docs/dev/_sources/tutorials/api/estimators.rst.txt index 28edd0a62ae..b99016cfd5a 100644 --- a/docs/dev/_sources/tutorials/api/estimators.rst.txt +++ b/docs/dev/_sources/tutorials/api/estimators.rst.txt @@ -551,7 +551,7 @@ Typically, it is the best fit model: SkyModel - Name : dnek9xVb + Name : 46vQU2C7 Datasets names : None Spectral model type : PowerLawSpectralModel Spatial model type : diff --git a/docs/dev/_sources/tutorials/api/fitting.rst.txt b/docs/dev/_sources/tutorials/api/fitting.rst.txt index 41ceefca15f..d1ecb6ecfd0 100644 --- a/docs/dev/_sources/tutorials/api/fitting.rst.txt +++ b/docs/dev/_sources/tutorials/api/fitting.rst.txt @@ -100,14 +100,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -1119,7 +1119,7 @@ in. .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 11.576 seconds) + **Total running time of the script:** (0 minutes 11.319 seconds) .. _sphx_glr_download_tutorials_api_fitting.py: diff --git a/docs/dev/_sources/tutorials/api/makers.rst.txt b/docs/dev/_sources/tutorials/api/makers.rst.txt index 51c73ddf985..e245ac40d2d 100644 --- a/docs/dev/_sources/tutorials/api/makers.rst.txt +++ b/docs/dev/_sources/tutorials/api/makers.rst.txt @@ -91,14 +91,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -174,7 +174,7 @@ object. This is illustrated in the following example: MapDataset ---------- - Name : YAEIn6Qz + Name : brNuWIuT Total counts : 0 Total background counts : 0.00 @@ -345,7 +345,7 @@ observational data using the `~gammapy.makers.MapDatasetMaker`: MapDataset ---------- - Name : 2Swh0smY + Name : LB4RCqV3 Total counts : 2016 Total background counts : 1866.72 @@ -598,7 +598,7 @@ dataset per observation is stacked into a larger map. MapDataset ---------- - Name : 5bq_NJo9 + Name : unCjdYA- Total counts : 7972 Total background counts : 7555.42 @@ -673,30 +673,30 @@ allow to use multiple processes on run. Dataset 0: Type : MapDataset - Name : WggSRVvE + Name : SvwblBsB Instrument : HESS - Models : ['WggSRVvE-bkg'] + Models : ['SvwblBsB-bkg'] Dataset 1: Type : MapDataset - Name : gRpzbr9i + Name : xZsiYuus Instrument : HESS - Models : ['gRpzbr9i-bkg'] + Models : ['xZsiYuus-bkg'] Dataset 2: Type : MapDataset - Name : d5WNRlN3 + Name : 2oeOKX4p Instrument : HESS - Models : ['d5WNRlN3-bkg'] + Models : ['2oeOKX4p-bkg'] Dataset 3: Type : MapDataset - Name : OpaT7_3p + Name : X7OxXC8e Instrument : HESS - Models : ['OpaT7_3p-bkg'] + Models : ['X7OxXC8e-bkg'] @@ -958,7 +958,7 @@ use ``get_by_coord`` .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 15.478 seconds) + **Total running time of the script:** (0 minutes 15.004 seconds) .. _sphx_glr_download_tutorials_api_makers.py: diff --git a/docs/dev/_sources/tutorials/api/maps.rst.txt b/docs/dev/_sources/tutorials/api/maps.rst.txt index db3355ef40e..aed901c9351 100644 --- a/docs/dev/_sources/tutorials/api/maps.rst.txt +++ b/docs/dev/_sources/tutorials/api/maps.rst.txt @@ -123,14 +123,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/api/mask_maps.rst.txt b/docs/dev/_sources/tutorials/api/mask_maps.rst.txt index dbcfc584ef4..e56155c05ce 100644 --- a/docs/dev/_sources/tutorials/api/mask_maps.rst.txt +++ b/docs/dev/_sources/tutorials/api/mask_maps.rst.txt @@ -156,14 +156,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/api/model_management.rst.txt b/docs/dev/_sources/tutorials/api/model_management.rst.txt index 90d208de454..f42de84055a 100644 --- a/docs/dev/_sources/tutorials/api/model_management.rst.txt +++ b/docs/dev/_sources/tutorials/api/model_management.rst.txt @@ -129,14 +129,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -1567,7 +1567,7 @@ associated models, ie, with yaml and fits files. eg: .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 10.548 seconds) + **Total running time of the script:** (0 minutes 10.304 seconds) .. _sphx_glr_download_tutorials_api_model_management.py: diff --git a/docs/dev/_sources/tutorials/api/models.rst.txt b/docs/dev/_sources/tutorials/api/models.rst.txt index f196a7462af..6b1e0e2c46c 100644 --- a/docs/dev/_sources/tutorials/api/models.rst.txt +++ b/docs/dev/_sources/tutorials/api/models.rst.txt @@ -88,14 +88,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -1196,7 +1196,7 @@ generated: .. code-block:: none - JfX2L5QR + Aj8ltP0W @@ -1390,7 +1390,7 @@ existing FITS file: SkyModel - Name : gdp0q1Ak + Name : -70_jkvK Datasets names : None Spectral model type : PowerLawNormSpectralModel Spatial model type : TemplateSpatialModel @@ -1528,7 +1528,7 @@ multiple model components, Gammapy has a `~gammapy.modeling.models.Models` class Component 1: SkyModel - Name : gdp0q1Ak + Name : -70_jkvK Datasets names : None Spectral model type : PowerLawNormSpectralModel Spatial model type : TemplateSpatialModel @@ -1614,7 +1614,7 @@ To see which models are available you can use the ``.names`` attribute: .. code-block:: none - ['my-source', 'gdp0q1Ak'] + ['my-source', '-70_jkvK'] @@ -1715,7 +1715,7 @@ format: value: 2.0 unit: d scale: utc - - name: gdp0q1Ak + - name: -70_jkvK type: SkyModel spectral: type: PowerLawNormSpectralModel @@ -1784,8 +1784,8 @@ format: unit: d scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:38:51.851480' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:15:08.425987' origin: null @@ -1862,8 +1862,8 @@ amplitudes: .. code-block:: none - Parameter(name='index', value=2.3, factor=2.3, scale=1.0, unit=Unit(dimensionless), min=1.0, max=5.0, frozen=False, prior=None, id=0x7f8f45aebca0) - Parameter(name='index', value=2.3, factor=2.3, scale=1.0, unit=Unit(dimensionless), min=1.0, max=5.0, frozen=False, prior=None, id=0x7f8f45aebca0) + Parameter(name='index', value=2.3, factor=2.3, scale=1.0, unit=Unit(dimensionless), min=1.0, max=5.0, frozen=False, prior=None, id=0x7effc0f58fa0) + Parameter(name='index', value=2.3, factor=2.3, scale=1.0, unit=Unit(dimensionless), min=1.0, max=5.0, frozen=False, prior=None, id=0x7effc0f58fa0) @@ -1902,7 +1902,7 @@ In the YAML files the shared parameter is flagged by the additional value: 2.3 min: 1.0 max: 5.0 - link: index@OvTgaKeU + link: index@5o9Ew056 - name: amplitude value: 2.7e-12 unit: TeV-1 s-1 cm-2 @@ -1918,7 +1918,7 @@ In the YAML files the shared parameter is flagged by the additional value: 2.3 min: 1.0 max: 5.0 - link: index@OvTgaKeU + link: index@5o9Ew056 - name: amplitude value: 1.0e-12 unit: TeV-1 s-1 cm-2 @@ -1926,8 +1926,8 @@ In the YAML files the shared parameter is flagged by the additional value: 1.0 unit: TeV metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:38:52.041836' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:15:08.613160' origin: null diff --git a/docs/dev/_sources/tutorials/api/observation_clustering.rst.txt b/docs/dev/_sources/tutorials/api/observation_clustering.rst.txt index 5c62d11c40b..d35d5e33a17 100644 --- a/docs/dev/_sources/tutorials/api/observation_clustering.rst.txt +++ b/docs/dev/_sources/tutorials/api/observation_clustering.rst.txt @@ -201,7 +201,7 @@ be adjusted according to each specific science case. .. code-block:: none - {'group_high_zenith': , 'group_low_zenith': } + {'group_high_zenith': , 'group_low_zenith': } @@ -481,7 +481,7 @@ Finally, ``observations.group_by_label`` creates a dictionary containing ``t`` .. code-block:: none - {'group_1': , 'group_2': } + {'group_1': , 'group_2': } diff --git a/docs/dev/_sources/tutorials/api/priors.rst.txt b/docs/dev/_sources/tutorials/api/priors.rst.txt index edebf492e10..8eeebbe49f5 100644 --- a/docs/dev/_sources/tutorials/api/priors.rst.txt +++ b/docs/dev/_sources/tutorials/api/priors.rst.txt @@ -128,14 +128,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -371,8 +371,8 @@ The parameters table will mention the type of prior associated to each model model type name value ... max frozen link prior ----------- ---- --------- ---------- ... --- ------ ---- ------------- - prior-model index 2.1011e+00 ... nan False GaussianPrior - prior-model amplitude 8.1464e-12 ... nan False + prior-model index 2.1139e+00 ... nan False GaussianPrior + prior-model amplitude 7.1371e-12 ... nan False prior-model reference 1.0000e+00 ... nan True @@ -781,14 +781,14 @@ The only parameter is ``sigma`` and the evaluation method return the squared inv {'spectral': {'type': 'PowerLawSpectralModel', 'parameters': [{'name': 'index', 'value': 2.0, 'prior': {'type': 'MyCustomPrior', 'parameters': [{'name': 'sigma', 'value': 0.5, 'unit': ''}], 'weight': 1}}, {'name': 'amplitude', 'value': 1e-12, 'unit': 'TeV-1 s-1 cm-2'}, {'name': 'reference', 'value': 1.0, 'unit': 'TeV'}]}} - [<__main__.MyCustomPrior object at 0x7f8f2af254f0>, None, None] + [<__main__.MyCustomPrior object at 0x7effc761a610>, None, None] .. rst-class:: sphx-glr-timing - **Total running time of the script:** (1 minutes 23.353 seconds) + **Total running time of the script:** (1 minutes 16.929 seconds) .. _sphx_glr_download_tutorials_api_priors.py: diff --git a/docs/dev/_sources/tutorials/api/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/api/sg_execution_times.rst.txt index 71eace6b2d8..f48546273ac 100644 --- a/docs/dev/_sources/tutorials/api/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/api/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**03:15.336** total execution time for 13 files **from tutorials/api**: +**03:04.244** total execution time for 13 files **from tutorials/api**: .. container:: @@ -33,41 +33,41 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_api_priors.py` (``priors.py``) - - 01:23.353 + - 01:16.929 - 0.0 * - :ref:`sphx_glr_tutorials_api_astro_dark_matter.py` (``astro_dark_matter.py``) - - 00:28.372 + - 00:27.616 - 0.0 * - :ref:`sphx_glr_tutorials_api_datasets.py` (``datasets.py``) - - 00:16.524 + - 00:15.979 - 0.0 * - :ref:`sphx_glr_tutorials_api_makers.py` (``makers.py``) - - 00:15.478 + - 00:15.004 - 0.0 * - :ref:`sphx_glr_tutorials_api_fitting.py` (``fitting.py``) - - 00:11.576 + - 00:11.319 - 0.0 * - :ref:`sphx_glr_tutorials_api_model_management.py` (``model_management.py``) - - 00:10.548 + - 00:10.304 - 0.0 * - :ref:`sphx_glr_tutorials_api_estimators.py` (``estimators.py``) - - 00:07.092 + - 00:06.688 - 0.0 * - :ref:`sphx_glr_tutorials_api_catalog.py` (``catalog.py``) - - 00:06.142 + - 00:06.020 - 0.0 * - :ref:`sphx_glr_tutorials_api_observation_clustering.py` (``observation_clustering.py``) - - 00:04.113 + - 00:03.963 - 0.0 * - :ref:`sphx_glr_tutorials_api_irfs.py` (``irfs.py``) - - 00:03.963 + - 00:03.469 - 0.0 * - :ref:`sphx_glr_tutorials_api_models.py` (``models.py``) - - 00:03.056 + - 00:02.497 - 0.0 * - :ref:`sphx_glr_tutorials_api_maps.py` (``maps.py``) - - 00:02.757 + - 00:02.399 - 0.0 * - :ref:`sphx_glr_tutorials_api_mask_maps.py` (``mask_maps.py``) - - 00:02.360 + - 00:02.057 - 0.0 diff --git a/docs/dev/_sources/tutorials/data/cta.rst.txt b/docs/dev/_sources/tutorials/data/cta.rst.txt index be6b2dc7b4d..e5f8b9dab23 100644 --- a/docs/dev/_sources/tutorials/data/cta.rst.txt +++ b/docs/dev/_sources/tutorials/data/cta.rst.txt @@ -126,14 +126,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -525,7 +525,7 @@ Notes: /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/astropy/units/core.py:2126: UnitsWarning: '1/s/MeV/sr' did not parse as fits unit: Numeric factor not supported by FITS If this is meant to be a custom unit, define it with 'u.def_unit'. To have it recognized inside a file reader or other code, enable it with 'u.add_enabled_units'. For details, see https://docs.astropy.org/en/latest/units/combining_and_defining.html warnings.warn(msg, UnitsWarning) - {'aeff': , 'psf': , 'edisp': , 'bkg': } + {'aeff': , 'psf': , 'edisp': , 'bkg': } diff --git a/docs/dev/_sources/tutorials/data/fermi_lat.rst.txt b/docs/dev/_sources/tutorials/data/fermi_lat.rst.txt index 9d64111aa99..62d478038f4 100644 --- a/docs/dev/_sources/tutorials/data/fermi_lat.rst.txt +++ b/docs/dev/_sources/tutorials/data/fermi_lat.rst.txt @@ -133,14 +133,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/data/hawc.rst.txt b/docs/dev/_sources/tutorials/data/hawc.rst.txt index f7550c9029f..66a9393f443 100644 --- a/docs/dev/_sources/tutorials/data/hawc.rst.txt +++ b/docs/dev/_sources/tutorials/data/hawc.rst.txt @@ -112,14 +112,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/data/hess.rst.txt b/docs/dev/_sources/tutorials/data/hess.rst.txt index 6abda2643ca..a77b9b9ba5e 100644 --- a/docs/dev/_sources/tutorials/data/hess.rst.txt +++ b/docs/dev/_sources/tutorials/data/hess.rst.txt @@ -108,14 +108,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/data/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/data/sg_execution_times.rst.txt index b5a90cbb74a..dbf56e36b4b 100644 --- a/docs/dev/_sources/tutorials/data/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/data/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:23.100** total execution time for 4 files **from tutorials/data**: +**00:21.864** total execution time for 4 files **from tutorials/data**: .. container:: @@ -33,14 +33,14 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_data_hawc.py` (``hawc.py``) - - 00:07.407 + - 00:06.798 - 0.0 * - :ref:`sphx_glr_tutorials_data_fermi_lat.py` (``fermi_lat.py``) - - 00:06.800 + - 00:06.477 - 0.0 * - :ref:`sphx_glr_tutorials_data_cta.py` (``cta.py``) - - 00:05.458 + - 00:05.193 - 0.0 * - :ref:`sphx_glr_tutorials_data_hess.py` (``hess.py``) - - 00:03.435 + - 00:03.396 - 0.0 diff --git a/docs/dev/_sources/tutorials/scripts/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/scripts/sg_execution_times.rst.txt index 326dd1182b2..b1732a8a822 100644 --- a/docs/dev/_sources/tutorials/scripts/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/scripts/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:02.564** total execution time for 1 file **from tutorials/scripts**: +**00:02.482** total execution time for 1 file **from tutorials/scripts**: .. container:: @@ -33,5 +33,5 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_scripts_survey_map.py` (``survey_map.py``) - - 00:02.564 + - 00:02.482 - 0.0 diff --git a/docs/dev/_sources/tutorials/starting/analysis_1.rst.txt b/docs/dev/_sources/tutorials/starting/analysis_1.rst.txt index 764064f98cf..861f7722726 100644 --- a/docs/dev/_sources/tutorials/starting/analysis_1.rst.txt +++ b/docs/dev/_sources/tutorials/starting/analysis_1.rst.txt @@ -131,14 +131,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy @@ -310,8 +310,8 @@ Here is what the configuration for our analysis looks like: parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:18.962565' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:39.165442' origin: null @@ -628,8 +628,8 @@ One can export/import the `~gammapy.modeling.AnalysisConfig` to/from a YAML file parameters: selection_optional: all metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:18.989679' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:39.192087' origin: null @@ -1183,8 +1183,8 @@ This is how we can write the model back to file again: unit: TeV covariance: model-best-fit_covariance.dat metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:28.200954' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:48.155117' origin: null @@ -1337,7 +1337,7 @@ You can see how to perform a 1D spectral analysis of the same data in .. rst-class:: sphx-glr-timing - **Total running time of the script:** (0 minutes 15.125 seconds) + **Total running time of the script:** (0 minutes 14.832 seconds) .. _sphx_glr_download_tutorials_starting_analysis_1.py: diff --git a/docs/dev/_sources/tutorials/starting/analysis_2.rst.txt b/docs/dev/_sources/tutorials/starting/analysis_2.rst.txt index 9488e038c84..52b284891ea 100644 --- a/docs/dev/_sources/tutorials/starting/analysis_2.rst.txt +++ b/docs/dev/_sources/tutorials/starting/analysis_2.rst.txt @@ -147,14 +147,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/starting/overview.rst.txt b/docs/dev/_sources/tutorials/starting/overview.rst.txt index d62d216d1b1..514f1698907 100644 --- a/docs/dev/_sources/tutorials/starting/overview.rst.txt +++ b/docs/dev/_sources/tutorials/starting/overview.rst.txt @@ -130,14 +130,14 @@ Check setup System: python_executable : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/bin/python - python_version : 3.9.20 + python_version : 3.9.21 machine : x86_64 system : Linux Gammapy package: - version : 2.0.dev190+ged6e64092 + version : 2.0.dev194+gbc69342c8 path : /home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy diff --git a/docs/dev/_sources/tutorials/starting/sg_execution_times.rst.txt b/docs/dev/_sources/tutorials/starting/sg_execution_times.rst.txt index c507e97fd60..4da1a496ae9 100644 --- a/docs/dev/_sources/tutorials/starting/sg_execution_times.rst.txt +++ b/docs/dev/_sources/tutorials/starting/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:24.714** total execution time for 3 files **from tutorials/starting**: +**00:24.283** total execution time for 3 files **from tutorials/starting**: .. container:: @@ -33,11 +33,11 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_tutorials_starting_analysis_1.py` (``analysis_1.py``) - - 00:15.125 + - 00:14.832 - 0.0 * - :ref:`sphx_glr_tutorials_starting_analysis_2.py` (``analysis_2.py``) - - 00:07.627 + - 00:07.435 - 0.0 * - :ref:`sphx_glr_tutorials_starting_overview.py` (``overview.py``) - - 00:01.961 + - 00:02.016 - 0.0 diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_constant.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_constant.rst.txt index 0d21b867343..131f354fb98 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_constant.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_constant.rst.txt @@ -110,8 +110,8 @@ Here is an example YAML file using the model: type: ConstantSpatialModel parameters: [] metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:04.430351' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:25.059552' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_disk.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_disk.rst.txt index cd8df4c3483..6e444f16535 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_disk.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_disk.rst.txt @@ -232,8 +232,8 @@ Here is an example YAML file using the model: - name: edge_width value: 0.01 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:03.666495' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:24.387570' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gauss.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gauss.rst.txt index ea965e7eb69..5b83f570c42 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gauss.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gauss.rst.txt @@ -190,8 +190,8 @@ Here is an example YAML file using the model: value: 0.0 unit: deg metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:04.754859' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:25.339150' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gen_gauss.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gen_gauss.rst.txt index ead4f62e25f..86e0934d966 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gen_gauss.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_gen_gauss.rst.txt @@ -182,8 +182,8 @@ Here is an example YAML file using the model: value: 0.0 unit: deg metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:02.641675' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:23.426184' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.rst.txt index 15891c1a08d..a070f5d379f 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.rst.txt @@ -141,8 +141,8 @@ Here is an example YAML file using the model: - -1.785 unit: deg metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:03.223521' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:23.967216' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_point.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_point.rst.txt index 51e2c6e198d..a3a785834f0 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_point.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_point.rst.txt @@ -133,8 +133,8 @@ Here is an example YAML file using the model: value: 0.0 unit: deg metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:05.082363' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:25.653597' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell.rst.txt index d29f9ec886f..141071feef8 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell.rst.txt @@ -145,8 +145,8 @@ Here is an example YAML file using the model: value: 0.2 unit: deg metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:05.378350' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:25.938596' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell2.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell2.rst.txt index fa799bf1675..f087d102529 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell2.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_shell2.rst.txt @@ -157,8 +157,8 @@ Here is an example YAML file using the model: - name: eta value: 0.2 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:02.943466' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:23.708425' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_template.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_template.rst.txt index b97e83516bb..9d02567a4df 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/plot_template.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/plot_template.rst.txt @@ -129,8 +129,8 @@ Here is an example YAML file using the model: normalize: true unit: 1 / sr metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:04.025944' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:24.720889' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spatial/sg_execution_times.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spatial/sg_execution_times.rst.txt index 038a4648f00..f2142aacd6b 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spatial/sg_execution_times.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spatial/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:02.084** total execution time for 9 files **from user-guide/model-gallery/spatial**: +**00:01.950** total execution time for 9 files **from user-guide/model-gallery/spatial**: .. container:: @@ -33,29 +33,29 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_disk.py` (``plot_disk.py``) - - 00:00.316 + - 00:00.307 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_gen_gauss.py` (``plot_gen_gauss.py``) - - 00:00.313 + - 00:00.303 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_constant.py` (``plot_constant.py``) - - 00:00.278 + - 00:00.226 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_template.py` (``plot_template.py``) - - 00:00.240 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_gauss.py` (``plot_gauss.py``) - - 00:00.213 + - 00:00.225 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_point.py` (``plot_point.py``) - - 00:00.204 + - 00:00.198 - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_shell2.py` (``plot_shell2.py``) - - 00:00.186 + * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_gauss.py` (``plot_gauss.py``) + - 00:00.184 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_shell.py` (``plot_shell.py``) - - 00:00.180 + - 00:00.181 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_shell2.py` (``plot_shell2.py``) + - 00:00.176 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spatial_plot_piecewise_norm_spatial.py` (``plot_piecewise_norm_spatial.py``) - - 00:00.153 + - 00:00.149 - 0.0 diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_absorbed.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_absorbed.rst.txt index 86670af5bd4..55a265dacc1 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_absorbed.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_absorbed.rst.txt @@ -185,8 +185,8 @@ Here is an example YAML file using the model: filename: /home/runner/work/gammapy-docs/gammapy-docs/gammapy-datasets/dev/ebl/ebl_dominguez11.fits.gz operator: mul metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:08.115770' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:28.549608' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_broken_powerlaw.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_broken_powerlaw.rst.txt index b899ef8a1e5..a2e8b71f88b 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_broken_powerlaw.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_broken_powerlaw.rst.txt @@ -111,8 +111,8 @@ Here is an example YAML file using the model: value: 1.0 unit: TeV metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:13.101435' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:33.276471' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_compound.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_compound.rst.txt index 1eb4e27683b..802c1eafac7 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_compound.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_compound.rst.txt @@ -126,8 +126,8 @@ Here is an example YAML file using the model: value: 1.0 operator: add metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:10.676070' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:30.945959' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_constant_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_constant_spectral.rst.txt index e7cc5495c21..efb9d4fff12 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_constant_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_constant_spectral.rst.txt @@ -92,8 +92,8 @@ Here is an example YAML file using the model: value: 1.0 unit: TeV-1 s-1 cm-2 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:06.788826' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:27.295214' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.rst.txt index d10739e9cd7..c0afbf72bd5 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.rst.txt @@ -110,8 +110,8 @@ Here is an example YAML file using the model: - name: alpha value: 1.0 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:14.030607' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:34.163843' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.rst.txt index 3218880bdf1..f1833791f37 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.rst.txt @@ -109,8 +109,8 @@ Here is an example YAML file using the model: value: 10.0 unit: TeV metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:05.960179' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:26.488928' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.rst.txt index de6ee2b0cfd..dd56d5c87d8 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.rst.txt @@ -146,8 +146,8 @@ Here is an example YAML file using the model: value: 1.0 operator: mul metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:14.497221' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:34.611023' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_gauss_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_gauss_spectral.rst.txt index a37220fd311..26ce4cd1b20 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_gauss_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_gauss_spectral.rst.txt @@ -108,8 +108,8 @@ Here is an example YAML file using the model: value: 0.2 unit: TeV metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:11.773184' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:32.014282' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola.rst.txt index dedf8fcdb4b..5264a64afaf 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola.rst.txt @@ -118,8 +118,8 @@ Here is an example YAML file using the model: - name: beta value: 0.5 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:09.864977' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:30.193897' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.rst.txt index b42d0b652de..b2839d996c5 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.rst.txt @@ -135,8 +135,8 @@ Here is an example YAML file using the model: value: 0.0 operator: mul metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:12.172018' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:32.393934' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_naima.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_naima.rst.txt index b3b7db8b9ce..e33862886eb 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_naima.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_naima.rst.txt @@ -169,8 +169,8 @@ Here is an example YAML file using the model: interp: lin scale_method: scale10 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:09.170468' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:29.530667' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.rst.txt index 66fd8ee558d..d2aae2f2221 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.rst.txt @@ -134,8 +134,8 @@ Here is an example YAML file using the model: unit: TeV operator: mul metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:09.537001' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:29.878617' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw.rst.txt index 21cfe029753..26b973457fc 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw.rst.txt @@ -104,8 +104,8 @@ Here is an example YAML file using the model: value: 1.0 unit: TeV metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:08.573529' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:28.987431' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw2.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw2.rst.txt index a797e148a17..5fdc6f0e4fe 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw2.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw2.rst.txt @@ -111,8 +111,8 @@ Here is an example YAML file using the model: value: 10.0 unit: TeV metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:12.627534' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:32.843457' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.rst.txt index 3966d2ea5c8..b708b4afa1c 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.rst.txt @@ -132,8 +132,8 @@ Here is an example YAML file using the model: unit: TeV operator: mul metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:11.429257' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:31.670236' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.rst.txt index d9b96e87840..ec917c0a00b 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.rst.txt @@ -114,8 +114,8 @@ Here is an example YAML file using the model: - name: beta value: 1.0 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:06.416618' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:26.923891' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.rst.txt index a5cd1d9a1e4..96ffc9e7485 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.rst.txt @@ -125,8 +125,8 @@ Here is an example YAML file using the model: - name: index_2 value: 2.0 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:11.032839' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:31.277090' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.rst.txt index 782540794dc..399b81f8717 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.rst.txt @@ -124,8 +124,8 @@ Here is an example YAML file using the model: - name: index_2 value: 2.0 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:10.211690' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:30.521044' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.rst.txt index fa82c5cfc73..df1f1226cac 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.rst.txt @@ -126,8 +126,8 @@ Here is an example YAML file using the model: - name: index_2 value: 2.0 metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:07.141699' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:27.633815' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_template_spectral.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_template_spectral.rst.txt index 472d52270a7..8a49b366505 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/plot_template_spectral.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/plot_template_spectral.rst.txt @@ -116,7 +116,7 @@ The following shows how to implement extrapolation of a template spectral model: .. code-block:: none - + @@ -203,8 +203,8 @@ Here is an example YAML file using the model: - 3.9e-39 unit: 1 / (MeV s cm2) metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:13.692085' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:33.841591' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/spectral/sg_execution_times.rst.txt b/docs/dev/_sources/user-guide/model-gallery/spectral/sg_execution_times.rst.txt index 14738453223..605644797b9 100644 --- a/docs/dev/_sources/user-guide/model-gallery/spectral/sg_execution_times.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/spectral/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:06.628** total execution time for 20 files **from user-guide/model-gallery/spectral**: +**00:06.349** total execution time for 20 files **from user-guide/model-gallery/spectral**: .. container:: @@ -33,62 +33,62 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_absorbed.py` (``plot_absorbed.py``) - - 00:00.856 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_naima.py` (``plot_naima.py``) - - 00:00.471 + - 00:00.812 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_template_spectral.py` (``plot_template_spectral.py``) - - 00:00.464 + - 00:00.443 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_naima.py` (``plot_naima.py``) + - 00:00.429 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_exp_cutoff_powerlaw_3fgl.py` (``plot_exp_cutoff_powerlaw_3fgl.py``) - - 00:00.421 + - 00:00.382 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_exp_cutoff_powerlaw_norm_spectral.py` (``plot_exp_cutoff_powerlaw_norm_spectral.py``) - - 00:00.356 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_compound.py` (``plot_compound.py``) - - 00:00.339 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_broken_powerlaw.py` (``plot_broken_powerlaw.py``) - - 00:00.338 + - 00:00.340 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_powerlaw2.py` (``plot_powerlaw2.py``) - 00:00.335 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_smooth_broken_powerlaw.py` (``plot_smooth_broken_powerlaw.py``) - - 00:00.334 + - 00:00.323 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_broken_powerlaw.py` (``plot_broken_powerlaw.py``) + - 00:00.320 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_compound.py` (``plot_compound.py``) + - 00:00.320 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_powerlaw.py` (``plot_powerlaw.py``) - - 00:00.328 + - 00:00.318 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_powerlaw_norm_spectral.py` (``plot_powerlaw_norm_spectral.py``) - - 00:00.286 + - 00:00.274 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_logparabola_norm_spectral.py` (``plot_logparabola_norm_spectral.py``) - - 00:00.282 + - 00:00.271 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_constant_spectral.py` (``plot_constant_spectral.py``) - - 00:00.247 + - 00:00.262 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_piecewise_norm_spectral.py` (``plot_piecewise_norm_spectral.py``) - - 00:00.233 + - 00:00.225 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_4fgl_dr1.py` (``plot_super_exp_cutoff_powerlaw_4fgl_dr1.py``) - - 00:00.231 + - 00:00.220 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_4fgl.py` (``plot_super_exp_cutoff_powerlaw_4fgl.py``) - - 00:00.229 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_3fgl.py` (``plot_super_exp_cutoff_powerlaw_3fgl.py``) - - 00:00.227 + - 00:00.220 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_gauss_spectral.py` (``plot_gauss_spectral.py``) - - 00:00.226 + - 00:00.220 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_super_exp_cutoff_powerlaw_3fgl.py` (``plot_super_exp_cutoff_powerlaw_3fgl.py``) + - 00:00.219 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_logparabola.py` (``plot_logparabola.py``) - - 00:00.213 + - 00:00.207 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_spectral_plot_exp_cutoff_powerlaw.py` (``plot_exp_cutoff_powerlaw.py``) - - 00:00.212 + - 00:00.206 - 0.0 diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_constant_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_constant_temporal.rst.txt index ef01c7e87fa..8a4a42abef0 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_constant_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_constant_temporal.rst.txt @@ -111,8 +111,8 @@ Here is an example YAML file using the model: parameters: [] scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:16.448940' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:36.591285' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_expdecay_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_expdecay_temporal.rst.txt index f82ec795b74..62e1103da98 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_expdecay_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_expdecay_temporal.rst.txt @@ -121,8 +121,8 @@ Here is an example YAML file using the model: unit: d scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:16.659939' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:36.811246' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_gaussian_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_gaussian_temporal.rst.txt index 9232cfb60dd..119d667c800 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_gaussian_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_gaussian_temporal.rst.txt @@ -120,8 +120,8 @@ Here is an example YAML file using the model: unit: h scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:15.076122' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:35.172370' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.rst.txt index b14c431d641..090e9d04d75 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.rst.txt @@ -132,8 +132,8 @@ Here is an example YAML file using the model: value: 0.6666666666666666 scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:15.832628' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:35.947446' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_linear_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_linear_temporal.rst.txt index e5a070cb3fa..29e63730dab 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_linear_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_linear_temporal.rst.txt @@ -117,12 +117,12 @@ Here is an example YAML file using the model: value: 0.5 unit: d-1 - name: t_ref - value: 60682.755742519876 + value: 60685.61430885933 unit: d scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:16.243121' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:36.374773' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_powerlaw_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_powerlaw_temporal.rst.txt index 9d9fcb313b4..7132d766a29 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_powerlaw_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_powerlaw_temporal.rst.txt @@ -113,15 +113,15 @@ Here is an example YAML file using the model: - name: alpha value: -2.0 - name: t_ref - value: 60682.755734405626 + value: 60685.614300159315 unit: d - name: t0 value: 1.0 unit: d scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:15.614389' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:35.728298' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_sine_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_sine_temporal.rst.txt index 7446d888652..713317e6b47 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_sine_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_sine_temporal.rst.txt @@ -119,12 +119,12 @@ Here is an example YAML file using the model: value: 0.7853981633974483 unit: rad d-1 - name: t_ref - value: 60682.755740153625 + value: 60685.61430635896 unit: d scale: utc metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:16.040028' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:36.173735' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_phase_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_phase_temporal.rst.txt index b201520d1fd..0e6aabf7419 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_phase_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_phase_temporal.rst.txt @@ -127,8 +127,8 @@ Here is an example YAML file using the model: scale: utc filename: /home/runner/work/gammapy-docs/gammapy-docs/gammapy-datasets/dev/tests/phasecurve_LSI_DC.fits metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:14.831266' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:34.943811' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_temporal.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_temporal.rst.txt index f0e39e83df1..9b92f2b753a 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_temporal.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/plot_template_temporal.rst.txt @@ -118,8 +118,8 @@ Here is an example YAML file using the model: format: table unit: '' metadata: - creator: Gammapy 2.0.dev190+ged6e64092 - date: '2025-01-07T20:32:15.331082' + creator: Gammapy 2.0.dev194+gbc69342c8 + date: '2025-01-10T17:08:35.412562' origin: null diff --git a/docs/dev/_sources/user-guide/model-gallery/temporal/sg_execution_times.rst.txt b/docs/dev/_sources/user-guide/model-gallery/temporal/sg_execution_times.rst.txt index 9f0de4f7aa6..605424dc1f6 100644 --- a/docs/dev/_sources/user-guide/model-gallery/temporal/sg_execution_times.rst.txt +++ b/docs/dev/_sources/user-guide/model-gallery/temporal/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:01.006** total execution time for 9 files **from user-guide/model-gallery/temporal**: +**00:01.072** total execution time for 9 files **from user-guide/model-gallery/temporal**: .. container:: @@ -33,28 +33,28 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_powerlaw_temporal.py` (``plot_powerlaw_temporal.py``) - - 00:00.164 + - 00:00.196 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_template_phase_temporal.py` (``plot_template_phase_temporal.py``) - - 00:00.133 + - 00:00.131 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_template_temporal.py` (``plot_template_temporal.py``) - - 00:00.125 - - 0.0 - * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_gaussian_temporal.py` (``plot_gaussian_temporal.py``) - - 00:00.113 + - 00:00.121 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_generalized_gaussian_temporal.py` (``plot_generalized_gaussian_temporal.py``) - - 00:00.098 + - 00:00.110 + - 0.0 + * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_gaussian_temporal.py` (``plot_gaussian_temporal.py``) + - 00:00.109 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_expdecay_temporal.py` (``plot_expdecay_temporal.py``) - - 00:00.098 + - 00:00.107 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_sine_temporal.py` (``plot_sine_temporal.py``) - - 00:00.093 + - 00:00.106 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_constant_temporal.py` (``plot_constant_temporal.py``) - - 00:00.092 + - 00:00.098 - 0.0 * - :ref:`sphx_glr_user-guide_model-gallery_temporal_plot_linear_temporal.py` (``plot_linear_temporal.py``) - 00:00.091 diff --git a/docs/dev/api-reference/analysis.html b/docs/dev/api-reference/analysis.html index 420d564a67e..f14f53dca78 100644 --- a/docs/dev/api-reference/analysis.html +++ b/docs/dev/api-reference/analysis.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api-reference/astro.html b/docs/dev/api-reference/astro.html index 1978b1653e3..b5aa8d71ded 100644 --- a/docs/dev/api-reference/astro.html +++ b/docs/dev/api-reference/astro.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/catalog.html b/docs/dev/api-reference/catalog.html index 556aeccfe64..11fdd7b368b 100644 --- a/docs/dev/api-reference/catalog.html +++ b/docs/dev/api-reference/catalog.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api-reference/data.html b/docs/dev/api-reference/data.html index 8d5095eb6a2..b6d4b5e64e8 100644 --- a/docs/dev/api-reference/data.html +++ b/docs/dev/api-reference/data.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api-reference/datasets.html b/docs/dev/api-reference/datasets.html index 44915cd1987..89972c34a7c 100644 --- a/docs/dev/api-reference/datasets.html +++ b/docs/dev/api-reference/datasets.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/estimators.html b/docs/dev/api-reference/estimators.html index dd78411aacb..f327221fde5 100644 --- a/docs/dev/api-reference/estimators.html +++ b/docs/dev/api-reference/estimators.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/index.html b/docs/dev/api-reference/index.html index 64a9affb678..ca82f62e970 100644 --- a/docs/dev/api-reference/index.html +++ b/docs/dev/api-reference/index.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/irf.html b/docs/dev/api-reference/irf.html index 8bbde3ca437..4162df1e353 100644 --- a/docs/dev/api-reference/irf.html +++ b/docs/dev/api-reference/irf.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/makers.html b/docs/dev/api-reference/makers.html index df1e7c9b4fd..24869882541 100644 --- a/docs/dev/api-reference/makers.html +++ b/docs/dev/api-reference/makers.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api-reference/maps.html b/docs/dev/api-reference/maps.html index 7491b44a906..31ffafee591 100644 --- a/docs/dev/api-reference/maps.html +++ b/docs/dev/api-reference/maps.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api-reference/modeling.html b/docs/dev/api-reference/modeling.html index f1783b485b0..65438538c0c 100644 --- a/docs/dev/api-reference/modeling.html +++ b/docs/dev/api-reference/modeling.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/scripts.html b/docs/dev/api-reference/scripts.html index 3fda2f05ada..d45c4510494 100644 --- a/docs/dev/api-reference/scripts.html +++ b/docs/dev/api-reference/scripts.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api-reference/stats.html b/docs/dev/api-reference/stats.html index aa025ceee5b..edb65b03947 100644 --- a/docs/dev/api-reference/stats.html +++ b/docs/dev/api-reference/stats.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/utils.html b/docs/dev/api-reference/utils.html index 8a3e4ee1276..dde93fa8838 100644 --- a/docs/dev/api-reference/utils.html +++ b/docs/dev/api-reference/utils.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/api-reference/visualization.html b/docs/dev/api-reference/visualization.html index 0f53c40106f..005bbe941e6 100644 --- a/docs/dev/api-reference/visualization.html +++ b/docs/dev/api-reference/visualization.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.analysis.Analysis.html b/docs/dev/api/gammapy.analysis.Analysis.html index dd6274428de..7904458c71c 100644 --- a/docs/dev/api/gammapy.analysis.Analysis.html +++ b/docs/dev/api/gammapy.analysis.Analysis.html @@ -69,7 +69,7 @@ - + @@ -497,7 +497,7 @@

Analysis#

-class gammapy.analysis.Analysis(config)#
+class gammapy.analysis.Analysis(config)[source]#

Bases: object

Config-driven high level analysis interface.

It is initialized by default with a set of configuration parameters and values declared in @@ -581,7 +581,7 @@

Analysis

Methods Documentation

-get_datasets()#
+get_datasets()[source]#

Produce reduced datasets.

Notes

The progress bar can be displayed for this function.

@@ -589,38 +589,38 @@

Analysis
-get_excess_map()#
+get_excess_map()[source]#

Calculate excess map with respect to the current model.

-get_flux_points()#
+get_flux_points()[source]#

Calculate flux points for a specific model component.

-get_light_curve()#
+get_light_curve()[source]#

Calculate light curve for a specific model component.

-get_observations()#
+get_observations()[source]#

Fetch observations from the data store according to criteria defined in the configuration.

-read_datasets()#
+read_datasets()[source]#

Read datasets from YAML file.

File names are taken from the configuration file.

-read_models(path, extend=True)#
+read_models(path, extend=True)[source]#

Read models from YAML file.

Parameters:
@@ -637,13 +637,13 @@

Analysis
-run_fit()#
+run_fit()[source]#

Fitting reduced datasets to model.

-set_models(models, extend=True)#
+set_models(models, extend=True)[source]#

Set models on datasets.

Adds FoVBackgroundModel if not present already

@@ -661,13 +661,13 @@

Analysis
-update_config(config)#
+update_config(config)[source]#

Update the configuration.

-write_datasets(overwrite=True, write_covariance=True)#
+write_datasets(overwrite=True, write_covariance=True)[source]#

Write datasets to YAML file.

File names are taken from the configuration file.

@@ -684,7 +684,7 @@

Analysis
-write_models(overwrite=True, write_covariance=True)#
+write_models(overwrite=True, write_covariance=True)[source]#

Write models to YAML file.

File name is taken from the configuration file.

diff --git a/docs/dev/api/gammapy.analysis.AnalysisConfig.html b/docs/dev/api/gammapy.analysis.AnalysisConfig.html index 78e02c2165c..c44144242d3 100644 --- a/docs/dev/api/gammapy.analysis.AnalysisConfig.html +++ b/docs/dev/api/gammapy.analysis.AnalysisConfig.html @@ -69,7 +69,7 @@ - + @@ -497,7 +497,7 @@

AnalysisConfig#

-class gammapy.analysis.AnalysisConfig(*, general: ~gammapy.analysis.config.GeneralConfig = GeneralConfig(log=LogConfig(level='info', filename=None, filemode=None, format=None, datefmt=None), outdir='.', n_jobs=1, datasets_file=None, models_file=None), observations: ~gammapy.analysis.config.ObservationsConfig = ObservationsConfig(datastore=PosixPath('/home/runner/work/gammapy-docs/gammapy-docs/gammapy-datasets/dev/hess-dl3-dr1'), obs_ids=[], obs_file=None, obs_cone=SpatialCircleConfig(frame=None, lon=None, lat=None, radius=None), obs_time=TimeRangeConfig(start=None, stop=None), required_irf=['aeff', 'edisp', 'psf', 'bkg']), datasets: ~gammapy.analysis.config.DatasetsConfig = DatasetsConfig(type='1d', stack=True, geom=GeomConfig(wcs=WcsConfig(skydir=SkyCoordConfig(frame=None, lon=None, lat=None), binsize=<Angle 0.02 deg>, width=WidthConfig(width=<Angle 5. deg>, height=<Angle 5. deg>), binsize_irf=<Angle 0.2 deg>), selection=SelectionConfig(offset_max=<Angle 2.5 deg>), axes=EnergyAxesConfig(energy=EnergyAxisConfig(min=<Quantity 1. TeV>, max=<Quantity 10. TeV>, nbins=5), energy_true=EnergyAxisConfig(min=<Quantity 0.5 TeV>, max=<Quantity 20. TeV>, nbins=16))), map_selection=['counts', 'exposure', 'background', 'psf', 'edisp'], background=BackgroundConfig(method=None, exclusion=None, parameters={}), safe_mask=SafeMaskConfig(methods=['aeff-default'], parameters={}), on_region=SpatialCircleConfig(frame=None, lon=None, lat=None, radius=None), containment_correction=True), fit: ~gammapy.analysis.config.FitConfig = FitConfig(fit_range=EnergyRangeConfig(min=None, max=None)), flux_points: ~gammapy.analysis.config.FluxPointsConfig = FluxPointsConfig(energy=EnergyAxisConfig(min=None, max=None, nbins=None), source='source', parameters={'selection_optional': 'all'}), excess_map: ~gammapy.analysis.config.ExcessMapConfig = ExcessMapConfig(correlation_radius=<Angle 0.1 deg>, parameters={}, energy_edges=EnergyAxisConfig(min=None, max=None, nbins=None)), light_curve: ~gammapy.analysis.config.LightCurveConfig = LightCurveConfig(time_intervals=TimeRangeConfig(start=None, stop=None), energy_edges=EnergyAxisConfig(min=None, max=None, nbins=None), source='source', parameters={'selection_optional': 'all'}))#
+class gammapy.analysis.AnalysisConfig(*, general: ~gammapy.analysis.config.GeneralConfig = GeneralConfig(log=LogConfig(level='info', filename=None, filemode=None, format=None, datefmt=None), outdir='.', n_jobs=1, datasets_file=None, models_file=None), observations: ~gammapy.analysis.config.ObservationsConfig = ObservationsConfig(datastore=PosixPath('/home/runner/work/gammapy-docs/gammapy-docs/gammapy-datasets/dev/hess-dl3-dr1'), obs_ids=[], obs_file=None, obs_cone=SpatialCircleConfig(frame=None, lon=None, lat=None, radius=None), obs_time=TimeRangeConfig(start=None, stop=None), required_irf=['aeff', 'edisp', 'psf', 'bkg']), datasets: ~gammapy.analysis.config.DatasetsConfig = DatasetsConfig(type='1d', stack=True, geom=GeomConfig(wcs=WcsConfig(skydir=SkyCoordConfig(frame=None, lon=None, lat=None), binsize=<Angle 0.02 deg>, width=WidthConfig(width=<Angle 5. deg>, height=<Angle 5. deg>), binsize_irf=<Angle 0.2 deg>), selection=SelectionConfig(offset_max=<Angle 2.5 deg>), axes=EnergyAxesConfig(energy=EnergyAxisConfig(min=<Quantity 1. TeV>, max=<Quantity 10. TeV>, nbins=5), energy_true=EnergyAxisConfig(min=<Quantity 0.5 TeV>, max=<Quantity 20. TeV>, nbins=16))), map_selection=['counts', 'exposure', 'background', 'psf', 'edisp'], background=BackgroundConfig(method=None, exclusion=None, parameters={}), safe_mask=SafeMaskConfig(methods=['aeff-default'], parameters={}), on_region=SpatialCircleConfig(frame=None, lon=None, lat=None, radius=None), containment_correction=True), fit: ~gammapy.analysis.config.FitConfig = FitConfig(fit_range=EnergyRangeConfig(min=None, max=None)), flux_points: ~gammapy.analysis.config.FluxPointsConfig = FluxPointsConfig(energy=EnergyAxisConfig(min=None, max=None, nbins=None), source='source', parameters={'selection_optional': 'all'}), excess_map: ~gammapy.analysis.config.ExcessMapConfig = ExcessMapConfig(correlation_radius=<Angle 0.1 deg>, parameters={}, energy_edges=EnergyAxisConfig(min=None, max=None, nbins=None)), light_curve: ~gammapy.analysis.config.LightCurveConfig = LightCurveConfig(time_intervals=TimeRangeConfig(start=None, stop=None), energy_edges=EnergyAxisConfig(min=None, max=None, nbins=None), source='source', parameters={'selection_optional': 'all'}))[source]#

Bases: GammapyBaseConfig

Gammapy analysis configuration.

Create a new model by parsing and validating input data from keyword arguments.

@@ -715,7 +715,7 @@

AnalysisConfig
-classmethod from_yaml(config_str)#
+classmethod from_yaml(config_str)[source]#

Create from YAML string.

Parameters:
@@ -957,7 +957,7 @@

AnalysisConfig
-classmethod read(path)#
+classmethod read(path)[source]#

Read from YAML file.

Parameters:
@@ -981,20 +981,20 @@

AnalysisConfig
-set_logging()#
+set_logging()[source]#

Set logging config.

Calls logging.basicConfig, i.e. adjusts global logging state.

-to_yaml()#
+to_yaml()[source]#

Convert to YAML string.

-update(config=None)#
+update(config=None)[source]#

Update config with provided settings.

Parameters:
@@ -1018,7 +1018,7 @@

AnalysisConfig
-write(path, overwrite=False)#
+write(path, overwrite=False)[source]#

Write to YAML file.

Parameters:
diff --git a/docs/dev/api/gammapy.astro.darkmatter.BurkertProfile.html b/docs/dev/api/gammapy.astro.darkmatter.BurkertProfile.html index bbde8e93b08..0835ffc4f7f 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.BurkertProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.BurkertProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

BurkertProfile#

-class gammapy.astro.darkmatter.BurkertProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)#
+class gammapy.astro.darkmatter.BurkertProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: DMProfile

Burkert Profile.

@@ -616,7 +616,7 @@

BurkertProfile
-static evaluate(radius, r_s, rho_s)#
+static evaluate(radius, r_s, rho_s)[source]#

Evaluate the profile.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.DMProfile.html b/docs/dev/api/gammapy.astro.darkmatter.DMProfile.html index 3e1618afc0e..d506003470d 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.DMProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.DMProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

DMProfile#

-class gammapy.astro.darkmatter.DMProfile#
+class gammapy.astro.darkmatter.DMProfile[source]#

Bases: ABC

DMProfile model base class.

Attributes Summary

@@ -583,13 +583,13 @@

DMProfileMethods Documentation

-__call__(radius)#
+__call__(radius)[source]#

Call evaluate method of derived classes.

-integral(rmin, rmax, separation, ndecade, squared=True)#
+integral(rmin, rmax, separation, ndecade, squared=True)[source]#

Integrate dark matter profile numerically.

\[\begin{split}F(r_{min}, r_{max}) = \int_{r_{min}}^{r_{max}}\rho(r)^\gamma dr \\ @@ -615,7 +615,7 @@

DMProfile
-integrate_spectrum_separation(func, xmin, xmax, separation, ndecade, squared=True)#
+integrate_spectrum_separation(func, xmin, xmax, separation, ndecade, squared=True)[source]#

Squared dark matter profile integral.

Parameters:
@@ -636,7 +636,7 @@

DMProfile
-scale_to_local_density()#
+scale_to_local_density()[source]#

Scale to local density.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.html b/docs/dev/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.html index 81e003a894c..5fb8cfba280 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.html +++ b/docs/dev/api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

DarkMatterAnnihilationSpectralModel#

-class gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel(mass, channel, scale=<Quantity 1.>, jfactor=1, z=0, k=2)#
+class gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel(mass, channel, scale=<Quantity 1.>, jfactor=1, z=0, k=2)[source]#

Bases: SpectralModel

Dark matter annihilation spectral model.

The gamma-ray flux is computed as follows:

@@ -863,7 +863,7 @@

DarkMatterAnnihilationSpectralModel
-evaluate(energy, scale)#
+evaluate(energy, scale)[source]#

Evaluate dark matter annihilation model.

@@ -898,7 +898,7 @@

DarkMatterAnnihilationSpectralModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create spectral model from a dictionary.

Parameters:
@@ -1211,7 +1211,7 @@

DarkMatterAnnihilationSpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Convert to dictionary.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.html b/docs/dev/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.html index 627a313bda9..27aef50ffd6 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.html +++ b/docs/dev/api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

DarkMatterDecaySpectralModel#

-class gammapy.astro.darkmatter.DarkMatterDecaySpectralModel(mass, channel, scale=<Quantity 1.>, jfactor=1, z=0)#
+class gammapy.astro.darkmatter.DarkMatterDecaySpectralModel(mass, channel, scale=<Quantity 1.>, jfactor=1, z=0)[source]#

Bases: SpectralModel

Dark matter decay spectral model.

The gamma-ray flux is computed as follows:

@@ -861,7 +861,7 @@

DarkMatterDecaySpectralModel
-evaluate(energy, scale)#
+evaluate(energy, scale)[source]#

Evaluate dark matter decay model.

@@ -896,7 +896,7 @@

DarkMatterDecaySpectralModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create spectral model from dictionary.

Parameters:
@@ -1209,7 +1209,7 @@

DarkMatterDecaySpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.EinastoProfile.html b/docs/dev/api/gammapy.astro.darkmatter.EinastoProfile.html index 88ab594f85b..2fb326f29bc 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.EinastoProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.EinastoProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

EinastoProfile#

-class gammapy.astro.darkmatter.EinastoProfile(r_s=None, alpha=None, rho_s=<Quantity 1. GeV / cm3>)#
+class gammapy.astro.darkmatter.EinastoProfile(r_s=None, alpha=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: DMProfile

Einasto Profile.

@@ -631,7 +631,7 @@

EinastoProfile
-static evaluate(radius, r_s, alpha, rho_s)#
+static evaluate(radius, r_s, alpha, rho_s)[source]#

Evaluate the profile.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.IsothermalProfile.html b/docs/dev/api/gammapy.astro.darkmatter.IsothermalProfile.html index 489ea54d56f..6649a6e80b3 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.IsothermalProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.IsothermalProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

IsothermalProfile#

-class gammapy.astro.darkmatter.IsothermalProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)#
+class gammapy.astro.darkmatter.IsothermalProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: DMProfile

Isothermal Profile.

@@ -616,7 +616,7 @@

IsothermalProfile
-static evaluate(radius, r_s, rho_s)#
+static evaluate(radius, r_s, rho_s)[source]#

Evaluate the profile.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.JFactory.html b/docs/dev/api/gammapy.astro.darkmatter.JFactory.html index 99933c729e5..9ca433e386b 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.JFactory.html +++ b/docs/dev/api/gammapy.astro.darkmatter.JFactory.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

JFactory#

-class gammapy.astro.darkmatter.JFactory(geom, profile, distance, annihilation=True)#
+class gammapy.astro.darkmatter.JFactory(geom, profile, distance, annihilation=True)[source]#

Bases: object

Compute J-Factor or D-Factor maps.

J-Factors are computed for annihilation and D-Factors for decay. @@ -569,7 +569,7 @@

JFactory

Methods Documentation

-compute_differential_jfactor(ndecade=10000.0)#
+compute_differential_jfactor(ndecade=10000.0)[source]#

Compute differential J-Factor.

\[\frac{\mathrm d J_\text{ann}}{\mathrm d \Omega} = @@ -581,7 +581,7 @@

JFactory
-compute_jfactor(ndecade=10000.0)#
+compute_jfactor(ndecade=10000.0)[source]#

Compute astrophysical J-Factor.

\[J(\Delta\Omega) = diff --git a/docs/dev/api/gammapy.astro.darkmatter.MooreProfile.html b/docs/dev/api/gammapy.astro.darkmatter.MooreProfile.html index a302689daaf..798e7de0993 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.MooreProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.MooreProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

MooreProfile#

-class gammapy.astro.darkmatter.MooreProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)#
+class gammapy.astro.darkmatter.MooreProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: DMProfile

Moore Profile.

@@ -617,7 +617,7 @@

MooreProfile
-static evaluate(radius, r_s, rho_s)#
+static evaluate(radius, r_s, rho_s)[source]#

Evaluate the profile.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.NFWProfile.html b/docs/dev/api/gammapy.astro.darkmatter.NFWProfile.html index 11494173013..8bf18f2b4d9 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.NFWProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.NFWProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

NFWProfile#

-class gammapy.astro.darkmatter.NFWProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)#
+class gammapy.astro.darkmatter.NFWProfile(r_s=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: DMProfile

NFW Profile.

@@ -618,7 +618,7 @@

NFWProfile
-static evaluate(radius, r_s, rho_s)#
+static evaluate(radius, r_s, rho_s)[source]#

Evaluate the profile.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.PrimaryFlux.html b/docs/dev/api/gammapy.astro.darkmatter.PrimaryFlux.html index f0dd2bc5fd9..150e23eb35f 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.PrimaryFlux.html +++ b/docs/dev/api/gammapy.astro.darkmatter.PrimaryFlux.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

PrimaryFlux#

-class gammapy.astro.darkmatter.PrimaryFlux(mDM, channel)#
+class gammapy.astro.darkmatter.PrimaryFlux(mDM, channel)[source]#

Bases: TemplateNDSpectralModel

DM-annihilation gamma-ray spectra.

Based on the precomputed models by Cirelli et al. (2016). All available @@ -831,7 +831,7 @@

PrimaryFlux
-evaluate(energy, **kwargs)#
+evaluate(energy, **kwargs)[source]#

Evaluate the primary flux.

diff --git a/docs/dev/api/gammapy.astro.darkmatter.ZhaoProfile.html b/docs/dev/api/gammapy.astro.darkmatter.ZhaoProfile.html index b644acdce98..4144967b09b 100644 --- a/docs/dev/api/gammapy.astro.darkmatter.ZhaoProfile.html +++ b/docs/dev/api/gammapy.astro.darkmatter.ZhaoProfile.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

ZhaoProfile#

-class gammapy.astro.darkmatter.ZhaoProfile(r_s=None, alpha=None, beta=None, gamma=None, rho_s=<Quantity 1. GeV / cm3>)#
+class gammapy.astro.darkmatter.ZhaoProfile(r_s=None, alpha=None, beta=None, gamma=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: DMProfile

Zhao Profile.

This is taken from equation 1 from Zhao (1996). It is a generalization of the NFW profile. The volume density @@ -653,7 +653,7 @@

ZhaoProfile
-static evaluate(radius, r_s, alpha, beta, gamma, rho_s)#
+static evaluate(radius, r_s, alpha, beta, gamma, rho_s)[source]#

Evaluate the profile.

diff --git a/docs/dev/api/gammapy.astro.population.CaseBattacharya1998.html b/docs/dev/api/gammapy.astro.population.CaseBattacharya1998.html index 541ae1dcca8..34d00e0e035 100644 --- a/docs/dev/api/gammapy.astro.population.CaseBattacharya1998.html +++ b/docs/dev/api/gammapy.astro.population.CaseBattacharya1998.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

CaseBattacharya1998#

-class gammapy.astro.population.CaseBattacharya1998(amplitude=1.0, alpha=2, beta=3.53, **kwargs)#
+class gammapy.astro.population.CaseBattacharya1998(amplitude=1.0, alpha=2, beta=3.53, **kwargs)[source]#

Bases: Fittable1DModel

Radial distribution of the surface density of supernova remnants in the galaxy.

@@ -1207,7 +1207,7 @@

CaseBattacharya1998
-static evaluate(r, amplitude, alpha, beta)#
+static evaluate(r, amplitude, alpha, beta)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.Exponential.html b/docs/dev/api/gammapy.astro.population.Exponential.html index 09a876b0097..b8c48d19224 100644 --- a/docs/dev/api/gammapy.astro.population.Exponential.html +++ b/docs/dev/api/gammapy.astro.population.Exponential.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

Exponential#

-class gammapy.astro.population.Exponential(amplitude=1, z_0=0.05, **kwargs)#
+class gammapy.astro.population.Exponential(amplitude=1, z_0=0.05, **kwargs)[source]#

Bases: Fittable1DModel

Exponential distribution.

@@ -1190,7 +1190,7 @@

Exponential
-static evaluate(z, amplitude, z_0)#
+static evaluate(z, amplitude, z_0)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.FaucherKaspi2006.html b/docs/dev/api/gammapy.astro.population.FaucherKaspi2006.html index 581c61c672d..ce974a7a9d7 100644 --- a/docs/dev/api/gammapy.astro.population.FaucherKaspi2006.html +++ b/docs/dev/api/gammapy.astro.population.FaucherKaspi2006.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

FaucherKaspi2006#

-class gammapy.astro.population.FaucherKaspi2006(amplitude=1, r_0=7.04, sigma=1.83, **kwargs)#
+class gammapy.astro.population.FaucherKaspi2006(amplitude=1, r_0=7.04, sigma=1.83, **kwargs)[source]#

Bases: Fittable1DModel

Radial distribution of the birth surface density of pulsars in the galaxy.

@@ -1207,7 +1207,7 @@

FaucherKaspi2006
-static evaluate(r, amplitude, r_0, sigma)#
+static evaluate(r, amplitude, r_0, sigma)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.html b/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.html index 026e2d4a20e..cc011d583a5 100644 --- a/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.html +++ b/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

FaucherKaspi2006VelocityBimodal#

-class gammapy.astro.population.FaucherKaspi2006VelocityBimodal(amplitude=1, sigma_1=160, sigma_2=780, w=0.9, **kwargs)#
+class gammapy.astro.population.FaucherKaspi2006VelocityBimodal(amplitude=1, sigma_1=160, sigma_2=780, w=0.9, **kwargs)[source]#

Bases: Fittable1DModel

Bimodal pulsar velocity distribution. - Faucher & Kaspi (2006).

@@ -1203,7 +1203,7 @@

FaucherKaspi2006VelocityBimodal
-static evaluate(v, amplitude, sigma_1, sigma_2, w)#
+static evaluate(v, amplitude, sigma_1, sigma_2, w)[source]#

One dimensional Faucher-Guigere & Kaspi 2006 velocity model function.

diff --git a/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.html b/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.html index e709eeea7cb..619c1b07126 100644 --- a/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.html +++ b/docs/dev/api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

FaucherKaspi2006VelocityMaxwellian#

-class gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian(amplitude=1, sigma=265, **kwargs)#
+class gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian(amplitude=1, sigma=265, **kwargs)[source]#

Bases: Fittable1DModel

Maxwellian pulsar velocity distribution.

@@ -1175,7 +1175,7 @@

FaucherKaspi2006VelocityMaxwellian
-static evaluate(v, amplitude, sigma)#
+static evaluate(v, amplitude, sigma)[source]#

One dimensional velocity model function.

diff --git a/docs/dev/api/gammapy.astro.population.FaucherSpiral.html b/docs/dev/api/gammapy.astro.population.FaucherSpiral.html index 1da7a549f8e..3d19434ca89 100644 --- a/docs/dev/api/gammapy.astro.population.FaucherSpiral.html +++ b/docs/dev/api/gammapy.astro.population.FaucherSpiral.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

FaucherSpiral#

-class gammapy.astro.population.FaucherSpiral#
+class gammapy.astro.population.FaucherSpiral[source]#

Bases: LogSpiral

Milky way spiral arm used in Faucher et al (2006).

Reference: https://ui.adsabs.harvard.edu/abs/2006ApJ…643..332F

@@ -597,7 +597,7 @@

FaucherSpiralMethods Documentation

-__call__(radius, blur=True, random_state='random-seed')#
+__call__(radius, blur=True, random_state='random-seed')[source]#

Draw random position from spiral arm distribution.

Returns the corresponding angle theta[rad] to a given radius[kpc] and number of spiral arm. Possible numbers are:

diff --git a/docs/dev/api/gammapy.astro.population.LogSpiral.html b/docs/dev/api/gammapy.astro.population.LogSpiral.html index 7fc9fb56ac7..2c1d3405914 100644 --- a/docs/dev/api/gammapy.astro.population.LogSpiral.html +++ b/docs/dev/api/gammapy.astro.population.LogSpiral.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

LogSpiral#

-class gammapy.astro.population.LogSpiral#
+class gammapy.astro.population.LogSpiral[source]#

Bases: object

Logarithmic spiral.

Reference: http://en.wikipedia.org/wiki/Logarithmic_spiral

@@ -555,7 +555,7 @@

LogSpiralMethods Documentation

-radius(theta, spiralarm_index)#
+radius(theta, spiralarm_index)[source]#

Radius for a given angle.

Parameters:
@@ -577,7 +577,7 @@

LogSpiral
-theta(radius, spiralarm_index)#
+theta(radius, spiralarm_index)[source]#

Angle for a given radius.

Parameters:
@@ -599,7 +599,7 @@

LogSpiral
-xy_position(theta=None, radius=None, spiralarm_index=0)#
+xy_position(theta=None, radius=None, spiralarm_index=0)[source]#

Compute (x, y) position for a given angle or radius.

Parameters:
diff --git a/docs/dev/api/gammapy.astro.population.Lorimer2006.html b/docs/dev/api/gammapy.astro.population.Lorimer2006.html index bdd96b3197c..8c9df21c2d4 100644 --- a/docs/dev/api/gammapy.astro.population.Lorimer2006.html +++ b/docs/dev/api/gammapy.astro.population.Lorimer2006.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

Lorimer2006#

-class gammapy.astro.population.Lorimer2006(amplitude=1, B=1.9, C=5.0, **kwargs)#
+class gammapy.astro.population.Lorimer2006(amplitude=1, B=1.9, C=5.0, **kwargs)[source]#

Bases: Fittable1DModel

Radial distribution of the surface density of pulsars in the galaxy.

@@ -1207,7 +1207,7 @@

Lorimer2006
-static evaluate(r, amplitude, B, C)#
+static evaluate(r, amplitude, B, C)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.Paczynski1990.html b/docs/dev/api/gammapy.astro.population.Paczynski1990.html index 63af05897e2..82d53e9514f 100644 --- a/docs/dev/api/gammapy.astro.population.Paczynski1990.html +++ b/docs/dev/api/gammapy.astro.population.Paczynski1990.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

Paczynski1990#

-class gammapy.astro.population.Paczynski1990(amplitude=1, r_exp=4.5, **kwargs)#
+class gammapy.astro.population.Paczynski1990(amplitude=1, r_exp=4.5, **kwargs)[source]#

Bases: Fittable1DModel

Radial distribution of the birth surface density of neutron stars.

@@ -1196,7 +1196,7 @@

Paczynski1990
-static evaluate(r, amplitude, r_exp)#
+static evaluate(r, amplitude, r_exp)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.Paczynski1990Velocity.html b/docs/dev/api/gammapy.astro.population.Paczynski1990Velocity.html index 26280a6d891..913bac98352 100644 --- a/docs/dev/api/gammapy.astro.population.Paczynski1990Velocity.html +++ b/docs/dev/api/gammapy.astro.population.Paczynski1990Velocity.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

Paczynski1990Velocity#

-class gammapy.astro.population.Paczynski1990Velocity(amplitude=1, v_0=560, **kwargs)#
+class gammapy.astro.population.Paczynski1990Velocity(amplitude=1, v_0=560, **kwargs)[source]#

Bases: Fittable1DModel

Distribution by Lyne 1982 and adopted by Paczynski and Faucher.

@@ -1181,7 +1181,7 @@

Paczynski1990Velocity
-static evaluate(v, amplitude, v_0)#
+static evaluate(v, amplitude, v_0)[source]#

One dimensional Paczynski 1990 velocity model function.

diff --git a/docs/dev/api/gammapy.astro.population.ValleeSpiral.html b/docs/dev/api/gammapy.astro.population.ValleeSpiral.html index 660dc9ef183..75ac6a44b18 100644 --- a/docs/dev/api/gammapy.astro.population.ValleeSpiral.html +++ b/docs/dev/api/gammapy.astro.population.ValleeSpiral.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

ValleeSpiral#

-class gammapy.astro.population.ValleeSpiral#
+class gammapy.astro.population.ValleeSpiral[source]#

Bases: LogSpiral

Milky way spiral arm model from Vallee (2008).

Reference: https://ui.adsabs.harvard.edu/abs/2008AJ….135.1301V

diff --git a/docs/dev/api/gammapy.astro.population.YusifovKucuk2004.html b/docs/dev/api/gammapy.astro.population.YusifovKucuk2004.html index 9d47345fc4c..ee9dbeba990 100644 --- a/docs/dev/api/gammapy.astro.population.YusifovKucuk2004.html +++ b/docs/dev/api/gammapy.astro.population.YusifovKucuk2004.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

YusifovKucuk2004#

-class gammapy.astro.population.YusifovKucuk2004(amplitude=1, a=1.64, b=4.01, r_1=0.55, **kwargs)#
+class gammapy.astro.population.YusifovKucuk2004(amplitude=1, a=1.64, b=4.01, r_1=0.55, **kwargs)[source]#

Bases: Fittable1DModel

Radial distribution of the surface density of pulsars in the galaxy.

@@ -1218,7 +1218,7 @@

YusifovKucuk2004
-static evaluate(r, amplitude, a, b, r_1)#
+static evaluate(r, amplitude, a, b, r_1)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.YusifovKucuk2004B.html b/docs/dev/api/gammapy.astro.population.YusifovKucuk2004B.html index fda50c70591..5e56ffbad4d 100644 --- a/docs/dev/api/gammapy.astro.population.YusifovKucuk2004B.html +++ b/docs/dev/api/gammapy.astro.population.YusifovKucuk2004B.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

YusifovKucuk2004B#

-class gammapy.astro.population.YusifovKucuk2004B(amplitude=1, a=4, b=6.8, **kwargs)#
+class gammapy.astro.population.YusifovKucuk2004B(amplitude=1, a=4, b=6.8, **kwargs)[source]#

Bases: Fittable1DModel

Radial distribution of the surface density of OB stars in the galaxy.

@@ -1208,7 +1208,7 @@

YusifovKucuk2004B
-static evaluate(r, amplitude, a, b)#
+static evaluate(r, amplitude, a, b)[source]#

Evaluate model.

diff --git a/docs/dev/api/gammapy.astro.population.add_observed_parameters.html b/docs/dev/api/gammapy.astro.population.add_observed_parameters.html index 7e860b39ffd..b2062f20d27 100644 --- a/docs/dev/api/gammapy.astro.population.add_observed_parameters.html +++ b/docs/dev/api/gammapy.astro.population.add_observed_parameters.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

add_observed_parameters#

-gammapy.astro.population.add_observed_parameters(table, obs_pos=None)#
+gammapy.astro.population.add_observed_parameters(table, obs_pos=None)[source]#

Add observable parameters (such as sky position or distance).

Input table columns: x, y, z, extension, luminosity.

Output table columns: distance, glon, glat, flux, angular_extension.

diff --git a/docs/dev/api/gammapy.astro.population.add_pulsar_parameters.html b/docs/dev/api/gammapy.astro.population.add_pulsar_parameters.html index fbcb67f6e86..8beb2382c95 100644 --- a/docs/dev/api/gammapy.astro.population.add_pulsar_parameters.html +++ b/docs/dev/api/gammapy.astro.population.add_pulsar_parameters.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

add_pulsar_parameters#

-gammapy.astro.population.add_pulsar_parameters(table, B_mean=12.05, B_stdv=0.55, P_mean=0.3, P_stdv=0.15, random_state='random-seed')#
+gammapy.astro.population.add_pulsar_parameters(table, B_mean=12.05, B_stdv=0.55, P_mean=0.3, P_stdv=0.15, random_state='random-seed')[source]#

Add pulsar parameters to the table.

For the initial normal distribution of period and logB is given with the default values.

diff --git a/docs/dev/api/gammapy.astro.population.add_pwn_parameters.html b/docs/dev/api/gammapy.astro.population.add_pwn_parameters.html index c513392dcb2..1aef6a16cc6 100644 --- a/docs/dev/api/gammapy.astro.population.add_pwn_parameters.html +++ b/docs/dev/api/gammapy.astro.population.add_pwn_parameters.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

add_pwn_parameters#

-gammapy.astro.population.add_pwn_parameters(table)#
+gammapy.astro.population.add_pwn_parameters(table)[source]#

Add PWN parameters to the table.

Parameters:
diff --git a/docs/dev/api/gammapy.astro.population.add_snr_parameters.html b/docs/dev/api/gammapy.astro.population.add_snr_parameters.html index c55e144ff8a..440ab1915fd 100644 --- a/docs/dev/api/gammapy.astro.population.add_snr_parameters.html +++ b/docs/dev/api/gammapy.astro.population.add_snr_parameters.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

add_snr_parameters#

-gammapy.astro.population.add_snr_parameters(table)#
+gammapy.astro.population.add_snr_parameters(table)[source]#

Add SNR parameters to the table.

Parameters:
diff --git a/docs/dev/api/gammapy.astro.population.make_base_catalog_galactic.html b/docs/dev/api/gammapy.astro.population.make_base_catalog_galactic.html index 1e3d5688ab1..60a2690212e 100644 --- a/docs/dev/api/gammapy.astro.population.make_base_catalog_galactic.html +++ b/docs/dev/api/gammapy.astro.population.make_base_catalog_galactic.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

make_base_catalog_galactic#

-gammapy.astro.population.make_base_catalog_galactic(n_sources, rad_dis='YK04', vel_dis='H05', max_age='1e6 yr', spiralarms=True, n_ISM='1 cm-3', random_state='random-seed')#
+gammapy.astro.population.make_base_catalog_galactic(n_sources, rad_dis='YK04', vel_dis='H05', max_age='1e6 yr', spiralarms=True, n_ISM='1 cm-3', random_state='random-seed')[source]#

Make a catalog of Galactic sources, with basic source parameters.

Choose a radial distribution, a velocity distribution, the number of sources n_sources and the maximum age max_age in years. If spiralarms diff --git a/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_cube.html b/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_cube.html index 0b719679674..bad52a32f30 100644 --- a/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_cube.html +++ b/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_cube.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

make_catalog_random_positions_cube#

-gammapy.astro.population.make_catalog_random_positions_cube(size=100, dimension=3, distance_max='1 pc', random_state='random-seed')#
+gammapy.astro.population.make_catalog_random_positions_cube(size=100, dimension=3, distance_max='1 pc', random_state='random-seed')[source]#

Make a catalog of sources randomly distributed on a line, square or cube.

This can be used to study basic source population distribution effects, e.g. what the distance distribution looks like, or for a given luminosity diff --git a/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_sphere.html b/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_sphere.html index 6c7851346ee..ec3a1ec07ca 100644 --- a/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_sphere.html +++ b/docs/dev/api/gammapy.astro.population.make_catalog_random_positions_sphere.html @@ -69,7 +69,7 @@ - + @@ -533,7 +533,7 @@

make_catalog_random_positions_sphere#

-gammapy.astro.population.make_catalog_random_positions_sphere(size=100, distance_min='0 pc', distance_max='1 pc', random_state='random-seed')#
+gammapy.astro.population.make_catalog_random_positions_sphere(size=100, distance_min='0 pc', distance_max='1 pc', random_state='random-seed')[source]#

Sample random source locations in a sphere.

This can be used to generate an isotropic source population in a sphere, e.g. to represent extra-galactic sources.

diff --git a/docs/dev/api/gammapy.astro.population.radial_distributions.html b/docs/dev/api/gammapy.astro.population.radial_distributions.html index bf0eaa36684..adfa4ee7158 100644 --- a/docs/dev/api/gammapy.astro.population.radial_distributions.html +++ b/docs/dev/api/gammapy.astro.population.radial_distributions.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.astro.population.velocity_distributions.html b/docs/dev/api/gammapy.astro.population.velocity_distributions.html index 61ad217ef64..8519cc07357 100644 --- a/docs/dev/api/gammapy.astro.population.velocity_distributions.html +++ b/docs/dev/api/gammapy.astro.population.velocity_distributions.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.astro.source.PWN.html b/docs/dev/api/gammapy.astro.source.PWN.html index ffcc2ff30c4..9a68af21700 100644 --- a/docs/dev/api/gammapy.astro.source.PWN.html +++ b/docs/dev/api/gammapy.astro.source.PWN.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

PWN#

-class gammapy.astro.source.PWN(pulsar=<gammapy.astro.source.pulsar.Pulsar object>, snr=<gammapy.astro.source.snr.SNRTrueloveMcKee object>, eta_e=0.999, eta_B=0.001, morphology='Gaussian2D', age=None)#
+class gammapy.astro.source.PWN(pulsar=<gammapy.astro.source.pulsar.Pulsar object>, snr=<gammapy.astro.source.snr.SNRTrueloveMcKee object>, eta_e=0.999, eta_B=0.001, morphology='Gaussian2D', age=None)[source]#

Bases: object

Simple pulsar wind nebula (PWN) evolution model.

@@ -570,7 +570,7 @@

PWN#

Methods Documentation

-magnetic_field(t)#
+magnetic_field(t)[source]#

Estimate of the magnetic field inside the PWN.

By assuming that a certain fraction of the spin down energy is converted to magnetic field energy an estimation of the magnetic @@ -587,7 +587,7 @@

PWN#

-radius(t)#
+radius(t)[source]#

Radius of the PWN at age t.

During the free expansion phase the radius of the PWN evolves like:

diff --git a/docs/dev/api/gammapy.astro.source.Pulsar.html b/docs/dev/api/gammapy.astro.source.Pulsar.html index 2c2ea703c57..f911257718a 100644 --- a/docs/dev/api/gammapy.astro.source.Pulsar.html +++ b/docs/dev/api/gammapy.astro.source.Pulsar.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

Pulsar#

-class gammapy.astro.source.Pulsar(P_0='0.1 s', B='1e10 G', n=3, I=<Quantity 1.e+45 cm2 g>, R=<Quantity 1000000. cm>, age=None, L_0=None)#
+class gammapy.astro.source.Pulsar(P_0='0.1 s', B='1e10 G', n=3, I=<Quantity 1.e+45 cm2 g>, R=<Quantity 1000000. cm>, age=None, L_0=None)[source]#

Bases: object

Magnetic dipole spin-down pulsar model.

@@ -580,7 +580,7 @@

Pulsar#Methods Documentation

-energy_integrated(t)#
+energy_integrated(t)[source]#

Total energy released by a given time.

Time-integrated spin-down luminosity since birth.

@@ -597,7 +597,7 @@

Pulsar#
-luminosity_spindown(t)#
+luminosity_spindown(t)[source]#

Spin down luminosity.

\[\dot{L}(t) = \dot{L}_0 \left(1 + \frac{t}{\tau_0}\right)^{-\frac{n + 1}{n - 1}}\]
@@ -613,7 +613,7 @@

Pulsar#
-magnetic_field(t)#
+magnetic_field(t)[source]#

Magnetic field at polar cap (assumed constant).

\[B = 3.2 \cdot 10^{19} (P\dot{P})^{1/2} \text{ Gauss}\]
@@ -629,7 +629,7 @@

Pulsar#
-period(t)#
+period(t)[source]#

Rotation period.

\[P(t) = P_0 \left(1 + \frac{t}{\tau_0}\right)^{\frac{1}{n - 1}}\]
@@ -645,7 +645,7 @@

Pulsar#
-period_dot(t)#
+period_dot(t)[source]#

Period derivative at age t.

P_dot for a given period and magnetic field B, assuming a dipole spin-down.

@@ -663,7 +663,7 @@

Pulsar#
-tau(t)#
+tau(t)[source]#

Characteristic age at real age t.

\[\tau = \frac{P}{2\dot{P}}\]
diff --git a/docs/dev/api/gammapy.astro.source.SNR.html b/docs/dev/api/gammapy.astro.source.SNR.html index ff8aa4826ea..774eff57957 100644 --- a/docs/dev/api/gammapy.astro.source.SNR.html +++ b/docs/dev/api/gammapy.astro.source.SNR.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

SNR#

-class gammapy.astro.source.SNR(e_sn='1e51 erg', theta=<Quantity 0.1>, n_ISM=<Quantity 1. 1 / cm3>, m_ejecta=<<class 'astropy.constants.iau2015.IAU2015'> name='Solar mass' value=1.988409870698051e+30 uncertainty=4.468805426856864e+25 unit='kg' reference='IAU 2015 Resolution B 3 + CODATA 2018'>, t_stop=<Quantity 1000000. K>, age=None, morphology='Shell2D', spectral_index=2.1)#
+class gammapy.astro.source.SNR(e_sn='1e51 erg', theta=<Quantity 0.1>, n_ISM=<Quantity 1. 1 / cm3>, m_ejecta=<<class 'astropy.constants.iau2015.IAU2015'> name='Solar mass' value=1.988409870698051e+30 uncertainty=4.468805426856864e+25 unit='kg' reference='IAU 2015 Resolution B 3 + CODATA 2018'>, t_stop=<Quantity 1000000. K>, age=None, morphology='Shell2D', spectral_index=2.1)[source]#

Bases: object

Simple supernova remnant (SNR) evolution model.

The model is based on the Sedov-Taylor solution for strong explosions.

@@ -617,7 +617,7 @@

SNR#

Methods Documentation

-luminosity_tev(t, energy_min='1 TeV')#
+luminosity_tev(t, energy_min='1 TeV')[source]#

Gamma-ray luminosity above energy_min at age t.

The luminosity is assumed constant in a given age interval and zero before and after. The assumed spectral index is 2.1.

@@ -642,7 +642,7 @@

SNR#

-radius(t)#
+radius(t)[source]#

Outer shell radius at age t.

The radius during the free expansion phase is given by:

@@ -665,7 +665,7 @@

SNR#

-radius_inner(t, fraction=0.0914)#
+radius_inner(t, fraction=0.0914)[source]#

Inner radius at age t of the SNR shell.

Parameters:
diff --git a/docs/dev/api/gammapy.astro.source.SNRTrueloveMcKee.html b/docs/dev/api/gammapy.astro.source.SNRTrueloveMcKee.html index 06d86f1cf10..b6b5987571b 100644 --- a/docs/dev/api/gammapy.astro.source.SNRTrueloveMcKee.html +++ b/docs/dev/api/gammapy.astro.source.SNRTrueloveMcKee.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

SNRTrueloveMcKee#

-class gammapy.astro.source.SNRTrueloveMcKee(*args, **kwargs)#
+class gammapy.astro.source.SNRTrueloveMcKee(*args, **kwargs)[source]#

Bases: SNR

SNR model according to Truelove & McKee (1999).

Reference: https://ui.adsabs.harvard.edu/abs/1999ApJS..120..299T

@@ -619,7 +619,7 @@

SNRTrueloveMcKee
-radius(t)#
+radius(t)[source]#

Outer shell radius at age t.

The radius during the free expansion phase is given by:

@@ -658,7 +658,7 @@

SNRTrueloveMcKee
-radius_reverse_shock(t)#
+radius_reverse_shock(t)[source]#

Reverse shock radius at age t.

Initially the reverse shock co-evolves with the radius of the SNR:

diff --git a/docs/dev/api/gammapy.astro.source.SimplePulsar.html b/docs/dev/api/gammapy.astro.source.SimplePulsar.html index a8993f011e3..efd9cc60490 100644 --- a/docs/dev/api/gammapy.astro.source.SimplePulsar.html +++ b/docs/dev/api/gammapy.astro.source.SimplePulsar.html @@ -70,7 +70,7 @@ - + @@ -534,7 +534,7 @@

SimplePulsar#

-class gammapy.astro.source.SimplePulsar(P, P_dot, I=<Quantity 1.e+45 cm2 g>, R=<Quantity 1000000. cm>)#
+class gammapy.astro.source.SimplePulsar(P, P_dot, I=<Quantity 1.e+45 cm2 g>, R=<Quantity 1000000. cm>)[source]#

Bases: object

Magnetic dipole spin-down model for a pulsar.

diff --git a/docs/dev/api/gammapy.catalog.CATALOG_REGISTRY.html b/docs/dev/api/gammapy.catalog.CATALOG_REGISTRY.html index 5bf5b20138b..5f9b2645d17 100644 --- a/docs/dev/api/gammapy.catalog.CATALOG_REGISTRY.html +++ b/docs/dev/api/gammapy.catalog.CATALOG_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog.html b/docs/dev/api/gammapy.catalog.SourceCatalog.html index ede607ca3e3..270b06cb543 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

SourceCatalog#

-class gammapy.catalog.SourceCatalog(table, source_name_key='Source_Name', source_name_alias=())#
+class gammapy.catalog.SourceCatalog(table, source_name_key='Source_Name', source_name_alias=())[source]#

Bases: ABC

Generic source catalog.

This class can be used directly, but it is mostly used as a @@ -587,13 +587,13 @@

SourceCatalogMethods Documentation

-abstract classmethod description()#
+abstract classmethod description()[source]#

Catalog description as a string.

-row_index(name)#
+row_index(name)[source]#

Look up row index of source by name.

Parameters:
@@ -613,7 +613,7 @@

SourceCatalog
-source_name(index)#
+source_name(index)[source]#

Look up source name by row index.

Parameters:
@@ -627,7 +627,7 @@

SourceCatalog
-to_models(**kwargs)#
+to_models(**kwargs)[source]#

Create Models object from catalog.

diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog1LHAASO.html b/docs/dev/api/gammapy.catalog.SourceCatalog1LHAASO.html index 7161f1a51c1..9bcadbe753b 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog1LHAASO.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog1LHAASO.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

SourceCatalog1LHAASO#

-class gammapy.catalog.SourceCatalog1LHAASO(filename='$GAMMAPY_DATA/catalogs/1LHAASO_catalog.fits')#
+class gammapy.catalog.SourceCatalog1LHAASO(filename='$GAMMAPY_DATA/catalogs/1LHAASO_catalog.fits')[source]#

Bases: SourceCatalog

First LHAASO catalog.

One source is represented by SourceCatalogObject1LHAASO.

@@ -622,7 +622,7 @@

SourceCatalog1LHAASO
-to_models(which='both')#
+to_models(which='both')[source]#

Create Models object from catalog.

  • which="both" - Use first model or create a composite template if both models are available.

  • diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog2FHL.html b/docs/dev/api/gammapy.catalog.SourceCatalog2FHL.html index 73f8194f626..4e275eb5b90 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog2FHL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog2FHL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

    SourceCatalog2FHL#

    -class gammapy.catalog.SourceCatalog2FHL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psch_v09.fit.gz')#
    +class gammapy.catalog.SourceCatalog2FHL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psch_v09.fit.gz')[source]#

    Bases: SourceCatalog

    Fermi-LAT 2FHL source catalog.

      diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog2HWC.html b/docs/dev/api/gammapy.catalog.SourceCatalog2HWC.html index 709f61ebb5d..7ab11bea2b6 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog2HWC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog2HWC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

      SourceCatalog2HWC#

      -class gammapy.catalog.SourceCatalog2HWC(filename='$GAMMAPY_DATA/catalogs/2HWC.ecsv')#
      +class gammapy.catalog.SourceCatalog2HWC(filename='$GAMMAPY_DATA/catalogs/2HWC.ecsv')[source]#

      Bases: SourceCatalog

      HAWC 2HWC catalog.

      One source is represented by SourceCatalogObject2HWC.

      diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog2PC.html b/docs/dev/api/gammapy.catalog.SourceCatalog2PC.html index 85d9429cf8c..8cf706e94c4 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog2PC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog2PC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

      SourceCatalog2PC#

      -class gammapy.catalog.SourceCatalog2PC(filename='$GAMMAPY_DATA/catalogs/fermi/2PC_catalog_v04.fits.gz')#
      +class gammapy.catalog.SourceCatalog2PC(filename='$GAMMAPY_DATA/catalogs/fermi/2PC_catalog_v04.fits.gz')[source]#

      Bases: SourceCatalog

      Fermi-LAT 2nd pulsar catalog.

      diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog3FGL.html b/docs/dev/api/gammapy.catalog.SourceCatalog3FGL.html index 6856b77412b..4406fb36e37 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog3FGL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog3FGL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

      SourceCatalog3FGL#

      -class gammapy.catalog.SourceCatalog3FGL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psc_v16.fit.gz')#
      +class gammapy.catalog.SourceCatalog3FGL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psc_v16.fit.gz')[source]#

      Bases: SourceCatalog

      Fermi-LAT 3FGL source catalog.

        diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog3FHL.html b/docs/dev/api/gammapy.catalog.SourceCatalog3FHL.html index e4f34bbfe35..3fd36d7cef8 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog3FHL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog3FHL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

        SourceCatalog3FHL#

        -class gammapy.catalog.SourceCatalog3FHL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psch_v13.fit.gz')#
        +class gammapy.catalog.SourceCatalog3FHL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psch_v13.fit.gz')[source]#

        Bases: SourceCatalog

        Fermi-LAT 3FHL source catalog.

          diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog3HWC.html b/docs/dev/api/gammapy.catalog.SourceCatalog3HWC.html index 082492bb1f8..0b2cca2a551 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog3HWC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog3HWC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

          SourceCatalog3HWC#

          -class gammapy.catalog.SourceCatalog3HWC(filename='$GAMMAPY_DATA/catalogs/3HWC.ecsv')#
          +class gammapy.catalog.SourceCatalog3HWC(filename='$GAMMAPY_DATA/catalogs/3HWC.ecsv')[source]#

          Bases: SourceCatalog

          HAWC 3HWC catalog.

          One source is represented by SourceCatalogObject3HWC.

          diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog3PC.html b/docs/dev/api/gammapy.catalog.SourceCatalog3PC.html index f730977a89a..4e0cc5399fe 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog3PC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog3PC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

          SourceCatalog3PC#

          -class gammapy.catalog.SourceCatalog3PC(filename='$GAMMAPY_DATA/catalogs/fermi/3PC_Catalog+SEDs_20230803.fits.gz')#
          +class gammapy.catalog.SourceCatalog3PC(filename='$GAMMAPY_DATA/catalogs/fermi/3PC_Catalog+SEDs_20230803.fits.gz')[source]#

          Bases: SourceCatalog

          Fermi-LAT 3rd pulsar catalog.

          diff --git a/docs/dev/api/gammapy.catalog.SourceCatalog4FGL.html b/docs/dev/api/gammapy.catalog.SourceCatalog4FGL.html index a52d1e61ba4..5406089d4d6 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalog4FGL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalog4FGL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

          SourceCatalog4FGL#

          -class gammapy.catalog.SourceCatalog4FGL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psc_v32.fit.gz')#
          +class gammapy.catalog.SourceCatalog4FGL(filename='$GAMMAPY_DATA/catalogs/fermi/gll_psc_v32.fit.gz')[source]#

          Bases: SourceCatalog

          Fermi-LAT 4FGL source catalog.

            diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogGammaCat.html b/docs/dev/api/gammapy.catalog.SourceCatalogGammaCat.html index 3e208bec87c..25cd4b8ad4f 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogGammaCat.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogGammaCat.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

            SourceCatalogGammaCat#

            -class gammapy.catalog.SourceCatalogGammaCat(filename='$GAMMAPY_DATA/catalogs/gammacat/gammacat.fits.gz')#
            +class gammapy.catalog.SourceCatalogGammaCat(filename='$GAMMAPY_DATA/catalogs/gammacat/gammacat.fits.gz')[source]#

            Bases: SourceCatalog

            Gammacat open TeV source catalog.

            See: gammapy/gamma-cat

            diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogHGPS.html b/docs/dev/api/gammapy.catalog.SourceCatalogHGPS.html index 428f59b1dad..70651c115a0 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogHGPS.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogHGPS.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

            SourceCatalogHGPS#

            -class gammapy.catalog.SourceCatalogHGPS(filename='$GAMMAPY_DATA/catalogs/hgps_catalog_v1.fits.gz', hdu='HGPS_SOURCES')#
            +class gammapy.catalog.SourceCatalogHGPS(filename='$GAMMAPY_DATA/catalogs/hgps_catalog_v1.fits.gz', hdu='HGPS_SOURCES')[source]#

            Bases: SourceCatalog

            HESS Galactic plane survey (HGPS) source catalog.

            Reference: https://www.mpi-hd.mpg.de/hfm/HESS/hgps/

            @@ -769,7 +769,7 @@

            SourceCatalogHGPSMethods Documentation

            -gaussian_component(row_idx)#
            +gaussian_component(row_idx)[source]#

            Gaussian component as a SourceCatalogObjectHGPSComponent object.

            @@ -809,7 +809,7 @@

            SourceCatalogHGPS
            -to_models(which='best', components_status='independent')#
            +to_models(which='best', components_status='independent')[source]#

            Create Models object from catalog.

            Parameters:
            diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.html b/docs/dev/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.html index c00c0d7ff89..0a8ac43b013 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogLargeScaleHGPS.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

            SourceCatalogLargeScaleHGPS#

            -class gammapy.catalog.SourceCatalogLargeScaleHGPS(table, interp_kwargs=None)#
            +class gammapy.catalog.SourceCatalogLargeScaleHGPS(table, interp_kwargs=None)[source]#

            Bases: object

            Gaussian band model.

            This 2-dimensional model is Gaussian in y for a given x, @@ -570,7 +570,7 @@

            SourceCatalogLargeScaleHGPSMethods Documentation

            -evaluate(position)#
            +evaluate(position)[source]#

            Evaluate model at a given position.

            Parameters:
            @@ -584,7 +584,7 @@

            SourceCatalogLargeScaleHGPS
            -peak_brightness(glon)#
            +peak_brightness(glon)[source]#

            Peak brightness at a given longitude.

            Parameters:
            @@ -598,7 +598,7 @@

            SourceCatalogLargeScaleHGPS
            -peak_brightness_error(glon)#
            +peak_brightness_error(glon)[source]#

            Peak brightness error at a given longitude.

            Parameters:
            @@ -612,7 +612,7 @@

            SourceCatalogLargeScaleHGPS
            -peak_latitude(glon)#
            +peak_latitude(glon)[source]#

            Peak position at a given longitude.

            Parameters:
            @@ -626,7 +626,7 @@

            SourceCatalogLargeScaleHGPS
            -peak_latitude_error(glon)#
            +peak_latitude_error(glon)[source]#

            Peak position error at a given longitude.

            Parameters:
            @@ -640,7 +640,7 @@

            SourceCatalogLargeScaleHGPS
            -width(glon)#
            +width(glon)[source]#

            Width at a given longitude.

            Parameters:
            @@ -654,7 +654,7 @@

            SourceCatalogLargeScaleHGPS
            -width_error(glon)#
            +width_error(glon)[source]#

            Width error at a given longitude.

            Parameters:
            diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject.html index 981e36c1422..c8100d0aa43 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

            SourceCatalogObject#

            -class gammapy.catalog.SourceCatalogObject(data, data_extended=None, data_spectral=None)#
            +class gammapy.catalog.SourceCatalogObject(data, data_extended=None, data_spectral=None)[source]#

            Bases: object

            Source catalog object.

            This class can be used directly, but it is mostly used as a diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject1LHAASO.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject1LHAASO.html index 269214fad92..7571495af88 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject1LHAASO.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject1LHAASO.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

            SourceCatalogObject1LHAASO#

            -class gammapy.catalog.SourceCatalogObject1LHAASO(data, data_extended=None, data_spectral=None)#
            +class gammapy.catalog.SourceCatalogObject1LHAASO(data, data_extended=None, data_spectral=None)[source]#

            Bases: SourceCatalogObject

            One source from the 1LHAASO catalog.

            Catalog is represented by SourceCatalog1LHAASO.

            @@ -578,7 +578,7 @@

            SourceCatalogObject1LHAASOMethods Documentation

            -sky_model(which='both')#
            +sky_model(which='both')[source]#

            Sky model as a SkyModel object.

            • @@ -593,7 +593,7 @@

              SourceCatalogObject1LHAASO
              -spatial_model(which)#
              +spatial_model(which)[source]#

              Spatial model as a SpatialModel object.

              • which="KM2A" - Sky model for KM2A analysis only.

              • @@ -603,7 +603,7 @@

                SourceCatalogObject1LHAASO
                -spectral_model(which)#
                +spectral_model(which)[source]#

                Spectral model as a PowerLawSpectralModel object.

                • which="KM2A" - Sky model for KM2A analysis only.

                • diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject2FHL.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject2FHL.html index 6f86e6f9db4..3f393f64ee2 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject2FHL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject2FHL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

                  SourceCatalogObject2FHL#

                  -class gammapy.catalog.SourceCatalogObject2FHL(data, data_extended=None, data_spectral=None)#
                  +class gammapy.catalog.SourceCatalogObject2FHL(data, data_extended=None, data_spectral=None)[source]#

                  Bases: SourceCatalogObjectFermiBase

                  One source from the Fermi-LAT 2FHL catalog.

                  Catalog is represented by SourceCatalog2FHL.

                  @@ -652,13 +652,13 @@

                  SourceCatalogObject2FHL
                  -spatial_model()#
                  +spatial_model()[source]#

                  Spatial model as a SpatialModel object.

                  -spectral_model()#
                  +spectral_model()[source]#

                  Best fit spectral model as a SpectralModel.

                  diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject2HWC.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject2HWC.html index 2497276e6dd..4f0fa68cbd6 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject2HWC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject2HWC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

                  SourceCatalogObject2HWC#

                  -class gammapy.catalog.SourceCatalogObject2HWC(data, data_extended=None, data_spectral=None)#
                  +class gammapy.catalog.SourceCatalogObject2HWC(data, data_extended=None, data_spectral=None)[source]#

                  Bases: SourceCatalogObjectHWCBase

                  One source from the HAWC 2HWC catalog.

                  Catalog is represented by SourceCatalog2HWC.

                  @@ -604,7 +604,7 @@

                  SourceCatalogObject2HWC
                  -sky_model(which='point')#
                  +sky_model(which='point')[source]#

                  Sky model (SkyModel).

                  • which="point" - Sky model for point source analysis.

                  • @@ -617,7 +617,7 @@

                    SourceCatalogObject2HWC
                    -spatial_model(which='point')#
                    +spatial_model(which='point')[source]#

                    Spatial model (SpatialModel).

                    • which="point" - PointSpatialModel.

                    • @@ -628,7 +628,7 @@

                      SourceCatalogObject2HWC
                      -spectral_model(which='point')#
                      +spectral_model(which='point')[source]#

                      Spectral model (PowerLawSpectralModel).

                      • which="point" – Spectral model under the point source assumption.

                      • diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject2PC.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject2PC.html index d8db5c827ab..6c69e1d9e66 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject2PC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject2PC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

                        SourceCatalogObject2PC#

                        -class gammapy.catalog.SourceCatalogObject2PC(data, data_extended=None, data_spectral=None)#
                        +class gammapy.catalog.SourceCatalogObject2PC(data, data_extended=None, data_spectral=None)[source]#

                        Bases: SourceCatalogObjectFermiPCBase

                        One source from the 2PC catalog.

                        Attributes Summary

                        @@ -623,7 +623,7 @@

                        SourceCatalogObject2PC
                        -spectral_model()#
                        +spectral_model()[source]#

                  diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject3FGL.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject3FGL.html index 066b40fa162..9c816fe6eb9 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject3FGL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject3FGL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

                  SourceCatalogObject3FGL#

                  -class gammapy.catalog.SourceCatalogObject3FGL(data, data_extended=None, data_spectral=None)#
                  +class gammapy.catalog.SourceCatalogObject3FGL(data, data_extended=None, data_spectral=None)[source]#

                  Bases: SourceCatalogObjectFermiBase

                  One source from the Fermi-LAT 3FGL catalog.

                  Catalog is represented by SourceCatalog3FGL.

                  @@ -652,7 +652,7 @@

                  SourceCatalogObject3FGL
                  -lightcurve()#
                  +lightcurve()[source]#

                  Lightcurve as a FluxPoints object.

                  @@ -664,13 +664,13 @@

                  SourceCatalogObject3FGL
                  -spatial_model()#
                  +spatial_model()[source]#

                  Spatial model as a SpatialModel object.

              -spectral_model()#
              +spectral_model()[source]#

              Best fit spectral model as a SpectralModel object.

              diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject3FHL.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject3FHL.html index c9f99d4d32f..f9ea30b4bb6 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject3FHL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject3FHL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

              SourceCatalogObject3FHL#

              -class gammapy.catalog.SourceCatalogObject3FHL(data, data_extended=None, data_spectral=None)#
              +class gammapy.catalog.SourceCatalogObject3FHL(data, data_extended=None, data_spectral=None)[source]#

              Bases: SourceCatalogObjectFermiBase

              One source from the Fermi-LAT 3FHL catalog.

              Catalog is represented by SourceCatalog3FHL.

              @@ -652,13 +652,13 @@

              SourceCatalogObject3FHL
              -spatial_model()#
              +spatial_model()[source]#

              Source spatial model as a SpatialModel object.

              -spectral_model()#
              +spectral_model()[source]#

              Best fit spectral model as a SpectralModel object.

              diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject3HWC.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject3HWC.html index b75742eb401..718dad93567 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject3HWC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject3HWC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

              SourceCatalogObject3HWC#

              -class gammapy.catalog.SourceCatalogObject3HWC(data, data_extended=None, data_spectral=None)#
              +class gammapy.catalog.SourceCatalogObject3HWC(data, data_extended=None, data_spectral=None)[source]#

              Bases: SourceCatalogObjectHWCBase

              One source from the HAWC 3HWC catalog.

              Catalog is represented by SourceCatalog3HWC.

              @@ -612,19 +612,19 @@

              SourceCatalogObject3HWC
              -sky_model()#
              +sky_model()[source]#

              Sky model as a SkyModel object.

              -spatial_model()#
              +spatial_model()[source]#

              Spatial model as a SpatialModel object.

              -spectral_model()#
              +spectral_model()[source]#

              Spectral model as a PowerLawSpectralModel object.

              diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject3PC.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject3PC.html index dc47694ff18..d1ab9541127 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject3PC.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject3PC.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

              SourceCatalogObject3PC#

              -class gammapy.catalog.SourceCatalogObject3PC(data, data_extended=None, data_spectral=None)#
              +class gammapy.catalog.SourceCatalogObject3PC(data, data_extended=None, data_spectral=None)[source]#

              Bases: SourceCatalogObjectFermiPCBase

              One source from the 3PC catalog.

              Attributes Summary

              @@ -632,7 +632,7 @@

              SourceCatalogObject3PC
              -spectral_model(fit='auto')#
              +spectral_model(fit='auto')[source]#

              In the 3PC, Fermi-LAT collaboration tried to fit a SuperExpCutoffPowerLaw4FGLDR3SpectralModel with the exponential index index_2 free, or fixed to 2/3. These two models are referred diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObject4FGL.html b/docs/dev/api/gammapy.catalog.SourceCatalogObject4FGL.html index 259a68921c8..4a62f09f0ce 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObject4FGL.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObject4FGL.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

              SourceCatalogObject4FGL#

              -class gammapy.catalog.SourceCatalogObject4FGL(data, data_extended=None, data_spectral=None)#
              +class gammapy.catalog.SourceCatalogObject4FGL(data, data_extended=None, data_spectral=None)[source]#

              Bases: SourceCatalogObjectFermiBase

              One source from the Fermi-LAT 4FGL catalog.

              Catalog is represented by SourceCatalog4FGL.

              @@ -640,7 +640,7 @@

              SourceCatalogObject4FGL
              -lightcurve(interval='1-year')#
              +lightcurve(interval='1-year')[source]#

              Lightcurve as a FluxPoints object.

              Parameters:
              @@ -661,13 +661,13 @@

              SourceCatalogObject4FGL
              -spatial_model()#
              +spatial_model()[source]#

              Spatial model as a SpatialModel object.

              -spectral_model()#
              +spectral_model()[source]#

              Best fit spectral model as a SpectralModel object.

              diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObjectGammaCat.html b/docs/dev/api/gammapy.catalog.SourceCatalogObjectGammaCat.html index 851c6bc01b1..e021da2a812 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObjectGammaCat.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObjectGammaCat.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

              SourceCatalogObjectGammaCat#

              -class gammapy.catalog.SourceCatalogObjectGammaCat(data, data_extended=None, data_spectral=None)#
              +class gammapy.catalog.SourceCatalogObjectGammaCat(data, data_extended=None, data_spectral=None)[source]#

              Bases: SourceCatalogObject

              One object from the gamma-cat source catalog.

              Catalog is represented by SourceCatalogGammaCat.

              @@ -599,7 +599,7 @@

              SourceCatalogObjectGammaCatMethods Documentation

              -info(info='all')#
              +info(info='all')[source]#

              Information string.

              Parameters:
              @@ -613,20 +613,20 @@

              SourceCatalogObjectGammaCat
              -sky_model()#
              +sky_model()[source]#

              Source sky model (SkyModel).

              -spatial_model()#
              +spatial_model()[source]#

              Source spatial model (SpatialModel).

              TODO: add parameter errors!

              -spectral_model()#
              +spectral_model()[source]#

              Source spectral model (SpectralModel).

              Parameter errors are statistical errors only.

              diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPS.html b/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPS.html index e7a16d9d59b..738dbac7b09 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPS.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPS.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

              SourceCatalogObjectHGPS#

              -class gammapy.catalog.SourceCatalogObjectHGPS(data, data_extended=None, data_spectral=None)#
              +class gammapy.catalog.SourceCatalogObjectHGPS(data, data_extended=None, data_spectral=None)[source]#

              Bases: SourceCatalogObject

              One object from the HGPS catalog.

              The catalog is represented by SourceCatalogHGPS. @@ -612,7 +612,7 @@

              SourceCatalogObjectHGPSMethods Documentation

              -components_models(which='best', linked=False)#
              +components_models(which='best', linked=False)[source]#

              Models of the source components.

              Parameters:
              @@ -636,7 +636,7 @@

              SourceCatalogObjectHGPS
              -info(info='all')#
              +info(info='all')[source]#

              Information string.

              Parameters:
              @@ -650,7 +650,7 @@

              SourceCatalogObjectHGPS
              -sky_model(which='best')#
              +sky_model(which='best')[source]#

              Source sky model.

              Parameters:
              @@ -670,7 +670,7 @@

              SourceCatalogObjectHGPS
              -spatial_model()#
              +spatial_model()[source]#

              Spatial model as a SpatialModel object.

              One of the following models (given by Spatial_Model in the catalog):

                @@ -683,7 +683,7 @@

                SourceCatalogObjectHGPS
                -spectral_model(which='best')#
                +spectral_model(which='best')[source]#

                Spectral model as a SpectralModel object.

                One of the following models (given by Spectral_Model in the catalog):

                  diff --git a/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.html b/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.html index 330806f4712..43936690635 100644 --- a/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.html +++ b/docs/dev/api/gammapy.catalog.SourceCatalogObjectHGPSComponent.html @@ -69,7 +69,7 @@ - + @@ -522,7 +522,7 @@

                  SourceCatalogObjectHGPSComponent#

                  -class gammapy.catalog.SourceCatalogObjectHGPSComponent(data)#
                  +class gammapy.catalog.SourceCatalogObjectHGPSComponent(data)[source]#

                  Bases: SourceCatalogObject

                  One Gaussian component from the HGPS catalog.

                  @@ -577,7 +577,7 @@

                  SourceCatalogObjectHGPSComponentMethods Documentation

                  -spatial_model()#
                  +spatial_model()[source]#

                  Component spatial model as a GaussianSpatialModel object.

                  diff --git a/docs/dev/api/gammapy.data.DataStore.html b/docs/dev/api/gammapy.data.DataStore.html index 8ecb5eb058f..61bfa7a3b37 100644 --- a/docs/dev/api/gammapy.data.DataStore.html +++ b/docs/dev/api/gammapy.data.DataStore.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  DataStore#

                  -class gammapy.data.DataStore(hdu_table=None, obs_table=None)#
                  +class gammapy.data.DataStore(hdu_table=None, obs_table=None)[source]#

                  Bases: object

                  IACT data store.

                  The data selection and access happens using an observation @@ -613,14 +613,14 @@

                  DataStoreMethods Documentation

                  -check(checks='all')#
                  +check(checks='all')[source]#

                  Check index tables and data files.

                  This is a generator that yields a list of dicts.

                  -copy_obs(obs_id, outdir, hdu_class=None, verbose=False, overwrite=False)#
                  +copy_obs(obs_id, outdir, hdu_class=None, verbose=False, overwrite=False)[source]#

                  Create a new DataStore containing a subset of observations.

                  Parameters:
                  @@ -642,7 +642,7 @@

                  DataStore
                  -classmethod from_dir(base_dir, hdu_table_filename=None, obs_table_filename=None)#
                  +classmethod from_dir(base_dir, hdu_table_filename=None, obs_table_filename=None)[source]#

                  Create from a directory.

                  Parameters:
                  @@ -673,7 +673,7 @@

                  DataStore
                  -classmethod from_events_files(events_paths, irfs_paths=None)#
                  +classmethod from_events_files(events_paths, irfs_paths=None)[source]#

                  Create from a list of event filenames.

                  HDU and observation index tables will be created from the EVENTS header.

                  IRFs are found only if you have a CALDB environment variable set, @@ -737,7 +737,7 @@

                  DataStore
                  -classmethod from_file(filename, hdu_hdu='HDU_INDEX', hdu_obs='OBS_INDEX')#
                  +classmethod from_file(filename, hdu_hdu='HDU_INDEX', hdu_obs='OBS_INDEX')[source]#

                  Create a Datastore from a FITS file.

                  The FITS file must contain both index files.

                  @@ -762,7 +762,7 @@

                  DataStore
                  -get_observations(obs_id=None, skip_missing=False, required_irf='full-enclosure', require_events=True)#
                  +get_observations(obs_id=None, skip_missing=False, required_irf='full-enclosure', require_events=True)[source]#

                  Generate a Observations.

                  Parameters:
                  @@ -811,13 +811,13 @@

                  DataStore
                  -info(show=True)#
                  +info(show=True)[source]#

                  Print some info.

                  -obs(obs_id, required_irf='full-enclosure', require_events=True)#
                  +obs(obs_id, required_irf='full-enclosure', require_events=True)[source]#

                  Access a given Observation.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.EventList.html b/docs/dev/api/gammapy.data.EventList.html index 12275e29a85..55436c4498a 100644 --- a/docs/dev/api/gammapy.data.EventList.html +++ b/docs/dev/api/gammapy.data.EventList.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  EventList#

                  -class gammapy.data.EventList(table, meta=None)#
                  +class gammapy.data.EventList(table, meta=None)[source]#

                  Bases: object

                  Event list.

                  Event list data is stored as table (Table) data member.

                  @@ -843,20 +843,20 @@

                  EventListMethods Documentation

                  -check(checks='all')#
                  +check(checks='all')[source]#

                  Run checks.

                  This is a generator that yields a list of dicts.

                  -copy()#
                  +copy()[source]#

                  Copy event list (EventList).

                  -classmethod from_stack(event_lists, **kwargs)#
                  +classmethod from_stack(event_lists, **kwargs)[source]#

                  Stack (concatenate) list of event lists.

                  Calls vstack.

                  @@ -873,7 +873,7 @@

                  EventList
                  -map_coord(geom)#
                  +map_coord(geom)[source]#

                  Event map coordinates for a given geometry.

                  Parameters:
                  @@ -893,7 +893,7 @@

                  EventList
                  -peek(allsky=False)#
                  +peek(allsky=False)[source]#

                  Quick look plots.

                  Parameters:
                  @@ -907,7 +907,7 @@

                  EventList
                  -plot_energy(ax=None, **kwargs)#
                  +plot_energy(ax=None, **kwargs)[source]#

                  Plot counts as a function of energy.

                  Parameters:
                  @@ -929,7 +929,7 @@

                  EventList
                  -plot_energy_offset(ax=None, center=None, **kwargs)#
                  +plot_energy_offset(ax=None, center=None, **kwargs)[source]#

                  Plot counts histogram with energy and offset axes.

                  Parameters:
                  @@ -953,7 +953,7 @@

                  EventList
                  -plot_image(ax=None, allsky=False)#
                  +plot_image(ax=None, allsky=False)[source]#

                  Quick look counts map sky plot.

                  Parameters:
                  @@ -969,7 +969,7 @@

                  EventList
                  -plot_offset2_distribution(ax=None, center=None, max_percentile=98, **kwargs)#
                  +plot_offset2_distribution(ax=None, center=None, max_percentile=98, **kwargs)[source]#

                  Plot offset^2 distribution of the events.

                  The distribution shown in this plot is for this quantity:

                  offset = center.separation(events.radec).deg
                  @@ -1035,7 +1035,7 @@ 

                  EventList
                  -plot_time(ax=None, **kwargs)#
                  +plot_time(ax=None, **kwargs)[source]#

                  Plot an event rate time curve.

                  Parameters:
                  @@ -1057,7 +1057,7 @@

                  EventList
                  -classmethod read(filename, hdu='EVENTS', checksum=False, **kwargs)#
                  +classmethod read(filename, hdu='EVENTS', checksum=False, **kwargs)[source]#

                  Read from FITS file.

                  Format specification: EVENTS

                  @@ -1076,7 +1076,7 @@

                  EventList
                  -select_energy(energy_range)#
                  +select_energy(energy_range)[source]#

                  Select events in energy band.

                  Parameters:
                  @@ -1105,7 +1105,7 @@

                  EventList
                  -select_mask(mask)#
                  +select_mask(mask)[source]#

                  Select events inside a mask (EventList).

                  Parameters:
                  @@ -1137,7 +1137,7 @@

                  EventList
                  -select_offset(offset_band)#
                  +select_offset(offset_band)[source]#

                  Select events in offset band.

                  Parameters:
                  @@ -1167,7 +1167,7 @@

                  EventList
                  -select_parameter(parameter, band)#
                  +select_parameter(parameter, band)[source]#

                  Select events with respect to a specified parameter.

                  Parameters:
                  @@ -1201,7 +1201,7 @@

                  EventList
                  -select_rad_max(rad_max, position=None)#
                  +select_rad_max(rad_max, position=None)[source]#

                  Select energy dependent offset.

                  Parameters:
                  @@ -1223,7 +1223,7 @@

                  EventList
                  -select_region(regions, wcs=None)#
                  +select_region(regions, wcs=None)[source]#

                  Select events in given region.

                  Parameters:
                  @@ -1247,7 +1247,7 @@

                  EventList
                  -select_row_subset(row_specifier)#
                  +select_row_subset(row_specifier)[source]#

                  Select table row subset.

                  Parameters:
                  @@ -1285,7 +1285,7 @@

                  EventList
                  -select_time(time_interval)#
                  +select_time(time_interval)[source]#

                  Select events in time interval.

                  Parameters:
                  @@ -1305,7 +1305,7 @@

                  EventList
                  -stack(other)#
                  +stack(other)[source]#

                  Stack with another EventList in place.

                  Calls vstack.

                  @@ -1320,7 +1320,7 @@

                  EventList
                  -to_table_hdu(format='gadf')#
                  +to_table_hdu(format='gadf')[source]#

                  Convert event list to a BinTableHDU.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.EventListMetaData.html b/docs/dev/api/gammapy.data.EventListMetaData.html index 2f067208f98..6343524800d 100644 --- a/docs/dev/api/gammapy.data.EventListMetaData.html +++ b/docs/dev/api/gammapy.data.EventListMetaData.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  EventListMetaData#

                  -class gammapy.data.EventListMetaData(*, event_class: str | None = None, creation: CreatorMetaData | None = None, optional: dict | None = None)#
                  +class gammapy.data.EventListMetaData(*, event_class: str | None = None, creation: CreatorMetaData | None = None, optional: dict | None = None)[source]#

                  Bases: MetaData

                  Metadata containing information about the EventList.

                  @@ -734,7 +734,7 @@

                  EventListMetaData
                  -classmethod from_header(header, format='gadf')#
                  +classmethod from_header(header, format='gadf')[source]#

                  Import MetaData from a FITS header.

                  Conversion is performed following the definition in the METADATA_FITS_EXPORT_KEYS.

                  diff --git a/docs/dev/api/gammapy.data.FixedPointingInfo.html b/docs/dev/api/gammapy.data.FixedPointingInfo.html index dd44425531e..b7d158abb83 100644 --- a/docs/dev/api/gammapy.data.FixedPointingInfo.html +++ b/docs/dev/api/gammapy.data.FixedPointingInfo.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  FixedPointingInfo#

                  -class gammapy.data.FixedPointingInfo(meta=None, *, mode=None, fixed_icrs=None, fixed_altaz=None, location=None, time_start=None, time_stop=None, time_ref=None, legacy_altaz=None)#
                  +class gammapy.data.FixedPointingInfo(meta=None, *, mode=None, fixed_icrs=None, fixed_altaz=None, location=None, time_start=None, time_stop=None, time_ref=None, legacy_altaz=None)[source]#

                  Bases: object

                  IACT array pointing info.

                  Data format specification: POINTING

                  @@ -607,7 +607,7 @@

                  FixedPointingInfoMethods Documentation

                  -classmethod from_fits_header(header)#
                  +classmethod from_fits_header(header)[source]#

                  Parse FixedPointingInfo from the given FITS header.

                  Parameters:
                  @@ -628,7 +628,7 @@

                  FixedPointingInfo
                  -get_altaz(obstime=None, location=None) SkyCoord#
                  +get_altaz(obstime=None, location=None) SkyCoord[source]#

                  Get the pointing position in alt-az frame for a given time.

                  If the observation was performed tracking a fixed position in ICRS, the icrs pointing is transformed at the given time using the location @@ -656,7 +656,7 @@

                  FixedPointingInfo
                  -get_icrs(obstime=None, location=None) SkyCoord#
                  +get_icrs(obstime=None, location=None) SkyCoord[source]#

                  Get the pointing position in ICRS frame for a given time.

                  If the observation was performed tracking a fixed position in ICRS, the icrs pointing is returned with the given obstime attached.

                  @@ -683,7 +683,7 @@

                  FixedPointingInfo
                  -classmethod read(filename, hdu='EVENTS')#
                  +classmethod read(filename, hdu='EVENTS')[source]#

                  Read pointing information table from file to obtain the metadata.

                  Parameters:
                  @@ -705,7 +705,7 @@

                  FixedPointingInfo
                  -to_fits_header(format='gadf', version='0.3', time_ref=None)#
                  +to_fits_header(format='gadf', version='0.3', time_ref=None)[source]#

                  Convert this FixedPointingInfo object into a fits header for the given format.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.GTI.html b/docs/dev/api/gammapy.data.GTI.html index 57093f536be..49abb54e8c0 100644 --- a/docs/dev/api/gammapy.data.GTI.html +++ b/docs/dev/api/gammapy.data.GTI.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  GTI#

                  -class gammapy.data.GTI(table, reference_time=None)#
                  +class gammapy.data.GTI(table, reference_time=None)[source]#

                  Bases: object

                  Good time intervals (GTI) Table.

                  Data format specification: GTI.

                  @@ -682,13 +682,13 @@

                  GTI#

                  Methods Documentation

                  -copy()#
                  +copy()[source]#

                  Deep copy of the GIT object.

                  -classmethod create(start, stop, reference_time=None)#
                  +classmethod create(start, stop, reference_time=None)[source]#

                  Create a GTI table from start and stop times.

                  Parameters:
                  @@ -707,7 +707,7 @@

                  GTI#

                  -delete_interval(time_interval)#
                  +delete_interval(time_interval)[source]#

                  Select and crop GTIs in time interval.

                  Parameters:
                  @@ -727,7 +727,7 @@

                  GTI#

                  -classmethod from_stack(gtis, **kwargs)#
                  +classmethod from_stack(gtis, **kwargs)[source]#

                  Stack (concatenate) list of GTIs.

                  Calls vstack.

                  @@ -750,7 +750,7 @@

                  GTI#

                  -classmethod from_table_hdu(table_hdu, format='gadf')#
                  +classmethod from_table_hdu(table_hdu, format='gadf')[source]#

                  Read from table HDU.

                  Parameters:
                  @@ -766,7 +766,7 @@

                  GTI#

                  -classmethod from_time_intervals(time_intervals, reference_time=None)#
                  +classmethod from_time_intervals(time_intervals, reference_time=None)[source]#

                  From list of time intervals.

                  Parameters:
                  @@ -789,7 +789,7 @@

                  GTI#

                  -group_table(time_intervals, atol='1e-6 s')#
                  +group_table(time_intervals, atol='1e-6 s')[source]#

                  Compute the table with the info on the group to which belong each time interval.

                  The t_start and t_stop are stored in MJD from a scale in “utc”.

                  @@ -812,7 +812,7 @@

                  GTI#

                  -classmethod read(filename, hdu='GTI', format='gadf', checksum=False)#
                  +classmethod read(filename, hdu='GTI', format='gadf', checksum=False)[source]#

                  Read from FITS file.

                  Parameters:
                  @@ -832,7 +832,7 @@

                  GTI#

                  -select_time(time_interval)#
                  +select_time(time_interval)[source]#

                  Select and crop GTIs in time interval.

                  Parameters:
                  @@ -852,7 +852,7 @@

                  GTI#

                  -stack(other)#
                  +stack(other)[source]#

                  Stack with another GTI in place.

                  This simply changes the time reference of the second GTI table and stack the two tables. No logic is applied to the intervals.

                  @@ -868,7 +868,7 @@

                  GTI#

                  -to_table_hdu(format='gadf')#
                  +to_table_hdu(format='gadf')[source]#

                  Convert this GTI instance to a astropy.io.fits.BinTableHDU.

                  Parameters:
                  @@ -888,7 +888,7 @@

                  GTI#

                  -union(overlap_ok=True, merge_equal=True)#
                  +union(overlap_ok=True, merge_equal=True)[source]#

                  Union of overlapping time intervals.

                  Returns a new GTI object.

                  @@ -906,7 +906,7 @@

                  GTI#

                  -write(filename, **kwargs)#
                  +write(filename, **kwargs)[source]#

                  Write to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.HDUIndexTable.html b/docs/dev/api/gammapy.data.HDUIndexTable.html index adae57bfe5f..4461aa53872 100644 --- a/docs/dev/api/gammapy.data.HDUIndexTable.html +++ b/docs/dev/api/gammapy.data.HDUIndexTable.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  HDUIndexTable#

                  -class gammapy.data.HDUIndexTable(data=None, masked=False, names=None, dtype=None, meta=None, copy=True, rows=None, copy_indices=True, units=None, descriptions=None, **kwargs)#
                  +class gammapy.data.HDUIndexTable(data=None, masked=False, names=None, dtype=None, meta=None, copy=True, rows=None, copy_indices=True, units=None, descriptions=None, **kwargs)[source]#

                  Bases: Table

                  HDU index table.

                  See HDU index table.

                  @@ -1393,7 +1393,7 @@

                  HDUIndexTable
                  -hdu_location(obs_id, hdu_type=None, hdu_class=None, warn_missing=True)#
                  +hdu_location(obs_id, hdu_type=None, hdu_class=None, warn_missing=True)[source]#

                  Create HDULocation for a given selection.

                  Parameters:
                  @@ -1630,7 +1630,7 @@

                  HDUIndexTable
                  -location_info(idx)#
                  +location_info(idx)[source]#

                  Create HDULocation for a given row index.

                  @@ -1860,7 +1860,7 @@

                  HDUIndexTable
                  -classmethod read(filename, **kwargs)#
                  +classmethod read(filename, **kwargs)[source]#

                  Read HDU index table.

                  Parameters:
                  @@ -2259,7 +2259,7 @@

                  HDUIndexTable
                  -row_idx(obs_id, hdu_type=None, hdu_class=None)#
                  +row_idx(obs_id, hdu_type=None, hdu_class=None)[source]#

                  Table row indices for a given selection.

                  Parameters:
                  @@ -2426,7 +2426,7 @@

                  HDUIndexTable
                  -summary()#
                  +summary()[source]#

                  Summary report as a string.

                  diff --git a/docs/dev/api/gammapy.data.Observation.html b/docs/dev/api/gammapy.data.Observation.html index 6a3c07d8d81..332aa1fbc89 100644 --- a/docs/dev/api/gammapy.data.Observation.html +++ b/docs/dev/api/gammapy.data.Observation.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  Observation#

                  -class gammapy.data.Observation(obs_id=None, meta=None, gti=None, aeff=None, edisp=None, psf=None, bkg=None, rad_max=None, events=None, obs_filter=None, pointing=None, location=None)#
                  +class gammapy.data.Observation(obs_id=None, meta=None, gti=None, aeff=None, edisp=None, psf=None, bkg=None, rad_max=None, events=None, obs_filter=None, pointing=None, location=None)[source]#

                  Bases: object

                  In-memory observation.

                  @@ -792,14 +792,14 @@

                  ObservationMethods Documentation

                  -check(checks='all')#
                  +check(checks='all')[source]#

                  Run checks.

                  This is a generator that yields a list of dictionary.

                  -copy(in_memory=False, **kwargs)#
                  +copy(in_memory=False, **kwargs)[source]#

                  Copy observation.

                  Overwriting Observation arguments requires the in_memory argument to be true.

                  @@ -829,7 +829,7 @@

                  Observation
                  -classmethod create(pointing, location=None, obs_id=0, livetime=None, tstart=None, tstop=None, irfs=None, deadtime_fraction=0.0, reference_time=<Time object: scale='utc' format='iso' value=2000-01-01 00:00:00.000>)#
                  +classmethod create(pointing, location=None, obs_id=0, livetime=None, tstart=None, tstop=None, irfs=None, deadtime_fraction=0.0, reference_time=<Time object: scale='utc' format='iso' value=2000-01-01 00:00:00.000>)[source]#

                  Create an observation.

                  User must either provide the livetime, or the start and stop times.

                  @@ -868,19 +868,19 @@

                  Observation
                  -get_pointing_altaz(time)#
                  +get_pointing_altaz(time)[source]#

                  Get the pointing in alt-az for given time.

                  -get_pointing_icrs(time)#
                  +get_pointing_icrs(time)[source]#

                  Get the pointing in ICRS for given time.

                  -peek(figsize=(15, 10))#
                  +peek(figsize=(15, 10))[source]#

                  Quick-look plots in a few panels.

                  Parameters:
                  @@ -894,7 +894,7 @@

                  Observation
                  -classmethod read(event_file, irf_file=None, checksum=False)#
                  +classmethod read(event_file, irf_file=None, checksum=False)[source]#

                  Create an Observation from a Event List and an (optional) IRF file.

                  Parameters:
                  @@ -919,7 +919,7 @@

                  Observation
                  -select_time(time_interval)#
                  +select_time(time_interval)[source]#

                  Select a time interval of the observation.

                  Parameters:
                  @@ -940,7 +940,7 @@

                  Observation
                  -write(path, overwrite=False, format='gadf', include_irfs=True, checksum=False)#
                  +write(path, overwrite=False, format='gadf', include_irfs=True, checksum=False)[source]#

                  Write this observation into Path using the specified format.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.ObservationFilter.html b/docs/dev/api/gammapy.data.ObservationFilter.html index 90951bb1619..9a3531e6614 100644 --- a/docs/dev/api/gammapy.data.ObservationFilter.html +++ b/docs/dev/api/gammapy.data.ObservationFilter.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  ObservationFilter#

                  -class gammapy.data.ObservationFilter(time_filter=None, event_filters=None)#
                  +class gammapy.data.ObservationFilter(time_filter=None, event_filters=None)[source]#

                  Bases: object

                  Holds and applies filters to observation data.

                  @@ -590,13 +590,13 @@

                  ObservationFilterMethods Documentation

                  -copy()#
                  +copy()[source]#

                  Copy the ObservationFilter object.

                  -filter_events(events)#
                  +filter_events(events)[source]#

                  Apply filters to an event list.

                  Parameters:
                  @@ -616,7 +616,7 @@

                  ObservationFilter
                  -filter_gti(gti)#
                  +filter_gti(gti)[source]#

                  Apply filters to a GTI table.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.ObservationMetaData.html b/docs/dev/api/gammapy.data.ObservationMetaData.html index 24024559e84..b54cf1064ea 100644 --- a/docs/dev/api/gammapy.data.ObservationMetaData.html +++ b/docs/dev/api/gammapy.data.ObservationMetaData.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  ObservationMetaData#

                  -class gammapy.data.ObservationMetaData(*, obs_info: ObsInfoMetaData | None = None, pointing: PointingInfoMetaData | None = None, target: TargetMetaData | None = None, location: validate_scalar)] | None = None, deadtime_fraction: Annotated[float, Ge(ge=0), Le(le=1.0)] = 0.0, time_info: TimeInfoMetaData | None = None, creation: CreatorMetaData | None = None, optional: dict | None = None)#
                  +class gammapy.data.ObservationMetaData(*, obs_info: ObsInfoMetaData | None = None, pointing: PointingInfoMetaData | None = None, target: TargetMetaData | None = None, location: validate_scalar)] | None = None, deadtime_fraction: Annotated[float, Ge(ge=0), Le(le=1.0)] = 0.0, time_info: TimeInfoMetaData | None = None, creation: CreatorMetaData | None = None, optional: dict | None = None)[source]#

                  Bases: MetaData

                  Metadata containing information about the Observation.

                  @@ -744,7 +744,7 @@

                  ObservationMetaData
                  -classmethod from_header(header, format='gadf')#
                  +classmethod from_header(header, format='gadf')[source]#

                  Create and fill the observation metadata from the event list metadata.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.ObservationTable.html b/docs/dev/api/gammapy.data.ObservationTable.html index 5e2f6252aae..d3343410c29 100644 --- a/docs/dev/api/gammapy.data.ObservationTable.html +++ b/docs/dev/api/gammapy.data.ObservationTable.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  ObservationTable#

                  -class gammapy.data.ObservationTable(data=None, masked=False, names=None, dtype=None, meta=None, copy=True, rows=None, copy_indices=True, units=None, descriptions=None, **kwargs)#
                  +class gammapy.data.ObservationTable(data=None, masked=False, names=None, dtype=None, meta=None, copy=True, rows=None, copy_indices=True, units=None, descriptions=None, **kwargs)[source]#

                  Bases: Table

                  Observation table.

                  Data format specification: Observation index table.

                  @@ -1825,7 +1825,7 @@

                  ObservationTable
                  -classmethod read(filename, **kwargs)#
                  +classmethod read(filename, **kwargs)[source]#

                  Read an observation table from file.

                  Parameters:
                  @@ -2224,7 +2224,7 @@

                  ObservationTable
                  -select_obs_id(obs_id)#
                  +select_obs_id(obs_id)[source]#

                  Get ObservationTable containing only obs_id.

                  Raises KeyError if observation is not available.

                  @@ -2239,7 +2239,7 @@

                  ObservationTable
                  -select_observations(selections=None)#
                  +select_observations(selections=None)[source]#

                  Select subset of observations from a list of selection criteria.

                  Returns a new observation table representing the subset.

                  There are 3 main kinds of selection criteria, according to the @@ -2324,7 +2324,7 @@

                  ObservationTable
                  -select_range(selection_variable, value_range, inverted=False)#
                  +select_range(selection_variable, value_range, inverted=False)[source]#

                  Make an observation table, applying some selection.

                  Generic function to apply a 1D box selection (min, max) to a table on any variable that is in the observation table and can @@ -2359,7 +2359,7 @@

                  ObservationTable
                  -select_sky_circle(center, radius, inverted=False)#
                  +select_sky_circle(center, radius, inverted=False)[source]#

                  Make an observation table, applying a cone selection.

                  Apply a selection based on the separation between the cone center and the observation pointing stored in the table.

                  @@ -2388,7 +2388,7 @@

                  ObservationTable
                  -select_time_range(time_range, partial_overlap=False, inverted=False)#
                  +select_time_range(time_range, partial_overlap=False, inverted=False)[source]#

                  Make an observation table, applying a time selection.

                  Apply a 1D box selection (min, max) to a table on any time variable that is in the observation table. @@ -2561,7 +2561,7 @@

                  ObservationTable
                  -summary()#
                  +summary()[source]#

                  Summary information string.

                  diff --git a/docs/dev/api/gammapy.data.Observations.html b/docs/dev/api/gammapy.data.Observations.html index 3ef2a7de97e..10b751dc2da 100644 --- a/docs/dev/api/gammapy.data.Observations.html +++ b/docs/dev/api/gammapy.data.Observations.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  Observations#

                  -class gammapy.data.Observations(observations=None)#
                  +class gammapy.data.Observations(observations=None)[source]#

                  Bases: MutableSequence

                  Container class that holds a list of observations.

                  @@ -608,7 +608,7 @@

                  Observations
                  -classmethod from_stack(observations_list)#
                  +classmethod from_stack(observations_list)[source]#

                  Create a new Observations instance by concatenating a list of Observations objects.

                  Parameters:
                  @@ -628,7 +628,7 @@

                  Observations
                  -group_by_label(labels)#
                  +group_by_label(labels)[source]#

                  Split observations in multiple groups of observations.

                  Parameters:
                  @@ -648,13 +648,13 @@

                  Observations
                  -in_memory_generator()#
                  +in_memory_generator()[source]#

                  A generator that iterates over observation. Yield an in memory copy of the observation.

                  -index(value[, start[, stop]]) integer -- return first index of value.#
                  +index(value[, start[, stop]]) integer -- return first index of value.[source]#

                  Raises ValueError if the value is not present.

                  Supporting start and stop arguments is optional, but recommended.

                  @@ -662,7 +662,7 @@

                  Observations
                  -insert(idx, obs)#
                  +insert(idx, obs)[source]#

                  S.insert(index, value) – insert value before index

                  @@ -687,7 +687,7 @@

                  Observations
                  -select_time(time_intervals)#
                  +select_time(time_intervals)[source]#

                  Select a time interval of the observations.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.ObservationsEventsSampler.html b/docs/dev/api/gammapy.data.ObservationsEventsSampler.html index 6d97e782a4b..fec99f71c94 100644 --- a/docs/dev/api/gammapy.data.ObservationsEventsSampler.html +++ b/docs/dev/api/gammapy.data.ObservationsEventsSampler.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  ObservationsEventsSampler#

                  -class gammapy.data.ObservationsEventsSampler(sampler_kwargs=None, dataset_kwargs=None, outdir='./simulated_data/', overwrite=True, n_jobs=None, parallel_backend=None)#
                  +class gammapy.data.ObservationsEventsSampler(sampler_kwargs=None, dataset_kwargs=None, outdir='./simulated_data/', overwrite=True, n_jobs=None, parallel_backend=None)[source]#

                  Bases: ParallelMixin

                  Run event sampling for an emsemble of observations

                  @@ -575,7 +575,7 @@

                  ObservationsEventsSamplerMethods Documentation

                  -run(observations, models=None)#
                  +run(observations, models=None)[source]#

                  Run event sampling for an ensemble of onservations

                  Parameters:
                  @@ -592,7 +592,7 @@

                  ObservationsEventsSampler
                  -simulate_observation(observation, models=None)#
                  +simulate_observation(observation, models=None)[source]#

                  Simulate a single observation.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.PointingInfo.html b/docs/dev/api/gammapy.data.PointingInfo.html index 6410ea826ed..6ba17827935 100644 --- a/docs/dev/api/gammapy.data.PointingInfo.html +++ b/docs/dev/api/gammapy.data.PointingInfo.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  PointingInfo#

                  -class gammapy.data.PointingInfo(table)#
                  +class gammapy.data.PointingInfo(table)[source]#

                  Bases: object

                  IACT array pointing info.

                  Data format specification: POINTING.

                  @@ -655,13 +655,13 @@

                  PointingInfoMethods Documentation

                  -altaz_interpolate(time)#
                  +altaz_interpolate(time)[source]#

                  Interpolate pointing for a given time.

                  -get_altaz(obstime)#
                  +get_altaz(obstime)[source]#

                  Get the pointing position in alt-az frame for a given time.

                  If the observation was performed tracking a fixed position in ICRS, the icrs pointing is transformed at the given time using the location @@ -686,7 +686,7 @@

                  PointingInfo
                  -get_icrs(obstime)#
                  +get_icrs(obstime)[source]#

                  Get the pointing position in ICRS frame for a given time.

                  Parameters:
                  @@ -706,7 +706,7 @@

                  PointingInfo
                  -classmethod read(filename, hdu='POINTING')#
                  +classmethod read(filename, hdu='POINTING')[source]#

                  Read PointingInfo table from file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.PointingMode.html b/docs/dev/api/gammapy.data.PointingMode.html index 240cda4a01d..5834721b851 100644 --- a/docs/dev/api/gammapy.data.PointingMode.html +++ b/docs/dev/api/gammapy.data.PointingMode.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  PointingMode#

                  -class gammapy.data.PointingMode(value)#
                  +class gammapy.data.PointingMode(value)[source]#

                  Bases: Enum

                  Describes the behavior of the pointing during the observation.

                  See OBS_MODE.

                  diff --git a/docs/dev/api/gammapy.data.get_irfs_features.html b/docs/dev/api/gammapy.data.get_irfs_features.html index 90dab292a4e..cbc75c44ca6 100644 --- a/docs/dev/api/gammapy.data.get_irfs_features.html +++ b/docs/dev/api/gammapy.data.get_irfs_features.html @@ -69,7 +69,7 @@ - + @@ -511,7 +511,7 @@

                  get_irfs_features#

                  -gammapy.data.get_irfs_features(observations, energy_true, position=None, fixed_offset=None, names=None, containment_fraction=0.68, apply_standard_scaler=False)#
                  +gammapy.data.get_irfs_features(observations, energy_true, position=None, fixed_offset=None, names=None, containment_fraction=0.68, apply_standard_scaler=False)[source]#

                  Get features from IRFs properties at a given position. Used for observations clustering.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.data.observatory_locations.html b/docs/dev/api/gammapy.data.observatory_locations.html index 6b4c706e666..b868a9de1c4 100644 --- a/docs/dev/api/gammapy.data.observatory_locations.html +++ b/docs/dev/api/gammapy.data.observatory_locations.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.datasets.DATASET_REGISTRY.html b/docs/dev/api/gammapy.datasets.DATASET_REGISTRY.html index c6fd9da1e36..377ed2def35 100644 --- a/docs/dev/api/gammapy.datasets.DATASET_REGISTRY.html +++ b/docs/dev/api/gammapy.datasets.DATASET_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.datasets.Dataset.html b/docs/dev/api/gammapy.datasets.Dataset.html index a4b7f63fb2f..5763bc536d9 100644 --- a/docs/dev/api/gammapy.datasets.Dataset.html +++ b/docs/dev/api/gammapy.datasets.Dataset.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  Dataset#

                  -class gammapy.datasets.Dataset#
                  +class gammapy.datasets.Dataset[source]#

                  Bases: ABC

                  Dataset abstract base class. For now, see existing examples of type of datasets:

                  @@ -579,7 +579,7 @@

                  Dataset#<

                  Methods Documentation

                  -copy(name=None)#
                  +copy(name=None)[source]#

                  A deep copy.

                  Parameters:
                  @@ -599,19 +599,19 @@

                  Dataset#<
                  -abstract stat_array()#
                  +abstract stat_array()[source]#

                  Statistic array, one value per data point.

                  -stat_sum()#
                  +stat_sum()[source]#

                  Total statistic given the current model parameters and priors.

                  -to_dict()#
                  +to_dict()[source]#

                  Convert to dict for YAML serialization.

                  diff --git a/docs/dev/api/gammapy.datasets.Datasets.html b/docs/dev/api/gammapy.datasets.Datasets.html index dc564fb14e3..eb1412828eb 100644 --- a/docs/dev/api/gammapy.datasets.Datasets.html +++ b/docs/dev/api/gammapy.datasets.Datasets.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  Datasets#

                  -class gammapy.datasets.Datasets(datasets=None)#
                  +class gammapy.datasets.Datasets(datasets=None)[source]#

                  Bases: MutableSequence

                  Container class that holds a list of datasets.

                  @@ -727,7 +727,7 @@

                  Datasets
                  -copy()#
                  +copy()[source]#

                  A deep copy.

                  @@ -744,7 +744,7 @@

                  Datasets
                  -index(value[, start[, stop]]) integer -- return first index of value.#
                  +index(value[, start[, stop]]) integer -- return first index of value.[source]#

                  Raises ValueError if the value is not present.

                  Supporting start and stop arguments is optional, but recommended.

                  @@ -752,7 +752,7 @@

                  Datasets
                  -info_table(cumulative=False)#
                  +info_table(cumulative=False)[source]#

                  Get info table for datasets.

                  Parameters:
                  @@ -773,7 +773,7 @@

                  Datasets
                  -insert(idx, dataset)#
                  +insert(idx, dataset)[source]#

                  S.insert(index, value) – insert value before index

                  @@ -785,7 +785,7 @@

                  Datasets
                  -classmethod read(filename, filename_models=None, lazy=True, cache=True, checksum=True)#
                  +classmethod read(filename, filename_models=None, lazy=True, cache=True, checksum=True)[source]#

                  De-serialize datasets from YAML and FITS files.

                  Parameters:
                  @@ -826,7 +826,7 @@

                  Datasets
                  -select_time(time_min, time_max, atol='1e-6 s')#
                  +select_time(time_min, time_max, atol='1e-6 s')[source]#

                  Select datasets in a given time interval.

                  Parameters:
                  @@ -848,7 +848,7 @@

                  Datasets
                  -slice_by_energy(energy_min, energy_max)#
                  +slice_by_energy(energy_min, energy_max)[source]#

                  Select and slice datasets in energy range.

                  The method keeps the current dataset names. Datasets that do not contribute to the selected energy range are dismissed.

                  @@ -870,7 +870,7 @@

                  Datasets
                  -stack_reduce(name=None, nan_to_num=True)#
                  +stack_reduce(name=None, nan_to_num=True)[source]#

                  Reduce the Datasets to a unique Dataset by stacking them together.

                  This works only if all datasets are of the same type and with aligned geometries, and if a proper in-place stack method exists for the Dataset type.

                  @@ -895,13 +895,13 @@

                  Datasets
                  -stat_sum()#
                  +stat_sum()[source]#

                  Compute joint statistic function value.

                  -to_spectrum_datasets(region)#
                  +to_spectrum_datasets(region)[source]#

                  Extract spectrum datasets for the given region.

                  To get more detailed information, see the corresponding function associated to each dataset type: to_spectrum_dataset or to_spectrum_dataset.

                  @@ -923,7 +923,7 @@

                  Datasets
                  -write(filename, filename_models=None, overwrite=False, write_covariance=True, checksum=False)#
                  +write(filename, filename_models=None, overwrite=False, write_covariance=True, checksum=False)[source]#

                  Serialize datasets to YAML and FITS files.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.FluxPointsDataset.html b/docs/dev/api/gammapy.datasets.FluxPointsDataset.html index b4345bd0f43..fd05f3baff6 100644 --- a/docs/dev/api/gammapy.datasets.FluxPointsDataset.html +++ b/docs/dev/api/gammapy.datasets.FluxPointsDataset.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  FluxPointsDataset#

                  -class gammapy.datasets.FluxPointsDataset(models=None, data=None, mask_fit=None, mask_safe=None, name=None, meta_table=None, stat_type='chi2', stat_kwargs=None)#
                  +class gammapy.datasets.FluxPointsDataset(models=None, data=None, mask_fit=None, mask_safe=None, name=None, meta_table=None, stat_type='chi2', stat_kwargs=None)[source]#

                  Bases: Dataset

                  Bundle a set of flux points with a parametric model, to compute fit statistic function using different statistics (see stat_type).

                  For more information see Datasets (DL4).

                  @@ -748,19 +748,19 @@

                  FluxPointsDataset
                  -data_shape()#
                  +data_shape()[source]#

                  Shape of the flux points data (tuple).

                  -flux_pred()#
                  +flux_pred()[source]#

                  Compute predicted flux.

                  -classmethod from_dict(data, **kwargs)#
                  +classmethod from_dict(data, **kwargs)[source]#

                  Create flux point dataset from dict.

                  Parameters:
                  @@ -778,7 +778,7 @@

                  FluxPointsDataset
                  -plot_fit(ax_spectrum=None, ax_residuals=None, kwargs_spectrum=None, kwargs_residuals=None)#
                  +plot_fit(ax_spectrum=None, ax_residuals=None, kwargs_spectrum=None, kwargs_residuals=None)[source]#

                  Plot flux points, best fit model and residuals in two panels.

                  Calls plot_spectrum and plot_residuals.

                  @@ -822,7 +822,7 @@

                  FluxPointsDataset
                  -plot_residuals(ax=None, method='diff', **kwargs)#
                  +plot_residuals(ax=None, method='diff', **kwargs)[source]#

                  Plot flux point residuals.

                  Parameters:
                  @@ -846,7 +846,7 @@

                  FluxPointsDataset
                  -plot_spectrum(ax=None, kwargs_fp=None, kwargs_model=None, axis_name='energy')#
                  +plot_spectrum(ax=None, kwargs_fp=None, kwargs_model=None, axis_name='energy')[source]#

                  Plot flux points and model.

                  Parameters:
                  @@ -891,7 +891,7 @@

                  FluxPointsDataset
                  -classmethod read(filename, name=None)#
                  +classmethod read(filename, name=None)[source]#

                  Read pre-computed flux points and create a dataset.

                  Parameters:
                  @@ -911,7 +911,7 @@

                  FluxPointsDataset
                  -residuals(method='diff')#
                  +residuals(method='diff')[source]#

                  Compute flux point residuals.

                  Parameters:
                  @@ -935,7 +935,7 @@

                  FluxPointsDataset
                  -stat_array()#
                  +stat_array()[source]#

                  Fit statistic array.

                  @@ -953,7 +953,7 @@

                  FluxPointsDataset
                  -write(filename, overwrite=False, checksum=False, **kwargs)#
                  +write(filename, overwrite=False, checksum=False, **kwargs)[source]#

                  Write flux point dataset to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.MapDataset.html b/docs/dev/api/gammapy.datasets.MapDataset.html index 13f66a32f7e..c815aaf6d1b 100644 --- a/docs/dev/api/gammapy.datasets.MapDataset.html +++ b/docs/dev/api/gammapy.datasets.MapDataset.html @@ -70,7 +70,7 @@ - + @@ -516,7 +516,7 @@

                  MapDataset#

                  -class gammapy.datasets.MapDataset(models=None, counts=None, exposure=None, background=None, psf=None, edisp=None, mask_safe=None, mask_fit=None, gti=None, meta_table=None, name=None, meta=None)#
                  +class gammapy.datasets.MapDataset(models=None, counts=None, exposure=None, background=None, psf=None, edisp=None, mask_safe=None, mask_fit=None, gti=None, meta_table=None, name=None, meta=None)[source]#

                  Bases: Dataset

                  Main map dataset for likelihood fitting.

                  It bundles together binned counts, background, IRFs in the form of Map. @@ -1049,7 +1049,7 @@

                  MapDataset
                  -classmethod create(geom, energy_axis_true=None, migra_axis=None, rad_axis=None, binsz_irf=<Quantity 0.2 deg>, reference_time='2000-01-01', name=None, meta_table=None, reco_psf=False, **kwargs)#
                  +classmethod create(geom, energy_axis_true=None, migra_axis=None, rad_axis=None, binsz_irf=<Quantity 0.2 deg>, reference_time='2000-01-01', name=None, meta_table=None, reco_psf=False, **kwargs)[source]#

                  Create a MapDataset object with zero filled maps.

                  Parameters:
                  @@ -1106,7 +1106,7 @@

                  MapDataset
                  -cutout(position, width, mode='trim', name=None)#
                  +cutout(position, width, mode='trim', name=None)[source]#

                  Cutout map dataset.

                  Parameters:
                  @@ -1133,7 +1133,7 @@

                  MapDataset
                  -downsample(factor, axis_name=None, name=None)#
                  +downsample(factor, axis_name=None, name=None)[source]#

                  Downsample map dataset.

                  The PSFMap and EDispKernelMap are not downsampled, except if a corresponding axis is given.

                  @@ -1159,7 +1159,7 @@

                  MapDataset
                  -fake(random_state='random-seed')#
                  +fake(random_state='random-seed')[source]#

                  Simulate fake counts for the current model and reduced IRFs.

                  This method overwrites the counts defined on the dataset object.

                  @@ -1175,13 +1175,13 @@

                  MapDataset
                  -classmethod from_dict(data, lazy=False, cache=True)#
                  +classmethod from_dict(data, lazy=False, cache=True)[source]#

                  Create from dicts and models list generated from YAML serialization.

                  -classmethod from_geoms(geom, geom_exposure=None, geom_psf=None, geom_edisp=None, reference_time='2000-01-01', name=None, **kwargs)#
                  +classmethod from_geoms(geom, geom_exposure=None, geom_psf=None, geom_edisp=None, reference_time='2000-01-01', name=None, **kwargs)[source]#

                  Create a MapDataset object with zero filled maps according to the specified geometries.

                  Parameters:
                  @@ -1214,7 +1214,7 @@

                  MapDataset
                  -classmethod from_hdulist(hdulist, name=None, lazy=False, format='gadf')#
                  +classmethod from_hdulist(hdulist, name=None, lazy=False, format='gadf')[source]#

                  Create map dataset from list of HDUs.

                  Parameters:
                  @@ -1240,7 +1240,7 @@

                  MapDataset
                  -info_dict(in_safe_data_range=True)#
                  +info_dict(in_safe_data_range=True)[source]#

                  Info dict with summary statistics, summed over energy.

                  Parameters:
                  @@ -1260,7 +1260,7 @@

                  MapDataset
                  -npred()#
                  +npred()[source]#

                  Total predicted source and background counts.

                  Returns:
                  @@ -1274,7 +1274,7 @@

                  MapDataset
                  -npred_background()#
                  +npred_background()[source]#

                  Predicted background counts.

                  The predicted background counts depend on the parameters of the FoVBackgroundModel defined in the dataset.

                  @@ -1290,7 +1290,7 @@

                  MapDataset
                  -npred_signal(model_names=None, stack=True)#
                  +npred_signal(model_names=None, stack=True)[source]#

                  Model predicted signal counts.

                  If a list of model name is passed, predicted counts from these components are returned. If stack is set to True, a map of the sum of all the predicted counts is returned. @@ -1316,7 +1316,7 @@

                  MapDataset
                  -pad(pad_width, mode='constant', name=None)#
                  +pad(pad_width, mode='constant', name=None)[source]#

                  Pad the spatial dimensions of the dataset.

                  The padding only applies to counts, masks, background and exposure.

                  Counts, background and masks are padded with zeros, exposure is padded with edge value.

                  @@ -1342,7 +1342,7 @@

                  MapDataset
                  -peek(figsize=(12, 8))#
                  +peek(figsize=(12, 8))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -1356,7 +1356,7 @@

                  MapDataset
                  -plot_residuals(ax_spatial=None, ax_spectral=None, kwargs_spatial=None, kwargs_spectral=None)#
                  +plot_residuals(ax_spatial=None, ax_spectral=None, kwargs_spatial=None, kwargs_spectral=None)[source]#

                  Plot spatial and spectral residuals in two panels.

                  Calls plot_residuals_spatial and plot_residuals_spectral. The spectral residuals are extracted from the provided region, and the @@ -1400,7 +1400,7 @@

                  MapDataset
                  -plot_residuals_spatial(ax=None, method='diff', smooth_kernel='gauss', smooth_radius='0.1 deg', **kwargs)#
                  +plot_residuals_spatial(ax=None, method='diff', smooth_kernel='gauss', smooth_radius='0.1 deg', **kwargs)[source]#

                  Plot spatial residuals.

                  The normalization used for the residuals computation can be controlled using the method parameter.

                  @@ -1438,7 +1438,7 @@

                  MapDataset
                  -plot_residuals_spectral(ax=None, method='diff', region=None, **kwargs)#
                  +plot_residuals_spectral(ax=None, method='diff', region=None, **kwargs)[source]#

                  Plot spectral residuals.

                  The residuals are extracted from the provided region, and the normalization used for its computation can be controlled using the method parameter.

                  @@ -1474,7 +1474,7 @@

                  MapDataset
                  -classmethod read(filename, name=None, lazy=False, cache=True, format='gadf', checksum=False)#
                  +classmethod read(filename, name=None, lazy=False, cache=True, format='gadf', checksum=False)[source]#

                  Read a dataset from file.

                  Parameters:
                  @@ -1504,7 +1504,7 @@

                  MapDataset
                  -resample_energy_axis(energy_axis, name=None)#
                  +resample_energy_axis(energy_axis, name=None)[source]#

                  Resample MapDataset over new reco energy axis.

                  Counts are summed taking into account safe mask.

                  @@ -1527,13 +1527,13 @@

                  MapDataset
                  -reset_data_cache()#
                  +reset_data_cache()[source]#

                  Reset data cache to free memory space.

                  -residuals(method='diff', **kwargs)#
                  +residuals(method='diff', **kwargs)[source]#

                  Compute residuals map.

                  Parameters:
                  @@ -1561,7 +1561,7 @@

                  MapDataset
                  -slice_by_energy(energy_min=None, energy_max=None, name=None)#
                  +slice_by_energy(energy_min=None, energy_max=None, name=None)[source]#

                  Select and slice datasets in energy range.

                  Parameters:
                  @@ -1591,7 +1591,7 @@

                  MapDataset
                  -slice_by_idx(slices, name=None)#
                  +slice_by_idx(slices, name=None)[source]#

                  Slice sub dataset.

                  The slicing only applies to the maps that define the corresponding axes.

                  @@ -1635,7 +1635,7 @@

                  MapDataset
                  -stack(other, nan_to_num=True)#
                  +stack(other, nan_to_num=True)[source]#

                  Stack another dataset in place. The original dataset is modified.

                  Safe mask is applied to the other dataset to compute the stacked counts data. Counts outside the safe mask are lost.

                  @@ -1672,13 +1672,13 @@

                  MapDataset
                  -stat_array()#
                  +stat_array()[source]#

                  Statistic function value per bin given the current model parameters.

                  -stat_sum()#
                  +stat_sum()[source]#

                  Total statistic function value given the current model parameters and priors.

                  @@ -1690,7 +1690,7 @@

                  MapDataset
                  -to_hdulist()#
                  +to_hdulist()[source]#

                  Convert map dataset to list of HDUs.

                  Returns:
                  @@ -1704,7 +1704,7 @@

                  MapDataset
                  -to_image(name=None)#
                  +to_image(name=None)[source]#

                  Create images by summing over the reconstructed energy axis.

                  Parameters:
                  @@ -1724,7 +1724,7 @@

                  MapDataset
                  -to_masked(name=None, nan_to_num=True)#
                  +to_masked(name=None, nan_to_num=True)[source]#

                  Return masked dataset.

                  Parameters:
                  @@ -1746,7 +1746,7 @@

                  MapDataset
                  -to_region_map_dataset(region, name=None)#
                  +to_region_map_dataset(region, name=None)[source]#

                  Integrate the map dataset in a given region.

                  Counts and background of the dataset are integrated in the given region, taking the safe mask into account. The exposure is averaged in the @@ -1772,7 +1772,7 @@

                  MapDataset
                  -to_spectrum_dataset(on_region, containment_correction=False, name=None)#
                  +to_spectrum_dataset(on_region, containment_correction=False, name=None)[source]#

                  Return a ~gammapy.datasets.SpectrumDataset from on_region.

                  Counts and background are summed in the on_region. Exposure is taken from the average exposure.

                  @@ -1802,7 +1802,7 @@

                  MapDataset
                  -write(filename, overwrite=False, checksum=False)#
                  +write(filename, overwrite=False, checksum=False)[source]#

                  Write Dataset to file.

                  A MapDataset is serialised using the GADF format with a WCS geometry. A SpectrumDataset uses the same format, with a RegionGeom.

                  diff --git a/docs/dev/api/gammapy.datasets.MapDatasetEventSampler.html b/docs/dev/api/gammapy.datasets.MapDatasetEventSampler.html index 4569667baf4..90d6f0da373 100644 --- a/docs/dev/api/gammapy.datasets.MapDatasetEventSampler.html +++ b/docs/dev/api/gammapy.datasets.MapDatasetEventSampler.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  MapDatasetEventSampler#

                  -class gammapy.datasets.MapDatasetEventSampler(random_state='random-seed', oversample_energy_factor=10, t_delta=<Quantity 0.5 s>, keep_mc_id=True, n_event_bunch=10000)#
                  +class gammapy.datasets.MapDatasetEventSampler(random_state='random-seed', oversample_energy_factor=10, t_delta=<Quantity 0.5 s>, keep_mc_id=True, n_event_bunch=10000)[source]#

                  Bases: object

                  Sample events from a map dataset.

                  @@ -567,7 +567,7 @@

                  MapDatasetEventSamplerMethods Documentation

                  -static event_det_coords(observation, events)#
                  +static event_det_coords(observation, events)[source]#

                  Add columns of detector coordinates (DETX-DETY) to the event list.

                  Parameters:
                  @@ -589,7 +589,7 @@

                  MapDatasetEventSampler
                  -static event_list_meta(dataset, observation, keep_mc_id=True)#
                  +static event_list_meta(dataset, observation, keep_mc_id=True)[source]#

                  Event list meta info. Please, note that this function will be updated in the future.

                  @@ -615,7 +615,7 @@

                  MapDatasetEventSampler
                  -run(dataset, observation=None)#
                  +run(dataset, observation=None)[source]#

                  Run the event sampler, applying IRF corrections.

                  Parameters:
                  @@ -637,7 +637,7 @@

                  MapDatasetEventSampler
                  -sample_background(dataset)#
                  +sample_background(dataset)[source]#

                  Sample background.

                  Parameters:
                  @@ -657,7 +657,7 @@

                  MapDatasetEventSampler
                  -sample_edisp(edisp_map, events)#
                  +sample_edisp(edisp_map, events)[source]#

                  Sample energy dispersion map.

                  Parameters:
                  @@ -679,7 +679,7 @@

                  MapDatasetEventSampler
                  -sample_psf(psf_map, events)#
                  +sample_psf(psf_map, events)[source]#

                  Sample PSF map.

                  Parameters:
                  @@ -701,7 +701,7 @@

                  MapDatasetEventSampler
                  -sample_sources(dataset, psf_update=False)#
                  +sample_sources(dataset, psf_update=False)[source]#

                  Sample source model components.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.MapDatasetMetaData.html b/docs/dev/api/gammapy.datasets.MapDatasetMetaData.html index a796312524c..c8dd2faf66a 100644 --- a/docs/dev/api/gammapy.datasets.MapDatasetMetaData.html +++ b/docs/dev/api/gammapy.datasets.MapDatasetMetaData.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  MapDatasetMetaData#

                  -class gammapy.datasets.MapDatasetMetaData(*, creation: ~gammapy.utils.metadata.CreatorMetaData | None = CreatorMetaData(creator='Gammapy 2.0.dev190+ged6e64092', date=<Time object: scale='utc' format='datetime' value=2025-01-07 20:32:01.657569>, origin=None), obs_info: ~gammapy.utils.metadata.ObsInfoMetaData | list[~gammapy.utils.metadata.ObsInfoMetaData] | None = None, pointing: ~gammapy.utils.metadata.PointingInfoMetaData | list[~gammapy.utils.metadata.PointingInfoMetaData] | None = None, event_type: str | list[str] | None = None, optional: dict | None = None)#
                  +class gammapy.datasets.MapDatasetMetaData(*, creation: ~gammapy.utils.metadata.CreatorMetaData | None = CreatorMetaData(creator='Gammapy 2.0.dev194+gbc69342c8', date=<Time object: scale='utc' format='datetime' value=2025-01-10 17:08:22.603509>, origin=None), obs_info: ~gammapy.utils.metadata.ObsInfoMetaData | list[~gammapy.utils.metadata.ObsInfoMetaData] | None = None, pointing: ~gammapy.utils.metadata.PointingInfoMetaData | list[~gammapy.utils.metadata.PointingInfoMetaData] | None = None, event_type: str | list[str] | None = None, optional: dict | None = None)[source]#

                  Bases: MetaData

                  Metadata containing information about the Dataset.

                  @@ -1007,7 +1007,7 @@

                  MapDatasetMetaData
                  -stack(other)#
                  +stack(other)[source]#

                  diff --git a/docs/dev/api/gammapy.datasets.MapDatasetOnOff.html b/docs/dev/api/gammapy.datasets.MapDatasetOnOff.html index ae5963b2061..38142b91ca2 100644 --- a/docs/dev/api/gammapy.datasets.MapDatasetOnOff.html +++ b/docs/dev/api/gammapy.datasets.MapDatasetOnOff.html @@ -70,7 +70,7 @@ - + @@ -516,7 +516,7 @@

                  MapDatasetOnOff#

                  -class gammapy.datasets.MapDatasetOnOff(models=None, counts=None, counts_off=None, acceptance=None, acceptance_off=None, exposure=None, mask_fit=None, psf=None, edisp=None, name=None, mask_safe=None, gti=None, meta_table=None, meta=None)#
                  +class gammapy.datasets.MapDatasetOnOff(models=None, counts=None, counts_off=None, acceptance=None, acceptance_off=None, exposure=None, mask_fit=None, psf=None, edisp=None, name=None, mask_safe=None, gti=None, meta_table=None, meta=None)[source]#

                  Bases: MapDataset

                  Map dataset for on-off likelihood fitting.

                  It bundles together the binned on and off counts, the binned IRFs as well as the on and off acceptances.

                  @@ -1102,7 +1102,7 @@

                  MapDatasetOnOff
                  -cutout(position, width, mode='trim', name=None)#
                  +cutout(position, width, mode='trim', name=None)[source]#

                  Cutout map dataset.

                  Parameters:
                  @@ -1129,7 +1129,7 @@

                  MapDatasetOnOff
                  -downsample(factor, axis_name=None, name=None)#
                  +downsample(factor, axis_name=None, name=None)[source]#

                  Downsample map dataset.

                  The PSFMap and EDispKernelMap are not downsampled, except if a corresponding axis is given.

                  @@ -1155,7 +1155,7 @@

                  MapDatasetOnOff
                  -fake(npred_background, random_state='random-seed')#
                  +fake(npred_background, random_state='random-seed')[source]#

                  Simulate fake counts (on and off) for the current model and reduced IRFs.

                  This method overwrites the counts defined on the dataset object.

                  @@ -1179,7 +1179,7 @@

                  MapDatasetOnOff
                  -classmethod from_geoms(geom, geom_exposure=None, geom_psf=None, geom_edisp=None, reference_time='2000-01-01', name=None, **kwargs)#
                  +classmethod from_geoms(geom, geom_exposure=None, geom_psf=None, geom_edisp=None, reference_time='2000-01-01', name=None, **kwargs)[source]#

                  Create an empty MapDatasetOnOff object according to the specified geometries.

                  Parameters:
                  @@ -1212,7 +1212,7 @@

                  MapDatasetOnOff
                  -classmethod from_hdulist(hdulist, name=None, format='gadf')#
                  +classmethod from_hdulist(hdulist, name=None, format='gadf')[source]#

                  Create map dataset from list of HDUs.

                  Parameters:
                  @@ -1236,7 +1236,7 @@

                  MapDatasetOnOff
                  -classmethod from_map_dataset(dataset, acceptance, acceptance_off, counts_off=None, name=None)#
                  +classmethod from_map_dataset(dataset, acceptance, acceptance_off, counts_off=None, name=None)[source]#

                  Create on off dataset from a map dataset.

                  Parameters:
                  @@ -1266,7 +1266,7 @@

                  MapDatasetOnOff
                  -info_dict(in_safe_data_range=True)#
                  +info_dict(in_safe_data_range=True)[source]#

                  Basic info dict with summary statistics.

                  If a region is passed, then a spectrum dataset is extracted, and the corresponding info returned.

                  @@ -1302,7 +1302,7 @@

                  MapDatasetOnOff
                  -npred_background()#
                  +npred_background()[source]#

                  Predicted background counts estimated from the marginalized likelihood estimate.

                  See WStat : Poisson data with background measurement.

                  @@ -1317,7 +1317,7 @@

                  MapDatasetOnOff
                  -npred_off()#
                  +npred_off()[source]#

                  Predicted counts in the off region; mu_bkg/alpha.

                  See WStat : Poisson data with background measurement.

                  @@ -1358,7 +1358,7 @@

                  MapDatasetOnOff
                  -pad()#
                  +pad()[source]#

                  Not implemented for MapDatasetOnOff.

                  @@ -1526,7 +1526,7 @@

                  MapDatasetOnOff
                  -resample_energy_axis(energy_axis, name=None)#
                  +resample_energy_axis(energy_axis, name=None)[source]#

                  Resample MapDatasetOnOff over reconstructed energy edges.

                  Counts are summed taking into account safe mask.

                  @@ -1613,7 +1613,7 @@

                  MapDatasetOnOff
                  -slice_by_idx(slices, name=None)#
                  +slice_by_idx(slices, name=None)[source]#

                  Slice sub dataset.

                  The slicing only applies to the maps that define the corresponding axes.

                  @@ -1639,7 +1639,7 @@

                  MapDatasetOnOff
                  -stack(other, nan_to_num=True)#
                  +stack(other, nan_to_num=True)[source]#

                  Stack another dataset in place.

                  Safe mask is applied to the other dataset to compute the stacked counts data, counts outside the safe mask are lost (as for stack).

                  @@ -1667,13 +1667,13 @@

                  MapDatasetOnOff
                  -stat_array()#
                  +stat_array()[source]#

                  Statistic function value per bin given the current model parameters.

                  -stat_sum()#
                  +stat_sum()[source]#

                  Total statistic function value given the current model parameters.

                  If the off counts are passed as None and the elements of the safe mask are False, zero will be returned. Otherwise, the stat sum will be calculated and returned.

                  @@ -1687,7 +1687,7 @@

                  MapDatasetOnOff
                  -to_hdulist()#
                  +to_hdulist()[source]#

                  Convert map dataset to list of HDUs.

                  Returns:
                  @@ -1721,7 +1721,7 @@

                  MapDatasetOnOff
                  -to_map_dataset(name=None)#
                  +to_map_dataset(name=None)[source]#

                  Convert a MapDatasetOnOff to a MapDataset.

                  The background model template is taken as alpha * counts_off.

                  @@ -1790,7 +1790,7 @@

                  MapDatasetOnOff
                  -to_spectrum_dataset(on_region, containment_correction=False, name=None)#
                  +to_spectrum_dataset(on_region, containment_correction=False, name=None)[source]#

                  Return a ~gammapy.datasets.SpectrumDatasetOnOff from on_region.

                  Counts and OFF counts are summed in the on_region.

                  Acceptance is the average of all acceptances while acceptance OFF diff --git a/docs/dev/api/gammapy.datasets.OGIPDatasetReader.html b/docs/dev/api/gammapy.datasets.OGIPDatasetReader.html index afe3d2afc60..7929b680e91 100644 --- a/docs/dev/api/gammapy.datasets.OGIPDatasetReader.html +++ b/docs/dev/api/gammapy.datasets.OGIPDatasetReader.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  OGIPDatasetReader#

                  -class gammapy.datasets.OGIPDatasetReader(filename, checksum=False, name=None)#
                  +class gammapy.datasets.OGIPDatasetReader(filename, checksum=False, name=None)[source]#

                  Bases: DatasetReader

                  Read SpectrumDatasetOnOff from OGIP files.

                  BKG file, ARF, and RMF must be set in the PHA header and be present in @@ -583,7 +583,7 @@

                  OGIPDatasetReaderMethods Documentation

                  -get_filenames(pha_meta)#
                  +get_filenames(pha_meta)[source]#

                  Get filenames.

                  Parameters:
                  @@ -604,7 +604,7 @@

                  OGIPDatasetReader
                  -get_valid_path(filename)#
                  +get_valid_path(filename)[source]#

                  Get absolute or relative path.

                  The relative path is with respect to the name of the reference file.

                  @@ -625,7 +625,7 @@

                  OGIPDatasetReader
                  -read()#
                  +read()[source]#

                  Read dataset.

                  Returns:
                  @@ -639,7 +639,7 @@

                  OGIPDatasetReader
                  -static read_arf(filename, livetime, checksum=False)#
                  +static read_arf(filename, livetime, checksum=False)[source]#

                  Read ARF file.

                  Parameters:
                  @@ -663,7 +663,7 @@

                  OGIPDatasetReader
                  -static read_bkg(filename, checksum=False)#
                  +static read_bkg(filename, checksum=False)[source]#

                  Read PHA background file.

                  Parameters:
                  @@ -685,7 +685,7 @@

                  OGIPDatasetReader
                  -static read_pha(filename, checksum=False)#
                  +static read_pha(filename, checksum=False)[source]#

                  Read PHA file.

                  Parameters:
                  @@ -707,7 +707,7 @@

                  OGIPDatasetReader
                  -static read_rmf(filename, exposure, checksum=False)#
                  +static read_rmf(filename, exposure, checksum=False)[source]#

                  Read RMF file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.OGIPDatasetWriter.html b/docs/dev/api/gammapy.datasets.OGIPDatasetWriter.html index be82f90a14d..8da733cb6fd 100644 --- a/docs/dev/api/gammapy.datasets.OGIPDatasetWriter.html +++ b/docs/dev/api/gammapy.datasets.OGIPDatasetWriter.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  OGIPDatasetWriter#

                  -class gammapy.datasets.OGIPDatasetWriter(filename, format='ogip', overwrite=False, checksum=False)#
                  +class gammapy.datasets.OGIPDatasetWriter(filename, format='ogip', overwrite=False, checksum=False)[source]#

                  Bases: DatasetWriter

                  Write OGIP files.

                  If you want to use the written files with Sherpa, you have to use the @@ -591,7 +591,7 @@

                  OGIPDatasetWriterMethods Documentation

                  -static get_filenames(filename)#
                  +static get_filenames(filename)[source]#

                  Get filenames.

                  Parameters:
                  @@ -611,13 +611,13 @@

                  OGIPDatasetWriter
                  -get_ogip_meta(dataset, is_bkg=False)#
                  +get_ogip_meta(dataset, is_bkg=False)[source]#

                  Meta info for the OGIP data format.

                  -to_counts_hdulist(dataset, is_bkg=False)#
                  +to_counts_hdulist(dataset, is_bkg=False)[source]#

                  Convert counts region map to hdulist.

                  Parameters:
                  @@ -633,7 +633,7 @@

                  OGIPDatasetWriter
                  -write(dataset)#
                  +write(dataset)[source]#

                  Write dataset to file.

                  Parameters:
                  @@ -647,7 +647,7 @@

                  OGIPDatasetWriter
                  -write_arf(dataset, filename)#
                  +write_arf(dataset, filename)[source]#

                  Write effective area.

                  Parameters:
                  @@ -663,7 +663,7 @@

                  OGIPDatasetWriter
                  -write_bkg(dataset, filename)#
                  +write_bkg(dataset, filename)[source]#

                  Write off counts file.

                  Parameters:
                  @@ -679,7 +679,7 @@

                  OGIPDatasetWriter
                  -write_pha(dataset, filename)#
                  +write_pha(dataset, filename)[source]#

                  Write counts file.

                  Parameters:
                  @@ -695,7 +695,7 @@

                  OGIPDatasetWriter
                  -write_rmf(dataset, filename)#
                  +write_rmf(dataset, filename)[source]#

                  Write energy dispersion.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.ObservationEventSampler.html b/docs/dev/api/gammapy.datasets.ObservationEventSampler.html index 3eed3629d6a..d0fad140e43 100644 --- a/docs/dev/api/gammapy.datasets.ObservationEventSampler.html +++ b/docs/dev/api/gammapy.datasets.ObservationEventSampler.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  ObservationEventSampler#

                  -class gammapy.datasets.ObservationEventSampler(random_state='random-seed', oversample_energy_factor=10, t_delta=<Quantity 0.5 s>, keep_mc_id=True, n_event_bunch=10000, dataset_kwargs=None)#
                  +class gammapy.datasets.ObservationEventSampler(random_state='random-seed', oversample_energy_factor=10, t_delta=<Quantity 0.5 s>, keep_mc_id=True, n_event_bunch=10000, dataset_kwargs=None)[source]#

                  Bases: MapDatasetEventSampler

                  Sample event lists for a given observation and signal models.

                  Signal events are sampled from the predicted counts distribution given by the product of the sky models and the @@ -621,7 +621,7 @@

                  ObservationEventSampler
                  -run(observation, models=None, dataset_name=None)#
                  +run(observation, models=None, dataset_name=None)[source]#

                  Sample events for given observation and signal models.

                  The signal distribution is sampled from the given models in true coordinates and energy. The true quantities are diff --git a/docs/dev/api/gammapy.datasets.SpectrumDataset.html b/docs/dev/api/gammapy.datasets.SpectrumDataset.html index c1ed4ff2513..71807a9f3ee 100644 --- a/docs/dev/api/gammapy.datasets.SpectrumDataset.html +++ b/docs/dev/api/gammapy.datasets.SpectrumDataset.html @@ -70,7 +70,7 @@ - + @@ -516,7 +516,7 @@

                  SpectrumDataset#

                  -class gammapy.datasets.SpectrumDataset(models=None, counts=None, exposure=None, background=None, psf=None, edisp=None, mask_safe=None, mask_fit=None, gti=None, meta_table=None, name=None, meta=None)#
                  +class gammapy.datasets.SpectrumDataset(models=None, counts=None, exposure=None, background=None, psf=None, edisp=None, mask_safe=None, mask_fit=None, gti=None, meta_table=None, name=None, meta=None)[source]#

                  Bases: PlotMixin, MapDataset

                  Main dataset for spectrum fitting (1D analysis). It bundles together binned counts, background, IRFs into RegionNDMap (a Map with only one spatial bin). @@ -1046,7 +1046,7 @@

                  SpectrumDataset
                  -cutout(*args, **kwargs)#
                  +cutout(*args, **kwargs)[source]#

                  Not supported for SpectrumDataset

                  @@ -1469,7 +1469,7 @@

                  SpectrumDataset
                  -plot_residuals_spatial(*args, **kwargs)#
                  +plot_residuals_spatial(*args, **kwargs)[source]#

                  Not supported for SpectrumDataset

                  @@ -1809,7 +1809,7 @@

                  SpectrumDataset
                  -to_spectrum_dataset(*args, **kwargs)#
                  +to_spectrum_dataset(*args, **kwargs)[source]#

                  Not supported for SpectrumDataset

                  diff --git a/docs/dev/api/gammapy.datasets.SpectrumDatasetOnOff.html b/docs/dev/api/gammapy.datasets.SpectrumDatasetOnOff.html index 744bf7d513c..310e2dd9055 100644 --- a/docs/dev/api/gammapy.datasets.SpectrumDatasetOnOff.html +++ b/docs/dev/api/gammapy.datasets.SpectrumDatasetOnOff.html @@ -70,7 +70,7 @@ - + @@ -516,7 +516,7 @@

                  SpectrumDatasetOnOff#

                  -class gammapy.datasets.SpectrumDatasetOnOff(models=None, counts=None, counts_off=None, acceptance=None, acceptance_off=None, exposure=None, mask_fit=None, psf=None, edisp=None, name=None, mask_safe=None, gti=None, meta_table=None, meta=None)#
                  +class gammapy.datasets.SpectrumDatasetOnOff(models=None, counts=None, counts_off=None, acceptance=None, acceptance_off=None, exposure=None, mask_fit=None, psf=None, edisp=None, name=None, mask_safe=None, gti=None, meta_table=None, meta=None)[source]#

                  Bases: PlotMixin, MapDatasetOnOff

                  Spectrum dataset for 1D on-off likelihood fitting. It bundles together the binned on and off counts, the binned IRFs as well as the on and off acceptances.

                  @@ -1076,7 +1076,7 @@

                  SpectrumDatasetOnOff
                  -cutout(*args, **kwargs)#
                  +cutout(*args, **kwargs)[source]#

                  Not supported for SpectrumDatasetOnOff.

                  @@ -1126,7 +1126,7 @@

                  SpectrumDatasetOnOff
                  -classmethod from_dict(data, **kwargs)#
                  +classmethod from_dict(data, **kwargs)[source]#

                  Create spectrum dataset from dict. Reads file from the disk as specified in the dict.

                  @@ -1234,7 +1234,7 @@

                  SpectrumDatasetOnOff
                  -classmethod from_spectrum_dataset(**kwargs)#
                  +classmethod from_spectrum_dataset(**kwargs)[source]#

                  Create a SpectrumDatasetOnOff from a SpectrumDataset dataset.

                  Parameters:
                  @@ -1568,7 +1568,7 @@

                  SpectrumDatasetOnOff
                  -plot_residuals_spatial(*args, **kwargs)#
                  +plot_residuals_spatial(*args, **kwargs)[source]#

                  Not supported for SpectrumDatasetOnOff.

                  @@ -1610,7 +1610,7 @@

                  SpectrumDatasetOnOff
                  -classmethod read(filename, format='ogip', checksum=False, name=None, **kwargs)#
                  +classmethod read(filename, format='ogip', checksum=False, name=None, **kwargs)[source]#

                  Read from file.

                  For OGIP formats, filename is the name of a PHA file. The BKG, ARF, and RMF file names must be set in the PHA header and the files must be present in the same folder. For details, see OGIPDatasetReader.read.

                  @@ -1790,7 +1790,7 @@

                  SpectrumDatasetOnOff
                  -to_dict()#
                  +to_dict()[source]#

                  Convert to dict for YAML serialization.

                  @@ -1899,7 +1899,7 @@

                  SpectrumDatasetOnOff
                  -to_spectrum_dataset(name=None)#
                  +to_spectrum_dataset(name=None)[source]#

                  Convert a SpectrumDatasetOnOff to a SpectrumDataset. The background model template is taken as alpha*counts_off.

                  @@ -1920,7 +1920,7 @@

                  SpectrumDatasetOnOff
                  -write(filename, overwrite=False, format='ogip', checksum=False)#
                  +write(filename, overwrite=False, format='ogip', checksum=False)[source]#

                  Write spectrum dataset on off to file.

                  Can be serialised either as a MapDataset with a RegionGeom following the GADF specifications, or as per the OGIP format. diff --git a/docs/dev/api/gammapy.datasets.apply_edisp.html b/docs/dev/api/gammapy.datasets.apply_edisp.html index 1a07c9319a1..9ef5ef5eb53 100644 --- a/docs/dev/api/gammapy.datasets.apply_edisp.html +++ b/docs/dev/api/gammapy.datasets.apply_edisp.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  apply_edisp#

                  -gammapy.datasets.apply_edisp(input_map, edisp)#
                  +gammapy.datasets.apply_edisp(input_map, edisp)[source]#

                  Apply energy dispersion to map. Requires “energy_true” axis.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.create_empty_map_dataset_from_irfs.html b/docs/dev/api/gammapy.datasets.create_empty_map_dataset_from_irfs.html index 8bc041509e6..af4340476ef 100644 --- a/docs/dev/api/gammapy.datasets.create_empty_map_dataset_from_irfs.html +++ b/docs/dev/api/gammapy.datasets.create_empty_map_dataset_from_irfs.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  create_empty_map_dataset_from_irfs#

                  -gammapy.datasets.create_empty_map_dataset_from_irfs(observation, dataset_name=None, energy_axis_true=None, energy_axis=None, energy_bin_per_decade_max=30, spatial_width=None, spatial_width_max=<Quantity 12. deg>, spatial_bin_size=None, spatial_bin_size_min=<Quantity 0.01 deg>, position=None, frame='icrs')#
                  +gammapy.datasets.create_empty_map_dataset_from_irfs(observation, dataset_name=None, energy_axis_true=None, energy_axis=None, energy_bin_per_decade_max=30, spatial_width=None, spatial_width_max=<Quantity 12. deg>, spatial_bin_size=None, spatial_bin_size_min=<Quantity 0.01 deg>, position=None, frame='icrs')[source]#

                  Create a MapDataset, if energy axes, spatial width or bin size are not given they are determined automatically from the IRFs, but the estimated value cannot exceed the given limits.

                  diff --git a/docs/dev/api/gammapy.datasets.create_map_dataset_from_observation.html b/docs/dev/api/gammapy.datasets.create_map_dataset_from_observation.html index ba2ac261bd5..b7f7b65d588 100644 --- a/docs/dev/api/gammapy.datasets.create_map_dataset_from_observation.html +++ b/docs/dev/api/gammapy.datasets.create_map_dataset_from_observation.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  create_map_dataset_from_observation#

                  -gammapy.datasets.create_map_dataset_from_observation(observation, models=None, dataset_name=None, energy_axis_true=None, energy_axis=None, energy_bin_per_decade_max=30, spatial_width=None, spatial_width_max=<Quantity 12. deg>, spatial_bin_size=None, spatial_bin_size_min=<Quantity 0.01 deg>, position=None, frame='icrs')#
                  +gammapy.datasets.create_map_dataset_from_observation(observation, models=None, dataset_name=None, energy_axis_true=None, energy_axis=None, energy_bin_per_decade_max=30, spatial_width=None, spatial_width_max=<Quantity 12. deg>, spatial_bin_size=None, spatial_bin_size_min=<Quantity 0.01 deg>, position=None, frame='icrs')[source]#

                  Create a MapDataset, if energy axes, spatial width or bin size are not given they are determined automatically from the observation IRFs, but the estimated value cannot exceed the given limits.

                  diff --git a/docs/dev/api/gammapy.datasets.create_map_dataset_geoms.html b/docs/dev/api/gammapy.datasets.create_map_dataset_geoms.html index ae9b0c1a28c..38db5509f0a 100644 --- a/docs/dev/api/gammapy.datasets.create_map_dataset_geoms.html +++ b/docs/dev/api/gammapy.datasets.create_map_dataset_geoms.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  create_map_dataset_geoms#

                  -gammapy.datasets.create_map_dataset_geoms(geom, energy_axis_true=None, migra_axis=None, rad_axis=None, binsz_irf=<Quantity 0.2 deg>, reco_psf=False)#
                  +gammapy.datasets.create_map_dataset_geoms(geom, energy_axis_true=None, migra_axis=None, rad_axis=None, binsz_irf=<Quantity 0.2 deg>, reco_psf=False)[source]#

                  Create map geometries for a MapDataset.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.split_dataset.html b/docs/dev/api/gammapy.datasets.split_dataset.html index ee958e864f7..0aca9b41d97 100644 --- a/docs/dev/api/gammapy.datasets.split_dataset.html +++ b/docs/dev/api/gammapy.datasets.split_dataset.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  split_dataset#

                  -gammapy.datasets.split_dataset(dataset, width, margin, split_template_models=True)#
                  +gammapy.datasets.split_dataset(dataset, width, margin, split_template_models=True)[source]#

                  Split dataset in multiple non-overlapping analysis regions.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.utils.apply_edisp.html b/docs/dev/api/gammapy.datasets.utils.apply_edisp.html index c646e81a8d9..ff2955c671f 100644 --- a/docs/dev/api/gammapy.datasets.utils.apply_edisp.html +++ b/docs/dev/api/gammapy.datasets.utils.apply_edisp.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  apply_edisp#

                  -gammapy.datasets.utils.apply_edisp(input_map, edisp)#
                  +gammapy.datasets.utils.apply_edisp(input_map, edisp)[source]#

                  Apply energy dispersion to map. Requires “energy_true” axis.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.datasets.utils.split_dataset.html b/docs/dev/api/gammapy.datasets.utils.split_dataset.html index a07420f349f..971d54ca154 100644 --- a/docs/dev/api/gammapy.datasets.utils.split_dataset.html +++ b/docs/dev/api/gammapy.datasets.utils.split_dataset.html @@ -69,7 +69,7 @@ - + @@ -515,7 +515,7 @@

                  split_dataset#

                  -gammapy.datasets.utils.split_dataset(dataset, width, margin, split_template_models=True)#
                  +gammapy.datasets.utils.split_dataset(dataset, width, margin, split_template_models=True)[source]#

                  Split dataset in multiple non-overlapping analysis regions.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.ASmoothMapEstimator.html b/docs/dev/api/gammapy.estimators.ASmoothMapEstimator.html index 3304165dc78..0b0ad7bf3e9 100644 --- a/docs/dev/api/gammapy.estimators.ASmoothMapEstimator.html +++ b/docs/dev/api/gammapy.estimators.ASmoothMapEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  ASmoothMapEstimator#

                  -class gammapy.estimators.ASmoothMapEstimator(scales=None, kernel=<class 'astropy.convolution.kernels.Gaussian2DKernel'>, spectral_model=None, method='lima', threshold=5, energy_edges=None)#
                  +class gammapy.estimators.ASmoothMapEstimator(scales=None, kernel=<class 'astropy.convolution.kernels.Gaussian2DKernel'>, spectral_model=None, method='lima', threshold=5, energy_edges=None)[source]#

                  Bases: Estimator

                  Adaptively smooth counts image.

                  Achieves a roughly constant sqrt(TS) of features across the whole image.

                  @@ -628,7 +628,7 @@

                  ASmoothMapEstimator
                  -estimate_maps(dataset)#
                  +estimate_maps(dataset)[source]#

                  Run adaptive smoothing on input Maps.

                  Parameters:
                  @@ -657,7 +657,7 @@

                  ASmoothMapEstimator
                  -get_kernels(pixel_scale)#
                  +get_kernels(pixel_scale)[source]#

                  Get kernels according to the specified method.

                  Parameters:
                  @@ -677,7 +677,7 @@

                  ASmoothMapEstimator
                  -static get_scales(n_scales, factor=1.4142135623730951, kernel=<class 'astropy.convolution.kernels.Gaussian2DKernel'>)#
                  +static get_scales(n_scales, factor=1.4142135623730951, kernel=<class 'astropy.convolution.kernels.Gaussian2DKernel'>)[source]#

                  Create list of Gaussian widths.

                  Parameters:
                  @@ -699,7 +699,7 @@

                  ASmoothMapEstimator
                  -run(dataset)#
                  +run(dataset)[source]#

                  Run adaptive smoothing on input MapDataset.

                  Parameters:
                  @@ -730,7 +730,7 @@

                  ASmoothMapEstimator
                  -selection_all()#
                  +selection_all()[source]#

                  Which quantities are computed.

                  diff --git a/docs/dev/api/gammapy.estimators.ESTIMATOR_REGISTRY.html b/docs/dev/api/gammapy.estimators.ESTIMATOR_REGISTRY.html index d0eeb4788e3..7c990a2c9dc 100644 --- a/docs/dev/api/gammapy.estimators.ESTIMATOR_REGISTRY.html +++ b/docs/dev/api/gammapy.estimators.ESTIMATOR_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.estimators.EnergyDependentMorphologyEstimator.html b/docs/dev/api/gammapy.estimators.EnergyDependentMorphologyEstimator.html index 8421c1df042..f9aa067f958 100644 --- a/docs/dev/api/gammapy.estimators.EnergyDependentMorphologyEstimator.html +++ b/docs/dev/api/gammapy.estimators.EnergyDependentMorphologyEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  EnergyDependentMorphologyEstimator#

                  -class gammapy.estimators.EnergyDependentMorphologyEstimator(energy_edges, source=0, fit=None)#
                  +class gammapy.estimators.EnergyDependentMorphologyEstimator(energy_edges, source=0, fit=None)[source]#

                  Bases: Estimator

                  Test if there is any energy-dependent morphology in a map dataset for a given set of energy bins.

                  @@ -599,7 +599,7 @@

                  EnergyDependentMorphologyEstimator
                  -estimate_energy_dependence(datasets)#
                  +estimate_energy_dependence(datasets)[source]#

                  Estimate the potential of energy-dependent morphology.

                  Parameters:
                  @@ -626,7 +626,7 @@

                  EnergyDependentMorphologyEstimator
                  -run(datasets)#
                  +run(datasets)[source]#

                  Run the energy-dependence estimator.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.Estimator.html b/docs/dev/api/gammapy.estimators.Estimator.html index bfebff9fbe5..9232771e283 100644 --- a/docs/dev/api/gammapy.estimators.Estimator.html +++ b/docs/dev/api/gammapy.estimators.Estimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  Estimator#

                  -class gammapy.estimators.Estimator#
                  +class gammapy.estimators.Estimator[source]#

                  Bases: ABC

                  Abstract estimator base class.

                  Attributes Summary

                  @@ -574,13 +574,13 @@

                  EstimatorMethods Documentation

                  -copy()#
                  +copy()[source]#

                  Copy estimator.

                  -abstract run(datasets)#
                  +abstract run(datasets)[source]#

                  diff --git a/docs/dev/api/gammapy.estimators.ExcessMapEstimator.html b/docs/dev/api/gammapy.estimators.ExcessMapEstimator.html index 534b20d3fea..3709670062d 100644 --- a/docs/dev/api/gammapy.estimators.ExcessMapEstimator.html +++ b/docs/dev/api/gammapy.estimators.ExcessMapEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  ExcessMapEstimator#

                  -class gammapy.estimators.ExcessMapEstimator(correlation_radius='0.1 deg', n_sigma=1, n_sigma_ul=2, selection_optional=None, energy_edges=None, correlate_off=True, spectral_model=None, n_sigma_sensitivity=5, gamma_min_sensitivity=10, bkg_syst_fraction_sensitivity=0.05, apply_threshold_sensitivity=False, sum_over_energy_groups=False)#
                  +class gammapy.estimators.ExcessMapEstimator(correlation_radius='0.1 deg', n_sigma=1, n_sigma_ul=2, selection_optional=None, energy_edges=None, correlate_off=True, spectral_model=None, n_sigma_sensitivity=5, gamma_min_sensitivity=10, bkg_syst_fraction_sensitivity=0.05, apply_threshold_sensitivity=False, sum_over_energy_groups=False)[source]#

                  Bases: Estimator

                  Computes correlated excess, significance and error maps from a map dataset.

                  If a model is set on the dataset the excess map estimator will compute the @@ -686,7 +686,7 @@

                  ExcessMapEstimator
                  -estimate_excess_map(dataset, reco_exposure)#
                  +estimate_excess_map(dataset, reco_exposure)[source]#

                  Estimate excess and test statistic maps for a single dataset.

                  If exposure is defined, a flux map is also computed.

                  @@ -701,7 +701,7 @@

                  ExcessMapEstimator
                  -estimate_exposure_reco_energy(dataset, kernel, mask, reco_exposure)#
                  +estimate_exposure_reco_energy(dataset, kernel, mask, reco_exposure)[source]#

                  Estimate exposure map in reconstructed energy for a single dataset assuming the given spectral_model shape.

                  Parameters:
                  @@ -725,7 +725,7 @@

                  ExcessMapEstimator
                  -estimate_kernel(dataset)#
                  +estimate_kernel(dataset)[source]#

                  Get the convolution kernel for the input dataset.

                  Parameters:
                  @@ -745,7 +745,7 @@

                  ExcessMapEstimator
                  -static estimate_mask_default(dataset)#
                  +static estimate_mask_default(dataset)[source]#

                  Get mask used by the estimator.

                  Parameters:
                  @@ -765,7 +765,7 @@

                  ExcessMapEstimator
                  -run(dataset)#
                  +run(dataset)[source]#

                  Compute correlated excess, Li & Ma significance and flux maps.

                  If a model is set on the dataset the excess map estimator will compute the excess taking into account the predicted counts of the model.

                  diff --git a/docs/dev/api/gammapy.estimators.FluxMaps.html b/docs/dev/api/gammapy.estimators.FluxMaps.html index 8a4169fa920..f357e6547a7 100644 --- a/docs/dev/api/gammapy.estimators.FluxMaps.html +++ b/docs/dev/api/gammapy.estimators.FluxMaps.html @@ -70,7 +70,7 @@ - + @@ -525,7 +525,7 @@

                  FluxMaps#

                  -class gammapy.estimators.FluxMaps(data, reference_model, meta=None, gti=None, filter_success_nan=True)#
                  +class gammapy.estimators.FluxMaps(data, reference_model, meta=None, gti=None, filter_success_nan=True)[source]#

                  Bases: object

                  A flux map / points container.

                  It contains a set of Map objects that store the estimated @@ -1340,7 +1340,7 @@

                  FluxMaps

                  Methods Documentation

                  -static all_quantities(sed_type)#
                  +static all_quantities(sed_type)[source]#

                  All quantities allowed for a given SED type.

                  Parameters:
                  @@ -1360,7 +1360,7 @@

                  FluxMaps
                  -copy(reference_model=None)#
                  +copy(reference_model=None)[source]#

                  Deep copy.

                  Parameters:
                  @@ -1382,7 +1382,7 @@

                  FluxMaps
                  -classmethod from_hdulist(hdulist, hdu_bands=None, sed_type=None, checksum=False)#
                  +classmethod from_hdulist(hdulist, hdu_bands=None, sed_type=None, checksum=False)[source]#

                  Create flux map dataset from list of HDUs.

                  Parameters:
                  @@ -1407,7 +1407,7 @@

                  FluxMaps
                  -classmethod from_maps(maps, sed_type=None, reference_model=None, gti=None, meta=None)#
                  +classmethod from_maps(maps, sed_type=None, reference_model=None, gti=None, meta=None)[source]#

                  Create FluxMaps from a dictionary of maps.

                  Parameters:
                  @@ -1437,7 +1437,7 @@

                  FluxMaps
                  -classmethod from_stack(maps, axis, meta=None)#
                  +classmethod from_stack(maps, axis, meta=None)[source]#

                  Create flux points by stacking list of flux points.

                  The first FluxPoints object in the list is taken as a reference to infer column names and units for the stacked object.

                  @@ -1463,7 +1463,7 @@

                  FluxMaps
                  -get_flux_points(position=None)#
                  +get_flux_points(position=None)[source]#

                  Extract flux point at a given position.

                  Parameters:
                  @@ -1483,7 +1483,7 @@

                  FluxMaps
                  -iter_by_axis(axis_name)#
                  +iter_by_axis(axis_name)[source]#

                  Create a set of FluxMaps by splitting along an axis.

                  Parameters:
                  @@ -1503,7 +1503,7 @@

                  FluxMaps
                  -classmethod read(filename, checksum=False)#
                  +classmethod read(filename, checksum=False)[source]#

                  Read map dataset from file.

                  Parameters:
                  @@ -1525,7 +1525,7 @@

                  FluxMaps
                  -slice_by_coord(slices)#
                  +slice_by_coord(slices)[source]#

                  Slice flux maps by coordinate values.

                  Parameters:
                  @@ -1556,7 +1556,7 @@

                  FluxMaps
                  -slice_by_energy(energy_min, energy_max)#
                  +slice_by_energy(energy_min, energy_max)[source]#

                  Slice flux maps by coordinate values along the energy axis.

                  Parameters:
                  @@ -1583,7 +1583,7 @@

                  FluxMaps
                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Slice flux maps by index.

                  Parameters:
                  @@ -1614,7 +1614,7 @@

                  FluxMaps
                  -slice_by_time(time_min, time_max)#
                  +slice_by_time(time_min, time_max)[source]#

                  Slice flux maps by coordinate values along the time axis.

                  Parameters:
                  @@ -1641,7 +1641,7 @@

                  FluxMaps
                  -to_hdulist(sed_type=None, hdu_bands=None)#
                  +to_hdulist(sed_type=None, hdu_bands=None)[source]#

                  Convert flux map to list of HDUs.

                  For now, one cannot export the reference model.

                  @@ -1665,7 +1665,7 @@

                  FluxMaps
                  -to_maps(sed_type=None)#
                  +to_maps(sed_type=None)[source]#

                  Return maps in a given SED type.

                  Parameters:
                  @@ -1685,7 +1685,7 @@

                  FluxMaps
                  -write(filename, filename_model=None, overwrite=False, sed_type=None, checksum=False)#
                  +write(filename, filename_model=None, overwrite=False, sed_type=None, checksum=False)[source]#

                  Write flux map to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.FluxMetaData.html b/docs/dev/api/gammapy.estimators.FluxMetaData.html index 4593f1e1bee..af1ca7961cc 100644 --- a/docs/dev/api/gammapy.estimators.FluxMetaData.html +++ b/docs/dev/api/gammapy.estimators.FluxMetaData.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  FluxMetaData#

                  -class gammapy.estimators.FluxMetaData(*, sed_type: ~gammapy.estimators.metadata.SEDTYPEEnum | None = None, sed_type_init: ~gammapy.estimators.metadata.SEDTYPEEnum | None = None, n_sigma: float | None = None, n_sigma_ul: float | None = None, sqrt_ts_threshold_ul: float | None = None, n_sigma_sensitivity: float | None = None, target: ~gammapy.utils.metadata.TargetMetaData | None = None, creation: ~gammapy.utils.metadata.CreatorMetaData | None = CreatorMetaData(creator='Gammapy 2.0.dev190+ged6e64092', date=<Time object: scale='utc' format='datetime' value=2025-01-07 20:32:01.705539>, origin=None), optional: dict | None = None)#
                  +class gammapy.estimators.FluxMetaData(*, sed_type: ~gammapy.estimators.metadata.SEDTYPEEnum | None = None, sed_type_init: ~gammapy.estimators.metadata.SEDTYPEEnum | None = None, n_sigma: float | None = None, n_sigma_ul: float | None = None, sqrt_ts_threshold_ul: float | None = None, n_sigma_sensitivity: float | None = None, target: ~gammapy.utils.metadata.TargetMetaData | None = None, creation: ~gammapy.utils.metadata.CreatorMetaData | None = CreatorMetaData(creator='Gammapy 2.0.dev194+gbc69342c8', date=<Time object: scale='utc' format='datetime' value=2025-01-10 17:08:22.648837>, origin=None), optional: dict | None = None)[source]#

                  Bases: MetaData

                  Metadata containing information about the FluxPoints and FluxMaps.

                  diff --git a/docs/dev/api/gammapy.estimators.FluxPoints.html b/docs/dev/api/gammapy.estimators.FluxPoints.html index 4ca6383d26d..3f5f82376c6 100644 --- a/docs/dev/api/gammapy.estimators.FluxPoints.html +++ b/docs/dev/api/gammapy.estimators.FluxPoints.html @@ -70,7 +70,7 @@ - + @@ -525,7 +525,7 @@

                  FluxPoints#

                  -class gammapy.estimators.FluxPoints(data, reference_model, meta=None, gti=None, filter_success_nan=True)#
                  +class gammapy.estimators.FluxPoints(data, reference_model, meta=None, gti=None, filter_success_nan=True)[source]#

                  Bases: FluxMaps

                  Flux points container.

                  The supported formats are described here: SED.

                  @@ -1520,7 +1520,7 @@

                  FluxPoints
                  -classmethod from_table(table, sed_type=None, format=None, reference_model=None, gti=None)#
                  +classmethod from_table(table, sed_type=None, format=None, reference_model=None, gti=None)[source]#

                  Create flux points from a table. The table column names must be consistent with the sed_type.

                  Parameters:
                  @@ -1588,7 +1588,7 @@

                  FluxPoints
                  -plot(ax=None, sed_type=None, energy_power=0, time_format='iso', **kwargs)#
                  +plot(ax=None, sed_type=None, energy_power=0, time_format='iso', **kwargs)[source]#

                  Plot flux points.

                  Parameters:
                  @@ -1616,7 +1616,7 @@

                  FluxPoints
                  -plot_ts_profiles(ax=None, sed_type=None, add_cbar=True, **kwargs)#
                  +plot_ts_profiles(ax=None, sed_type=None, add_cbar=True, **kwargs)[source]#

                  Plot fit statistic SED profiles as a density plot.

                  Parameters:
                  @@ -1642,7 +1642,7 @@

                  FluxPoints
                  -classmethod read(filename, sed_type=None, format=None, reference_model=None, checksum=False, table_format='ascii.ecsv', **kwargs)#
                  +classmethod read(filename, sed_type=None, format=None, reference_model=None, checksum=False, table_format='ascii.ecsv', **kwargs)[source]#

                  Read precomputed flux points.

                  Parameters:
                  @@ -1675,7 +1675,7 @@

                  FluxPoints
                  -recompute_ul(n_sigma_ul=2, **kwargs)#
                  +recompute_ul(n_sigma_ul=2, **kwargs)[source]#

                  Recompute upper limits corresponding to the given value.

                  The pre-computed statistic profiles must exist for the re-computation.

                  @@ -1709,7 +1709,7 @@

                  FluxPoints
                  -resample_axis(axis_new)#
                  +resample_axis(axis_new)[source]#

                  Rebin the flux point object along the new axis.

                  The log-likelihoods profiles in each bin are summed to compute the resultant quantities. @@ -1894,7 +1894,7 @@

                  FluxPoints
                  -to_table(sed_type=None, format=None, formatted=False)#
                  +to_table(sed_type=None, format=None, formatted=False)[source]#

                  Create table for a given SED type.

                  Parameters:
                  @@ -1948,7 +1948,7 @@

                  FluxPoints
                  -write(filename, sed_type=None, format=None, overwrite=False, checksum=False)#
                  +write(filename, sed_type=None, format=None, overwrite=False, checksum=False)[source]#

                  Write flux points.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.FluxPointsEstimator.html b/docs/dev/api/gammapy.estimators.FluxPointsEstimator.html index 548d1a25d4e..cf467f1f122 100644 --- a/docs/dev/api/gammapy.estimators.FluxPointsEstimator.html +++ b/docs/dev/api/gammapy.estimators.FluxPointsEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  FluxPointsEstimator#

                  -class gammapy.estimators.FluxPointsEstimator(energy_edges=<Quantity [ 1., 10.] TeV>, sum_over_energy_groups=False, n_jobs=None, parallel_backend=None, **kwargs)#
                  +class gammapy.estimators.FluxPointsEstimator(energy_edges=<Quantity [ 1., 10.] TeV>, sum_over_energy_groups=False, n_jobs=None, parallel_backend=None, **kwargs)[source]#

                  Bases: FluxEstimator, ParallelMixin

                  Flux points estimator.

                  Estimates flux points for a given list of datasets, energies and spectral model.

                  @@ -768,7 +768,7 @@

                  FluxPointsEstimator
                  -estimate_flux_point(datasets, energy_min, energy_max)#
                  +estimate_flux_point(datasets, energy_min, energy_max)[source]#

                  Estimate flux point for a single energy group.

                  Parameters:
                  @@ -936,7 +936,7 @@

                  FluxPointsEstimator
                  -run(datasets)#
                  +run(datasets)[source]#

                  Run the flux point estimator for all energy groups.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.FluxProfileEstimator.html b/docs/dev/api/gammapy.estimators.FluxProfileEstimator.html index 0466ac13db0..7a4c308223c 100644 --- a/docs/dev/api/gammapy.estimators.FluxProfileEstimator.html +++ b/docs/dev/api/gammapy.estimators.FluxProfileEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  FluxProfileEstimator#

                  -class gammapy.estimators.FluxProfileEstimator(regions, spectral_model=None, **kwargs)#
                  +class gammapy.estimators.FluxProfileEstimator(regions, spectral_model=None, **kwargs)[source]#

                  Bases: FluxPointsEstimator

                  Estimate flux profiles.

                  @@ -969,7 +969,7 @@

                  FluxProfileEstimator
                  -run(datasets)#
                  +run(datasets)[source]#

                  Run flux profile estimation.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.ImageProfile.html b/docs/dev/api/gammapy.estimators.ImageProfile.html index 525ffe39c2f..fecdf127c3b 100644 --- a/docs/dev/api/gammapy.estimators.ImageProfile.html +++ b/docs/dev/api/gammapy.estimators.ImageProfile.html @@ -70,7 +70,7 @@ - + @@ -525,7 +525,7 @@

                  ImageProfile#

                  -class gammapy.estimators.ImageProfile(table)#
                  +class gammapy.estimators.ImageProfile(table)[source]#

                  Bases: object

                  Image profile class.

                  The image profile data is stored in Table object, with the @@ -623,7 +623,7 @@

                  ImageProfileMethods Documentation

                  -normalize(mode='peak')#
                  +normalize(mode='peak')[source]#

                  Normalize profile to peak value or integral.

                  Parameters:
                  @@ -644,7 +644,7 @@

                  ImageProfile
                  -peek(figsize=(8, 4.5), **kwargs)#
                  +peek(figsize=(8, 4.5), **kwargs)[source]#

                  Show image profile and error.

                  Parameters:
                  @@ -666,7 +666,7 @@

                  ImageProfile
                  -plot(ax=None, **kwargs)#
                  +plot(ax=None, **kwargs)[source]#

                  Plot image profile.

                  Parameters:
                  @@ -688,7 +688,7 @@

                  ImageProfile
                  -plot_err(ax=None, **kwargs)#
                  +plot_err(ax=None, **kwargs)[source]#

                  Plot image profile error as band.

                  Parameters:
                  @@ -710,7 +710,7 @@

                  ImageProfile
                  -smooth(kernel='box', radius='0.1 deg', **kwargs)#
                  +smooth(kernel='box', radius='0.1 deg', **kwargs)[source]#

                  Smooth profile with error propagation.

                  Smoothing is described by a convolution:

                  diff --git a/docs/dev/api/gammapy.estimators.ImageProfileEstimator.html b/docs/dev/api/gammapy.estimators.ImageProfileEstimator.html index ed2a8da23f8..bdabae433b2 100644 --- a/docs/dev/api/gammapy.estimators.ImageProfileEstimator.html +++ b/docs/dev/api/gammapy.estimators.ImageProfileEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  ImageProfileEstimator#

                  -class gammapy.estimators.ImageProfileEstimator(x_edges=None, method='sum', axis='lon', center=None)#
                  +class gammapy.estimators.ImageProfileEstimator(x_edges=None, method='sum', axis='lon', center=None)[source]#

                  Bases: Estimator

                  Estimate profile from image.

                  @@ -616,7 +616,7 @@

                  ImageProfileEstimator
                  -run(image, image_err=None, mask=None)#
                  +run(image, image_err=None, mask=None)[source]#

                  Run image profile estimator.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.LightCurveEstimator.html b/docs/dev/api/gammapy.estimators.LightCurveEstimator.html index 3a46c16c392..00eb9a84fd4 100644 --- a/docs/dev/api/gammapy.estimators.LightCurveEstimator.html +++ b/docs/dev/api/gammapy.estimators.LightCurveEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  LightCurveEstimator#

                  -class gammapy.estimators.LightCurveEstimator(time_intervals=None, atol='1e-6 s', **kwargs)#
                  +class gammapy.estimators.LightCurveEstimator(time_intervals=None, atol='1e-6 s', **kwargs)[source]#

                  Bases: FluxPointsEstimator

                  Estimate light curve.

                  The estimator will apply flux point estimation on the source model component to datasets @@ -871,7 +871,7 @@

                  LightCurveEstimator
                  -estimate_time_bin_flux(datasets, dataset_names=None)#
                  +estimate_time_bin_flux(datasets, dataset_names=None)[source]#

                  Estimate flux point for a single energy group.

                  Parameters:
                  @@ -947,7 +947,7 @@

                  LightCurveEstimator
                  -static expand_map(m, dataset_names)#
                  +static expand_map(m, dataset_names)[source]#

                  Expand map in dataset axis.

                  Parameters:
                  @@ -989,7 +989,7 @@

                  LightCurveEstimator
                  -run(datasets)#
                  +run(datasets)[source]#

                  Run light curve extraction.

                  Normalize integral and energy flux between emin and emax.

                  diff --git a/docs/dev/api/gammapy.estimators.ParameterEstimator.html b/docs/dev/api/gammapy.estimators.ParameterEstimator.html index a99c4ab5c91..13b02d25777 100644 --- a/docs/dev/api/gammapy.estimators.ParameterEstimator.html +++ b/docs/dev/api/gammapy.estimators.ParameterEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  ParameterEstimator#

                  -class gammapy.estimators.ParameterEstimator(n_sigma=1, n_sigma_ul=2, null_value=1e-150, selection_optional=None, fit=None, reoptimize=True)#
                  +class gammapy.estimators.ParameterEstimator(n_sigma=1, n_sigma_ul=2, null_value=1e-150, selection_optional=None, fit=None, reoptimize=True)[source]#

                  Bases: Estimator

                  Model parameter estimator.

                  Estimates a model parameter for a group of datasets. Compute best fit value, @@ -651,7 +651,7 @@

                  ParameterEstimator
                  -estimate_best_fit(datasets, parameter)#
                  +estimate_best_fit(datasets, parameter)[source]#

                  Estimate parameter asymmetric errors.

                  Parameters:
                  @@ -681,7 +681,7 @@

                  ParameterEstimator
                  -static estimate_counts(datasets)#
                  +static estimate_counts(datasets)[source]#

                  Estimate counts for the flux point.

                  Parameters:
                  @@ -702,7 +702,7 @@

                  ParameterEstimator
                  -estimate_errn_errp(datasets, parameter)#
                  +estimate_errn_errp(datasets, parameter)[source]#

                  Estimate parameter asymmetric errors.

                  Parameters:
                  @@ -730,7 +730,7 @@

                  ParameterEstimator
                  -static estimate_npred(datasets)#
                  +static estimate_npred(datasets)[source]#

                  Estimate npred for the flux point.

                  Parameters:
                  @@ -751,7 +751,7 @@

                  ParameterEstimator
                  -estimate_scan(datasets, parameter)#
                  +estimate_scan(datasets, parameter)[source]#

                  Estimate parameter statistic scan.

                  Parameters:
                  @@ -779,7 +779,7 @@

                  ParameterEstimator
                  -estimate_ts(datasets, parameter)#
                  +estimate_ts(datasets, parameter)[source]#

                  Estimate parameter ts.

                  Parameters:
                  @@ -808,7 +808,7 @@

                  ParameterEstimator
                  -estimate_ul(datasets, parameter)#
                  +estimate_ul(datasets, parameter)[source]#

                  Estimate parameter ul.

                  Parameters:
                  @@ -835,7 +835,7 @@

                  ParameterEstimator
                  -run(datasets, parameter)#
                  +run(datasets, parameter)[source]#

                  Run the parameter estimator.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.SensitivityEstimator.html b/docs/dev/api/gammapy.estimators.SensitivityEstimator.html index 2195c5500e2..bbd33cc47b3 100644 --- a/docs/dev/api/gammapy.estimators.SensitivityEstimator.html +++ b/docs/dev/api/gammapy.estimators.SensitivityEstimator.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  SensitivityEstimator#

                  -class gammapy.estimators.SensitivityEstimator(spectral_model=None, n_sigma=5.0, gamma_min=10, bkg_syst_fraction=0.05)#
                  +class gammapy.estimators.SensitivityEstimator(spectral_model=None, n_sigma=5.0, gamma_min=10, bkg_syst_fraction=0.05)[source]#

                  Bases: Estimator

                  Estimate sensitivity.

                  This class allows to determine for each reconstructed energy bin the flux @@ -606,7 +606,7 @@

                  SensitivityEstimator
                  -estimate_min_e2dnde(excess, dataset)#
                  +estimate_min_e2dnde(excess, dataset)[source]#

                  Estimate dnde from a given minimum excess.

                  Parameters:
                  @@ -628,7 +628,7 @@

                  SensitivityEstimator
                  -estimate_min_excess(dataset)#
                  +estimate_min_excess(dataset)[source]#

                  Estimate minimum excess to reach the given significance.

                  Parameters:
                  @@ -648,7 +648,7 @@

                  SensitivityEstimator
                  -run(dataset)#
                  +run(dataset)[source]#

                  Run the sensitivity estimation.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.TSMapEstimator.html b/docs/dev/api/gammapy.estimators.TSMapEstimator.html index edbe08e9dc8..6fd96cb5611 100644 --- a/docs/dev/api/gammapy.estimators.TSMapEstimator.html +++ b/docs/dev/api/gammapy.estimators.TSMapEstimator.html @@ -70,7 +70,7 @@ - + @@ -525,7 +525,7 @@

                  TSMapEstimator#

                  -class gammapy.estimators.TSMapEstimator(model=None, kernel_width=None, downsampling_factor=None, n_sigma=1, n_sigma_ul=2, threshold=None, rtol=0.01, selection_optional=None, energy_edges=None, sum_over_energy_groups=True, n_jobs=None, parallel_backend=None, norm=None, max_niter=100)#
                  +class gammapy.estimators.TSMapEstimator(model=None, kernel_width=None, downsampling_factor=None, n_sigma=1, n_sigma_ul=2, threshold=None, rtol=0.01, selection_optional=None, energy_edges=None, sum_over_energy_groups=True, n_jobs=None, parallel_backend=None, norm=None, max_niter=100)[source]#

                  Bases: Estimator, ParallelMixin

                  Compute test statistic map from a MapDataset using different optimization methods.

                  The map is computed fitting by a single parameter norm fit. The fit is @@ -733,7 +733,7 @@

                  TSMapEstimator
                  -estimate_fit_input_maps(dataset)#
                  +estimate_fit_input_maps(dataset)[source]#

                  Estimate fit input maps.

                  Parameters:
                  @@ -753,7 +753,7 @@

                  TSMapEstimator
                  -estimate_flux_default(dataset, kernel=None, exposure=None)#
                  +estimate_flux_default(dataset, kernel=None, exposure=None)[source]#

                  Estimate default flux map using a given kernel.

                  Parameters:
                  @@ -777,7 +777,7 @@

                  TSMapEstimator
                  -estimate_flux_map(datasets)#
                  +estimate_flux_map(datasets)[source]#

                  Estimate flux and test statistic maps for single dataset.

                  Parameters:
                  @@ -791,7 +791,7 @@

                  TSMapEstimator
                  -estimate_kernel(dataset)#
                  +estimate_kernel(dataset)[source]#

                  Get the convolution kernel for the input dataset.

                  Convolves the model with the IRFs at the center of the dataset, or at the nearest position with non-zero exposure.

                  @@ -813,7 +813,7 @@

                  TSMapEstimator
                  -static estimate_mask_default(dataset)#
                  +static estimate_mask_default(dataset)[source]#

                  Compute default mask where to estimate test statistic values.

                  Parameters:
                  @@ -833,7 +833,7 @@

                  TSMapEstimator
                  -estimate_pad_width(dataset, kernel=None)#
                  +estimate_pad_width(dataset, kernel=None)[source]#

                  Estimate pad width of the dataset.

                  Parameters:
                  @@ -855,7 +855,7 @@

                  TSMapEstimator
                  -run(datasets)#
                  +run(datasets)[source]#

                  Run test statistic map estimation.

                  Requires a MapDataset with counts, exposure and background_model properly set to run.

                  diff --git a/docs/dev/api/gammapy.estimators.utils.combine_flux_maps.html b/docs/dev/api/gammapy.estimators.utils.combine_flux_maps.html index 3016926d188..30b9cbcee7b 100644 --- a/docs/dev/api/gammapy.estimators.utils.combine_flux_maps.html +++ b/docs/dev/api/gammapy.estimators.utils.combine_flux_maps.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  combine_flux_maps#

                  -gammapy.estimators.utils.combine_flux_maps(maps, method='gaussian_errors', reference_model=None, dnde_scan_axis=None)#
                  +gammapy.estimators.utils.combine_flux_maps(maps, method='gaussian_errors', reference_model=None, dnde_scan_axis=None)[source]#

                  Create a FluxMaps by combining a list of flux maps with the same geometry.

                  This assumes the flux maps are independent measurements of the same true value. diff --git a/docs/dev/api/gammapy.estimators.utils.combine_significance_maps.html b/docs/dev/api/gammapy.estimators.utils.combine_significance_maps.html index 2c30f7cdced..ec602ef9675 100644 --- a/docs/dev/api/gammapy.estimators.utils.combine_significance_maps.html +++ b/docs/dev/api/gammapy.estimators.utils.combine_significance_maps.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  combine_significance_maps#

                  -gammapy.estimators.utils.combine_significance_maps(maps)#
                  +gammapy.estimators.utils.combine_significance_maps(maps)[source]#

                  Computes excess and significance for a set of datasets. The significance computation assumes that the model contains one degree of freedom per valid energy bin in each dataset. diff --git a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.html b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.html index 07f2d83e601..acf35d8422a 100644 --- a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.html +++ b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  compute_lightcurve_discrete_correlation#

                  -gammapy.estimators.utils.compute_lightcurve_discrete_correlation(lightcurve1, lightcurve2=None, flux_quantity='flux', tau=None)#
                  +gammapy.estimators.utils.compute_lightcurve_discrete_correlation(lightcurve1, lightcurve2=None, flux_quantity='flux', tau=None)[source]#

                  Compute the discrete correlation function for two lightcurves, or the discrete autocorrelation if only one lightcurve is provided.

                  NaN values will be ignored in the computation in order to account for possible gaps in the data.

                  Internally calls the discrete_correlation function.

                  diff --git a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.html b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.html index e2fadb9a76c..60216135dbf 100644 --- a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.html +++ b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_doublingtime.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  compute_lightcurve_doublingtime#

                  -gammapy.estimators.utils.compute_lightcurve_doublingtime(lightcurve, flux_quantity='flux')#
                  +gammapy.estimators.utils.compute_lightcurve_doublingtime(lightcurve, flux_quantity='flux')[source]#

                  Compute the minimum characteristic flux doubling and halving time for the input lightcurve.

                  Internally calls the compute_flux_doubling function.

                  The characteristic doubling time is estimated to obtain the diff --git a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fpp.html b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fpp.html index 9a421f08026..95ef15dda71 100644 --- a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fpp.html +++ b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fpp.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  compute_lightcurve_fpp#

                  -gammapy.estimators.utils.compute_lightcurve_fpp(lightcurve, flux_quantity='flux')#
                  +gammapy.estimators.utils.compute_lightcurve_fpp(lightcurve, flux_quantity='flux')[source]#

                  Compute the point-to-point excess variance of the input lightcurve.

                  Internally calls the compute_fpp function

                  diff --git a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fvar.html b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fvar.html index d833a8a5dbb..d077c7e948c 100644 --- a/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fvar.html +++ b/docs/dev/api/gammapy.estimators.utils.compute_lightcurve_fvar.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  compute_lightcurve_fvar#

                  -gammapy.estimators.utils.compute_lightcurve_fvar(lightcurve, flux_quantity='flux')#
                  +gammapy.estimators.utils.compute_lightcurve_fvar(lightcurve, flux_quantity='flux')[source]#

                  Compute the fractional excess variance of the input lightcurve.

                  Internally calls the compute_fvar function.

                  diff --git a/docs/dev/api/gammapy.estimators.utils.estimate_exposure_reco_energy.html b/docs/dev/api/gammapy.estimators.utils.estimate_exposure_reco_energy.html index e3a424326f3..8bd0afe1dfd 100644 --- a/docs/dev/api/gammapy.estimators.utils.estimate_exposure_reco_energy.html +++ b/docs/dev/api/gammapy.estimators.utils.estimate_exposure_reco_energy.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  estimate_exposure_reco_energy#

                  -gammapy.estimators.utils.estimate_exposure_reco_energy(dataset, spectral_model=None, normalize=True)#
                  +gammapy.estimators.utils.estimate_exposure_reco_energy(dataset, spectral_model=None, normalize=True)[source]#

                  Estimate an exposure map in reconstructed energy.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.utils.find_peaks.html b/docs/dev/api/gammapy.estimators.utils.find_peaks.html index 61504ce3771..46a49d61201 100644 --- a/docs/dev/api/gammapy.estimators.utils.find_peaks.html +++ b/docs/dev/api/gammapy.estimators.utils.find_peaks.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  find_peaks#

                  -gammapy.estimators.utils.find_peaks(image, threshold, min_distance=1)#
                  +gammapy.estimators.utils.find_peaks(image, threshold, min_distance=1)[source]#

                  Find local peaks in an image.

                  This is a very simple peak finder, that finds local peaks (i.e. maxima) in images above a given threshold within diff --git a/docs/dev/api/gammapy.estimators.utils.find_peaks_in_flux_map.html b/docs/dev/api/gammapy.estimators.utils.find_peaks_in_flux_map.html index aa519b9023b..2f9638881c0 100644 --- a/docs/dev/api/gammapy.estimators.utils.find_peaks_in_flux_map.html +++ b/docs/dev/api/gammapy.estimators.utils.find_peaks_in_flux_map.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  find_peaks_in_flux_map#

                  -gammapy.estimators.utils.find_peaks_in_flux_map(maps, threshold, min_distance=1)#
                  +gammapy.estimators.utils.find_peaks_in_flux_map(maps, threshold, min_distance=1)[source]#

                  Find local test statistic peaks for a given Map.

                  Utilises the find_peaks function to find various parameters from FluxMaps.

                  diff --git a/docs/dev/api/gammapy.estimators.utils.get_combined_flux_maps.html b/docs/dev/api/gammapy.estimators.utils.get_combined_flux_maps.html index b2a8bee18cc..84d052d8629 100644 --- a/docs/dev/api/gammapy.estimators.utils.get_combined_flux_maps.html +++ b/docs/dev/api/gammapy.estimators.utils.get_combined_flux_maps.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  get_combined_flux_maps#

                  -gammapy.estimators.utils.get_combined_flux_maps(estimator, datasets, method='gaussian_errors', reference_model=None, dnde_scan_axis=None)#
                  +gammapy.estimators.utils.get_combined_flux_maps(estimator, datasets, method='gaussian_errors', reference_model=None, dnde_scan_axis=None)[source]#

                  Create a FluxMaps by combining a list of flux maps with the same geometry.

                  This assumes the flux maps are independent measurements of the same true value. The GTI is stacked in the process.

                  diff --git a/docs/dev/api/gammapy.estimators.utils.get_combined_significance_maps.html b/docs/dev/api/gammapy.estimators.utils.get_combined_significance_maps.html index 1ae9a30d846..c7f5edb3127 100644 --- a/docs/dev/api/gammapy.estimators.utils.get_combined_significance_maps.html +++ b/docs/dev/api/gammapy.estimators.utils.get_combined_significance_maps.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  get_combined_significance_maps#

                  -gammapy.estimators.utils.get_combined_significance_maps(estimator, datasets)#
                  +gammapy.estimators.utils.get_combined_significance_maps(estimator, datasets)[source]#

                  Compute excess and significance for a set of datasets.

                  The significance computation assumes that the model contains one degree of freedom per valid energy bin in each dataset. diff --git a/docs/dev/api/gammapy.estimators.utils.get_rebinned_axis.html b/docs/dev/api/gammapy.estimators.utils.get_rebinned_axis.html index a6504924c83..640ba85e6f0 100644 --- a/docs/dev/api/gammapy.estimators.utils.get_rebinned_axis.html +++ b/docs/dev/api/gammapy.estimators.utils.get_rebinned_axis.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  get_rebinned_axis#

                  -gammapy.estimators.utils.get_rebinned_axis(fluxpoint, axis_name='energy', method=None, **kwargs)#
                  +gammapy.estimators.utils.get_rebinned_axis(fluxpoint, axis_name='energy', method=None, **kwargs)[source]#

                  Get the rebinned axis for resampling the flux point object along the mentioned axis.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.estimators.utils.resample_energy_edges.html b/docs/dev/api/gammapy.estimators.utils.resample_energy_edges.html index ada1e5c0abd..ba1568f4b03 100644 --- a/docs/dev/api/gammapy.estimators.utils.resample_energy_edges.html +++ b/docs/dev/api/gammapy.estimators.utils.resample_energy_edges.html @@ -69,7 +69,7 @@ - + @@ -524,7 +524,7 @@

                  resample_energy_edges#

                  -gammapy.estimators.utils.resample_energy_edges(dataset, conditions={})#
                  +gammapy.estimators.utils.resample_energy_edges(dataset, conditions={})[source]#

                  Return energy edges that satisfy given condition on the per bin statistics.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.Background2D.html b/docs/dev/api/gammapy.irf.Background2D.html index 9f7fbfad554..0a92bd52173 100644 --- a/docs/dev/api/gammapy.irf.Background2D.html +++ b/docs/dev/api/gammapy.irf.Background2D.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  Background2D#

                  -class gammapy.irf.Background2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.Background2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: BackgroundIRF

                  Background 2D.

                  Data format specification: BKG_2D

                  @@ -929,13 +929,13 @@

                  Background2D
                  -peek(figsize=(10, 8))#
                  +peek(figsize=(10, 8))[source]#

                  Quick-look summary plots.

                  -plot(ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs)#
                  +plot(ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#

                  Plot energy offset dependence of the background model.

                  Parameters:
                  @@ -963,7 +963,7 @@

                  Background2D
                  -plot_at_energy(energy=<Quantity 1. TeV>, add_cbar=True, ncols=3, figsize=None, **kwargs)#
                  +plot_at_energy(energy=<Quantity 1. TeV>, add_cbar=True, ncols=3, figsize=None, **kwargs)[source]#

                  Plot the background rate in FoV coordinates at a given energy.

                  Parameters:
                  @@ -985,7 +985,7 @@

                  Background2D
                  -plot_energy_dependence(ax=None, offset=None, **kwargs)#
                  +plot_energy_dependence(ax=None, offset=None, **kwargs)[source]#

                  Plot background rate versus energy for a given offset.

                  Parameters:
                  @@ -1009,7 +1009,7 @@

                  Background2D
                  -plot_offset_dependence(ax=None, energy=None, **kwargs)#
                  +plot_offset_dependence(ax=None, energy=None, **kwargs)[source]#

                  Plot background rate versus offset for a given energy.

                  Parameters:
                  @@ -1031,7 +1031,7 @@

                  Background2D
                  -plot_spectrum(ax=None, **kwargs)#
                  +plot_spectrum(ax=None, **kwargs)[source]#

                  Plot angle integrated background rate versus energy.

                  Parameters:
                  @@ -1099,7 +1099,7 @@

                  Background2D
                  -to_3d()#
                  +to_3d()[source]#

                  Convert to Background3D.

                  diff --git a/docs/dev/api/gammapy.irf.Background3D.html b/docs/dev/api/gammapy.irf.Background3D.html index 8dd3a9c2007..676937aa290 100644 --- a/docs/dev/api/gammapy.irf.Background3D.html +++ b/docs/dev/api/gammapy.irf.Background3D.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  Background3D#

                  -class gammapy.irf.Background3D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.Background3D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: BackgroundIRF

                  Background 3D.

                  Data format specification: BKG_3D.

                  @@ -936,7 +936,7 @@

                  Background3D
                  -peek(figsize=(10, 8))#
                  +peek(figsize=(10, 8))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -950,7 +950,7 @@

                  Background3D
                  -plot_at_energy(energy=<Quantity 1. TeV>, add_cbar=True, ncols=3, figsize=None, axes_loc=None, kwargs_colorbar=None, **kwargs)#
                  +plot_at_energy(energy=<Quantity 1. TeV>, add_cbar=True, ncols=3, figsize=None, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#

                  Plot the background rate in FoV coordinates at a given energy.

                  Parameters:
                  @@ -1022,7 +1022,7 @@

                  Background3D
                  -to_2d()#
                  +to_2d()[source]#

                  Convert to Background2D.

                  This takes the values at Y = 0 and X >= 0.

                  diff --git a/docs/dev/api/gammapy.irf.BackgroundIRF.html b/docs/dev/api/gammapy.irf.BackgroundIRF.html index 705b5ab3a68..6a1b992a0f6 100644 --- a/docs/dev/api/gammapy.irf.BackgroundIRF.html +++ b/docs/dev/api/gammapy.irf.BackgroundIRF.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  BackgroundIRF#

                  -class gammapy.irf.BackgroundIRF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.BackgroundIRF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: IRF

                  Background IRF base class.

                  @@ -753,7 +753,7 @@

                  BackgroundIRF
                  -classmethod from_table(table, format='gadf-dl3')#
                  +classmethod from_table(table, format='gadf-dl3')[source]#

                  Read from Table.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.EDispKernel.html b/docs/dev/api/gammapy.irf.EDispKernel.html index fe7693cf000..1c03c207007 100644 --- a/docs/dev/api/gammapy.irf.EDispKernel.html +++ b/docs/dev/api/gammapy.irf.EDispKernel.html @@ -70,7 +70,7 @@ - + @@ -517,7 +517,7 @@

                  EDispKernel#

                  -class gammapy.irf.EDispKernel(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.EDispKernel(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: IRF

                  Energy dispersion matrix.

                  Data format specification: RMF.

                  @@ -801,7 +801,7 @@

                  EDispKernel
                  -classmethod from_diagonal_response(energy_axis_true, energy_axis=None)#
                  +classmethod from_diagonal_response(energy_axis_true, energy_axis=None)[source]#

                  Create energy dispersion from a diagonal response, i.e. perfect energy resolution.

                  This creates the matrix corresponding to a perfect energy response. It contains ones where the energy_true center is inside the e_reco bin. @@ -845,7 +845,7 @@

                  EDispKernel
                  -classmethod from_gauss(energy_axis_true, energy_axis, sigma, bias, pdf_threshold=1e-06)#
                  +classmethod from_gauss(energy_axis_true, energy_axis, sigma, bias, pdf_threshold=1e-06)[source]#

                  Create Gaussian energy dispersion matrix (EnergyDispersion).

                  Calls gammapy.irf.EnergyDispersion2D.from_gauss().

                  @@ -874,7 +874,7 @@

                  EDispKernel
                  -classmethod from_hdulist(hdulist, hdu1='MATRIX', hdu2='EBOUNDS')#
                  +classmethod from_hdulist(hdulist, hdu1='MATRIX', hdu2='EBOUNDS')[source]#

                  Create EnergyDispersion object from HDUList.

                  Parameters:
                  @@ -914,7 +914,7 @@

                  EDispKernel
                  -get_bias(energy_true)#
                  +get_bias(energy_true)[source]#

                  Get reconstruction bias for a given true energy.

                  Bias is defined as

                  @@ -931,7 +931,7 @@

                  EDispKernel
                  -get_bias_energy(bias, energy_min=None, energy_max=None)#
                  +get_bias_energy(bias, energy_min=None, energy_max=None)[source]#

                  Find energy corresponding to a given bias.

                  In case the solution is not unique, provide the energy_min or energy_max arguments to limit the solution to the given range. By default, the peak energy of the @@ -958,13 +958,13 @@

                  EDispKernel
                  -get_mean(energy_true)#
                  +get_mean(energy_true)[source]#

                  Get mean reconstructed energy for a given true energy.

                  -get_resolution(energy_true)#
                  +get_resolution(energy_true)[source]#

                  Get energy resolution for a given true energy.

                  The resolution is given as a percentage of the true energy.

                  @@ -1097,7 +1097,7 @@

                  EDispKernel
                  -pdf_in_safe_range(lo_threshold, hi_threshold)#
                  +pdf_in_safe_range(lo_threshold, hi_threshold)[source]#

                  PDF matrix with bins outside threshold set to 0.

                  Parameters:
                  @@ -1113,7 +1113,7 @@

                  EDispKernel
                  -peek(figsize=(15, 5))#
                  +peek(figsize=(15, 5))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -1127,7 +1127,7 @@

                  EDispKernel
                  -plot_bias(ax=None, **kwargs)#
                  +plot_bias(ax=None, **kwargs)[source]#

                  Plot reconstruction bias.

                  See get_bias method.

                  @@ -1150,7 +1150,7 @@

                  EDispKernel
                  -plot_matrix(ax=None, add_cbar=False, axes_loc=None, kwargs_colorbar=None, **kwargs)#
                  +plot_matrix(ax=None, add_cbar=False, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#

                  Plot PDF matrix.

                  Parameters:
                  @@ -1178,7 +1178,7 @@

                  EDispKernel
                  -classmethod read(filename, hdu1='MATRIX', hdu2='EBOUNDS', checksum=False)#
                  +classmethod read(filename, hdu1='MATRIX', hdu2='EBOUNDS', checksum=False)[source]#

                  Read from file.

                  Parameters:
                  @@ -1220,7 +1220,7 @@

                  EDispKernel
                  -to_hdulist(format='ogip', **kwargs)#
                  +to_hdulist(format='ogip', **kwargs)[source]#

                  Convert RMF to FITS HDU list format.

                  Parameters:
                  @@ -1243,7 +1243,7 @@

                  EDispKernel
                  -to_image(lo_threshold=None, hi_threshold=None)#
                  +to_image(lo_threshold=None, hi_threshold=None)[source]#

                  Return a 2D edisp by summing the pdf matrix over the ereco axis.

                  Parameters:
                  @@ -1259,7 +1259,7 @@

                  EDispKernel
                  -to_table(format='ogip')#
                  +to_table(format='ogip')[source]#

                  Convert to Table.

                  The output table is in the OGIP RMF format. https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/memos/cal_gen_92_002/cal_gen_92_002.html#Tab:1 # noqa: E501

                  @@ -1321,7 +1321,7 @@

                  EDispKernel
                  -write(filename, format='ogip', checksum=False, **kwargs)#
                  +write(filename, format='ogip', checksum=False, **kwargs)[source]#

                  Write to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.EDispKernelMap.html b/docs/dev/api/gammapy.irf.EDispKernelMap.html index 0b8e7e86635..33adc1bde2a 100644 --- a/docs/dev/api/gammapy.irf.EDispKernelMap.html +++ b/docs/dev/api/gammapy.irf.EDispKernelMap.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  EDispKernelMap#

                  -class gammapy.irf.EDispKernelMap(edisp_kernel_map, exposure_map=None)#
                  +class gammapy.irf.EDispKernelMap(edisp_kernel_map, exposure_map=None)[source]#

                  Bases: IRFMap

                  Energy dispersion kernel map.

                  @@ -701,7 +701,7 @@

                  EDispKernelMap
                  -classmethod from_diagonal_response(energy_axis, energy_axis_true, geom=None)#
                  +classmethod from_diagonal_response(energy_axis, energy_axis_true, geom=None)[source]#

                  Create an energy dispersion map with diagonal response.

                  Parameters:
                  @@ -726,7 +726,7 @@

                  EDispKernelMap
                  -classmethod from_edisp_kernel(edisp, geom=None)#
                  +classmethod from_edisp_kernel(edisp, geom=None)[source]#

                  Create an energy dispersion map from the input 1D kernel.

                  The kernel will be duplicated over all spatial bins.

                  @@ -750,7 +750,7 @@

                  EDispKernelMap
                  -classmethod from_gauss(energy_axis, energy_axis_true, sigma, bias, pdf_threshold=1e-06, geom=None)#
                  +classmethod from_gauss(energy_axis, energy_axis_true, sigma, bias, pdf_threshold=1e-06, geom=None)[source]#

                  Create an energy dispersion map from the input 1D kernel.

                  The kernel will be duplicated over all spatial bins.

                  @@ -782,7 +782,7 @@

                  EDispKernelMap
                  -classmethod from_geom(geom)#
                  +classmethod from_geom(geom)[source]#

                  Create energy dispersion map from geometry.

                  By default, a diagonal energy dispersion matrix is created.

                  @@ -837,7 +837,7 @@

                  EDispKernelMap
                  -get_edisp_kernel(position=None, energy_axis=None)#
                  +get_edisp_kernel(position=None, energy_axis=None)[source]#

                  Get energy dispersion at a given position.

                  Parameters:
                  @@ -861,7 +861,7 @@

                  EDispKernelMap
                  -peek(figsize=(15, 5))#
                  +peek(figsize=(15, 5))[source]#

                  Quick-look summary plots.

                  Plots corresponding to the center of the map.

                  @@ -902,7 +902,7 @@

                  EDispKernelMap
                  -resample_energy_axis(energy_axis, weights=None)#
                  +resample_energy_axis(energy_axis, weights=None)[source]#

                  Return a resampled EDispKernelMap.

                  Bins are grouped according to the edges of the reconstructed energy axis provided. The true energy is left unchanged.

                  @@ -989,7 +989,7 @@

                  EDispKernelMap
                  -to_image(weights=None)#
                  +to_image(weights=None)[source]#

                  Return a 2D EdispKernelMap by summing over the reconstructed energy axis.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.EDispMap.html b/docs/dev/api/gammapy.irf.EDispMap.html index 3bbf9ec2a2c..70e64f3f95c 100644 --- a/docs/dev/api/gammapy.irf.EDispMap.html +++ b/docs/dev/api/gammapy.irf.EDispMap.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  EDispMap#

                  -class gammapy.irf.EDispMap(edisp_map, exposure_map=None)#
                  +class gammapy.irf.EDispMap(edisp_map, exposure_map=None)[source]#

                  Bases: IRFMap

                  Energy dispersion map.

                  @@ -739,7 +739,7 @@

                  EDispMap
                  -classmethod from_diagonal_response(energy_axis_true, migra_axis=None)#
                  +classmethod from_diagonal_response(energy_axis_true, migra_axis=None)[source]#

                  Create an all-sky EDisp map with diagonal response.

                  Parameters:
                  @@ -761,7 +761,7 @@

                  EDispMap
                  -classmethod from_geom(geom)#
                  +classmethod from_geom(geom)[source]#

                  Create energy dispersion map from geometry.

                  By default, a diagonal energy dispersion matrix is created.

                  @@ -816,7 +816,7 @@

                  EDispMap
                  -get_edisp_kernel(energy_axis, position=None)#
                  +get_edisp_kernel(energy_axis, position=None)[source]#

                  Get energy dispersion at a given position.

                  Parameters:
                  @@ -838,13 +838,13 @@

                  EDispMap
                  -normalize()#
                  +normalize()[source]#

                  Normalize PSF map.

                  -peek(figsize=(15, 5))#
                  +peek(figsize=(15, 5))[source]#

                  Quick-look summary plots.

                  Plots corresponding to the center of the map.

                  @@ -885,7 +885,7 @@

                  EDispMap
                  -sample_coord(map_coord, random_state=0, chunk_size=10000)#
                  +sample_coord(map_coord, random_state=0, chunk_size=10000)[source]#

                  Apply the energy dispersion corrections on the coordinates of a set of simulated events.

                  Parameters:
                  @@ -955,7 +955,7 @@

                  EDispMap
                  -to_edisp_kernel_map(energy_axis)#
                  +to_edisp_kernel_map(energy_axis)[source]#

                  Convert to map with energy dispersion kernels.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.EffectiveAreaTable2D.html b/docs/dev/api/gammapy.irf.EffectiveAreaTable2D.html index 15cd181cf85..6dcdd238f15 100644 --- a/docs/dev/api/gammapy.irf.EffectiveAreaTable2D.html +++ b/docs/dev/api/gammapy.irf.EffectiveAreaTable2D.html @@ -70,7 +70,7 @@ - + @@ -517,7 +517,7 @@

                  EffectiveAreaTable2D#

                  -class gammapy.irf.EffectiveAreaTable2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.EffectiveAreaTable2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: IRF

                  2D effective area table.

                  Data format specification: AEFF_2D.

                  @@ -816,7 +816,7 @@

                  EffectiveAreaTable2D
                  -classmethod from_parametrization(energy_axis_true=None, instrument='HESS')#
                  +classmethod from_parametrization(energy_axis_true=None, instrument='HESS')[source]#

                  Create parametrized effective area.

                  Parametrizations of the effective areas of different Cherenkov telescopes taken from Appendix B of Abramowski et al. (2010), see @@ -986,7 +986,7 @@

                  EffectiveAreaTable2D
                  -peek(figsize=(15, 5))#
                  +peek(figsize=(15, 5))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -1000,7 +1000,7 @@

                  EffectiveAreaTable2D
                  -plot(ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs)#
                  +plot(ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#

                  Plot effective area image.

                  Parameters:
                  @@ -1028,7 +1028,7 @@

                  EffectiveAreaTable2D
                  -plot_energy_dependence(ax=None, offset=None, **kwargs)#
                  +plot_energy_dependence(ax=None, offset=None, **kwargs)[source]#

                  Plot effective area versus energy for a given offset.

                  Parameters:
                  @@ -1052,7 +1052,7 @@

                  EffectiveAreaTable2D
                  -plot_offset_dependence(ax=None, energy=None, **kwargs)#
                  +plot_offset_dependence(ax=None, energy=None, **kwargs)[source]#

                  Plot effective area versus offset for a given energy.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.EnergyDependentMultiGaussPSF.html b/docs/dev/api/gammapy.irf.EnergyDependentMultiGaussPSF.html index 3c2d0a75848..f0cecc38132 100644 --- a/docs/dev/api/gammapy.irf.EnergyDependentMultiGaussPSF.html +++ b/docs/dev/api/gammapy.irf.EnergyDependentMultiGaussPSF.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  EnergyDependentMultiGaussPSF#

                  -class gammapy.irf.EnergyDependentMultiGaussPSF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.EnergyDependentMultiGaussPSF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: ParametricPSF

                  Triple Gauss analytical PSF depending on true energy and offset.

                  @@ -836,7 +836,7 @@

                  EnergyDependentMultiGaussPSF
                  -static evaluate_containment(rad, **kwargs)#
                  +static evaluate_containment(rad, **kwargs)[source]#

                  Containment of the PSF at given axes coordinates.

                  Parameters:
                  @@ -858,7 +858,7 @@

                  EnergyDependentMultiGaussPSF
                  -static evaluate_direct(rad, **kwargs)#
                  +static evaluate_direct(rad, **kwargs)[source]#

                  Evaluate PSF model.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.EnergyDispersion2D.html b/docs/dev/api/gammapy.irf.EnergyDispersion2D.html index 4849f094ec8..7d330ba6151 100644 --- a/docs/dev/api/gammapy.irf.EnergyDispersion2D.html +++ b/docs/dev/api/gammapy.irf.EnergyDispersion2D.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  EnergyDispersion2D#

                  -class gammapy.irf.EnergyDispersion2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.EnergyDispersion2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: IRF

                  Offset-dependent energy dispersion matrix.

                  Data format specification: EDISP_2D

                  @@ -784,7 +784,7 @@

                  EnergyDispersion2D
                  -classmethod from_gauss(energy_axis_true, migra_axis, offset_axis, bias, sigma, pdf_threshold=1e-06)#
                  +classmethod from_gauss(energy_axis_true, migra_axis, offset_axis, bias, sigma, pdf_threshold=1e-06)[source]#

                  Create Gaussian energy dispersion matrix (EnergyDispersion2D).

                  The output matrix will be Gaussian in (energy_true / energy).

                  The bias and sigma should be either floats or arrays of same dimension than @@ -939,7 +939,7 @@

                  EnergyDispersion2D
                  -normalize()#
                  +normalize()[source]#

                  Normalise energy dispersion.

                  @@ -969,7 +969,7 @@

                  EnergyDispersion2D
                  -peek(figsize=(15, 5))#
                  +peek(figsize=(15, 5))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -983,7 +983,7 @@

                  EnergyDispersion2D
                  -plot_bias(ax=None, offset=None, add_cbar=False, axes_loc=None, kwargs_colorbar=None, **kwargs)#
                  +plot_bias(ax=None, offset=None, add_cbar=False, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#

                  Plot migration as a function of true energy for a given offset.

                  Parameters:
                  @@ -1013,7 +1013,7 @@

                  EnergyDispersion2D
                  -plot_migration(ax=None, offset=None, energy_true=None, **kwargs)#
                  +plot_migration(ax=None, offset=None, energy_true=None, **kwargs)[source]#

                  Plot energy dispersion for given offset and true energy.

                  Parameters:
                  @@ -1085,7 +1085,7 @@

                  EnergyDispersion2D
                  -to_edisp_kernel(offset, energy_axis_true=None, energy_axis=None)#
                  +to_edisp_kernel(offset, energy_axis_true=None, energy_axis=None)[source]#

                  Detector response R(Delta E_reco, Delta E_true).

                  Probability to reconstruct an energy in a given true energy band in a given reconstructed energy band.

                  diff --git a/docs/dev/api/gammapy.irf.FoVAlignment.html b/docs/dev/api/gammapy.irf.FoVAlignment.html index c26658ffbc8..7f7931ee257 100644 --- a/docs/dev/api/gammapy.irf.FoVAlignment.html +++ b/docs/dev/api/gammapy.irf.FoVAlignment.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  FoVAlignment#

                  -class gammapy.irf.FoVAlignment(value)#
                  +class gammapy.irf.FoVAlignment(value)[source]#

                  Bases: str, Enum

                  Orientation of the Field of View Coordinate System.

                  Currently, only two possible alignments are supported: alignment with diff --git a/docs/dev/api/gammapy.irf.IRF.html b/docs/dev/api/gammapy.irf.IRF.html index 17788c5fda5..499c56ff5a4 100644 --- a/docs/dev/api/gammapy.irf.IRF.html +++ b/docs/dev/api/gammapy.irf.IRF.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  IRF#

                  -class gammapy.irf.IRF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.IRF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: object

                  IRF base class for DL3 instrument response functions.

                  @@ -694,7 +694,7 @@

                  IRF#

                  Methods Documentation

                  -cumsum(axis_name)#
                  +cumsum(axis_name)[source]#

                  Compute cumsum along a given axis.

                  Parameters:
                  @@ -714,7 +714,7 @@

                  IRF#

                  -evaluate(method=None, **kwargs)#
                  +evaluate(method=None, **kwargs)[source]#

                  Evaluate IRF.

                  Parameters:
                  @@ -736,7 +736,7 @@

                  IRF#

                  -classmethod from_hdulist(hdulist, hdu=None, format='gadf-dl3')#
                  +classmethod from_hdulist(hdulist, hdu=None, format='gadf-dl3')[source]#

                  Create from HDUList.

                  Parameters:
                  @@ -760,7 +760,7 @@

                  IRF#

                  -classmethod from_table(table, format='gadf-dl3')#
                  +classmethod from_table(table, format='gadf-dl3')[source]#

                  Read from Table.

                  Parameters:
                  @@ -782,7 +782,7 @@

                  IRF#

                  -integral(axis_name, **kwargs)#
                  +integral(axis_name, **kwargs)[source]#

                  Compute integral along a given axis.

                  This method uses interpolation of the cumulative sum.

                  @@ -805,7 +805,7 @@

                  IRF#

                  -integrate_log_log(axis_name, **kwargs)#
                  +integrate_log_log(axis_name, **kwargs)[source]#

                  Integrate along a given axis.

                  This method uses log-log trapezoidal integration.

                  @@ -828,13 +828,13 @@

                  IRF#

                  -interp_missing_data(axis_name)#
                  +interp_missing_data(axis_name)[source]#

                  Interpolate missing data along a given axis.

                  -is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)#
                  +is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)[source]#

                  Compare two data IRFs for equivalency.

                  Parameters:
                  @@ -862,7 +862,7 @@

                  IRF#

                  -normalize(axis_name)#
                  +normalize(axis_name)[source]#

                  Normalise data in place along a given axis.

                  Parameters:
                  @@ -876,7 +876,7 @@

                  IRF#

                  -pad(pad_width, axis_name, **kwargs)#
                  +pad(pad_width, axis_name, **kwargs)[source]#

                  Pad IRF along a given axis.

                  Parameters:
                  @@ -900,7 +900,7 @@

                  IRF#

                  -classmethod read(filename, hdu=None, format='gadf-dl3')#
                  +classmethod read(filename, hdu=None, format='gadf-dl3')[source]#

                  Read from file.

                  Parameters:
                  @@ -924,7 +924,7 @@

                  IRF#

                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Slice sub IRF from IRF object.

                  Parameters:
                  @@ -946,7 +946,7 @@

                  IRF#

                  -to_hdulist(format='gadf-dl3')#
                  +to_hdulist(format='gadf-dl3')[source]#

                  Write the HDU list.

                  Parameters:
                  @@ -960,7 +960,7 @@

                  IRF#

                  -to_table(format='gadf-dl3')#
                  +to_table(format='gadf-dl3')[source]#

                  Convert to table.

                  Parameters:
                  @@ -980,7 +980,7 @@

                  IRF#

                  -to_table_hdu(format='gadf-dl3')#
                  +to_table_hdu(format='gadf-dl3')[source]#

                  Convert to BinTableHDU.

                  Parameters:
                  @@ -1000,7 +1000,7 @@

                  IRF#

                  -to_unit(unit)#
                  +to_unit(unit)[source]#

                  Convert IRF to different unit.

                  Parameters:
                  @@ -1020,7 +1020,7 @@

                  IRF#

                  -write(filename, *args, **kwargs)#
                  +write(filename, *args, **kwargs)[source]#

                  Write IRF to fits.

                  Calls writeto, forwarding all arguments.

                  diff --git a/docs/dev/api/gammapy.irf.IRFMap.html b/docs/dev/api/gammapy.irf.IRFMap.html index f3b4bfa1126..09eed4205de 100644 --- a/docs/dev/api/gammapy.irf.IRFMap.html +++ b/docs/dev/api/gammapy.irf.IRFMap.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  IRFMap#

                  -class gammapy.irf.IRFMap(irf_map, exposure_map)#
                  +class gammapy.irf.IRFMap(irf_map, exposure_map)[source]#

                  Bases: object

                  IRF map base class for DL4 instrument response functions.

                  Attributes Summary

                  @@ -598,13 +598,13 @@

                  IRFMap#Methods Documentation

                  -copy()#
                  +copy()[source]#

                  Copy IRF map.

                  -cutout(position, width, mode='trim', min_npix=3)#
                  +cutout(position, width, mode='trim', min_npix=3)[source]#

                  Cutout IRF map.

                  Parameters:
                  @@ -634,7 +634,7 @@

                  IRFMap#
                  -downsample(factor, axis_name=None, weights=None)#
                  +downsample(factor, axis_name=None, weights=None)[source]#

                  Downsample the spatial dimension by a given factor.

                  Parameters:
                  @@ -658,7 +658,7 @@

                  IRFMap#
                  -classmethod from_hdulist(hdulist, hdu=None, hdu_bands=None, exposure_hdu=None, exposure_hdu_bands=None, format='gadf')#
                  +classmethod from_hdulist(hdulist, hdu=None, hdu_bands=None, exposure_hdu=None, exposure_hdu_bands=None, format='gadf')[source]#

                  Create from HDUList.

                  Parameters:
                  @@ -692,7 +692,7 @@

                  IRFMap#
                  -classmethod read(filename, format='gadf', hdu=None, checksum=False)#
                  +classmethod read(filename, format='gadf', hdu=None, checksum=False)[source]#

                  Read an IRF_map from file and create corresponding object.

                  Parameters:
                  @@ -718,7 +718,7 @@

                  IRFMap#
                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Slice sub dataset.

                  The slicing only applies to the maps that define the corresponding axes.

                  @@ -742,7 +742,7 @@

                  IRFMap#
                  -stack(other, weights=None, nan_to_num=True)#
                  +stack(other, weights=None, nan_to_num=True)[source]#

                  Stack IRF map with another one in place.

                  Parameters:
                  @@ -761,7 +761,7 @@

                  IRFMap#
                  -to_hdulist(format='gadf')#
                  +to_hdulist(format='gadf')[source]#

                  Convert to HDUList.

                  Parameters:
                  @@ -781,7 +781,7 @@

                  IRFMap#
                  -to_region_nd_map(region)#
                  +to_region_nd_map(region)[source]#

                  Extract IRFMap in a given region or position.

                  If a region is given a mean IRF is computed, if a position is given the IRF is interpolated.

                  @@ -803,7 +803,7 @@

                  IRFMap#
                  -write(filename, overwrite=False, format='gadf', checksum=False)#
                  +write(filename, overwrite=False, format='gadf', checksum=False)[source]#

                  Write IRF map to fits.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.IRF_REGISTRY.html b/docs/dev/api/gammapy.irf.IRF_REGISTRY.html index da4d95a8be9..35fdfbe4d66 100644 --- a/docs/dev/api/gammapy.irf.IRF_REGISTRY.html +++ b/docs/dev/api/gammapy.irf.IRF_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.irf.PSF3D.html b/docs/dev/api/gammapy.irf.PSF3D.html index f9775dd9d88..412e8974402 100644 --- a/docs/dev/api/gammapy.irf.PSF3D.html +++ b/docs/dev/api/gammapy.irf.PSF3D.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  PSF3D#

                  -class gammapy.irf.PSF3D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.PSF3D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: PSF

                  PSF with axes: energy, offset, rad.

                  Data format specification: PSF_TABLE

                  diff --git a/docs/dev/api/gammapy.irf.PSFKernel.html b/docs/dev/api/gammapy.irf.PSFKernel.html index 32836ba82f9..02b8d3010e1 100644 --- a/docs/dev/api/gammapy.irf.PSFKernel.html +++ b/docs/dev/api/gammapy.irf.PSFKernel.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  PSFKernel#

                  -class gammapy.irf.PSFKernel(psf_kernel_map, normalize=True)#
                  +class gammapy.irf.PSFKernel(psf_kernel_map, normalize=True)[source]#

                  Bases: object

                  PSF kernel for Map.

                  This is a container class to store a PSF kernel @@ -620,7 +620,7 @@

                  PSFKernelMethods Documentation

                  -classmethod from_gauss(geom, sigma, max_radius=None, factor=4)#
                  +classmethod from_gauss(geom, sigma, max_radius=None, factor=4)[source]#

                  Create Gaussian PSF.

                  This is used for testing and examples. The map geometry parameters (pixel size, energy bins) are taken from geom. @@ -650,7 +650,7 @@

                  PSFKernel
                  -classmethod from_spatial_model(model, geom, max_radius=None, factor=4)#
                  +classmethod from_spatial_model(model, geom, max_radius=None, factor=4)[source]#

                  Create PSF kernel from spatial model.

                  Parameters:
                  @@ -676,13 +676,13 @@

                  PSFKernel
                  -normalize()#
                  +normalize()[source]#

                  Force normalisation of the kernel.

                  -peek(figsize=(15, 5))#
                  +peek(figsize=(15, 5))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -696,7 +696,7 @@

                  PSFKernel
                  -plot_kernel(ax=None, energy=None, add_cbar=False, **kwargs)#
                  +plot_kernel(ax=None, energy=None, add_cbar=False, **kwargs)[source]#

                  Plot PSF kernel.

                  Parameters:
                  @@ -723,19 +723,19 @@

                  PSFKernel
                  -classmethod read(*args, **kwargs)#
                  +classmethod read(*args, **kwargs)[source]#

                  Read kernel Map from file.

                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Slice by index.

                  -to_image(spectral_model=None, exposure=None, keepdims=True)#
                  +to_image(spectral_model=None, exposure=None, keepdims=True)[source]#

                  Transform 3D PSFKernel into a 2D PSFKernel.

                  Parameters:
                  @@ -763,7 +763,7 @@

                  PSFKernel
                  -write(*args, **kwargs)#
                  +write(*args, **kwargs)[source]#

                  Write the Map object which contains the PSF kernel to file.

                  diff --git a/docs/dev/api/gammapy.irf.PSFKing.html b/docs/dev/api/gammapy.irf.PSFKing.html index 5d21a22c131..2bcab33f69e 100644 --- a/docs/dev/api/gammapy.irf.PSFKing.html +++ b/docs/dev/api/gammapy.irf.PSFKing.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  PSFKing#

                  -class gammapy.irf.PSFKing(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.PSFKing(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: ParametricPSF

                  King profile analytical PSF depending on energy and offset.

                  This PSF parametrisation and FITS data format is described here: PSF_KING.

                  @@ -814,7 +814,7 @@

                  PSFKing#<
                  -static evaluate_containment(rad, gamma, sigma)#
                  +static evaluate_containment(rad, gamma, sigma)[source]#

                  Containment of the PSF at given axes coordinates.

                  Parameters:
                  @@ -838,7 +838,7 @@

                  PSFKing#<
                  -static evaluate_direct(rad, gamma, sigma)#
                  +static evaluate_direct(rad, gamma, sigma)[source]#

                  Evaluate the PSF model.

                  Formula is given here: PSF_KING.

                  diff --git a/docs/dev/api/gammapy.irf.PSFMap.html b/docs/dev/api/gammapy.irf.PSFMap.html index 8b07836bafb..8ddba8d9d66 100644 --- a/docs/dev/api/gammapy.irf.PSFMap.html +++ b/docs/dev/api/gammapy.irf.PSFMap.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  PSFMap#

                  -class gammapy.irf.PSFMap(psf_map, exposure_map=None)#
                  +class gammapy.irf.PSFMap(psf_map, exposure_map=None)[source]#

                  Bases: IRFMap

                  Class containing the Map of PSFs and allowing to interact with it.

                  @@ -696,7 +696,7 @@

                  PSFMap#Methods Documentation

                  -containment(rad, energy_true, position=None)#
                  +containment(rad, energy_true, position=None)[source]#

                  Containment at given coordinates.

                  Parameters:
                  @@ -721,7 +721,7 @@

                  PSFMap#
                  -containment_radius(fraction, energy_true, position=None)#
                  +containment_radius(fraction, energy_true, position=None)[source]#

                  Containment at given coordinates.

                  Parameters:
                  @@ -746,7 +746,7 @@

                  PSFMap#
                  -containment_radius_map(energy_true, fraction=0.68)#
                  +containment_radius_map(energy_true, fraction=0.68)[source]#

                  Containment radius map.

                  Parameters:
                  @@ -829,7 +829,7 @@

                  PSFMap#
                  -classmethod from_gauss(energy_axis_true, rad_axis=None, sigma=<Quantity 0.1 deg>, geom=None)#
                  +classmethod from_gauss(energy_axis_true, rad_axis=None, sigma=<Quantity 0.1 deg>, geom=None)[source]#

                  Create all-sky PSF map from Gaussian width.

                  This is used for testing and examples.

                  The width can be the same for all energies @@ -859,7 +859,7 @@

                  PSFMap#
                  -classmethod from_geom(geom)#
                  +classmethod from_geom(geom)[source]#

                  Create PSF map from geometry.

                  Parameters:
                  @@ -913,7 +913,7 @@

                  PSFMap#
                  -get_psf_kernel(geom, position=None, max_radius=None, containment=0.999, precision_factor=12)#
                  +get_psf_kernel(geom, position=None, max_radius=None, containment=0.999, precision_factor=12)[source]#

                  Return a PSF kernel at the given position.

                  The PSF is returned in the form a WcsNDMap defined by the input Geom.

                  @@ -947,13 +947,13 @@

                  PSFMap#
                  -normalize()#
                  +normalize()[source]#

                  Normalize PSF map.

                  -peek(figsize=(12, 10))#
                  +peek(figsize=(12, 10))[source]#

                  Quick-look summary plots.

                  Parameters:
                  @@ -967,7 +967,7 @@

                  PSFMap#
                  -plot_containment_radius_vs_energy(ax=None, fraction=(0.68, 0.95), **kwargs)#
                  +plot_containment_radius_vs_energy(ax=None, fraction=(0.68, 0.95), **kwargs)[source]#

                  Plot containment fraction as a function of energy.

                  The method plots the containment radius at the center of the map.

                  @@ -992,7 +992,7 @@

                  PSFMap#
                  -plot_psf_vs_rad(ax=None, energy_true=<Quantity [ 0.1, 1., 10. ] TeV>, **kwargs)#
                  +plot_psf_vs_rad(ax=None, energy_true=<Quantity [ 0.1, 1., 10. ] TeV>, **kwargs)[source]#

                  Plot PSF vs radius.

                  The method plots the profile at the center of the map.

                  @@ -1043,7 +1043,7 @@

                  PSFMap#
                  -sample_coord(map_coord, random_state=0, chunk_size=10000)#
                  +sample_coord(map_coord, random_state=0, chunk_size=10000)[source]#

                  Apply PSF corrections on the coordinates of a set of simulated events.

                  Parameters:
                  @@ -1132,7 +1132,7 @@

                  PSFMap#
                  -to_image(spectral_model=None, keepdims=True)#
                  +to_image(spectral_model=None, keepdims=True)[source]#

                  Reduce to a 2D map after weighing with the associated exposure and a spectrum.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.ParametricPSF.html b/docs/dev/api/gammapy.irf.ParametricPSF.html index f806e957a6b..080b2a19987 100644 --- a/docs/dev/api/gammapy.irf.ParametricPSF.html +++ b/docs/dev/api/gammapy.irf.ParametricPSF.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  ParametricPSF#

                  -class gammapy.irf.ParametricPSF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.ParametricPSF(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: PSF

                  Parametric PSF base class.

                  @@ -727,7 +727,7 @@

                  ParametricPSFMethods Documentation

                  -containment(rad, **kwargs)#
                  +containment(rad, **kwargs)[source]#

                  Containment of the PSF at given axes coordinates.

                  Parameters:
                  @@ -795,7 +795,7 @@

                  ParametricPSF
                  -evaluate(rad, **kwargs)#
                  +evaluate(rad, **kwargs)[source]#

                  Evaluate the PSF model.

                  Parameters:
                  @@ -817,17 +817,17 @@

                  ParametricPSF
                  -abstract evaluate_containment(rad, **kwargs)#
                  +abstract evaluate_containment(rad, **kwargs)[source]#

                  -abstract evaluate_direct(rad, **kwargs)#
                  +abstract evaluate_direct(rad, **kwargs)[source]#
                  -evaluate_parameters(energy_true, offset)#
                  +evaluate_parameters(energy_true, offset)[source]#

                  Evaluate analytic PSF parameters at a given energy and offset.

                  Uses nearest-neighbor interpolation.

                  @@ -874,7 +874,7 @@

                  ParametricPSF
                  -classmethod from_table(table, format='gadf-dl3')#
                  +classmethod from_table(table, format='gadf-dl3')[source]#

                  Create parametric PSF from Table.

                  Parameters:
                  @@ -977,7 +977,7 @@

                  ParametricPSF
                  -is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)#
                  +is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)[source]#

                  Compare two data IRFs for equivalency.

                  Parameters:
                  @@ -1003,7 +1003,7 @@

                  ParametricPSF
                  -normalize()#
                  +normalize()[source]#

                  Normalize parametric PSF.

                  @@ -1188,7 +1188,7 @@

                  ParametricPSF
                  -to_psf3d(rad=None)#
                  +to_psf3d(rad=None)[source]#

                  Create a PSF3D from a parametric PSF.

                  It will be defined on the same energy and offset values than the input PSF.

                  @@ -1209,7 +1209,7 @@

                  ParametricPSF
                  -to_table(format='gadf-dl3')#
                  +to_table(format='gadf-dl3')[source]#

                  Convert PSF table data to table.

                  Parameters:
                  @@ -1249,7 +1249,7 @@

                  ParametricPSF
                  -to_unit(unit)#
                  +to_unit(unit)[source]#

                  Convert IRF to unit.

                  diff --git a/docs/dev/api/gammapy.irf.RadMax2D.html b/docs/dev/api/gammapy.irf.RadMax2D.html index 3aa1cea04cb..c6a00fe4698 100644 --- a/docs/dev/api/gammapy.irf.RadMax2D.html +++ b/docs/dev/api/gammapy.irf.RadMax2D.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  RadMax2D#

                  -class gammapy.irf.RadMax2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
                  +class gammapy.irf.RadMax2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

                  Bases: IRF

                  2D Rad Max table.

                  This is not directly a IRF component but is needed as additional information @@ -783,7 +783,7 @@

                  RadMax2D
                  -classmethod from_irf(irf)#
                  +classmethod from_irf(irf)[source]#

                  Create a RadMax2D instance from another IRF component.

                  This reads the RAD_MAX metadata keyword from the IRF and creates a RadMax2D with a single bin in energy and offset using the @@ -950,7 +950,7 @@

                  RadMax2D
                  -plot_rad_max_vs_energy(ax=None, **kwargs)#
                  +plot_rad_max_vs_energy(ax=None, **kwargs)[source]#

                  Plot rad max value against energy.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.irf.RecoPSFMap.html b/docs/dev/api/gammapy.irf.RecoPSFMap.html index f66b4d1e1a6..986f309d785 100644 --- a/docs/dev/api/gammapy.irf.RecoPSFMap.html +++ b/docs/dev/api/gammapy.irf.RecoPSFMap.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  RecoPSFMap#

                  -class gammapy.irf.RecoPSFMap(psf_map, exposure_map=None)#
                  +class gammapy.irf.RecoPSFMap(psf_map, exposure_map=None)[source]#

                  Bases: PSFMap

                  Class containing the Map of PSFs in reconstructed energy and allowing to interact with it.

                  @@ -661,7 +661,7 @@

                  RecoPSFMapMethods Documentation

                  -containment(rad, energy, position=None)#
                  +containment(rad, energy, position=None)[source]#

                  Containment at given coordinates.

                  Parameters:
                  @@ -685,7 +685,7 @@

                  RecoPSFMap
                  -containment_radius(fraction, energy, position=None)#
                  +containment_radius(fraction, energy, position=None)[source]#

                  Containment at given coordinates.

                  Parameters:
                  @@ -709,7 +709,7 @@

                  RecoPSFMap
                  -containment_radius_map(energy, fraction=0.68)#
                  +containment_radius_map(energy, fraction=0.68)[source]#

                  Containment radius map.

                  Parameters:
                  @@ -792,7 +792,7 @@

                  RecoPSFMap
                  -classmethod from_gauss(energy_axis, rad_axis=None, sigma=<Quantity 0.1 deg>, geom=None)#
                  +classmethod from_gauss(energy_axis, rad_axis=None, sigma=<Quantity 0.1 deg>, geom=None)[source]#

                  Create all -sky PSF map from Gaussian width.

                  This is used for testing and examples.

                  The width can be the same for all energies @@ -955,7 +955,7 @@

                  RecoPSFMap
                  -plot_psf_vs_rad(ax=None, energy=<Quantity [ 0.1, 1., 10. ] TeV>, **kwargs)#
                  +plot_psf_vs_rad(ax=None, energy=<Quantity [ 0.1, 1., 10. ] TeV>, **kwargs)[source]#

                  Plot PSF vs radius.

                  The method plots the profile at the center of the map.

                  @@ -1056,7 +1056,7 @@

                  RecoPSFMap
                  -stack(other, weights=None, nan_to_num=True)#
                  +stack(other, weights=None, nan_to_num=True)[source]#

                  Stack IRF map with another one in place.

                  diff --git a/docs/dev/api/gammapy.irf.load_irf_dict_from_file.html b/docs/dev/api/gammapy.irf.load_irf_dict_from_file.html index 797d934e390..e4c5be74a67 100644 --- a/docs/dev/api/gammapy.irf.load_irf_dict_from_file.html +++ b/docs/dev/api/gammapy.irf.load_irf_dict_from_file.html @@ -69,7 +69,7 @@ - + @@ -516,7 +516,7 @@

                  load_irf_dict_from_file#

                  -gammapy.irf.load_irf_dict_from_file(filename)#
                  +gammapy.irf.load_irf_dict_from_file(filename)[source]#

                  Load all available IRF components from given file into a dictionary.

                  If multiple IRFs of the same type are present, the first encountered is returned.

                  diff --git a/docs/dev/api/gammapy.makers.AdaptiveRingBackgroundMaker.html b/docs/dev/api/gammapy.makers.AdaptiveRingBackgroundMaker.html index 41f74bcb086..3f487d54b60 100644 --- a/docs/dev/api/gammapy.makers.AdaptiveRingBackgroundMaker.html +++ b/docs/dev/api/gammapy.makers.AdaptiveRingBackgroundMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  AdaptiveRingBackgroundMaker#

                  -class gammapy.makers.AdaptiveRingBackgroundMaker(r_in, r_out_max, width, stepsize='0.02 deg', threshold_alpha=0.1, theta='0.22 deg', method='fixed_width', exclusion_mask=None)#
                  +class gammapy.makers.AdaptiveRingBackgroundMaker(r_in, r_out_max, width, stepsize='0.02 deg', threshold_alpha=0.1, theta='0.22 deg', method='fixed_width', exclusion_mask=None)[source]#

                  Bases: Maker

                  Adaptive ring background algorithm.

                  This algorithm extends the RingBackgroundMaker method by adapting the size @@ -585,7 +585,7 @@

                  AdaptiveRingBackgroundMakerMethods Documentation

                  -kernels(image)#
                  +kernels(image)[source]#

                  Ring kernels according to the specified method.

                  Parameters:
                  @@ -605,7 +605,7 @@

                  AdaptiveRingBackgroundMaker
                  -make_cubes(dataset)#
                  +make_cubes(dataset)[source]#

                  Make acceptance, off acceptance, off counts cubes.

                  Parameters:
                  @@ -625,7 +625,7 @@

                  AdaptiveRingBackgroundMaker
                  -run(dataset, observation=None)#
                  +run(dataset, observation=None)[source]#

                  Run adaptive ring background maker.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.DatasetsMaker.html b/docs/dev/api/gammapy.makers.DatasetsMaker.html index 9a8a0733340..5872888e41f 100644 --- a/docs/dev/api/gammapy.makers.DatasetsMaker.html +++ b/docs/dev/api/gammapy.makers.DatasetsMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  DatasetsMaker#

                  -class gammapy.makers.DatasetsMaker(makers, stack_datasets=True, n_jobs=None, cutout_mode='trim', cutout_width=None, parallel_backend=None)#
                  +class gammapy.makers.DatasetsMaker(makers, stack_datasets=True, n_jobs=None, cutout_mode='trim', cutout_width=None, parallel_backend=None)[source]#

                  Bases: Maker, ParallelMixin

                  Run makers in a chain.

                  @@ -618,17 +618,17 @@

                  DatasetsMakerMethods Documentation

                  -callback(dataset)#
                  +callback(dataset)[source]#
                  -error_callback(dataset)#
                  +error_callback(dataset)[source]#
                  -make_dataset(dataset, observation)#
                  +make_dataset(dataset, observation)[source]#

                  Make single dataset.

                  Parameters:
                  @@ -644,7 +644,7 @@

                  DatasetsMaker
                  -run(dataset, observations, datasets=None)#
                  +run(dataset, observations, datasets=None)[source]#

                  Run data reduction.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.FoVBackgroundMaker.html b/docs/dev/api/gammapy.makers.FoVBackgroundMaker.html index cf0a35d13a9..d531a2e5dd3 100644 --- a/docs/dev/api/gammapy.makers.FoVBackgroundMaker.html +++ b/docs/dev/api/gammapy.makers.FoVBackgroundMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  FoVBackgroundMaker#

                  -class gammapy.makers.FoVBackgroundMaker(method='scale', exclusion_mask=None, spectral_model='pl-norm', min_counts=0, min_npred_background=0, fit=None)#
                  +class gammapy.makers.FoVBackgroundMaker(method='scale', exclusion_mask=None, spectral_model='pl-norm', min_counts=0, min_npred_background=0, fit=None)[source]#

                  Bases: Maker

                  Normalize template background on the whole field-of-view.

                  The dataset background model can be simply scaled (method=”scale”) or fitted @@ -604,7 +604,7 @@

                  FoVBackgroundMakerMethods Documentation

                  -make_background_fit(dataset)#
                  +make_background_fit(dataset)[source]#

                  Fit the FoV background model on the dataset counts data.

                  Parameters:
                  @@ -624,7 +624,7 @@

                  FoVBackgroundMaker
                  -make_background_scale(dataset)#
                  +make_background_scale(dataset)[source]#

                  Fit the FoV background model on the dataset counts data.

                  Parameters:
                  @@ -644,7 +644,7 @@

                  FoVBackgroundMaker
                  -make_default_fov_background_model(dataset)#
                  +make_default_fov_background_model(dataset)[source]#

                  Add FoV background model to the model definition.

                  Parameters:
                  @@ -664,7 +664,7 @@

                  FoVBackgroundMaker
                  -make_exclusion_mask(dataset)#
                  +make_exclusion_mask(dataset)[source]#

                  Project input exclusion mask to dataset geometry.

                  Parameters:
                  @@ -684,7 +684,7 @@

                  FoVBackgroundMaker
                  -run(dataset, observation=None)#
                  +run(dataset, observation=None)[source]#

                  Run FoV background maker.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.MAKER_REGISTRY.html b/docs/dev/api/gammapy.makers.MAKER_REGISTRY.html index e8867ad1c79..684b2f81394 100644 --- a/docs/dev/api/gammapy.makers.MAKER_REGISTRY.html +++ b/docs/dev/api/gammapy.makers.MAKER_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.makers.Maker.html b/docs/dev/api/gammapy.makers.Maker.html index d4e5de75587..ebfd775ffb4 100644 --- a/docs/dev/api/gammapy.makers.Maker.html +++ b/docs/dev/api/gammapy.makers.Maker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  Maker#

                  -class gammapy.makers.Maker#
                  +class gammapy.makers.Maker[source]#

                  Bases: ABC

                  Abstract maker base class.

                  Attributes Summary

                  @@ -548,7 +548,7 @@

                  Maker#<

                  Methods Documentation

                  -abstract run()#
                  +abstract run()[source]#

                  diff --git a/docs/dev/api/gammapy.makers.MapDatasetMaker.html b/docs/dev/api/gammapy.makers.MapDatasetMaker.html index a734c18f4eb..43892dd4c4c 100644 --- a/docs/dev/api/gammapy.makers.MapDatasetMaker.html +++ b/docs/dev/api/gammapy.makers.MapDatasetMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  MapDatasetMaker#

                  -class gammapy.makers.MapDatasetMaker(selection=None, background_oversampling=None, background_interp_missing_data=True, background_pad_offset=True)#
                  +class gammapy.makers.MapDatasetMaker(selection=None, background_oversampling=None, background_interp_missing_data=True, background_pad_offset=True)[source]#

                  Bases: Maker

                  Make binned maps for a single IACT observation.

                  @@ -657,7 +657,7 @@

                  MapDatasetMakerMethods Documentation

                  -make_background(geom, observation)#
                  +make_background(geom, observation)[source]#

                  Make background map.

                  Parameters:
                  @@ -679,7 +679,7 @@

                  MapDatasetMaker
                  -static make_counts(geom, observation)#
                  +static make_counts(geom, observation)[source]#

                  Make counts map.

                  Parameters:
                  @@ -701,7 +701,7 @@

                  MapDatasetMaker
                  -make_edisp(geom, observation)#
                  +make_edisp(geom, observation)[source]#

                  Make energy dispersion map.

                  Parameters:
                  @@ -723,7 +723,7 @@

                  MapDatasetMaker
                  -make_edisp_kernel(geom, observation)#
                  +make_edisp_kernel(geom, observation)[source]#

                  Make energy dispersion kernel map.

                  Parameters:
                  @@ -745,7 +745,7 @@

                  MapDatasetMaker
                  -static make_exposure(geom, observation, use_region_center=True)#
                  +static make_exposure(geom, observation, use_region_center=True)[source]#

                  Make exposure map.

                  Parameters:
                  @@ -771,7 +771,7 @@

                  MapDatasetMaker
                  -static make_exposure_irf(geom, observation, use_region_center=True)#
                  +static make_exposure_irf(geom, observation, use_region_center=True)[source]#

                  Make exposure map with IRF geometry.

                  Parameters:
                  @@ -797,7 +797,7 @@

                  MapDatasetMaker
                  -static make_meta_table(observation)#
                  +static make_meta_table(observation)[source]#

                  Make information meta table.

                  Parameters:
                  @@ -817,7 +817,7 @@

                  MapDatasetMaker
                  -make_psf(geom, observation)#
                  +make_psf(geom, observation)[source]#

                  Make PSF map.

                  Parameters:
                  @@ -839,7 +839,7 @@

                  MapDatasetMaker
                  -run(dataset, observation)#
                  +run(dataset, observation)[source]#

                  Make map dataset.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.PhaseBackgroundMaker.html b/docs/dev/api/gammapy.makers.PhaseBackgroundMaker.html index d029129482f..99ebf9ac8a7 100644 --- a/docs/dev/api/gammapy.makers.PhaseBackgroundMaker.html +++ b/docs/dev/api/gammapy.makers.PhaseBackgroundMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  PhaseBackgroundMaker#

                  -class gammapy.makers.PhaseBackgroundMaker(on_phase, off_phase, phase_column_name='PHASE')#
                  +class gammapy.makers.PhaseBackgroundMaker(on_phase, off_phase, phase_column_name='PHASE')[source]#

                  Bases: Maker

                  Background estimation with on and off phases.

                  @@ -567,7 +567,7 @@

                  PhaseBackgroundMakerMethods Documentation

                  -make_counts(dataset, observation)#
                  +make_counts(dataset, observation)[source]#

                  Make on counts.

                  Parameters:
                  @@ -589,7 +589,7 @@

                  PhaseBackgroundMaker
                  -make_counts_off(dataset, observation)#
                  +make_counts_off(dataset, observation)[source]#

                  Make off counts.

                  Parameters:
                  @@ -611,7 +611,7 @@

                  PhaseBackgroundMaker
                  -run(dataset, observation)#
                  +run(dataset, observation)[source]#

                  Make on off dataset.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.ReflectedRegionsBackgroundMaker.html b/docs/dev/api/gammapy.makers.ReflectedRegionsBackgroundMaker.html index 8126caab11b..f0f33537305 100644 --- a/docs/dev/api/gammapy.makers.ReflectedRegionsBackgroundMaker.html +++ b/docs/dev/api/gammapy.makers.ReflectedRegionsBackgroundMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  ReflectedRegionsBackgroundMaker#

                  -class gammapy.makers.ReflectedRegionsBackgroundMaker(region_finder=None, exclusion_mask=None, **kwargs)#
                  +class gammapy.makers.ReflectedRegionsBackgroundMaker(region_finder=None, exclusion_mask=None, **kwargs)[source]#

                  Bases: Maker

                  Reflected regions background maker.

                  @@ -563,7 +563,7 @@

                  ReflectedRegionsBackgroundMakerMethods Documentation

                  -make_counts_off(dataset, observation)#
                  +make_counts_off(dataset, observation)[source]#

                  Make off counts.

                  NOTE for 1D analysis: as for make_counts, @@ -593,7 +593,7 @@

                  ReflectedRegionsBackgroundMaker
                  -run(dataset, observation)#
                  +run(dataset, observation)[source]#

                  Run reflected regions background maker.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.ReflectedRegionsFinder.html b/docs/dev/api/gammapy.makers.ReflectedRegionsFinder.html index 3b4bee3bead..6c63fe8e8c8 100644 --- a/docs/dev/api/gammapy.makers.ReflectedRegionsFinder.html +++ b/docs/dev/api/gammapy.makers.ReflectedRegionsFinder.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  ReflectedRegionsFinder#

                  -class gammapy.makers.ReflectedRegionsFinder(angle_increment='0.1 rad', min_distance='0 rad', min_distance_input='0.1 rad', max_region_number=10000, binsz='0.01 deg')#
                  +class gammapy.makers.ReflectedRegionsFinder(angle_increment='0.1 rad', min_distance='0 rad', min_distance_input='0.1 rad', max_region_number=10000, binsz='0.01 deg')[source]#

                  Bases: RegionsFinder

                  Find reflected regions.

                  This class is responsible for placing a reflected region for a given @@ -575,7 +575,7 @@

                  ReflectedRegionsFinderMethods Documentation

                  -run(region, center, exclusion_mask=None)#
                  +run(region, center, exclusion_mask=None)[source]#

                  Find reflected regions.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.RegionsFinder.html b/docs/dev/api/gammapy.makers.RegionsFinder.html index 365b1d45421..f5b64a0e219 100644 --- a/docs/dev/api/gammapy.makers.RegionsFinder.html +++ b/docs/dev/api/gammapy.makers.RegionsFinder.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  RegionsFinder#

                  -class gammapy.makers.RegionsFinder(binsz=<Quantity 0.01 deg>)#
                  +class gammapy.makers.RegionsFinder(binsz=<Quantity 0.01 deg>)[source]#

                  Bases: object

                  Base class for regions finders.

                  @@ -542,7 +542,7 @@

                  RegionsFinderMethods Documentation

                  -abstract run(region, center, exclusion_mask=None)#
                  +abstract run(region, center, exclusion_mask=None)[source]#

                  Find reflected regions.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.RingBackgroundMaker.html b/docs/dev/api/gammapy.makers.RingBackgroundMaker.html index 6574a1748aa..2a674e06337 100644 --- a/docs/dev/api/gammapy.makers.RingBackgroundMaker.html +++ b/docs/dev/api/gammapy.makers.RingBackgroundMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  RingBackgroundMaker#

                  -class gammapy.makers.RingBackgroundMaker(r_in, width, exclusion_mask=None)#
                  +class gammapy.makers.RingBackgroundMaker(r_in, width, exclusion_mask=None)[source]#

                  Bases: Maker

                  Perform a local renormalisation of the existing background template, using a ring kernel.

                  Expected signal regions should be removed by passing an exclusion mask.

                  @@ -575,7 +575,7 @@

                  RingBackgroundMakerMethods Documentation

                  -kernel(image)#
                  +kernel(image)[source]#

                  Ring kernel.

                  Parameters:
                  @@ -595,7 +595,7 @@

                  RingBackgroundMaker
                  -make_maps_off(dataset)#
                  +make_maps_off(dataset)[source]#

                  Make off maps.

                  Parameters:
                  @@ -615,7 +615,7 @@

                  RingBackgroundMaker
                  -run(dataset, observation=None)#
                  +run(dataset, observation=None)[source]#

                  Run ring background maker.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.SafeMaskMaker.html b/docs/dev/api/gammapy.makers.SafeMaskMaker.html index 4412ff6af97..44e91d1d15e 100644 --- a/docs/dev/api/gammapy.makers.SafeMaskMaker.html +++ b/docs/dev/api/gammapy.makers.SafeMaskMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  SafeMaskMaker#

                  -class gammapy.makers.SafeMaskMaker(methods=['aeff-default'], aeff_percent=10, bias_percent=10, position=None, fixed_offset=None, offset_max='3 deg', irfs='DL4')#
                  +class gammapy.makers.SafeMaskMaker(methods=['aeff-default'], aeff_percent=10, bias_percent=10, position=None, fixed_offset=None, offset_max='3 deg', irfs='DL4')[source]#

                  Bases: Maker

                  Make safe data range mask for a given observation.

                  For more information see Safe data range handling.

                  @@ -611,7 +611,7 @@

                  SafeMaskMakerMethods Documentation

                  -static make_mask_bkg_invalid(dataset)#
                  +static make_mask_bkg_invalid(dataset)[source]#

                  Mask non-finite values and zeros values in background maps.

                  Parameters:
                  @@ -631,7 +631,7 @@

                  SafeMaskMaker
                  -static make_mask_energy_aeff_default(dataset, observation)#
                  +static make_mask_energy_aeff_default(dataset, observation)[source]#

                  Make safe energy mask from aeff default.

                  Parameters:
                  @@ -653,7 +653,7 @@

                  SafeMaskMaker
                  -make_mask_energy_aeff_max(dataset, observation=None)#
                  +make_mask_energy_aeff_max(dataset, observation=None)[source]#

                  Make safe energy mask from effective area maximum value.

                  Parameters:
                  @@ -675,7 +675,7 @@

                  SafeMaskMaker
                  -make_mask_energy_bkg_peak(dataset, observation=None)#
                  +make_mask_energy_bkg_peak(dataset, observation=None)[source]#

                  Make safe energy mask based on the binned background.

                  The energy threshold is defined as the lower edge of the energy bin with the highest predicted background rate. This is to ensure analysis in @@ -702,7 +702,7 @@

                  SafeMaskMaker
                  -make_mask_energy_edisp_bias(dataset, observation=None)#
                  +make_mask_energy_edisp_bias(dataset, observation=None)[source]#

                  Make safe energy mask from energy dispersion bias.

                  Parameters:
                  @@ -724,7 +724,7 @@

                  SafeMaskMaker
                  -make_mask_offset_max(dataset, observation)#
                  +make_mask_offset_max(dataset, observation)[source]#

                  Make maximum offset mask.

                  Parameters:
                  @@ -746,7 +746,7 @@

                  SafeMaskMaker
                  -run(dataset, observation=None)#
                  +run(dataset, observation=None)[source]#

                  Make safe data range mask.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.SpectrumDatasetMaker.html b/docs/dev/api/gammapy.makers.SpectrumDatasetMaker.html index 02cb25fd0ee..b91089ee305 100644 --- a/docs/dev/api/gammapy.makers.SpectrumDatasetMaker.html +++ b/docs/dev/api/gammapy.makers.SpectrumDatasetMaker.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  SpectrumDatasetMaker#

                  -class gammapy.makers.SpectrumDatasetMaker(selection=None, containment_correction=False, background_oversampling=None, use_region_center=True)#
                  +class gammapy.makers.SpectrumDatasetMaker(selection=None, containment_correction=False, background_oversampling=None, use_region_center=True)[source]#

                  Bases: MapDatasetMaker

                  Make spectrum for a single IACT observation.

                  The IRFs and background are computed at a single fixed offset, @@ -621,7 +621,7 @@

                  SpectrumDatasetMaker
                  -static make_counts(geom, observation)#
                  +static make_counts(geom, observation)[source]#

                  Make counts map.

                  If the RegionGeom is built from a CircleSkyRegion, the latter will be directly used to extract the counts. @@ -691,7 +691,7 @@

                  SpectrumDatasetMaker
                  -make_exposure(geom, observation)#
                  +make_exposure(geom, observation)[source]#

                  Make exposure.

                  Parameters:
                  @@ -781,7 +781,7 @@

                  SpectrumDatasetMaker
                  -run(dataset, observation)#
                  +run(dataset, observation)[source]#

                  Make spectrum dataset.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.WobbleRegionsFinder.html b/docs/dev/api/gammapy.makers.WobbleRegionsFinder.html index 707799dcd44..473788a9e40 100644 --- a/docs/dev/api/gammapy.makers.WobbleRegionsFinder.html +++ b/docs/dev/api/gammapy.makers.WobbleRegionsFinder.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  WobbleRegionsFinder#

                  -class gammapy.makers.WobbleRegionsFinder(n_off_regions, binsz=<Quantity 0.01 deg>)#
                  +class gammapy.makers.WobbleRegionsFinder(n_off_regions, binsz=<Quantity 0.01 deg>)[source]#

                  Bases: RegionsFinder

                  Find the OFF regions symmetric to the ON region.

                  This is a simpler version of the ReflectedRegionsFinder, that @@ -550,7 +550,7 @@

                  WobbleRegionsFinderMethods Documentation

                  -run(region, center, exclusion_mask=None)#
                  +run(region, center, exclusion_mask=None)[source]#

                  Find off regions.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.utils.make_counts_rad_max.html b/docs/dev/api/gammapy.makers.utils.make_counts_rad_max.html index 977407edd48..7b28bd8beb8 100644 --- a/docs/dev/api/gammapy.makers.utils.make_counts_rad_max.html +++ b/docs/dev/api/gammapy.makers.utils.make_counts_rad_max.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_counts_rad_max#

                  -gammapy.makers.utils.make_counts_rad_max(geom, rad_max, events)#
                  +gammapy.makers.utils.make_counts_rad_max(geom, rad_max, events)[source]#

                  Extract the counts using for the ON region size the values in the RAD_MAX_2D table.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.utils.make_edisp_kernel_map.html b/docs/dev/api/gammapy.makers.utils.make_edisp_kernel_map.html index 7c6e6914600..7e7b11c3a52 100644 --- a/docs/dev/api/gammapy.makers.utils.make_edisp_kernel_map.html +++ b/docs/dev/api/gammapy.makers.utils.make_edisp_kernel_map.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_edisp_kernel_map#

                  -gammapy.makers.utils.make_edisp_kernel_map(edisp, pointing, geom, exposure_map=None, use_region_center=True)#
                  +gammapy.makers.utils.make_edisp_kernel_map(edisp, pointing, geom, exposure_map=None, use_region_center=True)[source]#

                  Make an edisp kernel map for a single observation.

                  Expected axes : (reco) energy and true energy in this specific order. The name of the reco energy MapAxis is expected to be ‘energy’. diff --git a/docs/dev/api/gammapy.makers.utils.make_edisp_map.html b/docs/dev/api/gammapy.makers.utils.make_edisp_map.html index f33ce4234b9..c166c443953 100644 --- a/docs/dev/api/gammapy.makers.utils.make_edisp_map.html +++ b/docs/dev/api/gammapy.makers.utils.make_edisp_map.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_edisp_map#

                  -gammapy.makers.utils.make_edisp_map(edisp, pointing, geom, exposure_map=None, use_region_center=True)#
                  +gammapy.makers.utils.make_edisp_map(edisp, pointing, geom, exposure_map=None, use_region_center=True)[source]#

                  Make an edisp map for a single observation.

                  Expected axes : migra and true energy in this specific order. The name of the migra MapAxis is expected to be ‘migra’.

                  diff --git a/docs/dev/api/gammapy.makers.utils.make_effective_livetime_map.html b/docs/dev/api/gammapy.makers.utils.make_effective_livetime_map.html index a076589d3b9..d0069926b9e 100644 --- a/docs/dev/api/gammapy.makers.utils.make_effective_livetime_map.html +++ b/docs/dev/api/gammapy.makers.utils.make_effective_livetime_map.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_effective_livetime_map#

                  -gammapy.makers.utils.make_effective_livetime_map(observations, geom, offset_max=None)#
                  +gammapy.makers.utils.make_effective_livetime_map(observations, geom, offset_max=None)[source]#

                  Compute the acceptance corrected livetime map for a list of observations.

                  diff --git a/docs/dev/api/gammapy.makers.utils.make_map_background_irf.html b/docs/dev/api/gammapy.makers.utils.make_map_background_irf.html index 1a785752c18..fd959dc49d7 100644 --- a/docs/dev/api/gammapy.makers.utils.make_map_background_irf.html +++ b/docs/dev/api/gammapy.makers.utils.make_map_background_irf.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_map_background_irf#

                  -gammapy.makers.utils.make_map_background_irf(pointing, ontime, bkg, geom, oversampling=None, use_region_center=True, obstime=None)#
                  +gammapy.makers.utils.make_map_background_irf(pointing, ontime, bkg, geom, oversampling=None, use_region_center=True, obstime=None)[source]#

                  Compute background map from background IRFs.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.makers.utils.make_map_exposure_true_energy.html b/docs/dev/api/gammapy.makers.utils.make_map_exposure_true_energy.html index dccb84915f5..6cc2b5938ca 100644 --- a/docs/dev/api/gammapy.makers.utils.make_map_exposure_true_energy.html +++ b/docs/dev/api/gammapy.makers.utils.make_map_exposure_true_energy.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_map_exposure_true_energy#

                  -gammapy.makers.utils.make_map_exposure_true_energy(pointing, livetime, aeff, geom, use_region_center=True)#
                  +gammapy.makers.utils.make_map_exposure_true_energy(pointing, livetime, aeff, geom, use_region_center=True)[source]#

                  Compute exposure map.

                  This map has a true energy axis, the exposure is not combined with energy dispersion.

                  diff --git a/docs/dev/api/gammapy.makers.utils.make_observation_time_map.html b/docs/dev/api/gammapy.makers.utils.make_observation_time_map.html index 9d3ad4689e2..d5bcee1c44b 100644 --- a/docs/dev/api/gammapy.makers.utils.make_observation_time_map.html +++ b/docs/dev/api/gammapy.makers.utils.make_observation_time_map.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_observation_time_map#

                  -gammapy.makers.utils.make_observation_time_map(observations, geom, offset_max=None)#
                  +gammapy.makers.utils.make_observation_time_map(observations, geom, offset_max=None)[source]#

                  Compute the total observation time on the target geometry for a list of observations.

                  diff --git a/docs/dev/api/gammapy.makers.utils.make_psf_map.html b/docs/dev/api/gammapy.makers.utils.make_psf_map.html index 9afcaed424b..9aeee32f243 100644 --- a/docs/dev/api/gammapy.makers.utils.make_psf_map.html +++ b/docs/dev/api/gammapy.makers.utils.make_psf_map.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_psf_map#

                  -gammapy.makers.utils.make_psf_map(psf, pointing, geom, exposure_map=None)#
                  +gammapy.makers.utils.make_psf_map(psf, pointing, geom, exposure_map=None)[source]#

                  Make a PSF map for a single observation.

                  Expected axes : rad and true energy in this specific order. The name of the rad MapAxis is expected to be ‘rad’.

                  diff --git a/docs/dev/api/gammapy.makers.utils.make_theta_squared_table.html b/docs/dev/api/gammapy.makers.utils.make_theta_squared_table.html index 40056143838..4e889083275 100644 --- a/docs/dev/api/gammapy.makers.utils.make_theta_squared_table.html +++ b/docs/dev/api/gammapy.makers.utils.make_theta_squared_table.html @@ -69,7 +69,7 @@ - + @@ -518,7 +518,7 @@

                  make_theta_squared_table#

                  -gammapy.makers.utils.make_theta_squared_table(observations, theta_squared_axis, position, position_off=None)#
                  +gammapy.makers.utils.make_theta_squared_table(observations, theta_squared_axis, position, position_off=None)[source]#

                  Make theta squared distribution in the same FoV for a list of Observation objects.

                  The ON theta2 profile is computed from a given distribution, on_position. By default, the OFF theta2 profile is extracted from a mirror position diff --git a/docs/dev/api/gammapy.maps.Geom.html b/docs/dev/api/gammapy.maps.Geom.html index 4bed4b98325..e5bd5bd1f04 100644 --- a/docs/dev/api/gammapy.maps.Geom.html +++ b/docs/dev/api/gammapy.maps.Geom.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  Geom#

                  -class gammapy.maps.Geom#
                  +class gammapy.maps.Geom[source]#

                  Bases: ABC

                  Map geometry base class.

                  See also: WcsGeom and HpxGeom.

                  @@ -688,7 +688,7 @@

                  Geom#Methods Documentation

                  -abstract contains(coords)#
                  +abstract contains(coords)[source]#

                  Check if a given map coordinate is contained in the geometry.

                  Parameters:
                  @@ -708,7 +708,7 @@

                  Geom#
                  -contains_pix(pix)#
                  +contains_pix(pix)[source]#

                  Check if a given pixel coordinate is contained in the geometry.

                  Parameters:
                  @@ -728,7 +728,7 @@

                  Geom#
                  -coord_to_idx(coords, clip=False)#
                  +coord_to_idx(coords, clip=False)[source]#

                  Convert map coordinates to pixel indices.

                  Parameters:
                  @@ -758,7 +758,7 @@

                  Geom#
                  -abstract coord_to_pix(coords)#
                  +abstract coord_to_pix(coords)[source]#

                  Convert map coordinates to pixel coordinates.

                  Parameters:
                  @@ -782,7 +782,7 @@

                  Geom#
                  -copy(**kwargs)#
                  +copy(**kwargs)[source]#

                  Copy and overwrite given attributes.

                  Parameters:
                  @@ -802,7 +802,7 @@

                  Geom#
                  -abstract crop(crop_width)#
                  +abstract crop(crop_width)[source]#

                  Crop the geometry at the edges.

                  Parameters:
                  @@ -822,7 +822,7 @@

                  Geom#
                  -data_nbytes(dtype='float32')#
                  +data_nbytes(dtype='float32')[source]#

                  Estimate memory usage in megabytes of the Numpy data array matching this geometry depending on the given type.

                  @@ -843,7 +843,7 @@

                  Geom#
                  -abstract downsample(factor, axis_name)#
                  +abstract downsample(factor, axis_name)[source]#

                  Downsample the spatial dimension of the geometry by a given factor.

                  Parameters:
                  @@ -865,7 +865,7 @@

                  Geom#
                  -drop(axis_name)#
                  +drop(axis_name)[source]#

                  Drop an axis from the geom.

                  Parameters:
                  @@ -885,7 +885,7 @@

                  Geom#
                  -energy_mask(energy_min=None, energy_max=None, round_to_edge=False)#
                  +energy_mask(energy_min=None, energy_max=None, round_to_edge=False)[source]#

                  Create a mask for a given energy range.

                  The energy bin must be fully contained to be included in the mask.

                  @@ -907,7 +907,7 @@

                  Geom#
                  -classmethod from_hdulist(hdulist, hdu=None, hdu_bands=None)#
                  +classmethod from_hdulist(hdulist, hdu=None, hdu_bands=None)[source]#

                  Load a geometry object from a FITS HDUList.

                  Parameters:
                  @@ -933,7 +933,7 @@

                  Geom#
                  -abstract get_coord(idx=None, flat=False)#
                  +abstract get_coord(idx=None, flat=False)[source]#

                  Get the coordinate array for this geometry.

                  Returns a coordinate array with the same shape as the data array. Pixels outside the geometry are set to NaN. @@ -964,7 +964,7 @@

                  Geom#
                  -abstract get_idx(idx=None, local=False, flat=False)#
                  +abstract get_idx(idx=None, local=False, flat=False)[source]#

                  Get tuple of pixel indices for this geometry.

                  Returns all pixels in the geometry by default. Pixel indices for a single image plane can be accessed by setting idx @@ -998,7 +998,7 @@

                  Geom#
                  -pad(pad_width, axis_name)#
                  +pad(pad_width, axis_name)[source]#

                  Pad the geometry at the edges.

                  Parameters:
                  @@ -1020,7 +1020,7 @@

                  Geom#
                  -abstract pix_to_coord(pix)#
                  +abstract pix_to_coord(pix)[source]#

                  Convert pixel coordinates to map coordinates.

                  Parameters:
                  @@ -1040,7 +1040,7 @@

                  Geom#
                  -abstract pix_to_idx(pix, clip=False)#
                  +abstract pix_to_idx(pix, clip=False)[source]#

                  Convert pixel coordinates to pixel indices.

                  Returns -1 for pixel coordinates that lie outside the map.

                  @@ -1065,7 +1065,7 @@

                  Geom#
                  -rename_axes(names, new_names)#
                  +rename_axes(names, new_names)[source]#

                  Rename axes contained in the geometry.

                  Parameters:
                  @@ -1087,7 +1087,7 @@

                  Geom#
                  -replace_axis(axis)#
                  +replace_axis(axis)[source]#

                  Replace axis with a new one.

                  Parameters:
                  @@ -1107,7 +1107,7 @@

                  Geom#
                  -resample_axis(axis)#
                  +resample_axis(axis)[source]#

                  Resample geom to a new axis binning.

                  This method groups the existing bins into a new binning.

                  @@ -1128,7 +1128,7 @@

                  Geom#
                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Create a new geometry by slicing the non-spatial axes.

                  Parameters:
                  @@ -1160,13 +1160,13 @@

                  Geom#
                  -abstract solid_angle()#
                  +abstract solid_angle()[source]#

                  Solid angle as a Quantity object (in sr).

                  -squash(axis_name)#
                  +squash(axis_name)[source]#

                  Squash geom axis.

                  Parameters:
                  @@ -1186,12 +1186,12 @@

                  Geom#
                  -to_bands_hdu(hdu_bands=None, format='gadf')#
                  +to_bands_hdu(hdu_bands=None, format='gadf')[source]#

                  -abstract to_cube(axes)#
                  +abstract to_cube(axes)[source]#

                  Append non-spatial axes to create a higher-dimensional geometry.

                  This will result in a new geometry with N+M dimensions where N is the number of current dimensions and @@ -1214,7 +1214,7 @@

                  Geom#
                  -abstract to_image()#
                  +abstract to_image()[source]#

                  Create a 2D image geometry (drop non-spatial dimensions).

                  Returns:
                  @@ -1228,7 +1228,7 @@

                  Geom#
                  -abstract upsample(factor, axis_name=None)#
                  +abstract upsample(factor, axis_name=None)[source]#

                  Upsample the spatial dimension of the geometry by a given factor.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.HpxGeom.html b/docs/dev/api/gammapy.maps.HpxGeom.html index 6a3f7b924ff..ae15c8356a9 100644 --- a/docs/dev/api/gammapy.maps.HpxGeom.html +++ b/docs/dev/api/gammapy.maps.HpxGeom.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  HpxGeom#

                  -class gammapy.maps.HpxGeom(nside, nest=True, frame='icrs', region=None, axes=None)#
                  +class gammapy.maps.HpxGeom(nside, nest=True, frame='icrs', region=None, axes=None)[source]#

                  Bases: Geom

                  Geometry class for HEALPix maps.

                  This class performs mapping between partial-sky indices (pixel @@ -968,7 +968,7 @@

                  HpxGeom#<

                  Methods Documentation

                  -contains(coords)#
                  +contains(coords)[source]#

                  Check if a given map coordinate is contained in the geometry.

                  Parameters:
                  @@ -1038,7 +1038,7 @@

                  HpxGeom#<
                  -coord_to_pix(coords)#
                  +coord_to_pix(coords)[source]#

                  Convert map coordinates to pixel coordinates.

                  Parameters:
                  @@ -1082,7 +1082,7 @@

                  HpxGeom#<
                  -classmethod create(nside=None, binsz=None, nest=True, frame='icrs', region=None, axes=None, skydir=None, width=None)#
                  +classmethod create(nside=None, binsz=None, nest=True, frame='icrs', region=None, axes=None, skydir=None, width=None)[source]#

                  Create an HpxGeom object.

                  Parameters:
                  @@ -1137,7 +1137,7 @@

                  HpxGeom#<
                  -crop(crop_width)#
                  +crop(crop_width)[source]#

                  Crop the geometry at the edges.

                  Parameters:
                  @@ -1157,7 +1157,7 @@

                  HpxGeom#<
                  -cutout(position, width, **kwargs)#
                  +cutout(position, width, **kwargs)[source]#

                  Create a cutout around a given position.

                  Parameters:
                  @@ -1200,7 +1200,7 @@

                  HpxGeom#<
                  -downsample(factor, axis_name=None)#
                  +downsample(factor, axis_name=None)[source]#

                  Downsample the spatial dimension of the geometry by a given factor.

                  Parameters:
                  @@ -1264,7 +1264,7 @@

                  HpxGeom#<
                  -classmethod from_hdu(hdu, hdu_bands=None)#
                  +classmethod from_hdu(hdu, hdu_bands=None)[source]#

                  Create an HPX object from a BinTable HDU.

                  Parameters:
                  @@ -1312,7 +1312,7 @@

                  HpxGeom#<
                  -classmethod from_header(header, hdu_bands=None, format=None)#
                  +classmethod from_header(header, hdu_bands=None, format=None)[source]#

                  Create an HPX object from a FITS header.

                  Parameters:
                  @@ -1352,7 +1352,7 @@

                  HpxGeom#<
                  -get_coord(idx=None, flat=False, sparse=False, mode='center', axis_name=None)#
                  +get_coord(idx=None, flat=False, sparse=False, mode='center', axis_name=None)[source]#

                  Get the coordinate array for this geometry.

                  Returns a coordinate array with the same shape as the data array. Pixels outside the geometry are set to NaN. @@ -1383,7 +1383,7 @@

                  HpxGeom#<
                  -get_idx(idx=None, local=False, flat=False, sparse=False, mode='center', axis_name=None)#
                  +get_idx(idx=None, local=False, flat=False, sparse=False, mode='center', axis_name=None)[source]#

                  Get tuple of pixel indices for this geometry.

                  Returns all pixels in the geometry by default. Pixel indices for a single image plane can be accessed by setting idx @@ -1417,7 +1417,7 @@

                  HpxGeom#<
                  -static get_index_list(nside, nest, region)#
                  +static get_index_list(nside, nest, region)[source]#

                  Get list of pixels indices for all the pixels in a region.

                  Parameters:
                  @@ -1441,7 +1441,7 @@

                  HpxGeom#<
                  -global_to_local(idx_global, ravel=False)#
                  +global_to_local(idx_global, ravel=False)[source]#

                  Compute global (all-sky) index from a local (partial-sky) index.

                  Parameters:
                  @@ -1463,7 +1463,7 @@

                  HpxGeom#<
                  -interp_weights(coords, idxs=None)#
                  +interp_weights(coords, idxs=None)[source]#

                  Get interpolation weights for given coordinates.

                  Parameters:
                  @@ -1486,7 +1486,7 @@

                  HpxGeom#<
                  -is_aligned(other)#
                  +is_aligned(other)[source]#

                  Check if HEALPix geoms and extra axes are aligned.

                  Parameters:
                  @@ -1506,7 +1506,7 @@

                  HpxGeom#<
                  -is_allclose(other, rtol_axes=1e-06, atol_axes=1e-06)#
                  +is_allclose(other, rtol_axes=1e-06, atol_axes=1e-06)[source]#

                  Compare two data IRFs for equivalency.

                  Parameters:
                  @@ -1532,7 +1532,7 @@

                  HpxGeom#<
                  -local_to_global(idx_local)#
                  +local_to_global(idx_local)[source]#

                  Compute a global index (all-sky) from a local (partial-sky) index.

                  Parameters:
                  @@ -1574,7 +1574,7 @@

                  HpxGeom#<
                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Convert pixel coordinates to map coordinates.

                  Parameters:
                  @@ -1594,7 +1594,7 @@

                  HpxGeom#<
                  -pix_to_idx(pix, clip=False)#
                  +pix_to_idx(pix, clip=False)[source]#

                  Convert pixel coordinates to pixel indices.

                  Returns -1 for pixel coordinates that lie outside the map.

                  @@ -1619,7 +1619,7 @@

                  HpxGeom#<
                  -region_mask(regions)#
                  +region_mask(regions)[source]#

                  Create a mask from a given list of regions.

                  The mask is filled such that a pixel inside the region is filled with “True”. To invert the mask, e.g. to create a mask with exclusion regions @@ -1707,7 +1707,7 @@

                  HpxGeom#<
                  -separation(center)#
                  +separation(center)[source]#

                  Compute sky separation with respect to a given center.

                  Parameters:
                  @@ -1759,7 +1759,7 @@

                  HpxGeom#<
                  -solid_angle()#
                  +solid_angle()[source]#

                  Solid angle array as a Quantity in sr.

                  The array has the same dimensionality as map.nside as all pixels have the same solid angle.

                  @@ -1792,7 +1792,7 @@

                  HpxGeom#<
                  -to_binsz(binsz)#
                  +to_binsz(binsz)[source]#

                  Change pixel size of the geometry.

                  Parameters:
                  @@ -1812,7 +1812,7 @@

                  HpxGeom#<
                  -to_cube(axes)#
                  +to_cube(axes)[source]#

                  Append non-spatial axes to create a higher-dimensional geometry.

                  This will result in a new geometry with N+M dimensions where N is the number of current dimensions and @@ -1835,13 +1835,13 @@

                  HpxGeom#<
                  -to_header(format='gadf', **kwargs)#
                  +to_header(format='gadf', **kwargs)[source]#

                  Build and return FITS header for this HEALPix map.

                  -to_image()#
                  +to_image()[source]#

                  Create a 2D image geometry (drop non-spatial dimensions).

                  Returns:
                  @@ -1855,7 +1855,7 @@

                  HpxGeom#<
                  -to_nside(nside)#
                  +to_nside(nside)[source]#

                  Upgrade or downgrade the resolution to a given NSIDE.

                  Parameters:
                  @@ -1875,7 +1875,7 @@

                  HpxGeom#<
                  -to_swapped()#
                  +to_swapped()[source]#

                  Geometry copy with swapped ORDERING (NEST->RING or vice versa).

                  Returns:
                  @@ -1889,7 +1889,7 @@

                  HpxGeom#<
                  -to_wcs_geom(proj='AIT', oversample=2, width_pix=None)#
                  +to_wcs_geom(proj='AIT', oversample=2, width_pix=None)[source]#

                  Make a WCS projection appropriate for this HEALPix pixelization.

                  Parameters:
                  @@ -1922,7 +1922,7 @@

                  HpxGeom#<
                  -to_wcs_tiles(nside_tiles=4, margin='0 deg')#
                  +to_wcs_tiles(nside_tiles=4, margin='0 deg')[source]#

                  Create WCS tiles geometries from HPX geometry with given nside.

                  The HEALPix geom is divide into superpixels defined by nside_tiles, which are then represented by a WCS geometry using a tangential @@ -1950,7 +1950,7 @@

                  HpxGeom#<
                  -upsample(factor)#
                  +upsample(factor)[source]#

                  Upsample the spatial dimension of the geometry by a given factor.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.HpxMap.html b/docs/dev/api/gammapy.maps.HpxMap.html index 650b1a64eb0..b80019e3fdc 100644 --- a/docs/dev/api/gammapy.maps.HpxMap.html +++ b/docs/dev/api/gammapy.maps.HpxMap.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  HpxMap#

                  -class gammapy.maps.HpxMap(geom, data, meta=None, unit='')#
                  +class gammapy.maps.HpxMap(geom, data, meta=None, unit='')[source]#

                  Bases: Map

                  Base class for HEALPIX map classes.

                  @@ -823,7 +823,7 @@

                  HpxMap#
                  -classmethod create(nside=None, binsz=None, nest=True, map_type='hpx', frame='icrs', data=None, skydir=None, width=None, dtype='float32', region=None, axes=None, meta=None, unit='')#
                  +classmethod create(nside=None, binsz=None, nest=True, map_type='hpx', frame='icrs', data=None, skydir=None, width=None, dtype='float32', region=None, axes=None, meta=None, unit='')[source]#

                  Factory method to create an empty HEALPix map.

                  Parameters:
                  @@ -1069,7 +1069,7 @@

                  HpxMap#
                  -classmethod from_hdulist(hdu_list, hdu=None, hdu_bands=None, format=None, colname=None)#
                  +classmethod from_hdulist(hdu_list, hdu=None, hdu_bands=None, format=None, colname=None)[source]#

                  Make a HpxMap object from a FITS HDUList.

                  Parameters:
                  @@ -2134,7 +2134,7 @@

                  HpxMap#
                  -to_hdu(hdu=None, hdu_bands=None, sparse=False, format=None)#
                  +to_hdu(hdu=None, hdu_bands=None, sparse=False, format=None)[source]#

                  Make a FITS HDU with input data.

                  Parameters:
                  @@ -2163,7 +2163,7 @@

                  HpxMap#
                  -to_hdulist(hdu='SKYMAP', hdu_bands=None, sparse=False, format='gadf')#
                  +to_hdulist(hdu='SKYMAP', hdu_bands=None, sparse=False, format='gadf')[source]#

                  Convert to HDUList.

                  Parameters:
                  @@ -2209,7 +2209,7 @@

                  HpxMap#
                  -abstract to_swapped()#
                  +abstract to_swapped()[source]#

                  Return a new map with the opposite scheme (ring or nested).

                  Returns:
                  @@ -2243,7 +2243,7 @@

                  HpxMap#
                  -abstract to_wcs(sum_bands=False, normalize=True, proj='AIT', oversample=2, width_pix=None, hpx2wcs=None)#
                  +abstract to_wcs(sum_bands=False, normalize=True, proj='AIT', oversample=2, width_pix=None, hpx2wcs=None)[source]#

                  Make a WCS object and convert HEALPix data into WCS projection.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.HpxNDMap.html b/docs/dev/api/gammapy.maps.HpxNDMap.html index 285319062c2..6a3f5276cf7 100644 --- a/docs/dev/api/gammapy.maps.HpxNDMap.html +++ b/docs/dev/api/gammapy.maps.HpxNDMap.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  HpxNDMap#

                  -class gammapy.maps.HpxNDMap(geom, data=None, dtype='float32', meta=None, unit='')#
                  +class gammapy.maps.HpxNDMap(geom, data=None, dtype='float32', meta=None, unit='')[source]#

                  Bases: HpxMap

                  HEALPix map with any number of non-spatial dimensions.

                  This class uses an N+1D numpy array to represent the sequence of @@ -847,7 +847,7 @@

                  HpxNDMap
                  -convolve(kernel, convolution_method='wcs-tan', **kwargs)#
                  +convolve(kernel, convolution_method='wcs-tan', **kwargs)[source]#

                  Convolve map with a WCS kernel.

                  Project the map into a WCS geometry, convolve with a WCS kernel and project back into the initial HEALPix geometry.

                  @@ -880,7 +880,7 @@

                  HpxNDMap
                  -convolve_full(kernel)#
                  +convolve_full(kernel)[source]#

                  Convolve map with a symmetrical WCS kernel.

                  Extract the radial profile of the kernel (assuming radial symmetry) and convolve via smoothing. Since no projection is applied, this is @@ -907,7 +907,7 @@

                  HpxNDMap
                  -convolve_wcs(kernel, **kwargs)#
                  +convolve_wcs(kernel, **kwargs)[source]#

                  Convolve map with a WCS kernel.

                  Project the map into a WCS geometry, convolve with a WCS kernel and project back into the initial HEALPix geometry.

                  @@ -1012,7 +1012,7 @@

                  HpxNDMap
                  -crop(crop_width)#
                  +crop(crop_width)[source]#

                  Crop the spatial dimensions of the map.

                  Parameters:
                  @@ -1053,7 +1053,7 @@

                  HpxNDMap
                  -cutout(position, width, *args, **kwargs)#
                  +cutout(position, width, *args, **kwargs)[source]#

                  Create a cutout around a given position.

                  Parameters:
                  @@ -1098,7 +1098,7 @@

                  HpxNDMap
                  -downsample(factor, preserve_counts=True, axis_name=None)#
                  +downsample(factor, preserve_counts=True, axis_name=None)[source]#

                  Downsample the spatial dimension by a given factor.

                  Parameters:
                  @@ -1142,7 +1142,7 @@

                  HpxNDMap
                  -fill_by_idx(idx, weights=None)#
                  +fill_by_idx(idx, weights=None)[source]#

                  Fill pixels at idx with given weights.

                  Parameters:
                  @@ -1225,7 +1225,7 @@

                  HpxNDMap
                  -classmethod from_hdu(hdu, hdu_bands=None, format=None, colname=None)#
                  +classmethod from_hdu(hdu, hdu_bands=None, format=None, colname=None)[source]#

                  Make a HpxNDMap object from a FITS HDU.

                  Parameters:
                  @@ -1341,7 +1341,7 @@

                  HpxNDMap
                  -classmethod from_wcs_tiles(wcs_tiles, nest=True)#
                  +classmethod from_wcs_tiles(wcs_tiles, nest=True)[source]#

                  Create HEALPix map from WCS tiles.

                  Parameters:
                  @@ -1390,7 +1390,7 @@

                  HpxNDMap
                  -get_by_idx(idx)#
                  +get_by_idx(idx)[source]#

                  Return map values at the given pixel indices.

                  Parameters:
                  @@ -1612,7 +1612,7 @@

                  HpxNDMap
                  -interp_by_coord(coords, method='linear', fill_value=None)#
                  +interp_by_coord(coords, method='linear', fill_value=None)[source]#

                  Interpolate map values at the given map coordinates.

                  Parameters:
                  @@ -1639,7 +1639,7 @@

                  HpxNDMap
                  -interp_by_pix(pix, method=None, fill_value=None)#
                  +interp_by_pix(pix, method=None, fill_value=None)[source]#

                  Interpolate map values at the given pixel coordinates.

                  @@ -1859,7 +1859,7 @@

                  HpxNDMap
                  -plot(method='raster', ax=None, normalize=False, proj='AIT', oversample=2, width_pix=1000, **kwargs)#
                  +plot(method='raster', ax=None, normalize=False, proj='AIT', oversample=2, width_pix=1000, **kwargs)[source]#

                  Quickplot method.

                  This will generate a visualization of the map by converting to a rasterized WCS image (method=’raster’) or drawing polygons @@ -1955,7 +1955,7 @@

                  HpxNDMap
                  -plot_mask(method='raster', ax=None, proj='AIT', oversample=2, width_pix=1000, **kwargs)#
                  +plot_mask(method='raster', ax=None, proj='AIT', oversample=2, width_pix=1000, **kwargs)[source]#

                  Plot the mask as a shaded area.

                  Parameters:
                  @@ -2237,7 +2237,7 @@

                  HpxNDMap
                  -sample_coord(n_events, random_state=0)#
                  +sample_coord(n_events, random_state=0)[source]#

                  Sample position and energy of events.

                  Parameters:
                  @@ -2278,7 +2278,7 @@

                  HpxNDMap
                  -set_by_idx(idx, vals)#
                  +set_by_idx(idx, vals)[source]#

                  Set pixels at idx with given vals.

                  Parameters:
                  @@ -2346,7 +2346,7 @@

                  HpxNDMap
                  -smooth(width, kernel='gauss')#
                  +smooth(width, kernel='gauss')[source]#

                  Smooth the map.

                  Iterates over 2D image planes, processing one at a time.

                  @@ -2393,7 +2393,7 @@

                  HpxNDMap
                  -stack(other, weights=None, nan_to_num=True)#
                  +stack(other, weights=None, nan_to_num=True)[source]#

                  Stack cutout into map.

                  Parameters:
                  @@ -2539,7 +2539,7 @@

                  HpxNDMap
                  -to_nside(nside, preserve_counts=True)#
                  +to_nside(nside, preserve_counts=True)[source]#

                  Upsample or downsample the map to a given nside.

                  Parameters:
                  @@ -2564,7 +2564,7 @@

                  HpxNDMap
                  -to_region_nd_map(region, func=<function nansum>, weights=None, method='nearest')#
                  +to_region_nd_map(region, func=<function nansum>, weights=None, method='nearest')[source]#

                  Get region ND map in a given region.

                  By default, the whole map region is considered.

                  @@ -2594,7 +2594,7 @@

                  HpxNDMap
                  -to_swapped()#
                  +to_swapped()[source]#

                  Return a new map with the opposite scheme (ring or nested).

                  Returns:
                  @@ -2628,7 +2628,7 @@

                  HpxNDMap
                  -to_wcs(sum_bands=False, normalize=True, proj='AIT', oversample=2, width_pix=None, hpx2wcs=None, fill_nan=True)#
                  +to_wcs(sum_bands=False, normalize=True, proj='AIT', oversample=2, width_pix=None, hpx2wcs=None, fill_nan=True)[source]#

                  Make a WCS object and convert HEALPix data into WCS projection.

                  Parameters:
                  @@ -2671,7 +2671,7 @@

                  HpxNDMap
                  -to_wcs_tiles(nside_tiles=4, margin='0 deg', method='nearest', oversampling_factor=1)#
                  +to_wcs_tiles(nside_tiles=4, margin='0 deg', method='nearest', oversampling_factor=1)[source]#

                  Convert HpxNDMap to a list of WCS tiles.

                  Parameters:
                  @@ -2697,7 +2697,7 @@

                  HpxNDMap
                  -upsample(factor, order=0, preserve_counts=True, axis_name=None)#
                  +upsample(factor, order=0, preserve_counts=True, axis_name=None)[source]#

                  Upsample the spatial dimension by a given factor.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.LabelMapAxis.html b/docs/dev/api/gammapy.maps.LabelMapAxis.html index 69574a5bfe4..03b87da4bea 100644 --- a/docs/dev/api/gammapy.maps.LabelMapAxis.html +++ b/docs/dev/api/gammapy.maps.LabelMapAxis.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  LabelMapAxis#

                  -class gammapy.maps.LabelMapAxis(labels, name='')#
                  +class gammapy.maps.LabelMapAxis(labels, name='')[source]#

                  Bases: object

                  Map axis using labels.

                  @@ -712,7 +712,7 @@

                  LabelMapAxisMethods Documentation

                  -assert_name(required_name)#
                  +assert_name(required_name)[source]#

                  Assert axis name if a specific one is required.

                  Parameters:
                  @@ -726,7 +726,7 @@

                  LabelMapAxis
                  -concatenate(axis)#
                  +concatenate(axis)[source]#

                  Concatenate another label map axis to this one into a new instance of LabelMapAxis.

                  Names must agree between the axes. Labels must be unique.

                  @@ -747,7 +747,7 @@

                  LabelMapAxis
                  -coord_to_idx(coord, **kwargs)#
                  +coord_to_idx(coord, **kwargs)[source]#

                  Transform label coordinate to indices.

                  If the label is not present an error is raised.

                  @@ -768,7 +768,7 @@

                  LabelMapAxis
                  -coord_to_pix(coord)#
                  +coord_to_pix(coord)[source]#

                  Transform label coordinate to pixel coordinate.

                  Parameters:
                  @@ -788,19 +788,19 @@

                  LabelMapAxis
                  -copy()#
                  +copy()[source]#

                  Copy the axis.

                  -downsample(*args, **kwargs)#
                  +downsample(*args, **kwargs)[source]#

                  Not supported for label axis.

                  -format_plot_xaxis(ax)#
                  +format_plot_xaxis(ax)[source]#

                  Format plot axis.

                  Parameters:
                  @@ -820,7 +820,7 @@

                  LabelMapAxis
                  -classmethod from_stack(axes)#
                  +classmethod from_stack(axes)[source]#

                  Create a label map axis by merging a list of label axis.

                  Parameters:
                  @@ -840,7 +840,7 @@

                  LabelMapAxis
                  -classmethod from_table(table, format='gadf', idx=0)#
                  +classmethod from_table(table, format='gadf', idx=0)[source]#

                  Create time map axis from table.

                  Parameters:
                  @@ -864,7 +864,7 @@

                  LabelMapAxis
                  -is_allclose(other, **kwargs)#
                  +is_allclose(other, **kwargs)[source]#

                  Check if other map axis is all close.

                  Parameters:
                  @@ -884,13 +884,13 @@

                  LabelMapAxis
                  -pad(*args, **kwargs)#
                  +pad(*args, **kwargs)[source]#

                  Not supported for label axis.

                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Transform pixel to label coordinate.

                  Parameters:
                  @@ -910,7 +910,7 @@

                  LabelMapAxis
                  -pix_to_idx(pix, clip=False)#
                  +pix_to_idx(pix, clip=False)[source]#

                  Convert pixel to idx

                  Parameters:
                  @@ -934,13 +934,13 @@

                  LabelMapAxis
                  -resample(*args, **kwargs)#
                  +resample(*args, **kwargs)[source]#

                  Not supported for label axis.

                  -slice(idx)#
                  +slice(idx)[source]#

                  Create a new axis object by extracting a slice from this axis.

                  Parameters:
                  @@ -969,7 +969,7 @@

                  LabelMapAxis
                  -squash()#
                  +squash()[source]#

                  Create a new axis object by squashing the axis into one bin.

                  The label of the new axis is given as “first-label…last-label”.

                  @@ -984,7 +984,7 @@

                  LabelMapAxis
                  -to_header(format='gadf', idx=0)#
                  +to_header(format='gadf', idx=0)[source]#

                  Create FITS header.

                  Parameters:
                  @@ -1006,7 +1006,7 @@

                  LabelMapAxis
                  -upsample(*args, **kwargs)#
                  +upsample(*args, **kwargs)[source]#

                  Not supported for label axis.

                  diff --git a/docs/dev/api/gammapy.maps.Map.html b/docs/dev/api/gammapy.maps.Map.html index 904ec86b773..eccafd1a1a2 100644 --- a/docs/dev/api/gammapy.maps.Map.html +++ b/docs/dev/api/gammapy.maps.Map.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  Map#

                  -class gammapy.maps.Map(geom, data, meta=None, unit='')#
                  +class gammapy.maps.Map(geom, data, meta=None, unit='')[source]#

                  Bases: ABC

                  Abstract map class.

                  This can represent WCS or HEALPix-based maps @@ -775,7 +775,7 @@

                  Map#

                  Methods Documentation

                  -coadd(map_in, weights=None)#
                  +coadd(map_in, weights=None)[source]#

                  Add the contents of map_in to this map.

                  This method can be used to combine maps containing integral quantities (e.g. counts) or differential quantities if the maps have the same binning.

                  @@ -793,7 +793,7 @@

                  Map#

                  -copy(**kwargs)#
                  +copy(**kwargs)[source]#

                  Copy map instance and overwrite given attributes, except for geometry.

                  Parameters:
                  @@ -813,7 +813,7 @@

                  Map#

                  -static create(**kwargs)#
                  +static create(**kwargs)[source]#

                  Create an empty map object.

                  This method accepts generic options listed below, as well as options for HpxMap and WcsMap objects. For WCS-specific options, see @@ -854,7 +854,7 @@

                  Map#

                  -abstract crop(crop_width)#
                  +abstract crop(crop_width)[source]#

                  Crop the spatial dimensions of the map.

                  Parameters:
                  @@ -875,7 +875,7 @@

                  Map#

                  -cumsum(axis_name)#
                  +cumsum(axis_name)[source]#

                  Compute cumulative sum along a given axis.

                  Parameters:
                  @@ -895,7 +895,7 @@

                  Map#

                  -dot(other)#
                  +dot(other)[source]#

                  Apply dot product with the input map.

                  The input Map has to share a single MapAxis with the current Map. Because it has no spatial dimension, it must be a RegionNDMap.

                  @@ -918,7 +918,7 @@

                  Map#

                  -abstract downsample(factor, preserve_counts=True, axis_name=None)#
                  +abstract downsample(factor, preserve_counts=True, axis_name=None)[source]#

                  Downsample the spatial dimension by a given factor.

                  Parameters:
                  @@ -944,7 +944,7 @@

                  Map#

                  -fill_by_coord(coords, weights=None)#
                  +fill_by_coord(coords, weights=None)[source]#

                  Fill pixels at coords with given weights.

                  Parameters:
                  @@ -962,7 +962,7 @@

                  Map#

                  -abstract fill_by_idx(idx, weights=None)#
                  +abstract fill_by_idx(idx, weights=None)[source]#

                  Fill pixels at idx with given weights.

                  Parameters:
                  @@ -980,7 +980,7 @@

                  Map#

                  -fill_by_pix(pix, weights=None)#
                  +fill_by_pix(pix, weights=None)[source]#

                  Fill pixels at pix with given weights.

                  Parameters:
                  @@ -1000,7 +1000,7 @@

                  Map#

                  -fill_events(events, weights=None)#
                  +fill_events(events, weights=None)[source]#

                  Fill the map from an EventList object.

                  Parameters:
                  @@ -1017,7 +1017,7 @@

                  Map#

                  -static from_geom(geom, meta=None, data=None, unit='', dtype='float32')#
                  +static from_geom(geom, meta=None, data=None, unit='', dtype='float32')[source]#

                  Generate an empty map from a Geom instance.

                  Parameters:
                  @@ -1045,7 +1045,7 @@

                  Map#

                  -static from_hdulist(hdulist, hdu=None, hdu_bands=None, map_type='auto', format=None, colname=None)#
                  +static from_hdulist(hdulist, hdu=None, hdu_bands=None, map_type='auto', format=None, colname=None)[source]#

                  Create from a astropy.io.fits.HDUList object.

                  Parameters:
                  @@ -1075,7 +1075,7 @@

                  Map#

                  -classmethod from_stack(maps, axis=None, axis_name=None)#
                  +classmethod from_stack(maps, axis=None, axis_name=None)[source]#

                  Create Map from a list of images and a non-spatial axis.

                  The image geometries must be aligned, except for the axis that is stacked.

                  @@ -1102,7 +1102,7 @@

                  Map#

                  -get_by_coord(coords, fill_value=nan)#
                  +get_by_coord(coords, fill_value=nan)[source]#

                  Return map values at the given map coordinates.

                  Parameters:
                  @@ -1128,7 +1128,7 @@

                  Map#

                  -abstract get_by_idx(idx)#
                  +abstract get_by_idx(idx)[source]#

                  Return map values at the given pixel indices.

                  Parameters:
                  @@ -1150,7 +1150,7 @@

                  Map#

                  -get_by_pix(pix, fill_value=nan)#
                  +get_by_pix(pix, fill_value=nan)[source]#

                  Return map values at the given pixel coordinates.

                  Parameters:
                  @@ -1177,7 +1177,7 @@

                  Map#

                  -get_image_by_coord(coords)#
                  +get_image_by_coord(coords)[source]#

                  Return spatial map at the given axis coordinates.

                  Parameters:
                  @@ -1242,7 +1242,7 @@

                  Map#

                  -get_image_by_idx(idx)#
                  +get_image_by_idx(idx)[source]#

                  Return spatial map at the given axis pixel indices.

                  Parameters:
                  @@ -1269,7 +1269,7 @@

                  Map#

                  -get_image_by_pix(pix)#
                  +get_image_by_pix(pix)[source]#

                  Return spatial map at the given axis pixel coordinates

                  Parameters:
                  @@ -1297,7 +1297,7 @@

                  Map#

                  -get_spectrum(region=None, func=<function nansum>, weights=None)#
                  +get_spectrum(region=None, func=<function nansum>, weights=None)[source]#

                  Extract spectrum in a given region.

                  The spectrum can be computed by summing (or, more generally, applying func) along the spatial axes in each energy bin. This occurs only inside the region, @@ -1325,7 +1325,7 @@

                  Map#

                  -integral(axis_name, coords, **kwargs)#
                  +integral(axis_name, coords, **kwargs)[source]#

                  Compute integral along a given axis.

                  This method uses interpolation of the cumulative sum.

                  @@ -1350,7 +1350,7 @@

                  Map#

                  -abstract interp_by_coord(coords, method='linear', fill_value=None)#
                  +abstract interp_by_coord(coords, method='linear', fill_value=None)[source]#

                  Interpolate map values at the given map coordinates.

                  Parameters:
                  @@ -1377,7 +1377,7 @@

                  Map#

                  -abstract interp_by_pix(pix, method='linear', fill_value=None)#
                  +abstract interp_by_pix(pix, method='linear', fill_value=None)[source]#

                  Interpolate map values at the given pixel coordinates.

                  Parameters:
                  @@ -1405,7 +1405,7 @@

                  Map#

                  -interp_to_geom(geom, preserve_counts=False, fill_value=0, **kwargs)#
                  +interp_to_geom(geom, preserve_counts=False, fill_value=0, **kwargs)[source]#

                  Interpolate map to input geometry.

                  Parameters:
                  @@ -1435,7 +1435,7 @@

                  Map#

                  -is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)#
                  +is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)[source]#

                  Compare two Maps for close equivalency.

                  Parameters:
                  @@ -1461,7 +1461,7 @@

                  Map#

                  -iter_by_axis(axis_name, keepdims=False)#
                  +iter_by_axis(axis_name, keepdims=False)[source]#

                  Iterate over a given axis.

                  Yields:
                  @@ -1482,7 +1482,7 @@

                  Map#

                  -iter_by_image(keepdims=False)#
                  +iter_by_image(keepdims=False)[source]#

                  Iterate over image planes of a map.

                  Parameters:
                  @@ -1509,7 +1509,7 @@

                  Map#

                  -iter_by_image_data()#
                  +iter_by_image_data()[source]#

                  Iterate over image planes of the map.

                  The image plane index is in data order, so that the data array can be indexed directly.

                  @@ -1533,7 +1533,7 @@

                  Map#

                  -iter_by_image_index()#
                  +iter_by_image_index()[source]#

                  Iterate over image planes of the map.

                  The image plane index is in data order, so that the data array can be indexed directly.

                  @@ -1556,7 +1556,7 @@

                  Map#

                  -mask_nearest_position(position)#
                  +mask_nearest_position(position)[source]#

                  Given a sky coordinate return nearest valid position in the mask.

                  If the mask contains additional axes, the mask is reduced over those axes.

                  @@ -1577,7 +1577,7 @@

                  Map#

                  -normalize(axis_name=None)#
                  +normalize(axis_name=None)[source]#

                  Normalise data in place along a given axis.

                  Parameters:
                  @@ -1591,7 +1591,7 @@

                  Map#

                  -pad(pad_width, axis_name=None, mode='constant', cval=0, method='linear')#
                  +pad(pad_width, axis_name=None, mode='constant', cval=0, method='linear')[source]#

                  Pad the spatial dimensions of the map.

                  Parameters:
                  @@ -1619,7 +1619,7 @@

                  Map#

                  -plot_grid(figsize=None, ncols=3, **kwargs)#
                  +plot_grid(figsize=None, ncols=3, **kwargs)[source]#

                  Plot map as a grid of subplots for non-spatial axes.

                  Parameters:
                  @@ -1643,7 +1643,7 @@

                  Map#

                  -plot_interactive(rc_params=None, **kwargs)#
                  +plot_interactive(rc_params=None, **kwargs)[source]#

                  Plot map with interactive widgets to explore the non-spatial axes.

                  Parameters:
                  @@ -1672,7 +1672,7 @@

                  Map#

                  -static read(filename, hdu=None, hdu_bands=None, map_type='auto', format=None, colname=None, checksum=False)#
                  +static read(filename, hdu=None, hdu_bands=None, map_type='auto', format=None, colname=None, checksum=False)[source]#

                  Read a map from a FITS file.

                  Parameters:
                  @@ -1708,7 +1708,7 @@

                  Map#

                  -reduce(axis_name, func=<ufunc 'add'>, keepdims=False, weights=None)#
                  +reduce(axis_name, func=<ufunc 'add'>, keepdims=False, weights=None)[source]#

                  Reduce map over a single non-spatial axis.

                  Parameters:
                  @@ -1735,7 +1735,7 @@

                  Map#

                  -reduce_over_axes(func=<ufunc 'add'>, keepdims=False, axes_names=None, weights=None)#
                  +reduce_over_axes(func=<ufunc 'add'>, keepdims=False, axes_names=None, weights=None)[source]#

                  Reduce map over non-spatial axes.

                  Parameters:
                  @@ -1762,7 +1762,7 @@

                  Map#

                  -rename_axes(names, new_names)#
                  +rename_axes(names, new_names)[source]#

                  Rename the Map axes.

                  Parameters:
                  @@ -1784,7 +1784,7 @@

                  Map#

                  -reorder_axes(axes_names)#
                  +reorder_axes(axes_names)[source]#

                  Return a new map re-ordering the non-spatial axes.

                  Parameters:
                  @@ -1804,7 +1804,7 @@

                  Map#

                  -reproject_by_image(geom, preserve_counts=False, precision_factor=10)#
                  +reproject_by_image(geom, preserve_counts=False, precision_factor=10)[source]#

                  Reproject each image of a ND map to input 2d geometry.

                  For large maps this method is faster than reproject_to_geom.

                  @@ -1832,7 +1832,7 @@

                  Map#

                  -reproject_to_geom(geom, preserve_counts=False, precision_factor=10)#
                  +reproject_to_geom(geom, preserve_counts=False, precision_factor=10)[source]#

                  Reproject map to input geometry.

                  Parameters:
                  @@ -1859,7 +1859,7 @@

                  Map#

                  -resample(geom, weights=None, preserve_counts=True)#
                  +resample(geom, weights=None, preserve_counts=True)[source]#

                  Resample pixels to geom with given weights.

                  Parameters:
                  @@ -1886,7 +1886,7 @@

                  Map#

                  -resample_axis(axis, weights=None, ufunc=<ufunc 'add'>)#
                  +resample_axis(axis, weights=None, ufunc=<ufunc 'add'>)[source]#

                  Resample map to a new axis by grouping and reducing smaller bins by a given function ufunc.

                  By default, the map content are summed over the smaller bins. Other numpy.ufunc can be used, e.g. numpy.logical_and or numpy.logical_or.

                  @@ -1914,7 +1914,7 @@

                  Map#

                  -sample_coord(n_events, random_state=0)#
                  +sample_coord(n_events, random_state=0)[source]#

                  Sample position and energy of events.

                  Parameters:
                  @@ -1937,7 +1937,7 @@

                  Map#

                  -set_by_coord(coords, vals)#
                  +set_by_coord(coords, vals)[source]#

                  Set pixels at coords with given vals.

                  Parameters:
                  @@ -1955,7 +1955,7 @@

                  Map#

                  -abstract set_by_idx(idx, vals)#
                  +abstract set_by_idx(idx, vals)[source]#

                  Set pixels at idx with given vals.

                  Parameters:
                  @@ -1973,7 +1973,7 @@

                  Map#

                  -set_by_pix(pix, vals)#
                  +set_by_pix(pix, vals)[source]#

                  Set pixels at pix with given vals.

                  Parameters:
                  @@ -1993,7 +1993,7 @@

                  Map#

                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Slice sub map from map object.

                  Parameters:
                  @@ -2023,7 +2023,7 @@

                  Map#

                  -split_by_axis(axis_name)#
                  +split_by_axis(axis_name)[source]#

                  Split a Map along an axis into multiple maps.

                  Parameters:
                  @@ -2043,7 +2043,7 @@

                  Map#

                  -sum_over_axes(axes_names=None, keepdims=True, weights=None)#
                  +sum_over_axes(axes_names=None, keepdims=True, weights=None)[source]#

                  Sum map values over all non-spatial axes.

                  Parameters:
                  @@ -2068,7 +2068,7 @@

                  Map#

                  -to_cube(axes)#
                  +to_cube(axes)[source]#

                  Append non-spatial axes to create a higher-dimensional Map.

                  This will result in a Map with a new geometry with N+M dimensions where N is the number of current dimensions and @@ -2093,7 +2093,7 @@

                  Map#

                  -to_unit(unit)#
                  +to_unit(unit)[source]#

                  Convert map to a different unit.

                  Parameters:
                  @@ -2113,7 +2113,7 @@

                  Map#

                  -abstract upsample(factor, order=0, preserve_counts=True, axis_name=None)#
                  +abstract upsample(factor, order=0, preserve_counts=True, axis_name=None)[source]#

                  Upsample the spatial dimension by a given factor.

                  Parameters:
                  @@ -2141,7 +2141,7 @@

                  Map#

                  -write(filename, overwrite=False, **kwargs)#
                  +write(filename, overwrite=False, **kwargs)[source]#

                  Write to a FITS file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.MapAxes.html b/docs/dev/api/gammapy.maps.MapAxes.html index 6162a428680..af1d4a8bf39 100644 --- a/docs/dev/api/gammapy.maps.MapAxes.html +++ b/docs/dev/api/gammapy.maps.MapAxes.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  MapAxes#

                  -class gammapy.maps.MapAxes(axes, n_spatial_axes=None)#
                  +class gammapy.maps.MapAxes(axes, n_spatial_axes=None)[source]#

                  Bases: Sequence

                  MapAxis container class.

                  @@ -701,7 +701,7 @@

                  MapAxes#<

                  Methods Documentation

                  -assert_names(required_names, allow_extra=False)#
                  +assert_names(required_names, allow_extra=False)[source]#

                  Assert required axis names and order.

                  Parameters:
                  @@ -717,7 +717,7 @@

                  MapAxes#<
                  -bin_volume()#
                  +bin_volume()[source]#

                  Bin axes volume.

                  Returns:
                  @@ -731,7 +731,7 @@

                  MapAxes#<
                  -coord_to_idx(coord, clip=True)#
                  +coord_to_idx(coord, clip=True)[source]#

                  Transform from axis to pixel indices.

                  Parameters:
                  @@ -754,7 +754,7 @@

                  MapAxes#<
                  -coord_to_pix(coord)#
                  +coord_to_pix(coord)[source]#

                  Transform from axis to pixel coordinates.

                  Parameters:
                  @@ -774,7 +774,7 @@

                  MapAxes#<
                  -copy()#
                  +copy()[source]#

                  Initialize a new map axes instance by copying each axis.

                  @@ -785,7 +785,7 @@

                  MapAxes#<
                  -downsample(factor, axis_name)#
                  +downsample(factor, axis_name)[source]#

                  Downsample axis by a given factor.

                  Parameters:
                  @@ -807,7 +807,7 @@

                  MapAxes#<
                  -drop(axis_name)#
                  +drop(axis_name)[source]#

                  Drop an axis.

                  Parameters:
                  @@ -827,7 +827,7 @@

                  MapAxes#<
                  -classmethod from_default(axes, n_spatial_axes=None)#
                  +classmethod from_default(axes, n_spatial_axes=None)[source]#

                  Make a sequence of MapAxis objects.

                  Parameters:
                  @@ -849,7 +849,7 @@

                  MapAxes#<
                  -classmethod from_table(table, format='gadf')#
                  +classmethod from_table(table, format='gadf')[source]#

                  Create MapAxes from table.

                  Parameters:
                  @@ -871,7 +871,7 @@

                  MapAxes#<
                  -classmethod from_table_hdu(hdu, format='gadf')#
                  +classmethod from_table_hdu(hdu, format='gadf')[source]#

                  Create MapAxes from BinTableHDU.

                  Parameters:
                  @@ -893,7 +893,7 @@

                  MapAxes#<
                  -get_coord(mode='center', axis_name=None)#
                  +get_coord(mode='center', axis_name=None)[source]#

                  Get axes coordinates.

                  Parameters:
                  @@ -915,13 +915,13 @@

                  MapAxes#<
                  -index(axis_name)#
                  +index(axis_name)[source]#

                  Get index in list.

                  -index_data(axis_name)#
                  +index_data(axis_name)[source]#

                  Get data index of the axes.

                  Parameters:
                  @@ -941,7 +941,7 @@

                  MapAxes#<
                  -is_allclose(other, **kwargs)#
                  +is_allclose(other, **kwargs)[source]#

                  Check if other map axes are all close.

                  Parameters:
                  @@ -963,7 +963,7 @@

                  MapAxes#<
                  -pad(axis_name, pad_width)#
                  +pad(axis_name, pad_width)[source]#

                  Pad axis.

                  Parameters:
                  @@ -985,7 +985,7 @@

                  MapAxes#<
                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Convert pixel coordinates to map coordinates.

                  Parameters:
                  @@ -1005,7 +1005,7 @@

                  MapAxes#<
                  -pix_to_idx(pix, clip=False)#
                  +pix_to_idx(pix, clip=False)[source]#

                  Convert pixel to pixel indices.

                  Parameters:
                  @@ -1029,7 +1029,7 @@

                  MapAxes#<
                  -rename_axes(names, new_names)#
                  +rename_axes(names, new_names)[source]#

                  Rename the axes.

                  Parameters:
                  @@ -1051,7 +1051,7 @@

                  MapAxes#<
                  -replace(axis)#
                  +replace(axis)[source]#

                  Replace a given axis. In order to be replaced, the name of the new axis must match the name of the old axis.

                  @@ -1072,7 +1072,7 @@

                  MapAxes#<
                  -resample(axis)#
                  +resample(axis)[source]#

                  Resample axis binning.

                  This method groups the existing bins into a new binning.

                  @@ -1093,7 +1093,7 @@

                  MapAxes#<
                  -slice_by_idx(slices)#
                  +slice_by_idx(slices)[source]#

                  Create a new geometry by slicing the non-spatial axes.

                  Parameters:
                  @@ -1132,7 +1132,7 @@

                  MapAxes#<
                  -squash(axis_name)#
                  +squash(axis_name)[source]#

                  Squash axis.

                  Parameters:
                  @@ -1152,7 +1152,7 @@

                  MapAxes#<
                  -to_header(format='gadf')#
                  +to_header(format='gadf')[source]#

                  Convert axes to FITS header.

                  Parameters:
                  @@ -1172,7 +1172,7 @@

                  MapAxes#<
                  -to_table(format='gadf')#
                  +to_table(format='gadf')[source]#

                  Convert axes to table.

                  Parameters:
                  @@ -1192,7 +1192,7 @@

                  MapAxes#<
                  -to_table_hdu(format='gadf', hdu_bands=None)#
                  +to_table_hdu(format='gadf', hdu_bands=None)[source]#

                  Make FITS table columns for map axes.

                  Parameters:
                  @@ -1214,7 +1214,7 @@

                  MapAxes#<
                  -upsample(factor, axis_name)#
                  +upsample(factor, axis_name)[source]#

                  Upsample axis by a given factor.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.MapAxis.html b/docs/dev/api/gammapy.maps.MapAxis.html index a8a283d0ea9..e16b4faa869 100644 --- a/docs/dev/api/gammapy.maps.MapAxis.html +++ b/docs/dev/api/gammapy.maps.MapAxis.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  MapAxis#

                  -class gammapy.maps.MapAxis(nodes, interp='lin', name='', node_type='edges', unit='', boundary_type='monotonic')#
                  +class gammapy.maps.MapAxis(nodes, interp='lin', name='', node_type='edges', unit='', boundary_type='monotonic')[source]#

                  Bases: object

                  Class representing an axis of a map.

                  Provides methods for @@ -844,7 +844,7 @@

                  MapAxis#<

                  Methods Documentation

                  -assert_name(required_name)#
                  +assert_name(required_name)[source]#

                  Assert axis name if a specific one is required.

                  Parameters:
                  @@ -858,7 +858,7 @@

                  MapAxis#<
                  -concatenate(axis)#
                  +concatenate(axis)[source]#

                  Concatenate another MapAxis to this MapAxis into a new MapAxis object.

                  Name, interp type and node type must agree between the axes. If the node type is “edges”, the edges must be contiguous and non-overlapping.

                  @@ -880,7 +880,7 @@

                  MapAxis#<
                  -coord_to_idx(coord, clip=False)#
                  +coord_to_idx(coord, clip=False)[source]#

                  Transform axis coordinate to bin index.

                  Parameters:
                  @@ -904,7 +904,7 @@

                  MapAxis#<
                  -coord_to_pix(coord)#
                  +coord_to_pix(coord)[source]#

                  Transform axis to pixel coordinates.

                  Parameters:
                  @@ -924,7 +924,7 @@

                  MapAxis#<
                  -copy(**kwargs)#
                  +copy(**kwargs)[source]#

                  Copy MapAxis instance and overwrite given attributes.

                  Parameters:
                  @@ -944,7 +944,7 @@

                  MapAxis#<
                  -downsample(factor, strict=True)#
                  +downsample(factor, strict=True)[source]#

                  Downsample map axis by a given factor.

                  When downsampling, each n-th (given by the factor) bin is selected from the axis while preserving the axis limits. For node type “edges” this @@ -973,7 +973,7 @@

                  MapAxis#<
                  -format_plot_xaxis(ax)#
                  +format_plot_xaxis(ax)[source]#

                  Format the x-axis.

                  Parameters:
                  @@ -993,7 +993,7 @@

                  MapAxis#<
                  -format_plot_yaxis(ax)#
                  +format_plot_yaxis(ax)[source]#

                  Format plot y-axis.

                  Parameters:
                  @@ -1013,7 +1013,7 @@

                  MapAxis#<
                  -classmethod from_bounds(lo_bnd, hi_bnd, nbin, **kwargs)#
                  +classmethod from_bounds(lo_bnd, hi_bnd, nbin, **kwargs)[source]#

                  Generate an axis object from a lower/upper bound and number of bins.

                  If node_type = ‘edges’ then bounds correspond to the lower and upper bound of the first and last bin. If node_type @@ -1040,7 +1040,7 @@

                  MapAxis#<
                  -classmethod from_edges(edges, **kwargs)#
                  +classmethod from_edges(edges, **kwargs)[source]#

                  Generate an axis object from a sequence of bin edges.

                  This method should be used to construct an axis where the bin edges should lie at specific values (e.g. a histogram). The @@ -1062,7 +1062,7 @@

                  MapAxis#<
                  -classmethod from_energy_bounds(energy_min, energy_max, nbin, unit=None, per_decade=False, name=None, node_type='edges', strict_bounds=True)#
                  +classmethod from_energy_bounds(energy_min, energy_max, nbin, unit=None, per_decade=False, name=None, node_type='edges', strict_bounds=True)[source]#

                  Make an energy axis from energy bounds. The interpolation is always ‘log’.

                  Used frequently also to make energy grids, by making the axis, and then using axis.center or axis.edges.

                  @@ -1100,7 +1100,7 @@

                  MapAxis#<
                  -classmethod from_energy_edges(energy_edges, unit=None, name=None, interp='log')#
                  +classmethod from_energy_edges(energy_edges, unit=None, name=None, interp='log')[source]#

                  Make an energy axis from adjacent edges.

                  Parameters:
                  @@ -1126,7 +1126,7 @@

                  MapAxis#<
                  -classmethod from_nodes(nodes, **kwargs)#
                  +classmethod from_nodes(nodes, **kwargs)[source]#

                  Generate an axis object from a sequence of nodes (bin centers).

                  This will create a sequence of bins with edges half-way between the node values. This method should be used to @@ -1149,7 +1149,7 @@

                  MapAxis#<
                  -classmethod from_stack(axes)#
                  +classmethod from_stack(axes)[source]#

                  Create a map axis by merging a list of other map axes.

                  If the node type is “edges” the bin edges in the provided axes must be contiguous and non-overlapping.

                  @@ -1171,7 +1171,7 @@

                  MapAxis#<
                  -classmethod from_table(table, format='ogip', idx=0, column_prefix='')#
                  +classmethod from_table(table, format='ogip', idx=0, column_prefix='')[source]#

                  Instantiate MapAxis from a table HDU.

                  Parameters:
                  @@ -1197,7 +1197,7 @@

                  MapAxis#<
                  -classmethod from_table_hdu(hdu, format='ogip', idx=0)#
                  +classmethod from_table_hdu(hdu, format='ogip', idx=0)[source]#

                  Instantiate MapAxis from table HDU.

                  Parameters:
                  @@ -1221,7 +1221,7 @@

                  MapAxis#<
                  -group_table(edges)#
                  +group_table(edges)[source]#

                  Compute bin groups table for the map axis, given coarser bin edges.

                  Parameters:
                  @@ -1241,7 +1241,7 @@

                  MapAxis#<
                  -is_aligned(other, atol=0.02)#
                  +is_aligned(other, atol=0.02)[source]#

                  Check if the other map axis is aligned.

                  Two axes are aligned if their center coordinate values map to integers on the other axes as well and if the interpolation modes are equivalent.

                  @@ -1265,7 +1265,7 @@

                  MapAxis#<
                  -is_allclose(other, **kwargs)#
                  +is_allclose(other, **kwargs)[source]#

                  Check if the other map axis is all close.

                  Parameters:
                  @@ -1287,7 +1287,7 @@

                  MapAxis#<
                  -pad(pad_width)#
                  +pad(pad_width)[source]#

                  Pad the axis by a given number of pixels.

                  Parameters:
                  @@ -1308,7 +1308,7 @@

                  MapAxis#<
                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Transform pixel to axis coordinates.

                  Parameters:
                  @@ -1328,7 +1328,7 @@

                  MapAxis#<
                  -pix_to_idx(pix, clip=False)#
                  +pix_to_idx(pix, clip=False)[source]#

                  Convert pixel to index.

                  Parameters:
                  @@ -1352,7 +1352,7 @@

                  MapAxis#<
                  -rename(new_name)#
                  +rename(new_name)[source]#

                  Rename the axis. Return a copy of the MapAxis instance with name set to new_name.

                  Parameters:
                  @@ -1372,7 +1372,7 @@

                  MapAxis#<
                  -round(coord, clip=False)#
                  +round(coord, clip=False)[source]#

                  Round coordinate to the nearest axis edge.

                  Parameters:
                  @@ -1396,7 +1396,7 @@

                  MapAxis#<
                  -slice(idx)#
                  +slice(idx)[source]#

                  Create a new axis object by extracting a slice from this axis.

                  Parameters:
                  @@ -1425,7 +1425,7 @@

                  MapAxis#<
                  -squash()#
                  +squash()[source]#

                  Create a new axis object by squashing the axis into one bin.

                  Returns:
                  @@ -1439,7 +1439,7 @@

                  MapAxis#<
                  -to_header(format='ogip', idx=0)#
                  +to_header(format='ogip', idx=0)[source]#

                  Create FITS header.

                  Parameters:
                  @@ -1461,7 +1461,7 @@

                  MapAxis#<
                  -to_node_type(node_type)#
                  +to_node_type(node_type)[source]#

                  Return a copy of the MapAxis instance with a node type set to node_type.

                  Parameters:
                  @@ -1481,7 +1481,7 @@

                  MapAxis#<
                  -to_table(format='ogip')#
                  +to_table(format='ogip')[source]#

                  Convert Quantity to OGIP EBOUNDS extension.

                  See https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/memos/cal_gen_92_002/cal_gen_92_002.html#tth_sEc3.2 # noqa: E501

                  The ‘ogip-sherpa’ format is equivalent to ‘ogip’ but uses keV energy units.

                  @@ -1503,7 +1503,7 @@

                  MapAxis#<
                  -to_table_hdu(format='ogip')#
                  +to_table_hdu(format='ogip')[source]#

                  Convert Quantity to OGIP EBOUNDS extension.

                  See https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/docs/memos/cal_gen_92_002/cal_gen_92_002.html#tth_sEc3.2 # noqa: E501

                  The ‘ogip-sherpa’ format is equivalent to ‘ogip’ but uses keV energy units.

                  @@ -1525,7 +1525,7 @@

                  MapAxis#<
                  -upsample(factor)#
                  +upsample(factor)[source]#

                  Upsample map axis by a given factor.

                  When upsampling for each node specified in the axis, the corresponding number of sub-nodes are introduced and preserving the initial nodes. For @@ -1549,7 +1549,7 @@

                  MapAxis#<
                  -wrap_coord(coord)#
                  +wrap_coord(coord)[source]#

                  Wrap coords between axis edges for a periodic boundary condition

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.MapCoord.html b/docs/dev/api/gammapy.maps.MapCoord.html index 734058a6427..ab63e45ee56 100644 --- a/docs/dev/api/gammapy.maps.MapCoord.html +++ b/docs/dev/api/gammapy.maps.MapCoord.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  MapCoord#

                  -class gammapy.maps.MapCoord(data, frame=None, match_by_name=True)#
                  +class gammapy.maps.MapCoord(data, frame=None, match_by_name=True)[source]#

                  Bases: object

                  Represents a sequence of n-dimensional map coordinates.

                  Contains coordinates for 2 spatial dimensions and an arbitrary @@ -678,7 +678,7 @@

                  MapCoord

                  Methods Documentation

                  -apply_mask(mask)#
                  +apply_mask(mask)[source]#

                  Return a masked copy of this coordinate object.

                  Parameters:
                  @@ -698,13 +698,13 @@

                  MapCoord
                  -copy()#
                  +copy()[source]#

                  Copy MapCoord object.

                  -classmethod create(data, frame=None, axis_names=None)#
                  +classmethod create(data, frame=None, axis_names=None)[source]#

                  Create a new MapCoord object.

                  This method can be used to create either unnamed (with tuple input) or named (via dict input) axes.

                  @@ -742,7 +742,7 @@

                  MapCoord
                  -to_frame(frame)#
                  +to_frame(frame)[source]#

                  Convert to a different coordinate frame.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.Maps.html b/docs/dev/api/gammapy.maps.Maps.html index 2c8bbefd7b5..07290f1cda2 100644 --- a/docs/dev/api/gammapy.maps.Maps.html +++ b/docs/dev/api/gammapy.maps.Maps.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  Maps#

                  -class gammapy.maps.Maps(**kwargs)#
                  +class gammapy.maps.Maps(**kwargs)[source]#

                  Bases: MutableMapping

                  A Dictionary containing Map objects sharing the same geometry.

                  This class simplifies handling and I/O of maps collections.

                  @@ -590,7 +590,7 @@

                  Maps#
                  -classmethod from_geom(geom, names, kwargs_list=None)#
                  +classmethod from_geom(geom, names, kwargs_list=None)[source]#

                  Create map dictionary from a geometry.

                  Parameters:
                  @@ -614,7 +614,7 @@

                  Maps#
                  -classmethod from_hdulist(hdulist, hdu_bands='BANDS')#
                  +classmethod from_hdulist(hdulist, hdu_bands='BANDS')[source]#

                  Create map dictionary from a HDU list.

                  Because FITS keywords are case-insensitive, all key names will return as lower-case.

                  @@ -665,7 +665,7 @@

                  Maps#
                  -classmethod read(filename, checksum=False)#
                  +classmethod read(filename, checksum=False)[source]#

                  Read map dictionary from file.

                  Because FITS keywords are case-insensitive, all key names will return as lower-case.

                  @@ -691,7 +691,7 @@

                  Maps#
                  -to_hdulist(hdu_bands='BANDS')#
                  +to_hdulist(hdu_bands='BANDS')[source]#

                  Convert map dictionary to list of HDUs.

                  Parameters:
                  @@ -725,7 +725,7 @@

                  Maps#
                  -write(filename, overwrite=False, checksum=False)#
                  +write(filename, overwrite=False, checksum=False)[source]#

                  Write map dictionary to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.RegionGeom.html b/docs/dev/api/gammapy.maps.RegionGeom.html index 2a3231f91c2..f02464134bd 100644 --- a/docs/dev/api/gammapy.maps.RegionGeom.html +++ b/docs/dev/api/gammapy.maps.RegionGeom.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  RegionGeom#

                  -class gammapy.maps.RegionGeom(region, axes=None, wcs=None, binsz_wcs='0.1 deg')#
                  +class gammapy.maps.RegionGeom(region, axes=None, wcs=None, binsz_wcs='0.1 deg')[source]#

                  Bases: Geom

                  Map geometry representing a region on the sky.

                  The spatial component of the geometry is made up of a @@ -889,7 +889,7 @@

                  RegionGeomMethods Documentation

                  -bin_volume()#
                  +bin_volume()[source]#

                  If the RegionGeom has a non-spatial axis, it returns the volume of the region. If not, it returns the solid angle size.

                  @@ -904,7 +904,7 @@

                  RegionGeom
                  -contains(coords)#
                  +contains(coords)[source]#

                  Check if a given map coordinate is contained in the region.

                  Requires the region attribute to be set. For PointSkyRegion the method always returns True.

                  @@ -948,7 +948,7 @@

                  RegionGeom
                  -contains_wcs_pix(pix)#
                  +contains_wcs_pix(pix)[source]#

                  Check if a given WCS pixel coordinate is contained in the region.

                  For PointSkyRegion the method always returns True.

                  @@ -999,7 +999,7 @@

                  RegionGeom
                  -coord_to_pix(coords)#
                  +coord_to_pix(coords)[source]#

                  Convert map coordinates to pixel coordinates.

                  Parameters:
                  @@ -1043,7 +1043,7 @@

                  RegionGeom
                  -classmethod create(region, **kwargs)#
                  +classmethod create(region, **kwargs)[source]#

                  Create region geometry.

                  The input region can be passed in the form of a ds9 string and will be parsed internally by parse. See:

                  @@ -1071,7 +1071,7 @@

                  RegionGeom
                  -crop()#
                  +crop()[source]#

                  Crop the geometry at the edges.

                  Parameters:
                  @@ -1112,7 +1112,7 @@

                  RegionGeom
                  -downsample(factor, axis_name)#
                  +downsample(factor, axis_name)[source]#

                  Downsample a non-spatial dimension of the region by a given factor.

                  Returns:
                  @@ -1168,7 +1168,7 @@

                  RegionGeom
                  -classmethod from_hdulist(hdulist, format='ogip', hdu=None)#
                  +classmethod from_hdulist(hdulist, format='ogip', hdu=None)[source]#

                  Read region table and convert it to region list.

                  Parameters:
                  @@ -1192,7 +1192,7 @@

                  RegionGeom
                  -classmethod from_regions(regions, **kwargs)#
                  +classmethod from_regions(regions, **kwargs)[source]#

                  Create region geometry from list of regions.

                  The regions are combined with union to a compound region.

                  @@ -1215,7 +1215,7 @@

                  RegionGeom
                  -get_coord(mode='center', frame=None, sparse=False, axis_name=None)#
                  +get_coord(mode='center', frame=None, sparse=False, axis_name=None)[source]#

                  Get map coordinates from the geometry.

                  Parameters:
                  @@ -1243,7 +1243,7 @@

                  RegionGeom
                  -get_idx()#
                  +get_idx()[source]#

                  Get tuple of pixel indices for this geometry.

                  Returns all pixels in the geometry by default. Pixel indices for a single image plane can be accessed by setting idx @@ -1277,7 +1277,7 @@

                  RegionGeom
                  -get_wcs_coord_and_weights(factor=10)#
                  +get_wcs_coord_and_weights(factor=10)[source]#

                  Get the array of spatial coordinates and corresponding weights.

                  The coordinates are the center of a pixel that intersects the region and the weights that represent which fraction of the pixel is contained @@ -1305,7 +1305,7 @@

                  RegionGeom
                  -is_allclose(other, rtol_axes=1e-06, atol_axes=1e-06)#
                  +is_allclose(other, rtol_axes=1e-06, atol_axes=1e-06)[source]#

                  Compare two data IRFs for equivalency.

                  Parameters:
                  @@ -1353,7 +1353,7 @@

                  RegionGeom
                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Convert pixel coordinates to map coordinates.

                  Parameters:
                  @@ -1373,7 +1373,7 @@

                  RegionGeom
                  -pix_to_idx(pix, clip=False)#
                  +pix_to_idx(pix, clip=False)[source]#

                  Convert pixel coordinates to pixel indices.

                  Returns -1 for pixel coordinates that lie outside the map.

                  @@ -1398,7 +1398,7 @@

                  RegionGeom
                  -plot_region(ax=None, kwargs_point=None, path_effect=None, **kwargs)#
                  +plot_region(ax=None, kwargs_point=None, path_effect=None, **kwargs)[source]#

                  Plot region in the sky.

                  Parameters:
                  @@ -1492,7 +1492,7 @@

                  RegionGeom
                  -separation(position)#
                  +separation(position)[source]#

                  Angular distance between the center of the region and the given position.

                  Parameters:
                  @@ -1544,7 +1544,7 @@

                  RegionGeom
                  -solid_angle()#
                  +solid_angle()[source]#

                  Get solid angle of the region.

                  Returns:
                  @@ -1584,13 +1584,13 @@

                  RegionGeom
                  -to_binsz(binsz)#
                  +to_binsz(binsz)[source]#

                  Return self.

                  -to_binsz_wcs(binsz)#
                  +to_binsz_wcs(binsz)[source]#

                  Change the bin size of the underlying WCS geometry.

                  Parameters:
                  @@ -1611,7 +1611,7 @@

                  RegionGeom
                  -to_cube(axes)#
                  +to_cube(axes)[source]#

                  Append non-spatial axes to create a higher-dimensional geometry.

                  Returns:
                  @@ -1625,7 +1625,7 @@

                  RegionGeom
                  -to_hdulist(format='ogip', hdu_bands=None, hdu_region=None)#
                  +to_hdulist(format='ogip', hdu_bands=None, hdu_region=None)[source]#

                  Convert geometry to HDU list.

                  Parameters:
                  @@ -1652,7 +1652,7 @@

                  RegionGeom
                  -to_image()#
                  +to_image()[source]#

                  Remove non-spatial axes to create a 2D region.

                  Returns:
                  @@ -1666,7 +1666,7 @@

                  RegionGeom
                  -to_wcs_geom(width_min=None)#
                  +to_wcs_geom(width_min=None)[source]#

                  Get the minimal equivalent geometry which contains the region.

                  Parameters:
                  @@ -1688,13 +1688,13 @@

                  RegionGeom
                  -union(other)#
                  +union(other)[source]#

                  Stack a RegionGeom by making the union.

                  -upsample(factor, axis_name=None)#
                  +upsample(factor, axis_name=None)[source]#

                  Upsample a non-spatial dimension of the region by a given factor.

                  Returns:
                  diff --git a/docs/dev/api/gammapy.maps.RegionNDMap.html b/docs/dev/api/gammapy.maps.RegionNDMap.html index d3c7ecfb503..2be25bf5520 100644 --- a/docs/dev/api/gammapy.maps.RegionNDMap.html +++ b/docs/dev/api/gammapy.maps.RegionNDMap.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  RegionNDMap#

                  -class gammapy.maps.RegionNDMap(geom, data=None, dtype='float32', meta=None, unit='')#
                  +class gammapy.maps.RegionNDMap(geom, data=None, dtype='float32', meta=None, unit='')[source]#

                  Bases: Map

                  N-dimensional region map.

                  A RegionNDMap owns a RegionGeom instance as well as a data array @@ -852,7 +852,7 @@

                  RegionNDMap
                  -classmethod create(region, axes=None, dtype='float32', meta=None, unit='', wcs=None, binsz_wcs='0.1 deg', data=None)#
                  +classmethod create(region, axes=None, dtype='float32', meta=None, unit='', wcs=None, binsz_wcs='0.1 deg', data=None)[source]#

                  Create an empty region map object.

                  Parameters:
                  @@ -889,7 +889,7 @@

                  RegionNDMap
                  -crop()#
                  +crop()[source]#

                  Crop the spatial dimensions of the map.

                  Parameters:
                  @@ -930,7 +930,7 @@

                  RegionNDMap
                  -cutout(*args, **kwargs)#
                  +cutout(*args, **kwargs)[source]#

                  Return self.

                  @@ -959,7 +959,7 @@

                  RegionNDMap
                  -downsample(factor, preserve_counts=True, axis_name=None, weights=None)#
                  +downsample(factor, preserve_counts=True, axis_name=None, weights=None)[source]#

                  Downsample the non-spatial dimension by a given factor.

                  By default, the first axes is downsampled.

                  @@ -1008,7 +1008,7 @@

                  RegionNDMap
                  -fill_by_idx(idx, weights=None)#
                  +fill_by_idx(idx, weights=None)[source]#

                  Fill pixels at idx with given weights.

                  Parameters:
                  @@ -1091,7 +1091,7 @@

                  RegionNDMap
                  -classmethod from_hdulist(hdulist, format='gadf', ogip_column=None, hdu=None, **kwargs)#
                  +classmethod from_hdulist(hdulist, format='gadf', ogip_column=None, hdu=None, **kwargs)[source]#

                  Create from HDUList.

                  Parameters:
                  @@ -1146,7 +1146,7 @@

                  RegionNDMap
                  -classmethod from_table(table, format='', colname=None)#
                  +classmethod from_table(table, format='', colname=None)[source]#

                  Create region map from table.

                  Parameters:
                  @@ -1196,7 +1196,7 @@

                  RegionNDMap
                  -get_by_idx(idxs)#
                  +get_by_idx(idxs)[source]#

                  Return map values at the given pixel indices.

                  Parameters:
                  @@ -1365,7 +1365,7 @@

                  RegionNDMap
                  -get_spectrum(*args, **kwargs)#
                  +get_spectrum(*args, **kwargs)[source]#

                  Return self.

                  @@ -1396,7 +1396,7 @@

                  RegionNDMap
                  -interp_by_coord(coords, **kwargs)#
                  +interp_by_coord(coords, **kwargs)[source]#

                  Interpolate map values at the given map coordinates.

                  Parameters:
                  @@ -1427,7 +1427,7 @@

                  RegionNDMap
                  -interp_by_pix(pix, **kwargs)#
                  +interp_by_pix(pix, **kwargs)[source]#

                  Interpolate map values at the given pixel coordinates.

                  Parameters:
                  @@ -1532,7 +1532,7 @@

                  RegionNDMap
                  -iter_by_axis_data(axis_name)#
                  +iter_by_axis_data(axis_name)[source]#

                  Iterate data by axis.

                  Parameters:
                  @@ -1689,7 +1689,7 @@

                  RegionNDMap
                  -plot(ax=None, axis_name=None, **kwargs)#
                  +plot(ax=None, axis_name=None, **kwargs)[source]#

                  Plot the data contained in region map along the non-spatial axis.

                  Parameters:
                  @@ -1739,7 +1739,7 @@

                  RegionNDMap
                  -plot_hist(ax=None, **kwargs)#
                  +plot_hist(ax=None, **kwargs)[source]#

                  Plot as histogram.

                  Parameters:
                  @@ -1762,7 +1762,7 @@

                  RegionNDMap
                  -plot_interactive()#
                  +plot_interactive()[source]#

                  Plot map with interactive widgets to explore the non-spatial axes.

                  Parameters:
                  @@ -1791,7 +1791,7 @@

                  RegionNDMap
                  -plot_mask(ax=None, **kwargs)#
                  +plot_mask(ax=None, **kwargs)[source]#

                  Plot the mask as a shaded area in a xmin-xmax range.

                  Parameters:
                  @@ -1814,7 +1814,7 @@

                  RegionNDMap
                  -plot_region(ax=None, **kwargs)#
                  +plot_region(ax=None, **kwargs)[source]#

                  Plot region.

                  Parameters:
                  @@ -1832,7 +1832,7 @@

                  RegionNDMap
                  -classmethod read(filename, format='gadf', ogip_column=None, hdu=None, checksum=False)#
                  +classmethod read(filename, format='gadf', ogip_column=None, hdu=None, checksum=False)[source]#

                  Read from file.

                  Parameters:
                  @@ -2109,7 +2109,7 @@

                  RegionNDMap
                  -set_by_idx(idx, value)#
                  +set_by_idx(idx, value)[source]#

                  Set pixels at idx with given vals.

                  Parameters:
                  @@ -2197,7 +2197,7 @@

                  RegionNDMap
                  -stack(other, weights=None, nan_to_num=True)#
                  +stack(other, weights=None, nan_to_num=True)[source]#

                  Stack other region map into map.

                  Parameters:
                  @@ -2268,7 +2268,7 @@

                  RegionNDMap
                  -to_hdulist(format='gadf', hdu='SKYMAP', hdu_bands=None, hdu_region=None)#
                  +to_hdulist(format='gadf', hdu='SKYMAP', hdu_bands=None, hdu_region=None)[source]#

                  Convert to HDUList.

                  Parameters:
                  @@ -2297,13 +2297,13 @@

                  RegionNDMap
                  -to_region_nd_map(*args, **kwargs)#
                  +to_region_nd_map(*args, **kwargs)[source]#

                  Return self.

                  -to_table(format='gadf')#
                  +to_table(format='gadf')[source]#

                  Convert to Table.

                  Data format specification: PHA.

                  @@ -2344,7 +2344,7 @@

                  RegionNDMap
                  -upsample(factor, order=0, preserve_counts=True, axis_name=None)#
                  +upsample(factor, order=0, preserve_counts=True, axis_name=None)[source]#

                  Upsample the non-spatial dimension by a given factor.

                  By default, the first axes is upsampled.

                  @@ -2375,7 +2375,7 @@

                  RegionNDMap
                  -write(filename, overwrite=False, format='gadf', hdu='SKYMAP', checksum=False)#
                  +write(filename, overwrite=False, format='gadf', hdu='SKYMAP', checksum=False)[source]#

                  Write map to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.TimeMapAxis.html b/docs/dev/api/gammapy.maps.TimeMapAxis.html index 13966c4248d..b5dbbdafe7e 100644 --- a/docs/dev/api/gammapy.maps.TimeMapAxis.html +++ b/docs/dev/api/gammapy.maps.TimeMapAxis.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  TimeMapAxis#

                  -class gammapy.maps.TimeMapAxis(edges_min, edges_max, reference_time, name='time', interp='lin')#
                  +class gammapy.maps.TimeMapAxis(edges_min, edges_max, reference_time, name='time', interp='lin')[source]#

                  Bases: object

                  Class representing a time axis.

                  Provides methods for transforming to/from axis and pixel coordinates. @@ -844,7 +844,7 @@

                  TimeMapAxisMethods Documentation

                  -assert_name(required_name)#
                  +assert_name(required_name)[source]#

                  Assert axis name if a specific one is required.

                  Parameters:
                  @@ -858,7 +858,7 @@

                  TimeMapAxis
                  -coord_to_idx(coord, **kwargs)#
                  +coord_to_idx(coord, **kwargs)[source]#

                  Transform time axis coordinate to bin index.

                  Indices of time values falling outside time bins will be set to -1.

                  @@ -881,7 +881,7 @@

                  TimeMapAxis
                  -coord_to_pix(coord, **kwargs)#
                  +coord_to_pix(coord, **kwargs)[source]#

                  Transform time axis coordinate to pixel position.

                  Pixels of time values falling outside time bins will be set to -1.

                  @@ -903,7 +903,7 @@

                  TimeMapAxis
                  -copy(**kwargs)#
                  +copy(**kwargs)[source]#

                  Copy TimeMapAxis instance and overwrite given attributes.

                  Parameters:
                  @@ -923,13 +923,13 @@

                  TimeMapAxis
                  -downsample()#
                  +downsample()[source]#

                  Not supported for time axis.

                  -format_plot_xaxis(ax)#
                  +format_plot_xaxis(ax)[source]#

                  Format the x-axis.

                  Parameters:
                  @@ -949,7 +949,7 @@

                  TimeMapAxis
                  -classmethod from_gti(gti, name='time')#
                  +classmethod from_gti(gti, name='time')[source]#

                  Create a time axis from an input GTI.

                  Parameters:
                  @@ -971,7 +971,7 @@

                  TimeMapAxis
                  -classmethod from_gti_bounds(gti, t_delta, name='time')#
                  +classmethod from_gti_bounds(gti, t_delta, name='time')[source]#

                  Create a time axis from an input GTI.

                  The unit for the axis is taken from the t_delta quantity.

                  @@ -996,7 +996,7 @@

                  TimeMapAxis
                  -classmethod from_table(table, format='gadf', idx=0)#
                  +classmethod from_table(table, format='gadf', idx=0)[source]#

                  Create time map axis from table

                  Parameters:
                  @@ -1020,7 +1020,7 @@

                  TimeMapAxis
                  -classmethod from_time_bounds(time_min, time_max, nbin, unit='d', name='time')#
                  +classmethod from_time_bounds(time_min, time_max, nbin, unit='d', name='time')[source]#

                  Create linearly spaced time axis from bounds.

                  Parameters:
                  @@ -1042,7 +1042,7 @@

                  TimeMapAxis
                  -classmethod from_time_edges(time_min, time_max, unit='d', interp='lin', name='time')#
                  +classmethod from_time_edges(time_min, time_max, unit='d', interp='lin', name='time')[source]#

                  Create TimeMapAxis from the time interval edges defined as a Time object.

                  The reference time is defined as the lower edge of the first interval.

                  @@ -1072,7 +1072,7 @@

                  TimeMapAxis
                  -group_table(interval_edges)#
                  +group_table(interval_edges)[source]#

                  Compute bin groups table for the TimeMapAxis, given coarser bin edges.

                  Parameters:
                  @@ -1098,13 +1098,13 @@

                  TimeMapAxis
                  -is_aligned(other, atol=0.02)#
                  +is_aligned(other, atol=0.02)[source]#

                  Not supported for time axis.

                  -is_allclose(other, **kwargs)#
                  +is_allclose(other, **kwargs)[source]#

                  Check if other time map axis is all close.

                  Parameters:
                  @@ -1126,7 +1126,7 @@

                  TimeMapAxis
                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Transform from pixel position to time coordinate. Currently, works only for linear interpolation scheme.

                  @@ -1147,12 +1147,12 @@

                  TimeMapAxis
                  -static pix_to_idx(pix, clip=False)#
                  +static pix_to_idx(pix, clip=False)[source]#

                  -slice(idx)#
                  +slice(idx)[source]#

                  Create a new axis object by extracting a slice from this axis.

                  Parameters:
                  @@ -1185,7 +1185,7 @@

                  TimeMapAxis
                  -squash()#
                  +squash()[source]#

                  Create a new axis object by squashing the axis into one bin.

                  Returns:
                  @@ -1199,7 +1199,7 @@

                  TimeMapAxis
                  -to_contiguous()#
                  +to_contiguous()[source]#

                  Make the time axis contiguous.

                  Returns:
                  @@ -1213,7 +1213,7 @@

                  TimeMapAxis
                  -to_gti()#
                  +to_gti()[source]#

                  Convert the axis to a GTI table.

                  Returns:
                  @@ -1227,7 +1227,7 @@

                  TimeMapAxis
                  -to_header(format='gadf', idx=0)#
                  +to_header(format='gadf', idx=0)[source]#

                  Create FITS header.

                  Parameters:
                  @@ -1249,7 +1249,7 @@

                  TimeMapAxis
                  -to_table()#
                  +to_table()[source]#

                  Create table.

                  Returns:
                  @@ -1263,7 +1263,7 @@

                  TimeMapAxis
                  -upsample()#
                  +upsample()[source]#

                  Not supported for time axis.

                  diff --git a/docs/dev/api/gammapy.maps.WcsGeom.html b/docs/dev/api/gammapy.maps.WcsGeom.html index 5985599716d..035c795c79e 100644 --- a/docs/dev/api/gammapy.maps.WcsGeom.html +++ b/docs/dev/api/gammapy.maps.WcsGeom.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  WcsGeom#

                  -class gammapy.maps.WcsGeom(wcs, npix=None, cdelt=None, crpix=None, axes=None)#
                  +class gammapy.maps.WcsGeom(wcs, npix=None, cdelt=None, crpix=None, axes=None)[source]#

                  Bases: Geom

                  Geometry class for WCS maps.

                  This class encapsulates both the WCS transformation object and @@ -959,13 +959,13 @@

                  WcsGeom#<

                  Methods Documentation

                  -bin_volume()#
                  +bin_volume()[source]#

                  Bin volume as a Quantity.

                  -binary_structure(width, kernel='disk')#
                  +binary_structure(width, kernel='disk')[source]#

                  Get binary structure.

                  Parameters:
                  @@ -990,7 +990,7 @@

                  WcsGeom#<
                  -boundary_mask(width)#
                  +boundary_mask(width)[source]#

                  Create a mask applying binary erosion with a given width from geometry edges.

                  Parameters:
                  @@ -1011,7 +1011,7 @@

                  WcsGeom#<
                  -contains(coords)#
                  +contains(coords)[source]#

                  Check if a given map coordinate is contained in the geometry.

                  Parameters:
                  @@ -1081,7 +1081,7 @@

                  WcsGeom#<
                  -coord_to_pix(coords)#
                  +coord_to_pix(coords)[source]#

                  Convert map coordinates to pixel coordinates.

                  Parameters:
                  @@ -1125,7 +1125,7 @@

                  WcsGeom#<
                  -classmethod create(npix=None, binsz=0.5, proj='CAR', frame='icrs', refpix=None, axes=None, skydir=None, width=None)#
                  +classmethod create(npix=None, binsz=0.5, proj='CAR', frame='icrs', refpix=None, axes=None, skydir=None, width=None)[source]#

                  Create a WCS geometry object.

                  Pixelization of the map is set with binsz and one of either npix or width arguments. @@ -1194,7 +1194,7 @@

                  WcsGeom#<
                  -crop(crop_width)#
                  +crop(crop_width)[source]#

                  Crop the geometry at the edges.

                  Parameters:
                  @@ -1214,7 +1214,7 @@

                  WcsGeom#<
                  -cutout(position, width, mode='trim', odd_npix=False, min_npix=1)#
                  +cutout(position, width, mode='trim', odd_npix=False, min_npix=1)[source]#

                  Create a cutout around a given position.

                  Parameters:
                  @@ -1246,7 +1246,7 @@

                  WcsGeom#<
                  -cutout_slices(geom, mode='partial')#
                  +cutout_slices(geom, mode='partial')[source]#

                  Compute cutout slices.

                  Parameters:
                  @@ -1289,7 +1289,7 @@

                  WcsGeom#<
                  -downsample(factor, axis_name=None)#
                  +downsample(factor, axis_name=None)[source]#

                  Downsample the spatial dimension of the geometry by a given factor.

                  Parameters:
                  @@ -1353,7 +1353,7 @@

                  WcsGeom#<
                  -classmethod from_aligned(geom, skydir, width)#
                  +classmethod from_aligned(geom, skydir, width)[source]#

                  Create an aligned geometry from an existing one.

                  Parameters:
                  @@ -1408,7 +1408,7 @@

                  WcsGeom#<
                  -classmethod from_header(header, hdu_bands=None, format='gadf')#
                  +classmethod from_header(header, hdu_bands=None, format='gadf')[source]#

                  Create a WCS geometry object from a FITS header.

                  Parameters:
                  @@ -1432,7 +1432,7 @@

                  WcsGeom#<
                  -get_coord(idx=None, mode='center', frame=None, sparse=False, axis_name=None)#
                  +get_coord(idx=None, mode='center', frame=None, sparse=False, axis_name=None)[source]#

                  Get map coordinates from the geometry.

                  Parameters:
                  @@ -1462,7 +1462,7 @@

                  WcsGeom#<
                  -get_idx(idx=None, flat=False)#
                  +get_idx(idx=None, flat=False)[source]#

                  Get tuple of pixel indices for this geometry.

                  Returns all pixels in the geometry by default. Pixel indices for a single image plane can be accessed by setting idx @@ -1496,7 +1496,7 @@

                  WcsGeom#<
                  -get_pix(idx=None, mode='center')#
                  +get_pix(idx=None, mode='center')[source]#

                  Get map pixel coordinates from the geometry.

                  Parameters:
                  @@ -1517,7 +1517,7 @@

                  WcsGeom#<
                  -is_aligned(other, tolerance=1e-06)#
                  +is_aligned(other, tolerance=1e-06)[source]#

                  Check if WCS and extra axes are aligned.

                  Parameters:
                  @@ -1540,7 +1540,7 @@

                  WcsGeom#<
                  -is_allclose(other, rtol_axes=1e-06, atol_axes=1e-06, rtol_wcs=1e-06)#
                  +is_allclose(other, rtol_axes=1e-06, atol_axes=1e-06, rtol_wcs=1e-06)[source]#

                  Compare two data IRFs for equivalency.

                  Parameters:
                  @@ -1591,7 +1591,7 @@

                  WcsGeom#<
                  -pix_to_coord(pix)#
                  +pix_to_coord(pix)[source]#

                  Convert pixel coordinates to map coordinates.

                  Parameters:
                  @@ -1611,7 +1611,7 @@

                  WcsGeom#<
                  -pix_to_idx(pix, clip=False)#
                  +pix_to_idx(pix, clip=False)[source]#

                  Convert pixel coordinates to pixel indices.

                  Returns -1 for pixel coordinates that lie outside the map.

                  @@ -1636,7 +1636,7 @@

                  WcsGeom#<
                  -region_mask(regions, inside=True)#
                  +region_mask(regions, inside=True)[source]#

                  Create a mask from a given list of regions.

                  The mask is filled such that a pixel inside the region is filled with “True”. To invert the mask, e.g. to create a mask with exclusion regions @@ -1685,7 +1685,7 @@

                  WcsGeom#<
                  -region_weights(regions, oversampling_factor=10)#
                  +region_weights(regions, oversampling_factor=10)[source]#

                  Compute regions weights.

                  Parameters:
                  @@ -1773,7 +1773,7 @@

                  WcsGeom#<
                  -separation(center)#
                  +separation(center)[source]#

                  Compute sky separation with respect to a given center.

                  Parameters:
                  @@ -1825,7 +1825,7 @@

                  WcsGeom#<
                  -solid_angle()#
                  +solid_angle()[source]#

                  Solid angle array as a Quantity in sr.

                  The array has the same dimension as the WcsGeom object if the spatial shape is not unique along the extra axis, @@ -1863,7 +1863,7 @@

                  WcsGeom#<
                  -to_binsz(binsz)#
                  +to_binsz(binsz)[source]#

                  Change pixel size of the geometry.

                  Parameters:
                  @@ -1883,7 +1883,7 @@

                  WcsGeom#<
                  -to_cube(axes)#
                  +to_cube(axes)[source]#

                  Append non-spatial axes to create a higher-dimensional geometry.

                  This will result in a new geometry with N+M dimensions where N is the number of current dimensions and @@ -1906,7 +1906,7 @@

                  WcsGeom#<
                  -to_even_npix()#
                  +to_even_npix()[source]#

                  Create a new geometry object with an even number of pixels and a maximum size.

                  Returns:
                  @@ -1920,12 +1920,12 @@

                  WcsGeom#<
                  -to_header()#
                  +to_header()[source]#
                  -to_image()#
                  +to_image()[source]#

                  Create a 2D image geometry (drop non-spatial dimensions).

                  Returns:
                  @@ -1939,7 +1939,7 @@

                  WcsGeom#<
                  -to_odd_npix(max_radius=None)#
                  +to_odd_npix(max_radius=None)[source]#

                  Create a new geometry object with an odd number of pixels and a maximum size.

                  This is useful for PSF kernel creation.

                  @@ -1961,7 +1961,7 @@

                  WcsGeom#<
                  -upsample(factor, axis_name=None)#
                  +upsample(factor, axis_name=None)[source]#

                  Upsample the spatial dimension of the geometry by a given factor.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.WcsMap.html b/docs/dev/api/gammapy.maps.WcsMap.html index b5f015098f1..c73e9637ee5 100644 --- a/docs/dev/api/gammapy.maps.WcsMap.html +++ b/docs/dev/api/gammapy.maps.WcsMap.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  WcsMap#

                  -class gammapy.maps.WcsMap(geom, data, meta=None, unit='')#
                  +class gammapy.maps.WcsMap(geom, data, meta=None, unit='')[source]#

                  Bases: Map

                  Base class for WCS map classes.

                  @@ -813,7 +813,7 @@

                  WcsMap#
                  -classmethod create(map_type='wcs', npix=None, binsz=0.1, width=None, proj='CAR', frame='icrs', refpix=None, axes=None, skydir=None, dtype='float32', meta=None, unit='')#
                  +classmethod create(map_type='wcs', npix=None, binsz=0.1, width=None, proj='CAR', frame='icrs', refpix=None, axes=None, skydir=None, dtype='float32', meta=None, unit='')[source]#

                  Factory method to create an empty WCS map.

                  Parameters:
                  @@ -1063,7 +1063,7 @@

                  WcsMap#
                  -classmethod from_hdulist(hdu_list, hdu=None, hdu_bands=None, format='gadf')#
                  +classmethod from_hdulist(hdu_list, hdu=None, hdu_bands=None, format='gadf')[source]#

                  Make a WcsMap object from a FITS HDUList.

                  Parameters:
                  @@ -2109,7 +2109,7 @@

                  WcsMap#
                  -to_hdu(hdu='SKYMAP', hdu_bands=None, sparse=False)#
                  +to_hdu(hdu='SKYMAP', hdu_bands=None, sparse=False)[source]#

                  Make a FITS HDU from this map.

                  Parameters:
                  @@ -2137,7 +2137,7 @@

                  WcsMap#
                  -to_hdulist(hdu=None, hdu_bands=None, sparse=False, format='gadf')#
                  +to_hdulist(hdu=None, hdu_bands=None, sparse=False, format='gadf')[source]#

                  Convert to HDUList.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.WcsNDMap.html b/docs/dev/api/gammapy.maps.WcsNDMap.html index 48b5c7852da..8b13cd18b83 100644 --- a/docs/dev/api/gammapy.maps.WcsNDMap.html +++ b/docs/dev/api/gammapy.maps.WcsNDMap.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  WcsNDMap#

                  -class gammapy.maps.WcsNDMap(geom, data=None, dtype='float32', meta=None, unit='')#
                  +class gammapy.maps.WcsNDMap(geom, data=None, dtype='float32', meta=None, unit='')[source]#

                  Bases: WcsMap

                  WCS map with any number of non-spatial dimensions.

                  This class uses an ND numpy array to store map values. For maps with @@ -823,7 +823,7 @@

                  WcsNDMap

                  Methods Documentation

                  -binary_dilate(width, kernel='disk', use_fft=True)#
                  +binary_dilate(width, kernel='disk', use_fft=True)[source]#

                  Binary dilation of boolean mask adding a given margin.

                  Parameters:
                  @@ -850,7 +850,7 @@

                  WcsNDMap
                  -binary_erode(width, kernel='disk', use_fft=True)#
                  +binary_erode(width, kernel='disk', use_fft=True)[source]#

                  Binary erosion of boolean mask removing a given margin.

                  Parameters:
                  @@ -897,7 +897,7 @@

                  WcsNDMap
                  -convolve(kernel, method='fft', mode='same')#
                  +convolve(kernel, method='fft', mode='same')[source]#

                  Convolve map with a kernel.

                  If the kernel is two-dimensional, it is applied to all image planes likewise. If the kernel is higher dimensional, it should either match the map in the number of @@ -1007,7 +1007,7 @@

                  WcsNDMap
                  -crop(crop_width)#
                  +crop(crop_width)[source]#

                  Crop the spatial dimensions of the map.

                  Parameters:
                  @@ -1048,7 +1048,7 @@

                  WcsNDMap
                  -cutout(position, width, mode='trim', odd_npix=False, min_npix=1)#
                  +cutout(position, width, mode='trim', odd_npix=False, min_npix=1)[source]#

                  Create a cutout around a given position.

                  Parameters:
                  @@ -1080,7 +1080,7 @@

                  WcsNDMap
                  -cutout_and_mask_region(region=None)#
                  +cutout_and_mask_region(region=None)[source]#

                  Compute cutout and mask for a given region of the map.

                  The function will estimate the minimal size of the cutout, which encloses the region.

                  @@ -1125,7 +1125,7 @@

                  WcsNDMap
                  -downsample(factor, preserve_counts=True, axis_name=None, weights=None)#
                  +downsample(factor, preserve_counts=True, axis_name=None, weights=None)[source]#

                  Downsample the spatial dimension by a given factor.

                  Parameters:
                  @@ -1169,7 +1169,7 @@

                  WcsNDMap
                  -fill_by_idx(idx, weights=None)#
                  +fill_by_idx(idx, weights=None)[source]#

                  Fill pixels at idx with given weights.

                  Parameters:
                  @@ -1252,7 +1252,7 @@

                  WcsNDMap
                  -classmethod from_hdu(hdu, hdu_bands=None, format=None)#
                  +classmethod from_hdu(hdu, hdu_bands=None, format=None)[source]#

                  Make a WcsNDMap object from a FITS HDU.

                  Parameters:
                  @@ -1357,7 +1357,7 @@

                  WcsNDMap
                  -get_by_idx(idx)#
                  +get_by_idx(idx)[source]#

                  Return map values at the given pixel indices.

                  Parameters:
                  @@ -1579,7 +1579,7 @@

                  WcsNDMap
                  -interp_by_coord(coords, method='linear', fill_value=None, values_scale='lin')#
                  +interp_by_coord(coords, method='linear', fill_value=None, values_scale='lin')[source]#

                  Interpolate map values at the given map coordinates.

                  Parameters:
                  @@ -1611,7 +1611,7 @@

                  WcsNDMap
                  -interp_by_pix(pix, method='linear', fill_value=None, values_scale='lin')#
                  +interp_by_pix(pix, method='linear', fill_value=None, values_scale='lin')[source]#

                  Interpolate map values at the given pixel coordinates.

                  Parameters:
                  @@ -1790,7 +1790,7 @@

                  WcsNDMap
                  -mask_contains_region(region)#
                  +mask_contains_region(region)[source]#

                  Check if input region is contained in a boolean mask map.

                  Parameters:
                  @@ -1873,7 +1873,7 @@

                  WcsNDMap
                  -plot(ax=None, fig=None, add_cbar=False, stretch='linear', axes_loc=None, kwargs_colorbar=None, **kwargs)#
                  +plot(ax=None, fig=None, add_cbar=False, stretch='linear', axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#

                  Plot image on matplotlib WCS axes.

                  Parameters:
                  @@ -1961,7 +1961,7 @@

                  WcsNDMap
                  -plot_mask(ax=None, **kwargs)#
                  +plot_mask(ax=None, **kwargs)[source]#

                  Plot the mask as a shaded area.

                  Parameters:
                  @@ -2266,7 +2266,7 @@

                  WcsNDMap
                  -set_by_idx(idx, vals)#
                  +set_by_idx(idx, vals)[source]#

                  Set pixels at idx with given vals.

                  Parameters:
                  @@ -2334,7 +2334,7 @@

                  WcsNDMap
                  -smooth(width, kernel='gauss', **kwargs)#
                  +smooth(width, kernel='gauss', **kwargs)[source]#

                  Smooth the map.

                  Iterates over 2D image planes, processing one at a time.

                  @@ -2386,7 +2386,7 @@

                  WcsNDMap
                  -stack(other, weights=None, nan_to_num=True)#
                  +stack(other, weights=None, nan_to_num=True)[source]#

                  Stack cutout into map.

                  Parameters:
                  @@ -2514,7 +2514,7 @@

                  WcsNDMap
                  -to_region_nd_map(region=None, func=<function nansum>, weights=None, method='nearest')#
                  +to_region_nd_map(region=None, func=<function nansum>, weights=None, method='nearest')[source]#

                  Get region ND map in a given region.

                  By default, the whole map region is considered.

                  @@ -2544,7 +2544,7 @@

                  WcsNDMap
                  -to_region_nd_map_histogram(region=None, bins_axis=None, nbin=100, density=False)#
                  +to_region_nd_map_histogram(region=None, bins_axis=None, nbin=100, density=False)[source]#

                  Convert map into region map by histogramming.

                  By default, it creates a linearly spaced axis with 100 bins between (-max(abs(data)), max(abs(data))) within the given region.

                  @@ -2612,7 +2612,7 @@

                  WcsNDMap
                  -upsample(factor, order=0, preserve_counts=True, axis_name=None)#
                  +upsample(factor, order=0, preserve_counts=True, axis_name=None)[source]#

                  Upsample the spatial dimension by a given factor.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.maps.containment_radius.html b/docs/dev/api/gammapy.maps.containment_radius.html index b5170b2865d..9d47ba1f0ca 100644 --- a/docs/dev/api/gammapy.maps.containment_radius.html +++ b/docs/dev/api/gammapy.maps.containment_radius.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  containment_radius#

                  -gammapy.maps.containment_radius(map_, fraction=0.393, position=None)#
                  +gammapy.maps.containment_radius(map_, fraction=0.393, position=None)[source]#
                  Compute containment radius from a position in a map

                  with integral quantities and flat geometry.

                  diff --git a/docs/dev/api/gammapy.maps.containment_region.html b/docs/dev/api/gammapy.maps.containment_region.html index c8d3bc0ca74..1d5e03fca89 100644 --- a/docs/dev/api/gammapy.maps.containment_region.html +++ b/docs/dev/api/gammapy.maps.containment_region.html @@ -69,7 +69,7 @@ - + @@ -513,7 +513,7 @@

                  containment_region#

                  -gammapy.maps.containment_region(map_, fraction=0.393, apply_union=True)#
                  +gammapy.maps.containment_region(map_, fraction=0.393, apply_union=True)[source]#
                  Find the iso-contours region corresponding to a given containment

                  for a map of integral quantities with a flat geometry.

                  diff --git a/docs/dev/api/gammapy.modeling.Covariance.html b/docs/dev/api/gammapy.modeling.Covariance.html index ef5b44216aa..b91ab127a3d 100644 --- a/docs/dev/api/gammapy.modeling.Covariance.html +++ b/docs/dev/api/gammapy.modeling.Covariance.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

                  Covariance#

                  -class gammapy.modeling.Covariance(parameters, data=None)#
                  +class gammapy.modeling.Covariance(parameters, data=None)[source]#

                  Bases: object

                  Parameter covariance class.

                  @@ -657,14 +657,14 @@

                  CovarianceMethods Documentation

                  -classmethod from_factor_matrix(parameters, matrix)#
                  +classmethod from_factor_matrix(parameters, matrix)[source]#

                  Set covariance from factor covariance matrix.

                  Used in the optimizer interface.

                  -classmethod from_stack(covar_list)#
                  +classmethod from_stack(covar_list)[source]#

                  Stack sub-covariance matrices from list.

                  Parameters:
                  @@ -684,7 +684,7 @@

                  Covariance
                  -get_subcovariance(parameters)#
                  +get_subcovariance(parameters)[source]#

                  Get sub-covariance matrix.

                  Parameters:
                  @@ -704,7 +704,7 @@

                  Covariance
                  -plot_correlation(figsize=None, **kwargs)#
                  +plot_correlation(figsize=None, **kwargs)[source]#

                  Plot correlation matrix.

                  Parameters:
                  @@ -727,7 +727,7 @@

                  Covariance
                  -set_subcovariance(covar)#
                  +set_subcovariance(covar)[source]#

                  Set sub-covariance matrix.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.modeling.CovarianceResult.html b/docs/dev/api/gammapy.modeling.CovarianceResult.html index aefa7de2387..d84b6d7f3a0 100644 --- a/docs/dev/api/gammapy.modeling.CovarianceResult.html +++ b/docs/dev/api/gammapy.modeling.CovarianceResult.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  CovarianceResult#

                  -class gammapy.modeling.CovarianceResult(matrix=None, **kwargs)#
                  +class gammapy.modeling.CovarianceResult(matrix=None, **kwargs)[source]#

                  Bases: FitStepResult

                  Covariance result object.

                  diff --git a/docs/dev/api/gammapy.modeling.Fit.html b/docs/dev/api/gammapy.modeling.Fit.html index 4a350e2a9f1..3ca9f46a390 100644 --- a/docs/dev/api/gammapy.modeling.Fit.html +++ b/docs/dev/api/gammapy.modeling.Fit.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  Fit#

                  -class gammapy.modeling.Fit(backend='minuit', optimize_opts=None, covariance_opts=None, confidence_opts=None, store_trace=False)#
                  +class gammapy.modeling.Fit(backend='minuit', optimize_opts=None, covariance_opts=None, confidence_opts=None, store_trace=False)[source]#

                  Bases: object

                  Fit class.

                  The fit class provides a uniform interface to multiple fitting backends. @@ -654,7 +654,7 @@

                  Fit#

                  Methods Documentation

                  -confidence(datasets, parameter, sigma=1, reoptimize=True)#
                  +confidence(datasets, parameter, sigma=1, reoptimize=True)[source]#

                  Estimate confidence interval.

                  Extra kwargs are passed to the backend. E.g. iminuit.Minuit.minos supports a maxcall option.

                  @@ -686,7 +686,7 @@

                  Fit#

                  -covariance(datasets, optimize_result=None)#
                  +covariance(datasets, optimize_result=None)[source]#

                  Estimate the covariance matrix.

                  Assumes that the model parameters are already optimised.

                  @@ -711,7 +711,7 @@

                  Fit#

                  -optimize(datasets)#
                  +optimize(datasets)[source]#

                  Run the optimization.

                  Parameters:
                  @@ -731,7 +731,7 @@

                  Fit#

                  -run(datasets)#
                  +run(datasets)[source]#

                  Run all fitting steps.

                  Parameters:
                  @@ -751,7 +751,7 @@

                  Fit#

                  -stat_contour(datasets, x, y, numpoints=10, sigma=1)#
                  +stat_contour(datasets, x, y, numpoints=10, sigma=1)[source]#

                  Compute stat contour.

                  Calls iminuit.Minuit.mncontour.

                  This is a contouring algorithm for a 2D function @@ -807,7 +807,7 @@

                  Fit#

                  -stat_profile(datasets, parameter, reoptimize=False)#
                  +stat_profile(datasets, parameter, reoptimize=False)[source]#

                  Compute fit statistic profile.

                  The method used is to vary one parameter, keeping all others fixed. So this is taking a “slice” or “scan” of the fit statistic.

                  @@ -856,7 +856,7 @@

                  Fit#

                  -stat_surface(datasets, x, y, reoptimize=False)#
                  +stat_surface(datasets, x, y, reoptimize=False)[source]#

                  Compute fit statistic surface.

                  The method used is to vary two parameters, keeping all others fixed. So this is taking a “slice” or “scan” of the fit statistic.

                  diff --git a/docs/dev/api/gammapy.modeling.FitResult.html b/docs/dev/api/gammapy.modeling.FitResult.html index ebe314fd1b5..93e91b56db3 100644 --- a/docs/dev/api/gammapy.modeling.FitResult.html +++ b/docs/dev/api/gammapy.modeling.FitResult.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  FitResult#

                  -class gammapy.modeling.FitResult(optimize_result=None, covariance_result=None)#
                  +class gammapy.modeling.FitResult(optimize_result=None, covariance_result=None)[source]#

                  Bases: object

                  Fit result class.

                  The fit result class provides the results from the optimisation and covariance of the fit.

                  @@ -715,7 +715,7 @@

                  FitResultMethods Documentation

                  -write(path, overwrite=False, full_output=True, overwrite_templates=False, write_covariance=True, checksum=False)#
                  +write(path, overwrite=False, full_output=True, overwrite_templates=False, write_covariance=True, checksum=False)[source]#

                  Write to file.

                  Parameters:
                  diff --git a/docs/dev/api/gammapy.modeling.OptimizeResult.html b/docs/dev/api/gammapy.modeling.OptimizeResult.html index 1c583e65048..cc85e4c078b 100644 --- a/docs/dev/api/gammapy.modeling.OptimizeResult.html +++ b/docs/dev/api/gammapy.modeling.OptimizeResult.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  OptimizeResult#

                  -class gammapy.modeling.OptimizeResult(models, nfev, total_stat, trace, minuit=None, **kwargs)#
                  +class gammapy.modeling.OptimizeResult(models, nfev, total_stat, trace, minuit=None, **kwargs)[source]#

                  Bases: FitStepResult

                  Optimize result object.

                  @@ -704,7 +704,7 @@

                  OptimizeResultMethods Documentation

                  -to_dict()#
                  +to_dict()[source]#

                  Convert to dictionary.

                  diff --git a/docs/dev/api/gammapy.modeling.Parameter.html b/docs/dev/api/gammapy.modeling.Parameter.html index 53e06704a7b..9dbeba6d38b 100644 --- a/docs/dev/api/gammapy.modeling.Parameter.html +++ b/docs/dev/api/gammapy.modeling.Parameter.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  Parameter#

                  -class gammapy.modeling.Parameter(name, value, unit='', scale=1, min=nan, max=nan, frozen=False, error=0, scan_min=None, scan_max=None, scan_n_values=11, scan_n_sigma=2, scan_values=None, scale_method='scale10', interp='lin', prior=None)#
                  +class gammapy.modeling.Parameter(name, value, unit='', scale=1, min=nan, max=nan, frozen=False, error=0, scan_min=None, scan_max=None, scan_n_values=11, scan_n_sigma=2, scan_values=None, scale_method='scale10', interp='lin', prior=None)[source]#

                  Bases: object

                  A model parameter.

                  Note that the parameter value has been split into @@ -852,7 +852,7 @@

                  ParameterMethods Documentation

                  -autoscale()#
                  +autoscale()[source]#

                  Autoscale the parameters.

                  Set factor and scale according to scale_method attribute.

                  Available scale_method.

                  @@ -868,30 +868,30 @@

                  Parameter
                  -check_limits()#
                  +check_limits()[source]#

                  Emit a warning or error if value is outside the minimum/maximum range.

                  -copy()#
                  +copy()[source]#

                  Deep copy.

                  -prior_stat_sum()#
                  +prior_stat_sum()[source]#
                  -to_dict()#
                  +to_dict()[source]#

                  Convert to dictionary.

                  -update_from_dict(data)#
                  +update_from_dict(data)[source]#

                  Update parameters from a dictionary.

                  diff --git a/docs/dev/api/gammapy.modeling.Parameters.html b/docs/dev/api/gammapy.modeling.Parameters.html index 3b5b6bad1bd..8250d3aab94 100644 --- a/docs/dev/api/gammapy.modeling.Parameters.html +++ b/docs/dev/api/gammapy.modeling.Parameters.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  Parameters#

                  -class gammapy.modeling.Parameters(parameters=None)#
                  +class gammapy.modeling.Parameters(parameters=None)[source]#

                  Bases: Sequence

                  Parameters container.

                  -classmethod from_dict(data)#
                  +classmethod from_dict(data)[source]#
                  -classmethod from_stack(parameters_list)#
                  +classmethod from_stack(parameters_list)[source]#

                  Create Parameters by stacking a list of other Parameters objects.

                  Parameters:
                  @@ -770,7 +770,7 @@

                  Parameters
                  -index(val)#
                  +index(val)[source]#

                  Get position index for a given parameter.

                  The input can be a parameter object, parameter name (str) or if a parameter index (int) is passed in, it is simply returned.

                  @@ -778,12 +778,12 @@

                  Parameters
                  -prior_stat_sum()#
                  +prior_stat_sum()[source]#

                  -restore_status(restore_values=True)#
                  +restore_status(restore_values=True)[source]#

                  Context manager to restore status.

                  A copy of the values is made on enter, and those values are restored on exit.

                  @@ -807,7 +807,7 @@

                  Parameters
                  -select(name=None, type=None, frozen=None)#
                  +select(name=None, type=None, frozen=None)[source]#

                  Create a mask of models, true if all conditions are verified.

                  Parameters:
                  @@ -831,25 +831,25 @@

                  Parameters
                  -set_parameter_factors(factors)#
                  +set_parameter_factors(factors)[source]#

                  Set factor of all parameters.

                  Used in the optimizer interface.

                  -to_dict()#
                  +to_dict()[source]#
                  -to_table()#
                  +to_table()[source]#

                  Convert parameter attributes to Table.

                  -unfreeze_all()#
                  +unfreeze_all()[source]#

                  Unfreeze all parameters (even those frozen by default).

                  diff --git a/docs/dev/api/gammapy.modeling.PriorParameter.html b/docs/dev/api/gammapy.modeling.PriorParameter.html index e29074da6d4..bf078112ed6 100644 --- a/docs/dev/api/gammapy.modeling.PriorParameter.html +++ b/docs/dev/api/gammapy.modeling.PriorParameter.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

                  PriorParameter#

                  -class gammapy.modeling.PriorParameter(name, value, unit='', scale=1, min=nan, max=nan, error=0)#
                  +class gammapy.modeling.PriorParameter(name, value, unit='', scale=1, min=nan, max=nan, error=0)[source]#

                  Bases: Parameter

                  Attributes Summary

e_refe_mine_maxdndednde_errtssqrt_tsnprednpred_excessstatstat_nullcountssuccess
TeVTeVTeV1 / (TeV s cm2)1 / (TeV s cm2)
float64float64float64float64float64float64float64float64[1]float32[1]float64float64float64[1]bool
@@ -834,7 +834,7 @@

PriorParameter
-to_dict()#
+to_dict()[source]#

Convert to dictionary.

diff --git a/docs/dev/api/gammapy.modeling.PriorParameters.html b/docs/dev/api/gammapy.modeling.PriorParameters.html index 4d901eedd03..389106226d2 100644 --- a/docs/dev/api/gammapy.modeling.PriorParameters.html +++ b/docs/dev/api/gammapy.modeling.PriorParameters.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

PriorParameters#

-class gammapy.modeling.PriorParameters(parameters=None)#
+class gammapy.modeling.PriorParameters(parameters=None)[source]#

Bases: Parameters

Attributes Summary

@@ -738,7 +738,7 @@

PriorParameters
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#
@@ -830,7 +830,7 @@

PriorParameters
-to_table()#
+to_table()[source]#

Convert parameter attributes to Table.

diff --git a/docs/dev/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.html b/docs/dev/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.html index bc67f3a0d36..9d525b0d6fb 100644 --- a/docs/dev/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.BrokenPowerLawSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

BrokenPowerLawSpectralModel#

-class gammapy.modeling.models.BrokenPowerLawSpectralModel(**kwargs)#
+class gammapy.modeling.models.BrokenPowerLawSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral broken power-law model.

For more information see Broken power law spectral model.

@@ -1057,7 +1057,7 @@

BrokenPowerLawSpectralModel
-static evaluate(energy, index1, index2, amplitude, ebreak)#
+static evaluate(energy, index1, index2, amplitude, ebreak)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.CompoundSpectralModel.html b/docs/dev/api/gammapy.modeling.models.CompoundSpectralModel.html index 782f015a127..78f4a1b895a 100644 --- a/docs/dev/api/gammapy.modeling.models.CompoundSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.CompoundSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

CompoundSpectralModel#

-class gammapy.modeling.models.CompoundSpectralModel(model1, model2, operator)#
+class gammapy.modeling.models.CompoundSpectralModel(model1, model2, operator)[source]#

Bases: CovarianceMixin, SpectralModel

Arithmetic combination of two spectral models.

For more information see Compound spectral model.

@@ -744,7 +744,7 @@

CompoundSpectralModelMethods Documentation

-__call__(energy)#
+__call__(energy)[source]#

Call self as a function.

@@ -797,7 +797,7 @@

CompoundSpectralModel
-evaluate(energy, *args)#
+evaluate(energy, *args)[source]#

@@ -831,7 +831,7 @@

CompoundSpectralModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

@@ -1129,7 +1129,7 @@

CompoundSpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.modeling.models.ConstantFluxSpatialModel.html b/docs/dev/api/gammapy.modeling.models.ConstantFluxSpatialModel.html index d5b746e0064..861bd05ea01 100644 --- a/docs/dev/api/gammapy.modeling.models.ConstantFluxSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.ConstantFluxSpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

ConstantFluxSpatialModel#

-class gammapy.modeling.models.ConstantFluxSpatialModel(**kwargs)#
+class gammapy.modeling.models.ConstantFluxSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Spatially constant flux spatial model.

For more information see Constant spatial model.

@@ -793,13 +793,13 @@

ConstantFluxSpatialModel
-static evaluate(lon, lat)#
+static evaluate(lon, lat)[source]#

Evaluate model.

-static evaluate_geom(geom)#
+static evaluate_geom(geom)[source]#

Evaluate model.

@@ -868,7 +868,7 @@

ConstantFluxSpatialModel
-static integrate_geom(geom, oversampling_factor=None)#
+static integrate_geom(geom, oversampling_factor=None)[source]#

Evaluate model.

@@ -1026,13 +1026,13 @@

ConstantFluxSpatialModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline as a RectangleSkyRegion.

diff --git a/docs/dev/api/gammapy.modeling.models.ConstantSpatialModel.html b/docs/dev/api/gammapy.modeling.models.ConstantSpatialModel.html index 219583dfefc..d4f621056e7 100644 --- a/docs/dev/api/gammapy.modeling.models.ConstantSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.ConstantSpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

ConstantSpatialModel#

-class gammapy.modeling.models.ConstantSpatialModel(**kwargs)#
+class gammapy.modeling.models.ConstantSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Spatially constant (isotropic) spatial model.

For more information see Constant spatial model.

@@ -860,7 +860,7 @@

ConstantSpatialModel
-static evaluate(lon, lat, value)#
+static evaluate(lon, lat, value)[source]#

Evaluate model.

@@ -1130,13 +1130,13 @@

ConstantSpatialModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline as a RectangleSkyRegion.

diff --git a/docs/dev/api/gammapy.modeling.models.ConstantSpectralModel.html b/docs/dev/api/gammapy.modeling.models.ConstantSpectralModel.html index 7a7a559a90a..aa80da2c1ef 100644 --- a/docs/dev/api/gammapy.modeling.models.ConstantSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.ConstantSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

ConstantSpectralModel#

-class gammapy.modeling.models.ConstantSpectralModel(**kwargs)#
+class gammapy.modeling.models.ConstantSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Constant model.

For more information see Constant spectral model.

@@ -864,7 +864,7 @@

ConstantSpectralModel
-static evaluate(energy, const)#
+static evaluate(energy, const)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.ConstantTemporalModel.html b/docs/dev/api/gammapy.modeling.models.ConstantTemporalModel.html index 1963ced06ec..15d727d0a81 100644 --- a/docs/dev/api/gammapy.modeling.models.ConstantTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.ConstantTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

ConstantTemporalModel#

-class gammapy.modeling.models.ConstantTemporalModel(**kwargs)#
+class gammapy.modeling.models.ConstantTemporalModel(**kwargs)[source]#

Bases: TemporalModel

Constant temporal model.

For more information see Constant temporal model.

@@ -736,7 +736,7 @@

ConstantTemporalModel
-static evaluate(time)#
+static evaluate(time)[source]#

Evaluate at given times.

@@ -784,7 +784,7 @@

ConstantTemporalModel
-integral(t_min, t_max)#
+integral(t_min, t_max)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.DatasetModels.html b/docs/dev/api/gammapy.modeling.models.DatasetModels.html index 45703384aea..6d12a514acc 100644 --- a/docs/dev/api/gammapy.modeling.models.DatasetModels.html +++ b/docs/dev/api/gammapy.modeling.models.DatasetModels.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

DatasetModels#

-class gammapy.modeling.models.DatasetModels(models=None, covariance_data=None)#
+class gammapy.modeling.models.DatasetModels(models=None, covariance_data=None)[source]#

Bases: Sequence, CovarianceMixin

Immutable models container.

@@ -753,7 +753,7 @@

DatasetModelsMethods Documentation

-copy(copy_data=False)#
+copy(copy_data=False)[source]#

Deep copy.

Parameters:
@@ -778,7 +778,7 @@

DatasetModels
-freeze(model_type=None)#
+freeze(model_type=None)[source]#

Freeze parameters depending on model type.

Parameters:
@@ -793,13 +793,13 @@

DatasetModels
-classmethod from_dict(data, path='')#
+classmethod from_dict(data, path='')[source]#

Create from dictionary.

-classmethod from_yaml(yaml_str, path='', checksum=False)#
+classmethod from_yaml(yaml_str, path='', checksum=False)[source]#

Create from YAML string.

Parameters:
@@ -817,7 +817,7 @@

DatasetModels
-index(value[, start[, stop]]) integer -- return first index of value.#
+index(value[, start[, stop]]) integer -- return first index of value.[source]#

Raises ValueError if the value is not present.

Supporting start and stop arguments is optional, but recommended.

@@ -825,7 +825,7 @@

DatasetModels
-plot_positions(ax=None, **kwargs)#
+plot_positions(ax=None, **kwargs)[source]#

Plot the centers of the spatial models on a given WCS axis.

Parameters:
@@ -848,7 +848,7 @@

DatasetModels
-plot_regions(ax=None, kwargs_point=None, path_effect=None, **kwargs)#
+plot_regions(ax=None, kwargs_point=None, path_effect=None, **kwargs)[source]#

Plot extent of the spatial models on a given WCS axis.

Parameters:
@@ -876,7 +876,7 @@

DatasetModels
-classmethod read(filename, checksum=False)#
+classmethod read(filename, checksum=False)[source]#

Read from YAML file.

Parameters:
@@ -892,7 +892,7 @@

DatasetModels
-read_covariance(path, filename='_covariance.dat', **kwargs)#
+read_covariance(path, filename='_covariance.dat', **kwargs)[source]#

Read covariance data from file.

Parameters:
@@ -910,7 +910,7 @@

DatasetModels
-reassign(dataset_name, new_dataset_name)#
+reassign(dataset_name, new_dataset_name)[source]#

Reassign a model from one dataset to another.

Parameters:
@@ -928,7 +928,7 @@

DatasetModels
-restore_status(restore_values=True)#
+restore_status(restore_values=True)[source]#

Context manager to restore status.

A copy of the values is made on enter, and those values are restored on exit.

@@ -945,7 +945,7 @@

DatasetModels
-select(name_substring=None, datasets_names=None, tag=None, model_type=None, frozen=None)#
+select(name_substring=None, datasets_names=None, tag=None, model_type=None, frozen=None)[source]#

Select models that meet all specified conditions.

Parameters:
@@ -973,7 +973,7 @@

DatasetModels
-select_from_geom(geom, **kwargs)#
+select_from_geom(geom, **kwargs)[source]#

Select models that fall inside a given geometry.

Parameters:
@@ -995,7 +995,7 @@

DatasetModels
-select_mask(mask, margin='0 deg', use_evaluation_region=True)#
+select_mask(mask, margin='0 deg', use_evaluation_region=True)[source]#

Check if sky models contribute within a mask map.

Parameters:
@@ -1020,7 +1020,7 @@

DatasetModels
-select_region(regions, wcs=None)#
+select_region(regions, wcs=None)[source]#

Select sky models with center position contained within a given region.

Parameters:
@@ -1044,7 +1044,7 @@

DatasetModels
-selection_mask(name_substring=None, datasets_names=None, tag=None, model_type=None, frozen=None)#
+selection_mask(name_substring=None, datasets_names=None, tag=None, model_type=None, frozen=None)[source]#

Create a mask of models, that meet all specified conditions.

Parameters:
@@ -1072,7 +1072,7 @@

DatasetModels
-set_parameters_bounds(tag, model_type, parameters_names=None, min=None, max=None, value=None)#
+set_parameters_bounds(tag, model_type, parameters_names=None, min=None, max=None, value=None)[source]#

Set bounds for the selected models types and parameters names.

Parameters:
@@ -1096,19 +1096,19 @@

DatasetModels
-to_dict(full_output=False, overwrite_templates=False)#
+to_dict(full_output=False, overwrite_templates=False)[source]#

Convert to dictionary.

-to_parameters_table()#
+to_parameters_table()[source]#

Convert model parameters to a Table.

-to_regions()#
+to_regions()[source]#

Return a list of the regions for the spatial models.

Returns:
@@ -1122,7 +1122,7 @@

DatasetModels
-to_template_sky_model(geom, spectral_model=None, name=None)#
+to_template_sky_model(geom, spectral_model=None, name=None)[source]#

Merge a list of models into a single SkyModel.

Parameters:
@@ -1146,7 +1146,7 @@

DatasetModels
-to_template_spectral_model(geom, mask=None)#
+to_template_spectral_model(geom, mask=None)[source]#

Merge a list of models into a single TemplateSpectralModel.

For each model the spatial component is integrated over the given geometry where the mask is true and multiplied by the spectral component value in each energy bin.

@@ -1170,7 +1170,7 @@

DatasetModels
-to_yaml(full_output=False, overwrite_templates=False)#
+to_yaml(full_output=False, overwrite_templates=False)[source]#

Convert to YAML string.

Parameters:
@@ -1186,7 +1186,7 @@

DatasetModels
-unfreeze(model_type=None)#
+unfreeze(model_type=None)[source]#

Restore parameters frozen status to default depending on model type.

Parameters:
@@ -1201,19 +1201,19 @@

DatasetModels +update_link_label()[source]#

Update linked parameters labels used for serialisation and print.

-update_parameters_from_table(t)#
+update_parameters_from_table(t)[source]#

Update models from a Table.

-write(path, overwrite=False, full_output=False, overwrite_templates=False, write_covariance=True, checksum=False)#
+write(path, overwrite=False, full_output=False, overwrite_templates=False, write_covariance=True, checksum=False)[source]#

Write to YAML file.

Parameters:
@@ -1238,7 +1238,7 @@

DatasetModels
-write_covariance(filename, **kwargs)#
+write_covariance(filename, **kwargs)[source]#

Write covariance to file.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.DiskSpatialModel.html b/docs/dev/api/gammapy.modeling.models.DiskSpatialModel.html index 3bfed00b4e8..8f8d8237196 100644 --- a/docs/dev/api/gammapy.modeling.models.DiskSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.DiskSpatialModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

DiskSpatialModel#

-class gammapy.modeling.models.DiskSpatialModel(**kwargs)#
+class gammapy.modeling.models.DiskSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Constant disk model.

For more information see Disk spatial model.

@@ -1174,7 +1174,7 @@

DiskSpatialModel
-static evaluate(lon, lat, lon_0, lat_0, r_0, e, phi, edge_width)#
+static evaluate(lon, lat, lon_0, lat_0, r_0, e, phi, edge_width)[source]#

Evaluate model.

@@ -1263,7 +1263,7 @@

DiskSpatialModel
-classmethod from_region(region, **kwargs)#
+classmethod from_region(region, **kwargs)[source]#

Create a DiskSpatialModel from a ~regions.EllipseSkyRegion.

Parameters:
@@ -1472,7 +1472,7 @@

DiskSpatialModel
-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline as a EllipseSkyRegion.

diff --git a/docs/dev/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.html b/docs/dev/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.html index 45d54254199..499ba75d7dd 100644 --- a/docs/dev/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

EBLAbsorptionNormSpectralModel#

-class gammapy.modeling.models.EBLAbsorptionNormSpectralModel(energy, param, data, redshift, alpha_norm, interp_kwargs=None)#
+class gammapy.modeling.models.EBLAbsorptionNormSpectralModel(energy, param, data, redshift, alpha_norm, interp_kwargs=None)[source]#

Bases: SpectralModel

Gamma-ray absorption models.

For more information see EBL absorption spectral model.

@@ -943,7 +943,7 @@

EBLAbsorptionNormSpectralModel
-evaluate(energy, redshift, alpha_norm)#
+evaluate(energy, redshift, alpha_norm)[source]#

Evaluate model for energy and parameter value.

@@ -978,7 +978,7 @@

EBLAbsorptionNormSpectralModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

@@ -1186,7 +1186,7 @@

EBLAbsorptionNormSpectralModel
-classmethod read(filename, redshift=0.1, alpha_norm=1, interp_kwargs=None)#
+classmethod read(filename, redshift=0.1, alpha_norm=1, interp_kwargs=None)[source]#

Build object from an XSPEC model.

Parameters:
@@ -1209,7 +1209,7 @@

EBLAbsorptionNormSpectralModel
-classmethod read_builtin(reference='dominguez', redshift=0.1, alpha_norm=1, interp_kwargs=None)#
+classmethod read_builtin(reference='dominguez', redshift=0.1, alpha_norm=1, interp_kwargs=None)[source]#

Read from one of the built-in absorption models.

Parameters:
@@ -1347,7 +1347,7 @@

EBLAbsorptionNormSpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.modeling.models.EBL_DATA_BUILTIN.html b/docs/dev/api/gammapy.modeling.models.EBL_DATA_BUILTIN.html index e3c16f6dc1b..82f6e8ace1d 100644 --- a/docs/dev/api/gammapy.modeling.models.EBL_DATA_BUILTIN.html +++ b/docs/dev/api/gammapy.modeling.models.EBL_DATA_BUILTIN.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.html b/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.html index ff553ca9a8f..89157e9c10f 100644 --- a/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

ExpCutoffPowerLaw3FGLSpectralModel#

-class gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel(**kwargs)#
+class gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral exponential cutoff power-law model used for 3FGL.

For more information see Exponential cutoff power law spectral model used for 3FGL.

@@ -1051,7 +1051,7 @@

ExpCutoffPowerLaw3FGLSpectralModel
-static evaluate(energy, index, amplitude, reference, ecut)#
+static evaluate(energy, index, amplitude, reference, ecut)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.html b/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.html index 9a3660f3719..90cd9d5a356 100644 --- a/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

ExpCutoffPowerLawNormSpectralModel#

-class gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel(index=None, norm=None, reference=None, lambda_=None, alpha=None, **kwargs)#
+class gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel(index=None, norm=None, reference=None, lambda_=None, alpha=None, **kwargs)[source]#

Bases: SpectralModel

Norm spectral exponential cutoff power-law model.

@@ -1118,7 +1118,7 @@

ExpCutoffPowerLawNormSpectralModel
-static evaluate(energy, index, norm, reference, lambda_, alpha)#
+static evaluate(energy, index, norm, reference, lambda_, alpha)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.html b/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.html index c4c94a91dda..d96e6ebe09f 100644 --- a/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

ExpCutoffPowerLawSpectralModel#

-class gammapy.modeling.models.ExpCutoffPowerLawSpectralModel(**kwargs)#
+class gammapy.modeling.models.ExpCutoffPowerLawSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral exponential cutoff power-law model.

For more information see Exponential cutoff power law spectral model.

@@ -1131,7 +1131,7 @@

ExpCutoffPowerLawSpectralModel
-static evaluate(energy, index, amplitude, reference, lambda_, alpha)#
+static evaluate(energy, index, amplitude, reference, lambda_, alpha)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.ExpDecayTemporalModel.html b/docs/dev/api/gammapy.modeling.models.ExpDecayTemporalModel.html index 009faa2c2d2..5f2359c482d 100644 --- a/docs/dev/api/gammapy.modeling.models.ExpDecayTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.ExpDecayTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

ExpDecayTemporalModel#

-class gammapy.modeling.models.ExpDecayTemporalModel(**kwargs)#
+class gammapy.modeling.models.ExpDecayTemporalModel(**kwargs)[source]#

Bases: TemporalModel

Temporal model with an exponential decay.

For more information see ExpDecay temporal model.

@@ -864,7 +864,7 @@

ExpDecayTemporalModel
-static evaluate(time, t0, t_ref)#
+static evaluate(time, t0, t_ref)[source]#

Evaluate at given times.

@@ -912,7 +912,7 @@

ExpDecayTemporalModel
-integral(t_min, t_max)#
+integral(t_min, t_max)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.FoVBackgroundModel.html b/docs/dev/api/gammapy.modeling.models.FoVBackgroundModel.html index f48482a62c6..38cf7dd8131 100644 --- a/docs/dev/api/gammapy.modeling.models.FoVBackgroundModel.html +++ b/docs/dev/api/gammapy.modeling.models.FoVBackgroundModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

FoVBackgroundModel#

-class gammapy.modeling.models.FoVBackgroundModel(dataset_name, spectral_model=None, spatial_model=None, covariance_data=None)#
+class gammapy.modeling.models.FoVBackgroundModel(dataset_name, spectral_model=None, spatial_model=None, covariance_data=None)[source]#

Bases: ModelBase

Field of view background model.

The background model holds the correction parameters applied to @@ -729,13 +729,13 @@

FoVBackgroundModelMethods Documentation

-static contributes(*args, **kwargs)#
+static contributes(*args, **kwargs)[source]#

FoV background models always contribute.

-copy(name=None, copy_data=False, **kwargs)#
+copy(name=None, copy_data=False, **kwargs)[source]#

Copy the FoVBackgroundModel instance.

Parameters:
@@ -761,25 +761,25 @@

FoVBackgroundModel
-evaluate(energy, lon=None, lat=None)#
+evaluate(energy, lon=None, lat=None)[source]#

Evaluate model.

-evaluate_geom(geom)#
+evaluate_geom(geom)[source]#

Evaluate map.

-freeze(model_type='spectral')#
+freeze(model_type='spectral')[source]#

Freeze model parameters.

-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

Create model from dictionary.

Parameters:
@@ -837,19 +837,19 @@

FoVBackgroundModel
-reset_to_default()#
+reset_to_default()[source]#

Reset parameter values to default.

-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

-unfreeze(model_type='spectral')#
+unfreeze(model_type='spectral')[source]#

Restore parameters frozen status to default.

diff --git a/docs/dev/api/gammapy.modeling.models.GaussianPrior.html b/docs/dev/api/gammapy.modeling.models.GaussianPrior.html index 85e6dc8b040..35568b3d66b 100644 --- a/docs/dev/api/gammapy.modeling.models.GaussianPrior.html +++ b/docs/dev/api/gammapy.modeling.models.GaussianPrior.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

GaussianPrior#

-class gammapy.modeling.models.GaussianPrior(**kwargs)#
+class gammapy.modeling.models.GaussianPrior(**kwargs)[source]#

Bases: Prior

One-dimensional Gaussian Prior.

@@ -727,7 +727,7 @@

GaussianPrior
-static evaluate(value, mu, sigma)#
+static evaluate(value, mu, sigma)[source]#

Evaluate the Gaussian prior.

diff --git a/docs/dev/api/gammapy.modeling.models.GaussianSpatialModel.html b/docs/dev/api/gammapy.modeling.models.GaussianSpatialModel.html index 9e7f42f7919..c07a1c0554d 100644 --- a/docs/dev/api/gammapy.modeling.models.GaussianSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.GaussianSpatialModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

GaussianSpatialModel#

-class gammapy.modeling.models.GaussianSpatialModel(**kwargs)#
+class gammapy.modeling.models.GaussianSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Two-dimensional Gaussian model.

For more information see Gaussian spatial model.

@@ -1106,7 +1106,7 @@

GaussianSpatialModel
-static evaluate(lon, lat, lon_0, lat_0, sigma, e, phi)#
+static evaluate(lon, lat, lon_0, lat_0, sigma, e, phi)[source]#

Evaluate model.

@@ -1382,7 +1382,7 @@

GaussianSpatialModel
-to_region(x_sigma=1.5, **kwargs)#
+to_region(x_sigma=1.5, **kwargs)[source]#

Model outline at a given number of \(\sigma\).

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.GaussianSpectralModel.html b/docs/dev/api/gammapy.modeling.models.GaussianSpectralModel.html index 22da47a7bd3..dfb8ccff546 100644 --- a/docs/dev/api/gammapy.modeling.models.GaussianSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.GaussianSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

GaussianSpectralModel#

-class gammapy.modeling.models.GaussianSpectralModel(**kwargs)#
+class gammapy.modeling.models.GaussianSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Gaussian spectral model.

For more information see Gaussian spectral model.

@@ -945,7 +945,7 @@

GaussianSpectralModel
-energy_flux(energy_min, energy_max)#
+energy_flux(energy_min, energy_max)[source]#

Compute energy flux in given energy range analytically.

\[G(E_{min}, E_{max}) = \frac{N_0 \sigma}{\sqrt{2*\pi}}* \left[ - \exp(\frac{E_{min}-\bar{E}}{\sqrt{2} \sigma}) @@ -986,7 +986,7 @@

GaussianSpectralModel
-static evaluate(energy, amplitude, mean, sigma)#
+static evaluate(energy, amplitude, mean, sigma)[source]#

@@ -1045,7 +1045,7 @@

GaussianSpectralModel
-integral(energy_min, energy_max, **kwargs)#
+integral(energy_min, energy_max, **kwargs)[source]#

Integrate Gaussian analytically.

\[F(E_{min}, E_{max}) = \frac{N_0}{2} \left[ erf(\frac{E - \bar{E}}{\sqrt{2} \sigma})\right]_{E_{min}}^{E_{max}}\]
diff --git a/docs/dev/api/gammapy.modeling.models.GaussianTemporalModel.html b/docs/dev/api/gammapy.modeling.models.GaussianTemporalModel.html index d00d435ec8c..942f903c0c5 100644 --- a/docs/dev/api/gammapy.modeling.models.GaussianTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.GaussianTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

GaussianTemporalModel#

-class gammapy.modeling.models.GaussianTemporalModel(**kwargs)#
+class gammapy.modeling.models.GaussianTemporalModel(**kwargs)[source]#

Bases: TemporalModel

A Gaussian temporal profile.

For more information see Gaussian temporal model.

@@ -866,7 +866,7 @@

GaussianTemporalModel
-static evaluate(time, t_ref, sigma)#
+static evaluate(time, t_ref, sigma)[source]#

@@ -913,7 +913,7 @@

GaussianTemporalModel
-integral(t_min, t_max, **kwargs)#
+integral(t_min, t_max, **kwargs)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.html b/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.html index bda6bbfb351..7f69ea69f79 100644 --- a/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

GeneralizedGaussianSpatialModel#

-class gammapy.modeling.models.GeneralizedGaussianSpatialModel(**kwargs)#
+class gammapy.modeling.models.GeneralizedGaussianSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Two-dimensional Generalized Gaussian model.

For more information see Generalized gaussian spatial model.

@@ -1173,7 +1173,7 @@

GeneralizedGaussianSpatialModel
-static evaluate(lon, lat, lon_0, lat_0, r_0, eta, e, phi)#
+static evaluate(lon, lat, lon_0, lat_0, r_0, eta, e, phi)[source]#

@@ -1448,7 +1448,7 @@

GeneralizedGaussianSpatialModel
-to_region(x_r_0=1, **kwargs)#
+to_region(x_r_0=1, **kwargs)[source]#

Model outline at a given number of \(r_0\).

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.html b/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.html index a7ca94261a8..22e5e9a4832 100644 --- a/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

GeneralizedGaussianTemporalModel#

-class gammapy.modeling.models.GeneralizedGaussianTemporalModel(**kwargs)#
+class gammapy.modeling.models.GeneralizedGaussianTemporalModel(**kwargs)[source]#

Bases: TemporalModel

A generalized Gaussian temporal profile.

For more information see Generalized Gaussian temporal model.

@@ -990,7 +990,7 @@

GeneralizedGaussianTemporalModel
-static evaluate(time, t_ref, t_rise, t_decay, eta)#
+static evaluate(time, t_ref, t_rise, t_decay, eta)[source]#

diff --git a/docs/dev/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.html b/docs/dev/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.html index de2082087c3..a53905a8e18 100644 --- a/docs/dev/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.LightCurveTemplateTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

LightCurveTemplateTemporalModel#

-class gammapy.modeling.models.LightCurveTemplateTemporalModel(map, t_ref=None, filename=None, method=None, values_scale=None)#
+class gammapy.modeling.models.LightCurveTemplateTemporalModel(map, t_ref=None, filename=None, method=None, values_scale=None)[source]#

Bases: TemporalModel

Temporal light curve model.

The lightcurve is given at specific times (and optionally energies) as a norm @@ -851,7 +851,7 @@

LightCurveTemplateTemporalModel
-evaluate(time, t_ref=None, energy=None)#
+evaluate(time, t_ref=None, energy=None)[source]#

Evaluate the model at given coordinates.

Parameters:
@@ -881,7 +881,7 @@

LightCurveTemplateTemporalModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create a temporal model from a dictionary.

Parameters:
@@ -917,7 +917,7 @@

LightCurveTemplateTemporalModel
-classmethod from_table(table, filename=None)#
+classmethod from_table(table, filename=None)[source]#

Create a template model from an astropy table.

Parameters:
@@ -939,7 +939,7 @@

LightCurveTemplateTemporalModel
-integral(t_min, t_max, oversampling_factor=100, **kwargs)#
+integral(t_min, t_max, oversampling_factor=100, **kwargs)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
@@ -964,7 +964,7 @@

LightCurveTemplateTemporalModel
-plot(time_range, ax=None, n_points=100, energy=None, **kwargs)#
+plot(time_range, ax=None, n_points=100, energy=None, **kwargs)[source]#

Plot the temporal model.

Parameters:
@@ -990,7 +990,7 @@

LightCurveTemplateTemporalModel
-classmethod read(filename, format='table')#
+classmethod read(filename, format='table')[source]#

Read a template model.

Parameters:
@@ -1086,13 +1086,13 @@

LightCurveTemplateTemporalModel
-to_dict(full_output=False, format=None)#
+to_dict(full_output=False, format=None)[source]#

Create dictionary for YAML serialisation.

-to_table()#
+to_table()[source]#

Convert model to an astropy table.

@@ -1104,7 +1104,7 @@

LightCurveTemplateTemporalModel
-write(filename, format='table', overwrite=False)#
+write(filename, format='table', overwrite=False)[source]#

Write a model to disk as per the specified format.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.LinearTemporalModel.html b/docs/dev/api/gammapy.modeling.models.LinearTemporalModel.html index 9c3d3d4b637..eb582edd80d 100644 --- a/docs/dev/api/gammapy.modeling.models.LinearTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.LinearTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

LinearTemporalModel#

-class gammapy.modeling.models.LinearTemporalModel(**kwargs)#
+class gammapy.modeling.models.LinearTemporalModel(**kwargs)[source]#

Bases: TemporalModel

Temporal model with a linear variation.

For more information see Linear temporal model.

@@ -928,7 +928,7 @@

LinearTemporalModel
-static evaluate(time, alpha, beta, t_ref)#
+static evaluate(time, alpha, beta, t_ref)[source]#

Evaluate at given times.

@@ -976,7 +976,7 @@

LinearTemporalModel
-integral(t_min, t_max)#
+integral(t_min, t_max)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.LogParabolaNormSpectralModel.html b/docs/dev/api/gammapy.modeling.models.LogParabolaNormSpectralModel.html index b5d943a0833..f3653943319 100644 --- a/docs/dev/api/gammapy.modeling.models.LogParabolaNormSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.LogParabolaNormSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

LogParabolaNormSpectralModel#

-class gammapy.modeling.models.LogParabolaNormSpectralModel(norm=None, reference=None, alpha=None, beta=None, **kwargs)#
+class gammapy.modeling.models.LogParabolaNormSpectralModel(norm=None, reference=None, alpha=None, beta=None, **kwargs)[source]#

Bases: SpectralModel

Norm spectral log parabola model.

@@ -1055,7 +1055,7 @@

LogParabolaNormSpectralModel
-static evaluate(energy, norm, reference, alpha, beta)#
+static evaluate(energy, norm, reference, alpha, beta)[source]#

Evaluate the model (static function).

@@ -1095,7 +1095,7 @@

LogParabolaNormSpectralModel
-classmethod from_log10(norm, reference, alpha, beta)#
+classmethod from_log10(norm, reference, alpha, beta)[source]#

Construct from \(log_{10}\) parametrization.

diff --git a/docs/dev/api/gammapy.modeling.models.LogParabolaSpectralModel.html b/docs/dev/api/gammapy.modeling.models.LogParabolaSpectralModel.html index 2d1c18ebcbf..f04a7aa32a4 100644 --- a/docs/dev/api/gammapy.modeling.models.LogParabolaSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.LogParabolaSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

LogParabolaSpectralModel#

-class gammapy.modeling.models.LogParabolaSpectralModel(**kwargs)#
+class gammapy.modeling.models.LogParabolaSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral log parabola model.

For more information see Log parabola spectral model.

@@ -1068,7 +1068,7 @@

LogParabolaSpectralModel
-static evaluate(energy, amplitude, reference, alpha, beta)#
+static evaluate(energy, amplitude, reference, alpha, beta)[source]#

Evaluate the model (static function).

@@ -1108,7 +1108,7 @@

LogParabolaSpectralModel
-classmethod from_log10(amplitude, reference, alpha, beta)#
+classmethod from_log10(amplitude, reference, alpha, beta)[source]#

Construct from \(log_{10}\) parametrization.

diff --git a/docs/dev/api/gammapy.modeling.models.MODEL_REGISTRY.html b/docs/dev/api/gammapy.modeling.models.MODEL_REGISTRY.html index d3312a55042..d0e723c0698 100644 --- a/docs/dev/api/gammapy.modeling.models.MODEL_REGISTRY.html +++ b/docs/dev/api/gammapy.modeling.models.MODEL_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.modeling.models.MeyerCrabSpectralModel.html b/docs/dev/api/gammapy.modeling.models.MeyerCrabSpectralModel.html index c97ed078d04..0724d40fca7 100644 --- a/docs/dev/api/gammapy.modeling.models.MeyerCrabSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.MeyerCrabSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

MeyerCrabSpectralModel#

-class gammapy.modeling.models.MeyerCrabSpectralModel(**kwargs)#
+class gammapy.modeling.models.MeyerCrabSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Meyer 2010 log polynomial Crab spectral model.

Reference: https://ui.adsabs.harvard.edu/abs/2010A%26A…523A…2M, Appendix D

@@ -856,7 +856,7 @@

MeyerCrabSpectralModel
-static evaluate(energy, norm)#
+static evaluate(energy, norm)[source]#

Evaluate the model.

diff --git a/docs/dev/api/gammapy.modeling.models.Model.html b/docs/dev/api/gammapy.modeling.models.Model.html index 73fad48b47d..1df69ba130b 100644 --- a/docs/dev/api/gammapy.modeling.models.Model.html +++ b/docs/dev/api/gammapy.modeling.models.Model.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

Model#

-class gammapy.modeling.models.Model#
+class gammapy.modeling.models.Model[source]#

Bases: object

Model class that contains only methods to create a model listed in the registries.

Methods Summary

@@ -592,7 +592,7 @@

Model#<

Methods Documentation

-static create(tag, model_type=None, *args, **kwargs)#
+static create(tag, model_type=None, *args, **kwargs)[source]#

Create a model instance.

Examples

>>> from gammapy.modeling.models import Model
@@ -607,7 +607,7 @@ 

Model#<
-static from_dict(data)#
+static from_dict(data)[source]#

Create a model instance from a dictionary.

diff --git a/docs/dev/api/gammapy.modeling.models.ModelBase.html b/docs/dev/api/gammapy.modeling.models.ModelBase.html index f84a907a905..2934f220dd0 100644 --- a/docs/dev/api/gammapy.modeling.models.ModelBase.html +++ b/docs/dev/api/gammapy.modeling.models.ModelBase.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

ModelBase#

-class gammapy.modeling.models.ModelBase(**kwargs)#
+class gammapy.modeling.models.ModelBase(**kwargs)[source]#

Bases: object

Model base class.

Attributes Summary

@@ -656,24 +656,24 @@

ModelBaseMethods Documentation

-copy(**kwargs)#
+copy(**kwargs)[source]#

Deep copy.

-freeze()#
+freeze()[source]#

Freeze all parameters.

-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#
-classmethod from_parameters(parameters, **kwargs)#
+classmethod from_parameters(parameters, **kwargs)[source]#

Create model from parameter list.

Parameters:
@@ -693,7 +693,7 @@

ModelBase
-reassign(datasets_names, new_datasets_names)#
+reassign(datasets_names, new_datasets_names)[source]#

Reassign a model from one dataset to another.

Parameters:
@@ -717,13 +717,13 @@

ModelBase
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

-unfreeze()#
+unfreeze()[source]#

Restore parameters frozen status to default.

diff --git a/docs/dev/api/gammapy.modeling.models.Models.html b/docs/dev/api/gammapy.modeling.models.Models.html index 8df79ccbd90..fe19ba719d4 100644 --- a/docs/dev/api/gammapy.modeling.models.Models.html +++ b/docs/dev/api/gammapy.modeling.models.Models.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

Models#

-class gammapy.modeling.models.Models(models=None, covariance_data=None)#
+class gammapy.modeling.models.Models(models=None, covariance_data=None)[source]#

Bases: DatasetModels, MutableSequence

Sky model collection.

@@ -864,7 +864,7 @@

Models#
-insert(idx, model)#
+insert(idx, model)[source]#

S.insert(index, value) – insert value before index

@@ -1160,7 +1160,7 @@

Models#
-set_prior(parameters, priors)#
+set_prior(parameters, priors)[source]#

diff --git a/docs/dev/api/gammapy.modeling.models.NaimaSpectralModel.html b/docs/dev/api/gammapy.modeling.models.NaimaSpectralModel.html index 7f20d3ef257..d5992ca8ae5 100644 --- a/docs/dev/api/gammapy.modeling.models.NaimaSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.NaimaSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

NaimaSpectralModel#

-class gammapy.modeling.models.NaimaSpectralModel(radiative_model, distance=<Quantity 1. kpc>, seed=None, nested_models=None, use_cache=False)#
+class gammapy.modeling.models.NaimaSpectralModel(radiative_model, distance=<Quantity 1. kpc>, seed=None, nested_models=None, use_cache=False)[source]#

Bases: SpectralModel

A wrapper for Naima models.

For more information see Naima spectral model.

@@ -843,7 +843,7 @@

NaimaSpectralModel
-evaluate(energy, **kwargs)#
+evaluate(energy, **kwargs)[source]#

Evaluate the model.

Parameters:
@@ -892,12 +892,12 @@

NaimaSpectralModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

-classmethod from_parameters(parameters, **kwargs)#
+classmethod from_parameters(parameters, **kwargs)[source]#

Create model from parameter list.

Parameters:
@@ -1190,7 +1190,7 @@

NaimaSpectralModel
-to_dict(full_output=True)#
+to_dict(full_output=True)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpatialModel.html b/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpatialModel.html index 1bf650c4e95..ad5fae51bfb 100644 --- a/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

PiecewiseNormSpatialModel#

-class gammapy.modeling.models.PiecewiseNormSpatialModel(coords, norms=None, interp='lin', **kwargs)#
+class gammapy.modeling.models.PiecewiseNormSpatialModel(coords, norms=None, interp='lin', **kwargs)[source]#

Bases: SpatialModel

Piecewise spatial correction with a free normalization at each fixed nodes.

@@ -818,13 +818,13 @@

PiecewiseNormSpatialModel
-evaluate(lon, lat, energy=None, **norms)#
+evaluate(lon, lat, energy=None, **norms)[source]#

Evaluate the model at given coordinates.

-evaluate_geom(geom)#
+evaluate_geom(geom)[source]#

Evaluate model on Geom.

Parameters:
@@ -850,13 +850,13 @@

PiecewiseNormSpatialModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create model from dictionary.

-classmethod from_parameters(parameters, **kwargs)#
+classmethod from_parameters(parameters, **kwargs)[source]#

Create model from parameters.

@@ -1064,7 +1064,7 @@

PiecewiseNormSpatialModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

diff --git a/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpectralModel.html b/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpectralModel.html index 233a2f57816..c7408dee659 100644 --- a/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.PiecewiseNormSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

PiecewiseNormSpectralModel#

-class gammapy.modeling.models.PiecewiseNormSpectralModel(energy, norms=None, interp='log')#
+class gammapy.modeling.models.PiecewiseNormSpectralModel(energy, norms=None, interp='log')[source]#

Bases: SpectralModel

Piecewise spectral correction with a free normalization at each fixed energy nodes.

For more information see Piecewise norm spectral model.

@@ -829,7 +829,7 @@

PiecewiseNormSpectralModel
-evaluate(energy, **norms)#
+evaluate(energy, **norms)[source]#

@@ -863,13 +863,13 @@

PiecewiseNormSpectralModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

Create model from dictionary.

-classmethod from_parameters(parameters, **kwargs)#
+classmethod from_parameters(parameters, **kwargs)[source]#

Create model from parameters.

@@ -1148,7 +1148,7 @@

PiecewiseNormSpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.modeling.models.PointSpatialModel.html b/docs/dev/api/gammapy.modeling.models.PointSpatialModel.html index 59698573aac..b3907f222d4 100644 --- a/docs/dev/api/gammapy.modeling.models.PointSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.PointSpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

PointSpatialModel#

-class gammapy.modeling.models.PointSpatialModel(**kwargs)#
+class gammapy.modeling.models.PointSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Point Source.

For more information see Point spatial model.

@@ -915,7 +915,7 @@

PointSpatialModel
-evaluate_geom(geom)#
+evaluate_geom(geom)[source]#

Evaluate model on Geom.

@@ -984,7 +984,7 @@

PointSpatialModel
-integrate_geom(geom, oversampling_factor=None)#
+integrate_geom(geom, oversampling_factor=None)[source]#

Integrate model on Geom.

Parameters:
@@ -1162,7 +1162,7 @@

PointSpatialModel
-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline as a PointSkyRegion.

diff --git a/docs/dev/api/gammapy.modeling.models.PowerLaw2SpectralModel.html b/docs/dev/api/gammapy.modeling.models.PowerLaw2SpectralModel.html index bc47f1e5098..0f4da1ce457 100644 --- a/docs/dev/api/gammapy.modeling.models.PowerLaw2SpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.PowerLaw2SpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

PowerLaw2SpectralModel#

-class gammapy.modeling.models.PowerLaw2SpectralModel(**kwargs)#
+class gammapy.modeling.models.PowerLaw2SpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral power-law model with integral as amplitude parameter.

For more information see Power law 2 spectral model.

@@ -1060,7 +1060,7 @@

PowerLaw2SpectralModel
-static evaluate(energy, amplitude, index, emin, emax)#
+static evaluate(energy, amplitude, index, emin, emax)[source]#

Evaluate the model (static function).

@@ -1089,7 +1089,7 @@

PowerLaw2SpectralModel
-static evaluate_integral(energy_min, energy_max, amplitude, index, emin, emax)#
+static evaluate_integral(energy_min, energy_max, amplitude, index, emin, emax)[source]#

Integrate power law analytically.

\[F(E_{min}, E_{max}) = F_0 \cdot \frac{E_{max}^{\Gamma + 1} \ @@ -1179,7 +1179,7 @@

PowerLaw2SpectralModel
-inverse(value, *args)#
+inverse(value, *args)[source]#

Return energy for a given function value of the spectral model.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.PowerLawNormSpectralModel.html b/docs/dev/api/gammapy.modeling.models.PowerLawNormSpectralModel.html index d0fbc4dd1f3..5dec3bc67ea 100644 --- a/docs/dev/api/gammapy.modeling.models.PowerLawNormSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.PowerLawNormSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

PowerLawNormSpectralModel#

-class gammapy.modeling.models.PowerLawNormSpectralModel(**kwargs)#
+class gammapy.modeling.models.PowerLawNormSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral power-law model with normalized amplitude parameter.

@@ -1001,13 +1001,13 @@

PowerLawNormSpectralModel
-static evaluate(energy, tilt, norm, reference)#
+static evaluate(energy, tilt, norm, reference)[source]#

Evaluate the model (static function).

-static evaluate_energy_flux(energy_min, energy_max, tilt, norm, reference)#
+static evaluate_energy_flux(energy_min, energy_max, tilt, norm, reference)[source]#

Evaluate the energy flux (static function).

@@ -1036,7 +1036,7 @@

PowerLawNormSpectralModel
-static evaluate_integral(energy_min, energy_max, tilt, norm, reference)#
+static evaluate_integral(energy_min, energy_max, tilt, norm, reference)[source]#

Evaluate powerlaw integral.

@@ -1114,7 +1114,7 @@

PowerLawNormSpectralModel
-inverse(value, *args)#
+inverse(value, *args)[source]#

Return energy for a given function value of the spectral model.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.PowerLawSpectralModel.html b/docs/dev/api/gammapy.modeling.models.PowerLawSpectralModel.html index dbd09141846..332a78c02f0 100644 --- a/docs/dev/api/gammapy.modeling.models.PowerLawSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.PowerLawSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

PowerLawSpectralModel#

-class gammapy.modeling.models.PowerLawSpectralModel(**kwargs)#
+class gammapy.modeling.models.PowerLawSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral power-law model.

For more information see Power law spectral model.

@@ -1002,13 +1002,13 @@

PowerLawSpectralModel
-static evaluate(energy, index, amplitude, reference)#
+static evaluate(energy, index, amplitude, reference)[source]#

Evaluate the model (static function).

-static evaluate_energy_flux(energy_min, energy_max, index, amplitude, reference)#
+static evaluate_energy_flux(energy_min, energy_max, index, amplitude, reference)[source]#

Compute energy flux in given energy range analytically (static function).

\[G(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}E \phi(E)dE = \left. @@ -1049,7 +1049,7 @@

PowerLawSpectralModel
-static evaluate_integral(energy_min, energy_max, index, amplitude, reference)#
+static evaluate_integral(energy_min, energy_max, index, amplitude, reference)[source]#

Integrate power law analytically (static function).

\[F(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}\phi(E)dE = \left. @@ -1139,7 +1139,7 @@

PowerLawSpectralModel
-inverse(value, *args)#
+inverse(value, *args)[source]#

Return energy for a given function value of the spectral model.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.PowerLawTemporalModel.html b/docs/dev/api/gammapy.modeling.models.PowerLawTemporalModel.html index 0f7bca401bf..437306de722 100644 --- a/docs/dev/api/gammapy.modeling.models.PowerLawTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.PowerLawTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

PowerLawTemporalModel#

-class gammapy.modeling.models.PowerLawTemporalModel(**kwargs)#
+class gammapy.modeling.models.PowerLawTemporalModel(**kwargs)[source]#

Bases: TemporalModel

Temporal model with a Power Law decay.

For more information see PowerLaw temporal model.

@@ -927,7 +927,7 @@

PowerLawTemporalModel
-static evaluate(time, alpha, t_ref, t0=<Quantity 1. d>)#
+static evaluate(time, alpha, t_ref, t0=<Quantity 1. d>)[source]#

Evaluate at given times.

@@ -975,7 +975,7 @@

PowerLawTemporalModel
-integral(t_min, t_max)#
+integral(t_min, t_max)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.Prior.html b/docs/dev/api/gammapy.modeling.models.Prior.html index 70655f05e01..93427762a4d 100644 --- a/docs/dev/api/gammapy.modeling.models.Prior.html +++ b/docs/dev/api/gammapy.modeling.models.Prior.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

Prior#

-class gammapy.modeling.models.Prior(**kwargs)#
+class gammapy.modeling.models.Prior(**kwargs)[source]#

Bases: ModelBase

Prior base class.

Attributes Summary

@@ -676,7 +676,7 @@

Prior#<

Methods Documentation

-__call__(value)#
+__call__(value)[source]#

Call evaluate method.

@@ -694,7 +694,7 @@

Prior#<
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

Get prior parameters from dictionary.

@@ -744,7 +744,7 @@

Prior#<
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY.html b/docs/dev/api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY.html index a7d00dd2b68..e24694f712a 100644 --- a/docs/dev/api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY.html +++ b/docs/dev/api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY.html b/docs/dev/api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY.html index fb015437c2f..7d1543009f6 100644 --- a/docs/dev/api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY.html +++ b/docs/dev/api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.modeling.models.ScaleSpectralModel.html b/docs/dev/api/gammapy.modeling.models.ScaleSpectralModel.html index 5c54495b0f5..7a9d1b13271 100644 --- a/docs/dev/api/gammapy.modeling.models.ScaleSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.ScaleSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

ScaleSpectralModel#

-class gammapy.modeling.models.ScaleSpectralModel(model, norm=<Quantity 1.>)#
+class gammapy.modeling.models.ScaleSpectralModel(model, norm=<Quantity 1.>)[source]#

Bases: SpectralModel

Wrapper to scale another spectral model by a norm factor.

@@ -866,7 +866,7 @@

ScaleSpectralModel
-evaluate(energy, norm)#
+evaluate(energy, norm)[source]#

@@ -925,7 +925,7 @@

ScaleSpectralModel
-integral(energy_min, energy_max, **kwargs)#
+integral(energy_min, energy_max, **kwargs)[source]#

Integrate spectral model numerically if no analytical solution defined.

\[F(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}} \phi(E) dE\]
diff --git a/docs/dev/api/gammapy.modeling.models.Shell2SpatialModel.html b/docs/dev/api/gammapy.modeling.models.Shell2SpatialModel.html index c4b5263193a..ed131401df8 100644 --- a/docs/dev/api/gammapy.modeling.models.Shell2SpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.Shell2SpatialModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

Shell2SpatialModel#

-class gammapy.modeling.models.Shell2SpatialModel(**kwargs)#
+class gammapy.modeling.models.Shell2SpatialModel(**kwargs)[source]#

Bases: SpatialModel

Shell model with outer radius and relative width parametrization.

For more information see Shell2 spatial model.

@@ -1058,7 +1058,7 @@

Shell2SpatialModel
-static evaluate(lon, lat, lon_0, lat_0, r_0, eta)#
+static evaluate(lon, lat, lon_0, lat_0, r_0, eta)[source]#

Evaluate model.

@@ -1334,7 +1334,7 @@

Shell2SpatialModel
-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline as a CircleAnnulusSkyRegion.

diff --git a/docs/dev/api/gammapy.modeling.models.ShellSpatialModel.html b/docs/dev/api/gammapy.modeling.models.ShellSpatialModel.html index 102a56409ae..5d796670e30 100644 --- a/docs/dev/api/gammapy.modeling.models.ShellSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.ShellSpatialModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

ShellSpatialModel#

-class gammapy.modeling.models.ShellSpatialModel(**kwargs)#
+class gammapy.modeling.models.ShellSpatialModel(**kwargs)[source]#

Bases: SpatialModel

Shell model.

For more information see Shell spatial model.

@@ -1050,7 +1050,7 @@

ShellSpatialModel
-static evaluate(lon, lat, lon_0, lat_0, radius, width)#
+static evaluate(lon, lat, lon_0, lat_0, radius, width)[source]#

Evaluate model.

@@ -1326,7 +1326,7 @@

ShellSpatialModel
-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline as a CircleAnnulusSkyRegion.

diff --git a/docs/dev/api/gammapy.modeling.models.SineTemporalModel.html b/docs/dev/api/gammapy.modeling.models.SineTemporalModel.html index 1ccfd3623c1..68b474de57b 100644 --- a/docs/dev/api/gammapy.modeling.models.SineTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.SineTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

SineTemporalModel#

-class gammapy.modeling.models.SineTemporalModel(**kwargs)#
+class gammapy.modeling.models.SineTemporalModel(**kwargs)[source]#

Bases: TemporalModel

Temporal model with a sinusoidal modulation.

For more information see Sine temporal model.

@@ -928,7 +928,7 @@

SineTemporalModel
-static evaluate(time, amp, omega, t_ref)#
+static evaluate(time, amp, omega, t_ref)[source]#

Evaluate at given times.

@@ -976,7 +976,7 @@

SineTemporalModel
-integral(t_min, t_max)#
+integral(t_min, t_max)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.SkyModel.html b/docs/dev/api/gammapy.modeling.models.SkyModel.html index 4c0b2c9a754..104e178687c 100644 --- a/docs/dev/api/gammapy.modeling.models.SkyModel.html +++ b/docs/dev/api/gammapy.modeling.models.SkyModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

SkyModel#

-class gammapy.modeling.models.SkyModel(spectral_model, spatial_model=None, temporal_model=None, name=None, apply_irf=None, datasets_names=None, covariance_data=None)#
+class gammapy.modeling.models.SkyModel(spectral_model, spatial_model=None, temporal_model=None, name=None, apply_irf=None, datasets_names=None, covariance_data=None)[source]#

Bases: CovarianceMixin, ModelBase

Sky model component.

This model represents a factorised sky model. @@ -800,13 +800,13 @@

SkyModel

Methods Documentation

-__call__(lon, lat, energy, time=None)#
+__call__(lon, lat, energy, time=None)[source]#

Call self as a function.

-contributes(mask, margin='0 deg')#
+contributes(mask, margin='0 deg')[source]#

Check if a sky model contributes within a mask map.

Parameters:
@@ -829,7 +829,7 @@

SkyModel
-copy(name=None, copy_data=False, **kwargs)#
+copy(name=None, copy_data=False, **kwargs)[source]#

Copy sky model.

Parameters:
@@ -853,7 +853,7 @@

SkyModel
-classmethod create(spectral_model, spatial_model=None, temporal_model=None, **kwargs)#
+classmethod create(spectral_model, spatial_model=None, temporal_model=None, **kwargs)[source]#

Create a model instance.

Parameters:
@@ -879,7 +879,7 @@

SkyModel
-evaluate(lon, lat, energy, time=None)#
+evaluate(lon, lat, energy, time=None)[source]#

Evaluate the model at given points.

The model evaluation follows numpy broadcasting rules.

Return differential surface brightness cube. @@ -906,13 +906,13 @@

SkyModel
-evaluate_geom(geom, gti=None)#
+evaluate_geom(geom, gti=None)[source]#

Evaluate model on Geom.

-freeze(model_type=None)#
+freeze(model_type=None)[source]#

Freeze parameters depending on model type.

Parameters:
@@ -927,7 +927,7 @@

SkyModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

Create SkyModel from dictionary.

@@ -953,7 +953,7 @@

SkyModel
-integrate_geom(geom, gti=None, oversampling_factor=None)#
+integrate_geom(geom, gti=None, oversampling_factor=None)[source]#

Integrate model on Geom.

See integrate_geom and integral.

@@ -1004,13 +1004,13 @@

SkyModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

-unfreeze(model_type=None)#
+unfreeze(model_type=None)[source]#

Restore parameters frozen status to default depending on model type.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.html b/docs/dev/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.html index 6212e3aaf89..ccf3f02f4b9 100644 --- a/docs/dev/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

SmoothBrokenPowerLawSpectralModel#

-class gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel(**kwargs)#
+class gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral smooth broken power-law model.

For more information see Smooth broken power law spectral model.

@@ -1175,7 +1175,7 @@

SmoothBrokenPowerLawSpectralModel
-static evaluate(energy, index1, index2, amplitude, ebreak, reference, beta)#
+static evaluate(energy, index1, index2, amplitude, ebreak, reference, beta)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.SpatialModel.html b/docs/dev/api/gammapy.modeling.models.SpatialModel.html index 36bccaa0af3..792b9a96ae2 100644 --- a/docs/dev/api/gammapy.modeling.models.SpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.SpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

SpatialModel#

-class gammapy.modeling.models.SpatialModel(**kwargs)#
+class gammapy.modeling.models.SpatialModel(**kwargs)[source]#

Bases: ModelBase

Spatial model base class.

Attributes Summary

@@ -760,7 +760,7 @@

SpatialModelMethods Documentation

-__call__(lon, lat, energy=None)#
+__call__(lon, lat, energy=None)[source]#

Call evaluate method.

@@ -772,7 +772,7 @@

SpatialModel
-evaluate_geom(geom)#
+evaluate_geom(geom)[source]#

Evaluate model on Geom.

Parameters:
@@ -798,7 +798,7 @@

SpatialModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

Create a spatial model from a dictionary.

Parameters:
@@ -834,7 +834,7 @@

SpatialModel
-classmethod from_position(position, **kwargs)#
+classmethod from_position(position, **kwargs)[source]#

Define the position of the model using a SkyCoord.

The model will be created in the frame of the SkyCoord.

@@ -855,7 +855,7 @@

SpatialModel
-integrate_geom(geom, oversampling_factor=None)#
+integrate_geom(geom, oversampling_factor=None)[source]#

Integrate model on Geom or RegionGeom.

Integration is performed by simple rectangle approximation, the pixel center model value is multiplied by the pixel solid angle. @@ -884,7 +884,7 @@

SpatialModel
-plot(ax=None, geom=None, **kwargs)#
+plot(ax=None, geom=None, **kwargs)[source]#

Plot spatial model.

Parameters:
@@ -908,7 +908,7 @@

SpatialModel
-plot_error(ax=None, which='position', kwargs_position=None, kwargs_extension=None)#
+plot_error(ax=None, which='position', kwargs_position=None, kwargs_extension=None)[source]#

Plot the errors of the spatial model.

Parameters:
@@ -944,7 +944,7 @@

SpatialModel
-plot_grid(geom=None, **kwargs)#
+plot_grid(geom=None, **kwargs)[source]#

Plot spatial model energy slices in a grid.

Parameters:
@@ -966,7 +966,7 @@

SpatialModel
-plot_interactive(ax=None, geom=None, **kwargs)#
+plot_interactive(ax=None, geom=None, **kwargs)[source]#

Plot spatial model.

Parameters:
@@ -990,7 +990,7 @@

SpatialModel
-plot_position_error(ax=None, **kwargs)#
+plot_position_error(ax=None, **kwargs)[source]#

Plot position error.

Parameters:
@@ -1036,7 +1036,7 @@

SpatialModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

diff --git a/docs/dev/api/gammapy.modeling.models.SpectralModel.html b/docs/dev/api/gammapy.modeling.models.SpectralModel.html index d163dcf608a..ea391b22706 100644 --- a/docs/dev/api/gammapy.modeling.models.SpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.SpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

SpectralModel#

-class gammapy.modeling.models.SpectralModel(**kwargs)#
+class gammapy.modeling.models.SpectralModel(**kwargs)[source]#

Bases: ModelBase

Spectral model base class.

Attributes Summary

@@ -732,7 +732,7 @@

SpectralModelMethods Documentation

-__call__(energy)#
+__call__(energy)[source]#

Call self as a function.

@@ -744,7 +744,7 @@

SpectralModel
-energy_flux(energy_min, energy_max, **kwargs)#
+energy_flux(energy_min, energy_max, **kwargs)[source]#

Compute energy flux in given energy range.

\[G(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}} E \phi(E) dE\]
@@ -762,7 +762,7 @@

SpectralModel
-energy_flux_error(energy_min, energy_max, epsilon=0.0001, **kwargs)#
+energy_flux_error(energy_min, energy_max, epsilon=0.0001, **kwargs)[source]#

Evaluate the error of the energy flux of a given spectrum in a given energy range.

Parameters:
@@ -785,7 +785,7 @@

SpectralModel
-evaluate_error(energy, epsilon=0.0001)#
+evaluate_error(energy, epsilon=0.0001)[source]#

Evaluate spectral model with error propagation.

Parameters:
@@ -839,7 +839,7 @@

SpectralModel
-integral(energy_min, energy_max, **kwargs)#
+integral(energy_min, energy_max, **kwargs)[source]#

Integrate spectral model numerically if no analytical solution defined.

\[F(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}} \phi(E) dE\]
@@ -857,7 +857,7 @@

SpectralModel
-integral_error(energy_min, energy_max, epsilon=0.0001, **kwargs)#
+integral_error(energy_min, energy_max, epsilon=0.0001, **kwargs)[source]#

Evaluate the error of the integral flux of a given spectrum in a given energy range.

Parameters:
@@ -880,7 +880,7 @@

SpectralModel
-inverse(value, energy_min=<Quantity 0.1 TeV>, energy_max=<Quantity 100. TeV>)#
+inverse(value, energy_min=<Quantity 0.1 TeV>, energy_max=<Quantity 100. TeV>)[source]#

Return energy for a given function value of the spectral model.

Calls the scipy.optimize.brentq numerical root finding method.

@@ -905,7 +905,7 @@

SpectralModel
-inverse_all(values, energy_min=<Quantity 0.1 TeV>, energy_max=<Quantity 100. TeV>)#
+inverse_all(values, energy_min=<Quantity 0.1 TeV>, energy_max=<Quantity 100. TeV>)[source]#

Return energies for multiple function values of the spectral model.

Calls the scipy.optimize.brentq numerical root finding method.

@@ -931,7 +931,7 @@

SpectralModel
-plot(energy_bounds, ax=None, sed_type='dnde', energy_power=0, n_points=100, **kwargs)#
+plot(energy_bounds, ax=None, sed_type='dnde', energy_power=0, n_points=100, **kwargs)[source]#

Plot spectral model curve.

By default a log-log scaling of the axes is used, if you want to change the y-axis scaling to linear you can use:

@@ -975,7 +975,7 @@

SpectralModel
-plot_error(energy_bounds, ax=None, sed_type='dnde', energy_power=0, n_points=100, **kwargs)#
+plot_error(energy_bounds, ax=None, sed_type='dnde', energy_power=0, n_points=100, **kwargs)[source]#

Plot spectral model error band.

Note

@@ -1046,7 +1046,7 @@

SpectralModel
-reference_fluxes(energy_axis)#
+reference_fluxes(energy_axis)[source]#

Get reference fluxes for a given energy axis.

Parameters:
@@ -1066,7 +1066,7 @@

SpectralModel
-spectral_index(energy, epsilon=1e-05)#
+spectral_index(energy, epsilon=1e-05)[source]#

Compute spectral index at given energy.

Parameters:
@@ -1089,7 +1089,7 @@

SpectralModel
-spectral_index_error(energy, epsilon=1e-05)#
+spectral_index_error(energy, epsilon=1e-05)[source]#

Evaluate the error on spectral index at the given energy.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.html b/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.html index c700a2674a9..3ee7366b88a 100644 --- a/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

SuperExpCutoffPowerLaw3FGLSpectralModel#

-class gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel(**kwargs)#
+class gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral super exponential cutoff power-law model used for 3FGL.

For more information see Super exponential cutoff power law model used for 3FGL.

@@ -1118,7 +1118,7 @@

SuperExpCutoffPowerLaw3FGLSpectralModel
-static evaluate(energy, amplitude, reference, ecut, index_1, index_2)#
+static evaluate(energy, amplitude, reference, ecut, index_1, index_2)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.html b/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.html index ce118c75f0c..4de113005ca 100644 --- a/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

SuperExpCutoffPowerLaw4FGLDR3SpectralModel#

-class gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel(**kwargs)#
+class gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral super exponential cutoff power-law model used for 4FGL-DR3.

See equations (2) and (3) of https://arxiv.org/pdf/2201.11184.pdf @@ -1109,7 +1109,7 @@

SuperExpCutoffPowerLaw4FGLDR3SpectralModel
-static evaluate(energy, amplitude, reference, expfactor, index_1, index_2)#
+static evaluate(energy, amplitude, reference, expfactor, index_1, index_2)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.html b/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.html index d8944594e28..414a0d642bc 100644 --- a/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

SuperExpCutoffPowerLaw4FGLSpectralModel#

-class gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel(**kwargs)#
+class gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel(**kwargs)[source]#

Bases: SpectralModel

Spectral super exponential cutoff power-law model used for 4FGL-DR1 (and DR2).

See equation (4) of https://arxiv.org/pdf/1902.10045.pdf @@ -1111,7 +1111,7 @@

SuperExpCutoffPowerLaw4FGLSpectralModel
-static evaluate(energy, amplitude, reference, expfactor, index_1, index_2)#
+static evaluate(energy, amplitude, reference, expfactor, index_1, index_2)[source]#

Evaluate the model (static function).

diff --git a/docs/dev/api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY.html b/docs/dev/api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY.html index 4eda2fef18e..647380ac733 100644 --- a/docs/dev/api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY.html +++ b/docs/dev/api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.modeling.models.TemplateNDSpatialModel.html b/docs/dev/api/gammapy.modeling.models.TemplateNDSpatialModel.html index f50c2650102..8aee0351839 100644 --- a/docs/dev/api/gammapy.modeling.models.TemplateNDSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemplateNDSpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

TemplateNDSpatialModel#

-class gammapy.modeling.models.TemplateNDSpatialModel(map, interp_kwargs=None, meta=None, filename=None, copy_data=True)#
+class gammapy.modeling.models.TemplateNDSpatialModel(map, interp_kwargs=None, meta=None, filename=None, copy_data=True)[source]#

Bases: SpatialModel

A model generated from a ND map where extra dimensions define the parameter space.

@@ -811,7 +811,7 @@

TemplateNDSpatialModel
-evaluate(lon, lat, energy=None, **kwargs)#
+evaluate(lon, lat, energy=None, **kwargs)[source]#

@@ -842,7 +842,7 @@

TemplateNDSpatialModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create a spatial model from a dictionary.

Parameters:
@@ -1080,7 +1080,7 @@

TemplateNDSpatialModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

@@ -1092,7 +1092,7 @@

TemplateNDSpatialModel
-write(overwrite=False)#
+write(overwrite=False)[source]#

Write the map.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.TemplateNDSpectralModel.html b/docs/dev/api/gammapy.modeling.models.TemplateNDSpectralModel.html index 26fb5c79e3d..d799e7becce 100644 --- a/docs/dev/api/gammapy.modeling.models.TemplateNDSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemplateNDSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

TemplateNDSpectralModel#

-class gammapy.modeling.models.TemplateNDSpectralModel(map, interp_kwargs=None, meta=None, filename=None)#
+class gammapy.modeling.models.TemplateNDSpectralModel(map, interp_kwargs=None, meta=None, filename=None)[source]#

Bases: SpectralModel

A model generated from a ND map where extra dimensions define the parameter space.

@@ -821,7 +821,7 @@

TemplateNDSpectralModel
-evaluate(energy, **kwargs)#
+evaluate(energy, **kwargs)[source]#

@@ -855,7 +855,7 @@

TemplateNDSpectralModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

@@ -1153,7 +1153,7 @@

TemplateNDSpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

@@ -1165,7 +1165,7 @@

TemplateNDSpectralModel
-write(overwrite=False)#
+write(overwrite=False)[source]#

Write the map.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.TemplateNPredModel.html b/docs/dev/api/gammapy.modeling.models.TemplateNPredModel.html index 2f83b7fe345..e08a339760c 100644 --- a/docs/dev/api/gammapy.modeling.models.TemplateNPredModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemplateNPredModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

TemplateNPredModel#

-class gammapy.modeling.models.TemplateNPredModel(map, spectral_model=None, name=None, filename=None, datasets_names=None, copy_data=True, spatial_model=None, covariance_data=None)#
+class gammapy.modeling.models.TemplateNPredModel(map, spectral_model=None, name=None, filename=None, datasets_names=None, copy_data=True, spatial_model=None, covariance_data=None)[source]#

Bases: ModelBase

Background model.

Create a new map by a tilt and normalization on the available map.

@@ -766,7 +766,7 @@

TemplateNPredModelMethods Documentation

-copy(name=None, copy_data=False, **kwargs)#
+copy(name=None, copy_data=False, **kwargs)[source]#

Copy template npred model.

Parameters:
@@ -792,7 +792,7 @@

TemplateNPredModel
-cutout(position, width, mode='trim', name=None)#
+cutout(position, width, mode='trim', name=None)[source]#

Cutout background model.

Parameters:
@@ -820,7 +820,7 @@

TemplateNPredModel
-evaluate()#
+evaluate()[source]#

Evaluate background model.

Returns:
@@ -834,13 +834,13 @@

TemplateNPredModel
-freeze(model_type='spectral')#
+freeze(model_type='spectral')[source]#

Freeze model parameters.

-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#
@@ -889,7 +889,7 @@

TemplateNPredModel
-slice_by_energy(energy_min=None, energy_max=None, name=None)#
+slice_by_energy(energy_min=None, energy_max=None, name=None)[source]#

Select and slice model template in energy range

Parameters:
@@ -911,7 +911,7 @@

TemplateNPredModel
-stack(other, weights=None, nan_to_num=True)#
+stack(other, weights=None, nan_to_num=True)[source]#

Stack background model in place.

Stacking the background model resets the current parameters values.

@@ -930,19 +930,19 @@

TemplateNPredModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

-unfreeze(model_type='spectral')#
+unfreeze(model_type='spectral')[source]#

Restore parameters frozen status to default.

-write(overwrite=False)#
+write(overwrite=False)[source]#

Write the map.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.html b/docs/dev/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.html index 17ff0cfddaa..c035a187c8b 100644 --- a/docs/dev/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

TemplatePhaseCurveTemporalModel#

-class gammapy.modeling.models.TemplatePhaseCurveTemporalModel(table, filename=None, **kwargs)#
+class gammapy.modeling.models.TemplatePhaseCurveTemporalModel(table, filename=None, **kwargs)[source]#

Bases: TemporalModel

Temporal phase curve model.

A timing solution is used to compute the phase corresponding to time and @@ -1074,7 +1074,7 @@

TemplatePhaseCurveTemporalModel
-evaluate(time, t_ref, phi_ref, f0, f1, f2)#
+evaluate(time, t_ref, phi_ref, f0, f1, f2)[source]#

@@ -1085,7 +1085,7 @@

TemplatePhaseCurveTemporalModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create a temporal model from a dictionary.

Parameters:
@@ -1121,7 +1121,7 @@

TemplatePhaseCurveTemporalModel
-integral(t_min, t_max)#
+integral(t_min, t_max)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
@@ -1168,7 +1168,7 @@

TemplatePhaseCurveTemporalModel
-plot_phasogram(ax=None, n_points=100, **kwargs)#
+plot_phasogram(ax=None, n_points=100, **kwargs)[source]#

Plot phasogram of the phase model.

Parameters:
@@ -1192,7 +1192,7 @@

TemplatePhaseCurveTemporalModel
-classmethod read(path, t_ref=<Quantity 48442.5 d>, phi_ref=0, f0=<Quantity 29.946923 1 / s>, f1=<Quantity 0. 1 / s2>, f2=<Quantity 0. 1 / s3>)#
+classmethod read(path, t_ref=<Quantity 48442.5 d>, phi_ref=0, f0=<Quantity 29.946923 1 / s>, f1=<Quantity 0. 1 / s2>, f2=<Quantity 0. 1 / s3>)[source]#

Read phasecurve model table from FITS file.

Beware : this does not read parameters. They will be set to defaults.

@@ -1232,7 +1232,7 @@

TemplatePhaseCurveTemporalModel
-sample_time(n_events, t_min, t_max, t_delta='1 s', random_state=0)#
+sample_time(n_events, t_min, t_max, t_delta='1 s', random_state=0)[source]#

Sample arrival times of events.

To fully cover the phase range, t_delta is the minimum between the input and product of the period at 0.5*(t_min + t_max) and the table bin size.

@@ -1283,7 +1283,7 @@

TemplatePhaseCurveTemporalModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

@@ -1295,7 +1295,7 @@

TemplatePhaseCurveTemporalModel
-write(path=None, overwrite=False)#
+write(path=None, overwrite=False)[source]#

diff --git a/docs/dev/api/gammapy.modeling.models.TemplateSpatialModel.html b/docs/dev/api/gammapy.modeling.models.TemplateSpatialModel.html index 5dd32d7cc53..1afdd5309eb 100644 --- a/docs/dev/api/gammapy.modeling.models.TemplateSpatialModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemplateSpatialModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

TemplateSpatialModel#

-class gammapy.modeling.models.TemplateSpatialModel(map, meta=None, normalize=True, interp_kwargs=None, filename=None, copy_data=True, **kwargs)#
+class gammapy.modeling.models.TemplateSpatialModel(map, meta=None, normalize=True, interp_kwargs=None, filename=None, copy_data=True, **kwargs)[source]#

Bases: SpatialModel

Spatial sky map template model.

For more information see Template spatial model. @@ -951,7 +951,7 @@

TemplateSpatialModel
-copy(copy_data=False, **kwargs)#
+copy(copy_data=False, **kwargs)[source]#

Copy model.

Parameters:
@@ -973,7 +973,7 @@

TemplateSpatialModel
-evaluate(lon, lat, energy=None, lon_0=None, lat_0=None)#
+evaluate(lon, lat, energy=None, lon_0=None, lat_0=None)[source]#

Evaluate the model at given coordinates.

Note that, if the map data assume negative values, these are clipped to zero.

@@ -1007,7 +1007,7 @@

TemplateSpatialModel
-classmethod from_dict(data)#
+classmethod from_dict(data)[source]#

Create a spatial model from a dictionary.

Parameters:
@@ -1093,7 +1093,7 @@

TemplateSpatialModel
-plot(ax=None, geom=None, **kwargs)#
+plot(ax=None, geom=None, **kwargs)[source]#

Plot spatial model.

Parameters:
@@ -1175,7 +1175,7 @@

TemplateSpatialModel
-plot_interactive(ax=None, geom=None, **kwargs)#
+plot_interactive(ax=None, geom=None, **kwargs)[source]#

Plot spatial model.

Parameters:
@@ -1221,7 +1221,7 @@

TemplateSpatialModel
-classmethod read(filename, normalize=True, **kwargs)#
+classmethod read(filename, normalize=True, **kwargs)[source]#

Read spatial template model from FITS image.

If unit is not given in the FITS header the default is sr-1.

@@ -1264,13 +1264,13 @@

TemplateSpatialModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

-to_region(**kwargs)#
+to_region(**kwargs)[source]#

Model outline from template map boundary as a RectangleSkyRegion.

@@ -1282,7 +1282,7 @@

TemplateSpatialModel
-write(overwrite=False, filename=None)#
+write(overwrite=False, filename=None)[source]#

Write the map.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.TemplateSpectralModel.html b/docs/dev/api/gammapy.modeling.models.TemplateSpectralModel.html index 48928b6d488..a7cb10cfb07 100644 --- a/docs/dev/api/gammapy.modeling.models.TemplateSpectralModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemplateSpectralModel.html @@ -70,7 +70,7 @@ - + @@ -575,7 +575,7 @@

TemplateSpectralModel#

-class gammapy.modeling.models.TemplateSpectralModel(energy, values, interp_kwargs=None, meta=None)#
+class gammapy.modeling.models.TemplateSpectralModel(energy, values, interp_kwargs=None, meta=None)[source]#

Bases: SpectralModel

A model generated from a table of energy and value arrays.

For more information see Template spectral model.

@@ -821,7 +821,7 @@

TemplateSpectralModel
-evaluate(energy)#
+evaluate(energy)[source]#

Evaluate the model (static function).

@@ -856,7 +856,7 @@

TemplateSpectralModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

@@ -881,7 +881,7 @@

TemplateSpectralModel
-classmethod from_region_map(map, **kwargs)#
+classmethod from_region_map(map, **kwargs)[source]#

Create model from region map.

@@ -1070,7 +1070,7 @@

TemplateSpectralModel
-classmethod read_xspec_model(filename, param, **kwargs)#
+classmethod read_xspec_model(filename, param, **kwargs)[source]#

Read XSPEC table model.

The input is a table containing absorbed values from a XSPEC model as a function of energy.

@@ -1187,7 +1187,7 @@

TemplateSpectralModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serialisation.

diff --git a/docs/dev/api/gammapy.modeling.models.TemporalModel.html b/docs/dev/api/gammapy.modeling.models.TemporalModel.html index a029d284400..80d33b9dc66 100644 --- a/docs/dev/api/gammapy.modeling.models.TemporalModel.html +++ b/docs/dev/api/gammapy.modeling.models.TemporalModel.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

TemporalModel#

-class gammapy.modeling.models.TemporalModel(**kwargs)#
+class gammapy.modeling.models.TemporalModel(**kwargs)[source]#

Bases: ModelBase

Temporal model base class.

Evaluates on Time objects.

@@ -697,7 +697,7 @@

TemporalModelMethods Documentation

-__call__(time, energy=None)#
+__call__(time, energy=None)[source]#

Evaluate model.

Parameters:
@@ -731,7 +731,7 @@

TemporalModel
-classmethod from_dict(data, **kwargs)#
+classmethod from_dict(data, **kwargs)[source]#

Create a temporal model from a dictionary.

Parameters:
@@ -767,7 +767,7 @@

TemporalModel
-integral(t_min, t_max, oversampling_factor=100, **kwargs)#
+integral(t_min, t_max, oversampling_factor=100, **kwargs)[source]#

Evaluate the integrated flux within the given time intervals.

Parameters:
@@ -792,7 +792,7 @@

TemporalModel
-plot(time_range, ax=None, n_points=100, **kwargs)#
+plot(time_range, ax=None, n_points=100, **kwargs)[source]#

Plot the temporal model.

Parameters:
@@ -842,7 +842,7 @@

TemporalModel
-sample_time(n_events, t_min, t_max, t_delta='1 s', random_state=0)#
+sample_time(n_events, t_min, t_max, t_delta='1 s', random_state=0)[source]#

Sample arrival times of events.

Parameters:
@@ -872,7 +872,7 @@

TemporalModel
-static time_sum(t_min, t_max)#
+static time_sum(t_min, t_max)[source]#

Total time between t_min and t_max.

Parameters:
@@ -892,7 +892,7 @@

TemporalModel
-to_dict(full_output=False)#
+to_dict(full_output=False)[source]#

Create dictionary for YAML serilisation.

diff --git a/docs/dev/api/gammapy.modeling.models.UniformPrior.html b/docs/dev/api/gammapy.modeling.models.UniformPrior.html index f33697241c9..4eec498a10d 100644 --- a/docs/dev/api/gammapy.modeling.models.UniformPrior.html +++ b/docs/dev/api/gammapy.modeling.models.UniformPrior.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

UniformPrior#

-class gammapy.modeling.models.UniformPrior(**kwargs)#
+class gammapy.modeling.models.UniformPrior(**kwargs)[source]#

Bases: Prior

Uniform Prior.

Returns 1 if the parameter value is in (min, max). @@ -729,7 +729,7 @@

UniformPrior
-static evaluate(value, min, max)#
+static evaluate(value, min, max)[source]#

Evaluate the uniform prior.

diff --git a/docs/dev/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.html b/docs/dev/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.html index 4322dd47107..759470999a2 100644 --- a/docs/dev/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.html +++ b/docs/dev/api/gammapy.modeling.models.create_cosmic_ray_spectral_model.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

create_cosmic_ray_spectral_model#

-gammapy.modeling.models.create_cosmic_ray_spectral_model(particle='proton')#
+gammapy.modeling.models.create_cosmic_ray_spectral_model(particle='proton')[source]#

Cosmic a cosmic ray spectral model at Earth.

These are the spectra assumed in this CTAO study: Table 3 in https://ui.adsabs.harvard.edu/abs/2013APh….43..171B

diff --git a/docs/dev/api/gammapy.modeling.models.create_crab_spectral_model.html b/docs/dev/api/gammapy.modeling.models.create_crab_spectral_model.html index 3fa43c72899..f487a6b3d7c 100644 --- a/docs/dev/api/gammapy.modeling.models.create_crab_spectral_model.html +++ b/docs/dev/api/gammapy.modeling.models.create_crab_spectral_model.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

create_crab_spectral_model#

-gammapy.modeling.models.create_crab_spectral_model(reference='meyer')#
+gammapy.modeling.models.create_crab_spectral_model(reference='meyer')[source]#

Create a Crab nebula reference spectral model.

The Crab nebula is often used as a standard candle in gamma-ray astronomy. Fluxes and sensitivities are often quoted relative to the Crab spectrum.

diff --git a/docs/dev/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.html b/docs/dev/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.html index c5ed89fffa6..4b2f1dba3c1 100644 --- a/docs/dev/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.html +++ b/docs/dev/api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

create_fermi_isotropic_diffuse_model#

-gammapy.modeling.models.create_fermi_isotropic_diffuse_model(filename, **kwargs)#
+gammapy.modeling.models.create_fermi_isotropic_diffuse_model(filename, **kwargs)[source]#

Read Fermi isotropic diffuse model.

See LAT Background models.

diff --git a/docs/dev/api/gammapy.modeling.models.integrate_spectrum.html b/docs/dev/api/gammapy.modeling.models.integrate_spectrum.html index d3a31da6b63..4fadd2d71b6 100644 --- a/docs/dev/api/gammapy.modeling.models.integrate_spectrum.html +++ b/docs/dev/api/gammapy.modeling.models.integrate_spectrum.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

integrate_spectrum#

-gammapy.modeling.models.integrate_spectrum(func, energy_min, energy_max, ndecade=100)#
+gammapy.modeling.models.integrate_spectrum(func, energy_min, energy_max, ndecade=100)[source]#

Integrate one-dimensional function using the log-log trapezoidal rule.

Internally an oversampling of the energy bins to “ndecade” is used.

diff --git a/docs/dev/api/gammapy.modeling.models.read_hermes_cube.html b/docs/dev/api/gammapy.modeling.models.read_hermes_cube.html index 3642b90040f..08c17f16977 100644 --- a/docs/dev/api/gammapy.modeling.models.read_hermes_cube.html +++ b/docs/dev/api/gammapy.modeling.models.read_hermes_cube.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

read_hermes_cube#

-gammapy.modeling.models.read_hermes_cube(filename)#
+gammapy.modeling.models.read_hermes_cube(filename)[source]#

Read 3d templates produced with hermes.

diff --git a/docs/dev/api/gammapy.modeling.models.scale_plot_flux.html b/docs/dev/api/gammapy.modeling.models.scale_plot_flux.html index 78dd61e8c50..a4577c7b8da 100644 --- a/docs/dev/api/gammapy.modeling.models.scale_plot_flux.html +++ b/docs/dev/api/gammapy.modeling.models.scale_plot_flux.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

scale_plot_flux#

-gammapy.modeling.models.scale_plot_flux(flux, energy_power=0)#
+gammapy.modeling.models.scale_plot_flux(flux, energy_power=0)[source]#

Scale flux to plot.

Parameters:
diff --git a/docs/dev/api/gammapy.modeling.models.utils.read_hermes_cube.html b/docs/dev/api/gammapy.modeling.models.utils.read_hermes_cube.html index 7fa46f8d6a1..8eb37d0b79a 100644 --- a/docs/dev/api/gammapy.modeling.models.utils.read_hermes_cube.html +++ b/docs/dev/api/gammapy.modeling.models.utils.read_hermes_cube.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

read_hermes_cube#

-gammapy.modeling.models.utils.read_hermes_cube(filename)#
+gammapy.modeling.models.utils.read_hermes_cube(filename)[source]#

Read 3d templates produced with hermes.

diff --git a/docs/dev/api/gammapy.modeling.select_nested_models.html b/docs/dev/api/gammapy.modeling.select_nested_models.html index f8e16d027d0..7ee943733fb 100644 --- a/docs/dev/api/gammapy.modeling.select_nested_models.html +++ b/docs/dev/api/gammapy.modeling.select_nested_models.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

select_nested_models#

-gammapy.modeling.select_nested_models(datasets, parameters, null_values, n_sigma=2, n_free_parameters=None, fit=None)#
+gammapy.modeling.select_nested_models(datasets, parameters, null_values, n_sigma=2, n_free_parameters=None, fit=None)[source]#

Compute the test statistic (TS) between two nested hypothesis.

The null hypothesis is the minimal one, for which a set of parameters are frozen to given values. The model is updated to the alternative hypothesis diff --git a/docs/dev/api/gammapy.modeling.stat_profile_ul_scipy.html b/docs/dev/api/gammapy.modeling.stat_profile_ul_scipy.html index f358b7c87e1..dddbe69ab89 100644 --- a/docs/dev/api/gammapy.modeling.stat_profile_ul_scipy.html +++ b/docs/dev/api/gammapy.modeling.stat_profile_ul_scipy.html @@ -69,7 +69,7 @@ - + @@ -574,7 +574,7 @@

stat_profile_ul_scipy#

-gammapy.modeling.stat_profile_ul_scipy(value_scan, stat_scan, delta_ts=4, interp_scale='sqrt', **kwargs)#
+gammapy.modeling.stat_profile_ul_scipy(value_scan, stat_scan, delta_ts=4, interp_scale='sqrt', **kwargs)[source]#

Compute upper limit of a parameter from a likelihood profile.

Parameters:
diff --git a/docs/dev/api/gammapy.stats.CashCountsStatistic.html b/docs/dev/api/gammapy.stats.CashCountsStatistic.html index 813f1ea66c4..b8e6a22f31d 100644 --- a/docs/dev/api/gammapy.stats.CashCountsStatistic.html +++ b/docs/dev/api/gammapy.stats.CashCountsStatistic.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

CashCountsStatistic#

-class gammapy.stats.CashCountsStatistic(n_on, mu_bkg)#
+class gammapy.stats.CashCountsStatistic(n_on, mu_bkg)[source]#

Bases: CountsStatistic

Class to compute statistics for Poisson distributed variable with known background.

@@ -633,7 +633,7 @@

CashCountsStatisticMethods Documentation

-compute_errn(n_sigma=1.0)#
+compute_errn(n_sigma=1.0)[source]#

Compute downward excess uncertainties.

Searches the signal value for which the test statistics is n_sigma**2 away from the maximum.

@@ -648,7 +648,7 @@

CashCountsStatistic
-compute_errp(n_sigma=1.0)#
+compute_errp(n_sigma=1.0)[source]#

Compute upward excess uncertainties.

Searches the signal value for which the test statistics is n_sigma**2 away from the maximum.

@@ -663,7 +663,7 @@

CashCountsStatistic
-compute_upper_limit(n_sigma=3)#
+compute_upper_limit(n_sigma=3)[source]#

Compute upper limit on the signal.

Searches the signal value for which the test statistics is n_sigma**2 away from the maximum or from 0 if the measured excess is negative.

@@ -679,7 +679,7 @@

CashCountsStatistic
-info_dict()#
+info_dict()[source]#

A dictionary of the relevant quantities.

Returns:
@@ -693,7 +693,7 @@

CashCountsStatistic
-n_sig_matching_significance(significance)#
+n_sig_matching_significance(significance)[source]#

Compute excess matching a given significance.

This function is the inverse of significance.

@@ -714,7 +714,7 @@

CashCountsStatistic
-sum(axis=None)#
+sum(axis=None)[source]#

Return summed CountsStatistics.

Parameters:
diff --git a/docs/dev/api/gammapy.stats.TimmerKonig_lightcurve_simulator.html b/docs/dev/api/gammapy.stats.TimmerKonig_lightcurve_simulator.html index 61af3c3ee98..07038f403d7 100644 --- a/docs/dev/api/gammapy.stats.TimmerKonig_lightcurve_simulator.html +++ b/docs/dev/api/gammapy.stats.TimmerKonig_lightcurve_simulator.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

TimmerKonig_lightcurve_simulator#

-gammapy.stats.TimmerKonig_lightcurve_simulator(power_spectrum, npoints, spacing, nchunks=10, random_state='random-seed', power_spectrum_params=None, mean=0.0, std=1.0, poisson=False)#
+gammapy.stats.TimmerKonig_lightcurve_simulator(power_spectrum, npoints, spacing, nchunks=10, random_state='random-seed', power_spectrum_params=None, mean=0.0, std=1.0, poisson=False)[source]#

Implementation of the Timmer-Koenig algorithm to simulate a time series from a power spectrum.

Parameters:
diff --git a/docs/dev/api/gammapy.stats.WStatCountsStatistic.html b/docs/dev/api/gammapy.stats.WStatCountsStatistic.html index 93f68602de3..fa77b6cf085 100644 --- a/docs/dev/api/gammapy.stats.WStatCountsStatistic.html +++ b/docs/dev/api/gammapy.stats.WStatCountsStatistic.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

WStatCountsStatistic#

-class gammapy.stats.WStatCountsStatistic(n_on, n_off, alpha, mu_sig=None)#
+class gammapy.stats.WStatCountsStatistic(n_on, n_off, alpha, mu_sig=None)[source]#

Bases: CountsStatistic

Class to compute statistics for Poisson distributed variable with unknown background.

@@ -684,7 +684,7 @@

WStatCountsStatistic
-info_dict()#
+info_dict()[source]#

A dictionary of the relevant quantities.

Returns:
@@ -719,7 +719,7 @@

WStatCountsStatistic
-sum(axis=None)#
+sum(axis=None)[source]#

Return summed CountsStatistics.

Parameters:
diff --git a/docs/dev/api/gammapy.stats.cash.html b/docs/dev/api/gammapy.stats.cash.html index f04de1670da..4434679f02f 100644 --- a/docs/dev/api/gammapy.stats.cash.html +++ b/docs/dev/api/gammapy.stats.cash.html @@ -70,7 +70,7 @@ - + @@ -513,7 +513,7 @@

cash#

-gammapy.stats.cash(n_on, mu_on, truncation_value=1e-25)#
+gammapy.stats.cash(n_on, mu_on, truncation_value=1e-25)[source]#

Cash statistic, for Poisson data.

The Cash statistic is defined as:

diff --git a/docs/dev/api/gammapy.stats.cash_sum_cython.html b/docs/dev/api/gammapy.stats.cash_sum_cython.html index 4a0bb393896..53dfaa99c21 100644 --- a/docs/dev/api/gammapy.stats.cash_sum_cython.html +++ b/docs/dev/api/gammapy.stats.cash_sum_cython.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.stats.compute_chisq.html b/docs/dev/api/gammapy.stats.compute_chisq.html index 321ed3113e0..a0d0b59b5de 100644 --- a/docs/dev/api/gammapy.stats.compute_chisq.html +++ b/docs/dev/api/gammapy.stats.compute_chisq.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

compute_chisq#

-gammapy.stats.compute_chisq(flux)#
+gammapy.stats.compute_chisq(flux)[source]#

Calculate the chi-square test for LightCurve.

Chisquare test is a variability estimator. It computes deviations from the expected value here mean value.

diff --git a/docs/dev/api/gammapy.stats.compute_flux_doubling.html b/docs/dev/api/gammapy.stats.compute_flux_doubling.html index 9b9a9b4ebfd..d0670b70025 100644 --- a/docs/dev/api/gammapy.stats.compute_flux_doubling.html +++ b/docs/dev/api/gammapy.stats.compute_flux_doubling.html @@ -70,7 +70,7 @@ - + @@ -513,7 +513,7 @@

compute_flux_doubling#

-gammapy.stats.compute_flux_doubling(flux, flux_err, coords, axis=0)#
+gammapy.stats.compute_flux_doubling(flux, flux_err, coords, axis=0)[source]#

Compute the minimum characteristic flux doubling and halving over a certain coordinate axis for a series of measurements.

Computing the flux doubling can give the doubling time in a lightcurve diff --git a/docs/dev/api/gammapy.stats.compute_fpp.html b/docs/dev/api/gammapy.stats.compute_fpp.html index 9dbe214de8c..eb5ba83ac55 100644 --- a/docs/dev/api/gammapy.stats.compute_fpp.html +++ b/docs/dev/api/gammapy.stats.compute_fpp.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

compute_fpp#

-gammapy.stats.compute_fpp(flux, flux_err, axis=0)#
+gammapy.stats.compute_fpp(flux, flux_err, axis=0)[source]#

Calculate the point-to-point excess variance.

F_pp is a quantity strongly related to the fractional excess variance F_var implemented in compute_fvar; F_pp probes the variability diff --git a/docs/dev/api/gammapy.stats.compute_fvar.html b/docs/dev/api/gammapy.stats.compute_fvar.html index a899bf087e1..e2324fea4cc 100644 --- a/docs/dev/api/gammapy.stats.compute_fvar.html +++ b/docs/dev/api/gammapy.stats.compute_fvar.html @@ -70,7 +70,7 @@ - + @@ -513,7 +513,7 @@

compute_fvar#

-gammapy.stats.compute_fvar(flux, flux_err, axis=0)#
+gammapy.stats.compute_fvar(flux, flux_err, axis=0)[source]#

Calculate the fractional excess variance.

This method accesses the FLUX and FLUX_ERR columns from the lightcurve data.

diff --git a/docs/dev/api/gammapy.stats.cstat.html b/docs/dev/api/gammapy.stats.cstat.html index 4b2dffc6098..c771b93925e 100644 --- a/docs/dev/api/gammapy.stats.cstat.html +++ b/docs/dev/api/gammapy.stats.cstat.html @@ -70,7 +70,7 @@ - + @@ -513,7 +513,7 @@

cstat#

-gammapy.stats.cstat(n_on, mu_on, truncation_value=1e-25)#
+gammapy.stats.cstat(n_on, mu_on, truncation_value=1e-25)[source]#

C statistic, for Poisson data.

The C statistic is defined as:

diff --git a/docs/dev/api/gammapy.stats.discrete_correlation.html b/docs/dev/api/gammapy.stats.discrete_correlation.html index 07a8becc9e8..9b0642a0997 100644 --- a/docs/dev/api/gammapy.stats.discrete_correlation.html +++ b/docs/dev/api/gammapy.stats.discrete_correlation.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

discrete_correlation#

-gammapy.stats.discrete_correlation(flux1, flux_err1, flux2, flux_err2, time1, time2, tau, axis=0)#
+gammapy.stats.discrete_correlation(flux1, flux_err1, flux2, flux_err2, time1, time2, tau, axis=0)[source]#

Compute the discrete correlation function for a variable source.

Parameters:
diff --git a/docs/dev/api/gammapy.stats.f_cash_root_cython.html b/docs/dev/api/gammapy.stats.f_cash_root_cython.html index 1a95edee676..9f500e4b668 100644 --- a/docs/dev/api/gammapy.stats.f_cash_root_cython.html +++ b/docs/dev/api/gammapy.stats.f_cash_root_cython.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.stats.get_wstat_gof_terms.html b/docs/dev/api/gammapy.stats.get_wstat_gof_terms.html index 3d19eeaf0c3..52390ab1454 100644 --- a/docs/dev/api/gammapy.stats.get_wstat_gof_terms.html +++ b/docs/dev/api/gammapy.stats.get_wstat_gof_terms.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

get_wstat_gof_terms#

-gammapy.stats.get_wstat_gof_terms(n_on, n_off)#
+gammapy.stats.get_wstat_gof_terms(n_on, n_off)[source]#

Goodness of fit terms for WSTAT.

See WStat : Poisson data with background measurement.

diff --git a/docs/dev/api/gammapy.stats.get_wstat_mu_bkg.html b/docs/dev/api/gammapy.stats.get_wstat_mu_bkg.html index 8a8623e7f7c..7f87b9aa73a 100644 --- a/docs/dev/api/gammapy.stats.get_wstat_mu_bkg.html +++ b/docs/dev/api/gammapy.stats.get_wstat_mu_bkg.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

get_wstat_mu_bkg#

-gammapy.stats.get_wstat_mu_bkg(n_on, n_off, alpha, mu_sig)#
+gammapy.stats.get_wstat_mu_bkg(n_on, n_off, alpha, mu_sig)[source]#

Background estimate mu_bkg for WSTAT.

See WStat : Poisson data with background measurement.

diff --git a/docs/dev/api/gammapy.stats.norm_bounds_cython.html b/docs/dev/api/gammapy.stats.norm_bounds_cython.html index 11ee98f8273..9ffd169aeb1 100644 --- a/docs/dev/api/gammapy.stats.norm_bounds_cython.html +++ b/docs/dev/api/gammapy.stats.norm_bounds_cython.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.stats.structure_function.html b/docs/dev/api/gammapy.stats.structure_function.html index 1f201cba9f3..63743b69d91 100644 --- a/docs/dev/api/gammapy.stats.structure_function.html +++ b/docs/dev/api/gammapy.stats.structure_function.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

structure_function#

-gammapy.stats.structure_function(flux, flux_err, time, tdelta_precision=5)#
+gammapy.stats.structure_function(flux, flux_err, time, tdelta_precision=5)[source]#

Compute the discrete structure function for a variable source.

Parameters:
diff --git a/docs/dev/api/gammapy.stats.wstat.html b/docs/dev/api/gammapy.stats.wstat.html index 4fa2d9aa011..bb0be0f30a5 100644 --- a/docs/dev/api/gammapy.stats.wstat.html +++ b/docs/dev/api/gammapy.stats.wstat.html @@ -69,7 +69,7 @@ - + @@ -512,7 +512,7 @@

wstat#

-gammapy.stats.wstat(n_on, n_off, alpha, mu_sig, mu_bkg=None, extra_terms=True)#
+gammapy.stats.wstat(n_on, n_off, alpha, mu_sig, mu_bkg=None, extra_terms=True)[source]#

W statistic, for Poisson data with Poisson background.

For a definition of WStat see WStat : Poisson data with background measurement. If mu_bkg is not provided it will be calculated according to the profile likelihood formula.

diff --git a/docs/dev/api/gammapy.utils.cluster.hierarchical_clustering.html b/docs/dev/api/gammapy.utils.cluster.hierarchical_clustering.html index 490a1168bd4..a3e29763eb7 100644 --- a/docs/dev/api/gammapy.utils.cluster.hierarchical_clustering.html +++ b/docs/dev/api/gammapy.utils.cluster.hierarchical_clustering.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

hierarchical_clustering#

-gammapy.utils.cluster.hierarchical_clustering(features, linkage_kwargs=None, fcluster_kwargs=None)#
+gammapy.utils.cluster.hierarchical_clustering(features, linkage_kwargs=None, fcluster_kwargs=None)[source]#

Hierarchical clustering using given features.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.cluster.standard_scaler.html b/docs/dev/api/gammapy.utils.cluster.standard_scaler.html index 6e46d190ee0..ebd12a33003 100644 --- a/docs/dev/api/gammapy.utils.cluster.standard_scaler.html +++ b/docs/dev/api/gammapy.utils.cluster.standard_scaler.html @@ -70,7 +70,7 @@ - + @@ -558,7 +558,7 @@

standard_scaler#

-gammapy.utils.cluster.standard_scaler(features)#
+gammapy.utils.cluster.standard_scaler(features)[source]#

Compute standardized features by removing the mean and scaling to unit variance.

Calculated through:

diff --git a/docs/dev/api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER.html b/docs/dev/api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER.html index ab3a360507c..d38e64b429f 100644 --- a/docs/dev/api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER.html +++ b/docs/dev/api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.utils.coordinates.cartesian.html b/docs/dev/api/gammapy.utils.coordinates.cartesian.html index 870f11edf38..0fbc0e4c73b 100644 --- a/docs/dev/api/gammapy.utils.coordinates.cartesian.html +++ b/docs/dev/api/gammapy.utils.coordinates.cartesian.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

cartesian#

-gammapy.utils.coordinates.cartesian(r, theta)#
+gammapy.utils.coordinates.cartesian(r, theta)[source]#

Convert polar coordinates to cartesian coordinates.

diff --git a/docs/dev/api/gammapy.utils.coordinates.fov_to_sky.html b/docs/dev/api/gammapy.utils.coordinates.fov_to_sky.html index 99cb711e39c..29064eee5e8 100644 --- a/docs/dev/api/gammapy.utils.coordinates.fov_to_sky.html +++ b/docs/dev/api/gammapy.utils.coordinates.fov_to_sky.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

fov_to_sky#

-gammapy.utils.coordinates.fov_to_sky(lon, lat, lon_pnt, lat_pnt)#
+gammapy.utils.coordinates.fov_to_sky(lon, lat, lon_pnt, lat_pnt)[source]#

Transform field-of-view coordinates to sky coordinates.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.coordinates.galactic.html b/docs/dev/api/gammapy.utils.coordinates.galactic.html index 948efe884e0..4f21c86de21 100644 --- a/docs/dev/api/gammapy.utils.coordinates.galactic.html +++ b/docs/dev/api/gammapy.utils.coordinates.galactic.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

galactic#

-gammapy.utils.coordinates.galactic(x, y, z, obs_pos=None)#
+gammapy.utils.coordinates.galactic(x, y, z, obs_pos=None)[source]#

Compute galactic coordinates lon, lat and distance.

For given position in cartesian coordinates (kpc).

diff --git a/docs/dev/api/gammapy.utils.coordinates.motion_since_birth.html b/docs/dev/api/gammapy.utils.coordinates.motion_since_birth.html index fe40d32180b..afd16429970 100644 --- a/docs/dev/api/gammapy.utils.coordinates.motion_since_birth.html +++ b/docs/dev/api/gammapy.utils.coordinates.motion_since_birth.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

motion_since_birth#

-gammapy.utils.coordinates.motion_since_birth(v, age, theta, phi)#
+gammapy.utils.coordinates.motion_since_birth(v, age, theta, phi)[source]#

Compute motion of an astrophysical object with a given velocity, direction and age.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.coordinates.polar.html b/docs/dev/api/gammapy.utils.coordinates.polar.html index 4baee28ad10..361b91278d5 100644 --- a/docs/dev/api/gammapy.utils.coordinates.polar.html +++ b/docs/dev/api/gammapy.utils.coordinates.polar.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

polar#

-gammapy.utils.coordinates.polar(x, y)#
+gammapy.utils.coordinates.polar(x, y)[source]#

Convert cartesian coordinates to polar coordinates.

diff --git a/docs/dev/api/gammapy.utils.coordinates.sky_to_fov.html b/docs/dev/api/gammapy.utils.coordinates.sky_to_fov.html index f8496ef3b52..d69fe795fe9 100644 --- a/docs/dev/api/gammapy.utils.coordinates.sky_to_fov.html +++ b/docs/dev/api/gammapy.utils.coordinates.sky_to_fov.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

sky_to_fov#

-gammapy.utils.coordinates.sky_to_fov(lon, lat, lon_pnt, lat_pnt)#
+gammapy.utils.coordinates.sky_to_fov(lon, lat, lon_pnt, lat_pnt)[source]#

Transform sky coordinates to field-of-view coordinates.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.coordinates.velocity_glon_glat.html b/docs/dev/api/gammapy.utils.coordinates.velocity_glon_glat.html index 523bdd51a0c..dab75dd385e 100644 --- a/docs/dev/api/gammapy.utils.coordinates.velocity_glon_glat.html +++ b/docs/dev/api/gammapy.utils.coordinates.velocity_glon_glat.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

velocity_glon_glat#

-gammapy.utils.coordinates.velocity_glon_glat(x, y, z, vx, vy, vz)#
+gammapy.utils.coordinates.velocity_glon_glat(x, y, z, vx, vy, vz)[source]#

Compute projected angular velocity in galactic coordinates.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.fits.HDULocation.html b/docs/dev/api/gammapy.utils.fits.HDULocation.html index 3f4254dc5ad..d3cdb2f07cd 100644 --- a/docs/dev/api/gammapy.utils.fits.HDULocation.html +++ b/docs/dev/api/gammapy.utils.fits.HDULocation.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

HDULocation#

-class gammapy.utils.fits.HDULocation(hdu_class, base_dir='.', file_dir=None, file_name=None, hdu_name=None, cache=True, format=None)#
+class gammapy.utils.fits.HDULocation(hdu_class, base_dir='.', file_dir=None, file_name=None, hdu_name=None, cache=True, format=None)[source]#

Bases: object

HDU localisation, loading and Gammapy object mapper.

This represents one row in HDUIndexTable.

@@ -585,25 +585,25 @@

HDULocationMethods Documentation

-get_hdu()#
+get_hdu()[source]#

Get HDU.

-info(file=None)#
+info(file=None)[source]#

Print some summary information to stdout.

-load()#
+load()[source]#

Load HDU as appropriate class.

-path(abs_path=True)#
+path(abs_path=True)[source]#

Full filename path.

Include base_dir if abs_path is True.

diff --git a/docs/dev/api/gammapy.utils.fits.LazyFitsData.html b/docs/dev/api/gammapy.utils.fits.LazyFitsData.html index 7df396033c2..c90e6d6f0aa 100644 --- a/docs/dev/api/gammapy.utils.fits.LazyFitsData.html +++ b/docs/dev/api/gammapy.utils.fits.LazyFitsData.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

LazyFitsData#

-class gammapy.utils.fits.LazyFitsData(cache=True)#
+class gammapy.utils.fits.LazyFitsData(cache=True)[source]#

Bases: object

A lazy FITS data descriptor.

diff --git a/docs/dev/api/gammapy.utils.fits.earth_location_from_dict.html b/docs/dev/api/gammapy.utils.fits.earth_location_from_dict.html index e135b14455b..6cab993fc59 100644 --- a/docs/dev/api/gammapy.utils.fits.earth_location_from_dict.html +++ b/docs/dev/api/gammapy.utils.fits.earth_location_from_dict.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

earth_location_from_dict#

-gammapy.utils.fits.earth_location_from_dict(meta)#
+gammapy.utils.fits.earth_location_from_dict(meta)[source]#

Create EarthLocation from FITS header dictionary.

diff --git a/docs/dev/api/gammapy.utils.integrate.trapz_loglog.html b/docs/dev/api/gammapy.utils.integrate.trapz_loglog.html index e98019a8bd5..a62797e1eab 100644 --- a/docs/dev/api/gammapy.utils.integrate.trapz_loglog.html +++ b/docs/dev/api/gammapy.utils.integrate.trapz_loglog.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

trapz_loglog#

-gammapy.utils.integrate.trapz_loglog(y, x, axis=-1)#
+gammapy.utils.integrate.trapz_loglog(y, x, axis=-1)[source]#

Integrate using the composite trapezoidal rule in log-log space.

Integrate y (x) along given axis in loglog space.

diff --git a/docs/dev/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.html b/docs/dev/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.html index 30c4a7db614..93055afb4d0 100644 --- a/docs/dev/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.html +++ b/docs/dev/api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

ScaledRegularGridInterpolator#

-class gammapy.utils.interpolation.ScaledRegularGridInterpolator(points, values, points_scale=None, values_scale='lin', extrapolate=True, axis=None, **kwargs)#
+class gammapy.utils.interpolation.ScaledRegularGridInterpolator(points, values, points_scale=None, values_scale='lin', extrapolate=True, axis=None, **kwargs)[source]#

Bases: object

Thin wrapper around scipy.interpolate.RegularGridInterpolator.

The values are scaled before the interpolation and back-scaled after the @@ -597,7 +597,7 @@

ScaledRegularGridInterpolatorMethods Documentation

-__call__(points, method=None, clip=True, **kwargs)#
+__call__(points, method=None, clip=True, **kwargs)[source]#

Interpolate data points.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.interpolation.interpolate_profile.html b/docs/dev/api/gammapy.utils.interpolation.interpolate_profile.html index 4b368baaa4c..983ccac5f0b 100644 --- a/docs/dev/api/gammapy.utils.interpolation.interpolate_profile.html +++ b/docs/dev/api/gammapy.utils.interpolation.interpolate_profile.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

interpolate_profile#

-gammapy.utils.interpolation.interpolate_profile(x, y, interp_scale='sqrt', extrapolate=False)#
+gammapy.utils.interpolation.interpolate_profile(x, y, interp_scale='sqrt', extrapolate=False)[source]#

Helper function to interpolate one-dimensional profiles.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.interpolation.interpolation_scale.html b/docs/dev/api/gammapy.utils.interpolation.interpolation_scale.html index 21d842ba9ca..7566c2108cc 100644 --- a/docs/dev/api/gammapy.utils.interpolation.interpolation_scale.html +++ b/docs/dev/api/gammapy.utils.interpolation.interpolation_scale.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

interpolation_scale#

-gammapy.utils.interpolation.interpolation_scale(scale='lin')#
+gammapy.utils.interpolation.interpolation_scale(scale='lin')[source]#

Interpolation scaling.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.parallel.BACKEND_DEFAULT.html b/docs/dev/api/gammapy.utils.parallel.BACKEND_DEFAULT.html index 5840c380b66..fe2d3b9691c 100644 --- a/docs/dev/api/gammapy.utils.parallel.BACKEND_DEFAULT.html +++ b/docs/dev/api/gammapy.utils.parallel.BACKEND_DEFAULT.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.utils.parallel.METHOD_DEFAULT.html b/docs/dev/api/gammapy.utils.parallel.METHOD_DEFAULT.html index c095e1beffe..405219af48d 100644 --- a/docs/dev/api/gammapy.utils.parallel.METHOD_DEFAULT.html +++ b/docs/dev/api/gammapy.utils.parallel.METHOD_DEFAULT.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT.html b/docs/dev/api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT.html index 81c453e1eb1..df2b4d672ef 100644 --- a/docs/dev/api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT.html +++ b/docs/dev/api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.utils.parallel.N_JOBS_DEFAULT.html b/docs/dev/api/gammapy.utils.parallel.N_JOBS_DEFAULT.html index 23fa927cc4d..fbeee22c92f 100644 --- a/docs/dev/api/gammapy.utils.parallel.N_JOBS_DEFAULT.html +++ b/docs/dev/api/gammapy.utils.parallel.N_JOBS_DEFAULT.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT.html b/docs/dev/api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT.html index 976626e8229..5da486a70f2 100644 --- a/docs/dev/api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT.html +++ b/docs/dev/api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/api/gammapy.utils.parallel.multiprocessing_manager.html b/docs/dev/api/gammapy.utils.parallel.multiprocessing_manager.html index f80ff84e935..cf38ca46906 100644 --- a/docs/dev/api/gammapy.utils.parallel.multiprocessing_manager.html +++ b/docs/dev/api/gammapy.utils.parallel.multiprocessing_manager.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

multiprocessing_manager#

-class gammapy.utils.parallel.multiprocessing_manager(backend=None, pool_kwargs=None, method=None, method_kwargs=None)#
+class gammapy.utils.parallel.multiprocessing_manager(backend=None, pool_kwargs=None, method=None, method_kwargs=None)[source]#

Bases: object

Context manager to update the default configuration for multiprocessing.

Only the default configuration will be modified, if class arguments like diff --git a/docs/dev/api/gammapy.utils.parallel.run_multiprocessing.html b/docs/dev/api/gammapy.utils.parallel.run_multiprocessing.html index a472087aa3f..120f050f087 100644 --- a/docs/dev/api/gammapy.utils.parallel.run_multiprocessing.html +++ b/docs/dev/api/gammapy.utils.parallel.run_multiprocessing.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

run_multiprocessing#

-gammapy.utils.parallel.run_multiprocessing(func, inputs, backend=None, pool_kwargs=None, method=None, method_kwargs=None, task_name='')#
+gammapy.utils.parallel.run_multiprocessing(func, inputs, backend=None, pool_kwargs=None, method=None, method_kwargs=None, task_name='')[source]#

Run function in a loop or in Parallel.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.random.InverseCDFSampler.html b/docs/dev/api/gammapy.utils.random.InverseCDFSampler.html index e640884e888..76678826fb1 100644 --- a/docs/dev/api/gammapy.utils.random.InverseCDFSampler.html +++ b/docs/dev/api/gammapy.utils.random.InverseCDFSampler.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

InverseCDFSampler#

-class gammapy.utils.random.InverseCDFSampler(pdf, axis=None, random_state=0)#
+class gammapy.utils.random.InverseCDFSampler(pdf, axis=None, random_state=0)[source]#

Bases: object

Inverse CDF sampler.

It determines a set of random numbers and calculate the cumulative @@ -590,7 +590,7 @@

InverseCDFSamplerMethods Documentation

-sample(size)#
+sample(size)[source]#

Draw sample from the given PDF.

Parameters:
@@ -610,7 +610,7 @@

InverseCDFSampler
-sample_axis()#
+sample_axis()[source]#

Sample along a given axis.

Returns:
diff --git a/docs/dev/api/gammapy.utils.random.draw.html b/docs/dev/api/gammapy.utils.random.draw.html index db6077bd5c6..fd2704e35b0 100644 --- a/docs/dev/api/gammapy.utils.random.draw.html +++ b/docs/dev/api/gammapy.utils.random.draw.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

draw#

-gammapy.utils.random.draw(low, high, size, dist, random_state='random-seed', *args, **kwargs)#
+gammapy.utils.random.draw(low, high, size, dist, random_state='random-seed', *args, **kwargs)[source]#

Allow drawing of random numbers from any distribution.

diff --git a/docs/dev/api/gammapy.utils.random.get_random_state.html b/docs/dev/api/gammapy.utils.random.get_random_state.html index 17a7a8371d5..6528b05db42 100644 --- a/docs/dev/api/gammapy.utils.random.get_random_state.html +++ b/docs/dev/api/gammapy.utils.random.get_random_state.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

get_random_state#

-gammapy.utils.random.get_random_state(init)#
+gammapy.utils.random.get_random_state(init)[source]#

Get a numpy.random.RandomState instance.

The purpose of this utility function is to have a flexible way to initialise a RandomState instance, diff --git a/docs/dev/api/gammapy.utils.random.normalize.html b/docs/dev/api/gammapy.utils.random.normalize.html index 0931ac94efc..74df10b8af1 100644 --- a/docs/dev/api/gammapy.utils.random.normalize.html +++ b/docs/dev/api/gammapy.utils.random.normalize.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

normalize#

-gammapy.utils.random.normalize(func, x_min, x_max)#
+gammapy.utils.random.normalize(func, x_min, x_max)[source]#

Normalize a 1D function over a given range.

diff --git a/docs/dev/api/gammapy.utils.random.pdf.html b/docs/dev/api/gammapy.utils.random.pdf.html index 384993c7c70..a6c76fb77e1 100644 --- a/docs/dev/api/gammapy.utils.random.pdf.html +++ b/docs/dev/api/gammapy.utils.random.pdf.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

pdf#

-gammapy.utils.random.pdf(func)#
+gammapy.utils.random.pdf(func)[source]#

One-dimensional PDF of a given radial surface density.

diff --git a/docs/dev/api/gammapy.utils.random.sample_powerlaw.html b/docs/dev/api/gammapy.utils.random.sample_powerlaw.html index 65027cf07a5..a766f5fb8d6 100644 --- a/docs/dev/api/gammapy.utils.random.sample_powerlaw.html +++ b/docs/dev/api/gammapy.utils.random.sample_powerlaw.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

sample_powerlaw#

-gammapy.utils.random.sample_powerlaw(x_min, x_max, gamma, size=None, random_state='random-seed')#
+gammapy.utils.random.sample_powerlaw(x_min, x_max, gamma, size=None, random_state='random-seed')[source]#

Sample random values from a power law distribution.

f(x) = x ** (-gamma) in the range x_min to x_max

It is assumed that gamma is the differential spectral index.

diff --git a/docs/dev/api/gammapy.utils.random.sample_sphere.html b/docs/dev/api/gammapy.utils.random.sample_sphere.html index da358d98589..d1e7362d27f 100644 --- a/docs/dev/api/gammapy.utils.random.sample_sphere.html +++ b/docs/dev/api/gammapy.utils.random.sample_sphere.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

sample_sphere#

-gammapy.utils.random.sample_sphere(size, lon_range=None, lat_range=None, random_state='random-seed')#
+gammapy.utils.random.sample_sphere(size, lon_range=None, lat_range=None, random_state='random-seed')[source]#

Sample random points on the sphere.

Reference: http://mathworld.wolfram.com/SpherePointPicking.html

diff --git a/docs/dev/api/gammapy.utils.random.sample_sphere_distance.html b/docs/dev/api/gammapy.utils.random.sample_sphere_distance.html index 164f9fcf280..2ad173d2eb2 100644 --- a/docs/dev/api/gammapy.utils.random.sample_sphere_distance.html +++ b/docs/dev/api/gammapy.utils.random.sample_sphere_distance.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

sample_sphere_distance#

-gammapy.utils.random.sample_sphere_distance(distance_min=0, distance_max=1, size=None, random_state='random-seed')#
+gammapy.utils.random.sample_sphere_distance(distance_min=0, distance_max=1, size=None, random_state='random-seed')[source]#

Sample random distances if the 3-dim space density is constant.

This function uses inverse transform sampling (Wikipedia) diff --git a/docs/dev/api/gammapy.utils.random.sample_times.html b/docs/dev/api/gammapy.utils.random.sample_times.html index b5166119e17..b2b1391fdd1 100644 --- a/docs/dev/api/gammapy.utils.random.sample_times.html +++ b/docs/dev/api/gammapy.utils.random.sample_times.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

sample_times#

-gammapy.utils.random.sample_times(size, rate, dead_time=<TimeDelta object: scale='None' format='sec' value=0.0>, return_diff=False, random_state='random-seed')#
+gammapy.utils.random.sample_times(size, rate, dead_time=<TimeDelta object: scale='None' format='sec' value=0.0>, return_diff=False, random_state='random-seed')[source]#

Make random times assuming a Poisson process.

This function can be used to test event time series, to have a comparison what completely random data looks like.

diff --git a/docs/dev/api/gammapy.utils.regions.compound_region_to_regions.html b/docs/dev/api/gammapy.utils.regions.compound_region_to_regions.html index b77f7c96a4e..1c4d546e855 100644 --- a/docs/dev/api/gammapy.utils.regions.compound_region_to_regions.html +++ b/docs/dev/api/gammapy.utils.regions.compound_region_to_regions.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

compound_region_to_regions#

-gammapy.utils.regions.compound_region_to_regions(region)#
+gammapy.utils.regions.compound_region_to_regions(region)[source]#

Create list of regions from compound regions.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.html b/docs/dev/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.html index d71c269c870..04f5429858c 100644 --- a/docs/dev/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.html +++ b/docs/dev/api/gammapy.utils.regions.make_concentric_annulus_sky_regions.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

make_concentric_annulus_sky_regions#

-gammapy.utils.regions.make_concentric_annulus_sky_regions(center, radius_max, radius_min=<Quantity 1.e-05 deg>, nbin=11)#
+gammapy.utils.regions.make_concentric_annulus_sky_regions(center, radius_max, radius_min=<Quantity 1.e-05 deg>, nbin=11)[source]#

Make a list of concentric annulus regions.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.html b/docs/dev/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.html index 76e48633b34..4e2b470d04e 100644 --- a/docs/dev/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.html +++ b/docs/dev/api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

make_orthogonal_rectangle_sky_regions#

-gammapy.utils.regions.make_orthogonal_rectangle_sky_regions(start_pos, end_pos, wcs, height, nbin=1)#
+gammapy.utils.regions.make_orthogonal_rectangle_sky_regions(start_pos, end_pos, wcs, height, nbin=1)[source]#

Utility returning an array of regions to make orthogonal projections.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.regions.region_to_frame.html b/docs/dev/api/gammapy.utils.regions.region_to_frame.html index a99ec773724..81ba83fb3c2 100644 --- a/docs/dev/api/gammapy.utils.regions.region_to_frame.html +++ b/docs/dev/api/gammapy.utils.regions.region_to_frame.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

region_to_frame#

-gammapy.utils.regions.region_to_frame(region, frame)#
+gammapy.utils.regions.region_to_frame(region, frame)[source]#

Convert a region to a different frame.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.regions.regions_to_compound_region.html b/docs/dev/api/gammapy.utils.regions.regions_to_compound_region.html index 87df42d6842..716617063b1 100644 --- a/docs/dev/api/gammapy.utils.regions.regions_to_compound_region.html +++ b/docs/dev/api/gammapy.utils.regions.regions_to_compound_region.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

regions_to_compound_region#

-gammapy.utils.regions.regions_to_compound_region(regions)#
+gammapy.utils.regions.regions_to_compound_region(regions)[source]#

Create compound region from list of regions, by creating the union.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.scripts.from_yaml.html b/docs/dev/api/gammapy.utils.scripts.from_yaml.html index 350a0187786..69c8d716cbc 100644 --- a/docs/dev/api/gammapy.utils.scripts.from_yaml.html +++ b/docs/dev/api/gammapy.utils.scripts.from_yaml.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

from_yaml#

-gammapy.utils.scripts.from_yaml(text, sort_keys=False, checksum=False)#
+gammapy.utils.scripts.from_yaml(text, sort_keys=False, checksum=False)[source]#

Read YAML file.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.scripts.get_images_paths.html b/docs/dev/api/gammapy.utils.scripts.get_images_paths.html index 267a7bf12c5..9724c944a8a 100644 --- a/docs/dev/api/gammapy.utils.scripts.get_images_paths.html +++ b/docs/dev/api/gammapy.utils.scripts.get_images_paths.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

get_images_paths#

-gammapy.utils.scripts.get_images_paths(folder=PosixPath('/home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy/utils/../../docs'))#
+gammapy.utils.scripts.get_images_paths(folder=PosixPath('/home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy/utils/../../docs'))[source]#

Generator yields a Path for each image used in notebook.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.scripts.make_path.html b/docs/dev/api/gammapy.utils.scripts.make_path.html index ed3cf672f1c..a6ac35ba360 100644 --- a/docs/dev/api/gammapy.utils.scripts.make_path.html +++ b/docs/dev/api/gammapy.utils.scripts.make_path.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

make_path#

-gammapy.utils.scripts.make_path(path)#
+gammapy.utils.scripts.make_path(path)[source]#

Expand environment variables on Path construction.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.scripts.read_yaml.html b/docs/dev/api/gammapy.utils.scripts.read_yaml.html index 576114dc0f2..45b741c0460 100644 --- a/docs/dev/api/gammapy.utils.scripts.read_yaml.html +++ b/docs/dev/api/gammapy.utils.scripts.read_yaml.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

read_yaml#

-gammapy.utils.scripts.read_yaml(filename, logger=None, checksum=False)#
+gammapy.utils.scripts.read_yaml(filename, logger=None, checksum=False)[source]#

Read YAML file.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.scripts.recursive_merge_dicts.html b/docs/dev/api/gammapy.utils.scripts.recursive_merge_dicts.html index 8761725a33a..d65466b6fd0 100644 --- a/docs/dev/api/gammapy.utils.scripts.recursive_merge_dicts.html +++ b/docs/dev/api/gammapy.utils.scripts.recursive_merge_dicts.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

recursive_merge_dicts#

-gammapy.utils.scripts.recursive_merge_dicts(a, b)#
+gammapy.utils.scripts.recursive_merge_dicts(a, b)[source]#

Recursively merge two dictionaries.

Entries in ‘b’ override entries in ‘a’. The built-in update function cannot be used for hierarchical dicts, see: diff --git a/docs/dev/api/gammapy.utils.scripts.to_yaml.html b/docs/dev/api/gammapy.utils.scripts.to_yaml.html index ab9bd7da9d6..5f11658d58b 100644 --- a/docs/dev/api/gammapy.utils.scripts.to_yaml.html +++ b/docs/dev/api/gammapy.utils.scripts.to_yaml.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

to_yaml#

-gammapy.utils.scripts.to_yaml(dictionary, sort_keys=False)#
+gammapy.utils.scripts.to_yaml(dictionary, sort_keys=False)[source]#

dict to yaml

Parameters:
diff --git a/docs/dev/api/gammapy.utils.scripts.write_yaml.html b/docs/dev/api/gammapy.utils.scripts.write_yaml.html index af1057f4078..3f8b8bc2ef4 100644 --- a/docs/dev/api/gammapy.utils.scripts.write_yaml.html +++ b/docs/dev/api/gammapy.utils.scripts.write_yaml.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

write_yaml#

-gammapy.utils.scripts.write_yaml(text, filename, logger=None, sort_keys=False, checksum=False, overwrite=False)#
+gammapy.utils.scripts.write_yaml(text, filename, logger=None, sort_keys=False, checksum=False, overwrite=False)[source]#

Write YAML file.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.table.hstack_columns.html b/docs/dev/api/gammapy.utils.table.hstack_columns.html index 912666eed7c..fee658285b7 100644 --- a/docs/dev/api/gammapy.utils.table.hstack_columns.html +++ b/docs/dev/api/gammapy.utils.table.hstack_columns.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

hstack_columns#

-gammapy.utils.table.hstack_columns(table, table_other)#
+gammapy.utils.table.hstack_columns(table, table_other)[source]#

Stack the column data horizontally.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.table.table_row_to_dict.html b/docs/dev/api/gammapy.utils.table.table_row_to_dict.html index 1258997afb2..d31e5d5eff5 100644 --- a/docs/dev/api/gammapy.utils.table.table_row_to_dict.html +++ b/docs/dev/api/gammapy.utils.table.table_row_to_dict.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

table_row_to_dict#

-gammapy.utils.table.table_row_to_dict(row, make_quantity=True)#
+gammapy.utils.table.table_row_to_dict(row, make_quantity=True)[source]#

Make one source data dictionary.

Parameters:
diff --git a/docs/dev/api/gammapy.utils.table.table_standardise_units_copy.html b/docs/dev/api/gammapy.utils.table.table_standardise_units_copy.html index 4fc58389ce7..0467728314a 100644 --- a/docs/dev/api/gammapy.utils.table.table_standardise_units_copy.html +++ b/docs/dev/api/gammapy.utils.table.table_standardise_units_copy.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

table_standardise_units_copy#

-gammapy.utils.table.table_standardise_units_copy(table)#
+gammapy.utils.table.table_standardise_units_copy(table)[source]#

Standardise units for all columns in a table in a copy.

Calls standardise_unit.

diff --git a/docs/dev/api/gammapy.utils.table.table_standardise_units_inplace.html b/docs/dev/api/gammapy.utils.table.table_standardise_units_inplace.html index e87d2d61c0b..375fb569cae 100644 --- a/docs/dev/api/gammapy.utils.table.table_standardise_units_inplace.html +++ b/docs/dev/api/gammapy.utils.table.table_standardise_units_inplace.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

table_standardise_units_inplace#

-gammapy.utils.table.table_standardise_units_inplace(table)#
+gammapy.utils.table.table_standardise_units_inplace(table)[source]#

Standardise units for all columns in a table in place.

diff --git a/docs/dev/api/gammapy.utils.testing.Checker.html b/docs/dev/api/gammapy.utils.testing.Checker.html index ae8c71a2fc4..11b6e379817 100644 --- a/docs/dev/api/gammapy.utils.testing.Checker.html +++ b/docs/dev/api/gammapy.utils.testing.Checker.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

Checker#

-class gammapy.utils.testing.Checker#
+class gammapy.utils.testing.Checker[source]#

Bases: object

Base class for checker classes in Gammapy.

Methods Summary

@@ -572,7 +572,7 @@

Checker#<

Methods Documentation

-run(checks='all')#
+run(checks='all')[source]#

diff --git a/docs/dev/api/gammapy.utils.testing.assert_quantity_allclose.html b/docs/dev/api/gammapy.utils.testing.assert_quantity_allclose.html index 62e79c39f43..3f687f76fa3 100644 --- a/docs/dev/api/gammapy.utils.testing.assert_quantity_allclose.html +++ b/docs/dev/api/gammapy.utils.testing.assert_quantity_allclose.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

assert_quantity_allclose#

-gammapy.utils.testing.assert_quantity_allclose(actual, desired, rtol=1e-07, atol=None, **kwargs)#
+gammapy.utils.testing.assert_quantity_allclose(actual, desired, rtol=1e-07, atol=None, **kwargs)[source]#

Assert all-close for Quantity objects.

Notes

Requires that unit is identical, not just that quantities diff --git a/docs/dev/api/gammapy.utils.testing.assert_skycoord_allclose.html b/docs/dev/api/gammapy.utils.testing.assert_skycoord_allclose.html index 5311d349493..417f6d491db 100644 --- a/docs/dev/api/gammapy.utils.testing.assert_skycoord_allclose.html +++ b/docs/dev/api/gammapy.utils.testing.assert_skycoord_allclose.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

assert_skycoord_allclose#

-gammapy.utils.testing.assert_skycoord_allclose(actual, desired)#
+gammapy.utils.testing.assert_skycoord_allclose(actual, desired)[source]#

Assert all-close for astropy.coordinates.SkyCoord objects.

  • Frames can be different, aren’t checked at the moment.

  • diff --git a/docs/dev/api/gammapy.utils.testing.assert_time_allclose.html b/docs/dev/api/gammapy.utils.testing.assert_time_allclose.html index 58e29b90311..70fb0fda405 100644 --- a/docs/dev/api/gammapy.utils.testing.assert_time_allclose.html +++ b/docs/dev/api/gammapy.utils.testing.assert_time_allclose.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    assert_time_allclose#

    -gammapy.utils.testing.assert_time_allclose(actual, desired, atol=0.001)#
    +gammapy.utils.testing.assert_time_allclose(actual, desired, atol=0.001)[source]#

    Assert all-close for astropy.time.Time objects.

    atol : Absolute tolerance in seconds. Default is 1e-3.

    diff --git a/docs/dev/api/gammapy.utils.testing.mpl_plot_check.html b/docs/dev/api/gammapy.utils.testing.mpl_plot_check.html index 4668e143cb8..74f00abeab6 100644 --- a/docs/dev/api/gammapy.utils.testing.mpl_plot_check.html +++ b/docs/dev/api/gammapy.utils.testing.mpl_plot_check.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    mpl_plot_check#

    -gammapy.utils.testing.mpl_plot_check()#
    +gammapy.utils.testing.mpl_plot_check()[source]#

    Matplotlib plotting test context manager.

    Create a new figure on __enter__ and calls savefig for the current figure in __exit__. This will trigger a render of the diff --git a/docs/dev/api/gammapy.utils.testing.requires_data.html b/docs/dev/api/gammapy.utils.testing.requires_data.html index 860b2c06f5c..a2e333233d2 100644 --- a/docs/dev/api/gammapy.utils.testing.requires_data.html +++ b/docs/dev/api/gammapy.utils.testing.requires_data.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    requires_data#

    -gammapy.utils.testing.requires_data(name='gammapy-data')#
    +gammapy.utils.testing.requires_data(name='gammapy-data')[source]#

    Decorator to declare required data for tests.

    Examples

    from gammapy.utils.testing import requires_data
    diff --git a/docs/dev/api/gammapy.utils.testing.requires_dependency.html b/docs/dev/api/gammapy.utils.testing.requires_dependency.html
    index 26b55586e0e..0364788cb89 100644
    --- a/docs/dev/api/gammapy.utils.testing.requires_dependency.html
    +++ b/docs/dev/api/gammapy.utils.testing.requires_dependency.html
    @@ -69,7 +69,7 @@
         
       
       
    -  
    +  
       
       
       
    @@ -557,7 +557,7 @@
     

    requires_dependency#

    -gammapy.utils.testing.requires_dependency(name)#
    +gammapy.utils.testing.requires_dependency(name)[source]#

    Decorator to declare required dependencies for tests.

    Examples

    from gammapy.utils.testing import requires_dependency
    diff --git a/docs/dev/api/gammapy.utils.time.absolute_time.html b/docs/dev/api/gammapy.utils.time.absolute_time.html
    index 03c0140911a..e932079daf3 100644
    --- a/docs/dev/api/gammapy.utils.time.absolute_time.html
    +++ b/docs/dev/api/gammapy.utils.time.absolute_time.html
    @@ -69,7 +69,7 @@
         
       
       
    -  
    +  
       
       
       
    @@ -557,7 +557,7 @@
     

    absolute_time#

    -gammapy.utils.time.absolute_time(time_delta, meta)#
    +gammapy.utils.time.absolute_time(time_delta, meta)[source]#

    Convert a MET into human-readable date and time.

    Parameters:
    diff --git a/docs/dev/api/gammapy.utils.time.time_ref_from_dict.html b/docs/dev/api/gammapy.utils.time.time_ref_from_dict.html index b2a4b4edd65..91a10e56c88 100644 --- a/docs/dev/api/gammapy.utils.time.time_ref_from_dict.html +++ b/docs/dev/api/gammapy.utils.time.time_ref_from_dict.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    time_ref_from_dict#

    -gammapy.utils.time.time_ref_from_dict(meta, format='mjd', scale='tt')#
    +gammapy.utils.time.time_ref_from_dict(meta, format='mjd', scale='tt')[source]#

    Calculate the time reference from metadata.

    Parameters:
    diff --git a/docs/dev/api/gammapy.utils.time.time_ref_to_dict.html b/docs/dev/api/gammapy.utils.time.time_ref_to_dict.html index dc0053a557e..205afaf106a 100644 --- a/docs/dev/api/gammapy.utils.time.time_ref_to_dict.html +++ b/docs/dev/api/gammapy.utils.time.time_ref_to_dict.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    time_ref_to_dict#

    -gammapy.utils.time.time_ref_to_dict(time=None, scale='tt')#
    +gammapy.utils.time.time_ref_to_dict(time=None, scale='tt')[source]#

    Convert the epoch to the relevant FITS header keywords.

    Parameters:
    diff --git a/docs/dev/api/gammapy.utils.time.time_relative_to_ref.html b/docs/dev/api/gammapy.utils.time.time_relative_to_ref.html index 59881491c94..a24f5e0a6d2 100644 --- a/docs/dev/api/gammapy.utils.time.time_relative_to_ref.html +++ b/docs/dev/api/gammapy.utils.time.time_relative_to_ref.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    time_relative_to_ref#

    -gammapy.utils.time.time_relative_to_ref(time, meta)#
    +gammapy.utils.time.time_relative_to_ref(time, meta)[source]#

    Convert a time using an existing reference.

    The time reference is built as MJDREFI + MJDREFF in units of MJD. The time will be converted to seconds after the reference.

    diff --git a/docs/dev/api/gammapy.utils.units.standardise_unit.html b/docs/dev/api/gammapy.utils.units.standardise_unit.html index 659340498c3..d84f0ba070f 100644 --- a/docs/dev/api/gammapy.utils.units.standardise_unit.html +++ b/docs/dev/api/gammapy.utils.units.standardise_unit.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

    standardise_unit#

    -gammapy.utils.units.standardise_unit(unit)#
    +gammapy.utils.units.standardise_unit(unit)[source]#

    Standardise unit.

    Changes applied by this function:

      diff --git a/docs/dev/api/gammapy.utils.units.unit_from_fits_image_hdu.html b/docs/dev/api/gammapy.utils.units.unit_from_fits_image_hdu.html index 849fdbdcb10..5a7b487634e 100644 --- a/docs/dev/api/gammapy.utils.units.unit_from_fits_image_hdu.html +++ b/docs/dev/api/gammapy.utils.units.unit_from_fits_image_hdu.html @@ -69,7 +69,7 @@ - + @@ -557,7 +557,7 @@

      unit_from_fits_image_hdu#

      -gammapy.utils.units.unit_from_fits_image_hdu(header)#
      +gammapy.utils.units.unit_from_fits_image_hdu(header)[source]#

      Read unit from a FITS image HDU.

      • The BUNIT key is used.

      • diff --git a/docs/dev/api/gammapy.visualization.MapPanelPlotter.html b/docs/dev/api/gammapy.visualization.MapPanelPlotter.html index c54b7f23401..e36b66d4775 100644 --- a/docs/dev/api/gammapy.visualization.MapPanelPlotter.html +++ b/docs/dev/api/gammapy.visualization.MapPanelPlotter.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        MapPanelPlotter#

        -class gammapy.visualization.MapPanelPlotter(figure, xlim, ylim, npanels=4, **kwargs)#
        +class gammapy.visualization.MapPanelPlotter(figure, xlim, ylim, npanels=4, **kwargs)[source]#

        Bases: object

        Map panel plotter class.

        Given a Figure object this class creates axes objects @@ -543,7 +543,7 @@

        MapPanelPlotterMethods Documentation

        -plot(map, **kwargs)#
        +plot(map, **kwargs)[source]#

        Plot sky map on all panels.

        Parameters:
        @@ -557,7 +557,7 @@

        MapPanelPlotter
        -plot_panel(map, panel=1, panel_fov=None, **kwargs)#
        +plot_panel(map, panel=1, panel_fov=None, **kwargs)[source]#

        Plot sky map on one panel.

        Parameters:
        diff --git a/docs/dev/api/gammapy.visualization.add_colorbar.html b/docs/dev/api/gammapy.visualization.add_colorbar.html index ae545aa195c..2036a0d273d 100644 --- a/docs/dev/api/gammapy.visualization.add_colorbar.html +++ b/docs/dev/api/gammapy.visualization.add_colorbar.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        add_colorbar#

        -gammapy.visualization.add_colorbar(img, ax, axes_loc=None, **kwargs)#
        +gammapy.visualization.add_colorbar(img, ax, axes_loc=None, **kwargs)[source]#

        Add colorbar to a given axis.

        Parameters:
        diff --git a/docs/dev/api/gammapy.visualization.annotate_heatmap.html b/docs/dev/api/gammapy.visualization.annotate_heatmap.html index b79ac090937..21fd44ea023 100644 --- a/docs/dev/api/gammapy.visualization.annotate_heatmap.html +++ b/docs/dev/api/gammapy.visualization.annotate_heatmap.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        annotate_heatmap#

        -gammapy.visualization.annotate_heatmap(im, data=None, valfmt='{x:.2f}', textcolors=('black', 'white'), threshold=None, **textkw)#
        +gammapy.visualization.annotate_heatmap(im, data=None, valfmt='{x:.2f}', textcolors=('black', 'white'), threshold=None, **textkw)[source]#

        A function to annotate a heatmap.

        Parameters:
        diff --git a/docs/dev/api/gammapy.visualization.colormap_hess.html b/docs/dev/api/gammapy.visualization.colormap_hess.html index 8c6a24634e9..38c17aca245 100644 --- a/docs/dev/api/gammapy.visualization.colormap_hess.html +++ b/docs/dev/api/gammapy.visualization.colormap_hess.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        colormap_hess#

        -gammapy.visualization.colormap_hess(transition=0.5, width=0.1)#
        +gammapy.visualization.colormap_hess(transition=0.5, width=0.1)[source]#

        Colormap often used in H.E.S.S. collaboration publications.

        This colormap goes black -> blue -> red -> yellow -> white.

        A sharp blue -> red -> yellow transition is often used for significance images diff --git a/docs/dev/api/gammapy.visualization.colormap_milagro.html b/docs/dev/api/gammapy.visualization.colormap_milagro.html index 44860f407ad..fc788f3b7ff 100644 --- a/docs/dev/api/gammapy.visualization.colormap_milagro.html +++ b/docs/dev/api/gammapy.visualization.colormap_milagro.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        colormap_milagro#

        -gammapy.visualization.colormap_milagro(transition=0.5, width=0.0001, huestart=0.6)#
        +gammapy.visualization.colormap_milagro(transition=0.5, width=0.0001, huestart=0.6)[source]#

        Colormap often used in Milagro collaboration publications.

        This colormap is gray below transition and similar to the jet colormap above.

        A sharp gray -> color transition is often used for significance images diff --git a/docs/dev/api/gammapy.visualization.plot_contour_line.html b/docs/dev/api/gammapy.visualization.plot_contour_line.html index 6f5e86070fe..ba4d6a67f2a 100644 --- a/docs/dev/api/gammapy.visualization.plot_contour_line.html +++ b/docs/dev/api/gammapy.visualization.plot_contour_line.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_contour_line#

        -gammapy.visualization.plot_contour_line(ax, x, y, **kwargs)#
        +gammapy.visualization.plot_contour_line(ax, x, y, **kwargs)[source]#

        Plot smooth curve from contour points.

        diff --git a/docs/dev/api/gammapy.visualization.plot_distribution.html b/docs/dev/api/gammapy.visualization.plot_distribution.html index d638ca0622a..f9750421165 100644 --- a/docs/dev/api/gammapy.visualization.plot_distribution.html +++ b/docs/dev/api/gammapy.visualization.plot_distribution.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_distribution#

        -gammapy.visualization.plot_distribution(wcs_map, ax=None, ncols=3, func=None, kwargs_hist=None, kwargs_axes=None, kwargs_fit=None)#
        +gammapy.visualization.plot_distribution(wcs_map, ax=None, ncols=3, func=None, kwargs_hist=None, kwargs_axes=None, kwargs_fit=None)[source]#

        Plot the 1D distribution of data inside a map as an histogram. If the dimension of the map is smaller than 2, a unique plot will be displayed. Otherwise, if the dimension is 3 or greater, a grid of plot will be displayed.

        diff --git a/docs/dev/api/gammapy.visualization.plot_heatmap.html b/docs/dev/api/gammapy.visualization.plot_heatmap.html index fd9f54cd494..646ac1e45e4 100644 --- a/docs/dev/api/gammapy.visualization.plot_heatmap.html +++ b/docs/dev/api/gammapy.visualization.plot_heatmap.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_heatmap#

        -gammapy.visualization.plot_heatmap(data, row_labels, col_labels, ax=None, cbar_kw=None, cbarlabel='', **kwargs)#
        +gammapy.visualization.plot_heatmap(data, row_labels, col_labels, ax=None, cbar_kw=None, cbarlabel='', **kwargs)[source]#

        Create a heatmap from a numpy array and two lists of labels.

        Parameters:
        diff --git a/docs/dev/api/gammapy.visualization.plot_map_rgb.html b/docs/dev/api/gammapy.visualization.plot_map_rgb.html index c45f9637ae0..57226dd843c 100644 --- a/docs/dev/api/gammapy.visualization.plot_map_rgb.html +++ b/docs/dev/api/gammapy.visualization.plot_map_rgb.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_map_rgb#

        -gammapy.visualization.plot_map_rgb(map_, ax=None, **kwargs)#
        +gammapy.visualization.plot_map_rgb(map_, ax=None, **kwargs)[source]#

        Plot RGB image on matplotlib WCS axes.

        This function is based on the make_lupton_rgb function. The input map must contain 1 non-spatial axis with exactly 3 bins. If this is not the case, the map has to be resampled diff --git a/docs/dev/api/gammapy.visualization.plot_npred_signal.html b/docs/dev/api/gammapy.visualization.plot_npred_signal.html index b760950a6aa..ed721022c97 100644 --- a/docs/dev/api/gammapy.visualization.plot_npred_signal.html +++ b/docs/dev/api/gammapy.visualization.plot_npred_signal.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_npred_signal#

        -gammapy.visualization.plot_npred_signal(dataset, ax=None, model_names=None, region=None, **kwargs)#
        +gammapy.visualization.plot_npred_signal(dataset, ax=None, model_names=None, region=None, **kwargs)[source]#

        Plot the energy distribution of predicted counts of a selection of models assigned to a dataset.

        The background and the sum af all the considered models predicted counts are plotted on top of individual contributions of the considered models.

        diff --git a/docs/dev/api/gammapy.visualization.plot_spectrum_datasets_off_regions.html b/docs/dev/api/gammapy.visualization.plot_spectrum_datasets_off_regions.html index 8cee2c05b45..f1056dd1102 100644 --- a/docs/dev/api/gammapy.visualization.plot_spectrum_datasets_off_regions.html +++ b/docs/dev/api/gammapy.visualization.plot_spectrum_datasets_off_regions.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_spectrum_datasets_off_regions#

        -gammapy.visualization.plot_spectrum_datasets_off_regions(datasets, ax=None, legend=None, legend_kwargs=None, **kwargs)#
        +gammapy.visualization.plot_spectrum_datasets_off_regions(datasets, ax=None, legend=None, legend_kwargs=None, **kwargs)[source]#

        Plot the off regions of spectrum datasets.

        Parameters:
        diff --git a/docs/dev/api/gammapy.visualization.plot_theta_squared_table.html b/docs/dev/api/gammapy.visualization.plot_theta_squared_table.html index b381b530d3c..8a3ba8eaa07 100644 --- a/docs/dev/api/gammapy.visualization.plot_theta_squared_table.html +++ b/docs/dev/api/gammapy.visualization.plot_theta_squared_table.html @@ -69,7 +69,7 @@ - + @@ -507,7 +507,7 @@

        plot_theta_squared_table#

        -gammapy.visualization.plot_theta_squared_table(table)#
        +gammapy.visualization.plot_theta_squared_table(table)[source]#

        Plot the theta2 distribution of counts, excess and significance.

        Take the table containing the ON counts, the OFF counts, the acceptance, the off acceptance and the alpha (normalisation between ON and OFF) diff --git a/docs/dev/development/dependencies.html b/docs/dev/development/dependencies.html index 816f36b2a5d..1b598146247 100644 --- a/docs/dev/development/dependencies.html +++ b/docs/dev/development/dependencies.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/dev_howto.html b/docs/dev/development/dev_howto.html index 4e33cdf85f7..7e54dc2d249 100644 --- a/docs/dev/development/dev_howto.html +++ b/docs/dev/development/dev_howto.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/doc_howto.html b/docs/dev/development/doc_howto.html index 905d3615e3b..d6936b7b018 100644 --- a/docs/dev/development/doc_howto.html +++ b/docs/dev/development/doc_howto.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/index.html b/docs/dev/development/index.html index 0a00d7d21fd..708d02fe047 100644 --- a/docs/dev/development/index.html +++ b/docs/dev/development/index.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/development/intro.html b/docs/dev/development/intro.html index 70a945b69b3..1452013e721 100644 --- a/docs/dev/development/intro.html +++ b/docs/dev/development/intro.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/index.html b/docs/dev/development/pigs/index.html index 39e72df17f7..e21259be1ac 100644 --- a/docs/dev/development/pigs/index.html +++ b/docs/dev/development/pigs/index.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/development/pigs/pig-001.html b/docs/dev/development/pigs/pig-001.html index 584c8fdbdf1..cb116ad2128 100644 --- a/docs/dev/development/pigs/pig-001.html +++ b/docs/dev/development/pigs/pig-001.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-002.html b/docs/dev/development/pigs/pig-002.html index c78975cec61..2c52f52c1e4 100644 --- a/docs/dev/development/pigs/pig-002.html +++ b/docs/dev/development/pigs/pig-002.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-003.html b/docs/dev/development/pigs/pig-003.html index 42c05646a54..80b9cba1b3b 100644 --- a/docs/dev/development/pigs/pig-003.html +++ b/docs/dev/development/pigs/pig-003.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-004.html b/docs/dev/development/pigs/pig-004.html index 5ec10776cf0..29d29971ed2 100644 --- a/docs/dev/development/pigs/pig-004.html +++ b/docs/dev/development/pigs/pig-004.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-005.html b/docs/dev/development/pigs/pig-005.html index 6e848e1d2ef..0924db6d1eb 100644 --- a/docs/dev/development/pigs/pig-005.html +++ b/docs/dev/development/pigs/pig-005.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-006.html b/docs/dev/development/pigs/pig-006.html index a58ed08cdcc..abb57f30602 100644 --- a/docs/dev/development/pigs/pig-006.html +++ b/docs/dev/development/pigs/pig-006.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-007.html b/docs/dev/development/pigs/pig-007.html index da8bdade979..571d9500437 100644 --- a/docs/dev/development/pigs/pig-007.html +++ b/docs/dev/development/pigs/pig-007.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-008.html b/docs/dev/development/pigs/pig-008.html index 3dc24b6c45a..74a5c093b41 100644 --- a/docs/dev/development/pigs/pig-008.html +++ b/docs/dev/development/pigs/pig-008.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-009.html b/docs/dev/development/pigs/pig-009.html index 8a15a29a821..55e500e3d9a 100644 --- a/docs/dev/development/pigs/pig-009.html +++ b/docs/dev/development/pigs/pig-009.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-010.html b/docs/dev/development/pigs/pig-010.html index 900c5fe8cfe..4ad056661fe 100644 --- a/docs/dev/development/pigs/pig-010.html +++ b/docs/dev/development/pigs/pig-010.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-011.html b/docs/dev/development/pigs/pig-011.html index a0e8bcb8b12..60353312dff 100644 --- a/docs/dev/development/pigs/pig-011.html +++ b/docs/dev/development/pigs/pig-011.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-012.html b/docs/dev/development/pigs/pig-012.html index 6473f35ea68..375c09e97a2 100644 --- a/docs/dev/development/pigs/pig-012.html +++ b/docs/dev/development/pigs/pig-012.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-013.html b/docs/dev/development/pigs/pig-013.html index 4461b7f7404..22d15e5adb6 100644 --- a/docs/dev/development/pigs/pig-013.html +++ b/docs/dev/development/pigs/pig-013.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-014.html b/docs/dev/development/pigs/pig-014.html index 0a29a9185ef..0169d70cf70 100644 --- a/docs/dev/development/pigs/pig-014.html +++ b/docs/dev/development/pigs/pig-014.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-016.html b/docs/dev/development/pigs/pig-016.html index 2f3ddc314b8..4d1c9e1586d 100644 --- a/docs/dev/development/pigs/pig-016.html +++ b/docs/dev/development/pigs/pig-016.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-018.html b/docs/dev/development/pigs/pig-018.html index 53edc4cd82a..7fa7eaaf2be 100644 --- a/docs/dev/development/pigs/pig-018.html +++ b/docs/dev/development/pigs/pig-018.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-019.html b/docs/dev/development/pigs/pig-019.html index e75871c9499..575b79547a5 100644 --- a/docs/dev/development/pigs/pig-019.html +++ b/docs/dev/development/pigs/pig-019.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-020.html b/docs/dev/development/pigs/pig-020.html index 70306e2b7ae..3b9fe6b4608 100644 --- a/docs/dev/development/pigs/pig-020.html +++ b/docs/dev/development/pigs/pig-020.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-021.html b/docs/dev/development/pigs/pig-021.html index f6e0f0b46e8..e38ef21c7b0 100644 --- a/docs/dev/development/pigs/pig-021.html +++ b/docs/dev/development/pigs/pig-021.html @@ -70,7 +70,7 @@ - + diff --git a/docs/dev/development/pigs/pig-022.html b/docs/dev/development/pigs/pig-022.html index fadbe865167..32c8c0bd525 100644 --- a/docs/dev/development/pigs/pig-022.html +++ b/docs/dev/development/pigs/pig-022.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-023.html b/docs/dev/development/pigs/pig-023.html index b1371127d92..22aea0a7fd9 100644 --- a/docs/dev/development/pigs/pig-023.html +++ b/docs/dev/development/pigs/pig-023.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-024.html b/docs/dev/development/pigs/pig-024.html index 748209131f7..55cdd8caec4 100644 --- a/docs/dev/development/pigs/pig-024.html +++ b/docs/dev/development/pigs/pig-024.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-025.html b/docs/dev/development/pigs/pig-025.html index 53b13c9f10b..dcadbcb8141 100644 --- a/docs/dev/development/pigs/pig-025.html +++ b/docs/dev/development/pigs/pig-025.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/pigs/pig-026.html b/docs/dev/development/pigs/pig-026.html index 5903579a86f..9fab38659c9 100644 --- a/docs/dev/development/pigs/pig-026.html +++ b/docs/dev/development/pigs/pig-026.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/release.html b/docs/dev/development/release.html index eabec402694..5600b95d5a4 100644 --- a/docs/dev/development/release.html +++ b/docs/dev/development/release.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/development/setup.html b/docs/dev/development/setup.html index d94ff84e2a3..42094aa7336 100644 --- a/docs/dev/development/setup.html +++ b/docs/dev/development/setup.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/genindex.html b/docs/dev/genindex.html index f15ebaafb44..935f02d99af 100644 --- a/docs/dev/genindex.html +++ b/docs/dev/genindex.html @@ -66,7 +66,7 @@ - + diff --git a/docs/dev/getting-started/environments.html b/docs/dev/getting-started/environments.html index 2dca9633cb0..3980d0a5644 100644 --- a/docs/dev/getting-started/environments.html +++ b/docs/dev/getting-started/environments.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/getting-started/index.html b/docs/dev/getting-started/index.html index 48d61527bee..808dfab1fa4 100644 --- a/docs/dev/getting-started/index.html +++ b/docs/dev/getting-started/index.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/getting-started/install.html b/docs/dev/getting-started/install.html index e600207d040..6cf7ad06c64 100644 --- a/docs/dev/getting-started/install.html +++ b/docs/dev/getting-started/install.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/getting-started/quickstart.html b/docs/dev/getting-started/quickstart.html index 21d9e852fff..57898e8f907 100644 --- a/docs/dev/getting-started/quickstart.html +++ b/docs/dev/getting-started/quickstart.html @@ -67,7 +67,7 @@ - + diff --git a/docs/dev/getting-started/troubleshooting.html b/docs/dev/getting-started/troubleshooting.html index e663837af8b..b44e3f9c702 100644 --- a/docs/dev/getting-started/troubleshooting.html +++ b/docs/dev/getting-started/troubleshooting.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/getting-started/usage.html b/docs/dev/getting-started/usage.html index ca0fec3c6e7..df9d82e19d2 100644 --- a/docs/dev/getting-started/usage.html +++ b/docs/dev/getting-started/usage.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/index.html b/docs/dev/index.html index 5f4ef9967b7..a68575a2d85 100644 --- a/docs/dev/index.html +++ b/docs/dev/index.html @@ -69,7 +69,7 @@ - + @@ -443,7 +443,7 @@

    Gammapy#

    -

    Date: Jan 07, 2025 Version: 2.0.dev190+ged6e64092

    +

    Date: Jan 10, 2025 Version: 2.0.dev194+gbc69342c8

    Useful links: Web page | Recipes | diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/cta_sensitivity.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/cta_sensitivity.ipynb index 41134404fde..a15bf1c7d73 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/cta_sensitivity.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/cta_sensitivity.ipynb @@ -294,7 +294,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/ebl.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/ebl.ipynb index 327de028e0f..9b012f74ff2 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/ebl.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/ebl.ipynb @@ -297,7 +297,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/extended_source_spectral_analysis.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/extended_source_spectral_analysis.ipynb index 9fb13005ce2..23db21b1b8e 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/extended_source_spectral_analysis.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/extended_source_spectral_analysis.ipynb @@ -312,7 +312,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/sed_fitting.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/sed_fitting.ipynb index ec0c5ed199b..b4601d3da6c 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/sed_fitting.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/sed_fitting.ipynb @@ -236,7 +236,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis.ipynb index 6757aa54d3e..f0efffb3d27 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis.ipynb @@ -531,7 +531,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_hli.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_hli.ipynb index f52325772c6..aef90f143e6 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_hli.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_hli.ipynb @@ -562,7 +562,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_rad_max.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_rad_max.ipynb index bbc76ff6daf..61b1aa79c95 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_rad_max.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectral_analysis_rad_max.ipynb @@ -330,7 +330,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectrum_simulation.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectrum_simulation.ipynb index 328b3d29f71..dfadb8af112 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-1d/spectrum_simulation.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-1d/spectrum_simulation.ipynb @@ -229,7 +229,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-2d/detect.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-2d/detect.ipynb index c05a9184a31..38fc8bb3ca7 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-2d/detect.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-2d/detect.ipynb @@ -240,7 +240,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-2d/modeling_2D.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-2d/modeling_2D.ipynb index 743fe2ab918..0d7297bdae2 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-2d/modeling_2D.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-2d/modeling_2D.ipynb @@ -204,7 +204,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-2d/ring_background.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-2d/ring_background.ipynb index 2877ad67937..790858ea857 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-2d/ring_background.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-2d/ring_background.ipynb @@ -240,7 +240,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_3d.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_3d.ipynb index 8b542518759..97381a37031 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_3d.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_3d.ipynb @@ -563,7 +563,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_mwl.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_mwl.ipynb index e564f409d76..8853ec262fa 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_mwl.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/analysis_mwl.ipynb @@ -251,7 +251,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/cta_data_analysis.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/cta_data_analysis.ipynb index d09a50d0ab8..679d0be9cc9 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/cta_data_analysis.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/cta_data_analysis.ipynb @@ -391,7 +391,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/energy_dependent_estimation.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/energy_dependent_estimation.ipynb index b67f0f99d1a..0978e0cce7f 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/energy_dependent_estimation.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/energy_dependent_estimation.ipynb @@ -204,7 +204,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling.ipynb index 6dd9689a382..86b30560d89 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling.ipynb @@ -481,7 +481,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling_nrg_depend_models.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling_nrg_depend_models.ipynb index 3baa260ad36..5879a6df448 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling_nrg_depend_models.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/event_sampling_nrg_depend_models.ipynb @@ -305,7 +305,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/flux_profiles.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/flux_profiles.ipynb index 9557a9b9963..f5bd632b292 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/flux_profiles.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/flux_profiles.ipynb @@ -449,7 +449,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-3d/simulate_3d.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-3d/simulate_3d.ipynb index 334245772a7..54aa2acbbc0 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-3d/simulate_3d.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-3d/simulate_3d.ipynb @@ -168,7 +168,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve.ipynb index 7d082680cd3..2b192d00326 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve.ipynb @@ -405,7 +405,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_flare.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_flare.ipynb index a51269d3a2c..1de7c64be41 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_flare.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_flare.ipynb @@ -319,7 +319,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_simulation.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_simulation.ipynb index 0db4a8667b4..5b428a0ff32 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_simulation.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-time/light_curve_simulation.ipynb @@ -337,7 +337,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-time/pulsar_analysis.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-time/pulsar_analysis.ipynb index 5301b900b99..daee1bbb5b1 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-time/pulsar_analysis.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-time/pulsar_analysis.ipynb @@ -373,7 +373,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-time/time_resolved_spectroscopy.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-time/time_resolved_spectroscopy.ipynb index 06499332415..c8d8a2e8514 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-time/time_resolved_spectroscopy.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-time/time_resolved_spectroscopy.ipynb @@ -276,7 +276,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/analysis-time/variability_estimation.ipynb b/docs/dev/notebooks/dev/tutorials/analysis-time/variability_estimation.ipynb index ea5aadf8706..d87ea0d7918 100644 --- a/docs/dev/notebooks/dev/tutorials/analysis-time/variability_estimation.ipynb +++ b/docs/dev/notebooks/dev/tutorials/analysis-time/variability_estimation.ipynb @@ -265,7 +265,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/astro_dark_matter.ipynb b/docs/dev/notebooks/dev/tutorials/api/astro_dark_matter.ipynb index df8ba84497c..e2b6f292d3d 100644 --- a/docs/dev/notebooks/dev/tutorials/api/astro_dark_matter.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/astro_dark_matter.ipynb @@ -168,7 +168,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/catalog.ipynb b/docs/dev/notebooks/dev/tutorials/api/catalog.ipynb index b3c3a66f13e..fe3d76f1595 100644 --- a/docs/dev/notebooks/dev/tutorials/api/catalog.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/catalog.ipynb @@ -658,7 +658,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/datasets.ipynb b/docs/dev/notebooks/dev/tutorials/api/datasets.ipynb index 457a09398c3..2a350256c32 100644 --- a/docs/dev/notebooks/dev/tutorials/api/datasets.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/datasets.ipynb @@ -845,7 +845,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/estimators.ipynb b/docs/dev/notebooks/dev/tutorials/api/estimators.ipynb index c85425af36d..9489c22c656 100644 --- a/docs/dev/notebooks/dev/tutorials/api/estimators.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/estimators.ipynb @@ -468,7 +468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/fitting.ipynb b/docs/dev/notebooks/dev/tutorials/api/fitting.ipynb index 7d089e54965..22e50d21742 100644 --- a/docs/dev/notebooks/dev/tutorials/api/fitting.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/fitting.ipynb @@ -560,7 +560,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/irfs.ipynb b/docs/dev/notebooks/dev/tutorials/api/irfs.ipynb index 4e05eb22792..71e9c46d45a 100644 --- a/docs/dev/notebooks/dev/tutorials/api/irfs.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/irfs.ipynb @@ -398,7 +398,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/makers.ipynb b/docs/dev/notebooks/dev/tutorials/api/makers.ipynb index ef777a17715..82c975fb883 100644 --- a/docs/dev/notebooks/dev/tutorials/api/makers.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/makers.ipynb @@ -269,7 +269,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/maps.ipynb b/docs/dev/notebooks/dev/tutorials/api/maps.ipynb index 6bf4f489001..5c63934c1a3 100644 --- a/docs/dev/notebooks/dev/tutorials/api/maps.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/maps.ipynb @@ -1470,7 +1470,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/mask_maps.ipynb b/docs/dev/notebooks/dev/tutorials/api/mask_maps.ipynb index a744515f768..c09cef565ad 100644 --- a/docs/dev/notebooks/dev/tutorials/api/mask_maps.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/mask_maps.ipynb @@ -524,7 +524,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/model_management.ipynb b/docs/dev/notebooks/dev/tutorials/api/model_management.ipynb index 49b6cdeba11..19efc0ecd73 100644 --- a/docs/dev/notebooks/dev/tutorials/api/model_management.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/model_management.ipynb @@ -506,7 +506,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/models.ipynb b/docs/dev/notebooks/dev/tutorials/api/models.ipynb index 5e77aa70799..1d8ea0aaef6 100644 --- a/docs/dev/notebooks/dev/tutorials/api/models.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/models.ipynb @@ -1042,7 +1042,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/observation_clustering.ipynb b/docs/dev/notebooks/dev/tutorials/api/observation_clustering.ipynb index f3d2e67c751..937403b6c08 100644 --- a/docs/dev/notebooks/dev/tutorials/api/observation_clustering.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/observation_clustering.ipynb @@ -211,7 +211,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/api/priors.ipynb b/docs/dev/notebooks/dev/tutorials/api/priors.ipynb index 7d23401cc11..8030a16fe62 100644 --- a/docs/dev/notebooks/dev/tutorials/api/priors.ipynb +++ b/docs/dev/notebooks/dev/tutorials/api/priors.ipynb @@ -301,7 +301,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/data/cta.ipynb b/docs/dev/notebooks/dev/tutorials/data/cta.ipynb index 94063b6f917..674205bd676 100644 --- a/docs/dev/notebooks/dev/tutorials/data/cta.ipynb +++ b/docs/dev/notebooks/dev/tutorials/data/cta.ipynb @@ -384,7 +384,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/data/fermi_lat.ipynb b/docs/dev/notebooks/dev/tutorials/data/fermi_lat.ipynb index 04f67495d4f..cd5c8904b16 100644 --- a/docs/dev/notebooks/dev/tutorials/data/fermi_lat.ipynb +++ b/docs/dev/notebooks/dev/tutorials/data/fermi_lat.ipynb @@ -445,7 +445,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/data/hawc.ipynb b/docs/dev/notebooks/dev/tutorials/data/hawc.ipynb index eab450d64b9..5b95b468b82 100644 --- a/docs/dev/notebooks/dev/tutorials/data/hawc.ipynb +++ b/docs/dev/notebooks/dev/tutorials/data/hawc.ipynb @@ -484,7 +484,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/data/hess.ipynb b/docs/dev/notebooks/dev/tutorials/data/hess.ipynb index 5dc42019caf..b90d4e7478e 100644 --- a/docs/dev/notebooks/dev/tutorials/data/hess.ipynb +++ b/docs/dev/notebooks/dev/tutorials/data/hess.ipynb @@ -236,7 +236,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/scripts/survey_map.ipynb b/docs/dev/notebooks/dev/tutorials/scripts/survey_map.ipynb index da7e7f2c5ef..43bde7b7c6e 100644 --- a/docs/dev/notebooks/dev/tutorials/scripts/survey_map.ipynb +++ b/docs/dev/notebooks/dev/tutorials/scripts/survey_map.ipynb @@ -35,7 +35,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/starting/analysis_1.ipynb b/docs/dev/notebooks/dev/tutorials/starting/analysis_1.ipynb index 7250f63f6b4..68d56d40b58 100644 --- a/docs/dev/notebooks/dev/tutorials/starting/analysis_1.ipynb +++ b/docs/dev/notebooks/dev/tutorials/starting/analysis_1.ipynb @@ -509,7 +509,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/starting/analysis_2.ipynb b/docs/dev/notebooks/dev/tutorials/starting/analysis_2.ipynb index b3fcd71796b..52c12c8967e 100644 --- a/docs/dev/notebooks/dev/tutorials/starting/analysis_2.ipynb +++ b/docs/dev/notebooks/dev/tutorials/starting/analysis_2.ipynb @@ -467,7 +467,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/tutorials/starting/overview.ipynb b/docs/dev/notebooks/dev/tutorials/starting/overview.ipynb index 5de421dbdb9..a564128cd6e 100644 --- a/docs/dev/notebooks/dev/tutorials/starting/overview.ipynb +++ b/docs/dev/notebooks/dev/tutorials/starting/overview.ipynb @@ -621,7 +621,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_constant.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_constant.ipynb index 4ab4f74fd1c..a2c7b84b920 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_constant.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_constant.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_disk.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_disk.ipynb index eb0ee7258e5..fe4bbba4b8d 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_disk.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_disk.ipynb @@ -78,7 +78,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gauss.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gauss.ipynb index 77eb69eb65a..fe6f9bb7a82 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gauss.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gauss.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gen_gauss.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gen_gauss.ipynb index 92e666d3d44..cc887474c48 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gen_gauss.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_gen_gauss.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.ipynb index 75bccbb8c21..244bc4130e4 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_point.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_point.ipynb index 5260d21b1ae..0017fbf26fe 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_point.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_point.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell.ipynb index eef2686be52..0cc4f3917c3 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell2.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell2.ipynb index abc5b9ee536..7610d030180 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell2.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_shell2.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_template.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_template.ipynb index 554ed12b8e8..a6b485964af 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_template.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spatial/plot_template.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_absorbed.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_absorbed.ipynb index 38826d741a5..aca5b252f34 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_absorbed.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_absorbed.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_broken_powerlaw.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_broken_powerlaw.ipynb index 618229b3d6d..b0c33fa725e 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_broken_powerlaw.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_broken_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_compound.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_compound.ipynb index bd7c758d54d..ad2ecd79b1a 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_compound.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_compound.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_constant_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_constant_spectral.ipynb index b9b87cdcbe0..f752dea08e2 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_constant_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_constant_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.ipynb index 715cb9e8cbb..99ea5fe5eb3 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.ipynb index f2d97b95d67..d7f4f9c575a 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.ipynb index 217f011c0de..24ad8220310 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_gauss_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_gauss_spectral.ipynb index 73db4f82cc3..e65766eed1c 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_gauss_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_gauss_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola.ipynb index cf9c04940a5..d132ca3e399 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.ipynb index 63ce8ffd448..d2f0fd0565a 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_naima.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_naima.ipynb index 1ec5a994915..b7a23dbde46 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_naima.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_naima.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.ipynb index 9e78935c3f6..fcc760adc32 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw.ipynb index b62272b520a..3b73d6f54b5 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw2.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw2.ipynb index 8e666c76312..2daa0252332 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw2.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw2.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.ipynb index c64956c0dbe..7442750884c 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.ipynb index d32e95f1fb5..ed6f2c8fbcf 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.ipynb index a2651f652b7..ecde1b77b06 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.ipynb index 87cbeba2c49..59513777b54 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb index caed86de454..8a33c6f072f 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_template_spectral.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_template_spectral.ipynb index c9a0f4395cd..56aed545926 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_template_spectral.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/spectral/plot_template_spectral.ipynb @@ -96,7 +96,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_constant_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_constant_temporal.ipynb index 79ae12bacb7..81d03ca46d0 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_constant_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_constant_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_expdecay_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_expdecay_temporal.ipynb index 0603ec5bc4e..fc2dfc186e6 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_expdecay_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_expdecay_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_gaussian_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_gaussian_temporal.ipynb index a4b3ea4c1ba..580dd467db2 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_gaussian_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_gaussian_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.ipynb index 1b80f0fe72d..9eb5a68e4a2 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_linear_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_linear_temporal.ipynb index 9ea5769d49d..7f3552ed4e0 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_linear_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_linear_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_powerlaw_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_powerlaw_temporal.ipynb index 6e6726b43df..48089642640 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_powerlaw_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_powerlaw_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_sine_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_sine_temporal.ipynb index b0f8c405087..46529c17624 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_sine_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_sine_temporal.ipynb @@ -60,7 +60,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_phase_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_phase_temporal.ipynb index f8fd603a91c..903a76129f0 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_phase_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_phase_temporal.ipynb @@ -53,7 +53,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_temporal.ipynb b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_temporal.ipynb index cd9dee4caf9..9543f3f8c71 100644 --- a/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_temporal.ipynb +++ b/docs/dev/notebooks/dev/user-guide/model-gallery/temporal/plot_template_temporal.ipynb @@ -53,7 +53,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.20" + "version": "3.9.21" } }, "nbformat": 4, diff --git a/docs/dev/objects.inv b/docs/dev/objects.inv index 25670749970..f9e97201c48 100644 Binary files a/docs/dev/objects.inv and b/docs/dev/objects.inv differ diff --git a/docs/dev/plot_directive/api/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf b/docs/dev/plot_directive/api/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf index ce8aa335119..e850a9f4c73 100644 Binary files a/docs/dev/plot_directive/api/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf and b/docs/dev/plot_directive/api/gammapy-irf-EnergyDependentMultiGaussPSF-1.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/population/plot_radial_distributions.pdf b/docs/dev/plot_directive/user-guide/astro/population/plot_radial_distributions.pdf index b04c90c1669..71932e6a42d 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/population/plot_radial_distributions.pdf and b/docs/dev/plot_directive/user-guide/astro/population/plot_radial_distributions.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arm_models.pdf b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arm_models.pdf index d720a496468..852d78e906d 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arm_models.pdf and b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arm_models.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.hires.png b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.hires.png index d29ffeb3a4b..35cb480fc8c 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.hires.png and b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.hires.png differ diff --git a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.pdf b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.pdf index 3e80e94daed..ccc7926c676 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.pdf and b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.png b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.png index 1a68f1800c1..251ac358d13 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.png and b/docs/dev/plot_directive/user-guide/astro/population/plot_spiral_arms.png differ diff --git a/docs/dev/plot_directive/user-guide/astro/population/plot_velocity_distributions.pdf b/docs/dev/plot_directive/user-guide/astro/population/plot_velocity_distributions.pdf index bed4e73cf11..f45992dc730 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/population/plot_velocity_distributions.pdf and b/docs/dev/plot_directive/user-guide/astro/population/plot_velocity_distributions.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/source/plot_pulsar_spindown.pdf b/docs/dev/plot_directive/user-guide/astro/source/plot_pulsar_spindown.pdf index d1d6c1f67d5..9e2efaa2890 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/source/plot_pulsar_spindown.pdf and b/docs/dev/plot_directive/user-guide/astro/source/plot_pulsar_spindown.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/source/plot_pwn_evolution.pdf b/docs/dev/plot_directive/user-guide/astro/source/plot_pwn_evolution.pdf index 42bdae157c0..43df1b7c51b 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/source/plot_pwn_evolution.pdf and b/docs/dev/plot_directive/user-guide/astro/source/plot_pwn_evolution.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/source/plot_snr_brightness_evolution.pdf b/docs/dev/plot_directive/user-guide/astro/source/plot_snr_brightness_evolution.pdf index 7d0a1440233..0ef77986680 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/source/plot_snr_brightness_evolution.pdf and b/docs/dev/plot_directive/user-guide/astro/source/plot_snr_brightness_evolution.pdf differ diff --git a/docs/dev/plot_directive/user-guide/astro/source/plot_snr_radius_evolution.pdf b/docs/dev/plot_directive/user-guide/astro/source/plot_snr_radius_evolution.pdf index d14b8de0425..23b376d9185 100644 Binary files a/docs/dev/plot_directive/user-guide/astro/source/plot_snr_radius_evolution.pdf and b/docs/dev/plot_directive/user-guide/astro/source/plot_snr_radius_evolution.pdf differ diff --git a/docs/dev/plot_directive/user-guide/datasets/plot_stack.pdf b/docs/dev/plot_directive/user-guide/datasets/plot_stack.pdf index bf72091fac6..4e5e9944dd4 100644 Binary files a/docs/dev/plot_directive/user-guide/datasets/plot_stack.pdf and b/docs/dev/plot_directive/user-guide/datasets/plot_stack.pdf differ diff --git a/docs/dev/plot_directive/user-guide/dl3-1.pdf b/docs/dev/plot_directive/user-guide/dl3-1.pdf index cc0262b7aef..b7b91ff5ca5 100644 Binary files a/docs/dev/plot_directive/user-guide/dl3-1.pdf and b/docs/dev/plot_directive/user-guide/dl3-1.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/edisp-1.pdf b/docs/dev/plot_directive/user-guide/irf/edisp-1.pdf index eb97081a957..1fd88a0faad 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/edisp-1.pdf and b/docs/dev/plot_directive/user-guide/irf/edisp-1.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_aeff.pdf b/docs/dev/plot_directive/user-guide/irf/plot_aeff.pdf index 6ec74c76769..75667af4bdc 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_aeff.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_aeff.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_aeff_param.pdf b/docs/dev/plot_directive/user-guide/irf/plot_aeff_param.pdf index 913d35d4f70..8172bd2765f 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_aeff_param.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_aeff_param.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_bkg_3d.pdf b/docs/dev/plot_directive/user-guide/irf/plot_bkg_3d.pdf index 938e80651ef..520b2df5ef6 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_bkg_3d.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_bkg_3d.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_edisp.pdf b/docs/dev/plot_directive/user-guide/irf/plot_edisp.pdf index db0950cd49f..fd1aaf8b3e1 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_edisp.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_edisp.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel.pdf b/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel.pdf index c11feb1205a..6abca5b84b3 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel_param.pdf b/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel_param.pdf index 3a2ef242f0f..456f954e8e5 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel_param.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_edisp_kernel_param.pdf differ diff --git a/docs/dev/plot_directive/user-guide/irf/plot_psf.pdf b/docs/dev/plot_directive/user-guide/irf/plot_psf.pdf index 5d83732034e..7f37a0d1700 100644 Binary files a/docs/dev/plot_directive/user-guide/irf/plot_psf.pdf and b/docs/dev/plot_directive/user-guide/irf/plot_psf.pdf differ diff --git a/docs/dev/plot_directive/user-guide/makers/create_region.pdf b/docs/dev/plot_directive/user-guide/makers/create_region.pdf index 1dcdf780c40..ec5b3c6a167 100644 Binary files a/docs/dev/plot_directive/user-guide/makers/create_region.pdf and b/docs/dev/plot_directive/user-guide/makers/create_region.pdf differ diff --git a/docs/dev/plot_directive/user-guide/makers/make_rectangular_reflected_background.pdf b/docs/dev/plot_directive/user-guide/makers/make_rectangular_reflected_background.pdf index e59237be056..7cf856c041b 100644 Binary files a/docs/dev/plot_directive/user-guide/makers/make_rectangular_reflected_background.pdf and b/docs/dev/plot_directive/user-guide/makers/make_rectangular_reflected_background.pdf differ diff --git a/docs/dev/plot_directive/user-guide/makers/make_reflected_regions.pdf b/docs/dev/plot_directive/user-guide/makers/make_reflected_regions.pdf index a421fefdfb6..170c8397cff 100644 Binary files a/docs/dev/plot_directive/user-guide/makers/make_reflected_regions.pdf and b/docs/dev/plot_directive/user-guide/makers/make_reflected_regions.pdf differ diff --git a/docs/dev/plot_directive/user-guide/maps/regionmap-1.pdf b/docs/dev/plot_directive/user-guide/maps/regionmap-1.pdf index 5f7b2c5376c..066e194ebe7 100644 Binary files a/docs/dev/plot_directive/user-guide/maps/regionmap-1.pdf and b/docs/dev/plot_directive/user-guide/maps/regionmap-1.pdf differ diff --git a/docs/dev/plot_directive/user-guide/maps/regionmap-2.pdf b/docs/dev/plot_directive/user-guide/maps/regionmap-2.pdf index 3aeb4ee9c1d..fdf0f78e629 100644 Binary files a/docs/dev/plot_directive/user-guide/maps/regionmap-2.pdf and b/docs/dev/plot_directive/user-guide/maps/regionmap-2.pdf differ diff --git a/docs/dev/plot_directive/user-guide/maps/regionmap-3.pdf b/docs/dev/plot_directive/user-guide/maps/regionmap-3.pdf index 3c703ab0452..55305e1c646 100644 Binary files a/docs/dev/plot_directive/user-guide/maps/regionmap-3.pdf and b/docs/dev/plot_directive/user-guide/maps/regionmap-3.pdf differ diff --git a/docs/dev/plot_directive/user-guide/maps/regionmap-4.pdf b/docs/dev/plot_directive/user-guide/maps/regionmap-4.pdf index a22336ad105..36c34a6e5d1 100644 Binary files a/docs/dev/plot_directive/user-guide/maps/regionmap-4.pdf and b/docs/dev/plot_directive/user-guide/maps/regionmap-4.pdf differ diff --git a/docs/dev/plot_directive/user-guide/maps/regionmap-5.pdf b/docs/dev/plot_directive/user-guide/maps/regionmap-5.pdf index 9be86ce9a82..111c97ccee4 100644 Binary files a/docs/dev/plot_directive/user-guide/maps/regionmap-5.pdf and b/docs/dev/plot_directive/user-guide/maps/regionmap-5.pdf differ diff --git a/docs/dev/plot_directive/user-guide/stats/plot_cash_errors.pdf b/docs/dev/plot_directive/user-guide/stats/plot_cash_errors.pdf index c39f3688512..c61d9f8d1d3 100644 Binary files a/docs/dev/plot_directive/user-guide/stats/plot_cash_errors.pdf and b/docs/dev/plot_directive/user-guide/stats/plot_cash_errors.pdf differ diff --git a/docs/dev/plot_directive/user-guide/stats/plot_cash_significance.pdf b/docs/dev/plot_directive/user-guide/stats/plot_cash_significance.pdf index da82b35a2e2..2af12360e9d 100644 Binary files a/docs/dev/plot_directive/user-guide/stats/plot_cash_significance.pdf and b/docs/dev/plot_directive/user-guide/stats/plot_cash_significance.pdf differ diff --git a/docs/dev/plot_directive/user-guide/stats/plot_wstat_errors.pdf b/docs/dev/plot_directive/user-guide/stats/plot_wstat_errors.pdf index de78e34dc35..9d3fe6b4bf8 100644 Binary files a/docs/dev/plot_directive/user-guide/stats/plot_wstat_errors.pdf and b/docs/dev/plot_directive/user-guide/stats/plot_wstat_errors.pdf differ diff --git a/docs/dev/plot_directive/user-guide/stats/plot_wstat_significance.pdf b/docs/dev/plot_directive/user-guide/stats/plot_wstat_significance.pdf index a44c4fe6ec3..b322944cd6e 100644 Binary files a/docs/dev/plot_directive/user-guide/stats/plot_wstat_significance.pdf and b/docs/dev/plot_directive/user-guide/stats/plot_wstat_significance.pdf differ diff --git a/docs/dev/plot_directive/user-guide/visualization/colormap_example.pdf b/docs/dev/plot_directive/user-guide/visualization/colormap_example.pdf index dfb33c1e1ad..2e566abe26e 100644 Binary files a/docs/dev/plot_directive/user-guide/visualization/colormap_example.pdf and b/docs/dev/plot_directive/user-guide/visualization/colormap_example.pdf differ diff --git a/docs/dev/plot_directive/user-guide/visualization/index-1.pdf b/docs/dev/plot_directive/user-guide/visualization/index-1.pdf index d494a0724d9..c421c47337e 100644 Binary files a/docs/dev/plot_directive/user-guide/visualization/index-1.pdf and b/docs/dev/plot_directive/user-guide/visualization/index-1.pdf differ diff --git a/docs/dev/py-modindex.html b/docs/dev/py-modindex.html index f7979aa016b..7b87a3f0fe2 100644 --- a/docs/dev/py-modindex.html +++ b/docs/dev/py-modindex.html @@ -67,7 +67,7 @@ - + diff --git a/docs/dev/release-notes/index.html b/docs/dev/release-notes/index.html index 01f47e4c344..417cf5d20a5 100644 --- a/docs/dev/release-notes/index.html +++ b/docs/dev/release-notes/index.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.1.html b/docs/dev/release-notes/v0.1.html index 22325064580..be6dd68b0f9 100644 --- a/docs/dev/release-notes/v0.1.html +++ b/docs/dev/release-notes/v0.1.html @@ -68,7 +68,7 @@ - + diff --git a/docs/dev/release-notes/v0.10.html b/docs/dev/release-notes/v0.10.html index 699a6ca31f2..da32e9e3162 100644 --- a/docs/dev/release-notes/v0.10.html +++ b/docs/dev/release-notes/v0.10.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.11.html b/docs/dev/release-notes/v0.11.html index 27688c9b5cc..c49bfecf835 100644 --- a/docs/dev/release-notes/v0.11.html +++ b/docs/dev/release-notes/v0.11.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.12.html b/docs/dev/release-notes/v0.12.html index 0198cac6301..621f602a376 100644 --- a/docs/dev/release-notes/v0.12.html +++ b/docs/dev/release-notes/v0.12.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.13.html b/docs/dev/release-notes/v0.13.html index 3db9aefaab6..c44b9a0ea20 100644 --- a/docs/dev/release-notes/v0.13.html +++ b/docs/dev/release-notes/v0.13.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.14.html b/docs/dev/release-notes/v0.14.html index d0bdeb45fce..08bcad11342 100644 --- a/docs/dev/release-notes/v0.14.html +++ b/docs/dev/release-notes/v0.14.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.15.html b/docs/dev/release-notes/v0.15.html index 7cd098681e2..1a350f2d2bb 100644 --- a/docs/dev/release-notes/v0.15.html +++ b/docs/dev/release-notes/v0.15.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.16.html b/docs/dev/release-notes/v0.16.html index 42f992901cb..00efe67cbcc 100644 --- a/docs/dev/release-notes/v0.16.html +++ b/docs/dev/release-notes/v0.16.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.17.html b/docs/dev/release-notes/v0.17.html index 94d3f7148cb..dda8ea60339 100644 --- a/docs/dev/release-notes/v0.17.html +++ b/docs/dev/release-notes/v0.17.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.18.1.html b/docs/dev/release-notes/v0.18.1.html index 109c502b4e5..d11a14eca7f 100644 --- a/docs/dev/release-notes/v0.18.1.html +++ b/docs/dev/release-notes/v0.18.1.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.18.2.html b/docs/dev/release-notes/v0.18.2.html index a35b281de9d..2681b2e5ee0 100644 --- a/docs/dev/release-notes/v0.18.2.html +++ b/docs/dev/release-notes/v0.18.2.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.18.html b/docs/dev/release-notes/v0.18.html index 25e929919c3..4367802b4a0 100644 --- a/docs/dev/release-notes/v0.18.html +++ b/docs/dev/release-notes/v0.18.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.19.html b/docs/dev/release-notes/v0.19.html index 549dac46242..60867edc0df 100644 --- a/docs/dev/release-notes/v0.19.html +++ b/docs/dev/release-notes/v0.19.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.2.html b/docs/dev/release-notes/v0.2.html index 9bdf8122abb..5fdcf674533 100644 --- a/docs/dev/release-notes/v0.2.html +++ b/docs/dev/release-notes/v0.2.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.20.1.html b/docs/dev/release-notes/v0.20.1.html index 0b8013a24c2..f3a3b7e792d 100644 --- a/docs/dev/release-notes/v0.20.1.html +++ b/docs/dev/release-notes/v0.20.1.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.20.html b/docs/dev/release-notes/v0.20.html index 8d97b6d8b01..8751c8d8fa0 100644 --- a/docs/dev/release-notes/v0.20.html +++ b/docs/dev/release-notes/v0.20.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.3.html b/docs/dev/release-notes/v0.3.html index 8a4aa75da85..94ac1fe4d16 100644 --- a/docs/dev/release-notes/v0.3.html +++ b/docs/dev/release-notes/v0.3.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.4.html b/docs/dev/release-notes/v0.4.html index 665cad2f102..30f815cc101 100644 --- a/docs/dev/release-notes/v0.4.html +++ b/docs/dev/release-notes/v0.4.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.5.html b/docs/dev/release-notes/v0.5.html index 7a3f5cca55b..0f2a104405e 100644 --- a/docs/dev/release-notes/v0.5.html +++ b/docs/dev/release-notes/v0.5.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.6.html b/docs/dev/release-notes/v0.6.html index 6372a2078da..ccb8e86c41a 100644 --- a/docs/dev/release-notes/v0.6.html +++ b/docs/dev/release-notes/v0.6.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.7.html b/docs/dev/release-notes/v0.7.html index 3b47263a313..84e15ebe797 100644 --- a/docs/dev/release-notes/v0.7.html +++ b/docs/dev/release-notes/v0.7.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.8.html b/docs/dev/release-notes/v0.8.html index 6ad954353ae..07980c115c0 100644 --- a/docs/dev/release-notes/v0.8.html +++ b/docs/dev/release-notes/v0.8.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v0.9.html b/docs/dev/release-notes/v0.9.html index 5dc136078fd..db449fecb8e 100644 --- a/docs/dev/release-notes/v0.9.html +++ b/docs/dev/release-notes/v0.9.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v1.0.1.html b/docs/dev/release-notes/v1.0.1.html index a529f622be6..729fa65a4de 100644 --- a/docs/dev/release-notes/v1.0.1.html +++ b/docs/dev/release-notes/v1.0.1.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v1.0.2.html b/docs/dev/release-notes/v1.0.2.html index d8e6e95db12..d5dabea7704 100644 --- a/docs/dev/release-notes/v1.0.2.html +++ b/docs/dev/release-notes/v1.0.2.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v1.0.html b/docs/dev/release-notes/v1.0.html index 929859c9350..019aac9e6f7 100644 --- a/docs/dev/release-notes/v1.0.html +++ b/docs/dev/release-notes/v1.0.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v1.1.html b/docs/dev/release-notes/v1.1.html index 2ef4c01b252..c603d38281e 100644 --- a/docs/dev/release-notes/v1.1.html +++ b/docs/dev/release-notes/v1.1.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v1.2.html b/docs/dev/release-notes/v1.2.html index ad409c80a58..9ab6b5a4b92 100644 --- a/docs/dev/release-notes/v1.2.html +++ b/docs/dev/release-notes/v1.2.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v1.3.html b/docs/dev/release-notes/v1.3.html index 4e76117f53f..52dff03604b 100644 --- a/docs/dev/release-notes/v1.3.html +++ b/docs/dev/release-notes/v1.3.html @@ -69,7 +69,7 @@ - + diff --git a/docs/dev/release-notes/v2.0.html b/docs/dev/release-notes/v2.0.html index 9730d7cfad1..dd67579837f 100644 --- a/docs/dev/release-notes/v2.0.html +++ b/docs/dev/release-notes/v2.0.html @@ -67,7 +67,7 @@ - + diff --git a/docs/dev/search.html b/docs/dev/search.html index 7048e059ea7..8bb91e00d26 100644 --- a/docs/dev/search.html +++ b/docs/dev/search.html @@ -68,7 +68,7 @@ - + diff --git a/docs/dev/searchindex.js b/docs/dev/searchindex.js index d7f0e578248..2f4663eb25d 100644 --- a/docs/dev/searchindex.js +++ b/docs/dev/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"0.1 (Aug 25, 2014)": [[419, null]], "0.10 (Jan 28, 2019)": [[420, null]], "0.11 (Mar 29, 2019)": [[421, null]], "0.12 (May 30, 2019)": [[422, null]], "0.13 (Jul 26, 2019)": [[423, null]], "0.14 (Sep 30, 2019)": [[424, null]], "0.15 (Dec 3, 2019)": [[425, null]], "0.16 (Feb 1, 2020)": [[426, null]], "0.17 (Apr 1, 2020)": [[427, null]], "0.18 (Nov 4th, 2020)": [[428, null]], "0.18.1 (Nov 6th, 2020)": [[429, null]], "0.18.2 (Nov 19th, 2020)": [[430, null]], "0.19 (Nov 22nd, 2021)": [[431, null]], "0.2 (Apr 13, 2015)": [[432, null]], "0.20 (May 12th, 2022)": [[433, null]], "0.20.1 (June 16th, 2022)": [[434, null]], "0.3 (Aug 13, 2015)": [[435, null]], "0.4 (Apr 20, 2016)": [[436, null]], "0.5 (Nov 22, 2016)": [[437, null]], "0.6 (Apr 28, 2017)": [[438, null]], "0.7 (Feb 28, 2018)": [[439, null]], "0.8 (Sep 23, 2018)": [[440, null]], "0.9 (Nov 29, 2018)": [[441, null]], "1.0 (November 10th, 2022)": [[442, null]], "1.0.1 (March 14th, 2023)": [[443, null]], "1.0.2 (December 6th, 2023)": [[444, null]], "1.1 (June 13th 2023)": [[445, null]], "1.2 (February 29th 2024)": [[446, null]], "1.3 (November 26th, 2024)": [[447, null]], "1D Spectral": [[498, "d-spectral"]], "1D spectrum simulation": [[458, null]], "2.0 (unreleased)": [[448, null]], "2D Image": [[498, "d-image"]], "2D map fitting": [[460, null]], "3D Cube": [[498, "d-cube"]], "3D detailed analysis": [[463, null]], "3D map simulation": [[471, null]], "A fully configured Flux Points Estimation": [[482, "a-fully-configured-flux-points-estimation"]], "A note on statistics": [[455, "a-note-on-statistics"]], "A note on the internal representation": [[482, "a-note-on-the-internal-representation"]], "API Links": [[381, "api-links"]], "API changes": [[442, "api-changes"], [445, "api-changes"], [446, "api-changes"], [447, "api-changes"]], "API reference": [[6, null]], "ASmoothMapEstimator": [[118, null]], "Abstract": [[385, "abstract"], [386, "abstract"], [387, "abstract"], [388, "abstract"], [389, "abstract"], [390, "abstract"], [392, "abstract"], [393, "abstract"], [394, "abstract"], [395, "abstract"], [396, "abstract"], [397, "abstract"], [398, "abstract"], [399, "abstract"], [400, "abstract"], [401, "abstract"], [402, "abstract"], [403, "abstract"], [404, "abstract"], [405, "abstract"], [406, "abstract"], [407, "abstract"], [408, "abstract"]], "Acceptation of the Developer Certificate of Origin (DCO)": [[383, "acceptation-of-the-developer-certificate-of-origin-dco"]], "Accessing Data": [[486, "accessing-data"]], "Accessing and visualising results": [[459, "accessing-and-visualising-results"]], "Accessing and visualising the results": [[482, "accessing-and-visualising-the-results"]], "Accessing contents of a dataset": [[481, "accessing-contents-of-a-dataset"]], "Accessor methods": [[530, "accessor-methods"]], "Account for spectral absorption due to the EBL": [[451, null]], "Adaptive smoothing": [[459, "adaptive-smoothing"]], "AdaptiveRingBackgroundMaker": [[168, null]], "Add a model on multiple datasets": [[488, "add-a-model-on-multiple-datasets"]], "Add new parametric models": [[391, "add-new-parametric-models"]], "Adding Non-Spatial Axes": [[486, "adding-non-spatial-axes"]], "Adding Non-contiguous axes": [[486, "adding-non-contiguous-axes"]], "Additional Models": [[403, "additional-models"]], "Additional PSF classes": [[524, "additional-psf-classes"]], "Additional utilities": [[576, "additional-utilities"]], "Aim": [[488, "aim"]], "Alternative": [[404, "alternative"]], "Alternatives": [[388, "alternatives"], [391, "alternatives"], [394, "alternatives"], [396, "alternatives"], [397, "alternatives"], [398, "alternatives"], [400, "alternatives"], [401, "alternatives"], [407, "alternatives"]], "Alternatives / Outlook": [[393, "alternatives-outlook"]], "Analysis": [[15, null]], "Analysis configuration": [[456, "analysis-configuration"], [463, "analysis-configuration"], [472, "analysis-configuration"], [502, "analysis-configuration"]], "Analysis steps": [[576, "analysis-steps"]], "Analysis workflow": [[576, "analysis-workflow"]], "AnalysisConfig": [[16, null]], "As a function of of true energy and offset angle (PSF_TABLE)": [[524, "as-a-function-of-of-true-energy-and-offset-angle-gadf-psf-table"]], "Assert convention": [[380, "assert-convention"]], "Assign to model to all datasets": [[473, "assign-to-model-to-all-datasets"]], "Assigning background models to datasets": [[488, "assigning-background-models-to-datasets"]], "Astrophysical source models": [[509, null]], "Astrophysical source population models": [[508, null]], "Astrophysics": [[507, null]], "Authorship policy": [[406, "authorship-policy"]], "BACKEND_DEFAULT": [[322, null]], "BSD or GPL license?": [[380, "bsd-or-gpl-license"]], "Background": [[493, "background"], [521, null]], "Background / What we have now": [[395, "background-what-we-have-now"]], "Background Model Handling": [[402, "background-model-handling"]], "Background estimation": [[485, "background-estimation"], [526, "background-estimation"]], "Background2D": [[147, null]], "Background3D": [[148, null]], "BackgroundIRF": [[149, null]], "BackgroundIRFModel": [[391, "backgroundirfmodel"]], "BackgroundModel": [[391, "backgroundmodel"]], "Basic image exploration and fitting": [[465, null]], "Basic operators": [[486, "basic-operators"]], "Bayesian blocks": [[478, "bayesian-blocks"]], "Bin volume and angular size": [[531, "bin-volume-and-angular-size"]], "Boundary mask": [[487, "boundary-mask"]], "Broken power law spectral model": [[545, null]], "BrokenPowerLawSpectralModel": [[218, null]], "Bug fixes and improvements": [[433, "bug-fixes-and-improvements"], [442, "bug-fixes-and-improvements"], [445, "bug-fixes-and-improvements"], [446, "bug-fixes-and-improvements"], [447, "bug-fixes-and-improvements"]], "Build": [[410, "build"]], "Building 1D datasets from the new observations": [[473, "building-1d-datasets-from-the-new-observations"]], "Building the 1D analysis configuration": [[472, "building-the-1d-analysis-configuration"]], "Building the 3D analysis configuration": [[472, "building-the-3d-analysis-configuration"]], "Built-in models": [[575, "built-in-models"]], "Bundled gammapy.extern code": [[380, "bundled-gammapy-extern-code"]], "BurkertProfile": [[17, null]], "CATALOG_REGISTRY": [[55, null]], "CITATION.cff": [[406, "citation-cff"]], "CLUMPY": [[506, "clumpy"]], "CTA 1DC": [[493, "cta-1dc"]], "CTAO with Gammapy": [[493, null]], "Caplog fixture": [[380, "caplog-fixture"]], "Case 1: Background systematics as a nuisance parameter #3955": [[408, "case-1-background-systematics-as-a-nuisance-parameter-3955"]], "Case 2: Favoring positive values for flux amplitudes": [[408, "case-2-favoring-positive-values-for-flux-amplitudes"]], "Case 3: Support unfolding methods for spectral flux points #4122": [[408, "case-3-support-unfolding-methods-for-spectral-flux-points-4122"]], "CaseBattacharya1998": [[28, null]], "Cash : Poisson data with background model": [[579, "cash-poisson-data-with-background-model"]], "Cash counts statistic": [[580, "cash-counts-statistic"]], "CashCountsStatistic": [[288, null]], "Catalog table": [[480, "catalog-table"]], "Caveat": [[579, "caveat"]], "Changelog": [[400, "changelog"]], "Check Python code": [[381, "check-python-code"]], "Check broken links": [[381, "check-broken-links"]], "Check setup": [[450, "check-setup"], [452, "check-setup"], [455, "check-setup"], [456, "check-setup"], [457, "check-setup"], [458, "check-setup"], [459, "check-setup"], [460, "check-setup"], [461, "check-setup"], [463, "check-setup"], [464, "check-setup"], [465, "check-setup"], [466, "check-setup"], [467, "check-setup"], [468, "check-setup"], [469, "check-setup"], [472, "check-setup"], [473, "check-setup"], [474, "check-setup"], [475, "check-setup"], [479, "check-setup"], [480, "check-setup"], [481, "check-setup"], [483, "check-setup"], [485, "check-setup"], [486, "check-setup"], [487, "check-setup"], [488, "check-setup"], [489, "check-setup"], [491, "check-setup"], [493, "check-setup"], [494, "check-setup"], [495, "check-setup"], [496, "check-setup"], [502, "check-setup"], [503, "check-setup"], [504, "check-setup"]], "Check the dataset we produced": [[495, "check-the-dataset-we-produced"]], "Check your setup": [[415, "check-your-setup"]], "Checker": [[354, null]], "Choose a thumbnail and tooltip for the tutorial gallery": [[381, "choose-a-thumbnail-and-tooltip-for-the-tutorial-gallery"]], "Citation scheme": [[406, "citation-scheme"]], "Class attributes": [[381, "class-attributes"]], "Classes": [[0, "classes"], [1, "classes"], [1, "id1"], [1, "id2"], [2, "classes"], [3, "classes"], [4, "classes"], [5, "classes"], [7, "classes"], [8, "classes"], [9, "classes"], [10, "classes"], [10, "id2"], [12, "classes"], [13, "classes"], [13, "id5"], [13, "id7"], [13, "id10"], [13, "id15"], [14, "classes"]], "Clean up gammapy.utils": [[399, "clean-up-gammapy-utils"]], "Clobber or overwrite?": [[380, "clobber-or-overwrite"]], "Code in RST files": [[381, "code-in-rst-files"]], "Code in docstrings in Python files": [[381, "code-in-docstrings-in-python-files"]], "Code quality": [[410, "code-quality"]], "Collection of the personal information of authors": [[406, "collection-of-the-personal-information-of-authors"]], "Colormaps": [[583, "colormaps"]], "Combining event lists and GTIs": [[515, "combining-event-lists-and-gtis"]], "Combining two Models": [[488, "combining-two-models"]], "Command line tools": [[578, null]], "Command line tools using click": [[380, "command-line-tools-using-click"]], "Command not found": [[578, "command-not-found"]], "Common API": [[482, "common-api"]], "Compare against the literature": [[457, "compare-against-the-literature"]], "Compare results": [[472, "compare-results"]], "Compound Spectral Model": [[489, "compound-spectral-model"]], "Compound spectral model": [[546, null]], "CompoundSpectralModel": [[219, null]], "Computation times": [[449, null], [454, null], [462, null], [470, null], [476, null], [492, null], [497, null], [499, null], [501, null], [505, null], [533, null], [543, null], [564, null], [574, null]], "Compute Flux Points": [[455, "compute-flux-points"]], "Compute correlated significance and correlated excess maps": [[461, "compute-correlated-significance-and-correlated-excess-maps"]], "Compute images": [[465, "compute-images"]], "Compute sensitivity": [[450, "compute-sensitivity"]], "Computing contours using stat_contour": [[483, "computing-contours-using-stat-contour"]], "Computing contours using stat_surface": [[483, "computing-contours-using-stat-surface"]], "Computing flux points": [[503, "computing-flux-points"]], "Conda Environments": [[411, "conda-environments"]], "Confidence contours": [[483, "confidence-contours"]], "Configurable analysis": [[576, "configurable-analysis"]], "Configuration": [[469, "configuration"]], "Configuration for stacked and joint analysis": [[463, "configuration-for-stacked-and-joint-analysis"]], "Configuration of the analysis": [[456, "configuration-of-the-analysis"]], "Constant spatial model": [[534, null]], "Constant spectral model": [[547, null]], "Constant temporal model": [[565, null]], "ConstantFluxSpatialModel": [[220, null]], "ConstantSpatialModel": [[221, null]], "ConstantSpectralModel": [[222, null]], "ConstantTemporalModel": [[223, null]], "Context": [[452, "context"], [453, "context"], [455, "context"], [456, "context"], [457, "context"], [458, "context"], [459, "context"], [460, "context"], [461, "context"], [464, "context"], [466, "context"], [467, "context"], [469, "context"], [471, "context"], [472, "context"], [473, "context"], [474, "context"], [477, "context"], [478, "context"], [487, "context"], [490, "context"], [491, "context"], [502, "context"], [503, "context"]], "Continuous integration": [[410, "continuous-integration"]], "Contribution in conferences": [[406, "contribution-in-conferences"]], "Contributors": [[419, "contributors"], [420, "contributors"], [421, "contributors"], [422, "contributors"], [423, "contributors"], [424, "contributors"], [425, "contributors"], [426, "contributors"], [427, "contributors"], [428, "contributors"], [431, "contributors"], [432, "contributors"], [433, "contributors"], [434, "contributors"], [435, "contributors"], [436, "contributors"], [437, "contributors"], [438, "contributors"], [439, "contributors"], [440, "contributors"], [441, "contributors"], [442, "contributors"], [443, "contributors"], [444, "contributors"], [445, "contributors"], [446, "contributors"], [447, "contributors"]], "Convert a jupyter notebook to python script in the sphinx-gallery format": [[380, "convert-a-jupyter-notebook-to-python-script-in-the-sphinx-gallery-format"]], "Coordinate and axis names": [[380, "coordinate-and-axis-names"]], "Coordinates defined by the RegionGeom": [[531, "coordinates-defined-by-the-regiongeom"]], "Correct format for bullet point list": [[381, "correct-format-for-bullet-point-list"]], "Counts": [[494, "counts"]], "Counts and fit statistics": [[580, "counts-and-fit-statistics"]], "Counts statistics classes": [[580, "counts-statistics-classes"]], "Covariance": [[209, null]], "Covariance and parameters errors": [[483, "covariance-and-parameters-errors"]], "CovarianceResult": [[210, null]], "Create DL4 product - PSFMap": [[484, "create-dl4-product-psfmap"]], "Create a FluxMaps object through one of the estimators.": [[482, "create-a-fluxmaps-object-through-one-of-the-estimators"]], "Create a mask in energy": [[487, "create-a-mask-in-energy"]], "Create a stacked dataset": [[461, "create-a-stacked-dataset"]], "Create edisp kernel map": [[484, "create-edisp-kernel-map"]], "Create exclusion mask": [[455, "create-exclusion-mask"], [461, "create-exclusion-mask"]], "Create exposure map": [[484, "create-exposure-map"]], "Create the energy-dependent temporal model": [[468, "create-the-energy-dependent-temporal-model"]], "Create the maker classes to be used": [[503, "create-the-maker-classes-to-be-used"]], "Create the makers": [[452, "create-the-makers"]], "Create the mask from a catalog of sources": [[487, "create-the-mask-from-a-catalog-of-sources"]], "Create the mask from a list of regions": [[487, "create-the-mask-from-a-list-of-regions"]], "Create the mask from statistically significant pixels in a dataset": [[487, "create-the-mask-from-statistically-significant-pixels-in-a-dataset"]], "Create the mask map": [[487, "create-the-mask-map"]], "Create the temporal model and write it to disk": [[468, "create-the-temporal-model-and-write-it-to-disk"]], "Creating WCS Maps": [[486, "creating-wcs-maps"]], "Creating a RegionGeom": [[531, "creating-a-regiongeom"]], "Creating a RegionNDMap": [[531, "creating-a-regionndmap"]], "Creating a mask for fitting": [[487, "creating-a-mask-for-fitting"]], "Creating a mask manually": [[487, "creating-a-mask-manually"]], "Creating an empty dataset": [[481, "creating-an-empty-dataset"]], "Creating an exclusion mask": [[487, "creating-an-exclusion-mask"]], "Creating from a Map Geometry": [[486, "creating-from-a-map-geometry"]], "Creating the config file": [[460, "creating-the-config-file"], [461, "creating-the-config-file"]], "Creation of the Flux points": [[456, "creation-of-the-flux-points"]], "Creation of the data reduction makers": [[473, "creation-of-the-data-reduction-makers"]], "Creation of the datasets": [[473, "creation-of-the-datasets"]], "Creation of the model": [[456, "creation-of-the-model"]], "Cube plotting": [[486, "cube-plotting"]], "Cumulative excess and significance": [[452, "cumulative-excess-and-significance"]], "Current status": [[405, "current-status"]], "Custom models": [[575, "custom-models"]], "Cutouts": [[486, "cutouts"]], "Cython": [[410, "cython"]], "DATASET_REGISTRY": [[98, null]], "DCO implementation": [[406, "dco-implementation"]], "DL3 DR1": [[496, "dl3-dr1"]], "DMProfile": [[18, null]], "D_SUN_TO_GALACTIC_CENTER": [[307, null]], "Dark matter": [[506, null]], "Dark matter spatial and spectral models": [[479, null]], "DarkMatterAnnihilationSpectralModel": [[19, null]], "DarkMatterDecaySpectralModel": [[20, null]], "Data Fitting": [[395, "data-fitting"]], "Data access and selection (DL3)": [[515, null]], "Data analysis": [[498, "data-analysis"]], "Data analysis subpackages in gammapy": [[386, "data-analysis-subpackages-in-gammapy"]], "Data and Observation handling": [[389, "data-and-observation-handling"]], "Data and models files": [[464, "data-and-models-files"]], "Data exploration": [[498, "data-exploration"]], "Data reduction": [[395, "data-reduction"], [463, "data-reduction"], [463, "id1"], [477, "data-reduction"], [502, "data-reduction"], [503, "data-reduction"]], "Data reduction (DL3 to DL4)": [[526, null]], "Data reduction into a MapDataset": [[495, "data-reduction-into-a-mapdataset"]], "Data reduction loop": [[485, "data-reduction-loop"]], "Data selection": [[477, "data-selection"]], "Data structures": [[504, null]], "DataStore": [[82, null]], "Dataset": [[99, null], [392, "dataset"], [485, "dataset"]], "Dataset helper / convenience methods": [[392, "dataset-helper-convenience-methods"]], "Dataset serialization": [[392, "dataset-serialization"]], "Dataset simulations": [[457, "dataset-simulations"]], "Dataset specific quantities (\u201ccounts like\u201d)": [[482, "dataset-specific-quantities-counts-like"]], "DatasetModels": [[224, null]], "Datasets": [[100, null], [389, "datasets"], [392, "datasets"], [407, "datasets"], [481, "datasets"]], "Datasets (DL4)": [[514, null]], "Datasets - Reduced data, IRFs, models": [[481, null]], "Datasets serialization": [[464, "datasets-serialization"]], "DatasetsMaker": [[169, null]], "Datastore": [[493, "datastore"]], "Dealing with links": [[381, "dealing-with-links"]], "Decision": [[385, "decision"], [386, "decision"], [387, "decision"], [388, "decision"], [389, "decision"], [390, "decision"], [391, "decision"], [392, "decision"], [393, "decision"], [394, "decision"], [395, "decision"], [396, "decision"], [397, "decision"], [398, "decision"], [399, "decision"], [400, "decision"], [401, "decision"], [402, "decision"], [403, "decision"], [404, "decision"], [405, "decision"], [406, "decision"], [407, "decision"], [408, "decision"]], "Define Target Region": [[455, "define-target-region"]], "Define an Observation": [[467, "define-an-observation"]], "Define an observation and make a dataset": [[468, "define-an-observation-and-make-a-dataset"]], "Define analysis region and energy binning": [[450, "define-analysis-region-and-energy-binning"]], "Define map geometry": [[465, "define-map-geometry"]], "Define the MapDataset": [[467, "define-the-mapdataset"]], "Define the ON region": [[457, "define-the-on-region"]], "Define the Sky model: a point-like source": [[467, "define-the-sky-model-a-point-like-source"]], "Define the geometries": [[452, "define-the-geometries"]], "Define the geometry": [[487, "define-the-geometry"]], "Define the model": [[503, "define-the-model"]], "Define the model to be used": [[472, "define-the-model-to-be-used"], [472, "id3"]], "Define the simulation source model": [[468, "define-the-simulation-source-model"]], "Define time intervals": [[473, "define-time-intervals"]], "Define underlying model": [[473, "define-underlying-model"]], "Defining the datastore and selecting observations": [[503, "defining-the-datastore-and-selecting-observations"]], "Defining the geometry": [[473, "defining-the-geometry"]], "Definition of a Contributor": [[406, "definition-of-a-contributor"]], "Definition of the Maintainer": [[406, "definition-of-the-maintainer"]], "Definition of the data selection": [[472, "definition-of-the-data-selection"], [472, "id1"]], "Definition of the dataset geometry": [[472, "definition-of-the-dataset-geometry"], [472, "id2"]], "Dependencies": [[379, null], [397, "dependencies"]], "Deprecating a function or a class": [[380, "deprecating-a-function-or-a-class"]], "Deprecation": [[405, "deprecation"]], "Derivation of the WStat formula": [[581, null]], "Detailed plan": [[387, "detailed-plan"]], "Developer How To": [[380, null]], "Developer guide": [[382, null]], "Discussion / Alternatives": [[395, "discussion-alternatives"]], "Disk spatial model": [[535, null]], "DiskSpatialModel": [[225, null]], "Dissolve gammapy.background": [[399, "dissolve-gammapy-background"]], "Dissolve gammapy.image": [[399, "dissolve-gammapy-image"]], "Distributions": [[397, "distributions"], [397, "id1"]], "Documentation": [[389, "documentation"], [446, "documentation"]], "Documentation How To": [[381, null]], "Documentation building": [[381, "documentation-building"]], "Documentation guidelines": [[381, "documentation-guidelines"]], "Documentation improvements": [[447, "documentation-improvements"]], "Download": [[410, "download"]], "EBL absorption spectral model": [[544, null]], "EBLAbsorptionNormSpectralModel": [[226, null]], "EBL_DATA_BUILTIN": [[227, null]], "EDispKernel": [[150, null]], "EDispKernelMap": [[151, null]], "EDispMap": [[152, null]], "ESTIMATOR_REGISTRY": [[119, null]], "Effective Area": [[484, "effective-area"]], "Effective area": [[493, "effective-area"], [520, null]], "EffectiveAreaTable2D": [[153, null]], "EinastoProfile": [[21, null]], "Energy Dependent Spatial Models": [[403, "energy-dependent-spatial-models"]], "Energy Dispersion": [[484, "energy-dispersion"], [494, "energy-dispersion"], [522, null]], "Energy dispersion": [[493, "energy-dispersion"]], "Energy edges": [[516, "energy-edges"]], "EnergyDependentMorphologyEstimator": [[120, null]], "EnergyDependentMultiGaussPSF": [[154, null]], "EnergyDispersion2D": [[155, null]], "Estimating TS": [[580, "estimating-ts"]], "Estimation of time variability in a lightcurve": [[478, null]], "Estimator": [[121, null]], "Estimators": [[407, "estimators"], [482, null]], "Estimators (DL4 to DL5, and DL6)": [[516, null]], "Event Simulation": [[389, "event-simulation"]], "Event lists": [[504, "event-lists"]], "Event sampling": [[467, null]], "EventList": [[83, null]], "EventListMetaData": [[84, null]], "Events": [[493, "events"], [494, "events"]], "Example": [[579, "example"], [579, "id2"]], "Example 1: Including Prior Information about the Sources Index": [[491, "example-1-including-prior-information-about-the-sources-index"]], "Example 2: Encouraging Positive Amplitude Values": [[491, "example-2-encouraging-positive-amplitude-values"]], "Example of extrapolation": [[563, "example-of-extrapolation"]], "Example plot": [[534, "example-plot"], [535, "example-plot"], [536, "example-plot"], [537, "example-plot"], [538, "example-plot"], [539, "example-plot"], [540, "example-plot"], [541, "example-plot"], [542, "example-plot"], [544, "example-plot"], [545, "example-plot"], [546, "example-plot"], [547, "example-plot"], [548, "example-plot"], [549, "example-plot"], [550, "example-plot"], [551, "example-plot"], [552, "example-plot"], [553, "example-plot"], [554, "example-plot"], [555, "example-plot"], [556, "example-plot"], [557, "example-plot"], [558, "example-plot"], [559, "example-plot"], [560, "example-plot"], [561, "example-plot"], [562, "example-plot"], [563, "example-plot"], [565, "example-plot"], [566, "example-plot"], [567, "example-plot"], [568, "example-plot"], [569, "example-plot"], [570, "example-plot"], [571, "example-plot"]], "Examples using FluxPointsEstimator": [[516, "examples-using-fluxpointsestimator"]], "Examples using LightCurveEstimator": [[516, "examples-using-lightcurveestimator"]], "Examples using MapDataset": [[514, "examples-using-mapdataset"]], "Examples using MapDatasetMaker": [[526, "examples-using-mapdatasetmaker"]], "Examples using SpectrumDataset": [[514, "examples-using-spectrumdataset"]], "Examples using SpectrumDatasetMaker": [[526, "examples-using-spectrumdatasetmaker"]], "Examples using gammapy.analysis.Analysis": [[517, "examples-using-gammapy-analysis-analysis"]], "Examples using gammapy.makers.FoVBackgroundMaker": [[525, "examples-using-gammapy-makers-fovbackgroundmaker"]], "Examples using gammapy.makers.ReflectedRegionsBackgroundMaker": [[527, "examples-using-gammapy-makers-reflectedregionsbackgroundmaker"]], "Excess and Significance": [[580, "excess-and-significance"], [580, "id2"]], "Excess errors": [[580, "excess-errors"], [580, "id4"]], "Excess estimators": [[404, "excess-estimators"]], "ExcessMapEstimator": [[122, null]], "Exclusion masks": [[487, "exclusion-masks"]], "Execution": [[578, "execution"]], "Exemplary additional prior subclasses:": [[408, "exemplary-additional-prior-subclasses"]], "Exercises": [[450, "exercises"], [453, "exercises"], [455, "exercises"], [458, "exercises"], [463, "exercises"], [465, "exercises"], [467, "exercises"], [468, "exercises"], [474, "exercises"], [477, "exercises"], [493, "exercises"], [494, "exercises"], [495, "exercises"], [496, "exercises"], [504, "exercises"], [504, "id1"], [504, "id2"], [504, "id3"]], "Existing code": [[386, "existing-code"]], "ExpCutoffPowerLaw3FGLSpectralModel": [[228, null]], "ExpCutoffPowerLawNormSpectralModel": [[229, null]], "ExpCutoffPowerLawSpectralModel": [[230, null]], "ExpDecay temporal model": [[566, null]], "ExpDecayTemporalModel": [[231, null]], "Expected number of detected events": [[523, "expected-number-of-detected-events"]], "Exploration of the fit results": [[456, "exploration-of-the-fit-results"]], "Explore the fit results": [[452, "explore-the-fit-results"]], "Explore the results": [[452, "explore-the-results"]], "Exponential": [[29, null]], "Exponential Cut-Off Powerlaw Fit": [[453, "exponential-cut-off-powerlaw-fit"]], "Exponential cutoff power law norm spectral model": [[550, null]], "Exponential cutoff power law spectral model": [[548, null]], "Exponential cutoff power law spectral model used for 3FGL": [[549, null]], "Expose model parameters as attributes": [[391, "expose-model-parameters-as-attributes"]], "Exposure": [[494, "exposure"]], "Extended source using a template": [[467, "extended-source-using-a-template"]], "Extract the light curve": [[473, "extract-the-light-curve"]], "Extract the lightcurve": [[474, "extract-the-lightcurve"]], "Extracting the light curve": [[472, "extracting-the-light-curve"]], "Extracting the ring background": [[461, "extracting-the-ring-background"]], "Factorisation of the IRFs": [[523, "factorisation-of-the-irfs"]], "FaucherKaspi2006": [[30, null]], "FaucherKaspi2006VelocityBimodal": [[31, null]], "FaucherKaspi2006VelocityMaxwellian": [[32, null]], "FaucherSpiral": [[33, null]], "Feature Freeze and Branching": [[409, "feature-freeze-and-branching"]], "Fermi-LAT 3FHL: map dataset for 3D analysis": [[464, "fermi-lat-3fhl-map-dataset-for-3d-analysis"]], "Fermi-LAT with Gammapy": [[494, null]], "FermiST": [[506, "fermist"]], "Files": [[493, "files"]], "Filling a RegionNDMap": [[531, "filling-a-regionndmap"]], "Filling maps from event lists": [[486, "filling-maps-from-event-lists"]], "Filling maps from interpolation": [[486, "filling-maps-from-interpolation"]], "Filter the observations list in time intervals": [[473, "filter-the-observations-list-in-time-intervals"]], "Final remarks": [[385, "final-remarks"]], "Final result": [[581, "final-result"]], "Fit": [[211, null], [471, "fit"], [494, "fit"]], "Fit quality and model residuals": [[455, "fit-quality-and-model-residuals"], [457, "fit-quality-and-model-residuals"]], "Fit quality assessment": [[483, "fit-quality-assessment"]], "Fit quality assessment and model residuals for a MapDataset": [[463, "fit-quality-assessment-and-model-residuals-for-a-mapdataset"]], "Fit quality assessment and model residuals for a joint Datasets": [[463, "fit-quality-assessment-and-model-residuals-for-a-joint-datasets"]], "Fit spectrum": [[455, "fit-spectrum"], [457, "fit-spectrum"]], "Fit statistics": [[579, null]], "Fit the datasets": [[474, "fit-the-datasets"]], "Fit the model": [[503, "fit-the-model"]], "FitResult": [[212, null]], "Fitting": [[389, "fitting"], [483, null]], "Fitting Multiple Datasets with and without the Prior": [[491, "fitting-multiple-datasets-with-and-without-the-prior"]], "Fitting a Dataset with and without the Prior": [[491, "fitting-a-dataset-with-and-without-the-prior"]], "Fitting options": [[483, "fitting-options"]], "Fitting temporal models": [[474, "fitting-temporal-models"]], "Fitting the obtained light curve": [[474, "fitting-the-obtained-light-curve"]], "Fix non-Unix line endings": [[380, "fix-non-unix-line-endings"]], "FixedPointingInfo": [[85, null]], "Float data type: 32 bit or 64 bit?": [[380, "float-data-type-32-bit-or-64-bit"]], "Flux Points Estimation": [[482, "flux-points-estimation"]], "Flux Profile Estimation": [[469, null]], "Flux maps": [[516, "flux-maps"]], "Flux maps for annihilation": [[479, "flux-maps-for-annihilation"]], "Flux maps for decay": [[479, "flux-maps-for-decay"]], "Flux point fitting": [[453, null]], "Flux points": [[480, "flux-points"], [502, "flux-points"], [516, "flux-points"]], "Flux quantities": [[516, "flux-quantities"]], "FluxMaps": [[123, null]], "FluxMetaData": [[124, null]], "FluxPoints": [[125, null]], "FluxPointsDataset": [[101, null], [392, "fluxpointsdataset"], [481, "fluxpointsdataset"]], "FluxPointsEstimator": [[126, null]], "FluxProfileEstimator": [[127, null]], "FoV background": [[485, "fov-background"], [525, null]], "FoVAlignment": [[156, null]], "FoVBackgroundMaker": [[170, null]], "FoVBackgroundModel": [[232, null]], "Fractional excess variance, point-to-point fractional variance and doubling/halving time": [[478, "fractional-excess-variance-point-to-point-fractional-variance-and-doubling-halving-time"]], "Freezing and unfreezing model parameters": [[488, "freezing-and-unfreezing-model-parameters"]], "Functions": [[1, "functions"], [3, "functions"], [4, "functions"], [4, "id1"], [5, "functions"], [7, "functions"], [8, "functions"], [9, "functions"], [10, "functions"], [10, "id1"], [10, "id3"], [12, "functions"], [13, "functions"], [13, "id1"], [13, "id2"], [13, "id3"], [13, "id4"], [13, "id6"], [13, "id8"], [13, "id9"], [13, "id12"], [13, "id13"], [13, "id14"], [13, "id16"], [13, "id17"], [14, "functions"]], "Functions or class methods that return a single object": [[381, "functions-or-class-methods-that-return-a-single-object"]], "Functions returning several values": [[380, "functions-returning-several-values"]], "Further extensions": [[451, "further-extensions"]], "Further references": [[579, "further-references"]], "GTI": [[86, null]], "Galactic diffuse background": [[494, "galactic-diffuse-background"]], "Galactocentric spatial distributions": [[508, "galactocentric-spatial-distributions"]], "Gamma-ray spectra at production": [[479, "gamma-ray-spectra-at-production"]], "Gammapy": [[417, null]], "Gammapy Binder": [[410, "id1"]], "Gammapy analysis workflow and package structure": [[576, null]], "Gammapy overview": [[400, "gammapy-overview"]], "Gammapy repository": [[410, "gammapy-repository"]], "Gammapy webpages": [[410, "gammapy-webpages"]], "Gaussian spatial model": [[536, null]], "Gaussian spectral model": [[551, null]], "Gaussian temporal model": [[567, null]], "GaussianPrior": [[233, null]], "GaussianSpatialModel": [[234, null]], "GaussianSpectralModel": [[235, null]], "GaussianTemporalModel": [[236, null]], "General Gammapy publications": [[406, "general-gammapy-publications"]], "General code style guidelines": [[386, "general-code-style-guidelines"]], "General conventions": [[380, "general-conventions"]], "General idea and class diagram": [[390, "general-idea-and-class-diagram"]], "General method": [[516, "general-method"]], "General organization of the new approach": [[395, "general-organization-of-the-new-approach"]], "Generalist estimators": [[404, "generalist-estimators"]], "Generalized Gaussian temporal model": [[568, null]], "Generalized gaussian spatial model": [[537, null]], "GeneralizedGaussianSpatialModel": [[237, null]], "GeneralizedGaussianTemporalModel": [[238, null]], "Generating log messages": [[380, "generating-log-messages"]], "Geom": [[191, null]], "Get a fit stat profile for the redshift": [[451, "get-a-fit-stat-profile-for-the-redshift"]], "Get in touch early": [[383, "get-in-touch-early"]], "Get set up": [[383, "get-set-up"]], "Get the flux points": [[451, "get-the-flux-points"]], "Getting started": [[400, "getting-started"], [412, null], [507, "getting-started"], [508, "getting-started"], [509, "getting-started"]], "Getting started section restructuring": [[400, "getting-started-section-restructuring"]], "Getting started with data": [[515, "getting-started-with-data"]], "Getting started with maps": [[530, "getting-started-with-maps"]], "Getting the reduced dataset": [[460, "getting-the-reduced-dataset"], [461, "getting-the-reduced-dataset"]], "Global Model Handling": [[402, "global-model-handling"]], "Glossary": [[577, "glossary"]], "Glossary and references": [[577, null]], "Goodness of fit": [[581, "goodness-of-fit"]], "Guidelines and specific actions": [[400, "guidelines-and-specific-actions"]], "H.E.S.S. with Gammapy": [[496, null]], "HAWC data access and reduction": [[495, "hawc-data-access-and-reduction"]], "HAWC with Gammapy": [[495, null]], "HAWC: 1D dataset for flux point fitting": [[464, "hawc-1d-dataset-for-flux-point-fitting"]], "HDUIndexTable": [[87, null]], "HDULocation": [[315, null]], "HEALPix geometry": [[529, "healpix-geometry"]], "HEALPix-based maps": [[529, null]], "HESS-DL3: 1D ON/OFF dataset for spectral fitting": [[464, "hess-dl3-1d-on-off-dataset-for-spectral-fitting"]], "Handling of conference material": [[406, "handling-of-conference-material"]], "Help!?": [[415, "help"]], "Hierarchical clustering of observations": [[490, "hierarchical-clustering-of-observations"]], "Hierarchy": [[407, "hierarchy"]], "High Level Analysis Interface": [[517, null]], "High level interface": [[389, "high-level-interface"], [502, null]], "How To": [[400, "how-to"], [518, null]], "How to contribute to Gammapy": [[383, null]], "How to get data values": [[486, "how-to-get-data-values"]], "How to handle API breaking changes?": [[380, "how-to-handle-api-breaking-changes"]], "How to make a Gammapy release": [[409, null]], "How to make a pull request": [[380, "how-to-make-a-pull-request"]], "How to set data values": [[486, "how-to-set-data-values"]], "How to use logging": [[380, "how-to-use-logging"]], "How to use random numbers": [[380, "how-to-use-random-numbers"]], "How to write code": [[380, "how-to-write-code"]], "How to write tests": [[380, "how-to-write-tests"]], "HpxGeom": [[192, null]], "HpxMap": [[193, null]], "HpxNDMap": [[194, null]], "IPython": [[416, "id3"]], "IRF": [[157, null], [407, "irf"]], "IRF axis naming": [[523, "irf-axis-naming"]], "IRFMap": [[158, null]], "IRF_REGISTRY": [[159, null]], "IRFs": [[389, "irfs"], [493, "irfs"]], "Image Plotting": [[486, "image-plotting"]], "ImageProfile": [[128, null]], "ImageProfileEstimator": [[129, null]], "Images and masks": [[394, "images-and-masks"]], "Implement default parameters": [[391, "implement-default-parameters"]], "Implement evaluation region specifications": [[391, "implement-evaluation-region-specifications"]], "Implement sky coordinate handling": [[391, "implement-sky-coordinate-handling"]], "Implementation": [[400, "implementation"], [408, "implementation"]], "Implementation Outline": [[408, "implementation-outline"]], "Implementation road map": [[390, "implementation-road-map"]], "Implementing a custom model": [[489, "implementing-a-custom-model"]], "Implementing a custom prior": [[491, "implementing-a-custom-prior"]], "Imports and versions": [[471, "imports-and-versions"]], "Improve SourceModels class": [[391, "improve-sourcemodels-class"]], "Improve and implement model serilization": [[391, "improve-and-implement-model-serilization"]], "Improve spatial models": [[391, "improve-spatial-models"]], "In the RST files": [[381, "in-the-rst-files"]], "Inbuilt Gammapy IRFs": [[484, "inbuilt-gammapy-irfs"]], "Include png files as images": [[381, "include-png-files-as-images"]], "Indexing and Slicing Sub-Maps": [[486, "indexing-and-slicing-sub-maps"]], "Infrastructure": [[447, "infrastructure"]], "Inspect the reduced dataset": [[503, "inspect-the-reduced-dataset"]], "Inspecting residuals": [[503, "inspecting-residuals"]], "Install issues": [[415, "install-issues"]], "Installation": [[400, "installation"], [412, "installation"], [413, null]], "Instrument Response Functions (DL3)": [[523, null]], "Interaction Between Models and Dataset Objects": [[402, "interaction-between-models-and-dataset-objects"]], "Interface with MapCoord and SkyCoord": [[530, "interface-with-mapcoord-and-skycoord"]], "Interpolating onto a different geometry": [[486, "interpolating-onto-a-different-geometry"]], "Interpolation and extrapolation": [[380, "interpolation-and-extrapolation"]], "Introduce Shorter YAML Alias Tags": [[403, "introduce-shorter-yaml-alias-tags"]], "Introduce a FluxEstimate base class": [[404, "introduce-a-fluxestimate-base-class"]], "Introduce a FluxMap API": [[404, "introduce-a-fluxmap-api"]], "Introduce a FluxPointsCollection API": [[404, "introduce-a-fluxpointscollection-api"]], "Introduce gammapy.datasets": [[401, "introduce-gammapy-datasets"]], "Introduce gammapy.estimators": [[401, "introduce-gammapy-estimators"]], "Introduce gammapy.makers": [[401, "introduce-gammapy-makers"]], "Introduce gammapy.modeling": [[399, "introduce-gammapy-modeling"]], "Introduce gammapy.visualization": [[401, "introduce-gammapy-visualization"]], "Introduce naming scheme for models": [[391, "introduce-naming-scheme-for-models"]], "Introduction": [[391, "introduction"], [394, "introduction"], [395, "introduction"], [397, "introduction"], [398, "introduction"], [400, "introduction"], [404, "introduction"], [406, "introduction"], [407, "introduction"], [450, "introduction"], [455, "introduction"], [457, "introduction"], [465, "introduction"], [475, "introduction"], [479, "introduction"], [480, "introduction"], [481, "introduction"], [485, "introduction"], [486, "introduction"], [493, "introduction"], [494, "introduction"], [495, "introduction"], [496, "introduction"], [498, "introduction"], [504, "introduction"], [506, "introduction"], [508, "introduction"], [509, "introduction"], [579, "introduction"]], "Introduction of background models": [[391, "introduction-of-background-models"]], "Introduction of model name attributes": [[391, "introduction-of-model-name-attributes"]], "Introduction of \u201cforward folded\u201d models": [[391, "introduction-of-forward-folded-models"]], "InverseCDFSampler": [[329, null]], "IsothermalProfile": [[22, null]], "Isotropic diffuse background": [[494, "isotropic-diffuse-background"]], "Iterating by image": [[486, "iterating-by-image"]], "J Factors": [[479, "j-factors"]], "JFactory": [[23, null]], "Joint Analysis": [[514, "joint-analysis"]], "Joint analysis": [[463, "joint-analysis"], [464, "joint-analysis"]], "Jupyter": [[412, "id2"], [414, "jupyter"]], "Jupyter notebooks": [[416, "jupyter-notebooks"]], "Key Features": [[482, "key-features"]], "Known issues": [[447, "known-issues"]], "LabelMapAxis": [[195, null], [486, "labelmapaxis"]], "Latest CTAO performance files": [[493, "latest-ctao-performance-files"]], "Lazy loading of Datasets": [[392, "lazy-loading-of-datasets"]], "LazyFitsData": [[316, null]], "Let\u2019s simulate the model": [[468, "let-s-simulate-the-model"]], "Light Curve Fitting": [[395, "light-curve-fitting"]], "Light Curve estimation by observation": [[472, "light-curve-estimation-by-observation"]], "Light curve temporal model": [[573, null]], "Light curves": [[472, null]], "Light curves for flares": [[473, null]], "LightCurveEstimator": [[130, null]], "LightCurveTemplateTemporalModel": [[239, null]], "Lightcurve": [[395, "lightcurve"]], "Lightcurves": [[480, "lightcurves"]], "Lightcurves in gamma-ray astronomy": [[395, "lightcurves-in-gamma-ray-astronomy"]], "Limitations": [[390, "limitations"]], "Linear temporal model": [[569, null]], "LinearTemporalModel": [[240, null]], "Links to documentation": [[381, "links-to-documentation"]], "Links to other tutorials": [[381, "links-to-other-tutorials"]], "List available catalogs": [[480, "list-available-catalogs"]], "Load Data": [[455, "load-data"]], "Load IRFs and prepare dataset": [[450, "load-irfs-and-prepare-dataset"]], "Load catalogs": [[480, "load-catalogs"]], "Load data": [[457, "load-data"]], "Load spectral points": [[453, "load-spectral-points"]], "Load the data": [[451, "load-the-data"]], "Load the light curve for the PKS 2155-304 as a FluxPoints object.": [[482, "load-the-light-curve-for-the-pks-2155-304-as-a-fluxpoints-object"]], "Load the tables": [[495, "load-the-tables"]], "Loading models from a catalog": [[488, "loading-models-from-a-catalog"]], "Locate origin of warnings": [[380, "locate-origin-of-warnings"]], "Log parabola spectral model": [[552, null]], "Log parabola spectral norm model": [[553, null]], "Log-Parabola Fit": [[453, "log-parabola-fit"]], "LogParabolaNormSpectralModel": [[241, null]], "LogParabolaSpectralModel": [[242, null]], "LogSpiral": [[34, null]], "Long Term Support releases": [[406, "long-term-support-releases"]], "Lorimer2006": [[35, null]], "Low level API": [[503, null]], "Low level map and cube analysis": [[386, "low-level-map-and-cube-analysis"]], "MAKER_REGISTRY": [[171, null]], "METHOD_DEFAULT": [[323, null]], "METHOD_KWARGS_DEFAULT": [[324, null]], "MODEL_REGISTRY": [[243, null]], "Maintainer and developer perspective": [[387, "maintainer-and-developer-perspective"]], "Maintenance and Code Quality": [[389, "maintenance-and-code-quality"]], "Make a Bugfix release": [[409, "make-a-bugfix-release"]], "Make a Li&Ma test over the events": [[475, "make-a-li-ma-test-over-the-events"]], "Make sky images": [[465, "make-sky-images"]], "Make small pull requests": [[383, "make-small-pull-requests"]], "Maker": [[172, null]], "Makers": [[407, "makers"]], "Makers - Data reduction": [[485, null]], "Making a butterfly plot": [[503, "making-a-butterfly-plot"]], "Making a pull request that requires backport": [[380, "making-a-pull-request-that-requires-backport"]], "Making a pull request which skips GitHub Actions": [[380, "making-a-pull-request-which-skips-github-actions"]], "Making a pull request with new or modified datasets": [[380, "making-a-pull-request-with-new-or-modified-datasets"]], "Manual grouping of observations": [[490, "manual-grouping-of-observations"]], "Map": [[196, null]], "Map Analysis / Data Reduction": [[389, "map-analysis-data-reduction"]], "MapAxes": [[197, null]], "MapAxis": [[198, null]], "MapCoord": [[199, null], [530, "mapcoord"]], "MapDataset": [[102, null], [392, "mapdataset"], [481, "mapdataset"]], "MapDatasetEventSampler": [[103, null], [393, "mapdataseteventsampler"]], "MapDatasetMaker": [[173, null]], "MapDatasetMetaData": [[104, null]], "MapDatasetOnOff": [[105, null], [392, "mapdatasetonoff"]], "MapPanelPlotter": [[367, null]], "Maps": [[200, null], [389, "maps"], [486, null], [504, "maps"]], "Maps operations": [[486, "maps-operations"]], "Mask dilation and erosion": [[487, "mask-dilation-and-erosion"]], "Mask maps": [[487, null]], "Mask modifications": [[487, "mask-modifications"]], "Mask some sky regions": [[487, "mask-some-sky-regions"]], "Masks for fitting": [[487, "masks-for-fitting"]], "Masks operations": [[487, "masks-operations"]], "Meetings": [[389, "meetings"]], "Metadata API": [[407, "metadata-api"]], "Metadata files": [[406, "metadata-files"]], "Metadata generation and propagation along the dataflow": [[407, "metadata-generation-and-propagation-along-the-dataflow"]], "Methods to characterize variability": [[478, "methods-to-characterize-variability"]], "MeyerCrabSpectralModel": [[244, null]], "Minor changes": [[401, "minor-changes"]], "Mission elapsed times (MET)": [[582, "mission-elapsed-times-met"]], "Model": [[245, null]], "Model and dataset": [[483, "model-and-dataset"], [491, "model-and-dataset"]], "Model fit": [[465, "model-fit"]], "Model fitting": [[456, "model-fitting"], [502, "model-fitting"]], "Model gallery": [[532, null]], "Model lists and serialisation": [[489, "model-lists-and-serialisation"]], "Model the observed spectrum": [[451, "model-the-observed-spectrum"]], "ModelBase": [[246, null]], "Modeling": [[389, "modeling"], [407, "modeling"], [477, "modeling"]], "Modeling and Fitting (DL4 to DL5)": [[575, null]], "Modeling and fitting": [[463, "modeling-and-fitting"]], "Modelling": [[460, "modelling"], [488, null]], "Models": [[247, null], [489, null]], "Models with energy dependent morphology": [[489, "models-with-energy-dependent-morphology"]], "Models with shared parameter": [[489, "models-with-shared-parameter"]], "Modifying Data": [[486, "modifying-data"]], "Modifying model parameters": [[489, "modifying-model-parameters"]], "MooreProfile": [[24, null]], "Morphological energy dependence estimation": [[466, null]], "Motivation": [[408, "motivation"]], "Multi instrument joint 3D and 1D analysis": [[464, null]], "NFWProfile": [[25, null]], "N_JOBS_DEFAULT": [[325, null]], "Naima spectral model": [[554, null]], "NaimaSpectralModel": [[248, null]], "New features": [[442, "new-features"], [445, "new-features"], [446, "new-features"], [447, "new-features"]], "Next steps": [[493, "next-steps"], [495, "next-steps"], [496, "next-steps"]], "Night-wise LC estimation": [[472, "night-wise-lc-estimation"]], "Norm Spectral Models": [[489, "norm-spectral-models"]], "Notations": [[580, "notations"]], "Notes": [[579, "notes"]], "OGIPDatasetReader": [[106, null]], "OGIPDatasetWriter": [[107, null]], "Object text repr, str and info": [[380, "object-text-repr-str-and-info"]], "Objective": [[460, "objective"], [461, "objective"], [467, "objective"], [468, "objective"], [490, "objective"]], "Objectives": [[390, "objectives"]], "Observation": [[88, null]], "Observation duration and effective livetime": [[485, "observation-duration-and-effective-livetime"]], "Observation selection": [[456, "observation-selection"], [502, "observation-selection"]], "ObservationEventSampler": [[108, null]], "ObservationFilter": [[89, null]], "ObservationMetaData": [[90, null]], "ObservationTable": [[91, null]], "Observational clustering": [[490, null]], "Observations": [[92, null]], "ObservationsEventsSampler": [[93, null]], "Obtain the data to use": [[466, "obtain-the-data-to-use"]], "Obtain the observations": [[490, "obtain-the-observations"]], "Obtaining an integral flux sensitivity": [[450, "obtaining-an-integral-flux-sensitivity"]], "Old example data": [[410, "old-example-data"]], "On-Off analysis": [[458, "on-off-analysis"]], "Opening the data": [[475, "opening-the-data"]], "OptimizeResult": [[213, null]], "Optional dependencies": [[379, "optional-dependencies"], [397, "optional-dependencies"]], "Other folders": [[410, "other-folders"]], "Other packages": [[506, "other-packages"]], "Other repositories": [[410, "other-repositories"]], "Others": [[380, "others"], [410, "others"]], "Outlook": [[392, "outlook"], [394, "outlook"], [396, "outlook"], [397, "outlook"], [399, "outlook"], [400, "outlook"], [401, "outlook"], [404, "outlook"]], "Output in Jupyter notebook cells": [[380, "output-in-jupyter-notebook-cells"]], "Overview": [[525, "overview"], [527, "overview"], [528, "overview"]], "PIG 1 - PIG purpose and guidelines": [[385, null]], "PIG 10 - Regions": [[394, null]], "PIG 11 - Light curves": [[395, null]], "PIG 12 - High level interface": [[396, null]], "PIG 13 - Gammapy dependencies and distribution": [[397, null]], "PIG 14 - Uncertainty estimation": [[398, null]], "PIG 16 - Gammapy package structure": [[399, null]], "PIG 18 - Documentation": [[400, null]], "PIG 19 - Gammapy package structure follow up": [[401, null]], "PIG 2 - Organization of low level analysis code": [[386, null]], "PIG 20 - Global Model API": [[402, null]], "PIG 21 - Models improvements": [[403, null]], "PIG 22 - Unified flux estimators API": [[404, null]], "PIG 23 - Gammapy release cycle and version numbering": [[405, null]], "PIG 24 - Authorship policy": [[406, null]], "PIG 25 - Metadata container for Gammapy": [[407, null]], "PIG 26 - Model Priors API": [[408, null]], "PIG 3 - Plan for dropping Python 2.7 support": [[387, null]], "PIG 4 - Setup for tutorial notebooks and data": [[388, null]], "PIG 5 - Gammapy 1.0 roadmap": [[389, null]], "PIG 6 - CTA observation handling": [[390, null]], "PIG 7 - Models": [[391, null]], "PIG 8 - Datasets": [[392, null]], "PIG 9 - Event sampling": [[393, null]], "PIG review": [[385, "pig-review"]], "PIG status": [[385, "pig-status"]], "PIGs": [[384, null]], "POOL_KWARGS_DEFAULT": [[326, null]], "PSF": [[484, "psf"], [494, "psf"]], "PSF3D": [[160, null]], "PSFKernel": [[161, null]], "PSFKing": [[162, null]], "PSFMap": [[163, null]], "PWN": [[50, null]], "Package / API": [[498, "package-api"]], "Package and docs": [[410, "package-and-docs"]], "Package structure and dependencies": [[433, "package-structure-and-dependencies"]], "Paczynski1990": [[36, null]], "Paczynski1990Velocity": [[37, null]], "Papers": [[389, "papers"]], "Parallel evaluation of datasets": [[392, "parallel-evaluation-of-datasets"]], "Parameter": [[214, null]], "ParameterEstimator": [[131, null]], "Parameters": [[215, null]], "ParametricPSF": [[164, null]], "Perform spectral model fitting": [[452, "perform-spectral-model-fitting"]], "Perform the data reduction loop": [[503, "perform-the-data-reduction-loop"]], "Perform the data reduction loop.": [[452, "perform-the-data-reduction-loop"]], "Performance and precision evaluation": [[393, "performance-and-precision-evaluation"]], "Phase curve temporal model": [[572, null]], "Phase-resolved map": [[475, "phase-resolved-map"]], "Phase-resolved spectrum": [[475, "phase-resolved-spectrum"]], "PhaseBackgroundMaker": [[174, null]], "Phasogram": [[475, "phasogram"]], "Piecewise norm spectral model": [[555, null]], "Piecewise norm spatial model": [[538, null]], "PiecewiseNormSpatialModel": [[249, null]], "PiecewiseNormSpectralModel": [[250, null]], "Pixel coordinate convention": [[380, "pixel-coordinate-convention"]], "Plot": [[465, "plot"]], "Plot off regions": [[455, "plot-off-regions"]], "Plot the fitted spectrum": [[503, "plot-the-fitted-spectrum"]], "Plot the observed and intrinsic fluxes": [[451, "plot-the-observed-and-intrinsic-fluxes"]], "Plotting Results": [[469, "plotting-results"]], "Plotting a RegionGeom": [[531, "plotting-a-regiongeom"]], "Plotting models on a (counts) map": [[488, "plotting-models-on-a-counts-map"]], "Plotting the final results of the 1D Analysis": [[456, "plotting-the-final-results-of-the-1d-analysis"]], "Plotting the map content": [[531, "plotting-the-map-content"]], "Plotting the results": [[466, "plotting-the-results"]], "Plotting the underlying region": [[531, "plotting-the-underlying-region"]], "Point Spread Function": [[524, null]], "Point source sensitivity": [[450, null]], "Point spatial model": [[539, null]], "Point spread function": [[493, "point-spread-function"]], "PointSpatialModel": [[251, null]], "PointingInfo": [[94, null]], "PointingMode": [[95, null]], "Possible implementations": [[406, "possible-implementations"]], "Post release": [[409, "post-release"]], "Power Law Fit": [[453, "power-law-fit"]], "Power law 2 spectral model": [[557, null]], "Power law norm spectral model": [[558, null]], "Power law spectral model": [[556, null]], "PowerLaw temporal model": [[570, null]], "PowerLaw2SpectralModel": [[252, null]], "PowerLawNormSpectralModel": [[253, null]], "PowerLawSpectralModel": [[254, null]], "PowerLawTemporalModel": [[255, null]], "Predicted counts": [[514, "predicted-counts"]], "Prepare and run the event sampler": [[468, "prepare-and-run-the-event-sampler"]], "Prepare the datasets creation": [[452, "prepare-the-datasets-creation"]], "Preparing reduced datasets geometry": [[503, "preparing-reduced-datasets-geometry"]], "Prerequisites": [[452, "prerequisites"], [453, "prerequisites"], [455, "prerequisites"], [456, "prerequisites"], [457, "prerequisites"], [458, "prerequisites"], [460, "prerequisites"], [464, "prerequisites"], [466, "prerequisites"], [467, "prerequisites"], [468, "prerequisites"], [469, "prerequisites"], [471, "prerequisites"], [472, "prerequisites"], [473, "prerequisites"], [474, "prerequisites"], [478, "prerequisites"], [483, "prerequisites"], [487, "prerequisites"], [488, "prerequisites"], [491, "prerequisites"], [502, "prerequisites"], [503, "prerequisites"]], "Pretty-print source information": [[480, "pretty-print-source-information"]], "PrimaryFlux": [[26, null]], "Prior": [[256, null]], "PriorParameter": [[216, null]], "PriorParameters": [[217, null]], "Priors": [[491, null]], "Profile Estimation": [[469, "profile-estimation"]], "Profile Likelihood": [[581, "profile-likelihood"]], "Profiles": [[479, "profiles"]], "Project Management": [[389, "project-management"]], "Project setup": [[410, null]], "Projects": [[389, "projects"]], "Proposal": [[388, "proposal"], [390, "proposal"], [391, "proposal"], [392, "proposal"], [393, "proposal"], [394, "proposal"], [395, "proposal"], [396, "proposal"], [398, "proposal"], [399, "proposal"], [400, "proposal"], [401, "proposal"], [402, "proposal"], [403, "proposal"]], "Proposal of API for flux estimate results": [[404, "proposal-of-api-for-flux-estimate-results"]], "Proposed Approach": [[469, "proposed-approach"]], "Proposed approach": [[452, "proposed-approach"], [453, "proposed-approach"], [456, "proposed-approach"], [458, "proposed-approach"], [459, "proposed-approach"], [460, "proposed-approach"], [461, "proposed-approach"], [464, "proposed-approach"], [467, "proposed-approach"], [468, "proposed-approach"], [471, "proposed-approach"], [472, "proposed-approach"], [473, "proposed-approach"], [474, "proposed-approach"], [477, "proposed-approach"], [478, "proposed-approach"], [483, "proposed-approach"], [487, "proposed-approach"], [488, "proposed-approach"], [490, "proposed-approach"], [502, "proposed-approach"], [503, "proposed-approach"]], "Proposed class diagram": [[390, "proposed-class-diagram"]], "Proposed metadata classes": [[407, "proposed-metadata-classes"]], "Proposed solution": [[407, "proposed-solution"]], "Pull Requests": [[433, "pull-requests"], [434, "pull-requests"], [442, "pull-requests"], [443, "pull-requests"], [444, "pull-requests"], [445, "pull-requests"], [446, "pull-requests"], [447, "pull-requests"]], "Pull requests": [[419, "pull-requests"], [420, "pull-requests"], [421, "pull-requests"], [422, "pull-requests"], [423, "pull-requests"], [424, "pull-requests"], [425, "pull-requests"], [426, "pull-requests"], [427, "pull-requests"], [428, "pull-requests"], [429, "pull-requests"], [430, "pull-requests"], [431, "pull-requests"], [432, "pull-requests"], [435, "pull-requests"], [436, "pull-requests"], [437, "pull-requests"], [438, "pull-requests"], [439, "pull-requests"], [440, "pull-requests"], [441, "pull-requests"]], "Pulsar": [[51, null]], "Pulsar Source Models": [[510, null]], "Pulsar Wind Nebula Source Models": [[511, null]], "Pulsar analysis": [[475, null]], "Python": [[416, "id2"]], "Python scripts": [[416, "python-scripts"]], "Python version support": [[380, "python-version-support"]], "RadMax2D": [[165, null]], "Read and Introduce Data": [[469, "read-and-introduce-data"]], "Read in input images": [[459, "read-in-input-images"]], "Read the datasets": [[488, "read-the-datasets"]], "Read the energy-dependent model": [[468, "read-the-energy-dependent-model"]], "Reading Maps": [[486, "reading-maps"]], "Reading and Writing": [[486, "reading-and-writing"]], "Reading and writing masks": [[487, "reading-and-writing-masks"]], "Reading different datasets": [[464, "reading-different-datasets"]], "RecoPSFMap": [[166, null]], "Recommended Setup": [[412, "recommended-setup"], [414, null]], "Reference": [[400, "reference"], [578, "reference"]], "References": [[577, "publications"]], "Reflected regions background": [[485, "reflected-regions-background"], [527, null]], "ReflectedRegionsBackgroundMaker": [[175, null]], "ReflectedRegionsFinder": [[176, null]], "Region arguments": [[394, "region-arguments"]], "RegionGeom": [[201, null], [531, "regiongeom"]], "RegionGeom and RegionNDMap": [[531, null]], "RegionGeom and coordinates": [[531, "regiongeom-and-coordinates"]], "RegionNDMap": [[202, null], [531, "regionndmap"]], "RegionsFinder": [[177, null]], "Relation to WCS geometries": [[531, "relation-to-wcs-geometries"]], "Release notes": [[380, "release-notes"], [418, null]], "Release preparation, feature freeze": [[405, "release-preparation-feature-freeze"]], "Release scheduling and LTS": [[405, "release-scheduling-and-lts"]], "Releases": [[389, "releases"], [406, "releases"], [410, "releases"]], "Releasing the final version of the major release": [[409, "releasing-the-final-version-of-the-major-release"]], "Releasing the first major release candidate": [[409, "releasing-the-first-major-release-candidate"]], "Removing a model from a dataset": [[488, "removing-a-model-from-a-dataset"]], "Removing an attribute": [[380, "removing-an-attribute"]], "Renaming an argument": [[380, "renaming-an-argument"]], "Required dependencies": [[379, "required-dependencies"], [397, "required-dependencies"]], "Requirements": [[407, "requirements"]], "Resampling datasets": [[481, "resampling-datasets"]], "Resolve gammapy.detect": [[401, "resolve-gammapy-detect"]], "Results": [[450, "results"]], "Results exploration": [[456, "results-exploration"]], "Ring background": [[485, "ring-background"], [528, null]], "Ring background map": [[461, null]], "RingBackgroundMaker": [[178, null]], "Rotated regions": [[394, "rotated-regions"]], "Run Estimation": [[469, "run-estimation"]], "Run Estimator": [[466, "run-estimator"]], "Run data reduction chain": [[455, "run-data-reduction-chain"], [457, "run-data-reduction-chain"]], "Run the 1D data reduction": [[472, "run-the-1d-data-reduction"]], "Run the 3D data reduction": [[472, "run-the-3d-data-reduction"]], "Running config driven data reduction": [[578, "running-config-driven-data-reduction"]], "Running tests & building Documentation": [[383, "running-tests-building-documentation"]], "Running the Data Reduction": [[456, "running-the-data-reduction"]], "Running the analysis": [[502, "running-the-analysis"]], "Running the estimation": [[456, "running-the-estimation"]], "Running the first step of the analysis: the Data Reduction": [[456, "running-the-first-step-of-the-analysis-the-data-reduction"]], "Running the fit": [[456, "running-the-fit"]], "Running the light curve extraction in 1D": [[472, "running-the-light-curve-extraction-in-1d"]], "SED types": [[516, "sed-types"]], "SNR": [[52, null]], "SNRTrueloveMcKee": [[53, null]], "SPATIAL_MODEL_REGISTRY": [[257, null]], "SPECTRAL_MODEL_REGISTRY": [[258, null]], "Safe data range definition": [[526, "safe-data-range-definition"]], "Safe data range handling": [[485, "safe-data-range-handling"]], "SafeMaskMaker": [[179, null]], "Sample a source with energy-dependent temporal evolution": [[468, null]], "Sampling methods": [[393, "sampling-methods"]], "Sampling the source and background events": [[467, "sampling-the-source-and-background-events"]], "Save dataset to disk": [[456, "save-dataset-to-disk"], [502, "save-dataset-to-disk"], [503, "save-dataset-to-disk"]], "ScaleSpectralModel": [[259, null]], "ScaledRegularGridInterpolator": [[319, null]], "Scripts": [[498, "scripts"]], "Select a catalog subset": [[480, "select-a-catalog-subset"]], "Select a source": [[480, "select-a-source"]], "Select observations": [[465, "select-observations"]], "Select the ON region": [[452, "select-the-on-region"]], "Select the data": [[452, "select-the-data"], [473, "select-the-data"]], "Selecting models contributing to a given region": [[488, "selecting-models-contributing-to-a-given-region"]], "Selecting models from a list": [[488, "selecting-models-from-a-list"]], "SensitivityEstimator": [[132, null]], "Serialisation": [[408, "serialisation"], [484, "serialisation"], [484, "id1"], [484, "id2"], [494, "serialisation"]], "Serialisation and I/O": [[469, "serialisation-and-i-o"]], "Serialisation of datasets": [[514, "serialisation-of-datasets"]], "Serialisation of the fit result": [[456, "serialisation-of-the-fit-result"]], "Serialisation of the results": [[456, "serialisation-of-the-results"]], "Serialising models": [[488, "serialising-models"]], "Serialization": [[407, "serialization"]], "Setting fitting parameters": [[456, "setting-fitting-parameters"]], "Setting modeling and fitting parameters": [[502, "setting-modeling-and-fitting-parameters"]], "Setting the background normalization maker": [[502, "setting-the-background-normalization-maker"]], "Setting the data to use": [[502, "setting-the-data-to-use"]], "Setting the exclusion mask": [[456, "setting-the-exclusion-mask"], [502, "setting-the-exclusion-mask"]], "Setting the reduced datasets geometry": [[502, "setting-the-reduced-datasets-geometry"]], "Setup": [[450, "setup"], [451, "setup"], [452, "setup"], [453, "setup"], [455, "setup"], [456, "setup"], [457, "setup"], [458, "setup"], [459, "setup"], [460, "setup"], [461, "setup"], [465, "setup"], [466, "setup"], [467, "setup"], [468, "setup"], [469, "setup"], [472, "setup"], [473, "setup"], [474, "setup"], [477, "setup"], [478, "setup"], [479, "setup"], [481, "setup"], [485, "setup"], [486, "setup"], [487, "setup"], [488, "setup"], [489, "setup"], [493, "setup"], [494, "setup"], [502, "setup"], [503, "setup"], [504, "setup"]], "Shell spatial model": [[540, null]], "Shell2 spatial model": [[541, null]], "Shell2SpatialModel": [[260, null]], "ShellSpatialModel": [[261, null]], "Show images": [[465, "show-images"]], "Show the results tables": [[466, "show-the-results-tables"]], "Show various observation quantities": [[490, "show-various-observation-quantities"]], "SimplePulsar": [[54, null]], "Simplify YAML Parameter Representation": [[403, "simplify-yaml-parameter-representation"]], "Simplify YAML Representation": [[403, "simplify-yaml-representation"]], "Simulate multiple event lists": [[467, "simulate-multiple-event-lists"]], "Simulating a light curve": [[474, "simulating-a-light-curve"]], "Simulating and fitting a time varying source": [[474, null]], "Simulation": [[471, "simulation"]], "Simulation of MapDataset and SpectrumDataset": [[392, "simulation-of-mapdataset-and-spectrumdataset"]], "Simulation of a single spectrum": [[458, "simulation-of-a-single-spectrum"]], "Sine temporal model": [[571, null]], "SineTemporalModel": [[262, null]], "Skip unit tests for some Astropy versions": [[380, "skip-unit-tests-for-some-astropy-versions"]], "Sky and pixel regions": [[394, "sky-and-pixel-regions"]], "Sky maps (DL4)": [[530, null]], "SkyModel": [[263, null], [489, "skymodel"]], "Smooth broken power law spectral model": [[559, null]], "SmoothBrokenPowerLawSpectralModel": [[264, null]], "Some terminology": [[390, "some-terminology"]], "Source Detection": [[465, "source-detection"]], "Source candidates": [[459, "source-candidates"]], "Source catalogs": [[480, null], [504, "source-catalogs"], [513, null]], "Source detection and significance maps": [[459, null]], "Source information": [[480, "source-information"]], "Source models": [[480, "source-models"], [493, "source-models"]], "Source object": [[480, "source-object"]], "Source statistic": [[455, "source-statistic"]], "SourceCatalog": [[56, null]], "SourceCatalog1LHAASO": [[57, null]], "SourceCatalog2FHL": [[58, null]], "SourceCatalog2HWC": [[59, null]], "SourceCatalog2PC": [[60, null]], "SourceCatalog3FGL": [[61, null]], "SourceCatalog3FHL": [[62, null]], "SourceCatalog3HWC": [[63, null]], "SourceCatalog3PC": [[64, null]], "SourceCatalog4FGL": [[65, null]], "SourceCatalogGammaCat": [[66, null]], "SourceCatalogHGPS": [[67, null]], "SourceCatalogLargeScaleHGPS": [[68, null]], "SourceCatalogObject": [[69, null]], "SourceCatalogObject1LHAASO": [[70, null]], "SourceCatalogObject2FHL": [[71, null]], "SourceCatalogObject2HWC": [[72, null]], "SourceCatalogObject2PC": [[73, null]], "SourceCatalogObject3FGL": [[74, null]], "SourceCatalogObject3FHL": [[75, null]], "SourceCatalogObject3HWC": [[76, null]], "SourceCatalogObject3PC": [[77, null]], "SourceCatalogObject4FGL": [[78, null]], "SourceCatalogObjectGammaCat": [[79, null]], "SourceCatalogObjectHGPS": [[80, null]], "SourceCatalogObjectHGPSComponent": [[81, null]], "SourceIRFModel": [[391, "sourceirfmodel"]], "Spatial analysis": [[465, "spatial-analysis"]], "Spatial models": [[489, "spatial-models"], [532, "spatial-models"]], "SpatialIRFModel": [[391, "spatialirfmodel"]], "SpatialModel": [[265, null]], "Special cases": [[581, "special-cases"]], "Specificities of the HGPS catalog": [[480, "specificities-of-the-hgps-catalog"]], "Spectral Absorption Model": [[403, "spectral-absorption-model"]], "Spectral Norm Models": [[403, "spectral-norm-models"]], "Spectral analysis": [[455, null]], "Spectral analysis of extended sources": [[452, null]], "Spectral analysis with energy-dependent directional cuts": [[457, null]], "Spectral analysis with the HLI": [[456, null]], "Spectral models": [[489, "spectral-models"], [532, "spectral-models"]], "Spectral models and flux points": [[504, "spectral-models-and-flux-points"]], "Spectral points": [[465, "spectral-points"]], "SpectralIRFModel": [[391, "spectralirfmodel"]], "SpectralModel": [[266, null]], "Spectrum": [[465, "spectrum"]], "Spectrum dataset": [[485, "spectrum-dataset"]], "SpectrumDataset": [[109, null], [392, "spectrumdataset"], [481, "spectrumdataset"]], "SpectrumDatasetMaker": [[180, null]], "SpectrumDatasetOnOff": [[110, null], [392, "spectrumdatasetonoff"]], "Sphinx gallery extension": [[381, "sphinx-gallery-extension"]], "Spiral arm models": [[508, "spiral-arm-models"]], "Stack observations": [[455, "stack-observations"]], "Stacked analysis": [[463, "stacked-analysis"]], "Stacking Multiple Datasets": [[514, "stacking-multiple-datasets"]], "Statistical utility functions": [[580, null]], "Status": [[390, "status"], [399, "status"]], "Storing the energy dispersion information as a function of sky position": [[522, "storing-the-energy-dispersion-information-as-a-function-of-sky-position"]], "Storing the results and further studies": [[395, "storing-the-results-and-further-studies"]], "Sub-packages": [[507, "sub-packages"]], "Suggestions": [[406, "suggestions"]], "Summary": [[419, "summary"], [420, "summary"], [421, "summary"], [422, "summary"], [423, "summary"], [424, "summary"], [425, "summary"], [426, "summary"], [427, "summary"], [428, "summary"], [429, "summary"], [430, "summary"], [431, "summary"], [432, "summary"], [433, "summary"], [434, "summary"], [435, "summary"], [436, "summary"], [437, "summary"], [438, "summary"], [439, "summary"], [440, "summary"], [441, "summary"], [442, "summary"], [443, "summary"], [444, "summary"], [445, "summary"], [446, "summary"], [447, "summary"], [463, "summary"], [494, "summary"]], "Super Exponential Cutoff Power Law Model used for 4FGL-DR1 (and DR2)": [[562, null]], "Super Exponential Cutoff Power Law Model used for 4FGL-DR3": [[561, null]], "Super exponential cutoff power law model used for 3FGL": [[560, null]], "SuperExpCutoffPowerLaw3FGLSpectralModel": [[267, null]], "SuperExpCutoffPowerLaw4FGLDR3SpectralModel": [[268, null]], "SuperExpCutoffPowerLaw4FGLSpectralModel": [[269, null]], "Supernova Remnant Models": [[512, null]], "Support for Asymmetric IRFs": [[484, "support-for-asymmetric-irfs"]], "Support of python Cython, numpy and astropy versions": [[405, "support-of-python-cython-numpy-and-astropy-versions"]], "Survey Map Script": [[500, null]], "Survey panel plots": [[583, "survey-panel-plots"]], "TEMPORAL_MODEL_REGISTRY": [[270, null]], "TS map estimation": [[459, "ts-map-estimation"]], "TSMapEstimator": [[133, null]], "Table conversion": [[482, "table-conversion"]], "Task List": [[392, "task-list"]], "Task list": [[391, "task-list"], [393, "task-list"], [394, "task-list"], [395, "task-list"], [396, "task-list"], [397, "task-list"]], "Template spatial model": [[542, null]], "Template spectral model": [[563, null]], "TemplateNDSpatialModel": [[271, null]], "TemplateNDSpectralModel": [[272, null]], "TemplateNPredModel": [[273, null]], "TemplatePhaseCurveTemporalModel": [[274, null]], "TemplateSpatialModel": [[275, null]], "TemplateSpectralModel": [[276, null]], "Temporal models": [[489, "temporal-models"], [532, "temporal-models"]], "TemporalModel": [[277, null]], "Testing of plotting functions": [[380, "testing-of-plotting-functions"]], "The case of image and cube analysis": [[386, "the-case-of-image-and-cube-analysis"]], "The chi-squared value for each parameter of interest": [[466, "the-chi-squared-value-for-each-parameter-of-interest"]], "The gammapy-data repository": [[410, "the-gammapy-data-repository"]], "The gammapy-extra repository": [[410, "the-gammapy-extra-repository"]], "The index tables": [[515, "the-index-tables"]], "The reflected region finder": [[527, "the-reflected-region-finder"]], "The results for testing energy dependence": [[466, "the-results-for-testing-energy-dependence"]], "The results of the source signal above the background in each energy bin": [[466, "the-results-of-the-source-signal-above-the-background-in-each-energy-bin"]], "The setup": [[464, "the-setup"], [482, "the-setup"], [483, "the-setup"], [491, "the-setup"]], "Theta squared event distribution": [[496, "theta-squared-event-distribution"]], "Time": [[498, "time"]], "Time bin preparation": [[395, "time-bin-preparation"]], "Time bins": [[395, "time-bins"]], "Time differences": [[582, "time-differences"]], "Time format and scale": [[582, "time-format-and-scale"]], "Time handling in Gammapy": [[582, "time-handling-in-gammapy"]], "Time resolved spectroscopy algorithm": [[477, "time-resolved-spectroscopy-algorithm"]], "Time resolved spectroscopy estimator": [[477, null]], "Time variable source using a lightcurve": [[467, "time-variable-source-using-a-lightcurve"]], "TimeMapAxis": [[203, null], [486, "timemapaxis"]], "Timing Analysis": [[389, "timing-analysis"]], "TimmerKonig_lightcurve_simulator": [[289, null]], "Troubleshooting": [[415, null], [578, "troubleshooting"]], "Tutorial overview": [[466, "tutorial-overview"], [493, "tutorial-overview"], [495, "tutorial-overview"]], "Tutorials": [[400, "tutorials"], [498, null]], "Tutorials Overview": [[412, "tutorials-overview"]], "Type validation": [[407, "type-validation"]], "Types of supported datasets": [[514, "types-of-supported-datasets"]], "Unification of flux estimators?": [[404, "unification-of-flux-estimators"]], "UniformPrior": [[278, null]], "Unify calling interface for models": [[391, "unify-calling-interface-for-models"]], "Upsampling and downsampling non-spatial axes": [[531, "upsampling-and-downsampling-non-spatial-axes"]], "Use cases": [[408, "use-cases"]], "Use cases / scenarios": [[390, "use-cases-scenarios"]], "User guide": [[519, null]], "User perspective": [[387, "user-perspective"]], "Using Anaconda / Miniconda": [[413, "using-anaconda-miniconda"]], "Using Factory Methods": [[486, "using-factory-methods"]], "Using Gammapy": [[416, null]], "Using Gammapy IRFs": [[484, null]], "Using Mamba": [[413, "using-mamba"]], "Using YAML configuration files": [[502, "using-yaml-configuration-files"]], "Using YAML configuration files for setting/writing the Data Reduction parameters": [[456, "using-yaml-configuration-files-for-setting-writing-the-data-reduction-parameters"]], "Using data stored into your computer": [[456, "using-data-stored-into-your-computer"]], "Using gammapy.analysis": [[517, "using-gammapy-analysis"]], "Using gammapy.astro.darkmatter": [[506, "using-gammapy-astro-darkmatter"]], "Using gammapy.astro.source": [[509, "using-gammapy-astro-source"]], "Using gammapy.catalog": [[513, "using-gammapy-catalog"]], "Using gammapy.data": [[515, "using-gammapy-data"]], "Using gammapy.datasets": [[514, "using-gammapy-datasets"]], "Using gammapy.estimators": [[516, "using-gammapy-estimators"]], "Using gammapy.irf": [[523, "using-gammapy-irf"]], "Using gammapy.makers": [[526, "using-gammapy-makers"]], "Using gammapy.maps": [[530, "using-gammapy-maps"]], "Using gammapy.modeling": [[575, "using-gammapy-modeling"]], "Using masks": [[481, "using-masks"]], "Using other package managers": [[413, "using-other-package-managers"]], "Using pip": [[413, "using-pip"]], "Using regions": [[527, "using-regions"]], "Using the reflected background estimator": [[527, "using-the-reflected-background-estimator"]], "Utility functions": [[582, null]], "ValleeSpiral": [[38, null]], "Variables": [[1, "variables"], [2, "variables"], [3, "variables"], [4, "variables"], [5, "variables"], [7, "variables"], [8, "variables"], [10, "variables"], [13, "variables"], [13, "id11"]], "Velocity distributions": [[508, "velocity-distributions"]], "Venv Environments": [[411, "venv-environments"]], "Version 0.1": [[418, "version-0-1"]], "Version 0.10": [[418, "version-0-10"]], "Version 0.11": [[418, "version-0-11"]], "Version 0.12": [[418, "version-0-12"]], "Version 0.13": [[418, "version-0-13"]], "Version 0.14": [[418, "version-0-14"]], "Version 0.15": [[418, "version-0-15"]], "Version 0.16": [[418, "version-0-16"]], "Version 0.17": [[418, "version-0-17"]], "Version 0.18": [[418, "version-0-18"]], "Version 0.19": [[418, "version-0-19"]], "Version 0.2": [[418, "version-0-2"]], "Version 0.20": [[418, "version-0-20"]], "Version 0.20.1": [[418, "version-0-20-1"]], "Version 0.3": [[418, "version-0-3"]], "Version 0.4": [[418, "version-0-4"]], "Version 0.5": [[418, "version-0-5"]], "Version 0.6": [[418, "version-0-6"]], "Version 0.7": [[418, "version-0-7"]], "Version 0.8": [[418, "version-0-8"]], "Version 0.9": [[418, "version-0-9"]], "Version 1.0": [[418, "version-1-0"]], "Version 1.0.1": [[418, "version-1-0-1"]], "Version 1.0.2": [[418, "version-1-0-2"]], "Version 1.1": [[418, "version-1-1"]], "Version 1.2": [[418, "version-1-2"]], "Version 1.3": [[418, "version-1-3"]], "Version numbering": [[405, "version-numbering"]], "Virtual Environments": [[411, null]], "Visualing a RegionNDMap": [[531, "visualing-a-regionndmap"]], "Visualising the results": [[477, "visualising-the-results"]], "Visualization": [[583, null]], "Visualizing and Plotting": [[486, "visualizing-and-plotting"]], "WStat : Poisson data with background measurement": [[579, "wstat-poisson-data-with-background-measurement"]], "WStat counts statistic": [[580, "wstat-counts-statistic"]], "WStatCountsStatistic": [[290, null]], "WcsGeom": [[204, null]], "WcsMap": [[205, null]], "WcsNDMap": [[206, null]], "What checks and conversions should I do for inputs?": [[380, "what-checks-and-conversions-should-i-do-for-inputs"]], "What is a PIG?": [[385, "what-is-a-pig"]], "What is this?": [[383, "what-is-this"]], "What next?": [[453, "what-next"], [455, "what-next"], [459, "what-next"], [465, "what-next"], [472, "what-next"], [504, "what-next"]], "What others have": [[390, "what-others-have"]], "What we have": [[388, "what-we-have"], [396, "what-we-have"], [404, "what-we-have"]], "What\u2019s new?": [[420, "what-s-new"], [421, "what-s-new"], [422, "what-s-new"], [423, "what-s-new"], [424, "what-s-new"], [425, "what-s-new"], [426, "what-s-new"], [427, "what-s-new"], [428, "what-s-new"], [429, "what-s-new"], [430, "what-s-new"], [431, "what-s-new"], [433, "what-s-new"], [434, "what-s-new"], [436, "what-s-new"], [437, "what-s-new"], [438, "what-s-new"], [439, "what-s-new"], [440, "what-s-new"], [441, "what-s-new"]], "What\u2019s next": [[502, "whats-next"]], "What\u2019s next?": [[456, "whats-next"]], "Where should I import from?": [[380, "where-should-i-import-from"]], "WobbleRegionsFinder": [[181, null]], "Working with event lists": [[515, "working-with-event-lists"]], "Write your own CLI": [[578, "write-your-own-cli"]], "Writing Maps": [[486, "writing-maps"]], "Writing a PIG": [[385, "writing-a-pig"]], "Writing and reading a RegionNDMap to/from a FITS file": [[531, "writing-and-reading-a-regionndmap-to-from-a-fits-file"]], "Writing event lists and GTIs to file": [[515, "writing-event-lists-and-gtis-to-file"]], "YAML representation": [[534, "yaml-representation"], [535, "yaml-representation"], [536, "yaml-representation"], [537, "yaml-representation"], [538, "yaml-representation"], [539, "yaml-representation"], [540, "yaml-representation"], [541, "yaml-representation"], [542, "yaml-representation"], [544, "yaml-representation"], [545, "yaml-representation"], [546, "yaml-representation"], [547, "yaml-representation"], [548, "yaml-representation"], [549, "yaml-representation"], [550, "yaml-representation"], [551, "yaml-representation"], [552, "yaml-representation"], [553, "yaml-representation"], [554, "yaml-representation"], [555, "yaml-representation"], [556, "yaml-representation"], [557, "yaml-representation"], [558, "yaml-representation"], [559, "yaml-representation"], [560, "yaml-representation"], [561, "yaml-representation"], [562, "yaml-representation"], [563, "yaml-representation"], [565, "yaml-representation"], [566, "yaml-representation"], [567, "yaml-representation"], [568, "yaml-representation"], [569, "yaml-representation"], [570, "yaml-representation"], [571, "yaml-representation"], [572, "yaml-representation"], [573, "yaml-representation"]], "YusifovKucuk2004": [[39, null]], "YusifovKucuk2004B": [[40, null]], "ZhaoProfile": [[27, null]], "absolute_time": [[361, null]], "add_colorbar": [[368, null]], "add_observed_parameters": [[41, null]], "add_pulsar_parameters": [[42, null]], "add_pwn_parameters": [[43, null]], "add_snr_parameters": [[44, null]], "analysis": [[11, "gammapy-analysis"]], "analysis - High level interface": [[0, null]], "annotate_heatmap": [[369, null]], "apply_edisp": [[111, null], [116, null]], "arbitrary type input and validation": [[407, "arbitrary-type-input-and-validation"]], "as a function of of true energy and offset angle (EDISP_2D)": [[522, "as-a-function-of-of-true-energy-and-offset-angle-gadf-edisp-2d"]], "as a function of reconstructed energy and detector coordinates (BKG_3D)": [[521, "as-a-function-of-reconstructed-energy-and-detector-coordinates-gadf-bkg-3d"]], "as a function of reconstructed energy and offset angle, radially symmetric (BKG_2D)": [[521, "as-a-function-of-reconstructed-energy-and-offset-angle-radially-symmetric-gadf-bkg-2d"]], "as a function of true energy (RMF)": [[522, "as-a-function-of-true-energy-gadf-ogip-rmf"]], "as a function of true energy and offset angle (AEFF_2D)": [[520, "as-a-function-of-true-energy-and-offset-angle-gadf-aeff-2d"]], "assert_quantity_allclose": [[355, null]], "assert_skycoord_allclose": [[356, null]], "assert_time_allclose": [[357, null]], "astro - Astrophysics": [[1, null]], "cartesian": [[308, null]], "cash": [[291, null]], "cash_sum_cython": [[292, null]], "catalog - Source catalogs": [[2, null]], "check": [[11, "gammapy-check"]], "codemeta.json": [[406, "codemeta-json"]], "colormap_hess": [[370, null]], "colormap_milagro": [[371, null]], "combine_flux_maps": [[134, null]], "combine_significance_maps": [[135, null]], "compound_region_to_regions": [[338, null]], "compute_chisq": [[293, null]], "compute_flux_doubling": [[294, null]], "compute_fpp": [[295, null]], "compute_fvar": [[296, null]], "compute_lightcurve_discrete_correlation": [[136, null]], "compute_lightcurve_doublingtime": [[137, null]], "compute_lightcurve_fpp": [[138, null]], "compute_lightcurve_fvar": [[139, null]], "config": [[11, "gammapy-analysis-config"], [11, "gammapy-workflow-config"]], "containment_radius": [[207, null]], "containment_region": [[208, null]], "create_cosmic_ray_spectral_model": [[279, null]], "create_crab_spectral_model": [[280, null]], "create_empty_map_dataset_from_irfs": [[112, null]], "create_fermi_isotropic_diffuse_model": [[281, null]], "create_map_dataset_from_observation": [[113, null]], "create_map_dataset_geoms": [[114, null]], "cstat": [[297, null]], "data": [[407, "data"]], "data - DL3 data and observations": [[3, null]], "datasets": [[11, "gammapy-download-datasets"]], "datasets - Reduced datasets": [[4, null]], "discrete_correlation": [[298, null]], "docs.gammapy.org": [[410, "docs-gammapy-org"]], "download": [[11, "gammapy-download"]], "draw": [[330, null]], "earth_location_from_dict": [[317, null]], "estimate_exposure_reco_energy": [[140, null]], "estimators - High level estimators": [[5, null]], "f_cash_root_cython": [[299, null]], "find_peaks": [[141, null]], "find_peaks_in_flux_map": [[142, null]], "fov_to_sky": [[309, null]], "from_yaml": [[343, null]], "galactic": [[310, null]], "gamLike": [[506, "gamlike"]], "gammapy": [[11, "gammapy"]], "gammapy.analysis Package": [[0, "module-gammapy.analysis"]], "gammapy.astro.darkmatter Package": [[1, "module-gammapy.astro.darkmatter"]], "gammapy.astro.population Package": [[1, "module-gammapy.astro.population"]], "gammapy.astro.source Package": [[1, "module-gammapy.astro.source"]], "gammapy.catalog Package": [[2, "module-gammapy.catalog"]], "gammapy.data Package": [[3, "module-gammapy.data"]], "gammapy.datasets Package": [[4, "module-gammapy.datasets"]], "gammapy.datasets.utils Module": [[4, "module-gammapy.datasets.utils"]], "gammapy.estimators Package": [[5, "module-gammapy.estimators"]], "gammapy.estimators.utils Module": [[5, "module-gammapy.estimators.utils"]], "gammapy.irf Package": [[7, "module-gammapy.irf"]], "gammapy.makers Package": [[8, "module-gammapy.makers"]], "gammapy.makers.utils Module": [[8, "module-gammapy.makers.utils"]], "gammapy.maps Package": [[9, "module-gammapy.maps"]], "gammapy.modeling Package": [[10, "module-gammapy.modeling"]], "gammapy.modeling.models Package": [[10, "module-gammapy.modeling.models"]], "gammapy.modeling.models.utils Module": [[10, "module-gammapy.modeling.models.utils"]], "gammapy.org": [[410, "gammapy-org"]], "gammapy.stats Package": [[12, "module-gammapy.stats"]], "gammapy.utils.cluster Module": [[13, "module-gammapy.utils.cluster"]], "gammapy.utils.coordinates Package": [[13, "module-gammapy.utils.coordinates"]], "gammapy.utils.fits Module": [[13, "module-gammapy.utils.fits"]], "gammapy.utils.integrate Module": [[13, "module-gammapy.utils.integrate"]], "gammapy.utils.interpolation Module": [[13, "module-gammapy.utils.interpolation"]], "gammapy.utils.parallel Module": [[13, "module-gammapy.utils.parallel"]], "gammapy.utils.random Package": [[13, "module-gammapy.utils.random"]], "gammapy.utils.regions Module": [[13, "module-gammapy.utils.regions"]], "gammapy.utils.scripts Module": [[13, "module-gammapy.utils.scripts"]], "gammapy.utils.table Module": [[13, "module-gammapy.utils.table"]], "gammapy.utils.testing Module": [[13, "module-gammapy.utils.testing"]], "gammapy.utils.time Module": [[13, "module-gammapy.utils.time"]], "gammapy.utils.units Module": [[13, "module-gammapy.utils.units"]], "gammapy.visualization Package": [[14, "module-gammapy.visualization"]], "get_combined_flux_maps": [[143, null]], "get_combined_significance_maps": [[144, null]], "get_images_paths": [[344, null]], "get_irfs_features": [[96, null]], "get_random_state": [[331, null]], "get_rebinned_axis": [[145, null]], "get_wstat_gof_terms": [[300, null]], "get_wstat_mu_bkg": [[301, null]], "hierarchical_clustering": [[305, null]], "hstack_columns": [[350, null]], "info": [[11, "gammapy-info"]], "integrate_spectrum": [[282, null]], "interpolate_profile": [[320, null]], "interpolation_scale": [[321, null]], "irf - Instrument response functions": [[7, null]], "load_irf_dict_from_file": [[167, null]], "logging": [[11, "gammapy-check-logging"]], "make_base_catalog_galactic": [[45, null]], "make_catalog_random_positions_cube": [[46, null]], "make_catalog_random_positions_sphere": [[47, null]], "make_concentric_annulus_sky_regions": [[339, null]], "make_counts_rad_max": [[182, null]], "make_edisp_kernel_map": [[183, null]], "make_edisp_map": [[184, null]], "make_effective_livetime_map": [[185, null]], "make_map_background_irf": [[186, null]], "make_map_exposure_true_energy": [[187, null]], "make_observation_time_map": [[188, null]], "make_orthogonal_rectangle_sky_regions": [[340, null]], "make_path": [[345, null]], "make_psf_map": [[189, null]], "make_theta_squared_table": [[190, null]], "makers - Data reduction": [[8, null]], "maps - Sky maps": [[9, null]], "modeling - Models and fitting": [[10, null]], "motion_since_birth": [[311, null]], "mpl_plot_check": [[358, null]], "multiprocessing_manager": [[327, null]], "norm_bounds_cython": [[302, null]], "normalize": [[332, null]], "notebooks": [[11, "gammapy-download-notebooks"]], "observatory_locations": [[97, null]], "pdf": [[333, null]], "plot_contour_line": [[372, null]], "plot_distribution": [[373, null]], "plot_heatmap": [[374, null]], "plot_map_rgb": [[375, null]], "plot_npred_signal": [[376, null]], "plot_spectrum_datasets_off_regions": [[377, null]], "plot_theta_squared_table": [[378, null]], "polar": [[312, null]], "pydantic": [[407, "pydantic"]], "radial_distributions": [[48, null]], "read_hermes_cube": [[283, null], [285, null]], "read_yaml": [[346, null]], "recursive_merge_dicts": [[347, null]], "region_to_frame": [[341, null]], "regions_to_compound_region": [[342, null]], "requires_data": [[359, null]], "requires_dependency": [[360, null]], "resample_energy_edges": [[146, null]], "run": [[11, "gammapy-analysis-run"], [11, "gammapy-workflow-run"]], "run_multiprocessing": [[328, null]], "sample_powerlaw": [[334, null]], "sample_sphere": [[335, null]], "sample_sphere_distance": [[336, null]], "sample_times": [[337, null]], "scale_plot_flux": [[284, null]], "scripts - Command line tools": [[11, null]], "select_nested_models": [[286, null]], "sky_to_fov": [[313, null]], "split_dataset": [[115, null], [117, null]], "standard_scaler": [[306, null]], "standardise_unit": [[365, null]], "stat_profile_ul_scipy": [[287, null]], "stats - Statistics": [[12, null]], "structure_function": [[303, null]], "table_row_to_dict": [[351, null]], "table_standardise_units_copy": [[352, null]], "table_standardise_units_inplace": [[353, null]], "the base class": [[407, "the-base-class"]], "time_ref_from_dict": [[362, null]], "time_ref_to_dict": [[363, null]], "time_relative_to_ref": [[364, null]], "to_yaml": [[348, null]], "trapz_loglog": [[318, null]], "unit_from_fits_image_hdu": [[366, null]], "utils - Utilities": [[13, null]], "velocity_distributions": [[49, null]], "velocity_glon_glat": [[314, null]], "visualization - Plotting features": [[14, null]], "workflow": [[11, "gammapy-workflow"]], "write_yaml": [[349, null]], "wstat": [[304, null]]}, "docnames": ["api-reference/analysis", "api-reference/astro", "api-reference/catalog", "api-reference/data", "api-reference/datasets", "api-reference/estimators", "api-reference/index", "api-reference/irf", "api-reference/makers", "api-reference/maps", "api-reference/modeling", "api-reference/scripts", "api-reference/stats", "api-reference/utils", "api-reference/visualization", "api/gammapy.analysis.Analysis", "api/gammapy.analysis.AnalysisConfig", "api/gammapy.astro.darkmatter.BurkertProfile", "api/gammapy.astro.darkmatter.DMProfile", "api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel", "api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel", "api/gammapy.astro.darkmatter.EinastoProfile", "api/gammapy.astro.darkmatter.IsothermalProfile", "api/gammapy.astro.darkmatter.JFactory", "api/gammapy.astro.darkmatter.MooreProfile", "api/gammapy.astro.darkmatter.NFWProfile", "api/gammapy.astro.darkmatter.PrimaryFlux", "api/gammapy.astro.darkmatter.ZhaoProfile", "api/gammapy.astro.population.CaseBattacharya1998", "api/gammapy.astro.population.Exponential", "api/gammapy.astro.population.FaucherKaspi2006", "api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal", "api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian", "api/gammapy.astro.population.FaucherSpiral", "api/gammapy.astro.population.LogSpiral", "api/gammapy.astro.population.Lorimer2006", "api/gammapy.astro.population.Paczynski1990", "api/gammapy.astro.population.Paczynski1990Velocity", "api/gammapy.astro.population.ValleeSpiral", "api/gammapy.astro.population.YusifovKucuk2004", "api/gammapy.astro.population.YusifovKucuk2004B", "api/gammapy.astro.population.add_observed_parameters", "api/gammapy.astro.population.add_pulsar_parameters", "api/gammapy.astro.population.add_pwn_parameters", "api/gammapy.astro.population.add_snr_parameters", "api/gammapy.astro.population.make_base_catalog_galactic", "api/gammapy.astro.population.make_catalog_random_positions_cube", "api/gammapy.astro.population.make_catalog_random_positions_sphere", "api/gammapy.astro.population.radial_distributions", "api/gammapy.astro.population.velocity_distributions", "api/gammapy.astro.source.PWN", "api/gammapy.astro.source.Pulsar", "api/gammapy.astro.source.SNR", "api/gammapy.astro.source.SNRTrueloveMcKee", "api/gammapy.astro.source.SimplePulsar", "api/gammapy.catalog.CATALOG_REGISTRY", "api/gammapy.catalog.SourceCatalog", "api/gammapy.catalog.SourceCatalog1LHAASO", "api/gammapy.catalog.SourceCatalog2FHL", "api/gammapy.catalog.SourceCatalog2HWC", "api/gammapy.catalog.SourceCatalog2PC", "api/gammapy.catalog.SourceCatalog3FGL", "api/gammapy.catalog.SourceCatalog3FHL", "api/gammapy.catalog.SourceCatalog3HWC", "api/gammapy.catalog.SourceCatalog3PC", "api/gammapy.catalog.SourceCatalog4FGL", "api/gammapy.catalog.SourceCatalogGammaCat", "api/gammapy.catalog.SourceCatalogHGPS", "api/gammapy.catalog.SourceCatalogLargeScaleHGPS", "api/gammapy.catalog.SourceCatalogObject", "api/gammapy.catalog.SourceCatalogObject1LHAASO", "api/gammapy.catalog.SourceCatalogObject2FHL", "api/gammapy.catalog.SourceCatalogObject2HWC", "api/gammapy.catalog.SourceCatalogObject2PC", "api/gammapy.catalog.SourceCatalogObject3FGL", "api/gammapy.catalog.SourceCatalogObject3FHL", "api/gammapy.catalog.SourceCatalogObject3HWC", "api/gammapy.catalog.SourceCatalogObject3PC", "api/gammapy.catalog.SourceCatalogObject4FGL", "api/gammapy.catalog.SourceCatalogObjectGammaCat", "api/gammapy.catalog.SourceCatalogObjectHGPS", "api/gammapy.catalog.SourceCatalogObjectHGPSComponent", "api/gammapy.data.DataStore", "api/gammapy.data.EventList", "api/gammapy.data.EventListMetaData", "api/gammapy.data.FixedPointingInfo", "api/gammapy.data.GTI", "api/gammapy.data.HDUIndexTable", "api/gammapy.data.Observation", "api/gammapy.data.ObservationFilter", "api/gammapy.data.ObservationMetaData", "api/gammapy.data.ObservationTable", "api/gammapy.data.Observations", "api/gammapy.data.ObservationsEventsSampler", "api/gammapy.data.PointingInfo", "api/gammapy.data.PointingMode", "api/gammapy.data.get_irfs_features", "api/gammapy.data.observatory_locations", "api/gammapy.datasets.DATASET_REGISTRY", "api/gammapy.datasets.Dataset", "api/gammapy.datasets.Datasets", "api/gammapy.datasets.FluxPointsDataset", "api/gammapy.datasets.MapDataset", "api/gammapy.datasets.MapDatasetEventSampler", "api/gammapy.datasets.MapDatasetMetaData", "api/gammapy.datasets.MapDatasetOnOff", "api/gammapy.datasets.OGIPDatasetReader", "api/gammapy.datasets.OGIPDatasetWriter", "api/gammapy.datasets.ObservationEventSampler", "api/gammapy.datasets.SpectrumDataset", "api/gammapy.datasets.SpectrumDatasetOnOff", "api/gammapy.datasets.apply_edisp", "api/gammapy.datasets.create_empty_map_dataset_from_irfs", "api/gammapy.datasets.create_map_dataset_from_observation", "api/gammapy.datasets.create_map_dataset_geoms", "api/gammapy.datasets.split_dataset", "api/gammapy.datasets.utils.apply_edisp", "api/gammapy.datasets.utils.split_dataset", "api/gammapy.estimators.ASmoothMapEstimator", "api/gammapy.estimators.ESTIMATOR_REGISTRY", "api/gammapy.estimators.EnergyDependentMorphologyEstimator", "api/gammapy.estimators.Estimator", "api/gammapy.estimators.ExcessMapEstimator", "api/gammapy.estimators.FluxMaps", "api/gammapy.estimators.FluxMetaData", "api/gammapy.estimators.FluxPoints", "api/gammapy.estimators.FluxPointsEstimator", "api/gammapy.estimators.FluxProfileEstimator", "api/gammapy.estimators.ImageProfile", "api/gammapy.estimators.ImageProfileEstimator", "api/gammapy.estimators.LightCurveEstimator", "api/gammapy.estimators.ParameterEstimator", "api/gammapy.estimators.SensitivityEstimator", "api/gammapy.estimators.TSMapEstimator", "api/gammapy.estimators.utils.combine_flux_maps", "api/gammapy.estimators.utils.combine_significance_maps", "api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation", "api/gammapy.estimators.utils.compute_lightcurve_doublingtime", "api/gammapy.estimators.utils.compute_lightcurve_fpp", "api/gammapy.estimators.utils.compute_lightcurve_fvar", "api/gammapy.estimators.utils.estimate_exposure_reco_energy", "api/gammapy.estimators.utils.find_peaks", "api/gammapy.estimators.utils.find_peaks_in_flux_map", "api/gammapy.estimators.utils.get_combined_flux_maps", "api/gammapy.estimators.utils.get_combined_significance_maps", "api/gammapy.estimators.utils.get_rebinned_axis", "api/gammapy.estimators.utils.resample_energy_edges", "api/gammapy.irf.Background2D", "api/gammapy.irf.Background3D", "api/gammapy.irf.BackgroundIRF", "api/gammapy.irf.EDispKernel", "api/gammapy.irf.EDispKernelMap", "api/gammapy.irf.EDispMap", "api/gammapy.irf.EffectiveAreaTable2D", "api/gammapy.irf.EnergyDependentMultiGaussPSF", "api/gammapy.irf.EnergyDispersion2D", "api/gammapy.irf.FoVAlignment", "api/gammapy.irf.IRF", "api/gammapy.irf.IRFMap", "api/gammapy.irf.IRF_REGISTRY", "api/gammapy.irf.PSF3D", "api/gammapy.irf.PSFKernel", "api/gammapy.irf.PSFKing", "api/gammapy.irf.PSFMap", "api/gammapy.irf.ParametricPSF", "api/gammapy.irf.RadMax2D", "api/gammapy.irf.RecoPSFMap", "api/gammapy.irf.load_irf_dict_from_file", "api/gammapy.makers.AdaptiveRingBackgroundMaker", "api/gammapy.makers.DatasetsMaker", "api/gammapy.makers.FoVBackgroundMaker", "api/gammapy.makers.MAKER_REGISTRY", "api/gammapy.makers.Maker", "api/gammapy.makers.MapDatasetMaker", "api/gammapy.makers.PhaseBackgroundMaker", "api/gammapy.makers.ReflectedRegionsBackgroundMaker", "api/gammapy.makers.ReflectedRegionsFinder", "api/gammapy.makers.RegionsFinder", "api/gammapy.makers.RingBackgroundMaker", "api/gammapy.makers.SafeMaskMaker", "api/gammapy.makers.SpectrumDatasetMaker", "api/gammapy.makers.WobbleRegionsFinder", "api/gammapy.makers.utils.make_counts_rad_max", "api/gammapy.makers.utils.make_edisp_kernel_map", "api/gammapy.makers.utils.make_edisp_map", "api/gammapy.makers.utils.make_effective_livetime_map", "api/gammapy.makers.utils.make_map_background_irf", "api/gammapy.makers.utils.make_map_exposure_true_energy", "api/gammapy.makers.utils.make_observation_time_map", "api/gammapy.makers.utils.make_psf_map", "api/gammapy.makers.utils.make_theta_squared_table", "api/gammapy.maps.Geom", "api/gammapy.maps.HpxGeom", "api/gammapy.maps.HpxMap", "api/gammapy.maps.HpxNDMap", "api/gammapy.maps.LabelMapAxis", "api/gammapy.maps.Map", "api/gammapy.maps.MapAxes", "api/gammapy.maps.MapAxis", "api/gammapy.maps.MapCoord", "api/gammapy.maps.Maps", "api/gammapy.maps.RegionGeom", "api/gammapy.maps.RegionNDMap", "api/gammapy.maps.TimeMapAxis", "api/gammapy.maps.WcsGeom", "api/gammapy.maps.WcsMap", "api/gammapy.maps.WcsNDMap", "api/gammapy.maps.containment_radius", "api/gammapy.maps.containment_region", "api/gammapy.modeling.Covariance", "api/gammapy.modeling.CovarianceResult", "api/gammapy.modeling.Fit", "api/gammapy.modeling.FitResult", "api/gammapy.modeling.OptimizeResult", "api/gammapy.modeling.Parameter", "api/gammapy.modeling.Parameters", "api/gammapy.modeling.PriorParameter", "api/gammapy.modeling.PriorParameters", "api/gammapy.modeling.models.BrokenPowerLawSpectralModel", "api/gammapy.modeling.models.CompoundSpectralModel", "api/gammapy.modeling.models.ConstantFluxSpatialModel", "api/gammapy.modeling.models.ConstantSpatialModel", "api/gammapy.modeling.models.ConstantSpectralModel", "api/gammapy.modeling.models.ConstantTemporalModel", "api/gammapy.modeling.models.DatasetModels", "api/gammapy.modeling.models.DiskSpatialModel", "api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel", "api/gammapy.modeling.models.EBL_DATA_BUILTIN", "api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel", "api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel", "api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel", "api/gammapy.modeling.models.ExpDecayTemporalModel", "api/gammapy.modeling.models.FoVBackgroundModel", "api/gammapy.modeling.models.GaussianPrior", "api/gammapy.modeling.models.GaussianSpatialModel", "api/gammapy.modeling.models.GaussianSpectralModel", "api/gammapy.modeling.models.GaussianTemporalModel", "api/gammapy.modeling.models.GeneralizedGaussianSpatialModel", "api/gammapy.modeling.models.GeneralizedGaussianTemporalModel", "api/gammapy.modeling.models.LightCurveTemplateTemporalModel", "api/gammapy.modeling.models.LinearTemporalModel", "api/gammapy.modeling.models.LogParabolaNormSpectralModel", "api/gammapy.modeling.models.LogParabolaSpectralModel", "api/gammapy.modeling.models.MODEL_REGISTRY", "api/gammapy.modeling.models.MeyerCrabSpectralModel", "api/gammapy.modeling.models.Model", "api/gammapy.modeling.models.ModelBase", "api/gammapy.modeling.models.Models", "api/gammapy.modeling.models.NaimaSpectralModel", "api/gammapy.modeling.models.PiecewiseNormSpatialModel", "api/gammapy.modeling.models.PiecewiseNormSpectralModel", "api/gammapy.modeling.models.PointSpatialModel", "api/gammapy.modeling.models.PowerLaw2SpectralModel", "api/gammapy.modeling.models.PowerLawNormSpectralModel", "api/gammapy.modeling.models.PowerLawSpectralModel", "api/gammapy.modeling.models.PowerLawTemporalModel", "api/gammapy.modeling.models.Prior", "api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY", "api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY", "api/gammapy.modeling.models.ScaleSpectralModel", "api/gammapy.modeling.models.Shell2SpatialModel", "api/gammapy.modeling.models.ShellSpatialModel", "api/gammapy.modeling.models.SineTemporalModel", "api/gammapy.modeling.models.SkyModel", "api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel", "api/gammapy.modeling.models.SpatialModel", "api/gammapy.modeling.models.SpectralModel", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel", "api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY", "api/gammapy.modeling.models.TemplateNDSpatialModel", "api/gammapy.modeling.models.TemplateNDSpectralModel", "api/gammapy.modeling.models.TemplateNPredModel", "api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel", "api/gammapy.modeling.models.TemplateSpatialModel", "api/gammapy.modeling.models.TemplateSpectralModel", "api/gammapy.modeling.models.TemporalModel", "api/gammapy.modeling.models.UniformPrior", "api/gammapy.modeling.models.create_cosmic_ray_spectral_model", "api/gammapy.modeling.models.create_crab_spectral_model", "api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model", "api/gammapy.modeling.models.integrate_spectrum", "api/gammapy.modeling.models.read_hermes_cube", "api/gammapy.modeling.models.scale_plot_flux", "api/gammapy.modeling.models.utils.read_hermes_cube", "api/gammapy.modeling.select_nested_models", "api/gammapy.modeling.stat_profile_ul_scipy", "api/gammapy.stats.CashCountsStatistic", "api/gammapy.stats.TimmerKonig_lightcurve_simulator", "api/gammapy.stats.WStatCountsStatistic", "api/gammapy.stats.cash", "api/gammapy.stats.cash_sum_cython", "api/gammapy.stats.compute_chisq", "api/gammapy.stats.compute_flux_doubling", "api/gammapy.stats.compute_fpp", "api/gammapy.stats.compute_fvar", "api/gammapy.stats.cstat", "api/gammapy.stats.discrete_correlation", "api/gammapy.stats.f_cash_root_cython", "api/gammapy.stats.get_wstat_gof_terms", "api/gammapy.stats.get_wstat_mu_bkg", "api/gammapy.stats.norm_bounds_cython", "api/gammapy.stats.structure_function", "api/gammapy.stats.wstat", "api/gammapy.utils.cluster.hierarchical_clustering", "api/gammapy.utils.cluster.standard_scaler", "api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER", "api/gammapy.utils.coordinates.cartesian", "api/gammapy.utils.coordinates.fov_to_sky", "api/gammapy.utils.coordinates.galactic", "api/gammapy.utils.coordinates.motion_since_birth", "api/gammapy.utils.coordinates.polar", "api/gammapy.utils.coordinates.sky_to_fov", "api/gammapy.utils.coordinates.velocity_glon_glat", "api/gammapy.utils.fits.HDULocation", "api/gammapy.utils.fits.LazyFitsData", "api/gammapy.utils.fits.earth_location_from_dict", "api/gammapy.utils.integrate.trapz_loglog", "api/gammapy.utils.interpolation.ScaledRegularGridInterpolator", "api/gammapy.utils.interpolation.interpolate_profile", "api/gammapy.utils.interpolation.interpolation_scale", "api/gammapy.utils.parallel.BACKEND_DEFAULT", "api/gammapy.utils.parallel.METHOD_DEFAULT", "api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT", "api/gammapy.utils.parallel.N_JOBS_DEFAULT", "api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT", "api/gammapy.utils.parallel.multiprocessing_manager", "api/gammapy.utils.parallel.run_multiprocessing", "api/gammapy.utils.random.InverseCDFSampler", "api/gammapy.utils.random.draw", "api/gammapy.utils.random.get_random_state", "api/gammapy.utils.random.normalize", "api/gammapy.utils.random.pdf", "api/gammapy.utils.random.sample_powerlaw", "api/gammapy.utils.random.sample_sphere", "api/gammapy.utils.random.sample_sphere_distance", "api/gammapy.utils.random.sample_times", "api/gammapy.utils.regions.compound_region_to_regions", "api/gammapy.utils.regions.make_concentric_annulus_sky_regions", "api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions", "api/gammapy.utils.regions.region_to_frame", "api/gammapy.utils.regions.regions_to_compound_region", "api/gammapy.utils.scripts.from_yaml", "api/gammapy.utils.scripts.get_images_paths", "api/gammapy.utils.scripts.make_path", "api/gammapy.utils.scripts.read_yaml", "api/gammapy.utils.scripts.recursive_merge_dicts", "api/gammapy.utils.scripts.to_yaml", "api/gammapy.utils.scripts.write_yaml", "api/gammapy.utils.table.hstack_columns", "api/gammapy.utils.table.table_row_to_dict", "api/gammapy.utils.table.table_standardise_units_copy", "api/gammapy.utils.table.table_standardise_units_inplace", "api/gammapy.utils.testing.Checker", "api/gammapy.utils.testing.assert_quantity_allclose", "api/gammapy.utils.testing.assert_skycoord_allclose", "api/gammapy.utils.testing.assert_time_allclose", "api/gammapy.utils.testing.mpl_plot_check", "api/gammapy.utils.testing.requires_data", "api/gammapy.utils.testing.requires_dependency", "api/gammapy.utils.time.absolute_time", "api/gammapy.utils.time.time_ref_from_dict", "api/gammapy.utils.time.time_ref_to_dict", "api/gammapy.utils.time.time_relative_to_ref", "api/gammapy.utils.units.standardise_unit", "api/gammapy.utils.units.unit_from_fits_image_hdu", "api/gammapy.visualization.MapPanelPlotter", "api/gammapy.visualization.add_colorbar", "api/gammapy.visualization.annotate_heatmap", "api/gammapy.visualization.colormap_hess", "api/gammapy.visualization.colormap_milagro", "api/gammapy.visualization.plot_contour_line", "api/gammapy.visualization.plot_distribution", "api/gammapy.visualization.plot_heatmap", "api/gammapy.visualization.plot_map_rgb", "api/gammapy.visualization.plot_npred_signal", "api/gammapy.visualization.plot_spectrum_datasets_off_regions", "api/gammapy.visualization.plot_theta_squared_table", "development/dependencies", "development/dev_howto", "development/doc_howto", "development/index", "development/intro", "development/pigs/index", "development/pigs/pig-001", "development/pigs/pig-002", "development/pigs/pig-003", "development/pigs/pig-004", "development/pigs/pig-005", "development/pigs/pig-006", "development/pigs/pig-007", "development/pigs/pig-008", "development/pigs/pig-009", "development/pigs/pig-010", "development/pigs/pig-011", "development/pigs/pig-012", "development/pigs/pig-013", "development/pigs/pig-014", "development/pigs/pig-016", "development/pigs/pig-018", "development/pigs/pig-019", "development/pigs/pig-020", "development/pigs/pig-021", "development/pigs/pig-022", "development/pigs/pig-023", "development/pigs/pig-024", "development/pigs/pig-025", "development/pigs/pig-026", "development/release", "development/setup", "getting-started/environments", "getting-started/index", "getting-started/install", "getting-started/quickstart", "getting-started/troubleshooting", "getting-started/usage", "index", "release-notes/index", "release-notes/v0.1", "release-notes/v0.10", "release-notes/v0.11", "release-notes/v0.12", "release-notes/v0.13", "release-notes/v0.14", "release-notes/v0.15", "release-notes/v0.16", "release-notes/v0.17", "release-notes/v0.18", "release-notes/v0.18.1", "release-notes/v0.18.2", "release-notes/v0.19", "release-notes/v0.2", "release-notes/v0.20", "release-notes/v0.20.1", "release-notes/v0.3", "release-notes/v0.4", "release-notes/v0.5", "release-notes/v0.6", "release-notes/v0.7", "release-notes/v0.8", "release-notes/v0.9", "release-notes/v1.0", "release-notes/v1.0.1", "release-notes/v1.0.2", "release-notes/v1.1", "release-notes/v1.2", "release-notes/v1.3", "release-notes/v2.0", "sg_execution_times", "tutorials/analysis-1d/cta_sensitivity", "tutorials/analysis-1d/ebl", "tutorials/analysis-1d/extended_source_spectral_analysis", "tutorials/analysis-1d/sed_fitting", "tutorials/analysis-1d/sg_execution_times", "tutorials/analysis-1d/spectral_analysis", "tutorials/analysis-1d/spectral_analysis_hli", "tutorials/analysis-1d/spectral_analysis_rad_max", "tutorials/analysis-1d/spectrum_simulation", "tutorials/analysis-2d/detect", "tutorials/analysis-2d/modeling_2D", "tutorials/analysis-2d/ring_background", "tutorials/analysis-2d/sg_execution_times", "tutorials/analysis-3d/analysis_3d", "tutorials/analysis-3d/analysis_mwl", "tutorials/analysis-3d/cta_data_analysis", "tutorials/analysis-3d/energy_dependent_estimation", "tutorials/analysis-3d/event_sampling", "tutorials/analysis-3d/event_sampling_nrg_depend_models", "tutorials/analysis-3d/flux_profiles", "tutorials/analysis-3d/sg_execution_times", "tutorials/analysis-3d/simulate_3d", "tutorials/analysis-time/light_curve", "tutorials/analysis-time/light_curve_flare", "tutorials/analysis-time/light_curve_simulation", "tutorials/analysis-time/pulsar_analysis", "tutorials/analysis-time/sg_execution_times", "tutorials/analysis-time/time_resolved_spectroscopy", "tutorials/analysis-time/variability_estimation", "tutorials/api/astro_dark_matter", "tutorials/api/catalog", "tutorials/api/datasets", "tutorials/api/estimators", "tutorials/api/fitting", "tutorials/api/irfs", "tutorials/api/makers", "tutorials/api/maps", "tutorials/api/mask_maps", "tutorials/api/model_management", "tutorials/api/models", "tutorials/api/observation_clustering", "tutorials/api/priors", "tutorials/api/sg_execution_times", "tutorials/data/cta", "tutorials/data/fermi_lat", "tutorials/data/hawc", "tutorials/data/hess", "tutorials/data/sg_execution_times", "tutorials/index", "tutorials/scripts/sg_execution_times", "tutorials/scripts/survey_map", "tutorials/sg_execution_times", "tutorials/starting/analysis_1", "tutorials/starting/analysis_2", "tutorials/starting/overview", "tutorials/starting/sg_execution_times", "user-guide/astro/darkmatter/index", "user-guide/astro/index", "user-guide/astro/population/index", "user-guide/astro/source/index", "user-guide/astro/source/pulsar", "user-guide/astro/source/pwn", "user-guide/astro/source/snr", "user-guide/catalog", "user-guide/datasets/index", "user-guide/dl3", "user-guide/estimators", "user-guide/hli", "user-guide/howto", "user-guide/index", "user-guide/irf/aeff", "user-guide/irf/bkg", "user-guide/irf/edisp", "user-guide/irf/index", "user-guide/irf/psf", "user-guide/makers/fov", "user-guide/makers/index", "user-guide/makers/reflected", "user-guide/makers/ring", "user-guide/maps/hpxmap", "user-guide/maps/index", "user-guide/maps/regionmap", "user-guide/model-gallery/index", "user-guide/model-gallery/sg_execution_times", "user-guide/model-gallery/spatial/plot_constant", "user-guide/model-gallery/spatial/plot_disk", "user-guide/model-gallery/spatial/plot_gauss", "user-guide/model-gallery/spatial/plot_gen_gauss", "user-guide/model-gallery/spatial/plot_piecewise_norm_spatial", "user-guide/model-gallery/spatial/plot_point", "user-guide/model-gallery/spatial/plot_shell", "user-guide/model-gallery/spatial/plot_shell2", "user-guide/model-gallery/spatial/plot_template", "user-guide/model-gallery/spatial/sg_execution_times", "user-guide/model-gallery/spectral/plot_absorbed", "user-guide/model-gallery/spectral/plot_broken_powerlaw", "user-guide/model-gallery/spectral/plot_compound", "user-guide/model-gallery/spectral/plot_constant_spectral", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral", "user-guide/model-gallery/spectral/plot_gauss_spectral", "user-guide/model-gallery/spectral/plot_logparabola", "user-guide/model-gallery/spectral/plot_logparabola_norm_spectral", "user-guide/model-gallery/spectral/plot_naima", "user-guide/model-gallery/spectral/plot_piecewise_norm_spectral", "user-guide/model-gallery/spectral/plot_powerlaw", "user-guide/model-gallery/spectral/plot_powerlaw2", "user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral", "user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1", "user-guide/model-gallery/spectral/plot_template_spectral", "user-guide/model-gallery/spectral/sg_execution_times", "user-guide/model-gallery/temporal/plot_constant_temporal", "user-guide/model-gallery/temporal/plot_expdecay_temporal", "user-guide/model-gallery/temporal/plot_gaussian_temporal", "user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal", "user-guide/model-gallery/temporal/plot_linear_temporal", "user-guide/model-gallery/temporal/plot_powerlaw_temporal", "user-guide/model-gallery/temporal/plot_sine_temporal", "user-guide/model-gallery/temporal/plot_template_phase_temporal", "user-guide/model-gallery/temporal/plot_template_temporal", "user-guide/model-gallery/temporal/sg_execution_times", "user-guide/modeling", "user-guide/package", "user-guide/references", "user-guide/scripts/index", "user-guide/stats/fit_statistics", "user-guide/stats/index", "user-guide/stats/wstat_derivation", "user-guide/utils", "user-guide/visualization/index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["api-reference/analysis.rst", "api-reference/astro.rst", "api-reference/catalog.rst", "api-reference/data.rst", "api-reference/datasets.rst", "api-reference/estimators.rst", "api-reference/index.rst", "api-reference/irf.rst", "api-reference/makers.rst", "api-reference/maps.rst", "api-reference/modeling.rst", "api-reference/scripts.rst", "api-reference/stats.rst", "api-reference/utils.rst", "api-reference/visualization.rst", "api/gammapy.analysis.Analysis.rst", "api/gammapy.analysis.AnalysisConfig.rst", "api/gammapy.astro.darkmatter.BurkertProfile.rst", "api/gammapy.astro.darkmatter.DMProfile.rst", "api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.rst", "api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.rst", "api/gammapy.astro.darkmatter.EinastoProfile.rst", "api/gammapy.astro.darkmatter.IsothermalProfile.rst", "api/gammapy.astro.darkmatter.JFactory.rst", "api/gammapy.astro.darkmatter.MooreProfile.rst", "api/gammapy.astro.darkmatter.NFWProfile.rst", "api/gammapy.astro.darkmatter.PrimaryFlux.rst", "api/gammapy.astro.darkmatter.ZhaoProfile.rst", "api/gammapy.astro.population.CaseBattacharya1998.rst", "api/gammapy.astro.population.Exponential.rst", "api/gammapy.astro.population.FaucherKaspi2006.rst", "api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.rst", "api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.rst", "api/gammapy.astro.population.FaucherSpiral.rst", "api/gammapy.astro.population.LogSpiral.rst", "api/gammapy.astro.population.Lorimer2006.rst", "api/gammapy.astro.population.Paczynski1990.rst", "api/gammapy.astro.population.Paczynski1990Velocity.rst", "api/gammapy.astro.population.ValleeSpiral.rst", "api/gammapy.astro.population.YusifovKucuk2004.rst", "api/gammapy.astro.population.YusifovKucuk2004B.rst", "api/gammapy.astro.population.add_observed_parameters.rst", "api/gammapy.astro.population.add_pulsar_parameters.rst", "api/gammapy.astro.population.add_pwn_parameters.rst", "api/gammapy.astro.population.add_snr_parameters.rst", "api/gammapy.astro.population.make_base_catalog_galactic.rst", "api/gammapy.astro.population.make_catalog_random_positions_cube.rst", "api/gammapy.astro.population.make_catalog_random_positions_sphere.rst", "api/gammapy.astro.population.radial_distributions.rst", "api/gammapy.astro.population.velocity_distributions.rst", "api/gammapy.astro.source.PWN.rst", "api/gammapy.astro.source.Pulsar.rst", "api/gammapy.astro.source.SNR.rst", "api/gammapy.astro.source.SNRTrueloveMcKee.rst", "api/gammapy.astro.source.SimplePulsar.rst", "api/gammapy.catalog.CATALOG_REGISTRY.rst", "api/gammapy.catalog.SourceCatalog.rst", "api/gammapy.catalog.SourceCatalog1LHAASO.rst", "api/gammapy.catalog.SourceCatalog2FHL.rst", "api/gammapy.catalog.SourceCatalog2HWC.rst", "api/gammapy.catalog.SourceCatalog2PC.rst", "api/gammapy.catalog.SourceCatalog3FGL.rst", "api/gammapy.catalog.SourceCatalog3FHL.rst", "api/gammapy.catalog.SourceCatalog3HWC.rst", "api/gammapy.catalog.SourceCatalog3PC.rst", "api/gammapy.catalog.SourceCatalog4FGL.rst", "api/gammapy.catalog.SourceCatalogGammaCat.rst", "api/gammapy.catalog.SourceCatalogHGPS.rst", "api/gammapy.catalog.SourceCatalogLargeScaleHGPS.rst", "api/gammapy.catalog.SourceCatalogObject.rst", "api/gammapy.catalog.SourceCatalogObject1LHAASO.rst", "api/gammapy.catalog.SourceCatalogObject2FHL.rst", "api/gammapy.catalog.SourceCatalogObject2HWC.rst", "api/gammapy.catalog.SourceCatalogObject2PC.rst", "api/gammapy.catalog.SourceCatalogObject3FGL.rst", "api/gammapy.catalog.SourceCatalogObject3FHL.rst", "api/gammapy.catalog.SourceCatalogObject3HWC.rst", "api/gammapy.catalog.SourceCatalogObject3PC.rst", "api/gammapy.catalog.SourceCatalogObject4FGL.rst", "api/gammapy.catalog.SourceCatalogObjectGammaCat.rst", "api/gammapy.catalog.SourceCatalogObjectHGPS.rst", "api/gammapy.catalog.SourceCatalogObjectHGPSComponent.rst", "api/gammapy.data.DataStore.rst", "api/gammapy.data.EventList.rst", "api/gammapy.data.EventListMetaData.rst", "api/gammapy.data.FixedPointingInfo.rst", "api/gammapy.data.GTI.rst", "api/gammapy.data.HDUIndexTable.rst", "api/gammapy.data.Observation.rst", "api/gammapy.data.ObservationFilter.rst", "api/gammapy.data.ObservationMetaData.rst", "api/gammapy.data.ObservationTable.rst", "api/gammapy.data.Observations.rst", "api/gammapy.data.ObservationsEventsSampler.rst", "api/gammapy.data.PointingInfo.rst", "api/gammapy.data.PointingMode.rst", "api/gammapy.data.get_irfs_features.rst", "api/gammapy.data.observatory_locations.rst", "api/gammapy.datasets.DATASET_REGISTRY.rst", "api/gammapy.datasets.Dataset.rst", "api/gammapy.datasets.Datasets.rst", "api/gammapy.datasets.FluxPointsDataset.rst", "api/gammapy.datasets.MapDataset.rst", "api/gammapy.datasets.MapDatasetEventSampler.rst", "api/gammapy.datasets.MapDatasetMetaData.rst", "api/gammapy.datasets.MapDatasetOnOff.rst", "api/gammapy.datasets.OGIPDatasetReader.rst", "api/gammapy.datasets.OGIPDatasetWriter.rst", "api/gammapy.datasets.ObservationEventSampler.rst", "api/gammapy.datasets.SpectrumDataset.rst", "api/gammapy.datasets.SpectrumDatasetOnOff.rst", "api/gammapy.datasets.apply_edisp.rst", "api/gammapy.datasets.create_empty_map_dataset_from_irfs.rst", "api/gammapy.datasets.create_map_dataset_from_observation.rst", "api/gammapy.datasets.create_map_dataset_geoms.rst", "api/gammapy.datasets.split_dataset.rst", "api/gammapy.datasets.utils.apply_edisp.rst", "api/gammapy.datasets.utils.split_dataset.rst", "api/gammapy.estimators.ASmoothMapEstimator.rst", "api/gammapy.estimators.ESTIMATOR_REGISTRY.rst", "api/gammapy.estimators.EnergyDependentMorphologyEstimator.rst", "api/gammapy.estimators.Estimator.rst", "api/gammapy.estimators.ExcessMapEstimator.rst", "api/gammapy.estimators.FluxMaps.rst", "api/gammapy.estimators.FluxMetaData.rst", "api/gammapy.estimators.FluxPoints.rst", "api/gammapy.estimators.FluxPointsEstimator.rst", "api/gammapy.estimators.FluxProfileEstimator.rst", "api/gammapy.estimators.ImageProfile.rst", "api/gammapy.estimators.ImageProfileEstimator.rst", "api/gammapy.estimators.LightCurveEstimator.rst", "api/gammapy.estimators.ParameterEstimator.rst", "api/gammapy.estimators.SensitivityEstimator.rst", "api/gammapy.estimators.TSMapEstimator.rst", "api/gammapy.estimators.utils.combine_flux_maps.rst", "api/gammapy.estimators.utils.combine_significance_maps.rst", "api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.rst", "api/gammapy.estimators.utils.compute_lightcurve_doublingtime.rst", "api/gammapy.estimators.utils.compute_lightcurve_fpp.rst", "api/gammapy.estimators.utils.compute_lightcurve_fvar.rst", "api/gammapy.estimators.utils.estimate_exposure_reco_energy.rst", "api/gammapy.estimators.utils.find_peaks.rst", "api/gammapy.estimators.utils.find_peaks_in_flux_map.rst", "api/gammapy.estimators.utils.get_combined_flux_maps.rst", "api/gammapy.estimators.utils.get_combined_significance_maps.rst", "api/gammapy.estimators.utils.get_rebinned_axis.rst", "api/gammapy.estimators.utils.resample_energy_edges.rst", "api/gammapy.irf.Background2D.rst", "api/gammapy.irf.Background3D.rst", "api/gammapy.irf.BackgroundIRF.rst", "api/gammapy.irf.EDispKernel.rst", "api/gammapy.irf.EDispKernelMap.rst", "api/gammapy.irf.EDispMap.rst", "api/gammapy.irf.EffectiveAreaTable2D.rst", "api/gammapy.irf.EnergyDependentMultiGaussPSF.rst", "api/gammapy.irf.EnergyDispersion2D.rst", "api/gammapy.irf.FoVAlignment.rst", "api/gammapy.irf.IRF.rst", "api/gammapy.irf.IRFMap.rst", "api/gammapy.irf.IRF_REGISTRY.rst", "api/gammapy.irf.PSF3D.rst", "api/gammapy.irf.PSFKernel.rst", "api/gammapy.irf.PSFKing.rst", "api/gammapy.irf.PSFMap.rst", "api/gammapy.irf.ParametricPSF.rst", "api/gammapy.irf.RadMax2D.rst", "api/gammapy.irf.RecoPSFMap.rst", "api/gammapy.irf.load_irf_dict_from_file.rst", "api/gammapy.makers.AdaptiveRingBackgroundMaker.rst", "api/gammapy.makers.DatasetsMaker.rst", "api/gammapy.makers.FoVBackgroundMaker.rst", "api/gammapy.makers.MAKER_REGISTRY.rst", "api/gammapy.makers.Maker.rst", "api/gammapy.makers.MapDatasetMaker.rst", "api/gammapy.makers.PhaseBackgroundMaker.rst", "api/gammapy.makers.ReflectedRegionsBackgroundMaker.rst", "api/gammapy.makers.ReflectedRegionsFinder.rst", "api/gammapy.makers.RegionsFinder.rst", "api/gammapy.makers.RingBackgroundMaker.rst", "api/gammapy.makers.SafeMaskMaker.rst", "api/gammapy.makers.SpectrumDatasetMaker.rst", "api/gammapy.makers.WobbleRegionsFinder.rst", "api/gammapy.makers.utils.make_counts_rad_max.rst", "api/gammapy.makers.utils.make_edisp_kernel_map.rst", "api/gammapy.makers.utils.make_edisp_map.rst", "api/gammapy.makers.utils.make_effective_livetime_map.rst", "api/gammapy.makers.utils.make_map_background_irf.rst", "api/gammapy.makers.utils.make_map_exposure_true_energy.rst", "api/gammapy.makers.utils.make_observation_time_map.rst", "api/gammapy.makers.utils.make_psf_map.rst", "api/gammapy.makers.utils.make_theta_squared_table.rst", "api/gammapy.maps.Geom.rst", "api/gammapy.maps.HpxGeom.rst", "api/gammapy.maps.HpxMap.rst", "api/gammapy.maps.HpxNDMap.rst", "api/gammapy.maps.LabelMapAxis.rst", "api/gammapy.maps.Map.rst", "api/gammapy.maps.MapAxes.rst", "api/gammapy.maps.MapAxis.rst", "api/gammapy.maps.MapCoord.rst", "api/gammapy.maps.Maps.rst", "api/gammapy.maps.RegionGeom.rst", "api/gammapy.maps.RegionNDMap.rst", "api/gammapy.maps.TimeMapAxis.rst", "api/gammapy.maps.WcsGeom.rst", "api/gammapy.maps.WcsMap.rst", "api/gammapy.maps.WcsNDMap.rst", "api/gammapy.maps.containment_radius.rst", "api/gammapy.maps.containment_region.rst", "api/gammapy.modeling.Covariance.rst", "api/gammapy.modeling.CovarianceResult.rst", "api/gammapy.modeling.Fit.rst", "api/gammapy.modeling.FitResult.rst", "api/gammapy.modeling.OptimizeResult.rst", "api/gammapy.modeling.Parameter.rst", "api/gammapy.modeling.Parameters.rst", "api/gammapy.modeling.PriorParameter.rst", "api/gammapy.modeling.PriorParameters.rst", "api/gammapy.modeling.models.BrokenPowerLawSpectralModel.rst", "api/gammapy.modeling.models.CompoundSpectralModel.rst", "api/gammapy.modeling.models.ConstantFluxSpatialModel.rst", "api/gammapy.modeling.models.ConstantSpatialModel.rst", "api/gammapy.modeling.models.ConstantSpectralModel.rst", "api/gammapy.modeling.models.ConstantTemporalModel.rst", "api/gammapy.modeling.models.DatasetModels.rst", "api/gammapy.modeling.models.DiskSpatialModel.rst", "api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.rst", "api/gammapy.modeling.models.EBL_DATA_BUILTIN.rst", "api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.rst", "api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.rst", "api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.rst", "api/gammapy.modeling.models.ExpDecayTemporalModel.rst", "api/gammapy.modeling.models.FoVBackgroundModel.rst", "api/gammapy.modeling.models.GaussianPrior.rst", "api/gammapy.modeling.models.GaussianSpatialModel.rst", "api/gammapy.modeling.models.GaussianSpectralModel.rst", "api/gammapy.modeling.models.GaussianTemporalModel.rst", "api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.rst", "api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.rst", "api/gammapy.modeling.models.LightCurveTemplateTemporalModel.rst", "api/gammapy.modeling.models.LinearTemporalModel.rst", "api/gammapy.modeling.models.LogParabolaNormSpectralModel.rst", "api/gammapy.modeling.models.LogParabolaSpectralModel.rst", "api/gammapy.modeling.models.MODEL_REGISTRY.rst", "api/gammapy.modeling.models.MeyerCrabSpectralModel.rst", "api/gammapy.modeling.models.Model.rst", "api/gammapy.modeling.models.ModelBase.rst", "api/gammapy.modeling.models.Models.rst", "api/gammapy.modeling.models.NaimaSpectralModel.rst", "api/gammapy.modeling.models.PiecewiseNormSpatialModel.rst", "api/gammapy.modeling.models.PiecewiseNormSpectralModel.rst", "api/gammapy.modeling.models.PointSpatialModel.rst", "api/gammapy.modeling.models.PowerLaw2SpectralModel.rst", "api/gammapy.modeling.models.PowerLawNormSpectralModel.rst", "api/gammapy.modeling.models.PowerLawSpectralModel.rst", "api/gammapy.modeling.models.PowerLawTemporalModel.rst", "api/gammapy.modeling.models.Prior.rst", "api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY.rst", "api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY.rst", "api/gammapy.modeling.models.ScaleSpectralModel.rst", "api/gammapy.modeling.models.Shell2SpatialModel.rst", "api/gammapy.modeling.models.ShellSpatialModel.rst", "api/gammapy.modeling.models.SineTemporalModel.rst", "api/gammapy.modeling.models.SkyModel.rst", "api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.rst", "api/gammapy.modeling.models.SpatialModel.rst", "api/gammapy.modeling.models.SpectralModel.rst", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.rst", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.rst", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.rst", "api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY.rst", "api/gammapy.modeling.models.TemplateNDSpatialModel.rst", "api/gammapy.modeling.models.TemplateNDSpectralModel.rst", "api/gammapy.modeling.models.TemplateNPredModel.rst", "api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.rst", "api/gammapy.modeling.models.TemplateSpatialModel.rst", "api/gammapy.modeling.models.TemplateSpectralModel.rst", "api/gammapy.modeling.models.TemporalModel.rst", "api/gammapy.modeling.models.UniformPrior.rst", "api/gammapy.modeling.models.create_cosmic_ray_spectral_model.rst", "api/gammapy.modeling.models.create_crab_spectral_model.rst", "api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.rst", "api/gammapy.modeling.models.integrate_spectrum.rst", "api/gammapy.modeling.models.read_hermes_cube.rst", "api/gammapy.modeling.models.scale_plot_flux.rst", "api/gammapy.modeling.models.utils.read_hermes_cube.rst", "api/gammapy.modeling.select_nested_models.rst", "api/gammapy.modeling.stat_profile_ul_scipy.rst", "api/gammapy.stats.CashCountsStatistic.rst", "api/gammapy.stats.TimmerKonig_lightcurve_simulator.rst", "api/gammapy.stats.WStatCountsStatistic.rst", "api/gammapy.stats.cash.rst", "api/gammapy.stats.cash_sum_cython.rst", "api/gammapy.stats.compute_chisq.rst", "api/gammapy.stats.compute_flux_doubling.rst", "api/gammapy.stats.compute_fpp.rst", "api/gammapy.stats.compute_fvar.rst", "api/gammapy.stats.cstat.rst", "api/gammapy.stats.discrete_correlation.rst", "api/gammapy.stats.f_cash_root_cython.rst", "api/gammapy.stats.get_wstat_gof_terms.rst", "api/gammapy.stats.get_wstat_mu_bkg.rst", "api/gammapy.stats.norm_bounds_cython.rst", "api/gammapy.stats.structure_function.rst", "api/gammapy.stats.wstat.rst", "api/gammapy.utils.cluster.hierarchical_clustering.rst", "api/gammapy.utils.cluster.standard_scaler.rst", "api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER.rst", "api/gammapy.utils.coordinates.cartesian.rst", "api/gammapy.utils.coordinates.fov_to_sky.rst", "api/gammapy.utils.coordinates.galactic.rst", "api/gammapy.utils.coordinates.motion_since_birth.rst", "api/gammapy.utils.coordinates.polar.rst", "api/gammapy.utils.coordinates.sky_to_fov.rst", "api/gammapy.utils.coordinates.velocity_glon_glat.rst", "api/gammapy.utils.fits.HDULocation.rst", "api/gammapy.utils.fits.LazyFitsData.rst", "api/gammapy.utils.fits.earth_location_from_dict.rst", "api/gammapy.utils.integrate.trapz_loglog.rst", "api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.rst", "api/gammapy.utils.interpolation.interpolate_profile.rst", "api/gammapy.utils.interpolation.interpolation_scale.rst", "api/gammapy.utils.parallel.BACKEND_DEFAULT.rst", "api/gammapy.utils.parallel.METHOD_DEFAULT.rst", "api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT.rst", "api/gammapy.utils.parallel.N_JOBS_DEFAULT.rst", "api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT.rst", "api/gammapy.utils.parallel.multiprocessing_manager.rst", "api/gammapy.utils.parallel.run_multiprocessing.rst", "api/gammapy.utils.random.InverseCDFSampler.rst", "api/gammapy.utils.random.draw.rst", "api/gammapy.utils.random.get_random_state.rst", "api/gammapy.utils.random.normalize.rst", "api/gammapy.utils.random.pdf.rst", "api/gammapy.utils.random.sample_powerlaw.rst", "api/gammapy.utils.random.sample_sphere.rst", "api/gammapy.utils.random.sample_sphere_distance.rst", "api/gammapy.utils.random.sample_times.rst", "api/gammapy.utils.regions.compound_region_to_regions.rst", "api/gammapy.utils.regions.make_concentric_annulus_sky_regions.rst", "api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.rst", "api/gammapy.utils.regions.region_to_frame.rst", "api/gammapy.utils.regions.regions_to_compound_region.rst", "api/gammapy.utils.scripts.from_yaml.rst", "api/gammapy.utils.scripts.get_images_paths.rst", "api/gammapy.utils.scripts.make_path.rst", "api/gammapy.utils.scripts.read_yaml.rst", "api/gammapy.utils.scripts.recursive_merge_dicts.rst", "api/gammapy.utils.scripts.to_yaml.rst", "api/gammapy.utils.scripts.write_yaml.rst", "api/gammapy.utils.table.hstack_columns.rst", "api/gammapy.utils.table.table_row_to_dict.rst", "api/gammapy.utils.table.table_standardise_units_copy.rst", "api/gammapy.utils.table.table_standardise_units_inplace.rst", "api/gammapy.utils.testing.Checker.rst", "api/gammapy.utils.testing.assert_quantity_allclose.rst", "api/gammapy.utils.testing.assert_skycoord_allclose.rst", "api/gammapy.utils.testing.assert_time_allclose.rst", "api/gammapy.utils.testing.mpl_plot_check.rst", "api/gammapy.utils.testing.requires_data.rst", "api/gammapy.utils.testing.requires_dependency.rst", "api/gammapy.utils.time.absolute_time.rst", "api/gammapy.utils.time.time_ref_from_dict.rst", "api/gammapy.utils.time.time_ref_to_dict.rst", "api/gammapy.utils.time.time_relative_to_ref.rst", "api/gammapy.utils.units.standardise_unit.rst", "api/gammapy.utils.units.unit_from_fits_image_hdu.rst", "api/gammapy.visualization.MapPanelPlotter.rst", "api/gammapy.visualization.add_colorbar.rst", "api/gammapy.visualization.annotate_heatmap.rst", "api/gammapy.visualization.colormap_hess.rst", "api/gammapy.visualization.colormap_milagro.rst", "api/gammapy.visualization.plot_contour_line.rst", "api/gammapy.visualization.plot_distribution.rst", "api/gammapy.visualization.plot_heatmap.rst", "api/gammapy.visualization.plot_map_rgb.rst", "api/gammapy.visualization.plot_npred_signal.rst", "api/gammapy.visualization.plot_spectrum_datasets_off_regions.rst", "api/gammapy.visualization.plot_theta_squared_table.rst", "development/dependencies.rst", "development/dev_howto.rst", "development/doc_howto.rst", "development/index.rst", "development/intro.rst", "development/pigs/index.rst", "development/pigs/pig-001.rst", "development/pigs/pig-002.rst", "development/pigs/pig-003.rst", "development/pigs/pig-004.rst", "development/pigs/pig-005.rst", "development/pigs/pig-006.rst", "development/pigs/pig-007.rst", "development/pigs/pig-008.rst", "development/pigs/pig-009.rst", "development/pigs/pig-010.rst", "development/pigs/pig-011.rst", "development/pigs/pig-012.rst", "development/pigs/pig-013.rst", "development/pigs/pig-014.rst", "development/pigs/pig-016.rst", "development/pigs/pig-018.rst", "development/pigs/pig-019.rst", "development/pigs/pig-020.rst", "development/pigs/pig-021.rst", "development/pigs/pig-022.rst", "development/pigs/pig-023.rst", "development/pigs/pig-024.rst", "development/pigs/pig-025.rst", "development/pigs/pig-026.rst", "development/release.rst", "development/setup.rst", "getting-started/environments.rst", "getting-started/index.rst", "getting-started/install.rst", "getting-started/quickstart.rst", "getting-started/troubleshooting.rst", "getting-started/usage.rst", "index.rst", "release-notes/index.rst", "release-notes/v0.1.rst", "release-notes/v0.10.rst", "release-notes/v0.11.rst", "release-notes/v0.12.rst", "release-notes/v0.13.rst", "release-notes/v0.14.rst", "release-notes/v0.15.rst", "release-notes/v0.16.rst", "release-notes/v0.17.rst", "release-notes/v0.18.rst", "release-notes/v0.18.1.rst", "release-notes/v0.18.2.rst", "release-notes/v0.19.rst", "release-notes/v0.2.rst", "release-notes/v0.20.rst", "release-notes/v0.20.1.rst", "release-notes/v0.3.rst", "release-notes/v0.4.rst", "release-notes/v0.5.rst", "release-notes/v0.6.rst", "release-notes/v0.7.rst", "release-notes/v0.8.rst", "release-notes/v0.9.rst", "release-notes/v1.0.rst", "release-notes/v1.0.1.rst", "release-notes/v1.0.2.rst", "release-notes/v1.1.rst", "release-notes/v1.2.rst", "release-notes/v1.3.rst", "release-notes/v2.0.rst", "sg_execution_times.rst", "tutorials/analysis-1d/cta_sensitivity.rst", "tutorials/analysis-1d/ebl.rst", "tutorials/analysis-1d/extended_source_spectral_analysis.rst", "tutorials/analysis-1d/sed_fitting.rst", "tutorials/analysis-1d/sg_execution_times.rst", "tutorials/analysis-1d/spectral_analysis.rst", "tutorials/analysis-1d/spectral_analysis_hli.rst", "tutorials/analysis-1d/spectral_analysis_rad_max.rst", "tutorials/analysis-1d/spectrum_simulation.rst", "tutorials/analysis-2d/detect.rst", "tutorials/analysis-2d/modeling_2D.rst", "tutorials/analysis-2d/ring_background.rst", "tutorials/analysis-2d/sg_execution_times.rst", "tutorials/analysis-3d/analysis_3d.rst", "tutorials/analysis-3d/analysis_mwl.rst", "tutorials/analysis-3d/cta_data_analysis.rst", "tutorials/analysis-3d/energy_dependent_estimation.rst", "tutorials/analysis-3d/event_sampling.rst", "tutorials/analysis-3d/event_sampling_nrg_depend_models.rst", "tutorials/analysis-3d/flux_profiles.rst", "tutorials/analysis-3d/sg_execution_times.rst", "tutorials/analysis-3d/simulate_3d.rst", "tutorials/analysis-time/light_curve.rst", "tutorials/analysis-time/light_curve_flare.rst", "tutorials/analysis-time/light_curve_simulation.rst", "tutorials/analysis-time/pulsar_analysis.rst", "tutorials/analysis-time/sg_execution_times.rst", "tutorials/analysis-time/time_resolved_spectroscopy.rst", "tutorials/analysis-time/variability_estimation.rst", "tutorials/api/astro_dark_matter.rst", "tutorials/api/catalog.rst", "tutorials/api/datasets.rst", "tutorials/api/estimators.rst", "tutorials/api/fitting.rst", "tutorials/api/irfs.rst", "tutorials/api/makers.rst", "tutorials/api/maps.rst", "tutorials/api/mask_maps.rst", "tutorials/api/model_management.rst", "tutorials/api/models.rst", "tutorials/api/observation_clustering.rst", "tutorials/api/priors.rst", "tutorials/api/sg_execution_times.rst", "tutorials/data/cta.rst", "tutorials/data/fermi_lat.rst", "tutorials/data/hawc.rst", "tutorials/data/hess.rst", "tutorials/data/sg_execution_times.rst", "tutorials/index.rst", "tutorials/scripts/sg_execution_times.rst", "tutorials/scripts/survey_map.rst", "tutorials/sg_execution_times.rst", "tutorials/starting/analysis_1.rst", "tutorials/starting/analysis_2.rst", "tutorials/starting/overview.rst", "tutorials/starting/sg_execution_times.rst", "user-guide/astro/darkmatter/index.rst", "user-guide/astro/index.rst", "user-guide/astro/population/index.rst", "user-guide/astro/source/index.rst", "user-guide/astro/source/pulsar.rst", "user-guide/astro/source/pwn.rst", "user-guide/astro/source/snr.rst", "user-guide/catalog.rst", "user-guide/datasets/index.rst", "user-guide/dl3.rst", "user-guide/estimators.rst", "user-guide/hli.rst", "user-guide/howto.rst", "user-guide/index.rst", "user-guide/irf/aeff.rst", "user-guide/irf/bkg.rst", "user-guide/irf/edisp.rst", "user-guide/irf/index.rst", "user-guide/irf/psf.rst", "user-guide/makers/fov.rst", "user-guide/makers/index.rst", "user-guide/makers/reflected.rst", "user-guide/makers/ring.rst", "user-guide/maps/hpxmap.rst", "user-guide/maps/index.rst", "user-guide/maps/regionmap.rst", "user-guide/model-gallery/index.rst", "user-guide/model-gallery/sg_execution_times.rst", "user-guide/model-gallery/spatial/plot_constant.rst", "user-guide/model-gallery/spatial/plot_disk.rst", "user-guide/model-gallery/spatial/plot_gauss.rst", "user-guide/model-gallery/spatial/plot_gen_gauss.rst", "user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.rst", "user-guide/model-gallery/spatial/plot_point.rst", "user-guide/model-gallery/spatial/plot_shell.rst", "user-guide/model-gallery/spatial/plot_shell2.rst", "user-guide/model-gallery/spatial/plot_template.rst", "user-guide/model-gallery/spatial/sg_execution_times.rst", "user-guide/model-gallery/spectral/plot_absorbed.rst", "user-guide/model-gallery/spectral/plot_broken_powerlaw.rst", "user-guide/model-gallery/spectral/plot_compound.rst", "user-guide/model-gallery/spectral/plot_constant_spectral.rst", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.rst", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.rst", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_gauss_spectral.rst", "user-guide/model-gallery/spectral/plot_logparabola.rst", "user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_naima.rst", "user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_powerlaw.rst", "user-guide/model-gallery/spectral/plot_powerlaw2.rst", "user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.rst", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.rst", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.rst", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.rst", "user-guide/model-gallery/spectral/plot_template_spectral.rst", "user-guide/model-gallery/spectral/sg_execution_times.rst", "user-guide/model-gallery/temporal/plot_constant_temporal.rst", "user-guide/model-gallery/temporal/plot_expdecay_temporal.rst", "user-guide/model-gallery/temporal/plot_gaussian_temporal.rst", "user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.rst", "user-guide/model-gallery/temporal/plot_linear_temporal.rst", "user-guide/model-gallery/temporal/plot_powerlaw_temporal.rst", "user-guide/model-gallery/temporal/plot_sine_temporal.rst", "user-guide/model-gallery/temporal/plot_template_phase_temporal.rst", "user-guide/model-gallery/temporal/plot_template_temporal.rst", "user-guide/model-gallery/temporal/sg_execution_times.rst", "user-guide/modeling.rst", "user-guide/package.rst", "user-guide/references.rst", "user-guide/scripts/index.rst", "user-guide/stats/fit_statistics.rst", "user-guide/stats/index.rst", "user-guide/stats/wstat_derivation.rst", "user-guide/utils.rst", "user-guide/visualization/index.rst"], "indexentries": {"--dependencies": [[11, "cmdoption-gammapy-info-dependencies", false]], "--envvar": [[11, "cmdoption-gammapy-info-envvar", false]], "--filename": [[11, "cmdoption-gammapy-analysis-config-filename", false], [11, "cmdoption-gammapy-analysis-run-filename", false], [11, "cmdoption-gammapy-workflow-config-filename", false], [11, "cmdoption-gammapy-workflow-run-filename", false]], "--ignore-warnings": [[11, "cmdoption-gammapy-ignore-warnings", false]], "--log-level": [[11, "cmdoption-gammapy-log-level", false]], "--no-dependencies": [[11, "cmdoption-gammapy-info-dependencies", false]], "--no-envvar": [[11, "cmdoption-gammapy-info-envvar", false]], "--no-system": [[11, "cmdoption-gammapy-info-system", false]], "--no-version": [[11, "cmdoption-gammapy-info-version", false]], "--out": [[11, "cmdoption-gammapy-analysis-run-out", false], [11, "cmdoption-gammapy-download-datasets-out", false], [11, "cmdoption-gammapy-download-notebooks-out", false]], "--overwrite": [[11, "cmdoption-gammapy-analysis-config-overwrite", false], [11, "cmdoption-gammapy-analysis-run-overwrite", false], [11, "cmdoption-gammapy-workflow-config-overwrite", false]], "--release": [[11, "cmdoption-gammapy-download-datasets-release", false], [11, "cmdoption-gammapy-download-notebooks-release", false]], "--system": [[11, "cmdoption-gammapy-info-system", false]], "--version": [[11, "cmdoption-gammapy-info-version", false], [11, "cmdoption-gammapy-version", false]], "1d analysis": [[577, "term-1D-Analysis", true]], "3d analysis": [[577, "term-3D-Analysis", true]], "__call__() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.__call__", false]], "__call__() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.__call__", false]], "__call__() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.__call__", false]], "__call__() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.__call__", false]], "__call__() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.__call__", false]], "__call__() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.__call__", false]], "__call__() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.__call__", false]], "__call__() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.__call__", false]], "__call__() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.__call__", false]], "__call__() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.__call__", false]], "__call__() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.__call__", false]], "__call__() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.__call__", false]], "__call__() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.__call__", false]], "__call__() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.__call__", false]], "__call__() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.__call__", false]], "__call__() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.__call__", false]], "__call__() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.__call__", false]], "__call__() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.__call__", false]], "__call__() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.__call__", false]], "__call__() (gammapy.utils.interpolation.scaledregulargridinterpolator method)": [[319, "gammapy.utils.interpolation.ScaledRegularGridInterpolator.__call__", false]], "a (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.a", false]], "a (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.a", false]], "absolute_time() (in module gammapy.utils.time)": [[361, "gammapy.utils.time.absolute_time", false]], "acceptance_off (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.acceptance_off", false]], "acceptance_off (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.acceptance_off", false]], "acceptance_on (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.acceptance_on", false]], "acceptance_on (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.acceptance_on", false]], "adaptiveringbackgroundmaker (class in gammapy.makers)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker", false]], "add_colorbar() (in module gammapy.visualization)": [[368, "gammapy.visualization.add_colorbar", false]], "add_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_column", false]], "add_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_column", false]], "add_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_columns", false]], "add_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_columns", false]], "add_index() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_index", false]], "add_index() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_index", false]], "add_observed_parameters() (in module gammapy.astro.population)": [[41, "gammapy.astro.population.add_observed_parameters", false]], "add_pulsar_parameters() (in module gammapy.astro.population)": [[42, "gammapy.astro.population.add_pulsar_parameters", false]], "add_pwn_parameters() (in module gammapy.astro.population)": [[43, "gammapy.astro.population.add_pwn_parameters", false]], "add_row() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_row", false]], "add_row() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_row", false]], "add_snr_parameters() (in module gammapy.astro.population)": [[44, "gammapy.astro.population.add_snr_parameters", false]], "aeff": [[577, "term-Aeff", true]], "aeff (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.aeff", false]], "all_quantities() (gammapy.estimators.fluxmaps static method)": [[123, "gammapy.estimators.FluxMaps.all_quantities", false]], "all_quantities() (gammapy.estimators.fluxpoints static method)": [[125, "gammapy.estimators.FluxPoints.all_quantities", false]], "allowed_channels (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.allowed_channels", false]], "alpha (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.alpha", false]], "alpha (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.alpha", false]], "alpha (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.alpha", false]], "alpha (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.alpha", false]], "alpha (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.alpha", false]], "alpha (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.alpha", false]], "alpha (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.alpha", false]], "alpha_norm (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.alpha_norm", false]], "altaz (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.altaz", false]], "altaz (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.altaz", false]], "altaz (gammapy.irf.fovalignment attribute)": [[156, "gammapy.irf.FoVAlignment.ALTAZ", false]], "altaz_frame (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.altaz_frame", false]], "altaz_frame (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.altaz_frame", false]], "altaz_from_table (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.altaz_from_table", false]], "altaz_from_table (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.altaz_from_table", false]], "altaz_interpolate() (gammapy.data.pointinginfo method)": [[94, "gammapy.data.PointingInfo.altaz_interpolate", false]], "amp (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.amp", false]], "amplitude (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.amplitude", false]], "amplitude (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.amplitude", false]], "amplitude (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.amplitude", false]], "amplitude (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.amplitude", false]], "amplitude (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.amplitude", false]], "amplitude (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.amplitude", false]], "amplitude (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.amplitude", false]], "amplitude (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.amplitude", false]], "amplitude (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.amplitude", false]], "amplitude (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.amplitude", false]], "amplitude (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.amplitude", false]], "analysis (class in gammapy.analysis)": [[15, "gammapy.analysis.Analysis", false]], "analysisconfig (class in gammapy.analysis)": [[16, "gammapy.analysis.AnalysisConfig", false]], "annotate_heatmap() (in module gammapy.visualization)": [[369, "gammapy.visualization.annotate_heatmap", false]], "append() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.append", false]], "append() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.append", false]], "append() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.append", false]], "apply_edisp() (in module gammapy.datasets)": [[111, "gammapy.datasets.apply_edisp", false]], "apply_edisp() (in module gammapy.datasets.utils)": [[116, "gammapy.datasets.utils.apply_edisp", false]], "apply_mask() (gammapy.maps.mapcoord method)": [[199, "gammapy.maps.MapCoord.apply_mask", false]], "argsort() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.argsort", false]], "argsort() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.argsort", false]], "as_array() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.as_array", false]], "as_array() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.as_array", false]], "as_energy_true (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.as_energy_true", false]], "as_energy_true (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.as_energy_true", false]], "as_energy_true (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.as_energy_true", false]], "as_energy_true (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.as_energy_true", false]], "as_plot_center (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_center", false]], "as_plot_center (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_center", false]], "as_plot_center (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_center", false]], "as_plot_edges (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_edges", false]], "as_plot_edges (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_edges", false]], "as_plot_edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_edges", false]], "as_plot_labels (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_labels", false]], "as_plot_labels (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_labels", false]], "as_plot_labels (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_labels", false]], "as_plot_scale (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_scale", false]], "as_plot_xerr (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_xerr", false]], "as_plot_xerr (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_xerr", false]], "as_plot_xerr (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_xerr", false]], "asmoothmapestimator (class in gammapy.estimators)": [[118, "gammapy.estimators.ASmoothMapEstimator", false]], "assert_name() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.assert_name", false]], "assert_name() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.assert_name", false]], "assert_name() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.assert_name", false]], "assert_names() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.assert_names", false]], "assert_quantity_allclose() (in module gammapy.utils.testing)": [[355, "gammapy.utils.testing.assert_quantity_allclose", false]], "assert_skycoord_allclose() (in module gammapy.utils.testing)": [[356, "gammapy.utils.testing.assert_skycoord_allclose", false]], "assert_time_allclose() (in module gammapy.utils.testing)": [[357, "gammapy.utils.testing.assert_time_allclose", false]], "asso (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.asso", false]], "asso (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.asso", false]], "asso (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.asso", false]], "asso (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.asso", false]], "asso (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.asso", false]], "autoscale() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.autoscale", false]], "autoscale() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.autoscale", false]], "autoscale() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.autoscale", false]], "autoscale() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.autoscale", false]], "available_hdus (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.available_hdus", false]], "available_irfs (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.available_irfs", false]], "available_methods (gammapy.makers.fovbackgroundmaker attribute)": [[170, "gammapy.makers.FoVBackgroundMaker.available_methods", false]], "available_methods (gammapy.makers.safemaskmaker attribute)": [[179, "gammapy.makers.SafeMaskMaker.available_methods", false]], "available_quantities (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.available_quantities", false]], "available_quantities (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.available_quantities", false]], "available_selection (gammapy.makers.mapdatasetmaker attribute)": [[173, "gammapy.makers.MapDatasetMaker.available_selection", false]], "available_selection (gammapy.makers.spectrumdatasetmaker attribute)": [[180, "gammapy.makers.SpectrumDatasetMaker.available_selection", false]], "available_stat_type (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.available_stat_type", false]], "axes (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.axes", false]], "axes (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.axes", false]], "axes (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.axes", false]], "axes (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.axes", false]], "axes (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.axes", false]], "axes (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.axes", false]], "axes (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.axes", false]], "axes (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.axes", false]], "axes (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.axes", false]], "axes (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.axes", false]], "axes (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.axes", false]], "axes (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.axes", false]], "axes (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.axes", false]], "axes (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.axes", false]], "axes (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.axes", false]], "axes_names (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.axes_names", false]], "axes_names (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.axes_names", false]], "axes_names (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.axes_names", false]], "axis_names (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.axis_names", false]], "b (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.B", false]], "b (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.b", false]], "b (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.b", false]], "backend (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.backend", false]], "backend (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.backend", false]], "backend (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.backend", false]], "backend_default (in module gammapy.utils.parallel)": [[322, "gammapy.utils.parallel.BACKEND_DEFAULT", false]], "background (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.background", false]], "background (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.background", false]], "background (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.background", false]], "background (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.background", false]], "background2d (class in gammapy.irf)": [[147, "gammapy.irf.Background2D", false]], "background3d (class in gammapy.irf)": [[148, "gammapy.irf.Background3D", false]], "background_model (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.background_model", false]], "background_model (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.background_model", false]], "background_model (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.background_model", false]], "background_model (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.background_model", false]], "backgroundirf (class in gammapy.irf)": [[149, "gammapy.irf.BackgroundIRF", false]], "bar_radius (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.bar_radius", false]], "base_dir (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.base_dir", false]], "bbox_with_units (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.bbox_with_units", false]], "beta (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.beta", false]], "beta (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.beta", false]], "beta (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.beta", false]], "beta (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.beta", false]], "beta (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.beta", false]], "bin_volume() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.bin_volume", false]], "bin_volume() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.bin_volume", false]], "bin_volume() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.bin_volume", false]], "bin_width (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.bin_width", false]], "bin_width (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.bin_width", false]], "bin_width (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.bin_width", false]], "binary_dilate() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.binary_dilate", false]], "binary_erode() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.binary_erode", false]], "binary_structure() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.binary_structure", false]], "binsz_wcs (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.binsz_wcs", false]], "bkg": [[577, "term-Bkg", true]], "bkg (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.bkg", false]], "boundary_mask() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.boundary_mask", false]], "bounding_box (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.bounding_box", false]], "bounding_box (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.bounding_box", false]], "bounding_box (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.bounding_box", false]], "bounding_box (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.bounding_box", false]], "bounding_box (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.bounding_box", false]], "bounding_box (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.bounding_box", false]], "bounding_box (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.bounding_box", false]], "bounding_box (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.bounding_box", false]], "bounding_box (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.bounding_box", false]], "bounding_box (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.bounding_box", false]], "bounds (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.bounds", false]], "bounds (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.bounds", false]], "bounds (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.bounds", false]], "bounds (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.bounds", false]], "bounds (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.bounds", false]], "bounds (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.bounds", false]], "bounds (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.bounds", false]], "bounds (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.bounds", false]], "bounds (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.bounds", false]], "bounds (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.bounds", false]], "bounds (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.bounds", false]], "bounds (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.bounds", false]], "broadcasted (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.broadcasted", false]], "brokenpowerlawspectralmodel (class in gammapy.modeling.models)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel", false]], "burkertprofile (class in gammapy.astro.darkmatter)": [[17, "gammapy.astro.darkmatter.BurkertProfile", false]], "c (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.C", false]], "callback() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.callback", false]], "cartesian() (in module gammapy.utils.coordinates)": [[308, "gammapy.utils.coordinates.cartesian", false]], "casebattacharya1998 (class in gammapy.astro.population)": [[28, "gammapy.astro.population.CaseBattacharya1998", false]], "cash": [[577, "term-Cash", true]], "cash() (in module gammapy.stats)": [[291, "gammapy.stats.cash", false]], "cash_sum_cython() (in module gammapy.stats)": [[292, "gammapy.stats.cash_sum_cython", false]], "cashcountsstatistic (class in gammapy.stats)": [[288, "gammapy.stats.CashCountsStatistic", false]], "catalog_registry (in module gammapy.catalog)": [[55, "gammapy.catalog.CATALOG_REGISTRY", false]], "center (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.center", false]], "center (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.center", false]], "center (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.center", false]], "center_coord (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.center_coord", false]], "center_coord (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.center_coord", false]], "center_coord (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.center_coord", false]], "center_coord (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.center_coord", false]], "center_coord (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.center_coord", false]], "center_pix (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.center_pix", false]], "center_pix (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.center_pix", false]], "center_pix (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.center_pix", false]], "center_pix (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.center_pix", false]], "center_skydir (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.center_skydir", false]], "center_skydir (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.center_skydir", false]], "center_skydir (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.center_skydir", false]], "center_skydir (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.center_skydir", false]], "channel (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.channel", false]], "channel_registry (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.channel_registry", false]], "check() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.check", false]], "check() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.check", false]], "check() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.check", false]], "check_limits() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.check_limits", false]], "check_limits() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.check_limits", false]], "check_limits() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.check_limits", false]], "check_limits() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.check_limits", false]], "checker (class in gammapy.utils.testing)": [[354, "gammapy.utils.testing.Checker", false]], "clear() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.clear", false]], "clear() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.clear", false]], "clear() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.clear", false]], "clear() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.clear", false]], "coadd() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.coadd", false]], "coadd() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.coadd", false]], "coadd() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.coadd", false]], "coadd() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.coadd", false]], "coadd() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.coadd", false]], "coadd() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.coadd", false]], "coefficients (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.coefficients", false]], "coerce_units() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.coerce_units", false]], "coerce_units() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.coerce_units", false]], "coerce_units() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.coerce_units", false]], "coerce_units() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.coerce_units", false]], "coerce_units() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.coerce_units", false]], "coerce_units() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.coerce_units", false]], "coerce_units() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.coerce_units", false]], "coerce_units() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.coerce_units", false]], "coerce_units() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.coerce_units", false]], "coerce_units() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.coerce_units", false]], "col_fit_deriv (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.col_fit_deriv", false]], "colnames (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.colnames", false]], "colnames (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.colnames", false]], "colormap_hess() (in module gammapy.visualization)": [[370, "gammapy.visualization.colormap_hess", false]], "colormap_milagro() (in module gammapy.visualization)": [[371, "gammapy.visualization.colormap_milagro", false]], "columnclass (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.ColumnClass", false]], "columnclass (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.ColumnClass", false]], "combine_flux_maps() (in module gammapy.estimators.utils)": [[134, "gammapy.estimators.utils.combine_flux_maps", false]], "combine_significance_maps() (in module gammapy.estimators.utils)": [[135, "gammapy.estimators.utils.combine_significance_maps", false]], "components_models() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.components_models", false]], "compound_region_to_regions() (in module gammapy.utils.regions)": [[338, "gammapy.utils.regions.compound_region_to_regions", false]], "compoundspectralmodel (class in gammapy.modeling.models)": [[219, "gammapy.modeling.models.CompoundSpectralModel", false]], "compute_chisq() (in module gammapy.stats)": [[293, "gammapy.stats.compute_chisq", false]], "compute_differential_jfactor() (gammapy.astro.darkmatter.jfactory method)": [[23, "gammapy.astro.darkmatter.JFactory.compute_differential_jfactor", false]], "compute_errn() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.compute_errn", false]], "compute_errn() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.compute_errn", false]], "compute_errp() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.compute_errp", false]], "compute_errp() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.compute_errp", false]], "compute_flux_doubling() (in module gammapy.stats)": [[294, "gammapy.stats.compute_flux_doubling", false]], "compute_fpp() (in module gammapy.stats)": [[295, "gammapy.stats.compute_fpp", false]], "compute_fvar() (in module gammapy.stats)": [[296, "gammapy.stats.compute_fvar", false]], "compute_jfactor() (gammapy.astro.darkmatter.jfactory method)": [[23, "gammapy.astro.darkmatter.JFactory.compute_jfactor", false]], "compute_lightcurve_discrete_correlation() (in module gammapy.estimators.utils)": [[136, "gammapy.estimators.utils.compute_lightcurve_discrete_correlation", false]], "compute_lightcurve_doublingtime() (in module gammapy.estimators.utils)": [[137, "gammapy.estimators.utils.compute_lightcurve_doublingtime", false]], "compute_lightcurve_fpp() (in module gammapy.estimators.utils)": [[138, "gammapy.estimators.utils.compute_lightcurve_fpp", false]], "compute_lightcurve_fvar() (in module gammapy.estimators.utils)": [[139, "gammapy.estimators.utils.compute_lightcurve_fvar", false]], "compute_upper_limit() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.compute_upper_limit", false]], "compute_upper_limit() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.compute_upper_limit", false]], "concatenate() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.concatenate", false]], "concatenate() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.concatenate", false]], "conf_max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.conf_max", false]], "conf_max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.conf_max", false]], "conf_min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.conf_min", false]], "conf_min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.conf_min", false]], "confidence() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.confidence", false]], "config (gammapy.analysis.analysis attribute)": [[15, "gammapy.analysis.Analysis.config", false]], "config_parameters (gammapy.estimators.asmoothmapestimator attribute)": [[118, "gammapy.estimators.ASmoothMapEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.energydependentmorphologyestimator attribute)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.estimator attribute)": [[121, "gammapy.estimators.Estimator.config_parameters", false]], "config_parameters (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.imageprofileestimator attribute)": [[129, "gammapy.estimators.ImageProfileEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.parameterestimator attribute)": [[131, "gammapy.estimators.ParameterEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.sensitivityestimator attribute)": [[132, "gammapy.estimators.SensitivityEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.config_parameters", false]], "const (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.const", false]], "constantfluxspatialmodel (class in gammapy.modeling.models)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel", false]], "constantspatialmodel (class in gammapy.modeling.models)": [[221, "gammapy.modeling.models.ConstantSpatialModel", false]], "constantspectralmodel (class in gammapy.modeling.models)": [[222, "gammapy.modeling.models.ConstantSpectralModel", false]], "constanttemporalmodel (class in gammapy.modeling.models)": [[223, "gammapy.modeling.models.ConstantTemporalModel", false]], "construct() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.construct", false]], "construct() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.construct", false]], "construct() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.construct", false]], "construct() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.construct", false]], "construct() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.construct", false]], "containment() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.containment", false]], "containment() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.containment", false]], "containment() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.containment", false]], "containment() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.containment", false]], "containment() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.containment", false]], "containment() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.containment", false]], "containment_radius() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.containment_radius", false]], "containment_radius() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.containment_radius", false]], "containment_radius() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.containment_radius", false]], "containment_radius() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.containment_radius", false]], "containment_radius() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.containment_radius", false]], "containment_radius() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.containment_radius", false]], "containment_radius() (in module gammapy.maps)": [[207, "gammapy.maps.containment_radius", false]], "containment_radius_map() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.containment_radius_map", false]], "containment_radius_map() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.containment_radius_map", false]], "containment_region() (in module gammapy.maps)": [[208, "gammapy.maps.containment_region", false]], "contains() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.contains", false]], "contains() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.contains", false]], "contains() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.contains", false]], "contains() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.contains", false]], "contains_pix() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.contains_pix", false]], "contains_pix() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.contains_pix", false]], "contains_pix() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.contains_pix", false]], "contains_pix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.contains_pix", false]], "contains_wcs_pix() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.contains_wcs_pix", false]], "contributes() (gammapy.modeling.models.fovbackgroundmodel static method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.contributes", false]], "contributes() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.contributes", false]], "contributes_to_stat (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.contributes_to_stat", false]], "convert_bytestring_to_unicode() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.convert_bytestring_to_unicode", false]], "convert_bytestring_to_unicode() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.convert_bytestring_to_unicode", false]], "convert_unicode_to_bytestring() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.convert_unicode_to_bytestring", false]], "convert_unicode_to_bytestring() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.convert_unicode_to_bytestring", false]], "convolve() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.convolve", false]], "convolve() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.convolve", false]], "convolve_full() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.convolve_full", false]], "convolve_wcs() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.convolve_wcs", false]], "coord_to_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.coord_to_idx", false]], "coord_to_pix() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.coord_to_pix", false]], "coords (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.coords", false]], "copy() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.copy", false]], "copy() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.copy", false]], "copy() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.copy", false]], "copy() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.copy", false]], "copy() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.copy", false]], "copy() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.copy", false]], "copy() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.copy", false]], "copy() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.copy", false]], "copy() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.copy", false]], "copy() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.copy", false]], "copy() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.copy", false]], "copy() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.copy", false]], "copy() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.copy", false]], "copy() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.copy", false]], "copy() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.copy", false]], "copy() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.copy", false]], "copy() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.copy", false]], "copy() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.copy", false]], "copy() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.copy", false]], "copy() (gammapy.data.observationfilter method)": [[89, "gammapy.data.ObservationFilter.copy", false]], "copy() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.copy", false]], "copy() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.copy", false]], "copy() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.copy", false]], "copy() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.copy", false]], "copy() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.copy", false]], "copy() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.copy", false]], "copy() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.copy", false]], "copy() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.copy", false]], "copy() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.copy", false]], "copy() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.copy", false]], "copy() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.copy", false]], "copy() (gammapy.estimators.energydependentmorphologyestimator method)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.copy", false]], "copy() (gammapy.estimators.estimator method)": [[121, "gammapy.estimators.Estimator.copy", false]], "copy() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.copy", false]], "copy() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.copy", false]], "copy() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.copy", false]], "copy() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.copy", false]], "copy() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.copy", false]], "copy() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.copy", false]], "copy() (gammapy.estimators.imageprofileestimator method)": [[129, "gammapy.estimators.ImageProfileEstimator.copy", false]], "copy() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.copy", false]], "copy() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.copy", false]], "copy() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.copy", false]], "copy() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.copy", false]], "copy() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.copy", false]], "copy() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.copy", false]], "copy() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.copy", false]], "copy() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.copy", false]], "copy() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.copy", false]], "copy() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.copy", false]], "copy() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.copy", false]], "copy() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.copy", false]], "copy() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.copy", false]], "copy() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.copy", false]], "copy() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.copy", false]], "copy() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.copy", false]], "copy() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.copy", false]], "copy() (gammapy.maps.mapcoord method)": [[199, "gammapy.maps.MapCoord.copy", false]], "copy() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.copy", false]], "copy() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.copy", false]], "copy() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.copy", false]], "copy() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.copy", false]], "copy() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.copy", false]], "copy() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.copy", false]], "copy() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.copy", false]], "copy() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.copy", false]], "copy() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.copy", false]], "copy() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.copy", false]], "copy() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.copy", false]], "copy() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.copy", false]], "copy() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.copy", false]], "copy() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.copy", false]], "copy() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.copy", false]], "copy() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.copy", false]], "copy() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.copy", false]], "copy() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.copy", false]], "copy() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.copy", false]], "copy() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.copy", false]], "copy() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.copy", false]], "copy() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.copy", false]], "copy() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.copy", false]], "copy() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.copy", false]], "copy() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.copy", false]], "copy() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.copy", false]], "copy() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.copy", false]], "copy() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.copy", false]], "copy() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.copy", false]], "copy() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.copy", false]], "copy() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.copy", false]], "copy() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.copy", false]], "copy() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.copy", false]], "copy() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.copy", false]], "copy() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.copy", false]], "copy() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.copy", false]], "copy() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.copy", false]], "copy() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.copy", false]], "copy() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.copy", false]], "copy() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.copy", false]], "copy() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.copy", false]], "copy() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.copy", false]], "copy() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.copy", false]], "copy() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.copy", false]], "copy() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.copy", false]], "copy() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.copy", false]], "copy() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.copy", false]], "copy() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.copy", false]], "copy() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.copy", false]], "copy() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.copy", false]], "copy() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.copy", false]], "copy() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.copy", false]], "copy() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.copy", false]], "copy() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.copy", false]], "copy() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.copy", false]], "copy_obs() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.copy_obs", false]], "correlation (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.correlation", false]], "correlation_radius (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.correlation_radius", false]], "count() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.count", false]], "count() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.count", false]], "count() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.count", false]], "count() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.count", false]], "count() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.count", false]], "count() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.count", false]], "count() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.count", false]], "counts (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.counts", false]], "counts (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.counts", false]], "counts (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.counts", false]], "counts (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.counts", false]], "counts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.counts", false]], "counts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.counts", false]], "cov_matrix (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.cov_matrix", false]], "cov_matrix (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.cov_matrix", false]], "cov_matrix (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.cov_matrix", false]], "cov_matrix (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.cov_matrix", false]], "cov_matrix (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.cov_matrix", false]], "cov_matrix (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.cov_matrix", false]], "cov_matrix (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.cov_matrix", false]], "cov_matrix (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.cov_matrix", false]], "cov_matrix (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.cov_matrix", false]], "cov_matrix (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.cov_matrix", false]], "covariance (class in gammapy.modeling)": [[209, "gammapy.modeling.Covariance", false]], "covariance (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.covariance", false]], "covariance (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.covariance", false]], "covariance (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.covariance", false]], "covariance (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.covariance", false]], "covariance (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.covariance", false]], "covariance (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.covariance", false]], "covariance (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.covariance", false]], "covariance (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.covariance", false]], "covariance (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.covariance", false]], "covariance (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.covariance", false]], "covariance (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.covariance", false]], "covariance (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.covariance", false]], "covariance (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.covariance", false]], "covariance (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.covariance", false]], "covariance (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.covariance", false]], "covariance (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.covariance", false]], "covariance (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.covariance", false]], "covariance (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.covariance", false]], "covariance() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.covariance", false]], "covariance_result (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.covariance_result", false]], "covarianceresult (class in gammapy.modeling)": [[210, "gammapy.modeling.CovarianceResult", false]], "create() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.create", false]], "create() (gammapy.data.observation class method)": [[88, "gammapy.data.Observation.create", false]], "create() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.create", false]], "create() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.create", false]], "create() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.create", false]], "create() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.create", false]], "create() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.create", false]], "create() (gammapy.maps.hpxmap class method)": [[193, "gammapy.maps.HpxMap.create", false]], "create() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.create", false]], "create() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.create", false]], "create() (gammapy.maps.mapcoord class method)": [[199, "gammapy.maps.MapCoord.create", false]], "create() (gammapy.maps.regiongeom class method)": [[201, "gammapy.maps.RegionGeom.create", false]], "create() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.create", false]], "create() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.create", false]], "create() (gammapy.maps.wcsmap class method)": [[205, "gammapy.maps.WcsMap.create", false]], "create() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.create", false]], "create() (gammapy.modeling.models.model static method)": [[245, "gammapy.modeling.models.Model.create", false]], "create() (gammapy.modeling.models.skymodel class method)": [[263, "gammapy.modeling.models.SkyModel.create", false]], "create_cosmic_ray_spectral_model() (in module gammapy.modeling.models)": [[279, "gammapy.modeling.models.create_cosmic_ray_spectral_model", false]], "create_crab_spectral_model() (in module gammapy.modeling.models)": [[280, "gammapy.modeling.models.create_crab_spectral_model", false]], "create_empty_map_dataset_from_irfs() (in module gammapy.datasets)": [[112, "gammapy.datasets.create_empty_map_dataset_from_irfs", false]], "create_fermi_isotropic_diffuse_model() (in module gammapy.modeling.models)": [[281, "gammapy.modeling.models.create_fermi_isotropic_diffuse_model", false]], "create_map_dataset_from_observation() (in module gammapy.datasets)": [[113, "gammapy.datasets.create_map_dataset_from_observation", false]], "create_map_dataset_geoms() (in module gammapy.datasets)": [[114, "gammapy.datasets.create_map_dataset_geoms", false]], "crop() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.crop", false]], "crop() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.crop", false]], "crop() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.crop", false]], "crop() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.crop", false]], "crop() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.crop", false]], "crop() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.crop", false]], "crop() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.crop", false]], "crop() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.crop", false]], "crop() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.crop", false]], "crop() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.crop", false]], "cstat() (in module gammapy.stats)": [[297, "gammapy.stats.cstat", false]], "cumsum() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.cumsum", false]], "cumsum() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.cumsum", false]], "cumsum() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.cumsum", false]], "cumsum() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.cumsum", false]], "cumsum() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.cumsum", false]], "cumsum() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.cumsum", false]], "cumsum() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.cumsum", false]], "cumsum() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.cumsum", false]], "cumsum() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.cumsum", false]], "cumsum() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.cumsum", false]], "cumsum() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.cumsum", false]], "cumsum() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.cumsum", false]], "cumsum() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.cumsum", false]], "cumsum() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.cumsum", false]], "cumsum() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.cumsum", false]], "cumsum() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.cumsum", false]], "cumsum() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.cumsum", false]], "cumsum() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.cumsum", false]], "cutout() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.cutout", false]], "cutout() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.cutout", false]], "cutout() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.cutout", false]], "cutout() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.cutout", false]], "cutout() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.cutout", false]], "cutout() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.cutout", false]], "cutout() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.cutout", false]], "cutout() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.cutout", false]], "cutout() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.cutout", false]], "cutout() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.cutout", false]], "cutout() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.cutout", false]], "cutout() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.cutout", false]], "cutout() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.cutout", false]], "cutout() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.cutout", false]], "cutout() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.cutout", false]], "cutout_and_mask_region() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.cutout_and_mask_region", false]], "cutout_slices() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.cutout_slices", false]], "d_sun_to_galactic_center (in module gammapy.utils.coordinates)": [[307, "gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER", false]], "darkmatterannihilationspectralmodel (class in gammapy.astro.darkmatter)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel", false]], "darkmatterdecayspectralmodel (class in gammapy.astro.darkmatter)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel", false]], "data (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.data", false]], "data (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.data", false]], "data (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.data", false]], "data (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.data", false]], "data (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.data", false]], "data (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.data", false]], "data (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.data", false]], "data (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.data", false]], "data (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.data", false]], "data (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.data", false]], "data (gammapy.irf.psfkernel attribute)": [[161, "gammapy.irf.PSFKernel.data", false]], "data (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.data", false]], "data (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.data", false]], "data (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.data", false]], "data (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.data", false]], "data (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.data", false]], "data (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.data", false]], "data (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.data", false]], "data (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.data", false]], "data (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.data", false]], "data_nbytes() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.data_nbytes", false]], "data_nbytes() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.data_nbytes", false]], "data_nbytes() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.data_nbytes", false]], "data_nbytes() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.data_nbytes", false]], "data_shape (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.data_shape", false]], "data_shape (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.data_shape", false]], "data_shape (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.data_shape", false]], "data_shape (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.data_shape", false]], "data_shape (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.data_shape", false]], "data_shape (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.data_shape", false]], "data_shape (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.data_shape", false]], "data_shape (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.data_shape", false]], "data_shape() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.data_shape", false]], "data_shape_axes (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.data_shape_axes", false]], "data_shape_axes (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.data_shape_axes", false]], "data_shape_axes (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.data_shape_axes", false]], "data_shape_image (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.data_shape_image", false]], "dataset": [[577, "term-Dataset", true]], "dataset (class in gammapy.datasets)": [[99, "gammapy.datasets.Dataset", false]], "dataset_registry (in module gammapy.datasets)": [[98, "gammapy.datasets.DATASET_REGISTRY", false]], "datasetmodels (class in gammapy.modeling.models)": [[224, "gammapy.modeling.models.DatasetModels", false]], "datasets (class in gammapy.datasets)": [[100, "gammapy.datasets.Datasets", false]], "datasetsmaker (class in gammapy.makers)": [[169, "gammapy.makers.DatasetsMaker", false]], "datastore (class in gammapy.data)": [[82, "gammapy.data.DataStore", false]], "deepcopy() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.deepcopy", false]], "deepcopy() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.deepcopy", false]], "deepcopy() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.deepcopy", false]], "deepcopy() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.deepcopy", false]], "deepcopy() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.deepcopy", false]], "deepcopy() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.deepcopy", false]], "deepcopy() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.deepcopy", false]], "deepcopy() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.deepcopy", false]], "deepcopy() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.deepcopy", false]], "deepcopy() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.deepcopy", false]], "default_alpha (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.DEFAULT_ALPHA", false]], "default_alpha (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_ALPHA", false]], "default_beta (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_BETA", false]], "default_gamma (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_GAMMA", false]], "default_hdu_table (gammapy.data.datastore attribute)": [[82, "gammapy.data.DataStore.DEFAULT_HDU_TABLE", false]], "default_interp_kwargs (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.default_interp_kwargs", false]], "default_obs_table (gammapy.data.datastore attribute)": [[82, "gammapy.data.DataStore.DEFAULT_OBS_TABLE", false]], "default_parameters (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.default_parameters", false]], "default_parameters (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.default_parameters", false]], "default_parameters (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.default_parameters", false]], "default_parameters (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.default_parameters", false]], "default_parameters (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.default_parameters", false]], "default_scale_radius (gammapy.astro.darkmatter.burkertprofile attribute)": [[17, "gammapy.astro.darkmatter.BurkertProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.isothermalprofile attribute)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.mooreprofile attribute)": [[24, "gammapy.astro.darkmatter.MooreProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.nfwprofile attribute)": [[25, "gammapy.astro.darkmatter.NFWProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_SCALE_RADIUS", false]], "default_unit (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.default_unit", false]], "default_unit (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.default_unit", false]], "default_unit (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.default_unit", false]], "default_unit (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.default_unit", false]], "default_unit (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.default_unit", false]], "default_unit (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.default_unit", false]], "delete_interval() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.delete_interval", false]], "description (gammapy.catalog.sourcecatalog1lhaaso attribute)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.description", false]], "description (gammapy.catalog.sourcecatalog2fhl attribute)": [[58, "gammapy.catalog.SourceCatalog2FHL.description", false]], "description (gammapy.catalog.sourcecatalog2hwc attribute)": [[59, "gammapy.catalog.SourceCatalog2HWC.description", false]], "description (gammapy.catalog.sourcecatalog2pc attribute)": [[60, "gammapy.catalog.SourceCatalog2PC.description", false]], "description (gammapy.catalog.sourcecatalog3fgl attribute)": [[61, "gammapy.catalog.SourceCatalog3FGL.description", false]], "description (gammapy.catalog.sourcecatalog3fhl attribute)": [[62, "gammapy.catalog.SourceCatalog3FHL.description", false]], "description (gammapy.catalog.sourcecatalog3hwc attribute)": [[63, "gammapy.catalog.SourceCatalog3HWC.description", false]], "description (gammapy.catalog.sourcecatalog3pc attribute)": [[64, "gammapy.catalog.SourceCatalog3PC.description", false]], "description (gammapy.catalog.sourcecatalog4fgl attribute)": [[65, "gammapy.catalog.SourceCatalog4FGL.description", false]], "description (gammapy.catalog.sourcecataloggammacat attribute)": [[66, "gammapy.catalog.SourceCatalogGammaCat.description", false]], "description (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.description", false]], "description() (gammapy.catalog.sourcecatalog class method)": [[56, "gammapy.catalog.SourceCatalog.description", false]], "dict() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.dict", false]], "dict() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.dict", false]], "dict() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.dict", false]], "dict() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.dict", false]], "dict() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.dict", false]], "discrete_correlation() (in module gammapy.stats)": [[298, "gammapy.stats.discrete_correlation", false]], "diskspatialmodel (class in gammapy.modeling.models)": [[225, "gammapy.modeling.models.DiskSpatialModel", false]], "distance_gc (gammapy.astro.darkmatter.burkertprofile attribute)": [[17, "gammapy.astro.darkmatter.BurkertProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.dmprofile attribute)": [[18, "gammapy.astro.darkmatter.DMProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.isothermalprofile attribute)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.mooreprofile attribute)": [[24, "gammapy.astro.darkmatter.MooreProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.nfwprofile attribute)": [[25, "gammapy.astro.darkmatter.NFWProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DISTANCE_GC", false]], "dl3": [[577, "term-DL3", true]], "dl4": [[577, "term-DL4", true]], "dl5": [[577, "term-DL5", true]], "dl6": [[577, "term-DL6", true]], "dmprofile (class in gammapy.astro.darkmatter)": [[18, "gammapy.astro.darkmatter.DMProfile", false]], "dnde (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde", false]], "dnde (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde", false]], "dnde_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_err", false]], "dnde_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_err", false]], "dnde_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_errn", false]], "dnde_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_errn", false]], "dnde_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_errp", false]], "dnde_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_errp", false]], "dnde_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_ref", false]], "dnde_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_ref", false]], "dnde_scan_values (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_scan_values", false]], "dnde_scan_values (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_scan_values", false]], "dnde_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_ul", false]], "dnde_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_ul", false]], "dot() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.dot", false]], "dot() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.dot", false]], "dot() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.dot", false]], "dot() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.dot", false]], "dot() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.dot", false]], "dot() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.dot", false]], "downsample() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.downsample", false]], "downsample() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.downsample", false]], "downsample() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.downsample", false]], "downsample() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.downsample", false]], "downsample() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.downsample", false]], "downsample() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.downsample", false]], "downsample() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.downsample", false]], "downsample() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.downsample", false]], "downsample() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.downsample", false]], "downsample() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.downsample", false]], "downsample() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.downsample", false]], "downsample() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.downsample", false]], "downsample() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.downsample", false]], "downsample() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.downsample", false]], "downsample() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.downsample", false]], "downsample() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.downsample", false]], "downsample() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.downsample", false]], "downsample() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.downsample", false]], "downsample() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.downsample", false]], "downsample() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.downsample", false]], "downsample() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.downsample", false]], "downsample() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.downsample", false]], "downsample() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.downsample", false]], "draw() (in module gammapy.utils.random)": [[330, "gammapy.utils.random.draw", false]], "drift (gammapy.data.pointingmode attribute)": [[95, "gammapy.data.PointingMode.DRIFT", false]], "drop() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.drop", false]], "drop() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.drop", false]], "drop() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.drop", false]], "drop() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.drop", false]], "drop() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.drop", false]], "dtype (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.dtype", false]], "dtype (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.dtype", false]], "duration (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.duration", false]], "e (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.e", false]], "e (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.e", false]], "e (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.e", false]], "e2dnde (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde", false]], "e2dnde (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde", false]], "e2dnde_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_err", false]], "e2dnde_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_err", false]], "e2dnde_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_errn", false]], "e2dnde_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_errn", false]], "e2dnde_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_errp", false]], "e2dnde_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_errp", false]], "e2dnde_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_ref", false]], "e2dnde_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_ref", false]], "e2dnde_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_ul", false]], "e2dnde_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_ul", false]], "e_peak (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.e_peak", false]], "e_peak (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.e_peak", false]], "earth_location_from_dict() (in module gammapy.utils.fits)": [[317, "gammapy.utils.fits.earth_location_from_dict", false]], "ebl_data_builtin (in module gammapy.modeling.models)": [[227, "gammapy.modeling.models.EBL_DATA_BUILTIN", false]], "eblabsorptionnormspectralmodel (class in gammapy.modeling.models)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel", false]], "ebreak (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.ebreak", false]], "ebreak (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.ebreak", false]], "ecut (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.ecut", false]], "ecut (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.ecut", false]], "edge_width (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.edge_width", false]], "edges (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.edges", false]], "edges (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.edges", false]], "edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.edges", false]], "edges_max (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.edges_max", false]], "edges_max (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.edges_max", false]], "edges_max (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.edges_max", false]], "edges_min (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.edges_min", false]], "edges_min (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.edges_min", false]], "edges_min (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.edges_min", false]], "edisp": [[577, "term-EDisp", true]], "edisp (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.edisp", false]], "edisp (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.edisp", false]], "edisp (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.edisp", false]], "edisp (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.edisp", false]], "edisp (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.edisp", false]], "edisp_map (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.edisp_map", false]], "edisp_map (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.edisp_map", false]], "edispkernel (class in gammapy.irf)": [[150, "gammapy.irf.EDispKernel", false]], "edispkernelmap (class in gammapy.irf)": [[151, "gammapy.irf.EDispKernelMap", false]], "edispmap (class in gammapy.irf)": [[152, "gammapy.irf.EDispMap", false]], "effectiveareatable2d (class in gammapy.irf)": [[153, "gammapy.irf.EffectiveAreaTable2D", false]], "eflux (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux", false]], "eflux (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux", false]], "eflux_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_err", false]], "eflux_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_err", false]], "eflux_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_errn", false]], "eflux_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_errn", false]], "eflux_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_errp", false]], "eflux_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_errp", false]], "eflux_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_ref", false]], "eflux_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_ref", false]], "eflux_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_ul", false]], "eflux_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_ul", false]], "einastoprofile (class in gammapy.astro.darkmatter)": [[21, "gammapy.astro.darkmatter.EinastoProfile", false]], "emax (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.emax", false]], "emin (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.emin", false]], "energy (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.energy", false]], "energy (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.energy", false]], "energy_axes_are_aligned (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.energy_axes_are_aligned", false]], "energy_axis (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_axis", false]], "energy_axis (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_axis", false]], "energy_center (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.energy_center", false]], "energy_flux() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.energy_flux", false]], "energy_flux() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.energy_flux", false]], "energy_flux() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.energy_flux", false]], "energy_flux() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.energy_flux", false]], "energy_flux_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.energy_flux_error", false]], "energy_integrated() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.energy_integrated", false]], "energy_mask() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.energy_mask", false]], "energy_mask() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.energy_mask", false]], "energy_mask() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.energy_mask", false]], "energy_mask() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.energy_mask", false]], "energy_max (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_max", false]], "energy_max (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_max", false]], "energy_min (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_min", false]], "energy_min (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_min", false]], "energy_name (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.energy_name", false]], "energy_name (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.energy_name", false]], "energy_range (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.energy_range", false]], "energy_range (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.energy_range", false]], "energy_range (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.energy_range", false]], "energy_range (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.energy_range", false]], "energy_range (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range", false]], "energy_range (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range", false]], "energy_range (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range", false]], "energy_range (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range", false]], "energy_range_fit (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range_fit", false]], "energy_range_fit (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range_fit", false]], "energy_range_fit (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range_fit", false]], "energy_range_fit (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range_fit", false]], "energy_range_safe (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range_safe", false]], "energy_range_safe (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range_safe", false]], "energy_range_safe (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range_safe", false]], "energy_range_safe (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range_safe", false]], "energy_range_total (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range_total", false]], "energy_range_total (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range_total", false]], "energy_range_total (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range_total", false]], "energy_range_total (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range_total", false]], "energy_ranges (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.energy_ranges", false]], "energy_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_ref", false]], "energy_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_ref", false]], "energydependentmorphologyestimator (class in gammapy.estimators)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator", false]], "energydependentmultigausspsf (class in gammapy.irf)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF", false]], "energydispersion2d (class in gammapy.irf)": [[155, "gammapy.irf.EnergyDispersion2D", false]], "eqcons (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.eqcons", false]], "eqcons (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.eqcons", false]], "eqcons (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.eqcons", false]], "eqcons (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.eqcons", false]], "eqcons (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.eqcons", false]], "eqcons (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.eqcons", false]], "eqcons (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.eqcons", false]], "eqcons (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.eqcons", false]], "eqcons (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.eqcons", false]], "eqcons (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.eqcons", false]], "error (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.error", false]], "error (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.error", false]], "error (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.error", false]], "error (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.error", false]], "error_callback() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.error_callback", false]], "estimate_best_fit() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_best_fit", false]], "estimate_best_fit() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_best_fit", false]], "estimate_best_fit() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_best_fit", false]], "estimate_best_fit() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_best_fit", false]], "estimate_counts() (gammapy.estimators.fluxpointsestimator static method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_counts", false]], "estimate_counts() (gammapy.estimators.fluxprofileestimator static method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_counts", false]], "estimate_counts() (gammapy.estimators.lightcurveestimator static method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_counts", false]], "estimate_counts() (gammapy.estimators.parameterestimator static method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_counts", false]], "estimate_energy_dependence() (gammapy.estimators.energydependentmorphologyestimator method)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.estimate_energy_dependence", false]], "estimate_errn_errp() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_errn_errp", false]], "estimate_errn_errp() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_errn_errp", false]], "estimate_errn_errp() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_errn_errp", false]], "estimate_errn_errp() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_errn_errp", false]], "estimate_excess_map() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_excess_map", false]], "estimate_exposure_reco_energy() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_exposure_reco_energy", false]], "estimate_exposure_reco_energy() (in module gammapy.estimators.utils)": [[140, "gammapy.estimators.utils.estimate_exposure_reco_energy", false]], "estimate_fit_input_maps() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_fit_input_maps", false]], "estimate_flux_default() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_flux_default", false]], "estimate_flux_map() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_flux_map", false]], "estimate_flux_point() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_flux_point", false]], "estimate_flux_point() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_flux_point", false]], "estimate_flux_point() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_flux_point", false]], "estimate_kernel() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_kernel", false]], "estimate_kernel() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_kernel", false]], "estimate_maps() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.estimate_maps", false]], "estimate_mask_default() (gammapy.estimators.excessmapestimator static method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_mask_default", false]], "estimate_mask_default() (gammapy.estimators.tsmapestimator static method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_mask_default", false]], "estimate_min_e2dnde() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.estimate_min_e2dnde", false]], "estimate_min_excess() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.estimate_min_excess", false]], "estimate_npred() (gammapy.estimators.fluxpointsestimator static method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_npred", false]], "estimate_npred() (gammapy.estimators.fluxprofileestimator static method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_npred", false]], "estimate_npred() (gammapy.estimators.lightcurveestimator static method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_npred", false]], "estimate_npred() (gammapy.estimators.parameterestimator static method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_npred", false]], "estimate_npred_excess() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_npred_excess", false]], "estimate_npred_excess() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_npred_excess", false]], "estimate_npred_excess() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_npred_excess", false]], "estimate_pad_width() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_pad_width", false]], "estimate_scan() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_scan", false]], "estimate_scan() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_scan", false]], "estimate_scan() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_scan", false]], "estimate_scan() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_scan", false]], "estimate_time_bin_flux() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_time_bin_flux", false]], "estimate_ts() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_ts", false]], "estimate_ts() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_ts", false]], "estimate_ts() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_ts", false]], "estimate_ts() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_ts", false]], "estimate_ul() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_ul", false]], "estimate_ul() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_ul", false]], "estimate_ul() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_ul", false]], "estimate_ul() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_ul", false]], "estimator": [[577, "term-Estimator", true]], "estimator (class in gammapy.estimators)": [[121, "gammapy.estimators.Estimator", false]], "estimator_registry (in module gammapy.estimators)": [[119, "gammapy.estimators.ESTIMATOR_REGISTRY", false]], "eta (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.eta", false]], "eta (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.eta", false]], "eta (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.eta", false]], "evaluate() (gammapy.astro.darkmatter.burkertprofile static method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.einastoprofile static method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.isothermalprofile static method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.mooreprofile static method)": [[24, "gammapy.astro.darkmatter.MooreProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.nfwprofile static method)": [[25, "gammapy.astro.darkmatter.NFWProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.zhaoprofile static method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.evaluate", false]], "evaluate() (gammapy.astro.population.casebattacharya1998 static method)": [[28, "gammapy.astro.population.CaseBattacharya1998.evaluate", false]], "evaluate() (gammapy.astro.population.exponential static method)": [[29, "gammapy.astro.population.Exponential.evaluate", false]], "evaluate() (gammapy.astro.population.faucherkaspi2006 static method)": [[30, "gammapy.astro.population.FaucherKaspi2006.evaluate", false]], "evaluate() (gammapy.astro.population.faucherkaspi2006velocitybimodal static method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.evaluate", false]], "evaluate() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian static method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.evaluate", false]], "evaluate() (gammapy.astro.population.lorimer2006 static method)": [[35, "gammapy.astro.population.Lorimer2006.evaluate", false]], "evaluate() (gammapy.astro.population.paczynski1990 static method)": [[36, "gammapy.astro.population.Paczynski1990.evaluate", false]], "evaluate() (gammapy.astro.population.paczynski1990velocity static method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.evaluate", false]], "evaluate() (gammapy.astro.population.yusifovkucuk2004 static method)": [[39, "gammapy.astro.population.YusifovKucuk2004.evaluate", false]], "evaluate() (gammapy.astro.population.yusifovkucuk2004b static method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.evaluate", false]], "evaluate() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.evaluate", false]], "evaluate() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.evaluate", false]], "evaluate() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.evaluate", false]], "evaluate() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.evaluate", false]], "evaluate() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.evaluate", false]], "evaluate() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.evaluate", false]], "evaluate() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate", false]], "evaluate() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.evaluate", false]], "evaluate() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.evaluate", false]], "evaluate() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate", false]], "evaluate() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.evaluate", false]], "evaluate() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.evaluate", false]], "evaluate() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.evaluate", false]], "evaluate() (gammapy.modeling.models.brokenpowerlawspectralmodel static method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constantfluxspatialmodel static method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constantspatialmodel static method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constantspectralmodel static method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constanttemporalmodel static method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.diskspatialmodel static method)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel static method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel static method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expcutoffpowerlawspectralmodel static method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expdecaytemporalmodel static method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussianprior static method)": [[233, "gammapy.modeling.models.GaussianPrior.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussianspatialmodel static method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussianspectralmodel static method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussiantemporalmodel static method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.generalizedgaussianspatialmodel static method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.generalizedgaussiantemporalmodel static method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.lineartemporalmodel static method)": [[240, "gammapy.modeling.models.LinearTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.logparabolanormspectralmodel static method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.logparabolaspectralmodel static method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.meyercrabspectralmodel static method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlaw2spectralmodel static method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlawnormspectralmodel static method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlawspectralmodel static method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlawtemporalmodel static method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.shell2spatialmodel static method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.shellspatialmodel static method)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.sinetemporalmodel static method)": [[262, "gammapy.modeling.models.SineTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.evaluate", false]], "evaluate() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel static method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel static method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel static method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel static method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.uniformprior static method)": [[278, "gammapy.modeling.models.UniformPrior.evaluate", false]], "evaluate_containment() (gammapy.irf.energydependentmultigausspsf static method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate_containment", false]], "evaluate_containment() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate_containment", false]], "evaluate_containment() (gammapy.irf.psfking static method)": [[162, "gammapy.irf.PSFKing.evaluate_containment", false]], "evaluate_direct() (gammapy.irf.energydependentmultigausspsf static method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate_direct", false]], "evaluate_direct() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate_direct", false]], "evaluate_direct() (gammapy.irf.psfking static method)": [[162, "gammapy.irf.PSFKing.evaluate_direct", false]], "evaluate_energy_flux() (gammapy.modeling.models.powerlawnormspectralmodel static method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate_energy_flux", false]], "evaluate_energy_flux() (gammapy.modeling.models.powerlawspectralmodel static method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate_energy_flux", false]], "evaluate_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.evaluate_error", false]], "evaluate_geom() (gammapy.modeling.models.constantfluxspatialmodel static method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluate_geom", false]], "evaluate_integral() (gammapy.modeling.models.powerlaw2spectralmodel static method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.evaluate_integral", false]], "evaluate_integral() (gammapy.modeling.models.powerlawnormspectralmodel static method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate_integral", false]], "evaluate_integral() (gammapy.modeling.models.powerlawspectralmodel static method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate_integral", false]], "evaluate_parameters() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate_parameters", false]], "evaluate_parameters() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate_parameters", false]], "evaluate_parameters() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.evaluate_parameters", false]], "evaluation_bin_size_min (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluation_bin_size_min", false]], "evaluation_radius (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluation_radius", false]], "evaluation_region (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluation_region", false]], "evaluators (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.evaluators", false]], "evaluators (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.evaluators", false]], "evaluators (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.evaluators", false]], "evaluators (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.evaluators", false]], "event_det_coords() (gammapy.datasets.mapdataseteventsampler static method)": [[103, "gammapy.datasets.MapDatasetEventSampler.event_det_coords", false]], "event_det_coords() (gammapy.datasets.observationeventsampler static method)": [[108, "gammapy.datasets.ObservationEventSampler.event_det_coords", false]], "event_filter_types (gammapy.data.observationfilter attribute)": [[89, "gammapy.data.ObservationFilter.EVENT_FILTER_TYPES", false]], "event_list_meta() (gammapy.datasets.mapdataseteventsampler static method)": [[103, "gammapy.datasets.MapDatasetEventSampler.event_list_meta", false]], "event_list_meta() (gammapy.datasets.observationeventsampler static method)": [[108, "gammapy.datasets.ObservationEventSampler.event_list_meta", false]], "eventlist (class in gammapy.data)": [[83, "gammapy.data.EventList", false]], "eventlistmetadata (class in gammapy.data)": [[84, "gammapy.data.EventListMetaData", false]], "events (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.events", false]], "evolved (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.evolved", false]], "evolved (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.evolved", false]], "evolved (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.evolved", false]], "evolved (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.evolved", false]], "evolved (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.evolved", false]], "evolved (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.evolved", false]], "evolved (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.evolved", false]], "excess (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.excess", false]], "excess (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.excess", false]], "excess (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.excess", false]], "excess (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.excess", false]], "excessmapestimator (class in gammapy.estimators)": [[122, "gammapy.estimators.ExcessMapEstimator", false]], "expand_map() (gammapy.estimators.lightcurveestimator static method)": [[130, "gammapy.estimators.LightCurveEstimator.expand_map", false]], "expcutoffpowerlaw3fglspectralmodel (class in gammapy.modeling.models)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel", false]], "expcutoffpowerlawnormspectralmodel (class in gammapy.modeling.models)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel", false]], "expcutoffpowerlawspectralmodel (class in gammapy.modeling.models)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel", false]], "expdecaytemporalmodel (class in gammapy.modeling.models)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel", false]], "expfactor (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.expfactor", false]], "expfactor (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.expfactor", false]], "exponential (class in gammapy.astro.population)": [[29, "gammapy.astro.population.Exponential", false]], "exposure (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.exposure", false]], "exposure (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.exposure", false]], "exposure (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.exposure", false]], "exposure (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.exposure", false]], "extend() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.extend", false]], "extend() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.extend", false]], "extend() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.extend", false]], "f0 (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.f0", false]], "f1 (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.f1", false]], "f2 (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.f2", false]], "f_cash_root_cython() (in module gammapy.stats)": [[299, "gammapy.stats.f_cash_root_cython", false]], "factor (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.factor", false]], "factor (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.factor", false]], "factor_max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.factor_max", false]], "factor_max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.factor_max", false]], "factor_min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.factor_min", false]], "factor_min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.factor_min", false]], "fake() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.fake", false]], "fake() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.fake", false]], "fake() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.fake", false]], "fake() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.fake", false]], "faucherkaspi2006 (class in gammapy.astro.population)": [[30, "gammapy.astro.population.FaucherKaspi2006", false]], "faucherkaspi2006velocitybimodal (class in gammapy.astro.population)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal", false]], "faucherkaspi2006velocitymaxwellian (class in gammapy.astro.population)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian", false]], "faucherspiral (class in gammapy.astro.population)": [[33, "gammapy.astro.population.FaucherSpiral", false]], "field() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.field", false]], "field() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.field", false]], "fill_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_by_coord", false]], "fill_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_by_idx", false]], "fill_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_by_pix", false]], "fill_events() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_events", false]], "fill_events() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_events", false]], "fill_events() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_events", false]], "fill_events() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_events", false]], "fill_events() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_events", false]], "fill_events() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_events", false]], "filled() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.filled", false]], "filled() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.filled", false]], "filter_events() (gammapy.data.observationfilter method)": [[89, "gammapy.data.ObservationFilter.filter_events", false]], "filter_gti() (gammapy.data.observationfilter method)": [[89, "gammapy.data.ObservationFilter.filter_gti", false]], "filter_success_nan (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.filter_success_nan", false]], "filter_success_nan (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.filter_success_nan", false]], "find_peaks() (in module gammapy.estimators.utils)": [[141, "gammapy.estimators.utils.find_peaks", false]], "find_peaks_in_flux_map() (in module gammapy.estimators.utils)": [[142, "gammapy.estimators.utils.find_peaks_in_flux_map", false]], "fit (class in gammapy.modeling)": [[211, "gammapy.modeling.Fit", false]], "fit_deriv (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.fit_deriv", false]], "fit_deriv (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.fit_deriv", false]], "fit_deriv (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.fit_deriv", false]], "fit_deriv (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.fit_deriv", false]], "fit_deriv (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.fit_deriv", false]], "fit_deriv (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.fit_deriv", false]], "fit_deriv (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.fit_deriv", false]], "fit_deriv (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.fit_deriv", false]], "fit_deriv (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.fit_deriv", false]], "fit_deriv (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.fit_deriv", false]], "fitresult (class in gammapy.modeling)": [[212, "gammapy.modeling.FitResult", false]], "fittable (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.fittable", false]], "fittable (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.fittable", false]], "fittable (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.fittable", false]], "fittable (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.fittable", false]], "fittable (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.fittable", false]], "fittable (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.fittable", false]], "fittable (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.fittable", false]], "fittable (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.fittable", false]], "fittable (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.fittable", false]], "fittable (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.fittable", false]], "fixed (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.fixed", false]], "fixed (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.fixed", false]], "fixed (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.fixed", false]], "fixed (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.fixed", false]], "fixed (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.fixed", false]], "fixed (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.fixed", false]], "fixed (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.fixed", false]], "fixed (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.fixed", false]], "fixed (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.fixed", false]], "fixed (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.fixed", false]], "fixed_altaz (gammapy.data.fixedpointinginfo attribute)": [[85, "gammapy.data.FixedPointingInfo.fixed_altaz", false]], "fixed_icrs (gammapy.data.fixedpointinginfo attribute)": [[85, "gammapy.data.FixedPointingInfo.fixed_icrs", false]], "fixedpointinginfo (class in gammapy.data)": [[85, "gammapy.data.FixedPointingInfo", false]], "flat (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.flat", false]], "flux (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux", false]], "flux (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux", false]], "flux_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_err", false]], "flux_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_err", false]], "flux_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_errn", false]], "flux_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_errn", false]], "flux_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_errp", false]], "flux_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_errp", false]], "flux_points (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.flux_points", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.flux_points_meta", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.flux_points_meta", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.flux_points_meta", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.flux_points_meta", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.flux_points_table", false]], "flux_pred() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.flux_pred", false]], "flux_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_ref", false]], "flux_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_ref", false]], "flux_sensitivity (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_sensitivity", false]], "flux_sensitivity (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_sensitivity", false]], "flux_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_ul", false]], "flux_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_ul", false]], "fluxmaps (class in gammapy.estimators)": [[123, "gammapy.estimators.FluxMaps", false]], "fluxmetadata (class in gammapy.estimators)": [[124, "gammapy.estimators.FluxMetaData", false]], "fluxpoints (class in gammapy.estimators)": [[125, "gammapy.estimators.FluxPoints", false]], "fluxpointsdataset (class in gammapy.datasets)": [[101, "gammapy.datasets.FluxPointsDataset", false]], "fluxpointsestimator (class in gammapy.estimators)": [[126, "gammapy.estimators.FluxPointsEstimator", false]], "fluxprofileestimator (class in gammapy.estimators)": [[127, "gammapy.estimators.FluxProfileEstimator", false]], "footprint (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.footprint", false]], "footprint_rectangle_sky_region (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.footprint_rectangle_sky_region", false]], "format_plot_xaxis() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.format_plot_xaxis", false]], "format_plot_xaxis() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.format_plot_xaxis", false]], "format_plot_xaxis() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.format_plot_xaxis", false]], "format_plot_yaxis() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.format_plot_yaxis", false]], "fov": [[577, "term-FoV", true]], "fov background": [[577, "term-FoV-Background", true]], "fov_alignment (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.fov_alignment", false]], "fov_alignment (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.fov_alignment", false]], "fov_alignment (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.fov_alignment", false]], "fov_alignment (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.fov_alignment", false]], "fov_alignment (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.fov_alignment", false]], "fov_alignment (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.fov_alignment", false]], "fov_alignment (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.fov_alignment", false]], "fov_alignment (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.fov_alignment", false]], "fov_alignment (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.fov_alignment", false]], "fov_alignment (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.fov_alignment", false]], "fov_alignment (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.fov_alignment", false]], "fov_alignment (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.fov_alignment", false]], "fov_to_sky() (in module gammapy.utils.coordinates)": [[309, "gammapy.utils.coordinates.fov_to_sky", false]], "fovalignment (class in gammapy.irf)": [[156, "gammapy.irf.FoVAlignment", false]], "fovbackgroundmaker (class in gammapy.makers)": [[170, "gammapy.makers.FoVBackgroundMaker", false]], "fovbackgroundmodel (class in gammapy.modeling.models)": [[232, "gammapy.modeling.models.FoVBackgroundModel", false]], "frame (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.frame", false]], "frame (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.frame", false]], "frame (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.frame", false]], "frame (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.frame", false]], "frame (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.frame", false]], "frame (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.frame", false]], "frame (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.frame", false]], "free_parameters (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.free_parameters", false]], "free_parameters (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.free_parameters", false]], "freeze() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.freeze", false]], "freeze() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.freeze", false]], "freeze() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.freeze", false]], "freeze() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.freeze", false]], "freeze() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.freeze", false]], "freeze() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.freeze", false]], "freeze() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.freeze", false]], "freeze() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.freeze", false]], "freeze() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.freeze", false]], "freeze() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.freeze", false]], "freeze() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.freeze", false]], "freeze() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.freeze", false]], "freeze_all() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.freeze_all", false]], "freeze_all() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.freeze_all", false]], "from_aligned() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.from_aligned", false]], "from_bounds() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_bounds", false]], "from_default() (gammapy.maps.mapaxes class method)": [[197, "gammapy.maps.MapAxes.from_default", false]], "from_diagonal_response() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_diagonal_response", false]], "from_diagonal_response() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_diagonal_response", false]], "from_diagonal_response() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.from_diagonal_response", false]], "from_dict() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel class method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.from_dict", false]], "from_dict() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel class method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.from_dict", false]], "from_dict() (gammapy.astro.darkmatter.primaryflux class method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.from_dict", false]], "from_dict() (gammapy.datasets.fluxpointsdataset class method)": [[101, "gammapy.datasets.FluxPointsDataset.from_dict", false]], "from_dict() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.from_dict", false]], "from_dict() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_dict", false]], "from_dict() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.from_dict", false]], "from_dict() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_dict", false]], "from_dict() (gammapy.modeling.models.brokenpowerlawspectralmodel class method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.compoundspectralmodel class method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constantfluxspatialmodel class method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constantspatialmodel class method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constantspectralmodel class method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constanttemporalmodel class method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.datasetmodels class method)": [[224, "gammapy.modeling.models.DatasetModels.from_dict", false]], "from_dict() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel class method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel class method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expcutoffpowerlawspectralmodel class method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expdecaytemporalmodel class method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.fovbackgroundmodel class method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussianprior class method)": [[233, "gammapy.modeling.models.GaussianPrior.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussianspatialmodel class method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussianspectralmodel class method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussiantemporalmodel class method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.generalizedgaussianspatialmodel class method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.generalizedgaussiantemporalmodel class method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.lineartemporalmodel class method)": [[240, "gammapy.modeling.models.LinearTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.logparabolanormspectralmodel class method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.logparabolaspectralmodel class method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.meyercrabspectralmodel class method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.model static method)": [[245, "gammapy.modeling.models.Model.from_dict", false]], "from_dict() (gammapy.modeling.models.modelbase class method)": [[246, "gammapy.modeling.models.ModelBase.from_dict", false]], "from_dict() (gammapy.modeling.models.models class method)": [[247, "gammapy.modeling.models.Models.from_dict", false]], "from_dict() (gammapy.modeling.models.naimaspectralmodel class method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.piecewisenormspatialmodel class method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.piecewisenormspectralmodel class method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.pointspatialmodel class method)": [[251, "gammapy.modeling.models.PointSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlaw2spectralmodel class method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlawnormspectralmodel class method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlawspectralmodel class method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlawtemporalmodel class method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.prior class method)": [[256, "gammapy.modeling.models.Prior.from_dict", false]], "from_dict() (gammapy.modeling.models.scalespectralmodel class method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.shell2spatialmodel class method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.shellspatialmodel class method)": [[261, "gammapy.modeling.models.ShellSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.sinetemporalmodel class method)": [[262, "gammapy.modeling.models.SineTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.skymodel class method)": [[263, "gammapy.modeling.models.SkyModel.from_dict", false]], "from_dict() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel class method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.spatialmodel class method)": [[265, "gammapy.modeling.models.SpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.spectralmodel class method)": [[266, "gammapy.modeling.models.SpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel class method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel class method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel class method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatendspatialmodel class method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatendspectralmodel class method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatenpredmodel class method)": [[273, "gammapy.modeling.models.TemplateNPredModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatephasecurvetemporalmodel class method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.temporalmodel class method)": [[277, "gammapy.modeling.models.TemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.uniformprior class method)": [[278, "gammapy.modeling.models.UniformPrior.from_dict", false]], "from_dict() (gammapy.modeling.parameters class method)": [[215, "gammapy.modeling.Parameters.from_dict", false]], "from_dict() (gammapy.modeling.priorparameters class method)": [[217, "gammapy.modeling.PriorParameters.from_dict", false]], "from_dir() (gammapy.data.datastore class method)": [[82, "gammapy.data.DataStore.from_dir", false]], "from_edges() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_edges", false]], "from_edisp_kernel() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_edisp_kernel", false]], "from_energy_bounds() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_energy_bounds", false]], "from_energy_edges() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_energy_edges", false]], "from_events_files() (gammapy.data.datastore class method)": [[82, "gammapy.data.DataStore.from_events_files", false]], "from_factor_matrix() (gammapy.modeling.covariance class method)": [[209, "gammapy.modeling.Covariance.from_factor_matrix", false]], "from_file() (gammapy.data.datastore class method)": [[82, "gammapy.data.DataStore.from_file", false]], "from_fits_header() (gammapy.data.fixedpointinginfo class method)": [[85, "gammapy.data.FixedPointingInfo.from_fits_header", false]], "from_gauss() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_gauss", false]], "from_gauss() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_gauss", false]], "from_gauss() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.from_gauss", false]], "from_gauss() (gammapy.irf.psfkernel class method)": [[161, "gammapy.irf.PSFKernel.from_gauss", false]], "from_gauss() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.from_gauss", false]], "from_gauss() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.from_gauss", false]], "from_geom() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_geom", false]], "from_geom() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.from_geom", false]], "from_geom() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.from_geom", false]], "from_geom() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.from_geom", false]], "from_geom() (gammapy.maps.hpxmap static method)": [[193, "gammapy.maps.HpxMap.from_geom", false]], "from_geom() (gammapy.maps.hpxndmap static method)": [[194, "gammapy.maps.HpxNDMap.from_geom", false]], "from_geom() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.from_geom", false]], "from_geom() (gammapy.maps.maps class method)": [[200, "gammapy.maps.Maps.from_geom", false]], "from_geom() (gammapy.maps.regionndmap static method)": [[202, "gammapy.maps.RegionNDMap.from_geom", false]], "from_geom() (gammapy.maps.wcsmap static method)": [[205, "gammapy.maps.WcsMap.from_geom", false]], "from_geom() (gammapy.maps.wcsndmap static method)": [[206, "gammapy.maps.WcsNDMap.from_geom", false]], "from_geoms() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.from_geoms", false]], "from_geoms() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_geoms", false]], "from_geoms() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.from_geoms", false]], "from_geoms() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_geoms", false]], "from_gti() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_gti", false]], "from_gti_bounds() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_gti_bounds", false]], "from_hdu() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.from_hdu", false]], "from_hdu() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_hdu", false]], "from_hdu() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.from_hdu", false]], "from_hdulist() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.from_hdulist", false]], "from_hdulist() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_hdulist", false]], "from_hdulist() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.from_hdulist", false]], "from_hdulist() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_hdulist", false]], "from_hdulist() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.from_hdulist", false]], "from_hdulist() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_hdulist", false]], "from_hdulist() (gammapy.irf.background2d class method)": [[147, "gammapy.irf.Background2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.background3d class method)": [[148, "gammapy.irf.Background3D.from_hdulist", false]], "from_hdulist() (gammapy.irf.backgroundirf class method)": [[149, "gammapy.irf.BackgroundIRF.from_hdulist", false]], "from_hdulist() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_hdulist", false]], "from_hdulist() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.energydependentmultigausspsf class method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.from_hdulist", false]], "from_hdulist() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.irf class method)": [[157, "gammapy.irf.IRF.from_hdulist", false]], "from_hdulist() (gammapy.irf.irfmap class method)": [[158, "gammapy.irf.IRFMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.parametricpsf class method)": [[164, "gammapy.irf.ParametricPSF.from_hdulist", false]], "from_hdulist() (gammapy.irf.psf3d class method)": [[160, "gammapy.irf.PSF3D.from_hdulist", false]], "from_hdulist() (gammapy.irf.psfking class method)": [[162, "gammapy.irf.PSFKing.from_hdulist", false]], "from_hdulist() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.geom class method)": [[191, "gammapy.maps.Geom.from_hdulist", false]], "from_hdulist() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.from_hdulist", false]], "from_hdulist() (gammapy.maps.hpxmap class method)": [[193, "gammapy.maps.HpxMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.from_hdulist", false]], "from_hdulist() (gammapy.maps.maps class method)": [[200, "gammapy.maps.Maps.from_hdulist", false]], "from_hdulist() (gammapy.maps.regiongeom class method)": [[201, "gammapy.maps.RegionGeom.from_hdulist", false]], "from_hdulist() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.from_hdulist", false]], "from_hdulist() (gammapy.maps.wcsmap class method)": [[205, "gammapy.maps.WcsMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.from_hdulist", false]], "from_header() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.from_header", false]], "from_header() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.from_header", false]], "from_header() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.from_header", false]], "from_header() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.from_header", false]], "from_header() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.from_header", false]], "from_header() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.from_header", false]], "from_irf() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.from_irf", false]], "from_log10() (gammapy.modeling.models.logparabolanormspectralmodel class method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.from_log10", false]], "from_log10() (gammapy.modeling.models.logparabolaspectralmodel class method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.from_log10", false]], "from_map_dataset() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_map_dataset", false]], "from_map_dataset() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_map_dataset", false]], "from_maps() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.from_maps", false]], "from_maps() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_maps", false]], "from_nodes() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_nodes", false]], "from_orm() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.from_orm", false]], "from_orm() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.from_orm", false]], "from_orm() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.from_orm", false]], "from_orm() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.from_orm", false]], "from_orm() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.from_orm", false]], "from_pandas() (gammapy.data.hduindextable class method)": [[87, "gammapy.data.HDUIndexTable.from_pandas", false]], "from_pandas() (gammapy.data.observationtable class method)": [[91, "gammapy.data.ObservationTable.from_pandas", false]], "from_parameters() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel class method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.from_parameters", false]], "from_parameters() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel class method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.from_parameters", false]], "from_parameters() (gammapy.astro.darkmatter.primaryflux class method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.from_parameters", false]], "from_parameters() (gammapy.modeling.models.brokenpowerlawspectralmodel class method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.compoundspectralmodel class method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constantfluxspatialmodel class method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constantspatialmodel class method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constantspectralmodel class method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constanttemporalmodel class method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel class method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel class method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expcutoffpowerlawspectralmodel class method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expdecaytemporalmodel class method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.fovbackgroundmodel class method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussianprior class method)": [[233, "gammapy.modeling.models.GaussianPrior.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussianspatialmodel class method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussianspectralmodel class method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussiantemporalmodel class method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.generalizedgaussianspatialmodel class method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.generalizedgaussiantemporalmodel class method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.lineartemporalmodel class method)": [[240, "gammapy.modeling.models.LinearTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.logparabolanormspectralmodel class method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.logparabolaspectralmodel class method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.meyercrabspectralmodel class method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.modelbase class method)": [[246, "gammapy.modeling.models.ModelBase.from_parameters", false]], "from_parameters() (gammapy.modeling.models.naimaspectralmodel class method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.piecewisenormspatialmodel class method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.piecewisenormspectralmodel class method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.pointspatialmodel class method)": [[251, "gammapy.modeling.models.PointSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlaw2spectralmodel class method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlawnormspectralmodel class method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlawspectralmodel class method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlawtemporalmodel class method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.prior class method)": [[256, "gammapy.modeling.models.Prior.from_parameters", false]], "from_parameters() (gammapy.modeling.models.scalespectralmodel class method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.shell2spatialmodel class method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.shellspatialmodel class method)": [[261, "gammapy.modeling.models.ShellSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.sinetemporalmodel class method)": [[262, "gammapy.modeling.models.SineTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.skymodel class method)": [[263, "gammapy.modeling.models.SkyModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel class method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.spatialmodel class method)": [[265, "gammapy.modeling.models.SpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.spectralmodel class method)": [[266, "gammapy.modeling.models.SpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel class method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel class method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel class method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatendspatialmodel class method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatendspectralmodel class method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatenpredmodel class method)": [[273, "gammapy.modeling.models.TemplateNPredModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatephasecurvetemporalmodel class method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.temporalmodel class method)": [[277, "gammapy.modeling.models.TemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.uniformprior class method)": [[278, "gammapy.modeling.models.UniformPrior.from_parameters", false]], "from_parametrization() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.from_parametrization", false]], "from_position() (gammapy.modeling.models.constantfluxspatialmodel class method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.constantspatialmodel class method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.gaussianspatialmodel class method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.generalizedgaussianspatialmodel class method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.piecewisenormspatialmodel class method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.pointspatialmodel class method)": [[251, "gammapy.modeling.models.PointSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.shell2spatialmodel class method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.shellspatialmodel class method)": [[261, "gammapy.modeling.models.ShellSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.spatialmodel class method)": [[265, "gammapy.modeling.models.SpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.templatendspatialmodel class method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.from_position", false]], "from_region() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_region", false]], "from_region_map() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.from_region_map", false]], "from_regions() (gammapy.maps.regiongeom class method)": [[201, "gammapy.maps.RegionGeom.from_regions", false]], "from_spatial_model() (gammapy.irf.psfkernel class method)": [[161, "gammapy.irf.PSFKernel.from_spatial_model", false]], "from_spectrum_dataset() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_spectrum_dataset", false]], "from_stack() (gammapy.data.eventlist class method)": [[83, "gammapy.data.EventList.from_stack", false]], "from_stack() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.from_stack", false]], "from_stack() (gammapy.data.observations class method)": [[92, "gammapy.data.Observations.from_stack", false]], "from_stack() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.from_stack", false]], "from_stack() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_stack", false]], "from_stack() (gammapy.maps.hpxmap class method)": [[193, "gammapy.maps.HpxMap.from_stack", false]], "from_stack() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_stack", false]], "from_stack() (gammapy.maps.labelmapaxis class method)": [[195, "gammapy.maps.LabelMapAxis.from_stack", false]], "from_stack() (gammapy.maps.map class method)": [[196, "gammapy.maps.Map.from_stack", false]], "from_stack() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_stack", false]], "from_stack() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.from_stack", false]], "from_stack() (gammapy.maps.wcsmap class method)": [[205, "gammapy.maps.WcsMap.from_stack", false]], "from_stack() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.from_stack", false]], "from_stack() (gammapy.modeling.covariance class method)": [[209, "gammapy.modeling.Covariance.from_stack", false]], "from_stack() (gammapy.modeling.parameters class method)": [[215, "gammapy.modeling.Parameters.from_stack", false]], "from_stack() (gammapy.modeling.priorparameters class method)": [[217, "gammapy.modeling.PriorParameters.from_stack", false]], "from_table() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_table", false]], "from_table() (gammapy.irf.background2d class method)": [[147, "gammapy.irf.Background2D.from_table", false]], "from_table() (gammapy.irf.background3d class method)": [[148, "gammapy.irf.Background3D.from_table", false]], "from_table() (gammapy.irf.backgroundirf class method)": [[149, "gammapy.irf.BackgroundIRF.from_table", false]], "from_table() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_table", false]], "from_table() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.from_table", false]], "from_table() (gammapy.irf.energydependentmultigausspsf class method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.from_table", false]], "from_table() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.from_table", false]], "from_table() (gammapy.irf.irf class method)": [[157, "gammapy.irf.IRF.from_table", false]], "from_table() (gammapy.irf.parametricpsf class method)": [[164, "gammapy.irf.ParametricPSF.from_table", false]], "from_table() (gammapy.irf.psf3d class method)": [[160, "gammapy.irf.PSF3D.from_table", false]], "from_table() (gammapy.irf.psfking class method)": [[162, "gammapy.irf.PSFKing.from_table", false]], "from_table() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.from_table", false]], "from_table() (gammapy.maps.labelmapaxis class method)": [[195, "gammapy.maps.LabelMapAxis.from_table", false]], "from_table() (gammapy.maps.mapaxes class method)": [[197, "gammapy.maps.MapAxes.from_table", false]], "from_table() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_table", false]], "from_table() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.from_table", false]], "from_table() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_table", false]], "from_table() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.from_table", false]], "from_table_hdu() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.from_table_hdu", false]], "from_table_hdu() (gammapy.maps.mapaxes class method)": [[197, "gammapy.maps.MapAxes.from_table_hdu", false]], "from_table_hdu() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_table_hdu", false]], "from_time_bounds() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_time_bounds", false]], "from_time_edges() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_time_edges", false]], "from_time_intervals() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.from_time_intervals", false]], "from_wcs_tiles() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_wcs_tiles", false]], "from_yaml() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.from_yaml", false]], "from_yaml() (gammapy.modeling.models.datasetmodels class method)": [[224, "gammapy.modeling.models.DatasetModels.from_yaml", false]], "from_yaml() (gammapy.modeling.models.models class method)": [[247, "gammapy.modeling.models.Models.from_yaml", false]], "from_yaml() (in module gammapy.utils.scripts)": [[343, "gammapy.utils.scripts.from_yaml", false]], "frozen (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.frozen", false]], "frozen (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.frozen", false]], "frozen (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.frozen", false]], "frozen (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.frozen", false]], "frozen (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.frozen", false]], "frozen (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.frozen", false]], "frozen (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.frozen", false]], "frozen (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.frozen", false]], "frozen (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.frozen", false]], "frozen (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.frozen", false]], "frozen (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.frozen", false]], "frozen (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.frozen", false]], "frozen (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.frozen", false]], "frozen (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.frozen", false]], "frozen (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.frozen", false]], "frozen (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.frozen", false]], "frozen (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.frozen", false]], "frozen (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.frozen", false]], "frozen (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.frozen", false]], "frozen (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.frozen", false]], "gadf": [[577, "term-GADF", true]], "galactic (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.galactic", false]], "galactic() (in module gammapy.utils.coordinates)": [[310, "gammapy.utils.coordinates.galactic", false]], "galactic_median (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.galactic_median", false]], "gammapy command line option": [[11, "cmdoption-gammapy-ignore-warnings", false], [11, "cmdoption-gammapy-log-level", false], [11, "cmdoption-gammapy-version", false]], "gammapy-analysis-config command line option": [[11, "cmdoption-gammapy-analysis-config-filename", false], [11, "cmdoption-gammapy-analysis-config-overwrite", false]], "gammapy-analysis-run command line option": [[11, "cmdoption-gammapy-analysis-run-filename", false], [11, "cmdoption-gammapy-analysis-run-out", false], [11, "cmdoption-gammapy-analysis-run-overwrite", false]], "gammapy-download-datasets command line option": [[11, "cmdoption-gammapy-download-datasets-out", false], [11, "cmdoption-gammapy-download-datasets-release", false]], "gammapy-download-notebooks command line option": [[11, "cmdoption-gammapy-download-notebooks-out", false], [11, "cmdoption-gammapy-download-notebooks-release", false]], "gammapy-info command line option": [[11, "cmdoption-gammapy-info-dependencies", false], [11, "cmdoption-gammapy-info-envvar", false], [11, "cmdoption-gammapy-info-system", false], [11, "cmdoption-gammapy-info-version", false]], "gammapy-workflow-config command line option": [[11, "cmdoption-gammapy-workflow-config-filename", false], [11, "cmdoption-gammapy-workflow-config-overwrite", false]], "gammapy-workflow-run command line option": [[11, "cmdoption-gammapy-workflow-run-filename", false]], "gammapy.analysis": [[0, "module-gammapy.analysis", false]], "gammapy.astro.darkmatter": [[1, "module-gammapy.astro.darkmatter", false]], "gammapy.astro.population": [[1, "module-gammapy.astro.population", false]], "gammapy.astro.source": [[1, "module-gammapy.astro.source", false]], "gammapy.catalog": [[2, "module-gammapy.catalog", false]], "gammapy.data": [[3, "module-gammapy.data", false]], "gammapy.datasets": [[4, "module-gammapy.datasets", false]], "gammapy.datasets.utils": [[4, "module-gammapy.datasets.utils", false]], "gammapy.estimators": [[5, "module-gammapy.estimators", false]], "gammapy.estimators.utils": [[5, "module-gammapy.estimators.utils", false]], "gammapy.irf": [[7, "module-gammapy.irf", false]], "gammapy.makers": [[8, "module-gammapy.makers", false]], "gammapy.makers.utils": [[8, "module-gammapy.makers.utils", false]], "gammapy.maps": [[9, "module-gammapy.maps", false]], "gammapy.modeling": [[10, "module-gammapy.modeling", false]], "gammapy.modeling.models": [[10, "module-gammapy.modeling.models", false]], "gammapy.modeling.models.utils": [[10, "module-gammapy.modeling.models.utils", false]], "gammapy.stats": [[12, "module-gammapy.stats", false]], "gammapy.utils.cluster": [[13, "module-gammapy.utils.cluster", false]], "gammapy.utils.coordinates": [[13, "module-gammapy.utils.coordinates", false]], "gammapy.utils.fits": [[13, "module-gammapy.utils.fits", false]], "gammapy.utils.integrate": [[13, "module-gammapy.utils.integrate", false]], "gammapy.utils.interpolation": [[13, "module-gammapy.utils.interpolation", false]], "gammapy.utils.parallel": [[13, "module-gammapy.utils.parallel", false]], "gammapy.utils.random": [[13, "module-gammapy.utils.random", false]], "gammapy.utils.regions": [[13, "module-gammapy.utils.regions", false]], "gammapy.utils.scripts": [[13, "module-gammapy.utils.scripts", false]], "gammapy.utils.table": [[13, "module-gammapy.utils.table", false]], "gammapy.utils.testing": [[13, "module-gammapy.utils.testing", false]], "gammapy.utils.time": [[13, "module-gammapy.utils.time", false]], "gammapy.utils.units": [[13, "module-gammapy.utils.units", false]], "gammapy.visualization": [[14, "module-gammapy.visualization", false]], "gaussian_component() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.gaussian_component", false]], "gaussianprior (class in gammapy.modeling.models)": [[233, "gammapy.modeling.models.GaussianPrior", false]], "gaussianspatialmodel (class in gammapy.modeling.models)": [[234, "gammapy.modeling.models.GaussianSpatialModel", false]], "gaussianspectralmodel (class in gammapy.modeling.models)": [[235, "gammapy.modeling.models.GaussianSpectralModel", false]], "gaussiantemporalmodel (class in gammapy.modeling.models)": [[236, "gammapy.modeling.models.GaussianTemporalModel", false]], "generalizedgaussianspatialmodel (class in gammapy.modeling.models)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel", false]], "generalizedgaussiantemporalmodel (class in gammapy.modeling.models)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel", false]], "geom (class in gammapy.maps)": [[191, "gammapy.maps.Geom", false]], "geom (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.geom", false]], "geom (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.geom", false]], "geom (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.geom", false]], "geom (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.geom", false]], "geom (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.geom", false]], "geom (gammapy.maps.maps attribute)": [[200, "gammapy.maps.Maps.geom", false]], "geom (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.geom", false]], "geom (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.geom", false]], "geom (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.geom", false]], "geoms (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.geoms", false]], "geoms (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.geoms", false]], "geoms (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.geoms", false]], "geoms (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.geoms", false]], "get() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.get", false]], "get_altaz() (gammapy.data.fixedpointinginfo method)": [[85, "gammapy.data.FixedPointingInfo.get_altaz", false]], "get_altaz() (gammapy.data.pointinginfo method)": [[94, "gammapy.data.PointingInfo.get_altaz", false]], "get_bias() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_bias", false]], "get_bias_energy() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_bias_energy", false]], "get_bounding_box() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.get_bounding_box", false]], "get_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_by_coord", false]], "get_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_by_coord", false]], "get_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_by_idx", false]], "get_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_by_idx", false]], "get_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_by_pix", false]], "get_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_by_pix", false]], "get_combined_flux_maps() (in module gammapy.estimators.utils)": [[143, "gammapy.estimators.utils.get_combined_flux_maps", false]], "get_combined_significance_maps() (in module gammapy.estimators.utils)": [[144, "gammapy.estimators.utils.get_combined_significance_maps", false]], "get_coord() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.get_coord", false]], "get_coord() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.get_coord", false]], "get_coord() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.get_coord", false]], "get_coord() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.get_coord", false]], "get_coord() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.get_coord", false]], "get_datasets() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_datasets", false]], "get_edisp_kernel() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.get_edisp_kernel", false]], "get_edisp_kernel() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.get_edisp_kernel", false]], "get_excess_map() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_excess_map", false]], "get_filenames() (gammapy.datasets.ogipdatasetreader method)": [[106, "gammapy.datasets.OGIPDatasetReader.get_filenames", false]], "get_filenames() (gammapy.datasets.ogipdatasetwriter static method)": [[107, "gammapy.datasets.OGIPDatasetWriter.get_filenames", false]], "get_flux_points() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_flux_points", false]], "get_flux_points() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.get_flux_points", false]], "get_flux_points() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.get_flux_points", false]], "get_hdu() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.get_hdu", false]], "get_icrs() (gammapy.data.fixedpointinginfo method)": [[85, "gammapy.data.FixedPointingInfo.get_icrs", false]], "get_icrs() (gammapy.data.pointinginfo method)": [[94, "gammapy.data.PointingInfo.get_icrs", false]], "get_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.get_idx", false]], "get_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.get_idx", false]], "get_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.get_idx", false]], "get_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.get_idx", false]], "get_image_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_image_by_coord", false]], "get_image_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_image_by_idx", false]], "get_image_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_image_by_pix", false]], "get_images_paths() (in module gammapy.utils.scripts)": [[344, "gammapy.utils.scripts.get_images_paths", false]], "get_index_list() (gammapy.maps.hpxgeom static method)": [[192, "gammapy.maps.HpxGeom.get_index_list", false]], "get_irfs_features() (in module gammapy.data)": [[96, "gammapy.data.get_irfs_features", false]], "get_kernels() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.get_kernels", false]], "get_light_curve() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_light_curve", false]], "get_mean() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_mean", false]], "get_observations() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_observations", false]], "get_observations() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.get_observations", false]], "get_ogip_meta() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.get_ogip_meta", false]], "get_pix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.get_pix", false]], "get_pointing_altaz() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.get_pointing_altaz", false]], "get_pointing_icrs() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.get_pointing_icrs", false]], "get_psf_kernel() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.get_psf_kernel", false]], "get_psf_kernel() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.get_psf_kernel", false]], "get_random_state() (in module gammapy.utils.random)": [[331, "gammapy.utils.random.get_random_state", false]], "get_rebinned_axis() (in module gammapy.estimators.utils)": [[145, "gammapy.estimators.utils.get_rebinned_axis", false]], "get_resolution() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_resolution", false]], "get_scale_model() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.get_scale_model", false]], "get_scale_model() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.get_scale_model", false]], "get_scale_model() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.get_scale_model", false]], "get_scales() (gammapy.estimators.asmoothmapestimator static method)": [[118, "gammapy.estimators.ASmoothMapEstimator.get_scales", false]], "get_spectrum() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_spectrum", false]], "get_spectrum() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_spectrum", false]], "get_subcovariance() (gammapy.modeling.covariance method)": [[209, "gammapy.modeling.Covariance.get_subcovariance", false]], "get_valid_path() (gammapy.datasets.ogipdatasetreader method)": [[106, "gammapy.datasets.OGIPDatasetReader.get_valid_path", false]], "get_wcs_coord_and_weights() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.get_wcs_coord_and_weights", false]], "get_wstat_gof_terms() (in module gammapy.stats)": [[300, "gammapy.stats.get_wstat_gof_terms", false]], "get_wstat_mu_bkg() (in module gammapy.stats)": [[301, "gammapy.stats.get_wstat_mu_bkg", false]], "global_to_local() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.global_to_local", false]], "group_by() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.group_by", false]], "group_by() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.group_by", false]], "group_by_label() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.group_by_label", false]], "group_table() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.group_table", false]], "group_table() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.group_table", false]], "group_table() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.group_table", false]], "groups (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.groups", false]], "groups (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.groups", false]], "gti": [[577, "term-GTI", true]], "gti (class in gammapy.data)": [[86, "gammapy.data.GTI", false]], "gti (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.gti", false]], "gti (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.gti", false]], "gti (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.gti", false]], "gti (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.gti", false]], "gti (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.gti", false]], "gti (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.gti", false]], "gti (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.gti", false]], "has_any_ts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_any_ts", false]], "has_any_ts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_any_ts", false]], "has_energy_axis (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.has_energy_axis", false]], "has_energy_axis (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.has_energy_axis", false]], "has_energy_axis (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.has_energy_axis", false]], "has_energy_axis (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.has_energy_axis", false]], "has_inverse() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.has_inverse", false]], "has_inverse() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.has_inverse", false]], "has_inverse() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.has_inverse", false]], "has_inverse() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.has_inverse", false]], "has_inverse() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.has_inverse", false]], "has_inverse() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.has_inverse", false]], "has_inverse() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.has_inverse", false]], "has_inverse() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.has_inverse", false]], "has_inverse() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.has_inverse", false]], "has_inverse() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.has_inverse", false]], "has_masked_columns (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.has_masked_columns", false]], "has_masked_columns (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.has_masked_columns", false]], "has_masked_values (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.has_masked_values", false]], "has_masked_values (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.has_masked_values", false]], "has_mixin_columns (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.has_mixin_columns", false]], "has_mixin_columns (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.has_mixin_columns", false]], "has_offset_axis (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.has_offset_axis", false]], "has_offset_axis (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.has_offset_axis", false]], "has_offset_axis (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.has_offset_axis", false]], "has_single_spatial_bin (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.has_single_spatial_bin", false]], "has_stat_profiles (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_stat_profiles", false]], "has_stat_profiles (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_stat_profiles", false]], "has_success (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_success", false]], "has_success (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_success", false]], "has_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_ul", false]], "has_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_ul", false]], "has_user_bounding_box (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.has_user_bounding_box", false]], "has_user_inverse (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.has_user_inverse", false]], "hdu_class_unique (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.hdu_class_unique", false]], "hdu_location() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.hdu_location", false]], "hdu_type_unique (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.hdu_type_unique", false]], "hduindextable (class in gammapy.data)": [[87, "gammapy.data.HDUIndexTable", false]], "hdulocation (class in gammapy.utils.fits)": [[315, "gammapy.utils.fits.HDULocation", false]], "hierarchical_clustering() (in module gammapy.utils.cluster)": [[305, "gammapy.utils.cluster.hierarchical_clustering", false]], "hli": [[577, "term-HLI", true]], "hpxgeom (class in gammapy.maps)": [[192, "gammapy.maps.HpxGeom", false]], "hpxmap (class in gammapy.maps)": [[193, "gammapy.maps.HpxMap", false]], "hpxndmap (class in gammapy.maps)": [[194, "gammapy.maps.HpxNDMap", false]], "hstack_columns() (in module gammapy.utils.table)": [[350, "gammapy.utils.table.hstack_columns", false]], "ids (gammapy.data.observations attribute)": [[92, "gammapy.data.Observations.ids", false]], "iloc (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.iloc", false]], "iloc (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.iloc", false]], "imageprofile (class in gammapy.estimators)": [[128, "gammapy.estimators.ImageProfile", false]], "imageprofileestimator (class in gammapy.estimators)": [[129, "gammapy.estimators.ImageProfileEstimator", false]], "in_memory_generator() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.in_memory_generator", false]], "include_ssc (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.include_ssc", false]], "index (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.index", false]], "index (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.index", false]], "index (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.index", false]], "index (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.index", false]], "index (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.index", false]], "index() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.index", false]], "index() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.index", false]], "index() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.index", false]], "index() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.index", false]], "index() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.index", false]], "index() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.index", false]], "index() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.index", false]], "index1 (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.index1", false]], "index1 (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.index1", false]], "index2 (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.index2", false]], "index2 (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.index2", false]], "index_1 (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.index_1", false]], "index_1 (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.index_1", false]], "index_1 (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.index_1", false]], "index_2 (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.index_2", false]], "index_2 (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.index_2", false]], "index_2 (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.index_2", false]], "index_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.index_column", false]], "index_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.index_column", false]], "index_data() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.index_data", false]], "index_mode() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.index_mode", false]], "index_mode() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.index_mode", false]], "indices (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.indices", false]], "indices (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.indices", false]], "ineqcons (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.ineqcons", false]], "ineqcons (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.ineqcons", false]], "ineqcons (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.ineqcons", false]], "ineqcons (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.ineqcons", false]], "ineqcons (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.ineqcons", false]], "ineqcons (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.ineqcons", false]], "ineqcons (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.ineqcons", false]], "ineqcons (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.ineqcons", false]], "ineqcons (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.ineqcons", false]], "ineqcons (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.ineqcons", false]], "info (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.info", false]], "info (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.info", false]], "info() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.info", false]], "info() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.info", false]], "info() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.info", false]], "info() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.info", false]], "info() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.info", false]], "info() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.info", false]], "info() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.info", false]], "info() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.info", false]], "info() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.info", false]], "info() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.info", false]], "info() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.info", false]], "info() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.info", false]], "info() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.info", false]], "info() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.info", false]], "info() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.info", false]], "info() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.info", false]], "info_dict() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.info_dict", false]], "info_dict() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.info_dict", false]], "info_dict() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.info_dict", false]], "info_dict() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.info_dict", false]], "info_dict() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.info_dict", false]], "info_dict() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.info_dict", false]], "info_table() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.info_table", false]], "input_shape() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_shape", false]], "input_shape() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.input_shape", false]], "input_shape() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_shape", false]], "input_shape() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_shape", false]], "input_shape() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_shape", false]], "input_shape() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.input_shape", false]], "input_shape() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.input_shape", false]], "input_shape() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_shape", false]], "input_shape() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_shape", false]], "input_shape() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_shape", false]], "input_units (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units", false]], "input_units (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units", false]], "input_units (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units", false]], "input_units (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units", false]], "input_units (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units", false]], "input_units (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units", false]], "input_units (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units", false]], "input_units (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units", false]], "input_units (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units", false]], "input_units (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units", false]], "input_units_allow_dimensionless (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units_allow_dimensionless", false]], "input_units_equivalencies (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units_equivalencies", false]], "input_units_strict (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units_strict", false]], "input_units_strict (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units_strict", false]], "input_units_strict (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units_strict", false]], "input_units_strict (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units_strict", false]], "input_units_strict (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units_strict", false]], "input_units_strict (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units_strict", false]], "input_units_strict (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units_strict", false]], "input_units_strict (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units_strict", false]], "input_units_strict (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units_strict", false]], "input_units_strict (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units_strict", false]], "inputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.inputs", false]], "inputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.inputs", false]], "inputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.inputs", false]], "inputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.inputs", false]], "inputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.inputs", false]], "inputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.inputs", false]], "inputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.inputs", false]], "inputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.inputs", false]], "inputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.inputs", false]], "inputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.inputs", false]], "insert() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.insert", false]], "insert() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.insert", false]], "insert() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.insert", false]], "insert_row() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.insert_row", false]], "insert_row() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.insert_row", false]], "integral() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.integral", false]], "integral() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.integral", false]], "integral() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.integral", false]], "integral() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.integral", false]], "integral() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.integral", false]], "integral() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.integral", false]], "integral() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.integral", false]], "integral() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.integral", false]], "integral() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.integral", false]], "integral() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.integral", false]], "integral() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.integral", false]], "integral() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.integral", false]], "integral() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.integral", false]], "integral() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.integral", false]], "integral() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.integral", false]], "integral() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.integral", false]], "integral() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.integral", false]], "integral() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.integral", false]], "integral() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.integral", false]], "integral() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.integral", false]], "integral() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.integral", false]], "integral() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.integral", false]], "integral() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.integral", false]], "integral() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.integral", false]], "integral() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.integral", false]], "integral() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.integral", false]], "integral() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.integral", false]], "integral() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.integral", false]], "integral() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.integral", false]], "integral() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.integral", false]], "integral() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.integral", false]], "integral() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.integral", false]], "integral() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.integral", false]], "integral() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.integral", false]], "integral() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.integral", false]], "integral() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.integral", false]], "integral() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.integral", false]], "integral() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.integral", false]], "integral() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.integral", false]], "integral() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.integral", false]], "integral() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.integral", false]], "integral() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.integral", false]], "integral() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.integral", false]], "integral() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.integral", false]], "integral() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.integral", false]], "integral() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.integral", false]], "integral() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.integral", false]], "integral() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.integral", false]], "integral() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.integral", false]], "integral() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.integral", false]], "integral() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.integral", false]], "integral_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.integral_error", false]], "integral_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.integral_error", false]], "integral_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.integral_error", false]], "integral_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.integral_error", false]], "integrate_geom() (gammapy.modeling.models.constantfluxspatialmodel static method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.integrate_geom", false]], "integrate_log_log() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.integrate_log_log", false]], "integrate_spectrum() (in module gammapy.modeling.models)": [[282, "gammapy.modeling.models.integrate_spectrum", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.integrate_spectrum_separation", false]], "interp (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.interp", false]], "interp (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.interp", false]], "interp_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.interp_by_coord", false]], "interp_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.interp_by_pix", false]], "interp_missing_data() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.interp_missing_data", false]], "interp_to_geom() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.interp_to_geom", false]], "interp_weights() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.interp_weights", false]], "interpolate_profile() (in module gammapy.utils.interpolation)": [[320, "gammapy.utils.interpolation.interpolate_profile", false]], "interpolation_scale() (in module gammapy.utils.interpolation)": [[321, "gammapy.utils.interpolation.interpolation_scale", false]], "inverse (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.inverse", false]], "inverse (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.inverse", false]], "inverse (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.inverse", false]], "inverse (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.inverse", false]], "inverse (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.inverse", false]], "inverse (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.inverse", false]], "inverse (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.inverse", false]], "inverse (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.inverse", false]], "inverse (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.inverse", false]], "inverse (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.inverse", false]], "inverse() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.inverse", false]], "inverse() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.inverse", false]], "inverse() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.inverse", false]], "inverse() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.inverse", false]], "inverse_all() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.inverse_all", false]], "inverse_all() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.inverse_all", false]], "inverse_all() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.inverse_all", false]], "inverse_all() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.inverse_all", false]], "inversecdfsampler (class in gammapy.utils.random)": [[329, "gammapy.utils.random.InverseCDFSampler", false]], "ipix (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.ipix", false]], "irf": [[577, "term-IRF", true]], "irf (class in gammapy.irf)": [[157, "gammapy.irf.IRF", false]], "irf_registry (in module gammapy.irf)": [[159, "gammapy.irf.IRF_REGISTRY", false]], "irfmap (class in gammapy.irf)": [[158, "gammapy.irf.IRFMap", false]], "is_aligned() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.is_aligned", false]], "is_aligned() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.is_aligned", false]], "is_aligned() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.is_aligned", false]], "is_aligned() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.is_aligned", false]], "is_all_point_sky_regions (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_all_point_sky_regions", false]], "is_all_same_energy_shape (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.is_all_same_energy_shape", false]], "is_all_same_shape (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.is_all_same_shape", false]], "is_all_same_type (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.is_all_same_type", false]], "is_allclose() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.is_allclose", false]], "is_allclose() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.is_allclose", false]], "is_allclose() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.is_allclose", false]], "is_allclose() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.is_allclose", false]], "is_allclose() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.is_allclose", false]], "is_allclose() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.is_allclose", false]], "is_allclose() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.is_allclose", false]], "is_allclose() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.is_allclose", false]], "is_allclose() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.is_allclose", false]], "is_allclose() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.is_allclose", false]], "is_allclose() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.is_allclose", false]], "is_allclose() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.is_allclose", false]], "is_allclose() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.is_allclose", false]], "is_allclose() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.is_allclose", false]], "is_allclose() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.is_allclose", false]], "is_allclose() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.is_allclose", false]], "is_allclose() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.is_allclose", false]], "is_allclose() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.is_allclose", false]], "is_allclose() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.is_allclose", false]], "is_allclose() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.is_allclose", false]], "is_allclose() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.is_allclose", false]], "is_allclose() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.is_allclose", false]], "is_allclose() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.is_allclose", false]], "is_allclose() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.is_allclose", false]], "is_allclose() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.is_allclose", false]], "is_allsky (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.is_allsky", false]], "is_allsky (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_allsky", false]], "is_allsky (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_allsky", false]], "is_allsky (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_allsky", false]], "is_contiguous (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.is_contiguous", false]], "is_convertible_to_flux_sed_type (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.is_convertible_to_flux_sed_type", false]], "is_convertible_to_flux_sed_type (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.is_convertible_to_flux_sed_type", false]], "is_energy_axis (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.is_energy_axis", false]], "is_energy_dependent (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.is_energy_dependent", false]], "is_fixed_rad_max (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.is_fixed_rad_max", false]], "is_flat (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.is_flat", false]], "is_flat (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_flat", false]], "is_flat (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.is_flat", false]], "is_flat (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_flat", false]], "is_flat (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_flat", false]], "is_hpx (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_hpx", false]], "is_hpx (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_hpx", false]], "is_hpx (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_hpx", false]], "is_image (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.is_image", false]], "is_image (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_image", false]], "is_image (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_image", false]], "is_image (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_image", false]], "is_mask (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.is_mask", false]], "is_mask (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.is_mask", false]], "is_mask (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.is_mask", false]], "is_mask (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.is_mask", false]], "is_mask (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.is_mask", false]], "is_mask (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.is_mask", false]], "is_norm_spectral_model (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.is_norm_spectral_model", false]], "is_pointed_observation (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.is_pointed_observation", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.is_pointlike", false]], "is_pointlike (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.is_pointlike", false]], "is_pointlike (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.is_pointlike", false]], "is_pointlike (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.is_pointlike", false]], "is_pointlike (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.is_pointlike", false]], "is_pointlike (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.is_pointlike", false]], "is_pointlike (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.is_pointlike", false]], "is_pointlike (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.is_pointlike", false]], "is_pointlike (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.is_pointlike", false]], "is_pointlike (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.is_pointlike", false]], "is_pointlike (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.is_pointlike", false]], "is_pointlike (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.is_pointlike", false]], "is_pointlike (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.is_pointlike", false]], "is_region (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_region", false]], "is_region (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_region", false]], "is_region (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_region", false]], "is_regular (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_regular", false]], "is_regular (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_regular", false]], "is_regular (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_regular", false]], "is_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.is_ul", false]], "is_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.is_ul", false]], "is_unidimensional (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.is_unidimensional", false]], "isothermalprofile (class in gammapy.astro.darkmatter)": [[22, "gammapy.astro.darkmatter.IsothermalProfile", false]], "items() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.items", false]], "items() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.items", false]], "items() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.items", false]], "iter_by_axis() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.iter_by_axis", false]], "iter_by_axis() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_axis", false]], "iter_by_axis_data() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_axis_data", false]], "iter_by_edges (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.iter_by_edges", false]], "iter_by_edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.iter_by_edges", false]], "iter_by_image() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_image", false]], "iter_by_image() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_image", false]], "iter_by_image_data() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_image_data", false]], "iter_by_image_index() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_image_index", false]], "iter_with_reshape (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.iter_with_reshape", false]], "itercols() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.itercols", false]], "itercols() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.itercols", false]], "iterrows() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.iterrows", false]], "iterrows() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.iterrows", false]], "jfactory (class in gammapy.astro.darkmatter)": [[23, "gammapy.astro.darkmatter.JFactory", false]], "joint analysis": [[577, "term-Joint-Analysis", true]], "json() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.json", false]], "json() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.json", false]], "json() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.json", false]], "json() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.json", false]], "json() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.json", false]], "k (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.k", false]], "keep_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.keep_columns", false]], "keep_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.keep_columns", false]], "kernel() (gammapy.makers.ringbackgroundmaker method)": [[178, "gammapy.makers.RingBackgroundMaker.kernel", false]], "kernels() (gammapy.makers.adaptiveringbackgroundmaker method)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.kernels", false]], "keys() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.keys", false]], "keys() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.keys", false]], "keys() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.keys", false]], "labelmapaxis (class in gammapy.maps)": [[195, "gammapy.maps.LabelMapAxis", false]], "lambda_ (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.lambda_", false]], "lambda_ (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.lambda_", false]], "large_scale_component (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.large_scale_component", false]], "lat (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.lat", false]], "lat_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.lat_0", false]], "lazyfitsdata (class in gammapy.utils.fits)": [[316, "gammapy.utils.fits.LazyFitsData", false]], "lifetime_age_of_universe (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.LIFETIME_AGE_OF_UNIVERSE", false]], "lightcurve (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.lightcurve", false]], "lightcurve (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.lightcurve", false]], "lightcurve() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.lightcurve", false]], "lightcurve() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.lightcurve", false]], "lightcurveestimator (class in gammapy.estimators)": [[130, "gammapy.estimators.LightCurveEstimator", false]], "lightcurvetemplatetemporalmodel (class in gammapy.modeling.models)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel", false]], "linear (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.linear", false]], "linear (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.linear", false]], "linear (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.linear", false]], "linear (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.linear", false]], "linear (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.linear", false]], "linear (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.linear", false]], "linear (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.linear", false]], "linear (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.linear", false]], "linear (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.linear", false]], "linear (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.linear", false]], "lineartemporalmodel (class in gammapy.modeling.models)": [[240, "gammapy.modeling.models.LinearTemporalModel", false]], "livetime_fraction (gammapy.data.observationfilter attribute)": [[89, "gammapy.data.ObservationFilter.livetime_fraction", false]], "load() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.load", false]], "load_irf_dict_from_file() (in module gammapy.irf)": [[167, "gammapy.irf.load_irf_dict_from_file", false]], "loc (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.loc", false]], "loc (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.loc", false]], "loc_indices (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.loc_indices", false]], "loc_indices (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.loc_indices", false]], "local_density (gammapy.astro.darkmatter.burkertprofile attribute)": [[17, "gammapy.astro.darkmatter.BurkertProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.dmprofile attribute)": [[18, "gammapy.astro.darkmatter.DMProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.isothermalprofile attribute)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.mooreprofile attribute)": [[24, "gammapy.astro.darkmatter.MooreProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.nfwprofile attribute)": [[25, "gammapy.astro.darkmatter.NFWProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.LOCAL_DENSITY", false]], "local_to_global() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.local_to_global", false]], "location (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.location", false]], "location_info() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.location_info", false]], "logparabolanormspectralmodel (class in gammapy.modeling.models)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel", false]], "logparabolaspectralmodel (class in gammapy.modeling.models)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel", false]], "logspiral (class in gammapy.astro.population)": [[34, "gammapy.astro.population.LogSpiral", false]], "lon (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.lon", false]], "lon_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.lon_0", false]], "lorimer2006 (class in gammapy.astro.population)": [[35, "gammapy.astro.population.Lorimer2006", false]], "luminosity_spindown (gammapy.astro.source.simplepulsar attribute)": [[54, "gammapy.astro.source.SimplePulsar.luminosity_spindown", false]], "luminosity_spindown() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.luminosity_spindown", false]], "luminosity_tev() (gammapy.astro.source.snr method)": [[52, "gammapy.astro.source.SNR.luminosity_tev", false]], "luminosity_tev() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.luminosity_tev", false]], "m (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.m", false]], "magnetic_field (gammapy.astro.source.simplepulsar attribute)": [[54, "gammapy.astro.source.SimplePulsar.magnetic_field", false]], "magnetic_field() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.magnetic_field", false]], "magnetic_field() (gammapy.astro.source.pwn method)": [[50, "gammapy.astro.source.PWN.magnetic_field", false]], "make_background() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_background", false]], "make_background() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_background", false]], "make_background_fit() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_background_fit", false]], "make_background_scale() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_background_scale", false]], "make_base_catalog_galactic() (in module gammapy.astro.population)": [[45, "gammapy.astro.population.make_base_catalog_galactic", false]], "make_catalog_random_positions_cube() (in module gammapy.astro.population)": [[46, "gammapy.astro.population.make_catalog_random_positions_cube", false]], "make_catalog_random_positions_sphere() (in module gammapy.astro.population)": [[47, "gammapy.astro.population.make_catalog_random_positions_sphere", false]], "make_concentric_annulus_sky_regions() (in module gammapy.utils.regions)": [[339, "gammapy.utils.regions.make_concentric_annulus_sky_regions", false]], "make_counts() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_counts", false]], "make_counts() (gammapy.makers.phasebackgroundmaker method)": [[174, "gammapy.makers.PhaseBackgroundMaker.make_counts", false]], "make_counts() (gammapy.makers.spectrumdatasetmaker static method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_counts", false]], "make_counts_off() (gammapy.makers.phasebackgroundmaker method)": [[174, "gammapy.makers.PhaseBackgroundMaker.make_counts_off", false]], "make_counts_off() (gammapy.makers.reflectedregionsbackgroundmaker method)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker.make_counts_off", false]], "make_counts_rad_max() (in module gammapy.makers.utils)": [[182, "gammapy.makers.utils.make_counts_rad_max", false]], "make_cubes() (gammapy.makers.adaptiveringbackgroundmaker method)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.make_cubes", false]], "make_dataset() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.make_dataset", false]], "make_default_fov_background_model() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_default_fov_background_model", false]], "make_edisp() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_edisp", false]], "make_edisp() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_edisp", false]], "make_edisp_kernel() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_edisp_kernel", false]], "make_edisp_kernel() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_edisp_kernel", false]], "make_edisp_kernel_map() (in module gammapy.makers.utils)": [[183, "gammapy.makers.utils.make_edisp_kernel_map", false]], "make_edisp_map() (in module gammapy.makers.utils)": [[184, "gammapy.makers.utils.make_edisp_map", false]], "make_effective_livetime_map() (in module gammapy.makers.utils)": [[185, "gammapy.makers.utils.make_effective_livetime_map", false]], "make_exclusion_mask() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_exclusion_mask", false]], "make_exposure() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_exposure", false]], "make_exposure() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_exposure", false]], "make_exposure_irf() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_exposure_irf", false]], "make_exposure_irf() (gammapy.makers.spectrumdatasetmaker static method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_exposure_irf", false]], "make_map_background_irf() (in module gammapy.makers.utils)": [[186, "gammapy.makers.utils.make_map_background_irf", false]], "make_map_exposure_true_energy() (in module gammapy.makers.utils)": [[187, "gammapy.makers.utils.make_map_exposure_true_energy", false]], "make_maps_off() (gammapy.makers.ringbackgroundmaker method)": [[178, "gammapy.makers.RingBackgroundMaker.make_maps_off", false]], "make_mask_bkg_invalid() (gammapy.makers.safemaskmaker static method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_bkg_invalid", false]], "make_mask_energy_aeff_default() (gammapy.makers.safemaskmaker static method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_aeff_default", false]], "make_mask_energy_aeff_max() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_aeff_max", false]], "make_mask_energy_bkg_peak() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_bkg_peak", false]], "make_mask_energy_edisp_bias() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_edisp_bias", false]], "make_mask_offset_max() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_offset_max", false]], "make_meta_table() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_meta_table", false]], "make_meta_table() (gammapy.makers.spectrumdatasetmaker static method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_meta_table", false]], "make_observation_time_map() (in module gammapy.makers.utils)": [[188, "gammapy.makers.utils.make_observation_time_map", false]], "make_orthogonal_rectangle_sky_regions() (in module gammapy.utils.regions)": [[340, "gammapy.utils.regions.make_orthogonal_rectangle_sky_regions", false]], "make_path() (in module gammapy.utils.scripts)": [[345, "gammapy.utils.scripts.make_path", false]], "make_psf() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_psf", false]], "make_psf() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_psf", false]], "make_psf_map() (in module gammapy.makers.utils)": [[189, "gammapy.makers.utils.make_psf_map", false]], "make_theta_squared_table() (in module gammapy.makers.utils)": [[190, "gammapy.makers.utils.make_theta_squared_table", false]], "maker": [[577, "term-Maker", true]], "maker (class in gammapy.makers)": [[172, "gammapy.makers.Maker", false]], "maker_registry (in module gammapy.makers)": [[171, "gammapy.makers.MAKER_REGISTRY", false]], "map (class in gammapy.maps)": [[196, "gammapy.maps.Map", false]], "map (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.map", false]], "map (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.map", false]], "map (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.map", false]], "map (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.map", false]], "map (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.map", false]], "map_center (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.map_center", false]], "map_coord() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.map_coord", false]], "mapaxes (class in gammapy.maps)": [[197, "gammapy.maps.MapAxes", false]], "mapaxis (class in gammapy.maps)": [[198, "gammapy.maps.MapAxis", false]], "mapcoord (class in gammapy.maps)": [[199, "gammapy.maps.MapCoord", false]], "mapdataset (class in gammapy.datasets)": [[102, "gammapy.datasets.MapDataset", false]], "mapdataseteventsampler (class in gammapy.datasets)": [[103, "gammapy.datasets.MapDatasetEventSampler", false]], "mapdatasetmaker (class in gammapy.makers)": [[173, "gammapy.makers.MapDatasetMaker", false]], "mapdatasetmetadata (class in gammapy.datasets)": [[104, "gammapy.datasets.MapDatasetMetaData", false]], "mapdatasetonoff (class in gammapy.datasets)": [[105, "gammapy.datasets.MapDatasetOnOff", false]], "mappanelplotter (class in gammapy.visualization)": [[367, "gammapy.visualization.MapPanelPlotter", false]], "maps (class in gammapy.maps)": [[200, "gammapy.maps.Maps", false]], "mask (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.mask", false]], "mask (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.mask", false]], "mask (gammapy.datasets.dataset attribute)": [[99, "gammapy.datasets.Dataset.mask", false]], "mask (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.mask", false]], "mask (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask", false]], "mask (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask", false]], "mask (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask", false]], "mask (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask", false]], "mask_contains_region() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.mask_contains_region", false]], "mask_fit (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_fit", false]], "mask_fit (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_fit", false]], "mask_fit (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_fit", false]], "mask_fit (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_fit", false]], "mask_fit_image (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_fit_image", false]], "mask_fit_image (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_fit_image", false]], "mask_fit_image (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_fit_image", false]], "mask_fit_image (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_fit_image", false]], "mask_image (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_image", false]], "mask_image (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_image", false]], "mask_image (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_image", false]], "mask_image (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_image", false]], "mask_nearest_position() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.mask_nearest_position", false]], "mask_safe (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.mask_safe", false]], "mask_safe (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe", false]], "mask_safe (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe", false]], "mask_safe (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe", false]], "mask_safe (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe", false]], "mask_safe_edisp (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe_edisp", false]], "mask_safe_edisp (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe_edisp", false]], "mask_safe_edisp (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe_edisp", false]], "mask_safe_edisp (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe_edisp", false]], "mask_safe_image (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe_image", false]], "mask_safe_image (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe_image", false]], "mask_safe_image (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe_image", false]], "mask_safe_image (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe_image", false]], "mask_safe_image (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.mask_safe_image", false]], "mask_safe_psf (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe_psf", false]], "mask_safe_psf (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe_psf", false]], "mask_safe_psf (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe_psf", false]], "mask_safe_psf (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe_psf", false]], "mask_valid (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.mask_valid", false]], "masked (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.masked", false]], "masked (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.masked", false]], "match_by_name (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.match_by_name", false]], "matrix (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.matrix", false]], "max (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.max", false]], "max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.max", false]], "max (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.max", false]], "max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.max", false]], "max (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.max", false]], "mcmc": [[577, "term-MCMC", true]], "mdm (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.mDM", false]], "mean (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.mean", false]], "message (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.message", false]], "message (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.message", false]], "message (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.message", false]], "met": [[577, "term-MET", true]], "met_start (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.met_start", false]], "met_stop (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.met_stop", false]], "meta (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.meta", false]], "meta (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.meta", false]], "meta (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.meta", false]], "meta (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.meta", false]], "meta (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.meta", false]], "meta (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.meta", false]], "meta (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.meta", false]], "meta (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.meta", false]], "meta (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.meta", false]], "meta (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.meta", false]], "meta (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.meta", false]], "meta (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.meta", false]], "meta (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.meta", false]], "meta (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.meta", false]], "meta (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.meta", false]], "meta (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.meta", false]], "meta (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.meta", false]], "meta (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.meta", false]], "meta (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.meta", false]], "meta (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.meta", false]], "meta (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.meta", false]], "meta (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.meta", false]], "meta (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.meta", false]], "meta_table (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.meta_table", false]], "meta_table (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.meta_table", false]], "meta_table (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.meta_table", false]], "meta_table (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.meta_table", false]], "meta_table (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.meta_table", false]], "method (gammapy.makers.fovbackgroundmaker attribute)": [[170, "gammapy.makers.FoVBackgroundMaker.method", false]], "method (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.method", false]], "method (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.method", false]], "method (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.method", false]], "method_default (in module gammapy.utils.parallel)": [[323, "gammapy.utils.parallel.METHOD_DEFAULT", false]], "method_kwargs_default (in module gammapy.utils.parallel)": [[324, "gammapy.utils.parallel.METHOD_KWARGS_DEFAULT", false]], "meyercrabspectralmodel (class in gammapy.modeling.models)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel", false]], "min (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.min", false]], "min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.min", false]], "min (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.min", false]], "min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.min", false]], "min (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.min", false]], "minuit (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.minuit", false]], "minuit (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.minuit", false]], "mode (gammapy.data.fixedpointinginfo attribute)": [[85, "gammapy.data.FixedPointingInfo.mode", false]], "model (class in gammapy.modeling.models)": [[245, "gammapy.modeling.models.Model", false]], "model_computed_fields (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_computed_fields", false]], "model_computed_fields (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_computed_fields", false]], "model_computed_fields (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_computed_fields", false]], "model_computed_fields (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_computed_fields", false]], "model_computed_fields (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_computed_fields", false]], "model_config (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_config", false]], "model_config (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_config", false]], "model_config (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_config", false]], "model_config (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_config", false]], "model_config (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_config", false]], "model_constraints (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.model_constraints", false]], "model_constraints (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.model_constraints", false]], "model_constraints (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.model_constraints", false]], "model_constraints (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.model_constraints", false]], "model_constraints (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.model_constraints", false]], "model_constraints (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.model_constraints", false]], "model_constraints (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.model_constraints", false]], "model_constraints (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.model_constraints", false]], "model_constraints (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.model_constraints", false]], "model_constraints (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.model_constraints", false]], "model_construct() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_construct", false]], "model_construct() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_construct", false]], "model_construct() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_construct", false]], "model_construct() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_construct", false]], "model_construct() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_construct", false]], "model_copy() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_copy", false]], "model_copy() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_copy", false]], "model_copy() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_copy", false]], "model_copy() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_copy", false]], "model_copy() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_copy", false]], "model_dump() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_dump", false]], "model_dump() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_dump", false]], "model_dump() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_dump", false]], "model_dump() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_dump", false]], "model_dump() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_dump", false]], "model_dump_json() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_dump_json", false]], "model_dump_json() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_dump_json", false]], "model_dump_json() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_dump_json", false]], "model_dump_json() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_dump_json", false]], "model_dump_json() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_dump_json", false]], "model_extra (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_extra", false]], "model_extra (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_extra", false]], "model_extra (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_extra", false]], "model_extra (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_extra", false]], "model_extra (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_extra", false]], "model_fields (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_fields", false]], "model_fields (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_fields", false]], "model_fields (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_fields", false]], "model_fields (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_fields", false]], "model_fields (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_fields", false]], "model_fields_set (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_fields_set", false]], "model_fields_set (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_fields_set", false]], "model_fields_set (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_fields_set", false]], "model_fields_set (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_fields_set", false]], "model_fields_set (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_fields_set", false]], "model_json_schema() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_json_schema", false]], "model_json_schema() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_json_schema", false]], "model_json_schema() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_json_schema", false]], "model_json_schema() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_json_schema", false]], "model_json_schema() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_json_schema", false]], "model_parametrized_name() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_parametrized_name", false]], "model_parametrized_name() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_parametrized_name", false]], "model_parametrized_name() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_parametrized_name", false]], "model_parametrized_name() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_parametrized_name", false]], "model_parametrized_name() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_parametrized_name", false]], "model_post_init() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_post_init", false]], "model_post_init() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_post_init", false]], "model_post_init() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_post_init", false]], "model_post_init() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_post_init", false]], "model_post_init() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_post_init", false]], "model_rebuild() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_rebuild", false]], "model_rebuild() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_rebuild", false]], "model_rebuild() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_rebuild", false]], "model_rebuild() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_rebuild", false]], "model_rebuild() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_rebuild", false]], "model_registry (in module gammapy.modeling.models)": [[243, "gammapy.modeling.models.MODEL_REGISTRY", false]], "model_set_axis (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.model_set_axis", false]], "model_set_axis (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.model_set_axis", false]], "model_set_axis (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.model_set_axis", false]], "model_set_axis (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.model_set_axis", false]], "model_set_axis (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.model_set_axis", false]], "model_set_axis (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.model_set_axis", false]], "model_set_axis (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.model_set_axis", false]], "model_set_axis (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.model_set_axis", false]], "model_set_axis (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.model_set_axis", false]], "model_set_axis (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.model_set_axis", false]], "model_validate() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_validate", false]], "model_validate() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_validate", false]], "model_validate() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_validate", false]], "model_validate() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_validate", false]], "model_validate() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_validate", false]], "model_validate_json() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_validate_json", false]], "model_validate_json() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_validate_json", false]], "model_validate_json() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_validate_json", false]], "model_validate_json() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_validate_json", false]], "model_validate_json() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_validate_json", false]], "model_validate_strings() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_validate_strings", false]], "model_validate_strings() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_validate_strings", false]], "model_validate_strings() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_validate_strings", false]], "model_validate_strings() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_validate_strings", false]], "model_validate_strings() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_validate_strings", false]], "modelbase (class in gammapy.modeling.models)": [[246, "gammapy.modeling.models.ModelBase", false]], "models (class in gammapy.modeling.models)": [[247, "gammapy.modeling.models.Models", false]], "models (gammapy.analysis.analysis attribute)": [[15, "gammapy.analysis.Analysis.models", false]], "models (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.models", false]], "models (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.models", false]], "models (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.models", false]], "models (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.models", false]], "models (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.models", false]], "models (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.models", false]], "models (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.models", false]], "models (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.models", false]], "module": [[0, "module-gammapy.analysis", false], [1, "module-gammapy.astro.darkmatter", false], [1, "module-gammapy.astro.population", false], [1, "module-gammapy.astro.source", false], [2, "module-gammapy.catalog", false], [3, "module-gammapy.data", false], [4, "module-gammapy.datasets", false], [4, "module-gammapy.datasets.utils", false], [5, "module-gammapy.estimators", false], [5, "module-gammapy.estimators.utils", false], [7, "module-gammapy.irf", false], [8, "module-gammapy.makers", false], [8, "module-gammapy.makers.utils", false], [9, "module-gammapy.maps", false], [10, "module-gammapy.modeling", false], [10, "module-gammapy.modeling.models", false], [10, "module-gammapy.modeling.models.utils", false], [12, "module-gammapy.stats", false], [13, "module-gammapy.utils.cluster", false], [13, "module-gammapy.utils.coordinates", false], [13, "module-gammapy.utils.fits", false], [13, "module-gammapy.utils.integrate", false], [13, "module-gammapy.utils.interpolation", false], [13, "module-gammapy.utils.parallel", false], [13, "module-gammapy.utils.random", false], [13, "module-gammapy.utils.regions", false], [13, "module-gammapy.utils.scripts", false], [13, "module-gammapy.utils.table", false], [13, "module-gammapy.utils.testing", false], [13, "module-gammapy.utils.time", false], [13, "module-gammapy.utils.units", false], [14, "module-gammapy.visualization", false]], "mooreprofile (class in gammapy.astro.darkmatter)": [[24, "gammapy.astro.darkmatter.MooreProfile", false]], "more() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.more", false]], "more() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.more", false]], "motion_since_birth() (in module gammapy.utils.coordinates)": [[311, "gammapy.utils.coordinates.motion_since_birth", false]], "mpl_plot_check() (in module gammapy.utils.testing)": [[358, "gammapy.utils.testing.mpl_plot_check", false]], "mu (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.mu", false]], "multiprocessing_manager (class in gammapy.utils.parallel)": [[327, "gammapy.utils.parallel.multiprocessing_manager", false]], "n_bkg (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.n_bkg", false]], "n_bkg (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.n_bkg", false]], "n_dof (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.n_dof", false]], "n_dof (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.n_dof", false]], "n_inputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.n_inputs", false]], "n_inputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.n_inputs", false]], "n_inputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.n_inputs", false]], "n_inputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.n_inputs", false]], "n_inputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.n_inputs", false]], "n_inputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.n_inputs", false]], "n_inputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.n_inputs", false]], "n_inputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.n_inputs", false]], "n_inputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.n_inputs", false]], "n_inputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.n_inputs", false]], "n_jobs (gammapy.data.observationseventssampler attribute)": [[93, "gammapy.data.ObservationsEventsSampler.n_jobs", false]], "n_jobs (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.n_jobs", false]], "n_jobs (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.n_jobs", false]], "n_jobs (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.n_jobs", false]], "n_jobs (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.n_jobs", false]], "n_jobs (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.n_jobs", false]], "n_jobs_default (in module gammapy.utils.parallel)": [[325, "gammapy.utils.parallel.N_JOBS_DEFAULT", false]], "n_models (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.n_models", false]], "n_models (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.n_models", false]], "n_outputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.n_outputs", false]], "n_outputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.n_outputs", false]], "n_outputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.n_outputs", false]], "n_outputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.n_outputs", false]], "n_outputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.n_outputs", false]], "n_outputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.n_outputs", false]], "n_outputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.n_outputs", false]], "n_outputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.n_outputs", false]], "n_outputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.n_outputs", false]], "n_outputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.n_outputs", false]], "n_sig (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.n_sig", false]], "n_sig (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.n_sig", false]], "n_sig_matching_significance() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.n_sig_matching_significance", false]], "n_sig_matching_significance() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.n_sig_matching_significance", false]], "n_sigma (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.n_sigma", false]], "n_sigma (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.n_sigma", false]], "n_sigma_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.n_sigma_ul", false]], "n_sigma_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.n_sigma_ul", false]], "n_submodels (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.n_submodels", false]], "n_submodels (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.n_submodels", false]], "n_submodels (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.n_submodels", false]], "n_submodels (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.n_submodels", false]], "n_submodels (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.n_submodels", false]], "n_submodels (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.n_submodels", false]], "n_submodels (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.n_submodels", false]], "n_submodels (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.n_submodels", false]], "n_submodels (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.n_submodels", false]], "n_submodels (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.n_submodels", false]], "naimaspectralmodel (class in gammapy.modeling.models)": [[248, "gammapy.modeling.models.NaimaSpectralModel", false]], "name (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.name", false]], "name (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.name", false]], "name (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.name", false]], "name (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.name", false]], "name (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.name", false]], "name (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.name", false]], "name (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.name", false]], "name (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.name", false]], "name (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.name", false]], "name (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.name", false]], "name (gammapy.catalog.sourcecatalogobject attribute)": [[69, "gammapy.catalog.SourceCatalogObject.name", false]], "name (gammapy.catalog.sourcecatalogobject1lhaaso attribute)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.name", false]], "name (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.name", false]], "name (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.name", false]], "name (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.name", false]], "name (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.name", false]], "name (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.name", false]], "name (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.name", false]], "name (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.name", false]], "name (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.name", false]], "name (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.name", false]], "name (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.name", false]], "name (gammapy.catalog.sourcecatalogobjecthgpscomponent attribute)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.name", false]], "name (gammapy.datasets.dataset attribute)": [[99, "gammapy.datasets.Dataset.name", false]], "name (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.name", false]], "name (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.name", false]], "name (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.name", false]], "name (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.name", false]], "name (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.name", false]], "name (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.name", false]], "name (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.name", false]], "name (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.name", false]], "name (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.name", false]], "name (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.name", false]], "name (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.name", false]], "name (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.name", false]], "name (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.name", false]], "names (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.names", false]], "names (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.names", false]], "names (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.names", false]], "names (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.names", false]], "names (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.names", false]], "names (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.names", false]], "nbin (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.nbin", false]], "nbin (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.nbin", false]], "nbin (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.nbin", false]], "nbin_per_decade (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.nbin_per_decade", false]], "ndim (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.ndim", false]], "ndim (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.ndim", false]], "ndim (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.ndim", false]], "nest (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.nest", false]], "nfev (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.nfev", false]], "nfev (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.nfev", false]], "nfwprofile (class in gammapy.astro.darkmatter)": [[25, "gammapy.astro.darkmatter.NFWProfile", false]], "niter (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.niter", false]], "niter (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.niter", false]], "node_type (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.node_type", false]], "node_type (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.node_type", false]], "node_type (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.node_type", false]], "norm (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm", false]], "norm (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm", false]], "norm (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.norm", false]], "norm (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.norm", false]], "norm (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.norm", false]], "norm (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.norm", false]], "norm (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.norm", false]], "norm_bounds_cython() (in module gammapy.stats)": [[302, "gammapy.stats.norm_bounds_cython", false]], "norm_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_err", false]], "norm_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_err", false]], "norm_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_errn", false]], "norm_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_errn", false]], "norm_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_errp", false]], "norm_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_errp", false]], "norm_sensitivity (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_sensitivity", false]], "norm_sensitivity (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_sensitivity", false]], "norm_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_ul", false]], "norm_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_ul", false]], "normalize() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.normalize", false]], "normalize() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.normalize", false]], "normalize() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.normalize", false]], "normalize() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.normalize", false]], "normalize() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.normalize", false]], "normalize() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.normalize", false]], "normalize() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.normalize", false]], "normalize() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.normalize", false]], "normalize() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.normalize", false]], "normalize() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.normalize", false]], "normalize() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.normalize", false]], "normalize() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.normalize", false]], "normalize() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.normalize", false]], "normalize() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.normalize", false]], "normalize() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.normalize", false]], "normalize() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.normalize", false]], "normalize() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.normalize", false]], "normalize() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.normalize", false]], "normalize() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.normalize", false]], "normalize() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.normalize", false]], "normalize() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.normalize", false]], "normalize() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.normalize", false]], "normalize() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.normalize", false]], "normalize() (in module gammapy.utils.random)": [[332, "gammapy.utils.random.normalize", false]], "norms (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.norms", false]], "norms (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.norms", false]], "npix (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.npix", false]], "npix (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.npix", false]], "npix (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.npix", false]], "npix_max (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.npix_max", false]], "npred (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred", false]], "npred (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred", false]], "npred() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.npred", false]], "npred() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred", false]], "npred() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.npred", false]], "npred() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred", false]], "npred_background (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_background", false]], "npred_background (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_background", false]], "npred_background() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.npred_background", false]], "npred_background() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred_background", false]], "npred_background() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.npred_background", false]], "npred_background() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred_background", false]], "npred_excess (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess", false]], "npred_excess (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess", false]], "npred_excess_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_err", false]], "npred_excess_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_err", false]], "npred_excess_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_errn", false]], "npred_excess_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_errn", false]], "npred_excess_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_errp", false]], "npred_excess_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_errp", false]], "npred_excess_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_ref", false]], "npred_excess_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_ref", false]], "npred_excess_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_ul", false]], "npred_excess_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_ul", false]], "npred_off() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred_off", false]], "npred_off() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred_off", false]], "npred_signal() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.npred_signal", false]], "npred_signal() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred_signal", false]], "npred_signal() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.npred_signal", false]], "npred_signal() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred_signal", false]], "nside (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.nside", false]], "obs() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.obs", false]], "obs_id_unique (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.obs_id_unique", false]], "obs_ids (gammapy.data.datastore attribute)": [[82, "gammapy.data.DataStore.obs_ids", false]], "observation (class in gammapy.data)": [[88, "gammapy.data.Observation", false]], "observation_dead_time_fraction (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_dead_time_fraction", false]], "observation_dead_time_fraction (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observation_dead_time_fraction", false]], "observation_live_time_duration (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_live_time_duration", false]], "observation_live_time_duration (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observation_live_time_duration", false]], "observation_time_duration (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_time_duration", false]], "observation_time_duration (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observation_time_duration", false]], "observation_time_start (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_time_start", false]], "observation_time_stop (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_time_stop", false]], "observationeventsampler (class in gammapy.datasets)": [[108, "gammapy.datasets.ObservationEventSampler", false]], "observationfilter (class in gammapy.data)": [[89, "gammapy.data.ObservationFilter", false]], "observationmetadata (class in gammapy.data)": [[90, "gammapy.data.ObservationMetaData", false]], "observations (class in gammapy.data)": [[92, "gammapy.data.Observations", false]], "observationseventssampler (class in gammapy.data)": [[93, "gammapy.data.ObservationsEventsSampler", false]], "observationtable (class in gammapy.data)": [[91, "gammapy.data.ObservationTable", false]], "observatory_earth_location (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observatory_earth_location", false]], "observatory_earth_location (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observatory_earth_location", false]], "observatory_locations (in module gammapy.data)": [[97, "gammapy.data.observatory_locations", false]], "offset (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.offset", false]], "offset_from_median (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.offset_from_median", false]], "offset_max (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.offset_max", false]], "ogipdatasetreader (class in gammapy.datasets)": [[106, "gammapy.datasets.OGIPDatasetReader", false]], "ogipdatasetwriter (class in gammapy.datasets)": [[107, "gammapy.datasets.OGIPDatasetWriter", false]], "omega (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.omega", false]], "optimize() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.optimize", false]], "optimize_result (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.optimize_result", false]], "optimizeresult (class in gammapy.modeling)": [[213, "gammapy.modeling.OptimizeResult", false]], "order (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.order", false]], "ordering (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.ordering", false]], "output_units() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.output_units", false]], "output_units() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.output_units", false]], "output_units() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.output_units", false]], "output_units() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.output_units", false]], "output_units() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.output_units", false]], "output_units() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.output_units", false]], "output_units() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.output_units", false]], "output_units() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.output_units", false]], "output_units() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.output_units", false]], "output_units() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.output_units", false]], "outputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.outputs", false]], "outputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.outputs", false]], "outputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.outputs", false]], "outputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.outputs", false]], "outputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.outputs", false]], "outputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.outputs", false]], "outputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.outputs", false]], "outputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.outputs", false]], "outputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.outputs", false]], "outputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.outputs", false]], "p (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.p", false]], "p_value (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.p_value", false]], "p_value (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.p_value", false]], "paczynski1990 (class in gammapy.astro.population)": [[36, "gammapy.astro.population.Paczynski1990", false]], "paczynski1990velocity (class in gammapy.astro.population)": [[37, "gammapy.astro.population.Paczynski1990Velocity", false]], "pad() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.pad", false]], "pad() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.pad", false]], "pad() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.pad", false]], "pad() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.pad", false]], "pad() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.pad", false]], "pad() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.pad", false]], "pad() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.pad", false]], "pad() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.pad", false]], "pad() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.pad", false]], "pad() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.pad", false]], "pad() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.pad", false]], "pad() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.pad", false]], "pad() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.pad", false]], "pad() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.pad", false]], "pad() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.pad", false]], "pad() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.pad", false]], "pad() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.pad", false]], "pad() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.pad", false]], "pad() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.pad", false]], "pad() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.pad", false]], "pad() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.pad", false]], "pad() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.pad", false]], "pad() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.pad", false]], "pad() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.pad", false]], "pad() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.pad", false]], "pad() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.pad", false]], "pad() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.pad", false]], "pad() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.pad", false]], "pad() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.pad", false]], "parallel_backend (gammapy.data.observationseventssampler attribute)": [[93, "gammapy.data.ObservationsEventsSampler.parallel_backend", false]], "parallel_backend (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.parallel_backend", false]], "parallel_backend (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.parallel_backend", false]], "parallel_backend (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.parallel_backend", false]], "parallel_backend (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.parallel_backend", false]], "parallel_backend (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.parallel_backend", false]], "param_names (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.param_names", false]], "param_names (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.param_names", false]], "param_names (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.param_names", false]], "param_names (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.param_names", false]], "param_names (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.param_names", false]], "param_names (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.param_names", false]], "param_names (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.param_names", false]], "param_names (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.param_names", false]], "param_names (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.param_names", false]], "param_names (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.param_names", false]], "param_sets (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.param_sets", false]], "param_sets (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.param_sets", false]], "param_sets (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.param_sets", false]], "param_sets (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.param_sets", false]], "param_sets (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.param_sets", false]], "param_sets (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.param_sets", false]], "param_sets (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.param_sets", false]], "param_sets (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.param_sets", false]], "param_sets (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.param_sets", false]], "param_sets (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.param_sets", false]], "parameter (class in gammapy.modeling)": [[214, "gammapy.modeling.Parameter", false]], "parameter_constraints (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.parameter_constraints", false]], "parameterestimator (class in gammapy.estimators)": [[131, "gammapy.estimators.ParameterEstimator", false]], "parameters (class in gammapy.modeling)": [[215, "gammapy.modeling.Parameters", false]], "parameters (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.parameters", false]], "parameters (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.parameters", false]], "parameters (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.parameters", false]], "parameters (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.parameters", false]], "parameters (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.parameters", false]], "parameters (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.parameters", false]], "parameters (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.parameters", false]], "parameters (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.parameters", false]], "parameters (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.parameters", false]], "parameters (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.parameters", false]], "parameters (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.parameters", false]], "parameters (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.parameters", false]], "parameters (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.parameters", false]], "parameters (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.parameters", false]], "parameters (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.parameters", false]], "parameters (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.parameters", false]], "parameters (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.parameters", false]], "parameters (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.parameters", false]], "parameters (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.parameters", false]], "parameters (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.parameters", false]], "parameters (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.parameters", false]], "parameters (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.parameters", false]], "parameters (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.parameters", false]], "parameters (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.parameters", false]], "parameters (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.parameters", false]], "parameters (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.parameters", false]], "parameters (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.parameters", false]], "parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.parameters", false]], "parameters (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.parameters", false]], "parameters (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.parameters", false]], "parameters (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.parameters", false]], "parameters_unique_names (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.parameters_unique_names", false]], "parametricpsf (class in gammapy.irf)": [[164, "gammapy.irf.ParametricPSF", false]], "parse_file() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.parse_file", false]], "parse_file() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.parse_file", false]], "parse_file() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.parse_file", false]], "parse_file() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.parse_file", false]], "parse_file() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.parse_file", false]], "parse_obj() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.parse_obj", false]], "parse_obj() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.parse_obj", false]], "parse_obj() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.parse_obj", false]], "parse_obj() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.parse_obj", false]], "parse_obj() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.parse_obj", false]], "parse_raw() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.parse_raw", false]], "parse_raw() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.parse_raw", false]], "parse_raw() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.parse_raw", false]], "parse_raw() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.parse_raw", false]], "parse_raw() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.parse_raw", false]], "particle_distribution (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.particle_distribution", false]], "path() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.path", false]], "pdf() (in module gammapy.utils.random)": [[333, "gammapy.utils.random.pdf", false]], "pdf_in_safe_range() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.pdf_in_safe_range", false]], "pdf_matrix (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.pdf_matrix", false]], "peak_brightness() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_brightness", false]], "peak_brightness_error() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_brightness_error", false]], "peak_latitude() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_latitude", false]], "peak_latitude_error() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_latitude_error", false]], "peek() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.peek", false]], "peek() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.peek", false]], "peek() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.peek", false]], "peek() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.peek", false]], "peek() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.peek", false]], "peek() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.peek", false]], "peek() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.peek", false]], "peek() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.peek", false]], "peek() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.peek", false]], "peek() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.peek", false]], "peek() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.peek", false]], "peek() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.peek", false]], "peek() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.peek", false]], "peek() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.peek", false]], "peek() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.peek", false]], "peek() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.peek", false]], "peek() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.peek", false]], "peek() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.peek", false]], "peek() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.peek", false]], "peek() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.peek", false]], "peek() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.peek", false]], "period() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.period", false]], "period_dot() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.period_dot", false]], "pformat() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pformat", false]], "pformat() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pformat", false]], "pformat_all() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pformat_all", false]], "pformat_all() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pformat_all", false]], "phasebackgroundmaker (class in gammapy.makers)": [[174, "gammapy.makers.PhaseBackgroundMaker", false]], "phi (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.phi", false]], "phi (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.phi", false]], "phi (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.phi", false]], "phi (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.phi", false]], "phi_0 (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.phi_0", false]], "phi_ref (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.phi_ref", false]], "piecewisenormspatialmodel (class in gammapy.modeling.models)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel", false]], "piecewisenormspectralmodel (class in gammapy.modeling.models)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel", false]], "pivot_energy (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.pivot_energy", false]], "pivot_energy (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.pivot_energy", false]], "pix_to_coord() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.pix_to_coord", false]], "pix_to_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.timemapaxis static method)": [[203, "gammapy.maps.TimeMapAxis.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.pix_to_idx", false]], "pixel_area (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.pixel_area", false]], "pixel_scales (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.pixel_scales", false]], "pixel_scales (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.pixel_scales", false]], "plot() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.plot", false]], "plot() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.plot", false]], "plot() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.plot", false]], "plot() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.plot", false]], "plot() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.plot", false]], "plot() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot", false]], "plot() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.plot", false]], "plot() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot", false]], "plot() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot", false]], "plot() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot", false]], "plot() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.plot", false]], "plot() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot", false]], "plot() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot", false]], "plot() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.plot", false]], "plot() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.plot", false]], "plot() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot", false]], "plot() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.plot", false]], "plot() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot", false]], "plot() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.plot", false]], "plot() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.plot", false]], "plot() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot", false]], "plot() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.plot", false]], "plot() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.plot", false]], "plot() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.plot", false]], "plot() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.plot", false]], "plot() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.plot", false]], "plot() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.plot", false]], "plot() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot", false]], "plot() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot", false]], "plot() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.plot", false]], "plot() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.plot", false]], "plot() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.plot", false]], "plot() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot", false]], "plot() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot", false]], "plot() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.plot", false]], "plot() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot", false]], "plot() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.plot", false]], "plot() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.plot", false]], "plot() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.plot", false]], "plot() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.plot", false]], "plot() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot", false]], "plot() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.plot", false]], "plot() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.plot", false]], "plot() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot", false]], "plot() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.plot", false]], "plot() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.plot", false]], "plot() (gammapy.visualization.mappanelplotter method)": [[367, "gammapy.visualization.MapPanelPlotter.plot", false]], "plot_at_energy() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_at_energy", false]], "plot_at_energy() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.plot_at_energy", false]], "plot_bias() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.plot_bias", false]], "plot_bias() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.plot_bias", false]], "plot_containment_radius() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.plot_containment_radius", false]], "plot_containment_radius() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.plot_containment_radius", false]], "plot_containment_radius() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.plot_containment_radius", false]], "plot_containment_radius() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.plot_containment_radius", false]], "plot_containment_radius_vs_energy() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.plot_containment_radius_vs_energy", false]], "plot_contour_line() (in module gammapy.visualization)": [[372, "gammapy.visualization.plot_contour_line", false]], "plot_correlation() (gammapy.modeling.covariance method)": [[209, "gammapy.modeling.Covariance.plot_correlation", false]], "plot_counts() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_counts", false]], "plot_counts() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_counts", false]], "plot_distribution() (in module gammapy.visualization)": [[373, "gammapy.visualization.plot_distribution", false]], "plot_energy() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_energy", false]], "plot_energy_dependence() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_energy_dependence", false]], "plot_energy_dependence() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.plot_energy_dependence", false]], "plot_energy_offset() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_energy_offset", false]], "plot_err() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.plot_err", false]], "plot_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.plot_error", false]], "plot_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.plot_error", false]], "plot_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.plot_error", false]], "plot_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.plot_error", false]], "plot_excess() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_excess", false]], "plot_excess() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_excess", false]], "plot_fit() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.plot_fit", false]], "plot_fit() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_fit", false]], "plot_fit() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_fit", false]], "plot_grid() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.plot_grid", false]], "plot_grid() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot_grid", false]], "plot_grid() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.plot_grid", false]], "plot_grid() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_grid", false]], "plot_grid() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.plot_grid", false]], "plot_grid() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot_grid", false]], "plot_grid() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_grid", false]], "plot_heatmap() (in module gammapy.visualization)": [[374, "gammapy.visualization.plot_heatmap", false]], "plot_hist() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_hist", false]], "plot_image() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_image", false]], "plot_interactive() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.plot_interactive", false]], "plot_interactive() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_interactive", false]], "plot_kernel() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.plot_kernel", false]], "plot_map_rgb() (in module gammapy.visualization)": [[375, "gammapy.visualization.plot_map_rgb", false]], "plot_mask() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot_mask", false]], "plot_mask() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_mask", false]], "plot_mask() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot_mask", false]], "plot_masks() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_masks", false]], "plot_masks() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_masks", false]], "plot_matrix() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.plot_matrix", false]], "plot_migration() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.plot_migration", false]], "plot_npred_signal() (in module gammapy.visualization)": [[376, "gammapy.visualization.plot_npred_signal", false]], "plot_offset2_distribution() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_offset2_distribution", false]], "plot_offset_dependence() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_offset_dependence", false]], "plot_offset_dependence() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.plot_offset_dependence", false]], "plot_panel() (gammapy.visualization.mappanelplotter method)": [[367, "gammapy.visualization.MapPanelPlotter.plot_panel", false]], "plot_phasogram() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.plot_phasogram", false]], "plot_position_error() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_position_error", false]], "plot_positions() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.plot_positions", false]], "plot_positions() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.plot_positions", false]], "plot_psf_vs_rad() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.plot_psf_vs_rad", false]], "plot_rad_max_vs_energy() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.plot_rad_max_vs_energy", false]], "plot_region() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.plot_region", false]], "plot_region() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_region", false]], "plot_regions() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.plot_regions", false]], "plot_regions() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.plot_regions", false]], "plot_residuals() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.plot_residuals", false]], "plot_residuals() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.plot_residuals", false]], "plot_residuals() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.plot_residuals", false]], "plot_residuals() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_residuals", false]], "plot_residuals() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_residuals", false]], "plot_residuals_spatial() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.plot_residuals_spatial", false]], "plot_residuals_spatial() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.plot_residuals_spatial", false]], "plot_residuals_spatial() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_residuals_spatial", false]], "plot_residuals_spatial() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_residuals_spatial", false]], "plot_residuals_spectral() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.plot_residuals_spectral", false]], "plot_residuals_spectral() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.plot_residuals_spectral", false]], "plot_residuals_spectral() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_residuals_spectral", false]], "plot_residuals_spectral() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_residuals_spectral", false]], "plot_spectrum() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.plot_spectrum", false]], "plot_spectrum() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_spectrum", false]], "plot_spectrum_datasets_off_regions() (in module gammapy.visualization)": [[377, "gammapy.visualization.plot_spectrum_datasets_off_regions", false]], "plot_theta_squared_table() (in module gammapy.visualization)": [[378, "gammapy.visualization.plot_theta_squared_table", false]], "plot_time() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_time", false]], "plot_ts_profiles() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.plot_ts_profiles", false]], "pointing (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.pointing", false]], "pointing (gammapy.data.pointingmode attribute)": [[95, "gammapy.data.PointingMode.POINTING", false]], "pointing_galactic (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pointing_galactic", false]], "pointing_radec (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.pointing_radec", false]], "pointing_radec (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pointing_radec", false]], "pointinginfo (class in gammapy.data)": [[94, "gammapy.data.PointingInfo", false]], "pointingmode (class in gammapy.data)": [[95, "gammapy.data.PointingMode", false]], "pointspatialmodel (class in gammapy.modeling.models)": [[251, "gammapy.modeling.models.PointSpatialModel", false]], "polar() (in module gammapy.utils.coordinates)": [[312, "gammapy.utils.coordinates.polar", false]], "pool_kwargs_default (in module gammapy.utils.parallel)": [[326, "gammapy.utils.parallel.POOL_KWARGS_DEFAULT", false]], "pop() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.pop", false]], "pop() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.pop", false]], "pop() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.pop", false]], "pop() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.pop", false]], "popitem() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.popitem", false]], "position (gammapy.catalog.sourcecatalogobject attribute)": [[69, "gammapy.catalog.SourceCatalogObject.position", false]], "position (gammapy.catalog.sourcecatalogobject1lhaaso attribute)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.position", false]], "position (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.position", false]], "position (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.position", false]], "position (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.position", false]], "position (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.position", false]], "position (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.position", false]], "position (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.position", false]], "position (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.position", false]], "position (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.position", false]], "position (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.position", false]], "position (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.position", false]], "position (gammapy.catalog.sourcecatalogobjecthgpscomponent attribute)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.position", false]], "position (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.position", false]], "position (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.position", false]], "position (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.position", false]], "position (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.position", false]], "position (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.position", false]], "position (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.position", false]], "position (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.position", false]], "position (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.position", false]], "position (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.position", false]], "position (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.position", false]], "position (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.position", false]], "position (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.position", false]], "position (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.position", false]], "position (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.position", false]], "position_error (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.position_error", false]], "position_error (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.position_error", false]], "position_error (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.position_error", false]], "position_lonlat (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.position_lonlat", false]], "positions (gammapy.catalog.sourcecatalog attribute)": [[56, "gammapy.catalog.SourceCatalog.positions", false]], "positions (gammapy.catalog.sourcecatalog1lhaaso attribute)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.positions", false]], "positions (gammapy.catalog.sourcecatalog2fhl attribute)": [[58, "gammapy.catalog.SourceCatalog2FHL.positions", false]], "positions (gammapy.catalog.sourcecatalog2hwc attribute)": [[59, "gammapy.catalog.SourceCatalog2HWC.positions", false]], "positions (gammapy.catalog.sourcecatalog2pc attribute)": [[60, "gammapy.catalog.SourceCatalog2PC.positions", false]], "positions (gammapy.catalog.sourcecatalog3fgl attribute)": [[61, "gammapy.catalog.SourceCatalog3FGL.positions", false]], "positions (gammapy.catalog.sourcecatalog3fhl attribute)": [[62, "gammapy.catalog.SourceCatalog3FHL.positions", false]], "positions (gammapy.catalog.sourcecatalog3hwc attribute)": [[63, "gammapy.catalog.SourceCatalog3HWC.positions", false]], "positions (gammapy.catalog.sourcecatalog3pc attribute)": [[64, "gammapy.catalog.SourceCatalog3PC.positions", false]], "positions (gammapy.catalog.sourcecatalog4fgl attribute)": [[65, "gammapy.catalog.SourceCatalog4FGL.positions", false]], "positions (gammapy.catalog.sourcecataloggammacat attribute)": [[66, "gammapy.catalog.SourceCatalogGammaCat.positions", false]], "positions (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.positions", false]], "positions (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.positions", false]], "positions (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.positions", false]], "powerlaw2spectralmodel (class in gammapy.modeling.models)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel", false]], "powerlawnormspectralmodel (class in gammapy.modeling.models)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel", false]], "powerlawspectralmodel (class in gammapy.modeling.models)": [[254, "gammapy.modeling.models.PowerLawSpectralModel", false]], "powerlawtemporalmodel (class in gammapy.modeling.models)": [[255, "gammapy.modeling.models.PowerLawTemporalModel", false]], "pprint() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pprint", false]], "pprint() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pprint", false]], "pprint_all() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pprint_all", false]], "pprint_all() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pprint_all", false]], "pprint_exclude_names (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.pprint_exclude_names", false]], "pprint_exclude_names (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pprint_exclude_names", false]], "pprint_include_names (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.pprint_include_names", false]], "pprint_include_names (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pprint_include_names", false]], "prepare_inputs() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.prepare_inputs", false]], "prepare_outputs() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.prepare_outputs", false]], "primary_axis (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.primary_axis", false]], "primaryflux (class in gammapy.astro.darkmatter)": [[26, "gammapy.astro.darkmatter.PrimaryFlux", false]], "prior (class in gammapy.modeling.models)": [[256, "gammapy.modeling.models.Prior", false]], "prior (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.prior", false]], "prior (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.prior", false]], "prior (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.prior", false]], "prior (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.prior", false]], "prior_stat_sum() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.prior_stat_sum", false]], "prior_stat_sum() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.prior_stat_sum", false]], "prior_stat_sum() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.prior_stat_sum", false]], "prior_stat_sum() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.prior_stat_sum", false]], "priorparameter (class in gammapy.modeling)": [[216, "gammapy.modeling.PriorParameter", false]], "priorparameters (class in gammapy.modeling)": [[217, "gammapy.modeling.PriorParameters", false]], "profile (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.profile", false]], "profile_err (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.profile_err", false]], "projected_distance_axis (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.projected_distance_axis", false]], "projection (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.projection", false]], "projection (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.projection", false]], "projection (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.projection", false]], "psf": [[577, "term-PSF", true]], "psf (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.psf", false]], "psf (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.psf", false]], "psf (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.psf", false]], "psf (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.psf", false]], "psf (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.psf", false]], "psf3d (class in gammapy.irf)": [[160, "gammapy.irf.PSF3D", false]], "psf_kernel_map (gammapy.irf.psfkernel attribute)": [[161, "gammapy.irf.PSFKernel.psf_kernel_map", false]], "psf_map (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.psf_map", false]], "psf_map (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.psf_map", false]], "psfkernel (class in gammapy.irf)": [[161, "gammapy.irf.PSFKernel", false]], "psfking (class in gammapy.irf)": [[162, "gammapy.irf.PSFKing", false]], "psfmap (class in gammapy.irf)": [[163, "gammapy.irf.PSFMap", false]], "pulsar (class in gammapy.astro.source)": [[51, "gammapy.astro.source.Pulsar", false]], "pwn (class in gammapy.astro.source)": [[50, "gammapy.astro.source.PWN", false]], "quantity (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.quantity", false]], "quantity (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.quantity", false]], "quantity (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.quantity", false]], "quantity (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.quantity", false]], "quantity (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.quantity", false]], "quantity (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.quantity", false]], "quantity (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.quantity", false]], "quantity (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.quantity", false]], "quantity (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.quantity", false]], "quantity (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.quantity", false]], "quantity (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.quantity", false]], "quantity (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.quantity", false]], "quantity (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.quantity", false]], "quantity (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.quantity", false]], "quantity (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.quantity", false]], "quantity (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.quantity", false]], "quantity (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.quantity", false]], "quantity (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.quantity", false]], "quantity (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.quantity", false]], "quantity (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.quantity", false]], "r_0 (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.r_0", false]], "r_0 (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.r_0", false]], "r_0 (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.r_0", false]], "r_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.r_0", false]], "r_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.r_0", false]], "r_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.r_0", false]], "r_1 (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.r_1", false]], "r_exp (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.r_exp", false]], "r_in (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.r_in", false]], "r_sun (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.r_sun", false]], "rad_max (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.rad_max", false]], "radec (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.radec", false]], "radec (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.radec", false]], "radec (gammapy.irf.fovalignment attribute)": [[156, "gammapy.irf.FoVAlignment.RADEC", false]], "radial_distributions (in module gammapy.astro.population)": [[48, "gammapy.astro.population.radial_distributions", false]], "radius (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.radius", false]], "radius() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.radius", false]], "radius() (gammapy.astro.population.logspiral method)": [[34, "gammapy.astro.population.LogSpiral.radius", false]], "radius() (gammapy.astro.population.valleespiral method)": [[38, "gammapy.astro.population.ValleeSpiral.radius", false]], "radius() (gammapy.astro.source.pwn method)": [[50, "gammapy.astro.source.PWN.radius", false]], "radius() (gammapy.astro.source.snr method)": [[52, "gammapy.astro.source.SNR.radius", false]], "radius() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.radius", false]], "radius_inner() (gammapy.astro.source.snr method)": [[52, "gammapy.astro.source.SNR.radius_inner", false]], "radius_inner() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.radius_inner", false]], "radius_reverse_shock() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.radius_reverse_shock", false]], "radmax2d (class in gammapy.irf)": [[165, "gammapy.irf.RadMax2D", false]], "read() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.read", false]], "read() (gammapy.data.eventlist class method)": [[83, "gammapy.data.EventList.read", false]], "read() (gammapy.data.fixedpointinginfo class method)": [[85, "gammapy.data.FixedPointingInfo.read", false]], "read() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.read", false]], "read() (gammapy.data.hduindextable class method)": [[87, "gammapy.data.HDUIndexTable.read", false]], "read() (gammapy.data.observation class method)": [[88, "gammapy.data.Observation.read", false]], "read() (gammapy.data.observationtable class method)": [[91, "gammapy.data.ObservationTable.read", false]], "read() (gammapy.data.pointinginfo class method)": [[94, "gammapy.data.PointingInfo.read", false]], "read() (gammapy.datasets.datasets class method)": [[100, "gammapy.datasets.Datasets.read", false]], "read() (gammapy.datasets.fluxpointsdataset class method)": [[101, "gammapy.datasets.FluxPointsDataset.read", false]], "read() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.read", false]], "read() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.read", false]], "read() (gammapy.datasets.ogipdatasetreader method)": [[106, "gammapy.datasets.OGIPDatasetReader.read", false]], "read() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.read", false]], "read() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.read", false]], "read() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.read", false]], "read() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.read", false]], "read() (gammapy.irf.background2d class method)": [[147, "gammapy.irf.Background2D.read", false]], "read() (gammapy.irf.background3d class method)": [[148, "gammapy.irf.Background3D.read", false]], "read() (gammapy.irf.backgroundirf class method)": [[149, "gammapy.irf.BackgroundIRF.read", false]], "read() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.read", false]], "read() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.read", false]], "read() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.read", false]], "read() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.read", false]], "read() (gammapy.irf.energydependentmultigausspsf class method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.read", false]], "read() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.read", false]], "read() (gammapy.irf.irf class method)": [[157, "gammapy.irf.IRF.read", false]], "read() (gammapy.irf.irfmap class method)": [[158, "gammapy.irf.IRFMap.read", false]], "read() (gammapy.irf.parametricpsf class method)": [[164, "gammapy.irf.ParametricPSF.read", false]], "read() (gammapy.irf.psf3d class method)": [[160, "gammapy.irf.PSF3D.read", false]], "read() (gammapy.irf.psfkernel class method)": [[161, "gammapy.irf.PSFKernel.read", false]], "read() (gammapy.irf.psfking class method)": [[162, "gammapy.irf.PSFKing.read", false]], "read() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.read", false]], "read() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.read", false]], "read() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.read", false]], "read() (gammapy.maps.hpxmap static method)": [[193, "gammapy.maps.HpxMap.read", false]], "read() (gammapy.maps.hpxndmap static method)": [[194, "gammapy.maps.HpxNDMap.read", false]], "read() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.read", false]], "read() (gammapy.maps.maps class method)": [[200, "gammapy.maps.Maps.read", false]], "read() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.read", false]], "read() (gammapy.maps.wcsmap static method)": [[205, "gammapy.maps.WcsMap.read", false]], "read() (gammapy.maps.wcsndmap static method)": [[206, "gammapy.maps.WcsNDMap.read", false]], "read() (gammapy.modeling.models.datasetmodels class method)": [[224, "gammapy.modeling.models.DatasetModels.read", false]], "read() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.read", false]], "read() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.read", false]], "read() (gammapy.modeling.models.models class method)": [[247, "gammapy.modeling.models.Models.read", false]], "read() (gammapy.modeling.models.templatephasecurvetemporalmodel class method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.read", false]], "read() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.read", false]], "read_arf() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_arf", false]], "read_bkg() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_bkg", false]], "read_builtin() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.read_builtin", false]], "read_covariance() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.read_covariance", false]], "read_covariance() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.read_covariance", false]], "read_datasets() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.read_datasets", false]], "read_hermes_cube() (in module gammapy.modeling.models)": [[283, "gammapy.modeling.models.read_hermes_cube", false]], "read_hermes_cube() (in module gammapy.modeling.models.utils)": [[285, "gammapy.modeling.models.utils.read_hermes_cube", false]], "read_models() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.read_models", false]], "read_pha() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_pha", false]], "read_rmf() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_rmf", false]], "read_xspec_model() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.read_xspec_model", false]], "read_yaml() (in module gammapy.utils.scripts)": [[346, "gammapy.utils.scripts.read_yaml", false]], "reassign() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.reassign", false]], "reassign() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.reassign", false]], "reassign() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.reassign", false]], "reassign() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.reassign", false]], "reassign() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.reassign", false]], "reassign() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.reassign", false]], "reassign() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.reassign", false]], "reassign() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.reassign", false]], "reassign() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.reassign", false]], "reassign() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.reassign", false]], "reassign() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.reassign", false]], "reassign() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.reassign", false]], "reco energy": [[577, "term-Reco-Energy", true]], "recompute_ul() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.recompute_ul", false]], "recopsfmap (class in gammapy.irf)": [[166, "gammapy.irf.RecoPSFMap", false]], "recursive_merge_dicts() (in module gammapy.utils.scripts)": [[347, "gammapy.utils.scripts.recursive_merge_dicts", false]], "redshift (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.redshift", false]], "reduce() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reduce", false]], "reduce() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reduce", false]], "reduce() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reduce", false]], "reduce() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reduce", false]], "reduce() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reduce", false]], "reduce() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reduce", false]], "reduce_over_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reduce_over_axes", false]], "reference (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.reference", false]], "reference (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.reference", false]], "reference (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.reference", false]], "reference (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.reference", false]], "reference (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.reference", false]], "reference (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.reference", false]], "reference (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.reference", false]], "reference (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.reference", false]], "reference (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.reference", false]], "reference (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.reference", false]], "reference (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.reference", false]], "reference_fluxes() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.reference_fluxes", false]], "reference_model (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.reference_model", false]], "reference_model (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.reference_model", false]], "reference_model_default (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.reference_model_default", false]], "reference_model_default (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.reference_model_default", false]], "reference_spectral_model (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.reference_spectral_model", false]], "reference_spectral_model (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.reference_spectral_model", false]], "reference_time (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.reference_time", false]], "reference_time (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.reference_time", false]], "reflected background": [[577, "term-Reflected-Background", true]], "reflectedregionsbackgroundmaker (class in gammapy.makers)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker", false]], "reflectedregionsfinder (class in gammapy.makers)": [[176, "gammapy.makers.ReflectedRegionsFinder", false]], "region (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.region", false]], "region (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.region", false]], "region_mask() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.region_mask", false]], "region_mask() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.region_mask", false]], "region_to_frame() (in module gammapy.utils.regions)": [[341, "gammapy.utils.regions.region_to_frame", false]], "region_weights() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.region_weights", false]], "regiongeom (class in gammapy.maps)": [[201, "gammapy.maps.RegionGeom", false]], "regionndmap (class in gammapy.maps)": [[202, "gammapy.maps.RegionNDMap", false]], "regions_to_compound_region() (in module gammapy.utils.regions)": [[342, "gammapy.utils.regions.regions_to_compound_region", false]], "regionsfinder (class in gammapy.makers)": [[177, "gammapy.makers.RegionsFinder", false]], "remove() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.remove", false]], "remove() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.remove", false]], "remove() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.remove", false]], "remove_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_column", false]], "remove_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_column", false]], "remove_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_columns", false]], "remove_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_columns", false]], "remove_indices() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_indices", false]], "remove_indices() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_indices", false]], "remove_row() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_row", false]], "remove_row() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_row", false]], "remove_rows() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_rows", false]], "remove_rows() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_rows", false]], "rename() (gammapy.astro.population.casebattacharya1998 class method)": [[28, "gammapy.astro.population.CaseBattacharya1998.rename", false]], "rename() (gammapy.astro.population.exponential class method)": [[29, "gammapy.astro.population.Exponential.rename", false]], "rename() (gammapy.astro.population.faucherkaspi2006 class method)": [[30, "gammapy.astro.population.FaucherKaspi2006.rename", false]], "rename() (gammapy.astro.population.faucherkaspi2006velocitybimodal class method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.rename", false]], "rename() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian class method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.rename", false]], "rename() (gammapy.astro.population.lorimer2006 class method)": [[35, "gammapy.astro.population.Lorimer2006.rename", false]], "rename() (gammapy.astro.population.paczynski1990 class method)": [[36, "gammapy.astro.population.Paczynski1990.rename", false]], "rename() (gammapy.astro.population.paczynski1990velocity class method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.rename", false]], "rename() (gammapy.astro.population.yusifovkucuk2004 class method)": [[39, "gammapy.astro.population.YusifovKucuk2004.rename", false]], "rename() (gammapy.astro.population.yusifovkucuk2004b class method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.rename", false]], "rename() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.rename", false]], "rename_axes() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.rename_axes", false]], "rename_axes() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.rename_axes", false]], "rename_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.rename_axes", false]], "rename_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.rename_axes", false]], "rename_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.rename_axes", false]], "rename_axes() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.rename_axes", false]], "rename_axes() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.rename_axes", false]], "rename_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.rename_axes", false]], "rename_axes() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.rename_axes", false]], "rename_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.rename_axes", false]], "rename_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.rename_axes", false]], "rename_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.rename_column", false]], "rename_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.rename_column", false]], "rename_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.rename_columns", false]], "rename_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.rename_columns", false]], "render() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.render", false]], "render() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.render", false]], "render() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.render", false]], "render() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.render", false]], "render() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.render", false]], "render() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.render", false]], "render() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.render", false]], "render() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.render", false]], "render() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.render", false]], "render() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.render", false]], "reorder_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reorder_axes", false]], "reorder_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reorder_axes", false]], "replace() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.replace", false]], "replace_axis() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.replace_axis", false]], "replace_axis() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.replace_axis", false]], "replace_axis() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.replace_axis", false]], "replace_axis() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.replace_axis", false]], "replace_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.replace_column", false]], "replace_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.replace_column", false]], "reproject_by_image() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reproject_by_image", false]], "reproject_to_geom() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reproject_to_geom", false]], "required_axes (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.required_axes", false]], "required_axes (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.required_axes", false]], "required_axes (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.required_axes", false]], "required_axes (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.required_axes", false]], "required_axes (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.required_axes", false]], "required_axes (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.required_axes", false]], "required_axes (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.required_axes", false]], "required_axes (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.required_axes", false]], "required_axes (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.required_axes", false]], "required_axes (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.required_axes", false]], "required_axes (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.required_axes", false]], "required_axes (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.required_axes", false]], "required_axes (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.required_axes", false]], "required_axes (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.required_axes", false]], "required_axes (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.required_axes", false]], "required_axes (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.required_axes", false]], "required_axes (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.required_axes", false]], "required_parameters (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.required_parameters", false]], "required_parameters (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.required_parameters", false]], "required_parameters (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.required_parameters", false]], "requires_data() (in module gammapy.utils.testing)": [[359, "gammapy.utils.testing.requires_data", false]], "requires_dependency() (in module gammapy.utils.testing)": [[360, "gammapy.utils.testing.requires_dependency", false]], "resample() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.resample", false]], "resample() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.resample", false]], "resample() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.resample", false]], "resample() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.resample", false]], "resample() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.resample", false]], "resample() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.resample", false]], "resample() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.resample", false]], "resample() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.resample", false]], "resample_axis() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.resample_axis", false]], "resample_axis() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.resample_axis", false]], "resample_axis() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.resample_axis", false]], "resample_axis() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.resample_axis", false]], "resample_axis() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.resample_axis", false]], "resample_axis() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.resample_axis", false]], "resample_axis() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.resample_axis", false]], "resample_axis() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.resample_axis", false]], "resample_axis() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.resample_axis", false]], "resample_axis() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.resample_axis", false]], "resample_axis() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.resample_axis", false]], "resample_energy_axis() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.resample_energy_axis", false]], "resample_energy_axis() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.resample_energy_axis", false]], "resample_energy_axis() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.resample_energy_axis", false]], "resample_energy_axis() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.resample_energy_axis", false]], "resample_energy_axis() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.resample_energy_axis", false]], "resample_energy_edges() (in module gammapy.estimators.utils)": [[146, "gammapy.estimators.utils.resample_energy_edges", false]], "reset_data_cache() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.reset_data_cache", false]], "reset_data_cache() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.reset_data_cache", false]], "reset_data_cache() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.reset_data_cache", false]], "reset_data_cache() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.reset_data_cache", false]], "reset_to_default() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.reset_to_default", false]], "residuals() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.residuals", false]], "residuals() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.residuals", false]], "residuals() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.residuals", false]], "residuals() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.residuals", false]], "residuals() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.residuals", false]], "restore_status() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.restore_status", false]], "restore_status() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.restore_status", false]], "restore_status() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.restore_status", false]], "restore_status() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.restore_status", false]], "return_units (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.return_units", false]], "return_units (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.return_units", false]], "return_units (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.return_units", false]], "return_units (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.return_units", false]], "return_units (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.return_units", false]], "return_units (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.return_units", false]], "return_units (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.return_units", false]], "return_units (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.return_units", false]], "return_units (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.return_units", false]], "return_units (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.return_units", false]], "reverse (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.reverse", false]], "reverse() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.reverse", false]], "reverse() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.reverse", false]], "reverse() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.reverse", false]], "reverse() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.reverse", false]], "reverse() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.reverse", false]], "reverse_lon_radec (gammapy.irf.fovalignment attribute)": [[156, "gammapy.irf.FoVAlignment.REVERSE_LON_RADEC", false]], "ring background": [[577, "term-Ring-Background", true]], "ringbackgroundmaker (class in gammapy.makers)": [[178, "gammapy.makers.RingBackgroundMaker", false]], "roi": [[577, "term-RoI", true]], "round() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.round", false]], "round() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.round", false]], "round() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.round", false]], "row_idx() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.row_idx", false]], "row_index (gammapy.catalog.sourcecatalogobject attribute)": [[69, "gammapy.catalog.SourceCatalogObject.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject1lhaaso attribute)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobjecthgpscomponent attribute)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog method)": [[56, "gammapy.catalog.SourceCatalog.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog1lhaaso method)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog2fhl method)": [[58, "gammapy.catalog.SourceCatalog2FHL.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog2hwc method)": [[59, "gammapy.catalog.SourceCatalog2HWC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog2pc method)": [[60, "gammapy.catalog.SourceCatalog2PC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3fgl method)": [[61, "gammapy.catalog.SourceCatalog3FGL.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3fhl method)": [[62, "gammapy.catalog.SourceCatalog3FHL.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3hwc method)": [[63, "gammapy.catalog.SourceCatalog3HWC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3pc method)": [[64, "gammapy.catalog.SourceCatalog3PC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog4fgl method)": [[65, "gammapy.catalog.SourceCatalog4FGL.row_index", false]], "row_index() (gammapy.catalog.sourcecataloggammacat method)": [[66, "gammapy.catalog.SourceCatalogGammaCat.row_index", false]], "row_index() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.row_index", false]], "run() (gammapy.data.observationseventssampler method)": [[93, "gammapy.data.ObservationsEventsSampler.run", false]], "run() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.run", false]], "run() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.run", false]], "run() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.run", false]], "run() (gammapy.estimators.energydependentmorphologyestimator method)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.run", false]], "run() (gammapy.estimators.estimator method)": [[121, "gammapy.estimators.Estimator.run", false]], "run() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.run", false]], "run() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.run", false]], "run() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.run", false]], "run() (gammapy.estimators.imageprofileestimator method)": [[129, "gammapy.estimators.ImageProfileEstimator.run", false]], "run() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.run", false]], "run() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.run", false]], "run() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.run", false]], "run() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.run", false]], "run() (gammapy.makers.adaptiveringbackgroundmaker method)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.run", false]], "run() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.run", false]], "run() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.run", false]], "run() (gammapy.makers.maker method)": [[172, "gammapy.makers.Maker.run", false]], "run() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.run", false]], "run() (gammapy.makers.phasebackgroundmaker method)": [[174, "gammapy.makers.PhaseBackgroundMaker.run", false]], "run() (gammapy.makers.reflectedregionsbackgroundmaker method)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker.run", false]], "run() (gammapy.makers.reflectedregionsfinder method)": [[176, "gammapy.makers.ReflectedRegionsFinder.run", false]], "run() (gammapy.makers.regionsfinder method)": [[177, "gammapy.makers.RegionsFinder.run", false]], "run() (gammapy.makers.ringbackgroundmaker method)": [[178, "gammapy.makers.RingBackgroundMaker.run", false]], "run() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.run", false]], "run() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.run", false]], "run() (gammapy.makers.wobbleregionsfinder method)": [[181, "gammapy.makers.WobbleRegionsFinder.run", false]], "run() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.run", false]], "run() (gammapy.utils.testing.checker method)": [[354, "gammapy.utils.testing.Checker.run", false]], "run_fit() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.run_fit", false]], "run_multiprocessing() (in module gammapy.utils.parallel)": [[328, "gammapy.utils.parallel.run_multiprocessing", false]], "safe_mask_maker (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.safe_mask_maker", false]], "safemaskmaker (class in gammapy.makers)": [[179, "gammapy.makers.SafeMaskMaker", false]], "sample() (gammapy.utils.random.inversecdfsampler method)": [[329, "gammapy.utils.random.InverseCDFSampler.sample", false]], "sample_axis() (gammapy.utils.random.inversecdfsampler method)": [[329, "gammapy.utils.random.InverseCDFSampler.sample_axis", false]], "sample_background() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_background", false]], "sample_background() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_background", false]], "sample_coord() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.sample_coord", false]], "sample_coord() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.sample_coord", false]], "sample_coord() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.sample_coord", false]], "sample_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.sample_coord", false]], "sample_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.sample_coord", false]], "sample_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.sample_coord", false]], "sample_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.sample_coord", false]], "sample_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.sample_coord", false]], "sample_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.sample_coord", false]], "sample_edisp() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_edisp", false]], "sample_edisp() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_edisp", false]], "sample_powerlaw() (in module gammapy.utils.random)": [[334, "gammapy.utils.random.sample_powerlaw", false]], "sample_psf() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_psf", false]], "sample_psf() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_psf", false]], "sample_sources() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_sources", false]], "sample_sources() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_sources", false]], "sample_sphere() (in module gammapy.utils.random)": [[335, "gammapy.utils.random.sample_sphere", false]], "sample_sphere_distance() (in module gammapy.utils.random)": [[336, "gammapy.utils.random.sample_sphere_distance", false]], "sample_time() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.sample_time", false]], "sample_times() (in module gammapy.utils.random)": [[337, "gammapy.utils.random.sample_times", false]], "scale (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.scale", false]], "scale (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.scale", false]], "scale (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scale", false]], "scale (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scale", false]], "scale_method (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scale_method", false]], "scale_method (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scale_method", false]], "scale_plot_flux() (in module gammapy.modeling.models)": [[284, "gammapy.modeling.models.scale_plot_flux", false]], "scale_to_local_density() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.scale_to_local_density", false]], "scaledregulargridinterpolator (class in gammapy.utils.interpolation)": [[319, "gammapy.utils.interpolation.ScaledRegularGridInterpolator", false]], "scalespectralmodel (class in gammapy.modeling.models)": [[259, "gammapy.modeling.models.ScaleSpectralModel", false]], "scan_max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_max", false]], "scan_max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_max", false]], "scan_min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_min", false]], "scan_min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_min", false]], "scan_n_sigma (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_n_sigma", false]], "scan_n_sigma (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_n_sigma", false]], "scan_values (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_values", false]], "scan_values (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_values", false]], "schema() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.schema", false]], "schema() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.schema", false]], "schema() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.schema", false]], "schema() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.schema", false]], "schema() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.schema", false]], "schema_json() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.schema_json", false]], "schema_json() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.schema_json", false]], "schema_json() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.schema_json", false]], "schema_json() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.schema_json", false]], "schema_json() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.schema_json", false]], "scipy_mvn (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.scipy_mvn", false]], "sed": [[577, "term-SED", true]], "sed_type_init (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sed_type_init", false]], "sed_type_init (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sed_type_init", false]], "sed_type_plot_default (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sed_type_plot_default", false]], "sed_type_plot_default (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sed_type_plot_default", false]], "sedov_taylor_begin (gammapy.astro.source.snr attribute)": [[52, "gammapy.astro.source.SNR.sedov_taylor_begin", false]], "sedov_taylor_begin (gammapy.astro.source.snrtruelovemckee attribute)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.sedov_taylor_begin", false]], "sedov_taylor_end (gammapy.astro.source.snr attribute)": [[52, "gammapy.astro.source.SNR.sedov_taylor_end", false]], "sedov_taylor_end (gammapy.astro.source.snrtruelovemckee attribute)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.sedov_taylor_end", false]], "select() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select", false]], "select() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select", false]], "select() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.select", false]], "select() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.select", false]], "select_energy() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_energy", false]], "select_from_geom() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select_from_geom", false]], "select_from_geom() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select_from_geom", false]], "select_mask() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_mask", false]], "select_mask() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select_mask", false]], "select_mask() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select_mask", false]], "select_nested_models() (in module gammapy.modeling)": [[286, "gammapy.modeling.select_nested_models", false]], "select_obs_id() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_obs_id", false]], "select_observations() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_observations", false]], "select_offset() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_offset", false]], "select_parameter() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_parameter", false]], "select_rad_max() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_rad_max", false]], "select_range() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_range", false]], "select_region() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_region", false]], "select_region() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select_region", false]], "select_region() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select_region", false]], "select_row_subset() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_row_subset", false]], "select_sky_circle() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_sky_circle", false]], "select_time() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_time", false]], "select_time() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.select_time", false]], "select_time() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.select_time", false]], "select_time() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.select_time", false]], "select_time() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.select_time", false]], "select_time_range() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_time_range", false]], "selection_all (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.selection_all", false]], "selection_all() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.selection_all", false]], "selection_mask() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.selection_mask", false]], "selection_mask() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.selection_mask", false]], "selection_optional (gammapy.estimators.asmoothmapestimator attribute)": [[118, "gammapy.estimators.ASmoothMapEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.energydependentmorphologyestimator attribute)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.estimator attribute)": [[121, "gammapy.estimators.Estimator.selection_optional", false]], "selection_optional (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.imageprofileestimator attribute)": [[129, "gammapy.estimators.ImageProfileEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.parameterestimator attribute)": [[131, "gammapy.estimators.ParameterEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.sensitivityestimator attribute)": [[132, "gammapy.estimators.SensitivityEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.selection_optional", false]], "sensitivityestimator (class in gammapy.estimators)": [[132, "gammapy.estimators.SensitivityEstimator", false]], "separable (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.separable", false]], "separable (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.separable", false]], "separable (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.separable", false]], "separable (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.separable", false]], "separable (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.separable", false]], "separable (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.separable", false]], "separable (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.separable", false]], "separable (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.separable", false]], "separable (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.separable", false]], "separable (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.separable", false]], "separation() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.separation", false]], "separation() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.separation", false]], "separation() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.separation", false]], "set_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.set_by_coord", false]], "set_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.set_by_coord", false]], "set_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.set_by_idx", false]], "set_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.set_by_idx", false]], "set_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.set_by_pix", false]], "set_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.set_by_pix", false]], "set_logging() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.set_logging", false]], "set_models() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.set_models", false]], "set_parameter_factors() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.set_parameter_factors", false]], "set_parameter_factors() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.set_parameter_factors", false]], "set_parameters_bounds() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.set_parameters_bounds", false]], "set_parameters_bounds() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.set_parameters_bounds", false]], "set_prior() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.set_prior", false]], "set_slice_args() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.set_slice_args", false]], "set_subcovariance() (gammapy.modeling.covariance method)": [[209, "gammapy.modeling.Covariance.set_subcovariance", false]], "setdefault() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.setdefault", false]], "shape (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.shape", false]], "shape (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.shape", false]], "shape (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.shape", false]], "shape_axes (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.shape_axes", false]], "shape_axes (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.shape_axes", false]], "shell2spatialmodel (class in gammapy.modeling.models)": [[260, "gammapy.modeling.models.Shell2SpatialModel", false]], "shellspatialmodel (class in gammapy.modeling.models)": [[261, "gammapy.modeling.models.ShellSpatialModel", false]], "show_in_browser() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.show_in_browser", false]], "show_in_browser() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.show_in_browser", false]], "show_in_notebook() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.show_in_notebook", false]], "show_in_notebook() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.show_in_notebook", false]], "sigma (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.sigma", false]], "sigma (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.sigma", false]], "sigma (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.sigma", false]], "sigma (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.sigma", false]], "sigma (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.sigma", false]], "sigma (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.sigma", false]], "sigma_1 (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sigma_1", false]], "sigma_2 (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sigma_2", false]], "simplepulsar (class in gammapy.astro.source)": [[54, "gammapy.astro.source.SimplePulsar", false]], "simulate_observation() (gammapy.data.observationseventssampler method)": [[93, "gammapy.data.ObservationsEventsSampler.simulate_observation", false]], "sinetemporalmodel (class in gammapy.modeling.models)": [[262, "gammapy.modeling.models.SineTemporalModel", false]], "size (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.size", false]], "sky_model() (gammapy.catalog.sourcecatalogobject1lhaaso method)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.sky_model", false]], "sky_to_fov() (in module gammapy.utils.coordinates)": [[313, "gammapy.utils.coordinates.sky_to_fov", false]], "skycoord (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.skycoord", false]], "skymodel (class in gammapy.modeling.models)": [[263, "gammapy.modeling.models.SkyModel", false]], "slice() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.slice", false]], "slice() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.slice", false]], "slice() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.slice", false]], "slice_by_coord() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_coord", false]], "slice_by_coord() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_coord", false]], "slice_by_energy() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.slice_by_energy", false]], "slice_by_energy() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_energy", false]], "slice_by_energy() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_energy", false]], "slice_by_energy() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.slice_by_energy", false]], "slice_by_idx() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.slice_by_idx", false]], "slice_by_idx() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.slice_by_idx", false]], "slice_by_idx() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.slice_by_idx", false]], "slice_by_idx() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.slice_by_idx", false]], "slice_by_idx() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_idx", false]], "slice_by_idx() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.slice_by_idx", false]], "slice_by_time() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_time", false]], "slice_by_time() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_time", false]], "smooth() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.smooth", false]], "smooth() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.smooth", false]], "smooth() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.smooth", false]], "smoothbrokenpowerlawspectralmodel (class in gammapy.modeling.models)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel", false]], "snr (class in gammapy.astro.source)": [[52, "gammapy.astro.source.SNR", false]], "snrtruelovemckee (class in gammapy.astro.source)": [[53, "gammapy.astro.source.SNRTrueloveMcKee", false]], "solid_angle() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.solid_angle", false]], "solid_angle() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.solid_angle", false]], "solid_angle() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.solid_angle", false]], "solid_angle() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.solid_angle", false]], "sort() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.sort", false]], "sort() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.sort", false]], "source_name() (gammapy.catalog.sourcecatalog method)": [[56, "gammapy.catalog.SourceCatalog.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog1lhaaso method)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog2fhl method)": [[58, "gammapy.catalog.SourceCatalog2FHL.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog2hwc method)": [[59, "gammapy.catalog.SourceCatalog2HWC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog2pc method)": [[60, "gammapy.catalog.SourceCatalog2PC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3fgl method)": [[61, "gammapy.catalog.SourceCatalog3FGL.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3fhl method)": [[62, "gammapy.catalog.SourceCatalog3FHL.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3hwc method)": [[63, "gammapy.catalog.SourceCatalog3HWC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3pc method)": [[64, "gammapy.catalog.SourceCatalog3PC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog4fgl method)": [[65, "gammapy.catalog.SourceCatalog4FGL.source_name", false]], "source_name() (gammapy.catalog.sourcecataloggammacat method)": [[66, "gammapy.catalog.SourceCatalogGammaCat.source_name", false]], "source_name() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.source_name", false]], "sourcecatalog (class in gammapy.catalog)": [[56, "gammapy.catalog.SourceCatalog", false]], "sourcecatalog1lhaaso (class in gammapy.catalog)": [[57, "gammapy.catalog.SourceCatalog1LHAASO", false]], "sourcecatalog2fhl (class in gammapy.catalog)": [[58, "gammapy.catalog.SourceCatalog2FHL", false]], "sourcecatalog2hwc (class in gammapy.catalog)": [[59, "gammapy.catalog.SourceCatalog2HWC", false]], "sourcecatalog2pc (class in gammapy.catalog)": [[60, "gammapy.catalog.SourceCatalog2PC", false]], "sourcecatalog3fgl (class in gammapy.catalog)": [[61, "gammapy.catalog.SourceCatalog3FGL", false]], "sourcecatalog3fhl (class in gammapy.catalog)": [[62, "gammapy.catalog.SourceCatalog3FHL", false]], "sourcecatalog3hwc (class in gammapy.catalog)": [[63, "gammapy.catalog.SourceCatalog3HWC", false]], "sourcecatalog3pc (class in gammapy.catalog)": [[64, "gammapy.catalog.SourceCatalog3PC", false]], "sourcecatalog4fgl (class in gammapy.catalog)": [[65, "gammapy.catalog.SourceCatalog4FGL", false]], "sourcecataloggammacat (class in gammapy.catalog)": [[66, "gammapy.catalog.SourceCatalogGammaCat", false]], "sourcecataloghgps (class in gammapy.catalog)": [[67, "gammapy.catalog.SourceCatalogHGPS", false]], "sourcecataloglargescalehgps (class in gammapy.catalog)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS", false]], "sourcecatalogobject (class in gammapy.catalog)": [[69, "gammapy.catalog.SourceCatalogObject", false]], "sourcecatalogobject1lhaaso (class in gammapy.catalog)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO", false]], "sourcecatalogobject2fhl (class in gammapy.catalog)": [[71, "gammapy.catalog.SourceCatalogObject2FHL", false]], "sourcecatalogobject2hwc (class in gammapy.catalog)": [[72, "gammapy.catalog.SourceCatalogObject2HWC", false]], "sourcecatalogobject2pc (class in gammapy.catalog)": [[73, "gammapy.catalog.SourceCatalogObject2PC", false]], "sourcecatalogobject3fgl (class in gammapy.catalog)": [[74, "gammapy.catalog.SourceCatalogObject3FGL", false]], "sourcecatalogobject3fhl (class in gammapy.catalog)": [[75, "gammapy.catalog.SourceCatalogObject3FHL", false]], "sourcecatalogobject3hwc (class in gammapy.catalog)": [[76, "gammapy.catalog.SourceCatalogObject3HWC", false]], "sourcecatalogobject3pc (class in gammapy.catalog)": [[77, "gammapy.catalog.SourceCatalogObject3PC", false]], "sourcecatalogobject4fgl (class in gammapy.catalog)": [[78, "gammapy.catalog.SourceCatalogObject4FGL", false]], "sourcecatalogobjectgammacat (class in gammapy.catalog)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat", false]], "sourcecatalogobjecthgps (class in gammapy.catalog)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS", false]], "sourcecatalogobjecthgpscomponent (class in gammapy.catalog)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent", false]], "spatial_model (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.spatial_model", false]], "spatial_model (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject1lhaaso method)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobjecthgpscomponent method)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.spatial_model", false]], "spatial_model_registry (in module gammapy.modeling.models)": [[257, "gammapy.modeling.models.SPATIAL_MODEL_REGISTRY", false]], "spatialmodel (class in gammapy.modeling.models)": [[265, "gammapy.modeling.models.SpatialModel", false]], "spectral_index() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.spectral_index", false]], "spectral_index() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.spectral_index", false]], "spectral_index() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.spectral_index", false]], "spectral_index() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.spectral_index", false]], "spectral_index_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.spectral_index_error", false]], "spectral_model (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.spectral_model", false]], "spectral_model (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.spectral_model", false]], "spectral_model (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject1lhaaso method)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.spectral_model", false]], "spectral_model_registry (in module gammapy.modeling.models)": [[258, "gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY", false]], "spectralmodel (class in gammapy.modeling.models)": [[266, "gammapy.modeling.models.SpectralModel", false]], "spectrumdataset (class in gammapy.datasets)": [[109, "gammapy.datasets.SpectrumDataset", false]], "spectrumdatasetmaker (class in gammapy.makers)": [[180, "gammapy.makers.SpectrumDatasetMaker", false]], "spectrumdatasetonoff (class in gammapy.datasets)": [[110, "gammapy.datasets.SpectrumDatasetOnOff", false]], "spiralarms (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.spiralarms", false]], "spiralarms (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.spiralarms", false]], "split_by_axis() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.split_by_axis", false]], "split_by_axis() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.split_by_axis", false]], "split_dataset() (in module gammapy.datasets)": [[115, "gammapy.datasets.split_dataset", false]], "split_dataset() (in module gammapy.datasets.utils)": [[117, "gammapy.datasets.utils.split_dataset", false]], "sqrt_ts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sqrt_ts", false]], "sqrt_ts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sqrt_ts", false]], "sqrt_ts (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.sqrt_ts", false]], "sqrt_ts (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.sqrt_ts", false]], "sqrt_ts_threshold_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sqrt_ts_threshold_ul", false]], "sqrt_ts_threshold_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sqrt_ts_threshold_ul", false]], "squash() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.squash", false]], "squash() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.squash", false]], "squash() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.squash", false]], "squash() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.squash", false]], "squash() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.squash", false]], "squash() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.squash", false]], "squash() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.squash", false]], "squash() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.squash", false]], "ssc_model (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.ssc_model", false]], "stack() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.stack", false]], "stack() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.stack", false]], "stack() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.stack", false]], "stack() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.stack", false]], "stack() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.stack", false]], "stack() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.stack", false]], "stack() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stack", false]], "stack() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.stack", false]], "stack() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.stack", false]], "stack() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.stack", false]], "stack() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.stack", false]], "stack() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.stack", false]], "stack() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.stack", false]], "stack() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.stack", false]], "stack() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.stack", false]], "stack() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.stack", false]], "stack_reduce() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.stack_reduce", false]], "standard_broadcasting (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.standard_broadcasting", false]], "standard_scaler() (in module gammapy.utils.cluster)": [[306, "gammapy.utils.cluster.standard_scaler", false]], "standardise_unit() (in module gammapy.utils.units)": [[365, "gammapy.utils.units.standardise_unit", false]], "stat (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.stat", false]], "stat (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.stat", false]], "stat_array() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.stat_array", false]], "stat_array() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.stat_array", false]], "stat_array() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.stat_array", false]], "stat_array() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.stat_array", false]], "stat_array() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.stat_array", false]], "stat_array() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stat_array", false]], "stat_contour() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.stat_contour", false]], "stat_max (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.stat_max", false]], "stat_max (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.stat_max", false]], "stat_null (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.stat_null", false]], "stat_null (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.stat_null", false]], "stat_null (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.stat_null", false]], "stat_null (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.stat_null", false]], "stat_profile() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.stat_profile", false]], "stat_profile_ul_scipy() (in module gammapy.modeling)": [[287, "gammapy.modeling.stat_profile_ul_scipy", false]], "stat_scan (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.stat_scan", false]], "stat_scan (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.stat_scan", false]], "stat_sum() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.stat_sum", false]], "stat_sum() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.stat_sum", false]], "stat_sum() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.stat_sum", false]], "stat_sum() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.stat_sum", false]], "stat_sum() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.stat_sum", false]], "stat_sum() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.stat_sum", false]], "stat_sum() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stat_sum", false]], "stat_surface() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.stat_surface", false]], "stat_type (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.stat_type", false]], "stat_type (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.stat_type", false]], "stat_type (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.stat_type", false]], "stat_type (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.stat_type", false]], "stat_type (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stat_type", false]], "stds (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.stds", false]], "stds (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.stds", false]], "stds (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.stds", false]], "stds (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.stds", false]], "stds (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.stds", false]], "stds (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.stds", false]], "stds (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.stds", false]], "stds (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.stds", false]], "stds (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.stds", false]], "stds (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.stds", false]], "strip_units_from_tree() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.strip_units_from_tree", false]], "structure_function() (in module gammapy.stats)": [[303, "gammapy.stats.structure_function", false]], "success (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.success", false]], "success (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.success", false]], "success (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.success", false]], "success (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.success", false]], "success (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.success", false]], "sum() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.sum", false]], "sum() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.sum", false]], "sum_of_implicit_terms() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.sum_of_implicit_terms", false]], "sum_over_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.sum_over_axes", false]], "summary() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.summary", false]], "summary() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.summary", false]], "superexpcutoffpowerlaw3fglspectralmodel (class in gammapy.modeling.models)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel", false]], "superexpcutoffpowerlaw4fgldr3spectralmodel (class in gammapy.modeling.models)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel", false]], "superexpcutoffpowerlaw4fglspectralmodel (class in gammapy.modeling.models)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel", false]], "sync_constraints (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.sync_constraints", false]], "sync_constraints (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.sync_constraints", false]], "sync_constraints (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.sync_constraints", false]], "sync_constraints (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sync_constraints", false]], "sync_constraints (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.sync_constraints", false]], "sync_constraints (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.sync_constraints", false]], "sync_constraints (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.sync_constraints", false]], "sync_constraints (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.sync_constraints", false]], "sync_constraints (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.sync_constraints", false]], "sync_constraints (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.sync_constraints", false]], "t0 (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.t0", false]], "t0 (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.t0", false]], "t_decay (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.t_decay", false]], "t_ref (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.t_ref", false]], "t_rise (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.t_rise", false]], "table_associations (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_associations", false]], "table_components (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_components", false]], "table_filename (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.table_filename", false]], "table_identifications (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_identifications", false]], "table_large_scale_component (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_large_scale_component", false]], "table_row_to_dict() (in module gammapy.utils.table)": [[351, "gammapy.utils.table.table_row_to_dict", false]], "table_standardise_units_copy() (in module gammapy.utils.table)": [[352, "gammapy.utils.table.table_standardise_units_copy", false]], "table_standardise_units_inplace() (in module gammapy.utils.table)": [[353, "gammapy.utils.table.table_standardise_units_inplace", false]], "tag (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.tag", false]], "tag (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.tag", false]], "tag (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.tag", false]], "tag (gammapy.catalog.sourcecatalog attribute)": [[56, "gammapy.catalog.SourceCatalog.tag", false]], "tag (gammapy.catalog.sourcecatalog1lhaaso attribute)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.tag", false]], "tag (gammapy.catalog.sourcecatalog2fhl attribute)": [[58, "gammapy.catalog.SourceCatalog2FHL.tag", false]], "tag (gammapy.catalog.sourcecatalog2hwc attribute)": [[59, "gammapy.catalog.SourceCatalog2HWC.tag", false]], "tag (gammapy.catalog.sourcecatalog2pc attribute)": [[60, "gammapy.catalog.SourceCatalog2PC.tag", false]], "tag (gammapy.catalog.sourcecatalog3fgl attribute)": [[61, "gammapy.catalog.SourceCatalog3FGL.tag", false]], "tag (gammapy.catalog.sourcecatalog3fhl attribute)": [[62, "gammapy.catalog.SourceCatalog3FHL.tag", false]], "tag (gammapy.catalog.sourcecatalog3hwc attribute)": [[63, "gammapy.catalog.SourceCatalog3HWC.tag", false]], "tag (gammapy.catalog.sourcecatalog3pc attribute)": [[64, "gammapy.catalog.SourceCatalog3PC.tag", false]], "tag (gammapy.catalog.sourcecatalog4fgl attribute)": [[65, "gammapy.catalog.SourceCatalog4FGL.tag", false]], "tag (gammapy.catalog.sourcecataloggammacat attribute)": [[66, "gammapy.catalog.SourceCatalogGammaCat.tag", false]], "tag (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.tag", false]], "tag (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.tag", false]], "tag (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.tag", false]], "tag (gammapy.datasets.dataset attribute)": [[99, "gammapy.datasets.Dataset.tag", false]], "tag (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.tag", false]], "tag (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.tag", false]], "tag (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.tag", false]], "tag (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.tag", false]], "tag (gammapy.datasets.ogipdatasetreader attribute)": [[106, "gammapy.datasets.OGIPDatasetReader.tag", false]], "tag (gammapy.datasets.ogipdatasetwriter attribute)": [[107, "gammapy.datasets.OGIPDatasetWriter.tag", false]], "tag (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.tag", false]], "tag (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.tag", false]], "tag (gammapy.estimators.asmoothmapestimator attribute)": [[118, "gammapy.estimators.ASmoothMapEstimator.tag", false]], "tag (gammapy.estimators.energydependentmorphologyestimator attribute)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.tag", false]], "tag (gammapy.estimators.estimator attribute)": [[121, "gammapy.estimators.Estimator.tag", false]], "tag (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.tag", false]], "tag (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.tag", false]], "tag (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.tag", false]], "tag (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.tag", false]], "tag (gammapy.estimators.imageprofileestimator attribute)": [[129, "gammapy.estimators.ImageProfileEstimator.tag", false]], "tag (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.tag", false]], "tag (gammapy.estimators.parameterestimator attribute)": [[131, "gammapy.estimators.ParameterEstimator.tag", false]], "tag (gammapy.estimators.sensitivityestimator attribute)": [[132, "gammapy.estimators.SensitivityEstimator.tag", false]], "tag (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.tag", false]], "tag (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.tag", false]], "tag (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.tag", false]], "tag (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.tag", false]], "tag (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.tag", false]], "tag (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.tag", false]], "tag (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.tag", false]], "tag (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.tag", false]], "tag (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.tag", false]], "tag (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.tag", false]], "tag (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.tag", false]], "tag (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.tag", false]], "tag (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.tag", false]], "tag (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.tag", false]], "tag (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.tag", false]], "tag (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.tag", false]], "tag (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.tag", false]], "tag (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.tag", false]], "tag (gammapy.makers.adaptiveringbackgroundmaker attribute)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.tag", false]], "tag (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.tag", false]], "tag (gammapy.makers.fovbackgroundmaker attribute)": [[170, "gammapy.makers.FoVBackgroundMaker.tag", false]], "tag (gammapy.makers.maker attribute)": [[172, "gammapy.makers.Maker.tag", false]], "tag (gammapy.makers.mapdatasetmaker attribute)": [[173, "gammapy.makers.MapDatasetMaker.tag", false]], "tag (gammapy.makers.phasebackgroundmaker attribute)": [[174, "gammapy.makers.PhaseBackgroundMaker.tag", false]], "tag (gammapy.makers.reflectedregionsbackgroundmaker attribute)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker.tag", false]], "tag (gammapy.makers.ringbackgroundmaker attribute)": [[178, "gammapy.makers.RingBackgroundMaker.tag", false]], "tag (gammapy.makers.safemaskmaker attribute)": [[179, "gammapy.makers.SafeMaskMaker.tag", false]], "tag (gammapy.makers.spectrumdatasetmaker attribute)": [[180, "gammapy.makers.SpectrumDatasetMaker.tag", false]], "tag (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.tag", false]], "tag (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.tag", false]], "tag (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.tag", false]], "tag (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.tag", false]], "tag (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.tag", false]], "tag (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.tag", false]], "tag (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.tag", false]], "tag (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.tag", false]], "tag (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.tag", false]], "tag (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.tag", false]], "tag (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.tag", false]], "tag (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.tag", false]], "tag (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.tag", false]], "tag (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.tag", false]], "tag (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.tag", false]], "tag (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.tag", false]], "tag (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.tag", false]], "tag (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.tag", false]], "tag (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.tag", false]], "tag (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.tag", false]], "tag (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.tag", false]], "tag (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.tag", false]], "tag (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.tag", false]], "tag (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.tag", false]], "tag (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.tag", false]], "tag (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.tag", false]], "tag (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.tag", false]], "tag (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.tag", false]], "tag (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.tag", false]], "tag (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.tag", false]], "tag (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.tag", false]], "tag (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.tag", false]], "tag (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.tag", false]], "tag (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.tag", false]], "tag (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.tag", false]], "tag (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.tag", false]], "tag (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.tag", false]], "tag (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.tag", false]], "tag (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.tag", false]], "tag (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.tag", false]], "tag (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.tag", false]], "tag (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.tag", false]], "tag (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.tag", false]], "tag (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.tag", false]], "target_radec (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.target_radec", false]], "tau (gammapy.astro.source.simplepulsar attribute)": [[54, "gammapy.astro.source.SimplePulsar.tau", false]], "tau() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.tau", false]], "templatendspatialmodel (class in gammapy.modeling.models)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel", false]], "templatendspectralmodel (class in gammapy.modeling.models)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel", false]], "templatenpredmodel (class in gammapy.modeling.models)": [[273, "gammapy.modeling.models.TemplateNPredModel", false]], "templatephasecurvetemporalmodel (class in gammapy.modeling.models)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel", false]], "templatespatialmodel (class in gammapy.modeling.models)": [[275, "gammapy.modeling.models.TemplateSpatialModel", false]], "templatespectralmodel (class in gammapy.modeling.models)": [[276, "gammapy.modeling.models.TemplateSpectralModel", false]], "temporal_model (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.temporal_model", false]], "temporal_model_registry (in module gammapy.modeling.models)": [[270, "gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY", false]], "temporalmodel (class in gammapy.modeling.models)": [[277, "gammapy.modeling.models.TemporalModel", false]], "thermal_relic_cross_section (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.THERMAL_RELIC_CROSS_SECTION", false]], "theta (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.theta", false]], "theta() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.theta", false]], "theta() (gammapy.astro.population.logspiral method)": [[34, "gammapy.astro.population.LogSpiral.theta", false]], "theta() (gammapy.astro.population.valleespiral method)": [[38, "gammapy.astro.population.ValleeSpiral.theta", false]], "theta_0 (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.theta_0", false]], "theta_0 (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.theta_0", false]], "tied (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.tied", false]], "tied (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.tied", false]], "tied (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.tied", false]], "tied (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.tied", false]], "tied (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.tied", false]], "tied (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.tied", false]], "tied (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.tied", false]], "tied (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.tied", false]], "tied (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.tied", false]], "tied (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.tied", false]], "tilt (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.tilt", false]], "time (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.time", false]], "time (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.time", false]], "time_bounds (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_bounds", false]], "time_delta (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_delta", false]], "time_delta (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_delta", false]], "time_edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_edges", false]], "time_format (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_format", false]], "time_intervals (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_intervals", false]], "time_max (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_max", false]], "time_mid (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_mid", false]], "time_min (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_min", false]], "time_ref (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.time_ref", false]], "time_ref (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_ref", false]], "time_ref (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.time_ref", false]], "time_ref (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.time_ref", false]], "time_ref_from_dict() (in module gammapy.utils.time)": [[362, "gammapy.utils.time.time_ref_from_dict", false]], "time_ref_to_dict() (in module gammapy.utils.time)": [[363, "gammapy.utils.time.time_ref_to_dict", false]], "time_relative_to_ref() (in module gammapy.utils.time)": [[364, "gammapy.utils.time.time_relative_to_ref", false]], "time_start (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_start", false]], "time_start (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.time_start", false]], "time_stop (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_stop", false]], "time_stop (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.time_stop", false]], "time_sum (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_sum", false]], "time_sum() (gammapy.modeling.models.constanttemporalmodel static method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.expdecaytemporalmodel static method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.gaussiantemporalmodel static method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.generalizedgaussiantemporalmodel static method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.lightcurvetemplatetemporalmodel static method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.lineartemporalmodel static method)": [[240, "gammapy.modeling.models.LinearTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.powerlawtemporalmodel static method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.sinetemporalmodel static method)": [[262, "gammapy.modeling.models.SineTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.templatephasecurvetemporalmodel static method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.temporalmodel static method)": [[277, "gammapy.modeling.models.TemporalModel.time_sum", false]], "timemapaxis (class in gammapy.maps)": [[203, "gammapy.maps.TimeMapAxis", false]], "timmerkonig_lightcurve_simulator() (in module gammapy.stats)": [[289, "gammapy.stats.TimmerKonig_lightcurve_simulator", false]], "tmid (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.tmid", false]], "to_2d() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_2d", false]], "to_3d() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_3d", false]], "to_bands_hdu() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.to_bands_hdu", false]], "to_bands_hdu() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_bands_hdu", false]], "to_bands_hdu() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_bands_hdu", false]], "to_bands_hdu() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_bands_hdu", false]], "to_binsz() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_binsz", false]], "to_binsz() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_binsz", false]], "to_binsz() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_binsz", false]], "to_binsz_wcs() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_binsz_wcs", false]], "to_contiguous() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_contiguous", false]], "to_counts_hdulist() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.to_counts_hdulist", false]], "to_cube() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.to_cube", false]], "to_cube() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_cube", false]], "to_cube() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_cube", false]], "to_cube() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_cube", false]], "to_cube() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.to_cube", false]], "to_cube() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_cube", false]], "to_cube() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_cube", false]], "to_cube() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_cube", false]], "to_cube() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_cube", false]], "to_cube() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_cube", false]], "to_dict() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.to_dict", false]], "to_dict() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.to_dict", false]], "to_dict() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.to_dict", false]], "to_dict() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.to_dict", false]], "to_dict() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.to_dict", false]], "to_dict() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_dict", false]], "to_dict() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_dict", false]], "to_dict() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_dict", false]], "to_dict() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_dict", false]], "to_dict() (gammapy.modeling.covarianceresult method)": [[210, "gammapy.modeling.CovarianceResult.to_dict", false]], "to_dict() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_dict", false]], "to_dict() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.to_dict", false]], "to_dict() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_dict", false]], "to_dict() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.to_dict", false]], "to_dict() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.to_dict", false]], "to_dict() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.to_dict", false]], "to_dict() (gammapy.modeling.optimizeresult method)": [[213, "gammapy.modeling.OptimizeResult.to_dict", false]], "to_dict() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.to_dict", false]], "to_dict() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.to_dict", false]], "to_dict() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.to_dict", false]], "to_dict() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.to_dict", false]], "to_edisp_kernel() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_edisp_kernel", false]], "to_edisp_kernel_map() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.to_edisp_kernel_map", false]], "to_even_npix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_even_npix", false]], "to_fits_header() (gammapy.data.fixedpointinginfo method)": [[85, "gammapy.data.FixedPointingInfo.to_fits_header", false]], "to_frame() (gammapy.maps.mapcoord method)": [[199, "gammapy.maps.MapCoord.to_frame", false]], "to_gti() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_gti", false]], "to_hdu() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_hdu", false]], "to_hdu() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_hdu", false]], "to_hdu() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_hdu", false]], "to_hdu() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_hdu", false]], "to_hdulist() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_hdulist", false]], "to_hdulist() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_hdulist", false]], "to_hdulist() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_hdulist", false]], "to_hdulist() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_hdulist", false]], "to_hdulist() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.to_hdulist", false]], "to_hdulist() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.to_hdulist", false]], "to_hdulist() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_hdulist", false]], "to_hdulist() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_hdulist", false]], "to_hdulist() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_hdulist", false]], "to_hdulist() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_hdulist", false]], "to_hdulist() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_hdulist", false]], "to_hdulist() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_hdulist", false]], "to_hdulist() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_hdulist", false]], "to_hdulist() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_hdulist", false]], "to_hdulist() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.to_hdulist", false]], "to_hdulist() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_hdulist", false]], "to_hdulist() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_hdulist", false]], "to_header() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.to_header", false]], "to_header() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.to_header", false]], "to_header() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.to_header", false]], "to_header() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.to_header", false]], "to_header() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_header", false]], "to_header() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.to_header", false]], "to_header() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.to_header", false]], "to_header() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_header", false]], "to_header() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_header", false]], "to_header() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_header", false]], "to_image() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_image", false]], "to_image() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_image", false]], "to_image() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_image", false]], "to_image() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_image", false]], "to_image() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_image", false]], "to_image() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.to_image", false]], "to_image() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.to_image", false]], "to_image() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.to_image", false]], "to_image() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.to_image", false]], "to_image() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.to_image", false]], "to_image() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_image", false]], "to_image() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_image", false]], "to_image() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_image", false]], "to_map_dataset() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_map_dataset", false]], "to_map_dataset() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_map_dataset", false]], "to_maps() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.to_maps", false]], "to_maps() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.to_maps", false]], "to_masked() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_masked", false]], "to_masked() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_masked", false]], "to_masked() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_masked", false]], "to_masked() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_masked", false]], "to_models() (gammapy.catalog.sourcecatalog method)": [[56, "gammapy.catalog.SourceCatalog.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog1lhaaso method)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog2fhl method)": [[58, "gammapy.catalog.SourceCatalog2FHL.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog2hwc method)": [[59, "gammapy.catalog.SourceCatalog2HWC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog2pc method)": [[60, "gammapy.catalog.SourceCatalog2PC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3fgl method)": [[61, "gammapy.catalog.SourceCatalog3FGL.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3fhl method)": [[62, "gammapy.catalog.SourceCatalog3FHL.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3hwc method)": [[63, "gammapy.catalog.SourceCatalog3HWC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3pc method)": [[64, "gammapy.catalog.SourceCatalog3PC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog4fgl method)": [[65, "gammapy.catalog.SourceCatalog4FGL.to_models", false]], "to_models() (gammapy.catalog.sourcecataloggammacat method)": [[66, "gammapy.catalog.SourceCatalogGammaCat.to_models", false]], "to_models() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.to_models", false]], "to_node_type() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_node_type", false]], "to_nside() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_nside", false]], "to_nside() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_nside", false]], "to_odd_npix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_odd_npix", false]], "to_pandas() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.to_pandas", false]], "to_pandas() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.to_pandas", false]], "to_parameters_table() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_parameters_table", false]], "to_parameters_table() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_parameters_table", false]], "to_psf3d() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_psf3d", false]], "to_psf3d() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_psf3d", false]], "to_psf3d() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_psf3d", false]], "to_region() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.to_region", false]], "to_region_map_dataset() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_region_map_dataset", false]], "to_region_map_dataset() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_region_map_dataset", false]], "to_region_map_dataset() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_region_map_dataset", false]], "to_region_map_dataset() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_region_map_dataset", false]], "to_region_nd_map() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_region_nd_map", false]], "to_region_nd_map_histogram() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_region_nd_map_histogram", false]], "to_regions() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_regions", false]], "to_regions() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_regions", false]], "to_spectrum_dataset() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_spectrum_dataset", false]], "to_spectrum_dataset() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_spectrum_dataset", false]], "to_spectrum_dataset() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_spectrum_dataset", false]], "to_spectrum_dataset() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_spectrum_dataset", false]], "to_spectrum_datasets() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.to_spectrum_datasets", false]], "to_swapped() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_swapped", false]], "to_swapped() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_swapped", false]], "to_swapped() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_swapped", false]], "to_table() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.to_table", false]], "to_table() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_table", false]], "to_table() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_table", false]], "to_table() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_table", false]], "to_table() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_table", false]], "to_table() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_table", false]], "to_table() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_table", false]], "to_table() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_table", false]], "to_table() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_table", false]], "to_table() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_table", false]], "to_table() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_table", false]], "to_table() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_table", false]], "to_table() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_table", false]], "to_table() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.to_table", false]], "to_table() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_table", false]], "to_table() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_table", false]], "to_table() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_table", false]], "to_table() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.to_table", false]], "to_table() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.to_table", false]], "to_table() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.to_table", false]], "to_table_hdu() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.to_table_hdu", false]], "to_table_hdu() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_table_hdu", false]], "to_table_hdu() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.to_table_hdu", false]], "to_table_hdu() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_table_hdu", false]], "to_template_sky_model() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_template_sky_model", false]], "to_template_sky_model() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_template_sky_model", false]], "to_template_spectral_model() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_template_spectral_model", false]], "to_template_spectral_model() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_template_spectral_model", false]], "to_unit() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_unit", false]], "to_unit() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_unit", false]], "to_unit() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_unit", false]], "to_unit() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_unit", false]], "to_unit() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_unit", false]], "to_unit() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_unit", false]], "to_unit() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_unit", false]], "to_unit() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_unit", false]], "to_unit() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_unit", false]], "to_unit() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_unit", false]], "to_unit() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_unit", false]], "to_unit() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_unit", false]], "to_unit() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_unit", false]], "to_unit() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_unit", false]], "to_unit() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.to_unit", false]], "to_unit() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_unit", false]], "to_unit() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_unit", false]], "to_unit() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_unit", false]], "to_wcs() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_wcs", false]], "to_wcs() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_wcs", false]], "to_wcs_geom() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_wcs_geom", false]], "to_wcs_geom() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_wcs_geom", false]], "to_wcs_tiles() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_wcs_tiles", false]], "to_wcs_tiles() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_wcs_tiles", false]], "to_yaml() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.to_yaml", false]], "to_yaml() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.to_yaml", false]], "to_yaml() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.to_yaml", false]], "to_yaml() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.to_yaml", false]], "to_yaml() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.to_yaml", false]], "to_yaml() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_yaml", false]], "to_yaml() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_yaml", false]], "to_yaml() (in module gammapy.utils.scripts)": [[348, "gammapy.utils.scripts.to_yaml", false]], "total_stat (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.total_stat", false]], "total_stat (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.total_stat", false]], "trace (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.trace", false]], "trace (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.trace", false]], "trapz_loglog() (in module gammapy.utils.integrate)": [[318, "gammapy.utils.integrate.trapz_loglog", false]], "ts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.ts", false]], "ts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.ts", false]], "ts (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.ts", false]], "ts (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.ts", false]], "ts_scan (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.ts_scan", false]], "ts_scan (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.ts_scan", false]], "tsmapestimator (class in gammapy.estimators)": [[133, "gammapy.estimators.TSMapEstimator", false]], "tstart (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.tstart", false]], "tstop (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.tstop", false]], "type (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.type", false]], "type (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.type", false]], "type (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.type", false]], "type (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.type", false]], "type (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.type", false]], "type (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.type", false]], "type (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.type", false]], "type (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.type", false]], "type (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.type", false]], "type (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.type", false]], "type (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.type", false]], "type (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.type", false]], "type (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.type", false]], "type (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.type", false]], "type (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.type", false]], "type (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.type", false]], "type (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.type", false]], "type (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.type", false]], "type (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.type", false]], "type (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.type", false]], "type (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.type", false]], "type (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.type", false]], "type (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.type", false]], "type (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.type", false]], "type (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.type", false]], "type (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.type", false]], "type (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.type", false]], "type (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.type", false]], "type (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.type", false]], "type (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.type", false]], "type (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.type", false]], "type (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.type", false]], "type (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.type", false]], "type (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.type", false]], "type (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.type", false]], "type (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.type", false]], "type (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.type", false]], "type (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.type", false]], "type (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.type", false]], "type (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.type", false]], "type (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.type", false]], "type (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.type", false]], "type (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.type", false]], "type (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.type", false]], "type (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.type", false]], "type (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.type", false]], "type (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.type", false]], "type (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.type", false]], "type (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.type", false]], "type (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.type", false]], "type (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.type", false]], "type (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.type", false]], "type (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.type", false]], "type (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.type", false]], "types (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.types", false]], "types (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.types", false]], "unfreeze() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.unfreeze", false]], "unfreeze() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.unfreeze", false]], "unfreeze() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.unfreeze", false]], "unfreeze() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.unfreeze", false]], "unfreeze() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.unfreeze", false]], "unfreeze() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.unfreeze", false]], "unfreeze() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.unfreeze", false]], "unfreeze() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.unfreeze", false]], "unfreeze_all() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.unfreeze_all", false]], "unfreeze_all() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.unfreeze_all", false]], "uniformprior (class in gammapy.modeling.models)": [[278, "gammapy.modeling.models.UniformPrior", false]], "union() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.union", false]], "union() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.union", false]], "unique_parameters (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.unique_parameters", false]], "unique_parameters (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.unique_parameters", false]], "unit (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.unit", false]], "unit (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.unit", false]], "unit (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.unit", false]], "unit (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.unit", false]], "unit (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.unit", false]], "unit (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.unit", false]], "unit (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.unit", false]], "unit (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.unit", false]], "unit (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.unit", false]], "unit (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.unit", false]], "unit (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.unit", false]], "unit (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.unit", false]], "unit (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.unit", false]], "unit (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.unit", false]], "unit (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.unit", false]], "unit (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.unit", false]], "unit (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.unit", false]], "unit (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.unit", false]], "unit (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.unit", false]], "unit (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.unit", false]], "unit (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.unit", false]], "unit (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.unit", false]], "unit (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.unit", false]], "unit_from_fits_image_hdu() (in module gammapy.utils.units)": [[366, "gammapy.utils.units.unit_from_fits_image_hdu", false]], "update() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.update", false]], "update() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.update", false]], "update() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.update", false]], "update() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.update", false]], "update_config() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.update_config", false]], "update_forward_refs() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.update_forward_refs", false]], "update_forward_refs() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.update_forward_refs", false]], "update_forward_refs() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.update_forward_refs", false]], "update_forward_refs() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.update_forward_refs", false]], "update_forward_refs() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.update_forward_refs", false]], "update_from_dict() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.update_from_dict", false]], "update_from_dict() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.update_from_dict", false]], "update_link_label() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.update_link_label", false]], "update_link_label() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.update_link_label", false]], "update_parameters_from_table() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.update_parameters_from_table", false]], "update_parameters_from_table() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.update_parameters_from_table", false]], "upsample() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.upsample", false]], "upsample() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.upsample", false]], "upsample() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.upsample", false]], "upsample() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.upsample", false]], "upsample() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.upsample", false]], "upsample() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.upsample", false]], "upsample() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.upsample", false]], "upsample() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.upsample", false]], "upsample() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.upsample", false]], "upsample() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.upsample", false]], "upsample() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.upsample", false]], "upsample() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.upsample", false]], "upsample() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.upsample", false]], "upsample() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.upsample", false]], "use_center_as_plot_labels (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.use_center_as_plot_labels", false]], "uses_quantity (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.uses_quantity", false]], "uses_quantity (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.uses_quantity", false]], "uses_quantity (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.uses_quantity", false]], "uses_quantity (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.uses_quantity", false]], "uses_quantity (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.uses_quantity", false]], "uses_quantity (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.uses_quantity", false]], "uses_quantity (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.uses_quantity", false]], "uses_quantity (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.uses_quantity", false]], "uses_quantity (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.uses_quantity", false]], "uses_quantity (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.uses_quantity", false]], "v_0 (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.v_0", false]], "valid_hdu_class (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.VALID_HDU_CLASS", false]], "valid_hdu_type (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.VALID_HDU_TYPE", false]], "validate() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.validate", false]], "validate() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.validate", false]], "validate() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.validate", false]], "validate() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.validate", false]], "validate() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.validate", false]], "valleespiral (class in gammapy.astro.population)": [[38, "gammapy.astro.population.ValleeSpiral", false]], "value (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.value", false]], "value (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.value", false]], "value (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.value", false]], "value (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.value", false]], "value (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.value", false]], "values() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.values", false]], "values() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.values", false]], "values() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.values", false]], "values_equal() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.values_equal", false]], "values_equal() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.values_equal", false]], "velocity_distributions (in module gammapy.astro.population)": [[49, "gammapy.astro.population.velocity_distributions", false]], "velocity_glon_glat() (in module gammapy.utils.coordinates)": [[314, "gammapy.utils.coordinates.velocity_glon_glat", false]], "w (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.w", false]], "wcs (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.wcs", false]], "wcs (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.wcs", false]], "wcs_geom (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.wcs_geom", false]], "wcs_geom (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.wcs_geom", false]], "wcsgeom (class in gammapy.maps)": [[204, "gammapy.maps.WcsGeom", false]], "wcsmap (class in gammapy.maps)": [[205, "gammapy.maps.WcsMap", false]], "wcsndmap (class in gammapy.maps)": [[206, "gammapy.maps.WcsNDMap", false]], "weight (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.weight", false]], "weight (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.weight", false]], "weight (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.weight", false]], "width (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.width", false]], "width (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.width", false]], "width (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.width", false]], "width (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.width", false]], "width() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.width", false]], "width_error() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.width_error", false]], "with_units_from_data() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.with_units_from_data", false]], "without_units_for_data() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.without_units_for_data", false]], "wobbleregionsfinder (class in gammapy.makers)": [[181, "gammapy.makers.WobbleRegionsFinder", false]], "wrap_coord() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.wrap_coord", false]], "write (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.write", false]], "write (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.write", false]], "write() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.write", false]], "write() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.write", false]], "write() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.write", false]], "write() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.write", false]], "write() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.write", false]], "write() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.write", false]], "write() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.write", false]], "write() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.write", false]], "write() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write", false]], "write() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.write", false]], "write() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.write", false]], "write() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.write", false]], "write() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.write", false]], "write() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.write", false]], "write() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.write", false]], "write() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.write", false]], "write() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.write", false]], "write() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.write", false]], "write() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.write", false]], "write() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.write", false]], "write() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.write", false]], "write() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.write", false]], "write() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.write", false]], "write() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.write", false]], "write() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.write", false]], "write() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.write", false]], "write() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.write", false]], "write() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.write", false]], "write() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.write", false]], "write() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.write", false]], "write() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.write", false]], "write() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.write", false]], "write() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.write", false]], "write() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.write", false]], "write() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.write", false]], "write() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.write", false]], "write() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.write", false]], "write() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.write", false]], "write() (gammapy.modeling.fitresult method)": [[212, "gammapy.modeling.FitResult.write", false]], "write() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.write", false]], "write() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.write", false]], "write() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.write", false]], "write() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.write", false]], "write() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.write", false]], "write() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.write", false]], "write() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.write", false]], "write() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.write", false]], "write_arf() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_arf", false]], "write_bkg() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_bkg", false]], "write_covariance() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.write_covariance", false]], "write_covariance() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.write_covariance", false]], "write_datasets() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.write_datasets", false]], "write_models() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.write_models", false]], "write_pha() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_pha", false]], "write_rmf() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_rmf", false]], "write_yaml() (in module gammapy.utils.scripts)": [[349, "gammapy.utils.scripts.write_yaml", false]], "wstat() (in module gammapy.stats)": [[304, "gammapy.stats.wstat", false]], "wstatcountsstatistic (class in gammapy.stats)": [[290, "gammapy.stats.WStatCountsStatistic", false]], "x_max (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.x_max", false]], "x_min (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.x_min", false]], "x_ref (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.x_ref", false]], "xy_position() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.xy_position", false]], "xy_position() (gammapy.astro.population.logspiral method)": [[34, "gammapy.astro.population.LogSpiral.xy_position", false]], "xy_position() (gammapy.astro.population.valleespiral method)": [[38, "gammapy.astro.population.ValleeSpiral.xy_position", false]], "yusifovkucuk2004 (class in gammapy.astro.population)": [[39, "gammapy.astro.population.YusifovKucuk2004", false]], "yusifovkucuk2004b (class in gammapy.astro.population)": [[40, "gammapy.astro.population.YusifovKucuk2004B", false]], "z_0 (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.z_0", false]], "zhaoprofile (class in gammapy.astro.darkmatter)": [[27, "gammapy.astro.darkmatter.ZhaoProfile", false]]}, "objects": {"gammapy": [[0, 0, 0, "-", "analysis"], [2, 0, 0, "-", "catalog"], [3, 0, 0, "-", "data"], [4, 0, 0, "-", "datasets"], [5, 0, 0, "-", "estimators"], [7, 0, 0, "-", "irf"], [8, 0, 0, "-", "makers"], [9, 0, 0, "-", "maps"], [10, 0, 0, "-", "modeling"], [12, 0, 0, "-", "stats"], [14, 0, 0, "-", "visualization"], [11, 6, 1, "cmdoption-gammapy-ignore-warnings", "--ignore-warnings"], [11, 6, 1, "cmdoption-gammapy-log-level", "--log-level"], [11, 6, 1, "cmdoption-gammapy-version", "--version"]], "gammapy-analysis-config": [[11, 6, 1, "cmdoption-gammapy-analysis-config-filename", "--filename"], [11, 6, 1, "cmdoption-gammapy-analysis-config-overwrite", "--overwrite"]], "gammapy-analysis-run": [[11, 6, 1, "cmdoption-gammapy-analysis-run-filename", "--filename"], [11, 6, 1, "cmdoption-gammapy-analysis-run-out", "--out"], [11, 6, 1, "cmdoption-gammapy-analysis-run-overwrite", "--overwrite"]], "gammapy-download-datasets": [[11, 6, 1, "cmdoption-gammapy-download-datasets-out", "--out"], [11, 6, 1, "cmdoption-gammapy-download-datasets-release", "--release"]], "gammapy-download-notebooks": [[11, 6, 1, "cmdoption-gammapy-download-notebooks-out", "--out"], [11, 6, 1, "cmdoption-gammapy-download-notebooks-release", "--release"]], "gammapy-info": [[11, 6, 1, "cmdoption-gammapy-info-dependencies", "--dependencies"], [11, 6, 1, "cmdoption-gammapy-info-envvar", "--envvar"], [11, 6, 1, "cmdoption-gammapy-info-dependencies", "--no-dependencies"], [11, 6, 1, "cmdoption-gammapy-info-envvar", "--no-envvar"], [11, 6, 1, "cmdoption-gammapy-info-system", "--no-system"], [11, 6, 1, "cmdoption-gammapy-info-version", "--no-version"], [11, 6, 1, "cmdoption-gammapy-info-system", "--system"], [11, 6, 1, "cmdoption-gammapy-info-version", "--version"]], "gammapy-workflow-config": [[11, 6, 1, "cmdoption-gammapy-workflow-config-filename", "--filename"], [11, 6, 1, "cmdoption-gammapy-workflow-config-overwrite", "--overwrite"]], "gammapy-workflow-run": [[11, 6, 1, "cmdoption-gammapy-workflow-run-filename", "--filename"]], "gammapy.analysis": [[15, 1, 1, "", "Analysis"], [16, 1, 1, "", "AnalysisConfig"]], "gammapy.analysis.Analysis": [[15, 2, 1, "", "config"], [15, 3, 1, "", "get_datasets"], [15, 3, 1, "", "get_excess_map"], [15, 3, 1, "", "get_flux_points"], [15, 3, 1, "", "get_light_curve"], [15, 3, 1, "", "get_observations"], [15, 2, 1, "", "models"], [15, 3, 1, "", "read_datasets"], [15, 3, 1, "", "read_models"], [15, 3, 1, "", "run_fit"], [15, 3, 1, "", "set_models"], [15, 3, 1, "", "update_config"], [15, 3, 1, "", "write_datasets"], [15, 3, 1, "", "write_models"]], "gammapy.analysis.AnalysisConfig": [[16, 3, 1, "", "construct"], [16, 3, 1, "", "copy"], [16, 3, 1, "", "dict"], [16, 3, 1, "", "from_orm"], [16, 3, 1, "", "from_yaml"], [16, 3, 1, "", "json"], [16, 2, 1, "", "model_computed_fields"], [16, 2, 1, "", "model_config"], [16, 3, 1, "", "model_construct"], [16, 3, 1, "", "model_copy"], [16, 3, 1, "", "model_dump"], [16, 3, 1, "", "model_dump_json"], [16, 2, 1, "", "model_extra"], [16, 2, 1, "", "model_fields"], [16, 2, 1, "", "model_fields_set"], [16, 3, 1, "", "model_json_schema"], [16, 3, 1, "", "model_parametrized_name"], [16, 3, 1, "", "model_post_init"], [16, 3, 1, "", "model_rebuild"], [16, 3, 1, "", "model_validate"], [16, 3, 1, "", "model_validate_json"], [16, 3, 1, "", "model_validate_strings"], [16, 3, 1, "", "parse_file"], [16, 3, 1, "", "parse_obj"], [16, 3, 1, "", "parse_raw"], [16, 3, 1, "", "read"], [16, 3, 1, "", "schema"], [16, 3, 1, "", "schema_json"], [16, 3, 1, "", "set_logging"], [16, 3, 1, "", "to_yaml"], [16, 3, 1, "", "update"], [16, 3, 1, "", "update_forward_refs"], [16, 3, 1, "", "validate"], [16, 3, 1, "", "write"]], "gammapy.astro": [[1, 0, 0, "-", "darkmatter"], [1, 0, 0, "-", "population"], [1, 0, 0, "-", "source"]], "gammapy.astro.darkmatter": [[17, 1, 1, "", "BurkertProfile"], [18, 1, 1, "", "DMProfile"], [19, 1, 1, "", "DarkMatterAnnihilationSpectralModel"], [20, 1, 1, "", "DarkMatterDecaySpectralModel"], [21, 1, 1, "", "EinastoProfile"], [22, 1, 1, "", "IsothermalProfile"], [23, 1, 1, "", "JFactory"], [24, 1, 1, "", "MooreProfile"], [25, 1, 1, "", "NFWProfile"], [26, 1, 1, "", "PrimaryFlux"], [27, 1, 1, "", "ZhaoProfile"]], "gammapy.astro.darkmatter.BurkertProfile": [[17, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [17, 2, 1, "", "DISTANCE_GC"], [17, 2, 1, "", "LOCAL_DENSITY"], [17, 3, 1, "", "__call__"], [17, 3, 1, "", "evaluate"], [17, 3, 1, "", "integral"], [17, 3, 1, "", "integrate_spectrum_separation"], [17, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.DMProfile": [[18, 2, 1, "", "DISTANCE_GC"], [18, 2, 1, "", "LOCAL_DENSITY"], [18, 3, 1, "", "__call__"], [18, 3, 1, "", "integral"], [18, 3, 1, "", "integrate_spectrum_separation"], [18, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel": [[19, 2, 1, "", "THERMAL_RELIC_CROSS_SECTION"], [19, 3, 1, "", "__call__"], [19, 3, 1, "", "copy"], [19, 2, 1, "", "covariance"], [19, 2, 1, "", "default_parameters"], [19, 3, 1, "", "energy_flux"], [19, 3, 1, "", "energy_flux_error"], [19, 3, 1, "", "evaluate"], [19, 3, 1, "", "evaluate_error"], [19, 3, 1, "", "freeze"], [19, 3, 1, "", "from_dict"], [19, 3, 1, "", "from_parameters"], [19, 2, 1, "", "frozen"], [19, 3, 1, "", "integral"], [19, 3, 1, "", "integral_error"], [19, 3, 1, "", "inverse"], [19, 3, 1, "", "inverse_all"], [19, 2, 1, "", "is_norm_spectral_model"], [19, 2, 1, "", "parameters"], [19, 2, 1, "", "parameters_unique_names"], [19, 2, 1, "", "pivot_energy"], [19, 3, 1, "", "plot"], [19, 3, 1, "", "plot_error"], [19, 3, 1, "", "reassign"], [19, 3, 1, "", "reference_fluxes"], [19, 2, 1, "", "scale"], [19, 3, 1, "", "spectral_index"], [19, 3, 1, "", "spectral_index_error"], [19, 2, 1, "", "tag"], [19, 3, 1, "", "to_dict"], [19, 2, 1, "", "type"], [19, 3, 1, "", "unfreeze"]], "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel": [[20, 2, 1, "", "LIFETIME_AGE_OF_UNIVERSE"], [20, 3, 1, "", "__call__"], [20, 3, 1, "", "copy"], [20, 2, 1, "", "covariance"], [20, 2, 1, "", "default_parameters"], [20, 3, 1, "", "energy_flux"], [20, 3, 1, "", "energy_flux_error"], [20, 3, 1, "", "evaluate"], [20, 3, 1, "", "evaluate_error"], [20, 3, 1, "", "freeze"], [20, 3, 1, "", "from_dict"], [20, 3, 1, "", "from_parameters"], [20, 2, 1, "", "frozen"], [20, 3, 1, "", "integral"], [20, 3, 1, "", "integral_error"], [20, 3, 1, "", "inverse"], [20, 3, 1, "", "inverse_all"], [20, 2, 1, "", "is_norm_spectral_model"], [20, 2, 1, "", "parameters"], [20, 2, 1, "", "parameters_unique_names"], [20, 2, 1, "", "pivot_energy"], [20, 3, 1, "", "plot"], [20, 3, 1, "", "plot_error"], [20, 3, 1, "", "reassign"], [20, 3, 1, "", "reference_fluxes"], [20, 2, 1, "", "scale"], [20, 3, 1, "", "spectral_index"], [20, 3, 1, "", "spectral_index_error"], [20, 2, 1, "", "tag"], [20, 3, 1, "", "to_dict"], [20, 2, 1, "", "type"], [20, 3, 1, "", "unfreeze"]], "gammapy.astro.darkmatter.EinastoProfile": [[21, 2, 1, "", "DEFAULT_ALPHA"], [21, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [21, 2, 1, "", "DISTANCE_GC"], [21, 2, 1, "", "LOCAL_DENSITY"], [21, 3, 1, "", "__call__"], [21, 3, 1, "", "evaluate"], [21, 3, 1, "", "integral"], [21, 3, 1, "", "integrate_spectrum_separation"], [21, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.IsothermalProfile": [[22, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [22, 2, 1, "", "DISTANCE_GC"], [22, 2, 1, "", "LOCAL_DENSITY"], [22, 3, 1, "", "__call__"], [22, 3, 1, "", "evaluate"], [22, 3, 1, "", "integral"], [22, 3, 1, "", "integrate_spectrum_separation"], [22, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.JFactory": [[23, 3, 1, "", "compute_differential_jfactor"], [23, 3, 1, "", "compute_jfactor"]], "gammapy.astro.darkmatter.MooreProfile": [[24, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [24, 2, 1, "", "DISTANCE_GC"], [24, 2, 1, "", "LOCAL_DENSITY"], [24, 3, 1, "", "__call__"], [24, 3, 1, "", "evaluate"], [24, 3, 1, "", "integral"], [24, 3, 1, "", "integrate_spectrum_separation"], [24, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.NFWProfile": [[25, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [25, 2, 1, "", "DISTANCE_GC"], [25, 2, 1, "", "LOCAL_DENSITY"], [25, 3, 1, "", "__call__"], [25, 3, 1, "", "evaluate"], [25, 3, 1, "", "integral"], [25, 3, 1, "", "integrate_spectrum_separation"], [25, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.PrimaryFlux": [[26, 3, 1, "", "__call__"], [26, 2, 1, "", "allowed_channels"], [26, 2, 1, "", "channel"], [26, 2, 1, "", "channel_registry"], [26, 3, 1, "", "copy"], [26, 2, 1, "", "covariance"], [26, 2, 1, "", "default_parameters"], [26, 3, 1, "", "energy_flux"], [26, 3, 1, "", "energy_flux_error"], [26, 3, 1, "", "evaluate"], [26, 3, 1, "", "evaluate_error"], [26, 3, 1, "", "freeze"], [26, 3, 1, "", "from_dict"], [26, 3, 1, "", "from_parameters"], [26, 2, 1, "", "frozen"], [26, 3, 1, "", "integral"], [26, 3, 1, "", "integral_error"], [26, 3, 1, "", "inverse"], [26, 3, 1, "", "inverse_all"], [26, 2, 1, "", "is_norm_spectral_model"], [26, 2, 1, "", "mDM"], [26, 2, 1, "", "map"], [26, 2, 1, "", "parameters"], [26, 2, 1, "", "parameters_unique_names"], [26, 2, 1, "", "pivot_energy"], [26, 3, 1, "", "plot"], [26, 3, 1, "", "plot_error"], [26, 3, 1, "", "reassign"], [26, 3, 1, "", "reference_fluxes"], [26, 3, 1, "", "spectral_index"], [26, 3, 1, "", "spectral_index_error"], [26, 2, 1, "", "table_filename"], [26, 2, 1, "", "tag"], [26, 3, 1, "", "to_dict"], [26, 2, 1, "", "type"], [26, 3, 1, "", "unfreeze"], [26, 3, 1, "", "write"]], "gammapy.astro.darkmatter.ZhaoProfile": [[27, 2, 1, "", "DEFAULT_ALPHA"], [27, 2, 1, "", "DEFAULT_BETA"], [27, 2, 1, "", "DEFAULT_GAMMA"], [27, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [27, 2, 1, "", "DISTANCE_GC"], [27, 2, 1, "", "LOCAL_DENSITY"], [27, 3, 1, "", "__call__"], [27, 3, 1, "", "evaluate"], [27, 3, 1, "", "integral"], [27, 3, 1, "", "integrate_spectrum_separation"], [27, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.population": [[28, 1, 1, "", "CaseBattacharya1998"], [29, 1, 1, "", "Exponential"], [30, 1, 1, "", "FaucherKaspi2006"], [31, 1, 1, "", "FaucherKaspi2006VelocityBimodal"], [32, 1, 1, "", "FaucherKaspi2006VelocityMaxwellian"], [33, 1, 1, "", "FaucherSpiral"], [34, 1, 1, "", "LogSpiral"], [35, 1, 1, "", "Lorimer2006"], [36, 1, 1, "", "Paczynski1990"], [37, 1, 1, "", "Paczynski1990Velocity"], [38, 1, 1, "", "ValleeSpiral"], [39, 1, 1, "", "YusifovKucuk2004"], [40, 1, 1, "", "YusifovKucuk2004B"], [41, 4, 1, "", "add_observed_parameters"], [42, 4, 1, "", "add_pulsar_parameters"], [43, 4, 1, "", "add_pwn_parameters"], [44, 4, 1, "", "add_snr_parameters"], [45, 4, 1, "", "make_base_catalog_galactic"], [46, 4, 1, "", "make_catalog_random_positions_cube"], [47, 4, 1, "", "make_catalog_random_positions_sphere"], [48, 5, 1, "", "radial_distributions"], [49, 5, 1, "", "velocity_distributions"]], "gammapy.astro.population.CaseBattacharya1998": [[28, 3, 1, "", "__call__"], [28, 2, 1, "", "alpha"], [28, 2, 1, "", "amplitude"], [28, 2, 1, "", "bbox_with_units"], [28, 2, 1, "", "beta"], [28, 2, 1, "", "bounding_box"], [28, 2, 1, "", "bounds"], [28, 3, 1, "", "coerce_units"], [28, 2, 1, "", "col_fit_deriv"], [28, 3, 1, "", "copy"], [28, 2, 1, "", "cov_matrix"], [28, 3, 1, "", "deepcopy"], [28, 2, 1, "", "eqcons"], [28, 3, 1, "", "evaluate"], [28, 2, 1, "", "evolved"], [28, 2, 1, "", "fit_deriv"], [28, 2, 1, "", "fittable"], [28, 2, 1, "", "fixed"], [28, 3, 1, "", "get_bounding_box"], [28, 3, 1, "", "has_inverse"], [28, 2, 1, "", "has_user_bounding_box"], [28, 2, 1, "", "has_user_inverse"], [28, 2, 1, "", "ineqcons"], [28, 3, 1, "", "input_shape"], [28, 2, 1, "", "input_units"], [28, 2, 1, "", "input_units_allow_dimensionless"], [28, 2, 1, "", "input_units_equivalencies"], [28, 2, 1, "", "input_units_strict"], [28, 2, 1, "", "inputs"], [28, 2, 1, "", "inverse"], [28, 2, 1, "", "linear"], [28, 2, 1, "", "meta"], [28, 2, 1, "", "model_constraints"], [28, 2, 1, "", "model_set_axis"], [28, 2, 1, "", "n_inputs"], [28, 2, 1, "", "n_outputs"], [28, 2, 1, "", "n_submodels"], [28, 2, 1, "", "name"], [28, 3, 1, "", "output_units"], [28, 2, 1, "", "outputs"], [28, 2, 1, "", "param_names"], [28, 2, 1, "", "param_sets"], [28, 2, 1, "", "parameter_constraints"], [28, 2, 1, "", "parameters"], [28, 3, 1, "", "prepare_inputs"], [28, 3, 1, "", "prepare_outputs"], [28, 3, 1, "", "rename"], [28, 3, 1, "", "render"], [28, 2, 1, "", "return_units"], [28, 2, 1, "", "separable"], [28, 3, 1, "", "set_slice_args"], [28, 2, 1, "", "standard_broadcasting"], [28, 2, 1, "", "stds"], [28, 3, 1, "", "strip_units_from_tree"], [28, 3, 1, "", "sum_of_implicit_terms"], [28, 2, 1, "", "sync_constraints"], [28, 2, 1, "", "tied"], [28, 2, 1, "", "uses_quantity"], [28, 3, 1, "", "with_units_from_data"], [28, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.Exponential": [[29, 3, 1, "", "__call__"], [29, 2, 1, "", "amplitude"], [29, 2, 1, "", "bbox_with_units"], [29, 2, 1, "", "bounding_box"], [29, 2, 1, "", "bounds"], [29, 3, 1, "", "coerce_units"], [29, 2, 1, "", "col_fit_deriv"], [29, 3, 1, "", "copy"], [29, 2, 1, "", "cov_matrix"], [29, 3, 1, "", "deepcopy"], [29, 2, 1, "", "eqcons"], [29, 3, 1, "", "evaluate"], [29, 2, 1, "", "evolved"], [29, 2, 1, "", "fit_deriv"], [29, 2, 1, "", "fittable"], [29, 2, 1, "", "fixed"], [29, 3, 1, "", "get_bounding_box"], [29, 3, 1, "", "has_inverse"], [29, 2, 1, "", "has_user_bounding_box"], [29, 2, 1, "", "has_user_inverse"], [29, 2, 1, "", "ineqcons"], [29, 3, 1, "", "input_shape"], [29, 2, 1, "", "input_units"], [29, 2, 1, "", "input_units_allow_dimensionless"], [29, 2, 1, "", "input_units_equivalencies"], [29, 2, 1, "", "input_units_strict"], [29, 2, 1, "", "inputs"], [29, 2, 1, "", "inverse"], [29, 2, 1, "", "linear"], [29, 2, 1, "", "meta"], [29, 2, 1, "", "model_constraints"], [29, 2, 1, "", "model_set_axis"], [29, 2, 1, "", "n_inputs"], [29, 2, 1, "", "n_outputs"], [29, 2, 1, "", "n_submodels"], [29, 2, 1, "", "name"], [29, 3, 1, "", "output_units"], [29, 2, 1, "", "outputs"], [29, 2, 1, "", "param_names"], [29, 2, 1, "", "param_sets"], [29, 2, 1, "", "parameter_constraints"], [29, 2, 1, "", "parameters"], [29, 3, 1, "", "prepare_inputs"], [29, 3, 1, "", "prepare_outputs"], [29, 3, 1, "", "rename"], [29, 3, 1, "", "render"], [29, 2, 1, "", "return_units"], [29, 2, 1, "", "separable"], [29, 3, 1, "", "set_slice_args"], [29, 2, 1, "", "standard_broadcasting"], [29, 2, 1, "", "stds"], [29, 3, 1, "", "strip_units_from_tree"], [29, 3, 1, "", "sum_of_implicit_terms"], [29, 2, 1, "", "sync_constraints"], [29, 2, 1, "", "tied"], [29, 2, 1, "", "uses_quantity"], [29, 3, 1, "", "with_units_from_data"], [29, 3, 1, "", "without_units_for_data"], [29, 2, 1, "", "z_0"]], "gammapy.astro.population.FaucherKaspi2006": [[30, 3, 1, "", "__call__"], [30, 2, 1, "", "amplitude"], [30, 2, 1, "", "bbox_with_units"], [30, 2, 1, "", "bounding_box"], [30, 2, 1, "", "bounds"], [30, 3, 1, "", "coerce_units"], [30, 2, 1, "", "col_fit_deriv"], [30, 3, 1, "", "copy"], [30, 2, 1, "", "cov_matrix"], [30, 3, 1, "", "deepcopy"], [30, 2, 1, "", "eqcons"], [30, 3, 1, "", "evaluate"], [30, 2, 1, "", "evolved"], [30, 2, 1, "", "fit_deriv"], [30, 2, 1, "", "fittable"], [30, 2, 1, "", "fixed"], [30, 3, 1, "", "get_bounding_box"], [30, 3, 1, "", "has_inverse"], [30, 2, 1, "", "has_user_bounding_box"], [30, 2, 1, "", "has_user_inverse"], [30, 2, 1, "", "ineqcons"], [30, 3, 1, "", "input_shape"], [30, 2, 1, "", "input_units"], [30, 2, 1, "", "input_units_allow_dimensionless"], [30, 2, 1, "", "input_units_equivalencies"], [30, 2, 1, "", "input_units_strict"], [30, 2, 1, "", "inputs"], [30, 2, 1, "", "inverse"], [30, 2, 1, "", "linear"], [30, 2, 1, "", "meta"], [30, 2, 1, "", "model_constraints"], [30, 2, 1, "", "model_set_axis"], [30, 2, 1, "", "n_inputs"], [30, 2, 1, "", "n_outputs"], [30, 2, 1, "", "n_submodels"], [30, 2, 1, "", "name"], [30, 3, 1, "", "output_units"], [30, 2, 1, "", "outputs"], [30, 2, 1, "", "param_names"], [30, 2, 1, "", "param_sets"], [30, 2, 1, "", "parameter_constraints"], [30, 2, 1, "", "parameters"], [30, 3, 1, "", "prepare_inputs"], [30, 3, 1, "", "prepare_outputs"], [30, 2, 1, "", "r_0"], [30, 3, 1, "", "rename"], [30, 3, 1, "", "render"], [30, 2, 1, "", "return_units"], [30, 2, 1, "", "separable"], [30, 3, 1, "", "set_slice_args"], [30, 2, 1, "", "sigma"], [30, 2, 1, "", "standard_broadcasting"], [30, 2, 1, "", "stds"], [30, 3, 1, "", "strip_units_from_tree"], [30, 3, 1, "", "sum_of_implicit_terms"], [30, 2, 1, "", "sync_constraints"], [30, 2, 1, "", "tied"], [30, 2, 1, "", "uses_quantity"], [30, 3, 1, "", "with_units_from_data"], [30, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.FaucherKaspi2006VelocityBimodal": [[31, 3, 1, "", "__call__"], [31, 2, 1, "", "amplitude"], [31, 2, 1, "", "bbox_with_units"], [31, 2, 1, "", "bounding_box"], [31, 2, 1, "", "bounds"], [31, 3, 1, "", "coerce_units"], [31, 2, 1, "", "col_fit_deriv"], [31, 3, 1, "", "copy"], [31, 2, 1, "", "cov_matrix"], [31, 3, 1, "", "deepcopy"], [31, 2, 1, "", "eqcons"], [31, 3, 1, "", "evaluate"], [31, 2, 1, "", "fit_deriv"], [31, 2, 1, "", "fittable"], [31, 2, 1, "", "fixed"], [31, 3, 1, "", "get_bounding_box"], [31, 3, 1, "", "has_inverse"], [31, 2, 1, "", "has_user_bounding_box"], [31, 2, 1, "", "has_user_inverse"], [31, 2, 1, "", "ineqcons"], [31, 3, 1, "", "input_shape"], [31, 2, 1, "", "input_units"], [31, 2, 1, "", "input_units_allow_dimensionless"], [31, 2, 1, "", "input_units_equivalencies"], [31, 2, 1, "", "input_units_strict"], [31, 2, 1, "", "inputs"], [31, 2, 1, "", "inverse"], [31, 2, 1, "", "linear"], [31, 2, 1, "", "meta"], [31, 2, 1, "", "model_constraints"], [31, 2, 1, "", "model_set_axis"], [31, 2, 1, "", "n_inputs"], [31, 2, 1, "", "n_outputs"], [31, 2, 1, "", "n_submodels"], [31, 2, 1, "", "name"], [31, 3, 1, "", "output_units"], [31, 2, 1, "", "outputs"], [31, 2, 1, "", "param_names"], [31, 2, 1, "", "param_sets"], [31, 2, 1, "", "parameter_constraints"], [31, 2, 1, "", "parameters"], [31, 3, 1, "", "prepare_inputs"], [31, 3, 1, "", "prepare_outputs"], [31, 3, 1, "", "rename"], [31, 3, 1, "", "render"], [31, 2, 1, "", "return_units"], [31, 2, 1, "", "separable"], [31, 3, 1, "", "set_slice_args"], [31, 2, 1, "", "sigma_1"], [31, 2, 1, "", "sigma_2"], [31, 2, 1, "", "standard_broadcasting"], [31, 2, 1, "", "stds"], [31, 3, 1, "", "strip_units_from_tree"], [31, 3, 1, "", "sum_of_implicit_terms"], [31, 2, 1, "", "sync_constraints"], [31, 2, 1, "", "tied"], [31, 2, 1, "", "uses_quantity"], [31, 2, 1, "", "w"], [31, 3, 1, "", "with_units_from_data"], [31, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian": [[32, 3, 1, "", "__call__"], [32, 2, 1, "", "amplitude"], [32, 2, 1, "", "bbox_with_units"], [32, 2, 1, "", "bounding_box"], [32, 2, 1, "", "bounds"], [32, 3, 1, "", "coerce_units"], [32, 2, 1, "", "col_fit_deriv"], [32, 3, 1, "", "copy"], [32, 2, 1, "", "cov_matrix"], [32, 3, 1, "", "deepcopy"], [32, 2, 1, "", "eqcons"], [32, 3, 1, "", "evaluate"], [32, 2, 1, "", "fit_deriv"], [32, 2, 1, "", "fittable"], [32, 2, 1, "", "fixed"], [32, 3, 1, "", "get_bounding_box"], [32, 3, 1, "", "has_inverse"], [32, 2, 1, "", "has_user_bounding_box"], [32, 2, 1, "", "has_user_inverse"], [32, 2, 1, "", "ineqcons"], [32, 3, 1, "", "input_shape"], [32, 2, 1, "", "input_units"], [32, 2, 1, "", "input_units_allow_dimensionless"], [32, 2, 1, "", "input_units_equivalencies"], [32, 2, 1, "", "input_units_strict"], [32, 2, 1, "", "inputs"], [32, 2, 1, "", "inverse"], [32, 2, 1, "", "linear"], [32, 2, 1, "", "meta"], [32, 2, 1, "", "model_constraints"], [32, 2, 1, "", "model_set_axis"], [32, 2, 1, "", "n_inputs"], [32, 2, 1, "", "n_outputs"], [32, 2, 1, "", "n_submodels"], [32, 2, 1, "", "name"], [32, 3, 1, "", "output_units"], [32, 2, 1, "", "outputs"], [32, 2, 1, "", "param_names"], [32, 2, 1, "", "param_sets"], [32, 2, 1, "", "parameter_constraints"], [32, 2, 1, "", "parameters"], [32, 3, 1, "", "prepare_inputs"], [32, 3, 1, "", "prepare_outputs"], [32, 3, 1, "", "rename"], [32, 3, 1, "", "render"], [32, 2, 1, "", "return_units"], [32, 2, 1, "", "separable"], [32, 3, 1, "", "set_slice_args"], [32, 2, 1, "", "sigma"], [32, 2, 1, "", "standard_broadcasting"], [32, 2, 1, "", "stds"], [32, 3, 1, "", "strip_units_from_tree"], [32, 3, 1, "", "sum_of_implicit_terms"], [32, 2, 1, "", "sync_constraints"], [32, 2, 1, "", "tied"], [32, 2, 1, "", "uses_quantity"], [32, 3, 1, "", "with_units_from_data"], [32, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.FaucherSpiral": [[33, 3, 1, "", "__call__"], [33, 2, 1, "", "k"], [33, 2, 1, "", "r_0"], [33, 3, 1, "", "radius"], [33, 2, 1, "", "spiralarms"], [33, 3, 1, "", "theta"], [33, 2, 1, "", "theta_0"], [33, 3, 1, "", "xy_position"]], "gammapy.astro.population.LogSpiral": [[34, 3, 1, "", "radius"], [34, 3, 1, "", "theta"], [34, 3, 1, "", "xy_position"]], "gammapy.astro.population.Lorimer2006": [[35, 2, 1, "", "B"], [35, 2, 1, "", "C"], [35, 3, 1, "", "__call__"], [35, 2, 1, "", "amplitude"], [35, 2, 1, "", "bbox_with_units"], [35, 2, 1, "", "bounding_box"], [35, 2, 1, "", "bounds"], [35, 3, 1, "", "coerce_units"], [35, 2, 1, "", "col_fit_deriv"], [35, 3, 1, "", "copy"], [35, 2, 1, "", "cov_matrix"], [35, 3, 1, "", "deepcopy"], [35, 2, 1, "", "eqcons"], [35, 3, 1, "", "evaluate"], [35, 2, 1, "", "evolved"], [35, 2, 1, "", "fit_deriv"], [35, 2, 1, "", "fittable"], [35, 2, 1, "", "fixed"], [35, 3, 1, "", "get_bounding_box"], [35, 3, 1, "", "has_inverse"], [35, 2, 1, "", "has_user_bounding_box"], [35, 2, 1, "", "has_user_inverse"], [35, 2, 1, "", "ineqcons"], [35, 3, 1, "", "input_shape"], [35, 2, 1, "", "input_units"], [35, 2, 1, "", "input_units_allow_dimensionless"], [35, 2, 1, "", "input_units_equivalencies"], [35, 2, 1, "", "input_units_strict"], [35, 2, 1, "", "inputs"], [35, 2, 1, "", "inverse"], [35, 2, 1, "", "linear"], [35, 2, 1, "", "meta"], [35, 2, 1, "", "model_constraints"], [35, 2, 1, "", "model_set_axis"], [35, 2, 1, "", "n_inputs"], [35, 2, 1, "", "n_outputs"], [35, 2, 1, "", "n_submodels"], [35, 2, 1, "", "name"], [35, 3, 1, "", "output_units"], [35, 2, 1, "", "outputs"], [35, 2, 1, "", "param_names"], [35, 2, 1, "", "param_sets"], [35, 2, 1, "", "parameter_constraints"], [35, 2, 1, "", "parameters"], [35, 3, 1, "", "prepare_inputs"], [35, 3, 1, "", "prepare_outputs"], [35, 3, 1, "", "rename"], [35, 3, 1, "", "render"], [35, 2, 1, "", "return_units"], [35, 2, 1, "", "separable"], [35, 3, 1, "", "set_slice_args"], [35, 2, 1, "", "standard_broadcasting"], [35, 2, 1, "", "stds"], [35, 3, 1, "", "strip_units_from_tree"], [35, 3, 1, "", "sum_of_implicit_terms"], [35, 2, 1, "", "sync_constraints"], [35, 2, 1, "", "tied"], [35, 2, 1, "", "uses_quantity"], [35, 3, 1, "", "with_units_from_data"], [35, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.Paczynski1990": [[36, 3, 1, "", "__call__"], [36, 2, 1, "", "amplitude"], [36, 2, 1, "", "bbox_with_units"], [36, 2, 1, "", "bounding_box"], [36, 2, 1, "", "bounds"], [36, 3, 1, "", "coerce_units"], [36, 2, 1, "", "col_fit_deriv"], [36, 3, 1, "", "copy"], [36, 2, 1, "", "cov_matrix"], [36, 3, 1, "", "deepcopy"], [36, 2, 1, "", "eqcons"], [36, 3, 1, "", "evaluate"], [36, 2, 1, "", "evolved"], [36, 2, 1, "", "fit_deriv"], [36, 2, 1, "", "fittable"], [36, 2, 1, "", "fixed"], [36, 3, 1, "", "get_bounding_box"], [36, 3, 1, "", "has_inverse"], [36, 2, 1, "", "has_user_bounding_box"], [36, 2, 1, "", "has_user_inverse"], [36, 2, 1, "", "ineqcons"], [36, 3, 1, "", "input_shape"], [36, 2, 1, "", "input_units"], [36, 2, 1, "", "input_units_allow_dimensionless"], [36, 2, 1, "", "input_units_equivalencies"], [36, 2, 1, "", "input_units_strict"], [36, 2, 1, "", "inputs"], [36, 2, 1, "", "inverse"], [36, 2, 1, "", "linear"], [36, 2, 1, "", "meta"], [36, 2, 1, "", "model_constraints"], [36, 2, 1, "", "model_set_axis"], [36, 2, 1, "", "n_inputs"], [36, 2, 1, "", "n_outputs"], [36, 2, 1, "", "n_submodels"], [36, 2, 1, "", "name"], [36, 3, 1, "", "output_units"], [36, 2, 1, "", "outputs"], [36, 2, 1, "", "param_names"], [36, 2, 1, "", "param_sets"], [36, 2, 1, "", "parameter_constraints"], [36, 2, 1, "", "parameters"], [36, 3, 1, "", "prepare_inputs"], [36, 3, 1, "", "prepare_outputs"], [36, 2, 1, "", "r_exp"], [36, 3, 1, "", "rename"], [36, 3, 1, "", "render"], [36, 2, 1, "", "return_units"], [36, 2, 1, "", "separable"], [36, 3, 1, "", "set_slice_args"], [36, 2, 1, "", "standard_broadcasting"], [36, 2, 1, "", "stds"], [36, 3, 1, "", "strip_units_from_tree"], [36, 3, 1, "", "sum_of_implicit_terms"], [36, 2, 1, "", "sync_constraints"], [36, 2, 1, "", "tied"], [36, 2, 1, "", "uses_quantity"], [36, 3, 1, "", "with_units_from_data"], [36, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.Paczynski1990Velocity": [[37, 3, 1, "", "__call__"], [37, 2, 1, "", "amplitude"], [37, 2, 1, "", "bbox_with_units"], [37, 2, 1, "", "bounding_box"], [37, 2, 1, "", "bounds"], [37, 3, 1, "", "coerce_units"], [37, 2, 1, "", "col_fit_deriv"], [37, 3, 1, "", "copy"], [37, 2, 1, "", "cov_matrix"], [37, 3, 1, "", "deepcopy"], [37, 2, 1, "", "eqcons"], [37, 3, 1, "", "evaluate"], [37, 2, 1, "", "fit_deriv"], [37, 2, 1, "", "fittable"], [37, 2, 1, "", "fixed"], [37, 3, 1, "", "get_bounding_box"], [37, 3, 1, "", "has_inverse"], [37, 2, 1, "", "has_user_bounding_box"], [37, 2, 1, "", "has_user_inverse"], [37, 2, 1, "", "ineqcons"], [37, 3, 1, "", "input_shape"], [37, 2, 1, "", "input_units"], [37, 2, 1, "", "input_units_allow_dimensionless"], [37, 2, 1, "", "input_units_equivalencies"], [37, 2, 1, "", "input_units_strict"], [37, 2, 1, "", "inputs"], [37, 2, 1, "", "inverse"], [37, 2, 1, "", "linear"], [37, 2, 1, "", "meta"], [37, 2, 1, "", "model_constraints"], [37, 2, 1, "", "model_set_axis"], [37, 2, 1, "", "n_inputs"], [37, 2, 1, "", "n_outputs"], [37, 2, 1, "", "n_submodels"], [37, 2, 1, "", "name"], [37, 3, 1, "", "output_units"], [37, 2, 1, "", "outputs"], [37, 2, 1, "", "param_names"], [37, 2, 1, "", "param_sets"], [37, 2, 1, "", "parameter_constraints"], [37, 2, 1, "", "parameters"], [37, 3, 1, "", "prepare_inputs"], [37, 3, 1, "", "prepare_outputs"], [37, 3, 1, "", "rename"], [37, 3, 1, "", "render"], [37, 2, 1, "", "return_units"], [37, 2, 1, "", "separable"], [37, 3, 1, "", "set_slice_args"], [37, 2, 1, "", "standard_broadcasting"], [37, 2, 1, "", "stds"], [37, 3, 1, "", "strip_units_from_tree"], [37, 3, 1, "", "sum_of_implicit_terms"], [37, 2, 1, "", "sync_constraints"], [37, 2, 1, "", "tied"], [37, 2, 1, "", "uses_quantity"], [37, 2, 1, "", "v_0"], [37, 3, 1, "", "with_units_from_data"], [37, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.ValleeSpiral": [[38, 2, 1, "", "bar_radius"], [38, 2, 1, "", "m"], [38, 2, 1, "", "p"], [38, 2, 1, "", "r_0"], [38, 2, 1, "", "r_sun"], [38, 3, 1, "", "radius"], [38, 2, 1, "", "spiralarms"], [38, 3, 1, "", "theta"], [38, 2, 1, "", "theta_0"], [38, 3, 1, "", "xy_position"]], "gammapy.astro.population.YusifovKucuk2004": [[39, 3, 1, "", "__call__"], [39, 2, 1, "", "a"], [39, 2, 1, "", "amplitude"], [39, 2, 1, "", "b"], [39, 2, 1, "", "bbox_with_units"], [39, 2, 1, "", "bounding_box"], [39, 2, 1, "", "bounds"], [39, 3, 1, "", "coerce_units"], [39, 2, 1, "", "col_fit_deriv"], [39, 3, 1, "", "copy"], [39, 2, 1, "", "cov_matrix"], [39, 3, 1, "", "deepcopy"], [39, 2, 1, "", "eqcons"], [39, 3, 1, "", "evaluate"], [39, 2, 1, "", "evolved"], [39, 2, 1, "", "fit_deriv"], [39, 2, 1, "", "fittable"], [39, 2, 1, "", "fixed"], [39, 3, 1, "", "get_bounding_box"], [39, 3, 1, "", "has_inverse"], [39, 2, 1, "", "has_user_bounding_box"], [39, 2, 1, "", "has_user_inverse"], [39, 2, 1, "", "ineqcons"], [39, 3, 1, "", "input_shape"], [39, 2, 1, "", "input_units"], [39, 2, 1, "", "input_units_allow_dimensionless"], [39, 2, 1, "", "input_units_equivalencies"], [39, 2, 1, "", "input_units_strict"], [39, 2, 1, "", "inputs"], [39, 2, 1, "", "inverse"], [39, 2, 1, "", "linear"], [39, 2, 1, "", "meta"], [39, 2, 1, "", "model_constraints"], [39, 2, 1, "", "model_set_axis"], [39, 2, 1, "", "n_inputs"], [39, 2, 1, "", "n_outputs"], [39, 2, 1, "", "n_submodels"], [39, 2, 1, "", "name"], [39, 3, 1, "", "output_units"], [39, 2, 1, "", "outputs"], [39, 2, 1, "", "param_names"], [39, 2, 1, "", "param_sets"], [39, 2, 1, "", "parameter_constraints"], [39, 2, 1, "", "parameters"], [39, 3, 1, "", "prepare_inputs"], [39, 3, 1, "", "prepare_outputs"], [39, 2, 1, "", "r_1"], [39, 3, 1, "", "rename"], [39, 3, 1, "", "render"], [39, 2, 1, "", "return_units"], [39, 2, 1, "", "separable"], [39, 3, 1, "", "set_slice_args"], [39, 2, 1, "", "standard_broadcasting"], [39, 2, 1, "", "stds"], [39, 3, 1, "", "strip_units_from_tree"], [39, 3, 1, "", "sum_of_implicit_terms"], [39, 2, 1, "", "sync_constraints"], [39, 2, 1, "", "tied"], [39, 2, 1, "", "uses_quantity"], [39, 3, 1, "", "with_units_from_data"], [39, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.YusifovKucuk2004B": [[40, 3, 1, "", "__call__"], [40, 2, 1, "", "a"], [40, 2, 1, "", "amplitude"], [40, 2, 1, "", "b"], [40, 2, 1, "", "bbox_with_units"], [40, 2, 1, "", "bounding_box"], [40, 2, 1, "", "bounds"], [40, 3, 1, "", "coerce_units"], [40, 2, 1, "", "col_fit_deriv"], [40, 3, 1, "", "copy"], [40, 2, 1, "", "cov_matrix"], [40, 3, 1, "", "deepcopy"], [40, 2, 1, "", "eqcons"], [40, 3, 1, "", "evaluate"], [40, 2, 1, "", "evolved"], [40, 2, 1, "", "fit_deriv"], [40, 2, 1, "", "fittable"], [40, 2, 1, "", "fixed"], [40, 3, 1, "", "get_bounding_box"], [40, 3, 1, "", "has_inverse"], [40, 2, 1, "", "has_user_bounding_box"], [40, 2, 1, "", "has_user_inverse"], [40, 2, 1, "", "ineqcons"], [40, 3, 1, "", "input_shape"], [40, 2, 1, "", "input_units"], [40, 2, 1, "", "input_units_allow_dimensionless"], [40, 2, 1, "", "input_units_equivalencies"], [40, 2, 1, "", "input_units_strict"], [40, 2, 1, "", "inputs"], [40, 2, 1, "", "inverse"], [40, 2, 1, "", "linear"], [40, 2, 1, "", "meta"], [40, 2, 1, "", "model_constraints"], [40, 2, 1, "", "model_set_axis"], [40, 2, 1, "", "n_inputs"], [40, 2, 1, "", "n_outputs"], [40, 2, 1, "", "n_submodels"], [40, 2, 1, "", "name"], [40, 3, 1, "", "output_units"], [40, 2, 1, "", "outputs"], [40, 2, 1, "", "param_names"], [40, 2, 1, "", "param_sets"], [40, 2, 1, "", "parameter_constraints"], [40, 2, 1, "", "parameters"], [40, 3, 1, "", "prepare_inputs"], [40, 3, 1, "", "prepare_outputs"], [40, 3, 1, "", "rename"], [40, 3, 1, "", "render"], [40, 2, 1, "", "return_units"], [40, 2, 1, "", "separable"], [40, 3, 1, "", "set_slice_args"], [40, 2, 1, "", "standard_broadcasting"], [40, 2, 1, "", "stds"], [40, 3, 1, "", "strip_units_from_tree"], [40, 3, 1, "", "sum_of_implicit_terms"], [40, 2, 1, "", "sync_constraints"], [40, 2, 1, "", "tied"], [40, 2, 1, "", "uses_quantity"], [40, 3, 1, "", "with_units_from_data"], [40, 3, 1, "", "without_units_for_data"]], "gammapy.astro.source": [[50, 1, 1, "", "PWN"], [51, 1, 1, "", "Pulsar"], [52, 1, 1, "", "SNR"], [53, 1, 1, "", "SNRTrueloveMcKee"], [54, 1, 1, "", "SimplePulsar"]], "gammapy.astro.source.PWN": [[50, 3, 1, "", "magnetic_field"], [50, 3, 1, "", "radius"]], "gammapy.astro.source.Pulsar": [[51, 3, 1, "", "energy_integrated"], [51, 3, 1, "", "luminosity_spindown"], [51, 3, 1, "", "magnetic_field"], [51, 3, 1, "", "period"], [51, 3, 1, "", "period_dot"], [51, 3, 1, "", "tau"]], "gammapy.astro.source.SNR": [[52, 3, 1, "", "luminosity_tev"], [52, 3, 1, "", "radius"], [52, 3, 1, "", "radius_inner"], [52, 2, 1, "", "sedov_taylor_begin"], [52, 2, 1, "", "sedov_taylor_end"]], "gammapy.astro.source.SNRTrueloveMcKee": [[53, 3, 1, "", "luminosity_tev"], [53, 3, 1, "", "radius"], [53, 3, 1, "", "radius_inner"], [53, 3, 1, "", "radius_reverse_shock"], [53, 2, 1, "", "sedov_taylor_begin"], [53, 2, 1, "", "sedov_taylor_end"]], "gammapy.astro.source.SimplePulsar": [[54, 2, 1, "", "luminosity_spindown"], [54, 2, 1, "", "magnetic_field"], [54, 2, 1, "", "tau"]], "gammapy.catalog": [[55, 5, 1, "", "CATALOG_REGISTRY"], [56, 1, 1, "", "SourceCatalog"], [57, 1, 1, "", "SourceCatalog1LHAASO"], [58, 1, 1, "", "SourceCatalog2FHL"], [59, 1, 1, "", "SourceCatalog2HWC"], [60, 1, 1, "", "SourceCatalog2PC"], [61, 1, 1, "", "SourceCatalog3FGL"], [62, 1, 1, "", "SourceCatalog3FHL"], [63, 1, 1, "", "SourceCatalog3HWC"], [64, 1, 1, "", "SourceCatalog3PC"], [65, 1, 1, "", "SourceCatalog4FGL"], [66, 1, 1, "", "SourceCatalogGammaCat"], [67, 1, 1, "", "SourceCatalogHGPS"], [68, 1, 1, "", "SourceCatalogLargeScaleHGPS"], [69, 1, 1, "", "SourceCatalogObject"], [70, 1, 1, "", "SourceCatalogObject1LHAASO"], [71, 1, 1, "", "SourceCatalogObject2FHL"], [72, 1, 1, "", "SourceCatalogObject2HWC"], [73, 1, 1, "", "SourceCatalogObject2PC"], [74, 1, 1, "", "SourceCatalogObject3FGL"], [75, 1, 1, "", "SourceCatalogObject3FHL"], [76, 1, 1, "", "SourceCatalogObject3HWC"], [77, 1, 1, "", "SourceCatalogObject3PC"], [78, 1, 1, "", "SourceCatalogObject4FGL"], [79, 1, 1, "", "SourceCatalogObjectGammaCat"], [80, 1, 1, "", "SourceCatalogObjectHGPS"], [81, 1, 1, "", "SourceCatalogObjectHGPSComponent"]], "gammapy.catalog.SourceCatalog": [[56, 3, 1, "", "description"], [56, 2, 1, "", "positions"], [56, 3, 1, "", "row_index"], [56, 3, 1, "", "source_name"], [56, 2, 1, "", "tag"], [56, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog1LHAASO": [[57, 2, 1, "", "description"], [57, 2, 1, "", "positions"], [57, 3, 1, "", "row_index"], [57, 3, 1, "", "source_name"], [57, 2, 1, "", "tag"], [57, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog2FHL": [[58, 2, 1, "", "description"], [58, 2, 1, "", "positions"], [58, 3, 1, "", "row_index"], [58, 3, 1, "", "source_name"], [58, 2, 1, "", "tag"], [58, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog2HWC": [[59, 2, 1, "", "description"], [59, 2, 1, "", "positions"], [59, 3, 1, "", "row_index"], [59, 3, 1, "", "source_name"], [59, 2, 1, "", "tag"], [59, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog2PC": [[60, 2, 1, "", "description"], [60, 2, 1, "", "positions"], [60, 3, 1, "", "row_index"], [60, 3, 1, "", "source_name"], [60, 2, 1, "", "tag"], [60, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3FGL": [[61, 2, 1, "", "description"], [61, 2, 1, "", "positions"], [61, 3, 1, "", "row_index"], [61, 3, 1, "", "source_name"], [61, 2, 1, "", "tag"], [61, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3FHL": [[62, 2, 1, "", "description"], [62, 2, 1, "", "positions"], [62, 3, 1, "", "row_index"], [62, 3, 1, "", "source_name"], [62, 2, 1, "", "tag"], [62, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3HWC": [[63, 2, 1, "", "description"], [63, 2, 1, "", "positions"], [63, 3, 1, "", "row_index"], [63, 3, 1, "", "source_name"], [63, 2, 1, "", "tag"], [63, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3PC": [[64, 2, 1, "", "description"], [64, 2, 1, "", "positions"], [64, 3, 1, "", "row_index"], [64, 3, 1, "", "source_name"], [64, 2, 1, "", "tag"], [64, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog4FGL": [[65, 2, 1, "", "description"], [65, 2, 1, "", "positions"], [65, 3, 1, "", "row_index"], [65, 3, 1, "", "source_name"], [65, 2, 1, "", "tag"], [65, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalogGammaCat": [[66, 2, 1, "", "description"], [66, 2, 1, "", "positions"], [66, 3, 1, "", "row_index"], [66, 3, 1, "", "source_name"], [66, 2, 1, "", "tag"], [66, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalogHGPS": [[67, 2, 1, "", "description"], [67, 3, 1, "", "gaussian_component"], [67, 2, 1, "", "large_scale_component"], [67, 2, 1, "", "positions"], [67, 3, 1, "", "row_index"], [67, 3, 1, "", "source_name"], [67, 2, 1, "", "table_associations"], [67, 2, 1, "", "table_components"], [67, 2, 1, "", "table_identifications"], [67, 2, 1, "", "table_large_scale_component"], [67, 2, 1, "", "tag"], [67, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalogLargeScaleHGPS": [[68, 3, 1, "", "evaluate"], [68, 3, 1, "", "peak_brightness"], [68, 3, 1, "", "peak_brightness_error"], [68, 3, 1, "", "peak_latitude"], [68, 3, 1, "", "peak_latitude_error"], [68, 3, 1, "", "width"], [68, 3, 1, "", "width_error"]], "gammapy.catalog.SourceCatalogObject": [[69, 2, 1, "", "name"], [69, 2, 1, "", "position"], [69, 2, 1, "", "row_index"]], "gammapy.catalog.SourceCatalogObject1LHAASO": [[70, 2, 1, "", "name"], [70, 2, 1, "", "position"], [70, 2, 1, "", "row_index"], [70, 3, 1, "", "sky_model"], [70, 3, 1, "", "spatial_model"], [70, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject2FHL": [[71, 2, 1, "", "asso"], [71, 2, 1, "", "energy_range"], [71, 2, 1, "", "flux_points"], [71, 2, 1, "", "flux_points_meta"], [71, 2, 1, "", "flux_points_table"], [71, 3, 1, "", "info"], [71, 2, 1, "", "is_pointlike"], [71, 2, 1, "", "name"], [71, 2, 1, "", "position"], [71, 2, 1, "", "row_index"], [71, 3, 1, "", "sky_model"], [71, 3, 1, "", "spatial_model"], [71, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject2HWC": [[72, 3, 1, "", "info"], [72, 2, 1, "", "n_models"], [72, 2, 1, "", "name"], [72, 2, 1, "", "position"], [72, 2, 1, "", "row_index"], [72, 3, 1, "", "sky_model"], [72, 3, 1, "", "spatial_model"], [72, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject2PC": [[73, 2, 1, "", "flux_points"], [73, 2, 1, "", "flux_points_table"], [73, 3, 1, "", "info"], [73, 2, 1, "", "lightcurve"], [73, 2, 1, "", "name"], [73, 2, 1, "", "position"], [73, 2, 1, "", "row_index"], [73, 3, 1, "", "sky_model"], [73, 3, 1, "", "spatial_model"], [73, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3FGL": [[74, 2, 1, "", "asso"], [74, 2, 1, "", "energy_range"], [74, 2, 1, "", "flux_points"], [74, 2, 1, "", "flux_points_meta"], [74, 2, 1, "", "flux_points_table"], [74, 3, 1, "", "info"], [74, 2, 1, "", "is_pointlike"], [74, 3, 1, "", "lightcurve"], [74, 2, 1, "", "name"], [74, 2, 1, "", "position"], [74, 2, 1, "", "row_index"], [74, 3, 1, "", "sky_model"], [74, 3, 1, "", "spatial_model"], [74, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3FHL": [[75, 2, 1, "", "asso"], [75, 2, 1, "", "energy_range"], [75, 2, 1, "", "flux_points"], [75, 2, 1, "", "flux_points_meta"], [75, 2, 1, "", "flux_points_table"], [75, 3, 1, "", "info"], [75, 2, 1, "", "is_pointlike"], [75, 2, 1, "", "name"], [75, 2, 1, "", "position"], [75, 2, 1, "", "row_index"], [75, 3, 1, "", "sky_model"], [75, 3, 1, "", "spatial_model"], [75, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3HWC": [[76, 3, 1, "", "info"], [76, 2, 1, "", "is_pointlike"], [76, 2, 1, "", "n_models"], [76, 2, 1, "", "name"], [76, 2, 1, "", "position"], [76, 2, 1, "", "row_index"], [76, 3, 1, "", "sky_model"], [76, 3, 1, "", "spatial_model"], [76, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3PC": [[77, 2, 1, "", "asso"], [77, 2, 1, "", "flux_points"], [77, 2, 1, "", "flux_points_table"], [77, 3, 1, "", "info"], [77, 2, 1, "", "lightcurve"], [77, 2, 1, "", "name"], [77, 2, 1, "", "position"], [77, 2, 1, "", "row_index"], [77, 3, 1, "", "sky_model"], [77, 3, 1, "", "spatial_model"], [77, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject4FGL": [[78, 2, 1, "", "asso"], [78, 2, 1, "", "flux_points"], [78, 2, 1, "", "flux_points_meta"], [78, 2, 1, "", "flux_points_table"], [78, 3, 1, "", "info"], [78, 2, 1, "", "is_pointlike"], [78, 3, 1, "", "lightcurve"], [78, 2, 1, "", "name"], [78, 2, 1, "", "position"], [78, 2, 1, "", "row_index"], [78, 3, 1, "", "sky_model"], [78, 3, 1, "", "spatial_model"], [78, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObjectGammaCat": [[79, 2, 1, "", "flux_points"], [79, 2, 1, "", "flux_points_table"], [79, 3, 1, "", "info"], [79, 2, 1, "", "name"], [79, 2, 1, "", "position"], [79, 2, 1, "", "row_index"], [79, 3, 1, "", "sky_model"], [79, 3, 1, "", "spatial_model"], [79, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObjectHGPS": [[80, 3, 1, "", "components_models"], [80, 2, 1, "", "energy_range"], [80, 2, 1, "", "flux_points"], [80, 2, 1, "", "flux_points_table"], [80, 3, 1, "", "info"], [80, 2, 1, "", "name"], [80, 2, 1, "", "position"], [80, 2, 1, "", "row_index"], [80, 3, 1, "", "sky_model"], [80, 3, 1, "", "spatial_model"], [80, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObjectHGPSComponent": [[81, 2, 1, "", "name"], [81, 2, 1, "", "position"], [81, 2, 1, "", "row_index"], [81, 3, 1, "", "spatial_model"]], "gammapy.data": [[82, 1, 1, "", "DataStore"], [83, 1, 1, "", "EventList"], [84, 1, 1, "", "EventListMetaData"], [85, 1, 1, "", "FixedPointingInfo"], [86, 1, 1, "", "GTI"], [87, 1, 1, "", "HDUIndexTable"], [88, 1, 1, "", "Observation"], [89, 1, 1, "", "ObservationFilter"], [90, 1, 1, "", "ObservationMetaData"], [91, 1, 1, "", "ObservationTable"], [92, 1, 1, "", "Observations"], [93, 1, 1, "", "ObservationsEventsSampler"], [94, 1, 1, "", "PointingInfo"], [95, 1, 1, "", "PointingMode"], [96, 4, 1, "", "get_irfs_features"], [97, 5, 1, "", "observatory_locations"]], "gammapy.data.DataStore": [[82, 2, 1, "", "DEFAULT_HDU_TABLE"], [82, 2, 1, "", "DEFAULT_OBS_TABLE"], [82, 3, 1, "", "check"], [82, 3, 1, "", "copy_obs"], [82, 3, 1, "", "from_dir"], [82, 3, 1, "", "from_events_files"], [82, 3, 1, "", "from_file"], [82, 3, 1, "", "get_observations"], [82, 3, 1, "", "info"], [82, 3, 1, "", "obs"], [82, 2, 1, "", "obs_ids"]], "gammapy.data.EventList": [[83, 2, 1, "", "altaz"], [83, 2, 1, "", "altaz_frame"], [83, 2, 1, "", "altaz_from_table"], [83, 3, 1, "", "check"], [83, 3, 1, "", "copy"], [83, 2, 1, "", "energy"], [83, 3, 1, "", "from_stack"], [83, 2, 1, "", "galactic"], [83, 2, 1, "", "galactic_median"], [83, 2, 1, "", "is_pointed_observation"], [83, 3, 1, "", "map_coord"], [83, 2, 1, "", "observation_dead_time_fraction"], [83, 2, 1, "", "observation_live_time_duration"], [83, 2, 1, "", "observation_time_duration"], [83, 2, 1, "", "observation_time_start"], [83, 2, 1, "", "observation_time_stop"], [83, 2, 1, "", "observatory_earth_location"], [83, 2, 1, "", "offset"], [83, 2, 1, "", "offset_from_median"], [83, 3, 1, "", "peek"], [83, 3, 1, "", "plot_energy"], [83, 3, 1, "", "plot_energy_offset"], [83, 3, 1, "", "plot_image"], [83, 3, 1, "", "plot_offset2_distribution"], [83, 3, 1, "", "plot_time"], [83, 2, 1, "", "pointing_radec"], [83, 2, 1, "", "radec"], [83, 3, 1, "", "read"], [83, 3, 1, "", "select_energy"], [83, 3, 1, "", "select_mask"], [83, 3, 1, "", "select_offset"], [83, 3, 1, "", "select_parameter"], [83, 3, 1, "", "select_rad_max"], [83, 3, 1, "", "select_region"], [83, 3, 1, "", "select_row_subset"], [83, 3, 1, "", "select_time"], [83, 3, 1, "", "stack"], [83, 2, 1, "", "time"], [83, 2, 1, "", "time_ref"], [83, 3, 1, "", "to_table_hdu"]], "gammapy.data.EventListMetaData": [[84, 3, 1, "", "construct"], [84, 3, 1, "", "copy"], [84, 3, 1, "", "dict"], [84, 3, 1, "", "from_header"], [84, 3, 1, "", "from_orm"], [84, 3, 1, "", "json"], [84, 2, 1, "", "model_computed_fields"], [84, 2, 1, "", "model_config"], [84, 3, 1, "", "model_construct"], [84, 3, 1, "", "model_copy"], [84, 3, 1, "", "model_dump"], [84, 3, 1, "", "model_dump_json"], [84, 2, 1, "", "model_extra"], [84, 2, 1, "", "model_fields"], [84, 2, 1, "", "model_fields_set"], [84, 3, 1, "", "model_json_schema"], [84, 3, 1, "", "model_parametrized_name"], [84, 3, 1, "", "model_post_init"], [84, 3, 1, "", "model_rebuild"], [84, 3, 1, "", "model_validate"], [84, 3, 1, "", "model_validate_json"], [84, 3, 1, "", "model_validate_strings"], [84, 3, 1, "", "parse_file"], [84, 3, 1, "", "parse_obj"], [84, 3, 1, "", "parse_raw"], [84, 3, 1, "", "schema"], [84, 3, 1, "", "schema_json"], [84, 2, 1, "", "tag"], [84, 3, 1, "", "to_header"], [84, 3, 1, "", "to_yaml"], [84, 3, 1, "", "update_forward_refs"], [84, 3, 1, "", "validate"]], "gammapy.data.FixedPointingInfo": [[85, 2, 1, "", "fixed_altaz"], [85, 2, 1, "", "fixed_icrs"], [85, 3, 1, "", "from_fits_header"], [85, 3, 1, "", "get_altaz"], [85, 3, 1, "", "get_icrs"], [85, 2, 1, "", "mode"], [85, 3, 1, "", "read"], [85, 3, 1, "", "to_fits_header"]], "gammapy.data.GTI": [[86, 3, 1, "", "copy"], [86, 3, 1, "", "create"], [86, 3, 1, "", "delete_interval"], [86, 3, 1, "", "from_stack"], [86, 3, 1, "", "from_table_hdu"], [86, 3, 1, "", "from_time_intervals"], [86, 3, 1, "", "group_table"], [86, 2, 1, "", "met_start"], [86, 2, 1, "", "met_stop"], [86, 3, 1, "", "read"], [86, 3, 1, "", "select_time"], [86, 3, 1, "", "stack"], [86, 2, 1, "", "time_delta"], [86, 2, 1, "", "time_intervals"], [86, 2, 1, "", "time_ref"], [86, 2, 1, "", "time_start"], [86, 2, 1, "", "time_stop"], [86, 2, 1, "", "time_sum"], [86, 3, 1, "", "to_table_hdu"], [86, 3, 1, "", "union"], [86, 3, 1, "", "write"]], "gammapy.data.HDUIndexTable": [[87, 2, 1, "", "ColumnClass"], [87, 2, 1, "", "VALID_HDU_CLASS"], [87, 2, 1, "", "VALID_HDU_TYPE"], [87, 3, 1, "", "add_column"], [87, 3, 1, "", "add_columns"], [87, 3, 1, "", "add_index"], [87, 3, 1, "", "add_row"], [87, 3, 1, "", "argsort"], [87, 3, 1, "", "as_array"], [87, 2, 1, "", "base_dir"], [87, 2, 1, "", "colnames"], [87, 3, 1, "", "convert_bytestring_to_unicode"], [87, 3, 1, "", "convert_unicode_to_bytestring"], [87, 3, 1, "", "copy"], [87, 2, 1, "", "dtype"], [87, 3, 1, "", "field"], [87, 3, 1, "", "filled"], [87, 3, 1, "", "from_pandas"], [87, 3, 1, "", "group_by"], [87, 2, 1, "", "groups"], [87, 2, 1, "", "has_masked_columns"], [87, 2, 1, "", "has_masked_values"], [87, 2, 1, "", "has_mixin_columns"], [87, 2, 1, "", "hdu_class_unique"], [87, 3, 1, "", "hdu_location"], [87, 2, 1, "", "hdu_type_unique"], [87, 2, 1, "", "iloc"], [87, 3, 1, "", "index_column"], [87, 3, 1, "", "index_mode"], [87, 2, 1, "", "indices"], [87, 2, 1, "", "info"], [87, 3, 1, "", "insert_row"], [87, 3, 1, "", "items"], [87, 3, 1, "", "itercols"], [87, 3, 1, "", "iterrows"], [87, 3, 1, "", "keep_columns"], [87, 3, 1, "", "keys"], [87, 2, 1, "", "loc"], [87, 2, 1, "", "loc_indices"], [87, 3, 1, "", "location_info"], [87, 2, 1, "", "mask"], [87, 2, 1, "", "masked"], [87, 2, 1, "", "meta"], [87, 3, 1, "", "more"], [87, 2, 1, "", "obs_id_unique"], [87, 3, 1, "", "pformat"], [87, 3, 1, "", "pformat_all"], [87, 3, 1, "", "pprint"], [87, 3, 1, "", "pprint_all"], [87, 2, 1, "", "pprint_exclude_names"], [87, 2, 1, "", "pprint_include_names"], [87, 3, 1, "", "read"], [87, 3, 1, "", "remove_column"], [87, 3, 1, "", "remove_columns"], [87, 3, 1, "", "remove_indices"], [87, 3, 1, "", "remove_row"], [87, 3, 1, "", "remove_rows"], [87, 3, 1, "", "rename_column"], [87, 3, 1, "", "rename_columns"], [87, 3, 1, "", "replace_column"], [87, 3, 1, "", "reverse"], [87, 3, 1, "", "round"], [87, 3, 1, "", "row_idx"], [87, 3, 1, "", "show_in_browser"], [87, 3, 1, "", "show_in_notebook"], [87, 3, 1, "", "sort"], [87, 3, 1, "", "summary"], [87, 3, 1, "", "to_pandas"], [87, 3, 1, "", "update"], [87, 3, 1, "", "values"], [87, 3, 1, "", "values_equal"], [87, 2, 1, "", "write"]], "gammapy.data.Observation": [[88, 2, 1, "", "aeff"], [88, 2, 1, "", "available_hdus"], [88, 2, 1, "", "available_irfs"], [88, 2, 1, "", "bkg"], [88, 3, 1, "", "check"], [88, 3, 1, "", "copy"], [88, 3, 1, "", "create"], [88, 2, 1, "", "edisp"], [88, 2, 1, "", "events"], [88, 3, 1, "", "get_pointing_altaz"], [88, 3, 1, "", "get_pointing_icrs"], [88, 2, 1, "", "gti"], [88, 2, 1, "", "meta"], [88, 2, 1, "", "observation_dead_time_fraction"], [88, 2, 1, "", "observation_live_time_duration"], [88, 2, 1, "", "observation_time_duration"], [88, 2, 1, "", "observatory_earth_location"], [88, 3, 1, "", "peek"], [88, 2, 1, "", "pointing"], [88, 2, 1, "", "psf"], [88, 2, 1, "", "rad_max"], [88, 3, 1, "", "read"], [88, 3, 1, "", "select_time"], [88, 2, 1, "", "target_radec"], [88, 2, 1, "", "tmid"], [88, 2, 1, "", "tstart"], [88, 2, 1, "", "tstop"], [88, 3, 1, "", "write"]], "gammapy.data.ObservationFilter": [[89, 2, 1, "", "EVENT_FILTER_TYPES"], [89, 3, 1, "", "copy"], [89, 3, 1, "", "filter_events"], [89, 3, 1, "", "filter_gti"], [89, 2, 1, "", "livetime_fraction"]], "gammapy.data.ObservationMetaData": [[90, 3, 1, "", "construct"], [90, 3, 1, "", "copy"], [90, 3, 1, "", "dict"], [90, 3, 1, "", "from_header"], [90, 3, 1, "", "from_orm"], [90, 3, 1, "", "json"], [90, 2, 1, "", "model_computed_fields"], [90, 2, 1, "", "model_config"], [90, 3, 1, "", "model_construct"], [90, 3, 1, "", "model_copy"], [90, 3, 1, "", "model_dump"], [90, 3, 1, "", "model_dump_json"], [90, 2, 1, "", "model_extra"], [90, 2, 1, "", "model_fields"], [90, 2, 1, "", "model_fields_set"], [90, 3, 1, "", "model_json_schema"], [90, 3, 1, "", "model_parametrized_name"], [90, 3, 1, "", "model_post_init"], [90, 3, 1, "", "model_rebuild"], [90, 3, 1, "", "model_validate"], [90, 3, 1, "", "model_validate_json"], [90, 3, 1, "", "model_validate_strings"], [90, 3, 1, "", "parse_file"], [90, 3, 1, "", "parse_obj"], [90, 3, 1, "", "parse_raw"], [90, 3, 1, "", "schema"], [90, 3, 1, "", "schema_json"], [90, 2, 1, "", "tag"], [90, 3, 1, "", "to_header"], [90, 3, 1, "", "to_yaml"], [90, 3, 1, "", "update_forward_refs"], [90, 3, 1, "", "validate"]], "gammapy.data.ObservationTable": [[91, 2, 1, "", "ColumnClass"], [91, 3, 1, "", "add_column"], [91, 3, 1, "", "add_columns"], [91, 3, 1, "", "add_index"], [91, 3, 1, "", "add_row"], [91, 3, 1, "", "argsort"], [91, 3, 1, "", "as_array"], [91, 2, 1, "", "colnames"], [91, 3, 1, "", "convert_bytestring_to_unicode"], [91, 3, 1, "", "convert_unicode_to_bytestring"], [91, 3, 1, "", "copy"], [91, 2, 1, "", "dtype"], [91, 3, 1, "", "field"], [91, 3, 1, "", "filled"], [91, 3, 1, "", "from_pandas"], [91, 3, 1, "", "group_by"], [91, 2, 1, "", "groups"], [91, 2, 1, "", "has_masked_columns"], [91, 2, 1, "", "has_masked_values"], [91, 2, 1, "", "has_mixin_columns"], [91, 2, 1, "", "iloc"], [91, 3, 1, "", "index_column"], [91, 3, 1, "", "index_mode"], [91, 2, 1, "", "indices"], [91, 2, 1, "", "info"], [91, 3, 1, "", "insert_row"], [91, 3, 1, "", "items"], [91, 3, 1, "", "itercols"], [91, 3, 1, "", "iterrows"], [91, 3, 1, "", "keep_columns"], [91, 3, 1, "", "keys"], [91, 2, 1, "", "loc"], [91, 2, 1, "", "loc_indices"], [91, 2, 1, "", "mask"], [91, 2, 1, "", "masked"], [91, 2, 1, "", "meta"], [91, 3, 1, "", "more"], [91, 3, 1, "", "pformat"], [91, 3, 1, "", "pformat_all"], [91, 2, 1, "", "pointing_galactic"], [91, 2, 1, "", "pointing_radec"], [91, 3, 1, "", "pprint"], [91, 3, 1, "", "pprint_all"], [91, 2, 1, "", "pprint_exclude_names"], [91, 2, 1, "", "pprint_include_names"], [91, 3, 1, "", "read"], [91, 3, 1, "", "remove_column"], [91, 3, 1, "", "remove_columns"], [91, 3, 1, "", "remove_indices"], [91, 3, 1, "", "remove_row"], [91, 3, 1, "", "remove_rows"], [91, 3, 1, "", "rename_column"], [91, 3, 1, "", "rename_columns"], [91, 3, 1, "", "replace_column"], [91, 3, 1, "", "reverse"], [91, 3, 1, "", "round"], [91, 3, 1, "", "select_obs_id"], [91, 3, 1, "", "select_observations"], [91, 3, 1, "", "select_range"], [91, 3, 1, "", "select_sky_circle"], [91, 3, 1, "", "select_time_range"], [91, 3, 1, "", "show_in_browser"], [91, 3, 1, "", "show_in_notebook"], [91, 3, 1, "", "sort"], [91, 3, 1, "", "summary"], [91, 2, 1, "", "time_ref"], [91, 2, 1, "", "time_start"], [91, 2, 1, "", "time_stop"], [91, 3, 1, "", "to_pandas"], [91, 3, 1, "", "update"], [91, 3, 1, "", "values"], [91, 3, 1, "", "values_equal"], [91, 2, 1, "", "write"]], "gammapy.data.Observations": [[92, 3, 1, "", "append"], [92, 3, 1, "", "clear"], [92, 3, 1, "", "count"], [92, 3, 1, "", "extend"], [92, 3, 1, "", "from_stack"], [92, 3, 1, "", "group_by_label"], [92, 2, 1, "", "ids"], [92, 3, 1, "", "in_memory_generator"], [92, 3, 1, "", "index"], [92, 3, 1, "", "insert"], [92, 3, 1, "", "pop"], [92, 3, 1, "", "remove"], [92, 3, 1, "", "reverse"], [92, 3, 1, "", "select_time"]], "gammapy.data.ObservationsEventsSampler": [[93, 2, 1, "", "n_jobs"], [93, 2, 1, "", "parallel_backend"], [93, 3, 1, "", "run"], [93, 3, 1, "", "simulate_observation"]], "gammapy.data.PointingInfo": [[94, 2, 1, "", "altaz"], [94, 2, 1, "", "altaz_frame"], [94, 2, 1, "", "altaz_from_table"], [94, 3, 1, "", "altaz_interpolate"], [94, 2, 1, "", "duration"], [94, 3, 1, "", "get_altaz"], [94, 3, 1, "", "get_icrs"], [94, 2, 1, "", "location"], [94, 2, 1, "", "radec"], [94, 3, 1, "", "read"], [94, 2, 1, "", "time"], [94, 2, 1, "", "time_ref"]], "gammapy.data.PointingMode": [[95, 2, 1, "", "DRIFT"], [95, 2, 1, "", "POINTING"]], "gammapy.datasets": [[98, 5, 1, "", "DATASET_REGISTRY"], [99, 1, 1, "", "Dataset"], [100, 1, 1, "", "Datasets"], [101, 1, 1, "", "FluxPointsDataset"], [102, 1, 1, "", "MapDataset"], [103, 1, 1, "", "MapDatasetEventSampler"], [104, 1, 1, "", "MapDatasetMetaData"], [105, 1, 1, "", "MapDatasetOnOff"], [106, 1, 1, "", "OGIPDatasetReader"], [107, 1, 1, "", "OGIPDatasetWriter"], [108, 1, 1, "", "ObservationEventSampler"], [109, 1, 1, "", "SpectrumDataset"], [110, 1, 1, "", "SpectrumDatasetOnOff"], [111, 4, 1, "", "apply_edisp"], [112, 4, 1, "", "create_empty_map_dataset_from_irfs"], [113, 4, 1, "", "create_map_dataset_from_observation"], [114, 4, 1, "", "create_map_dataset_geoms"], [115, 4, 1, "", "split_dataset"], [4, 0, 0, "-", "utils"]], "gammapy.datasets.Dataset": [[99, 3, 1, "", "copy"], [99, 2, 1, "", "mask"], [99, 2, 1, "", "name"], [99, 3, 1, "", "stat_array"], [99, 3, 1, "", "stat_sum"], [99, 2, 1, "", "tag"], [99, 3, 1, "", "to_dict"]], "gammapy.datasets.Datasets": [[100, 3, 1, "", "append"], [100, 3, 1, "", "clear"], [100, 2, 1, "", "contributes_to_stat"], [100, 3, 1, "", "copy"], [100, 3, 1, "", "count"], [100, 2, 1, "", "energy_axes_are_aligned"], [100, 2, 1, "", "energy_ranges"], [100, 3, 1, "", "extend"], [100, 2, 1, "", "gti"], [100, 3, 1, "", "index"], [100, 3, 1, "", "info_table"], [100, 3, 1, "", "insert"], [100, 2, 1, "", "is_all_same_energy_shape"], [100, 2, 1, "", "is_all_same_shape"], [100, 2, 1, "", "is_all_same_type"], [100, 2, 1, "", "meta_table"], [100, 2, 1, "", "models"], [100, 2, 1, "", "names"], [100, 2, 1, "", "parameters"], [100, 3, 1, "", "pop"], [100, 3, 1, "", "read"], [100, 3, 1, "", "remove"], [100, 3, 1, "", "reverse"], [100, 3, 1, "", "select_time"], [100, 3, 1, "", "slice_by_energy"], [100, 3, 1, "", "stack_reduce"], [100, 3, 1, "", "stat_sum"], [100, 3, 1, "", "to_spectrum_datasets"], [100, 3, 1, "", "write"]], "gammapy.datasets.FluxPointsDataset": [[101, 2, 1, "", "available_stat_type"], [101, 3, 1, "", "copy"], [101, 3, 1, "", "data_shape"], [101, 3, 1, "", "flux_pred"], [101, 3, 1, "", "from_dict"], [101, 2, 1, "", "gti"], [101, 2, 1, "", "mask"], [101, 2, 1, "", "mask_safe"], [101, 2, 1, "", "mask_valid"], [101, 2, 1, "", "models"], [101, 2, 1, "", "name"], [101, 3, 1, "", "plot_fit"], [101, 3, 1, "", "plot_residuals"], [101, 3, 1, "", "plot_spectrum"], [101, 3, 1, "", "read"], [101, 3, 1, "", "residuals"], [101, 3, 1, "", "stat_array"], [101, 3, 1, "", "stat_sum"], [101, 2, 1, "", "stat_type"], [101, 2, 1, "", "tag"], [101, 3, 1, "", "to_dict"], [101, 3, 1, "", "write"]], "gammapy.datasets.MapDataset": [[102, 2, 1, "", "background"], [102, 2, 1, "", "background_model"], [102, 3, 1, "", "copy"], [102, 2, 1, "", "counts"], [102, 3, 1, "", "create"], [102, 3, 1, "", "cutout"], [102, 2, 1, "", "data_shape"], [102, 3, 1, "", "downsample"], [102, 2, 1, "", "edisp"], [102, 2, 1, "", "energy_range"], [102, 2, 1, "", "energy_range_fit"], [102, 2, 1, "", "energy_range_safe"], [102, 2, 1, "", "energy_range_total"], [102, 2, 1, "", "evaluators"], [102, 2, 1, "", "excess"], [102, 2, 1, "", "exposure"], [102, 3, 1, "", "fake"], [102, 3, 1, "", "from_dict"], [102, 3, 1, "", "from_geoms"], [102, 3, 1, "", "from_hdulist"], [102, 2, 1, "", "geoms"], [102, 2, 1, "", "gti"], [102, 3, 1, "", "info_dict"], [102, 2, 1, "", "mask"], [102, 2, 1, "", "mask_fit"], [102, 2, 1, "", "mask_fit_image"], [102, 2, 1, "", "mask_image"], [102, 2, 1, "", "mask_safe"], [102, 2, 1, "", "mask_safe_edisp"], [102, 2, 1, "", "mask_safe_image"], [102, 2, 1, "", "mask_safe_psf"], [102, 2, 1, "", "meta"], [102, 2, 1, "", "meta_table"], [102, 2, 1, "", "models"], [102, 2, 1, "", "name"], [102, 3, 1, "", "npred"], [102, 3, 1, "", "npred_background"], [102, 3, 1, "", "npred_signal"], [102, 3, 1, "", "pad"], [102, 3, 1, "", "peek"], [102, 3, 1, "", "plot_residuals"], [102, 3, 1, "", "plot_residuals_spatial"], [102, 3, 1, "", "plot_residuals_spectral"], [102, 2, 1, "", "psf"], [102, 3, 1, "", "read"], [102, 3, 1, "", "resample_energy_axis"], [102, 3, 1, "", "reset_data_cache"], [102, 3, 1, "", "residuals"], [102, 3, 1, "", "slice_by_energy"], [102, 3, 1, "", "slice_by_idx"], [102, 3, 1, "", "stack"], [102, 3, 1, "", "stat_array"], [102, 3, 1, "", "stat_sum"], [102, 2, 1, "", "stat_type"], [102, 2, 1, "", "tag"], [102, 3, 1, "", "to_dict"], [102, 3, 1, "", "to_hdulist"], [102, 3, 1, "", "to_image"], [102, 3, 1, "", "to_masked"], [102, 3, 1, "", "to_region_map_dataset"], [102, 3, 1, "", "to_spectrum_dataset"], [102, 3, 1, "", "write"]], "gammapy.datasets.MapDatasetEventSampler": [[103, 3, 1, "", "event_det_coords"], [103, 3, 1, "", "event_list_meta"], [103, 3, 1, "", "run"], [103, 3, 1, "", "sample_background"], [103, 3, 1, "", "sample_edisp"], [103, 3, 1, "", "sample_psf"], [103, 3, 1, "", "sample_sources"]], "gammapy.datasets.MapDatasetMetaData": [[104, 3, 1, "", "construct"], [104, 3, 1, "", "copy"], [104, 3, 1, "", "dict"], [104, 3, 1, "", "from_header"], [104, 3, 1, "", "from_orm"], [104, 3, 1, "", "json"], [104, 2, 1, "", "model_computed_fields"], [104, 2, 1, "", "model_config"], [104, 3, 1, "", "model_construct"], [104, 3, 1, "", "model_copy"], [104, 3, 1, "", "model_dump"], [104, 3, 1, "", "model_dump_json"], [104, 2, 1, "", "model_extra"], [104, 2, 1, "", "model_fields"], [104, 2, 1, "", "model_fields_set"], [104, 3, 1, "", "model_json_schema"], [104, 3, 1, "", "model_parametrized_name"], [104, 3, 1, "", "model_post_init"], [104, 3, 1, "", "model_rebuild"], [104, 3, 1, "", "model_validate"], [104, 3, 1, "", "model_validate_json"], [104, 3, 1, "", "model_validate_strings"], [104, 3, 1, "", "parse_file"], [104, 3, 1, "", "parse_obj"], [104, 3, 1, "", "parse_raw"], [104, 3, 1, "", "schema"], [104, 3, 1, "", "schema_json"], [104, 3, 1, "", "stack"], [104, 2, 1, "", "tag"], [104, 3, 1, "", "to_header"], [104, 3, 1, "", "to_yaml"], [104, 3, 1, "", "update_forward_refs"], [104, 3, 1, "", "validate"]], "gammapy.datasets.MapDatasetOnOff": [[105, 2, 1, "", "alpha"], [105, 2, 1, "", "background"], [105, 2, 1, "", "background_model"], [105, 3, 1, "", "copy"], [105, 2, 1, "", "counts"], [105, 3, 1, "", "create"], [105, 3, 1, "", "cutout"], [105, 2, 1, "", "data_shape"], [105, 3, 1, "", "downsample"], [105, 2, 1, "", "edisp"], [105, 2, 1, "", "energy_range"], [105, 2, 1, "", "energy_range_fit"], [105, 2, 1, "", "energy_range_safe"], [105, 2, 1, "", "energy_range_total"], [105, 2, 1, "", "evaluators"], [105, 2, 1, "", "excess"], [105, 2, 1, "", "exposure"], [105, 3, 1, "", "fake"], [105, 3, 1, "", "from_dict"], [105, 3, 1, "", "from_geoms"], [105, 3, 1, "", "from_hdulist"], [105, 3, 1, "", "from_map_dataset"], [105, 2, 1, "", "geoms"], [105, 2, 1, "", "gti"], [105, 3, 1, "", "info_dict"], [105, 2, 1, "", "mask"], [105, 2, 1, "", "mask_fit"], [105, 2, 1, "", "mask_fit_image"], [105, 2, 1, "", "mask_image"], [105, 2, 1, "", "mask_safe"], [105, 2, 1, "", "mask_safe_edisp"], [105, 2, 1, "", "mask_safe_image"], [105, 2, 1, "", "mask_safe_psf"], [105, 2, 1, "", "meta"], [105, 2, 1, "", "meta_table"], [105, 2, 1, "", "models"], [105, 2, 1, "", "name"], [105, 3, 1, "", "npred"], [105, 3, 1, "", "npred_background"], [105, 3, 1, "", "npred_off"], [105, 3, 1, "", "npred_signal"], [105, 3, 1, "", "pad"], [105, 3, 1, "", "peek"], [105, 3, 1, "", "plot_residuals"], [105, 3, 1, "", "plot_residuals_spatial"], [105, 3, 1, "", "plot_residuals_spectral"], [105, 2, 1, "", "psf"], [105, 3, 1, "", "read"], [105, 3, 1, "", "resample_energy_axis"], [105, 3, 1, "", "reset_data_cache"], [105, 3, 1, "", "residuals"], [105, 3, 1, "", "slice_by_energy"], [105, 3, 1, "", "slice_by_idx"], [105, 3, 1, "", "stack"], [105, 3, 1, "", "stat_array"], [105, 3, 1, "", "stat_sum"], [105, 2, 1, "", "stat_type"], [105, 2, 1, "", "tag"], [105, 3, 1, "", "to_dict"], [105, 3, 1, "", "to_hdulist"], [105, 3, 1, "", "to_image"], [105, 3, 1, "", "to_map_dataset"], [105, 3, 1, "", "to_masked"], [105, 3, 1, "", "to_region_map_dataset"], [105, 3, 1, "", "to_spectrum_dataset"], [105, 3, 1, "", "write"]], "gammapy.datasets.OGIPDatasetReader": [[106, 3, 1, "", "get_filenames"], [106, 3, 1, "", "get_valid_path"], [106, 3, 1, "", "read"], [106, 3, 1, "", "read_arf"], [106, 3, 1, "", "read_bkg"], [106, 3, 1, "", "read_pha"], [106, 3, 1, "", "read_rmf"], [106, 2, 1, "", "tag"]], "gammapy.datasets.OGIPDatasetWriter": [[107, 3, 1, "", "get_filenames"], [107, 3, 1, "", "get_ogip_meta"], [107, 2, 1, "", "tag"], [107, 3, 1, "", "to_counts_hdulist"], [107, 3, 1, "", "write"], [107, 3, 1, "", "write_arf"], [107, 3, 1, "", "write_bkg"], [107, 3, 1, "", "write_pha"], [107, 3, 1, "", "write_rmf"]], "gammapy.datasets.ObservationEventSampler": [[108, 3, 1, "", "event_det_coords"], [108, 3, 1, "", "event_list_meta"], [108, 3, 1, "", "run"], [108, 3, 1, "", "sample_background"], [108, 3, 1, "", "sample_edisp"], [108, 3, 1, "", "sample_psf"], [108, 3, 1, "", "sample_sources"]], "gammapy.datasets.SpectrumDataset": [[109, 2, 1, "", "background"], [109, 2, 1, "", "background_model"], [109, 3, 1, "", "copy"], [109, 2, 1, "", "counts"], [109, 3, 1, "", "create"], [109, 3, 1, "", "cutout"], [109, 2, 1, "", "data_shape"], [109, 3, 1, "", "downsample"], [109, 2, 1, "", "edisp"], [109, 2, 1, "", "energy_range"], [109, 2, 1, "", "energy_range_fit"], [109, 2, 1, "", "energy_range_safe"], [109, 2, 1, "", "energy_range_total"], [109, 2, 1, "", "evaluators"], [109, 2, 1, "", "excess"], [109, 2, 1, "", "exposure"], [109, 3, 1, "", "fake"], [109, 3, 1, "", "from_dict"], [109, 3, 1, "", "from_geoms"], [109, 3, 1, "", "from_hdulist"], [109, 2, 1, "", "geoms"], [109, 2, 1, "", "gti"], [109, 3, 1, "", "info_dict"], [109, 2, 1, "", "mask"], [109, 2, 1, "", "mask_fit"], [109, 2, 1, "", "mask_fit_image"], [109, 2, 1, "", "mask_image"], [109, 2, 1, "", "mask_safe"], [109, 2, 1, "", "mask_safe_edisp"], [109, 2, 1, "", "mask_safe_image"], [109, 2, 1, "", "mask_safe_psf"], [109, 2, 1, "", "meta"], [109, 2, 1, "", "meta_table"], [109, 2, 1, "", "models"], [109, 2, 1, "", "name"], [109, 3, 1, "", "npred"], [109, 3, 1, "", "npred_background"], [109, 3, 1, "", "npred_signal"], [109, 3, 1, "", "pad"], [109, 3, 1, "", "peek"], [109, 3, 1, "", "plot_counts"], [109, 3, 1, "", "plot_excess"], [109, 3, 1, "", "plot_fit"], [109, 3, 1, "", "plot_masks"], [109, 3, 1, "", "plot_residuals"], [109, 3, 1, "", "plot_residuals_spatial"], [109, 3, 1, "", "plot_residuals_spectral"], [109, 2, 1, "", "psf"], [109, 3, 1, "", "read"], [109, 3, 1, "", "resample_energy_axis"], [109, 3, 1, "", "reset_data_cache"], [109, 3, 1, "", "residuals"], [109, 3, 1, "", "slice_by_energy"], [109, 3, 1, "", "slice_by_idx"], [109, 3, 1, "", "stack"], [109, 3, 1, "", "stat_array"], [109, 3, 1, "", "stat_sum"], [109, 2, 1, "", "stat_type"], [109, 2, 1, "", "tag"], [109, 3, 1, "", "to_dict"], [109, 3, 1, "", "to_hdulist"], [109, 3, 1, "", "to_image"], [109, 3, 1, "", "to_masked"], [109, 3, 1, "", "to_region_map_dataset"], [109, 3, 1, "", "to_spectrum_dataset"], [109, 3, 1, "", "write"]], "gammapy.datasets.SpectrumDatasetOnOff": [[110, 2, 1, "", "alpha"], [110, 2, 1, "", "background"], [110, 2, 1, "", "background_model"], [110, 3, 1, "", "copy"], [110, 2, 1, "", "counts"], [110, 3, 1, "", "create"], [110, 3, 1, "", "cutout"], [110, 2, 1, "", "data_shape"], [110, 3, 1, "", "downsample"], [110, 2, 1, "", "edisp"], [110, 2, 1, "", "energy_range"], [110, 2, 1, "", "energy_range_fit"], [110, 2, 1, "", "energy_range_safe"], [110, 2, 1, "", "energy_range_total"], [110, 2, 1, "", "evaluators"], [110, 2, 1, "", "excess"], [110, 2, 1, "", "exposure"], [110, 3, 1, "", "fake"], [110, 3, 1, "", "from_dict"], [110, 3, 1, "", "from_geoms"], [110, 3, 1, "", "from_hdulist"], [110, 3, 1, "", "from_map_dataset"], [110, 3, 1, "", "from_spectrum_dataset"], [110, 2, 1, "", "geoms"], [110, 2, 1, "", "gti"], [110, 3, 1, "", "info_dict"], [110, 2, 1, "", "mask"], [110, 2, 1, "", "mask_fit"], [110, 2, 1, "", "mask_fit_image"], [110, 2, 1, "", "mask_image"], [110, 2, 1, "", "mask_safe"], [110, 2, 1, "", "mask_safe_edisp"], [110, 2, 1, "", "mask_safe_image"], [110, 2, 1, "", "mask_safe_psf"], [110, 2, 1, "", "meta"], [110, 2, 1, "", "meta_table"], [110, 2, 1, "", "models"], [110, 2, 1, "", "name"], [110, 3, 1, "", "npred"], [110, 3, 1, "", "npred_background"], [110, 3, 1, "", "npred_off"], [110, 3, 1, "", "npred_signal"], [110, 3, 1, "", "pad"], [110, 3, 1, "", "peek"], [110, 3, 1, "", "plot_counts"], [110, 3, 1, "", "plot_excess"], [110, 3, 1, "", "plot_fit"], [110, 3, 1, "", "plot_masks"], [110, 3, 1, "", "plot_residuals"], [110, 3, 1, "", "plot_residuals_spatial"], [110, 3, 1, "", "plot_residuals_spectral"], [110, 2, 1, "", "psf"], [110, 3, 1, "", "read"], [110, 3, 1, "", "resample_energy_axis"], [110, 3, 1, "", "reset_data_cache"], [110, 3, 1, "", "residuals"], [110, 3, 1, "", "slice_by_energy"], [110, 3, 1, "", "slice_by_idx"], [110, 3, 1, "", "stack"], [110, 3, 1, "", "stat_array"], [110, 3, 1, "", "stat_sum"], [110, 2, 1, "", "stat_type"], [110, 2, 1, "", "tag"], [110, 3, 1, "", "to_dict"], [110, 3, 1, "", "to_hdulist"], [110, 3, 1, "", "to_image"], [110, 3, 1, "", "to_map_dataset"], [110, 3, 1, "", "to_masked"], [110, 3, 1, "", "to_region_map_dataset"], [110, 3, 1, "", "to_spectrum_dataset"], [110, 3, 1, "", "write"]], "gammapy.datasets.utils": [[116, 4, 1, "", "apply_edisp"], [117, 4, 1, "", "split_dataset"]], "gammapy.estimators": [[118, 1, 1, "", "ASmoothMapEstimator"], [119, 5, 1, "", "ESTIMATOR_REGISTRY"], [120, 1, 1, "", "EnergyDependentMorphologyEstimator"], [121, 1, 1, "", "Estimator"], [122, 1, 1, "", "ExcessMapEstimator"], [123, 1, 1, "", "FluxMaps"], [124, 1, 1, "", "FluxMetaData"], [125, 1, 1, "", "FluxPoints"], [126, 1, 1, "", "FluxPointsEstimator"], [127, 1, 1, "", "FluxProfileEstimator"], [128, 1, 1, "", "ImageProfile"], [129, 1, 1, "", "ImageProfileEstimator"], [130, 1, 1, "", "LightCurveEstimator"], [131, 1, 1, "", "ParameterEstimator"], [132, 1, 1, "", "SensitivityEstimator"], [133, 1, 1, "", "TSMapEstimator"], [5, 0, 0, "-", "utils"]], "gammapy.estimators.ASmoothMapEstimator": [[118, 2, 1, "", "config_parameters"], [118, 3, 1, "", "copy"], [118, 3, 1, "", "estimate_maps"], [118, 3, 1, "", "get_kernels"], [118, 3, 1, "", "get_scales"], [118, 3, 1, "", "run"], [118, 3, 1, "", "selection_all"], [118, 2, 1, "", "selection_optional"], [118, 2, 1, "", "tag"]], "gammapy.estimators.EnergyDependentMorphologyEstimator": [[120, 2, 1, "", "config_parameters"], [120, 3, 1, "", "copy"], [120, 3, 1, "", "estimate_energy_dependence"], [120, 3, 1, "", "run"], [120, 2, 1, "", "selection_optional"], [120, 2, 1, "", "tag"]], "gammapy.estimators.Estimator": [[121, 2, 1, "", "config_parameters"], [121, 3, 1, "", "copy"], [121, 3, 1, "", "run"], [121, 2, 1, "", "selection_optional"], [121, 2, 1, "", "tag"]], "gammapy.estimators.ExcessMapEstimator": [[122, 2, 1, "", "config_parameters"], [122, 3, 1, "", "copy"], [122, 2, 1, "", "correlation_radius"], [122, 3, 1, "", "estimate_excess_map"], [122, 3, 1, "", "estimate_exposure_reco_energy"], [122, 3, 1, "", "estimate_kernel"], [122, 3, 1, "", "estimate_mask_default"], [122, 3, 1, "", "run"], [122, 2, 1, "", "selection_optional"], [122, 2, 1, "", "tag"]], "gammapy.estimators.FluxMaps": [[123, 2, 1, "", "acceptance_off"], [123, 2, 1, "", "acceptance_on"], [123, 3, 1, "", "all_quantities"], [123, 2, 1, "", "alpha"], [123, 2, 1, "", "available_quantities"], [123, 3, 1, "", "copy"], [123, 2, 1, "", "counts"], [123, 2, 1, "", "dnde"], [123, 2, 1, "", "dnde_err"], [123, 2, 1, "", "dnde_errn"], [123, 2, 1, "", "dnde_errp"], [123, 2, 1, "", "dnde_ref"], [123, 2, 1, "", "dnde_scan_values"], [123, 2, 1, "", "dnde_ul"], [123, 2, 1, "", "e2dnde"], [123, 2, 1, "", "e2dnde_err"], [123, 2, 1, "", "e2dnde_errn"], [123, 2, 1, "", "e2dnde_errp"], [123, 2, 1, "", "e2dnde_ref"], [123, 2, 1, "", "e2dnde_ul"], [123, 2, 1, "", "eflux"], [123, 2, 1, "", "eflux_err"], [123, 2, 1, "", "eflux_errn"], [123, 2, 1, "", "eflux_errp"], [123, 2, 1, "", "eflux_ref"], [123, 2, 1, "", "eflux_ul"], [123, 2, 1, "", "energy_axis"], [123, 2, 1, "", "energy_max"], [123, 2, 1, "", "energy_min"], [123, 2, 1, "", "energy_ref"], [123, 2, 1, "", "filter_success_nan"], [123, 2, 1, "", "flux"], [123, 2, 1, "", "flux_err"], [123, 2, 1, "", "flux_errn"], [123, 2, 1, "", "flux_errp"], [123, 2, 1, "", "flux_ref"], [123, 2, 1, "", "flux_sensitivity"], [123, 2, 1, "", "flux_ul"], [123, 3, 1, "", "from_hdulist"], [123, 3, 1, "", "from_maps"], [123, 3, 1, "", "from_stack"], [123, 2, 1, "", "geom"], [123, 3, 1, "", "get_flux_points"], [123, 2, 1, "", "has_any_ts"], [123, 2, 1, "", "has_stat_profiles"], [123, 2, 1, "", "has_success"], [123, 2, 1, "", "has_ul"], [123, 2, 1, "", "is_convertible_to_flux_sed_type"], [123, 2, 1, "", "is_ul"], [123, 3, 1, "", "iter_by_axis"], [123, 2, 1, "", "n_dof"], [123, 2, 1, "", "n_sigma"], [123, 2, 1, "", "n_sigma_ul"], [123, 2, 1, "", "niter"], [123, 2, 1, "", "norm"], [123, 2, 1, "", "norm_err"], [123, 2, 1, "", "norm_errn"], [123, 2, 1, "", "norm_errp"], [123, 2, 1, "", "norm_sensitivity"], [123, 2, 1, "", "norm_ul"], [123, 2, 1, "", "npred"], [123, 2, 1, "", "npred_background"], [123, 2, 1, "", "npred_excess"], [123, 2, 1, "", "npred_excess_err"], [123, 2, 1, "", "npred_excess_errn"], [123, 2, 1, "", "npred_excess_errp"], [123, 2, 1, "", "npred_excess_ref"], [123, 2, 1, "", "npred_excess_ul"], [123, 3, 1, "", "read"], [123, 2, 1, "", "reference_model"], [123, 2, 1, "", "reference_model_default"], [123, 2, 1, "", "reference_spectral_model"], [123, 2, 1, "", "sed_type_init"], [123, 2, 1, "", "sed_type_plot_default"], [123, 3, 1, "", "slice_by_coord"], [123, 3, 1, "", "slice_by_energy"], [123, 3, 1, "", "slice_by_idx"], [123, 3, 1, "", "slice_by_time"], [123, 2, 1, "", "sqrt_ts"], [123, 2, 1, "", "sqrt_ts_threshold_ul"], [123, 2, 1, "", "stat"], [123, 2, 1, "", "stat_null"], [123, 2, 1, "", "stat_scan"], [123, 2, 1, "", "success"], [123, 3, 1, "", "to_hdulist"], [123, 3, 1, "", "to_maps"], [123, 2, 1, "", "ts"], [123, 2, 1, "", "ts_scan"], [123, 3, 1, "", "write"]], "gammapy.estimators.FluxMetaData": [[124, 3, 1, "", "construct"], [124, 3, 1, "", "copy"], [124, 3, 1, "", "dict"], [124, 3, 1, "", "from_header"], [124, 3, 1, "", "from_orm"], [124, 3, 1, "", "json"], [124, 2, 1, "", "model_computed_fields"], [124, 2, 1, "", "model_config"], [124, 3, 1, "", "model_construct"], [124, 3, 1, "", "model_copy"], [124, 3, 1, "", "model_dump"], [124, 3, 1, "", "model_dump_json"], [124, 2, 1, "", "model_extra"], [124, 2, 1, "", "model_fields"], [124, 2, 1, "", "model_fields_set"], [124, 3, 1, "", "model_json_schema"], [124, 3, 1, "", "model_parametrized_name"], [124, 3, 1, "", "model_post_init"], [124, 3, 1, "", "model_rebuild"], [124, 3, 1, "", "model_validate"], [124, 3, 1, "", "model_validate_json"], [124, 3, 1, "", "model_validate_strings"], [124, 3, 1, "", "parse_file"], [124, 3, 1, "", "parse_obj"], [124, 3, 1, "", "parse_raw"], [124, 3, 1, "", "schema"], [124, 3, 1, "", "schema_json"], [124, 2, 1, "", "tag"], [124, 3, 1, "", "to_header"], [124, 3, 1, "", "to_yaml"], [124, 3, 1, "", "update_forward_refs"], [124, 3, 1, "", "validate"]], "gammapy.estimators.FluxPoints": [[125, 2, 1, "", "acceptance_off"], [125, 2, 1, "", "acceptance_on"], [125, 3, 1, "", "all_quantities"], [125, 2, 1, "", "alpha"], [125, 2, 1, "", "available_quantities"], [125, 3, 1, "", "copy"], [125, 2, 1, "", "counts"], [125, 2, 1, "", "dnde"], [125, 2, 1, "", "dnde_err"], [125, 2, 1, "", "dnde_errn"], [125, 2, 1, "", "dnde_errp"], [125, 2, 1, "", "dnde_ref"], [125, 2, 1, "", "dnde_scan_values"], [125, 2, 1, "", "dnde_ul"], [125, 2, 1, "", "e2dnde"], [125, 2, 1, "", "e2dnde_err"], [125, 2, 1, "", "e2dnde_errn"], [125, 2, 1, "", "e2dnde_errp"], [125, 2, 1, "", "e2dnde_ref"], [125, 2, 1, "", "e2dnde_ul"], [125, 2, 1, "", "eflux"], [125, 2, 1, "", "eflux_err"], [125, 2, 1, "", "eflux_errn"], [125, 2, 1, "", "eflux_errp"], [125, 2, 1, "", "eflux_ref"], [125, 2, 1, "", "eflux_ul"], [125, 2, 1, "", "energy_axis"], [125, 2, 1, "", "energy_max"], [125, 2, 1, "", "energy_min"], [125, 2, 1, "", "energy_ref"], [125, 2, 1, "", "filter_success_nan"], [125, 2, 1, "", "flux"], [125, 2, 1, "", "flux_err"], [125, 2, 1, "", "flux_errn"], [125, 2, 1, "", "flux_errp"], [125, 2, 1, "", "flux_ref"], [125, 2, 1, "", "flux_sensitivity"], [125, 2, 1, "", "flux_ul"], [125, 3, 1, "", "from_hdulist"], [125, 3, 1, "", "from_maps"], [125, 3, 1, "", "from_stack"], [125, 3, 1, "", "from_table"], [125, 2, 1, "", "geom"], [125, 3, 1, "", "get_flux_points"], [125, 2, 1, "", "has_any_ts"], [125, 2, 1, "", "has_stat_profiles"], [125, 2, 1, "", "has_success"], [125, 2, 1, "", "has_ul"], [125, 2, 1, "", "is_convertible_to_flux_sed_type"], [125, 2, 1, "", "is_ul"], [125, 3, 1, "", "iter_by_axis"], [125, 2, 1, "", "n_dof"], [125, 2, 1, "", "n_sigma"], [125, 2, 1, "", "n_sigma_ul"], [125, 2, 1, "", "niter"], [125, 2, 1, "", "norm"], [125, 2, 1, "", "norm_err"], [125, 2, 1, "", "norm_errn"], [125, 2, 1, "", "norm_errp"], [125, 2, 1, "", "norm_sensitivity"], [125, 2, 1, "", "norm_ul"], [125, 2, 1, "", "npred"], [125, 2, 1, "", "npred_background"], [125, 2, 1, "", "npred_excess"], [125, 2, 1, "", "npred_excess_err"], [125, 2, 1, "", "npred_excess_errn"], [125, 2, 1, "", "npred_excess_errp"], [125, 2, 1, "", "npred_excess_ref"], [125, 2, 1, "", "npred_excess_ul"], [125, 3, 1, "", "plot"], [125, 3, 1, "", "plot_ts_profiles"], [125, 3, 1, "", "read"], [125, 3, 1, "", "recompute_ul"], [125, 2, 1, "", "reference_model"], [125, 2, 1, "", "reference_model_default"], [125, 2, 1, "", "reference_spectral_model"], [125, 3, 1, "", "resample_axis"], [125, 2, 1, "", "sed_type_init"], [125, 2, 1, "", "sed_type_plot_default"], [125, 3, 1, "", "slice_by_coord"], [125, 3, 1, "", "slice_by_energy"], [125, 3, 1, "", "slice_by_idx"], [125, 3, 1, "", "slice_by_time"], [125, 2, 1, "", "sqrt_ts"], [125, 2, 1, "", "sqrt_ts_threshold_ul"], [125, 2, 1, "", "stat"], [125, 2, 1, "", "stat_null"], [125, 2, 1, "", "stat_scan"], [125, 2, 1, "", "success"], [125, 3, 1, "", "to_hdulist"], [125, 3, 1, "", "to_maps"], [125, 3, 1, "", "to_table"], [125, 2, 1, "", "ts"], [125, 2, 1, "", "ts_scan"], [125, 3, 1, "", "write"]], "gammapy.estimators.FluxPointsEstimator": [[126, 2, 1, "", "config_parameters"], [126, 3, 1, "", "copy"], [126, 3, 1, "", "estimate_best_fit"], [126, 3, 1, "", "estimate_counts"], [126, 3, 1, "", "estimate_errn_errp"], [126, 3, 1, "", "estimate_flux_point"], [126, 3, 1, "", "estimate_npred"], [126, 3, 1, "", "estimate_npred_excess"], [126, 3, 1, "", "estimate_scan"], [126, 3, 1, "", "estimate_ts"], [126, 3, 1, "", "estimate_ul"], [126, 3, 1, "", "get_scale_model"], [126, 2, 1, "", "n_jobs"], [126, 2, 1, "", "parallel_backend"], [126, 3, 1, "", "run"], [126, 2, 1, "", "selection_optional"], [126, 2, 1, "", "tag"]], "gammapy.estimators.FluxProfileEstimator": [[127, 2, 1, "", "config_parameters"], [127, 3, 1, "", "copy"], [127, 3, 1, "", "estimate_best_fit"], [127, 3, 1, "", "estimate_counts"], [127, 3, 1, "", "estimate_errn_errp"], [127, 3, 1, "", "estimate_flux_point"], [127, 3, 1, "", "estimate_npred"], [127, 3, 1, "", "estimate_npred_excess"], [127, 3, 1, "", "estimate_scan"], [127, 3, 1, "", "estimate_ts"], [127, 3, 1, "", "estimate_ul"], [127, 3, 1, "", "get_scale_model"], [127, 2, 1, "", "n_jobs"], [127, 2, 1, "", "parallel_backend"], [127, 2, 1, "", "projected_distance_axis"], [127, 3, 1, "", "run"], [127, 2, 1, "", "selection_optional"], [127, 2, 1, "", "tag"]], "gammapy.estimators.ImageProfile": [[128, 3, 1, "", "normalize"], [128, 3, 1, "", "peek"], [128, 3, 1, "", "plot"], [128, 3, 1, "", "plot_err"], [128, 2, 1, "", "profile"], [128, 2, 1, "", "profile_err"], [128, 3, 1, "", "smooth"], [128, 2, 1, "", "x_max"], [128, 2, 1, "", "x_min"], [128, 2, 1, "", "x_ref"]], "gammapy.estimators.ImageProfileEstimator": [[129, 2, 1, "", "config_parameters"], [129, 3, 1, "", "copy"], [129, 3, 1, "", "run"], [129, 2, 1, "", "selection_optional"], [129, 2, 1, "", "tag"]], "gammapy.estimators.LightCurveEstimator": [[130, 2, 1, "", "config_parameters"], [130, 3, 1, "", "copy"], [130, 3, 1, "", "estimate_best_fit"], [130, 3, 1, "", "estimate_counts"], [130, 3, 1, "", "estimate_errn_errp"], [130, 3, 1, "", "estimate_flux_point"], [130, 3, 1, "", "estimate_npred"], [130, 3, 1, "", "estimate_npred_excess"], [130, 3, 1, "", "estimate_scan"], [130, 3, 1, "", "estimate_time_bin_flux"], [130, 3, 1, "", "estimate_ts"], [130, 3, 1, "", "estimate_ul"], [130, 3, 1, "", "expand_map"], [130, 3, 1, "", "get_scale_model"], [130, 2, 1, "", "n_jobs"], [130, 2, 1, "", "parallel_backend"], [130, 3, 1, "", "run"], [130, 2, 1, "", "selection_optional"], [130, 2, 1, "", "tag"]], "gammapy.estimators.ParameterEstimator": [[131, 2, 1, "", "config_parameters"], [131, 3, 1, "", "copy"], [131, 3, 1, "", "estimate_best_fit"], [131, 3, 1, "", "estimate_counts"], [131, 3, 1, "", "estimate_errn_errp"], [131, 3, 1, "", "estimate_npred"], [131, 3, 1, "", "estimate_scan"], [131, 3, 1, "", "estimate_ts"], [131, 3, 1, "", "estimate_ul"], [131, 3, 1, "", "run"], [131, 2, 1, "", "selection_optional"], [131, 2, 1, "", "tag"]], "gammapy.estimators.SensitivityEstimator": [[132, 2, 1, "", "config_parameters"], [132, 3, 1, "", "copy"], [132, 3, 1, "", "estimate_min_e2dnde"], [132, 3, 1, "", "estimate_min_excess"], [132, 3, 1, "", "run"], [132, 2, 1, "", "selection_optional"], [132, 2, 1, "", "tag"]], "gammapy.estimators.TSMapEstimator": [[133, 2, 1, "", "config_parameters"], [133, 3, 1, "", "copy"], [133, 3, 1, "", "estimate_fit_input_maps"], [133, 3, 1, "", "estimate_flux_default"], [133, 3, 1, "", "estimate_flux_map"], [133, 3, 1, "", "estimate_kernel"], [133, 3, 1, "", "estimate_mask_default"], [133, 3, 1, "", "estimate_pad_width"], [133, 2, 1, "", "n_jobs"], [133, 2, 1, "", "parallel_backend"], [133, 3, 1, "", "run"], [133, 2, 1, "", "selection_all"], [133, 2, 1, "", "selection_optional"], [133, 2, 1, "", "tag"]], "gammapy.estimators.utils": [[134, 4, 1, "", "combine_flux_maps"], [135, 4, 1, "", "combine_significance_maps"], [136, 4, 1, "", "compute_lightcurve_discrete_correlation"], [137, 4, 1, "", "compute_lightcurve_doublingtime"], [138, 4, 1, "", "compute_lightcurve_fpp"], [139, 4, 1, "", "compute_lightcurve_fvar"], [140, 4, 1, "", "estimate_exposure_reco_energy"], [141, 4, 1, "", "find_peaks"], [142, 4, 1, "", "find_peaks_in_flux_map"], [143, 4, 1, "", "get_combined_flux_maps"], [144, 4, 1, "", "get_combined_significance_maps"], [145, 4, 1, "", "get_rebinned_axis"], [146, 4, 1, "", "resample_energy_edges"]], "gammapy.irf": [[147, 1, 1, "", "Background2D"], [148, 1, 1, "", "Background3D"], [149, 1, 1, "", "BackgroundIRF"], [150, 1, 1, "", "EDispKernel"], [151, 1, 1, "", "EDispKernelMap"], [152, 1, 1, "", "EDispMap"], [153, 1, 1, "", "EffectiveAreaTable2D"], [154, 1, 1, "", "EnergyDependentMultiGaussPSF"], [155, 1, 1, "", "EnergyDispersion2D"], [156, 1, 1, "", "FoVAlignment"], [157, 1, 1, "", "IRF"], [158, 1, 1, "", "IRFMap"], [159, 5, 1, "", "IRF_REGISTRY"], [160, 1, 1, "", "PSF3D"], [161, 1, 1, "", "PSFKernel"], [162, 1, 1, "", "PSFKing"], [163, 1, 1, "", "PSFMap"], [164, 1, 1, "", "ParametricPSF"], [165, 1, 1, "", "RadMax2D"], [166, 1, 1, "", "RecoPSFMap"], [167, 4, 1, "", "load_irf_dict_from_file"]], "gammapy.irf.Background2D": [[147, 2, 1, "", "axes"], [147, 3, 1, "", "cumsum"], [147, 2, 1, "", "data"], [147, 2, 1, "", "default_interp_kwargs"], [147, 2, 1, "", "default_unit"], [147, 3, 1, "", "evaluate"], [147, 2, 1, "", "fov_alignment"], [147, 3, 1, "", "from_hdulist"], [147, 3, 1, "", "from_table"], [147, 2, 1, "", "has_offset_axis"], [147, 3, 1, "", "integral"], [147, 3, 1, "", "integrate_log_log"], [147, 3, 1, "", "interp_missing_data"], [147, 3, 1, "", "is_allclose"], [147, 2, 1, "", "is_pointlike"], [147, 3, 1, "", "normalize"], [147, 3, 1, "", "pad"], [147, 3, 1, "", "peek"], [147, 3, 1, "", "plot"], [147, 3, 1, "", "plot_at_energy"], [147, 3, 1, "", "plot_energy_dependence"], [147, 3, 1, "", "plot_offset_dependence"], [147, 3, 1, "", "plot_spectrum"], [147, 2, 1, "", "quantity"], [147, 3, 1, "", "read"], [147, 2, 1, "", "required_axes"], [147, 3, 1, "", "slice_by_idx"], [147, 2, 1, "", "tag"], [147, 3, 1, "", "to_3d"], [147, 3, 1, "", "to_hdulist"], [147, 3, 1, "", "to_table"], [147, 3, 1, "", "to_table_hdu"], [147, 3, 1, "", "to_unit"], [147, 2, 1, "", "unit"], [147, 3, 1, "", "write"]], "gammapy.irf.Background3D": [[148, 2, 1, "", "axes"], [148, 3, 1, "", "cumsum"], [148, 2, 1, "", "data"], [148, 2, 1, "", "default_interp_kwargs"], [148, 2, 1, "", "default_unit"], [148, 3, 1, "", "evaluate"], [148, 2, 1, "", "fov_alignment"], [148, 3, 1, "", "from_hdulist"], [148, 3, 1, "", "from_table"], [148, 2, 1, "", "has_offset_axis"], [148, 3, 1, "", "integral"], [148, 3, 1, "", "integrate_log_log"], [148, 3, 1, "", "interp_missing_data"], [148, 3, 1, "", "is_allclose"], [148, 2, 1, "", "is_pointlike"], [148, 3, 1, "", "normalize"], [148, 3, 1, "", "pad"], [148, 3, 1, "", "peek"], [148, 3, 1, "", "plot_at_energy"], [148, 2, 1, "", "quantity"], [148, 3, 1, "", "read"], [148, 2, 1, "", "required_axes"], [148, 3, 1, "", "slice_by_idx"], [148, 2, 1, "", "tag"], [148, 3, 1, "", "to_2d"], [148, 3, 1, "", "to_hdulist"], [148, 3, 1, "", "to_table"], [148, 3, 1, "", "to_table_hdu"], [148, 3, 1, "", "to_unit"], [148, 2, 1, "", "unit"], [148, 3, 1, "", "write"]], "gammapy.irf.BackgroundIRF": [[149, 2, 1, "", "axes"], [149, 3, 1, "", "cumsum"], [149, 2, 1, "", "data"], [149, 2, 1, "", "default_interp_kwargs"], [149, 3, 1, "", "evaluate"], [149, 2, 1, "", "fov_alignment"], [149, 3, 1, "", "from_hdulist"], [149, 3, 1, "", "from_table"], [149, 2, 1, "", "has_offset_axis"], [149, 3, 1, "", "integral"], [149, 3, 1, "", "integrate_log_log"], [149, 3, 1, "", "interp_missing_data"], [149, 3, 1, "", "is_allclose"], [149, 2, 1, "", "is_pointlike"], [149, 3, 1, "", "normalize"], [149, 3, 1, "", "pad"], [149, 2, 1, "", "quantity"], [149, 3, 1, "", "read"], [149, 2, 1, "", "required_axes"], [149, 3, 1, "", "slice_by_idx"], [149, 2, 1, "", "tag"], [149, 3, 1, "", "to_hdulist"], [149, 3, 1, "", "to_table"], [149, 3, 1, "", "to_table_hdu"], [149, 3, 1, "", "to_unit"], [149, 2, 1, "", "unit"], [149, 3, 1, "", "write"]], "gammapy.irf.EDispKernel": [[150, 2, 1, "", "axes"], [150, 3, 1, "", "cumsum"], [150, 2, 1, "", "data"], [150, 2, 1, "", "default_interp_kwargs"], [150, 3, 1, "", "evaluate"], [150, 2, 1, "", "fov_alignment"], [150, 3, 1, "", "from_diagonal_response"], [150, 3, 1, "", "from_gauss"], [150, 3, 1, "", "from_hdulist"], [150, 3, 1, "", "from_table"], [150, 3, 1, "", "get_bias"], [150, 3, 1, "", "get_bias_energy"], [150, 3, 1, "", "get_mean"], [150, 3, 1, "", "get_resolution"], [150, 2, 1, "", "has_offset_axis"], [150, 3, 1, "", "integral"], [150, 3, 1, "", "integrate_log_log"], [150, 3, 1, "", "interp_missing_data"], [150, 3, 1, "", "is_allclose"], [150, 2, 1, "", "is_pointlike"], [150, 3, 1, "", "normalize"], [150, 3, 1, "", "pad"], [150, 3, 1, "", "pdf_in_safe_range"], [150, 2, 1, "", "pdf_matrix"], [150, 3, 1, "", "peek"], [150, 3, 1, "", "plot_bias"], [150, 3, 1, "", "plot_matrix"], [150, 2, 1, "", "quantity"], [150, 3, 1, "", "read"], [150, 2, 1, "", "required_axes"], [150, 3, 1, "", "slice_by_idx"], [150, 2, 1, "", "tag"], [150, 3, 1, "", "to_hdulist"], [150, 3, 1, "", "to_image"], [150, 3, 1, "", "to_table"], [150, 3, 1, "", "to_table_hdu"], [150, 3, 1, "", "to_unit"], [150, 2, 1, "", "unit"], [150, 3, 1, "", "write"]], "gammapy.irf.EDispKernelMap": [[151, 3, 1, "", "copy"], [151, 3, 1, "", "cutout"], [151, 3, 1, "", "downsample"], [151, 2, 1, "", "edisp_map"], [151, 3, 1, "", "from_diagonal_response"], [151, 3, 1, "", "from_edisp_kernel"], [151, 3, 1, "", "from_gauss"], [151, 3, 1, "", "from_geom"], [151, 3, 1, "", "from_hdulist"], [151, 3, 1, "", "get_edisp_kernel"], [151, 2, 1, "", "has_single_spatial_bin"], [151, 2, 1, "", "mask_safe_image"], [151, 3, 1, "", "peek"], [151, 3, 1, "", "read"], [151, 2, 1, "", "required_axes"], [151, 3, 1, "", "resample_energy_axis"], [151, 3, 1, "", "slice_by_idx"], [151, 3, 1, "", "stack"], [151, 2, 1, "", "tag"], [151, 3, 1, "", "to_hdulist"], [151, 3, 1, "", "to_image"], [151, 3, 1, "", "to_region_nd_map"], [151, 3, 1, "", "write"]], "gammapy.irf.EDispMap": [[152, 3, 1, "", "copy"], [152, 3, 1, "", "cutout"], [152, 3, 1, "", "downsample"], [152, 2, 1, "", "edisp_map"], [152, 3, 1, "", "from_diagonal_response"], [152, 3, 1, "", "from_geom"], [152, 3, 1, "", "from_hdulist"], [152, 3, 1, "", "get_edisp_kernel"], [152, 2, 1, "", "has_single_spatial_bin"], [152, 2, 1, "", "mask_safe_image"], [152, 3, 1, "", "normalize"], [152, 3, 1, "", "peek"], [152, 3, 1, "", "read"], [152, 2, 1, "", "required_axes"], [152, 3, 1, "", "sample_coord"], [152, 3, 1, "", "slice_by_idx"], [152, 3, 1, "", "stack"], [152, 2, 1, "", "tag"], [152, 3, 1, "", "to_edisp_kernel_map"], [152, 3, 1, "", "to_hdulist"], [152, 3, 1, "", "to_region_nd_map"], [152, 3, 1, "", "write"]], "gammapy.irf.EffectiveAreaTable2D": [[153, 2, 1, "", "axes"], [153, 3, 1, "", "cumsum"], [153, 2, 1, "", "data"], [153, 2, 1, "", "default_interp_kwargs"], [153, 2, 1, "", "default_unit"], [153, 3, 1, "", "evaluate"], [153, 2, 1, "", "fov_alignment"], [153, 3, 1, "", "from_hdulist"], [153, 3, 1, "", "from_parametrization"], [153, 3, 1, "", "from_table"], [153, 2, 1, "", "has_offset_axis"], [153, 3, 1, "", "integral"], [153, 3, 1, "", "integrate_log_log"], [153, 3, 1, "", "interp_missing_data"], [153, 3, 1, "", "is_allclose"], [153, 2, 1, "", "is_pointlike"], [153, 3, 1, "", "normalize"], [153, 3, 1, "", "pad"], [153, 3, 1, "", "peek"], [153, 3, 1, "", "plot"], [153, 3, 1, "", "plot_energy_dependence"], [153, 3, 1, "", "plot_offset_dependence"], [153, 2, 1, "", "quantity"], [153, 3, 1, "", "read"], [153, 2, 1, "", "required_axes"], [153, 3, 1, "", "slice_by_idx"], [153, 2, 1, "", "tag"], [153, 3, 1, "", "to_hdulist"], [153, 3, 1, "", "to_table"], [153, 3, 1, "", "to_table_hdu"], [153, 3, 1, "", "to_unit"], [153, 2, 1, "", "unit"], [153, 3, 1, "", "write"]], "gammapy.irf.EnergyDependentMultiGaussPSF": [[154, 2, 1, "", "axes"], [154, 3, 1, "", "containment"], [154, 3, 1, "", "containment_radius"], [154, 3, 1, "", "cumsum"], [154, 2, 1, "", "data"], [154, 2, 1, "", "default_interp_kwargs"], [154, 3, 1, "", "evaluate"], [154, 3, 1, "", "evaluate_containment"], [154, 3, 1, "", "evaluate_direct"], [154, 3, 1, "", "evaluate_parameters"], [154, 2, 1, "", "fov_alignment"], [154, 3, 1, "", "from_hdulist"], [154, 3, 1, "", "from_table"], [154, 2, 1, "", "has_offset_axis"], [154, 3, 1, "", "info"], [154, 3, 1, "", "integral"], [154, 3, 1, "", "integrate_log_log"], [154, 3, 1, "", "interp_missing_data"], [154, 3, 1, "", "is_allclose"], [154, 2, 1, "", "is_pointlike"], [154, 3, 1, "", "normalize"], [154, 3, 1, "", "pad"], [154, 3, 1, "", "peek"], [154, 3, 1, "", "plot_containment_radius"], [154, 3, 1, "", "plot_containment_radius_vs_energy"], [154, 3, 1, "", "plot_psf_vs_rad"], [154, 2, 1, "", "quantity"], [154, 3, 1, "", "read"], [154, 2, 1, "", "required_axes"], [154, 2, 1, "", "required_parameters"], [154, 3, 1, "", "slice_by_idx"], [154, 2, 1, "", "tag"], [154, 3, 1, "", "to_hdulist"], [154, 3, 1, "", "to_psf3d"], [154, 3, 1, "", "to_table"], [154, 3, 1, "", "to_table_hdu"], [154, 3, 1, "", "to_unit"], [154, 2, 1, "", "unit"], [154, 3, 1, "", "write"]], "gammapy.irf.EnergyDispersion2D": [[155, 2, 1, "", "axes"], [155, 3, 1, "", "cumsum"], [155, 2, 1, "", "data"], [155, 2, 1, "", "default_interp_kwargs"], [155, 2, 1, "", "default_unit"], [155, 3, 1, "", "evaluate"], [155, 2, 1, "", "fov_alignment"], [155, 3, 1, "", "from_gauss"], [155, 3, 1, "", "from_hdulist"], [155, 3, 1, "", "from_table"], [155, 2, 1, "", "has_offset_axis"], [155, 3, 1, "", "integral"], [155, 3, 1, "", "integrate_log_log"], [155, 3, 1, "", "interp_missing_data"], [155, 3, 1, "", "is_allclose"], [155, 2, 1, "", "is_pointlike"], [155, 3, 1, "", "normalize"], [155, 3, 1, "", "pad"], [155, 3, 1, "", "peek"], [155, 3, 1, "", "plot_bias"], [155, 3, 1, "", "plot_migration"], [155, 2, 1, "", "quantity"], [155, 3, 1, "", "read"], [155, 2, 1, "", "required_axes"], [155, 3, 1, "", "slice_by_idx"], [155, 2, 1, "", "tag"], [155, 3, 1, "", "to_edisp_kernel"], [155, 3, 1, "", "to_hdulist"], [155, 3, 1, "", "to_table"], [155, 3, 1, "", "to_table_hdu"], [155, 3, 1, "", "to_unit"], [155, 2, 1, "", "unit"], [155, 3, 1, "", "write"]], "gammapy.irf.FoVAlignment": [[156, 2, 1, "", "ALTAZ"], [156, 2, 1, "", "RADEC"], [156, 2, 1, "", "REVERSE_LON_RADEC"]], "gammapy.irf.IRF": [[157, 2, 1, "", "axes"], [157, 3, 1, "", "cumsum"], [157, 2, 1, "", "data"], [157, 2, 1, "", "default_interp_kwargs"], [157, 3, 1, "", "evaluate"], [157, 2, 1, "", "fov_alignment"], [157, 3, 1, "", "from_hdulist"], [157, 3, 1, "", "from_table"], [157, 2, 1, "", "has_offset_axis"], [157, 3, 1, "", "integral"], [157, 3, 1, "", "integrate_log_log"], [157, 3, 1, "", "interp_missing_data"], [157, 3, 1, "", "is_allclose"], [157, 2, 1, "", "is_pointlike"], [157, 3, 1, "", "normalize"], [157, 3, 1, "", "pad"], [157, 2, 1, "", "quantity"], [157, 3, 1, "", "read"], [157, 2, 1, "", "required_axes"], [157, 3, 1, "", "slice_by_idx"], [157, 2, 1, "", "tag"], [157, 3, 1, "", "to_hdulist"], [157, 3, 1, "", "to_table"], [157, 3, 1, "", "to_table_hdu"], [157, 3, 1, "", "to_unit"], [157, 2, 1, "", "unit"], [157, 3, 1, "", "write"]], "gammapy.irf.IRFMap": [[158, 3, 1, "", "copy"], [158, 3, 1, "", "cutout"], [158, 3, 1, "", "downsample"], [158, 3, 1, "", "from_hdulist"], [158, 2, 1, "", "has_single_spatial_bin"], [158, 2, 1, "", "mask_safe_image"], [158, 3, 1, "", "read"], [158, 2, 1, "", "required_axes"], [158, 3, 1, "", "slice_by_idx"], [158, 3, 1, "", "stack"], [158, 2, 1, "", "tag"], [158, 3, 1, "", "to_hdulist"], [158, 3, 1, "", "to_region_nd_map"], [158, 3, 1, "", "write"]], "gammapy.irf.PSF3D": [[160, 2, 1, "", "axes"], [160, 3, 1, "", "containment"], [160, 3, 1, "", "containment_radius"], [160, 3, 1, "", "cumsum"], [160, 2, 1, "", "data"], [160, 2, 1, "", "default_interp_kwargs"], [160, 2, 1, "", "default_unit"], [160, 3, 1, "", "evaluate"], [160, 2, 1, "", "fov_alignment"], [160, 3, 1, "", "from_hdulist"], [160, 3, 1, "", "from_table"], [160, 2, 1, "", "has_offset_axis"], [160, 3, 1, "", "info"], [160, 3, 1, "", "integral"], [160, 3, 1, "", "integrate_log_log"], [160, 3, 1, "", "interp_missing_data"], [160, 3, 1, "", "is_allclose"], [160, 2, 1, "", "is_pointlike"], [160, 3, 1, "", "normalize"], [160, 3, 1, "", "pad"], [160, 3, 1, "", "peek"], [160, 3, 1, "", "plot_containment_radius"], [160, 3, 1, "", "plot_containment_radius_vs_energy"], [160, 3, 1, "", "plot_psf_vs_rad"], [160, 2, 1, "", "quantity"], [160, 3, 1, "", "read"], [160, 2, 1, "", "required_axes"], [160, 3, 1, "", "slice_by_idx"], [160, 2, 1, "", "tag"], [160, 3, 1, "", "to_hdulist"], [160, 3, 1, "", "to_table"], [160, 3, 1, "", "to_table_hdu"], [160, 3, 1, "", "to_unit"], [160, 2, 1, "", "unit"], [160, 3, 1, "", "write"]], "gammapy.irf.PSFKernel": [[161, 2, 1, "", "data"], [161, 3, 1, "", "from_gauss"], [161, 3, 1, "", "from_spatial_model"], [161, 3, 1, "", "normalize"], [161, 3, 1, "", "peek"], [161, 3, 1, "", "plot_kernel"], [161, 2, 1, "", "psf_kernel_map"], [161, 3, 1, "", "read"], [161, 3, 1, "", "slice_by_idx"], [161, 3, 1, "", "to_image"], [161, 3, 1, "", "write"]], "gammapy.irf.PSFKing": [[162, 2, 1, "", "axes"], [162, 3, 1, "", "containment"], [162, 3, 1, "", "containment_radius"], [162, 3, 1, "", "cumsum"], [162, 2, 1, "", "data"], [162, 2, 1, "", "default_interp_kwargs"], [162, 3, 1, "", "evaluate"], [162, 3, 1, "", "evaluate_containment"], [162, 3, 1, "", "evaluate_direct"], [162, 3, 1, "", "evaluate_parameters"], [162, 2, 1, "", "fov_alignment"], [162, 3, 1, "", "from_hdulist"], [162, 3, 1, "", "from_table"], [162, 2, 1, "", "has_offset_axis"], [162, 3, 1, "", "info"], [162, 3, 1, "", "integral"], [162, 3, 1, "", "integrate_log_log"], [162, 3, 1, "", "interp_missing_data"], [162, 3, 1, "", "is_allclose"], [162, 2, 1, "", "is_pointlike"], [162, 3, 1, "", "normalize"], [162, 3, 1, "", "pad"], [162, 3, 1, "", "peek"], [162, 3, 1, "", "plot_containment_radius"], [162, 3, 1, "", "plot_containment_radius_vs_energy"], [162, 3, 1, "", "plot_psf_vs_rad"], [162, 2, 1, "", "quantity"], [162, 3, 1, "", "read"], [162, 2, 1, "", "required_axes"], [162, 2, 1, "", "required_parameters"], [162, 3, 1, "", "slice_by_idx"], [162, 2, 1, "", "tag"], [162, 3, 1, "", "to_hdulist"], [162, 3, 1, "", "to_psf3d"], [162, 3, 1, "", "to_table"], [162, 3, 1, "", "to_table_hdu"], [162, 3, 1, "", "to_unit"], [162, 2, 1, "", "unit"], [162, 3, 1, "", "write"]], "gammapy.irf.PSFMap": [[163, 3, 1, "", "containment"], [163, 3, 1, "", "containment_radius"], [163, 3, 1, "", "containment_radius_map"], [163, 3, 1, "", "copy"], [163, 3, 1, "", "cutout"], [163, 3, 1, "", "downsample"], [163, 2, 1, "", "energy_name"], [163, 3, 1, "", "from_gauss"], [163, 3, 1, "", "from_geom"], [163, 3, 1, "", "from_hdulist"], [163, 3, 1, "", "get_psf_kernel"], [163, 2, 1, "", "has_single_spatial_bin"], [163, 2, 1, "", "mask_safe_image"], [163, 3, 1, "", "normalize"], [163, 3, 1, "", "peek"], [163, 3, 1, "", "plot_containment_radius_vs_energy"], [163, 3, 1, "", "plot_psf_vs_rad"], [163, 2, 1, "", "psf_map"], [163, 3, 1, "", "read"], [163, 2, 1, "", "required_axes"], [163, 3, 1, "", "sample_coord"], [163, 3, 1, "", "slice_by_idx"], [163, 3, 1, "", "stack"], [163, 2, 1, "", "tag"], [163, 3, 1, "", "to_hdulist"], [163, 3, 1, "", "to_image"], [163, 3, 1, "", "to_region_nd_map"], [163, 3, 1, "", "write"]], "gammapy.irf.ParametricPSF": [[164, 2, 1, "", "axes"], [164, 3, 1, "", "containment"], [164, 3, 1, "", "containment_radius"], [164, 3, 1, "", "cumsum"], [164, 2, 1, "", "data"], [164, 2, 1, "", "default_interp_kwargs"], [164, 3, 1, "", "evaluate"], [164, 3, 1, "", "evaluate_containment"], [164, 3, 1, "", "evaluate_direct"], [164, 3, 1, "", "evaluate_parameters"], [164, 2, 1, "", "fov_alignment"], [164, 3, 1, "", "from_hdulist"], [164, 3, 1, "", "from_table"], [164, 2, 1, "", "has_offset_axis"], [164, 3, 1, "", "info"], [164, 3, 1, "", "integral"], [164, 3, 1, "", "integrate_log_log"], [164, 3, 1, "", "interp_missing_data"], [164, 3, 1, "", "is_allclose"], [164, 2, 1, "", "is_pointlike"], [164, 3, 1, "", "normalize"], [164, 3, 1, "", "pad"], [164, 3, 1, "", "peek"], [164, 3, 1, "", "plot_containment_radius"], [164, 3, 1, "", "plot_containment_radius_vs_energy"], [164, 3, 1, "", "plot_psf_vs_rad"], [164, 2, 1, "", "quantity"], [164, 3, 1, "", "read"], [164, 2, 1, "", "required_axes"], [164, 2, 1, "", "required_parameters"], [164, 3, 1, "", "slice_by_idx"], [164, 2, 1, "", "tag"], [164, 3, 1, "", "to_hdulist"], [164, 3, 1, "", "to_psf3d"], [164, 3, 1, "", "to_table"], [164, 3, 1, "", "to_table_hdu"], [164, 3, 1, "", "to_unit"], [164, 2, 1, "", "unit"], [164, 3, 1, "", "write"]], "gammapy.irf.RadMax2D": [[165, 2, 1, "", "axes"], [165, 3, 1, "", "cumsum"], [165, 2, 1, "", "data"], [165, 2, 1, "", "default_interp_kwargs"], [165, 2, 1, "", "default_unit"], [165, 3, 1, "", "evaluate"], [165, 2, 1, "", "fov_alignment"], [165, 3, 1, "", "from_hdulist"], [165, 3, 1, "", "from_irf"], [165, 3, 1, "", "from_table"], [165, 2, 1, "", "has_offset_axis"], [165, 3, 1, "", "integral"], [165, 3, 1, "", "integrate_log_log"], [165, 3, 1, "", "interp_missing_data"], [165, 3, 1, "", "is_allclose"], [165, 2, 1, "", "is_fixed_rad_max"], [165, 2, 1, "", "is_pointlike"], [165, 3, 1, "", "normalize"], [165, 3, 1, "", "pad"], [165, 3, 1, "", "plot_rad_max_vs_energy"], [165, 2, 1, "", "quantity"], [165, 3, 1, "", "read"], [165, 2, 1, "", "required_axes"], [165, 3, 1, "", "slice_by_idx"], [165, 2, 1, "", "tag"], [165, 3, 1, "", "to_hdulist"], [165, 3, 1, "", "to_table"], [165, 3, 1, "", "to_table_hdu"], [165, 3, 1, "", "to_unit"], [165, 2, 1, "", "unit"], [165, 3, 1, "", "write"]], "gammapy.irf.RecoPSFMap": [[166, 3, 1, "", "containment"], [166, 3, 1, "", "containment_radius"], [166, 3, 1, "", "containment_radius_map"], [166, 3, 1, "", "copy"], [166, 3, 1, "", "cutout"], [166, 3, 1, "", "downsample"], [166, 2, 1, "", "energy_name"], [166, 3, 1, "", "from_gauss"], [166, 3, 1, "", "from_geom"], [166, 3, 1, "", "from_hdulist"], [166, 3, 1, "", "get_psf_kernel"], [166, 2, 1, "", "has_single_spatial_bin"], [166, 2, 1, "", "mask_safe_image"], [166, 3, 1, "", "normalize"], [166, 3, 1, "", "peek"], [166, 3, 1, "", "plot_containment_radius_vs_energy"], [166, 3, 1, "", "plot_psf_vs_rad"], [166, 2, 1, "", "psf_map"], [166, 3, 1, "", "read"], [166, 2, 1, "", "required_axes"], [166, 3, 1, "", "sample_coord"], [166, 3, 1, "", "slice_by_idx"], [166, 3, 1, "", "stack"], [166, 2, 1, "", "tag"], [166, 3, 1, "", "to_hdulist"], [166, 3, 1, "", "to_image"], [166, 3, 1, "", "to_region_nd_map"], [166, 3, 1, "", "write"]], "gammapy.makers": [[168, 1, 1, "", "AdaptiveRingBackgroundMaker"], [169, 1, 1, "", "DatasetsMaker"], [170, 1, 1, "", "FoVBackgroundMaker"], [171, 5, 1, "", "MAKER_REGISTRY"], [172, 1, 1, "", "Maker"], [173, 1, 1, "", "MapDatasetMaker"], [174, 1, 1, "", "PhaseBackgroundMaker"], [175, 1, 1, "", "ReflectedRegionsBackgroundMaker"], [176, 1, 1, "", "ReflectedRegionsFinder"], [177, 1, 1, "", "RegionsFinder"], [178, 1, 1, "", "RingBackgroundMaker"], [179, 1, 1, "", "SafeMaskMaker"], [180, 1, 1, "", "SpectrumDatasetMaker"], [181, 1, 1, "", "WobbleRegionsFinder"], [8, 0, 0, "-", "utils"]], "gammapy.makers.AdaptiveRingBackgroundMaker": [[168, 3, 1, "", "kernels"], [168, 3, 1, "", "make_cubes"], [168, 3, 1, "", "run"], [168, 2, 1, "", "tag"]], "gammapy.makers.DatasetsMaker": [[169, 3, 1, "", "callback"], [169, 3, 1, "", "error_callback"], [169, 3, 1, "", "make_dataset"], [169, 2, 1, "", "n_jobs"], [169, 2, 1, "", "offset_max"], [169, 2, 1, "", "parallel_backend"], [169, 3, 1, "", "run"], [169, 2, 1, "", "safe_mask_maker"], [169, 2, 1, "", "tag"]], "gammapy.makers.FoVBackgroundMaker": [[170, 2, 1, "", "available_methods"], [170, 3, 1, "", "make_background_fit"], [170, 3, 1, "", "make_background_scale"], [170, 3, 1, "", "make_default_fov_background_model"], [170, 3, 1, "", "make_exclusion_mask"], [170, 2, 1, "", "method"], [170, 3, 1, "", "run"], [170, 2, 1, "", "tag"]], "gammapy.makers.Maker": [[172, 3, 1, "", "run"], [172, 2, 1, "", "tag"]], "gammapy.makers.MapDatasetMaker": [[173, 2, 1, "", "available_selection"], [173, 3, 1, "", "make_background"], [173, 3, 1, "", "make_counts"], [173, 3, 1, "", "make_edisp"], [173, 3, 1, "", "make_edisp_kernel"], [173, 3, 1, "", "make_exposure"], [173, 3, 1, "", "make_exposure_irf"], [173, 3, 1, "", "make_meta_table"], [173, 3, 1, "", "make_psf"], [173, 3, 1, "", "run"], [173, 2, 1, "", "tag"]], "gammapy.makers.PhaseBackgroundMaker": [[174, 3, 1, "", "make_counts"], [174, 3, 1, "", "make_counts_off"], [174, 3, 1, "", "run"], [174, 2, 1, "", "tag"]], "gammapy.makers.ReflectedRegionsBackgroundMaker": [[175, 3, 1, "", "make_counts_off"], [175, 3, 1, "", "run"], [175, 2, 1, "", "tag"]], "gammapy.makers.ReflectedRegionsFinder": [[176, 3, 1, "", "run"]], "gammapy.makers.RegionsFinder": [[177, 3, 1, "", "run"]], "gammapy.makers.RingBackgroundMaker": [[178, 3, 1, "", "kernel"], [178, 3, 1, "", "make_maps_off"], [178, 3, 1, "", "run"], [178, 2, 1, "", "tag"]], "gammapy.makers.SafeMaskMaker": [[179, 2, 1, "", "available_methods"], [179, 3, 1, "", "make_mask_bkg_invalid"], [179, 3, 1, "", "make_mask_energy_aeff_default"], [179, 3, 1, "", "make_mask_energy_aeff_max"], [179, 3, 1, "", "make_mask_energy_bkg_peak"], [179, 3, 1, "", "make_mask_energy_edisp_bias"], [179, 3, 1, "", "make_mask_offset_max"], [179, 3, 1, "", "run"], [179, 2, 1, "", "tag"]], "gammapy.makers.SpectrumDatasetMaker": [[180, 2, 1, "", "available_selection"], [180, 3, 1, "", "make_background"], [180, 3, 1, "", "make_counts"], [180, 3, 1, "", "make_edisp"], [180, 3, 1, "", "make_edisp_kernel"], [180, 3, 1, "", "make_exposure"], [180, 3, 1, "", "make_exposure_irf"], [180, 3, 1, "", "make_meta_table"], [180, 3, 1, "", "make_psf"], [180, 3, 1, "", "run"], [180, 2, 1, "", "tag"]], "gammapy.makers.WobbleRegionsFinder": [[181, 3, 1, "", "run"]], "gammapy.makers.utils": [[182, 4, 1, "", "make_counts_rad_max"], [183, 4, 1, "", "make_edisp_kernel_map"], [184, 4, 1, "", "make_edisp_map"], [185, 4, 1, "", "make_effective_livetime_map"], [186, 4, 1, "", "make_map_background_irf"], [187, 4, 1, "", "make_map_exposure_true_energy"], [188, 4, 1, "", "make_observation_time_map"], [189, 4, 1, "", "make_psf_map"], [190, 4, 1, "", "make_theta_squared_table"]], "gammapy.maps": [[191, 1, 1, "", "Geom"], [192, 1, 1, "", "HpxGeom"], [193, 1, 1, "", "HpxMap"], [194, 1, 1, "", "HpxNDMap"], [195, 1, 1, "", "LabelMapAxis"], [196, 1, 1, "", "Map"], [197, 1, 1, "", "MapAxes"], [198, 1, 1, "", "MapAxis"], [199, 1, 1, "", "MapCoord"], [200, 1, 1, "", "Maps"], [201, 1, 1, "", "RegionGeom"], [202, 1, 1, "", "RegionNDMap"], [203, 1, 1, "", "TimeMapAxis"], [204, 1, 1, "", "WcsGeom"], [205, 1, 1, "", "WcsMap"], [206, 1, 1, "", "WcsNDMap"], [207, 4, 1, "", "containment_radius"], [208, 4, 1, "", "containment_region"]], "gammapy.maps.Geom": [[191, 2, 1, "", "as_energy_true"], [191, 2, 1, "", "center_coord"], [191, 2, 1, "", "center_pix"], [191, 2, 1, "", "center_skydir"], [191, 3, 1, "", "contains"], [191, 3, 1, "", "contains_pix"], [191, 3, 1, "", "coord_to_idx"], [191, 3, 1, "", "coord_to_pix"], [191, 3, 1, "", "copy"], [191, 3, 1, "", "crop"], [191, 3, 1, "", "data_nbytes"], [191, 2, 1, "", "data_shape"], [191, 3, 1, "", "downsample"], [191, 3, 1, "", "drop"], [191, 3, 1, "", "energy_mask"], [191, 3, 1, "", "from_hdulist"], [191, 3, 1, "", "get_coord"], [191, 3, 1, "", "get_idx"], [191, 2, 1, "", "has_energy_axis"], [191, 2, 1, "", "is_allsky"], [191, 2, 1, "", "is_flat"], [191, 2, 1, "", "is_image"], [191, 3, 1, "", "pad"], [191, 3, 1, "", "pix_to_coord"], [191, 3, 1, "", "pix_to_idx"], [191, 3, 1, "", "rename_axes"], [191, 3, 1, "", "replace_axis"], [191, 3, 1, "", "resample_axis"], [191, 3, 1, "", "slice_by_idx"], [191, 3, 1, "", "solid_angle"], [191, 3, 1, "", "squash"], [191, 3, 1, "", "to_bands_hdu"], [191, 3, 1, "", "to_cube"], [191, 3, 1, "", "to_image"], [191, 3, 1, "", "upsample"]], "gammapy.maps.HpxGeom": [[192, 2, 1, "", "as_energy_true"], [192, 2, 1, "", "axes"], [192, 2, 1, "", "axes_names"], [192, 2, 1, "", "center_coord"], [192, 2, 1, "", "center_pix"], [192, 2, 1, "", "center_skydir"], [192, 3, 1, "", "contains"], [192, 3, 1, "", "contains_pix"], [192, 3, 1, "", "coord_to_idx"], [192, 3, 1, "", "coord_to_pix"], [192, 3, 1, "", "copy"], [192, 3, 1, "", "create"], [192, 3, 1, "", "crop"], [192, 3, 1, "", "cutout"], [192, 3, 1, "", "data_nbytes"], [192, 2, 1, "", "data_shape"], [192, 2, 1, "", "data_shape_axes"], [192, 3, 1, "", "downsample"], [192, 3, 1, "", "drop"], [192, 3, 1, "", "energy_mask"], [192, 2, 1, "", "frame"], [192, 3, 1, "", "from_hdu"], [192, 3, 1, "", "from_hdulist"], [192, 3, 1, "", "from_header"], [192, 3, 1, "", "get_coord"], [192, 3, 1, "", "get_idx"], [192, 3, 1, "", "get_index_list"], [192, 3, 1, "", "global_to_local"], [192, 2, 1, "", "has_energy_axis"], [192, 3, 1, "", "interp_weights"], [192, 2, 1, "", "ipix"], [192, 3, 1, "", "is_aligned"], [192, 3, 1, "", "is_allclose"], [192, 2, 1, "", "is_allsky"], [192, 2, 1, "", "is_flat"], [192, 2, 1, "", "is_hpx"], [192, 2, 1, "", "is_image"], [192, 2, 1, "", "is_region"], [192, 2, 1, "", "is_regular"], [192, 3, 1, "", "local_to_global"], [192, 2, 1, "", "ndim"], [192, 2, 1, "", "nest"], [192, 2, 1, "", "npix"], [192, 2, 1, "", "npix_max"], [192, 2, 1, "", "nside"], [192, 2, 1, "", "order"], [192, 2, 1, "", "ordering"], [192, 3, 1, "", "pad"], [192, 3, 1, "", "pix_to_coord"], [192, 3, 1, "", "pix_to_idx"], [192, 2, 1, "", "pixel_scales"], [192, 2, 1, "", "projection"], [192, 2, 1, "", "region"], [192, 3, 1, "", "region_mask"], [192, 3, 1, "", "rename_axes"], [192, 3, 1, "", "replace_axis"], [192, 3, 1, "", "resample_axis"], [192, 3, 1, "", "separation"], [192, 2, 1, "", "shape_axes"], [192, 3, 1, "", "slice_by_idx"], [192, 3, 1, "", "solid_angle"], [192, 3, 1, "", "squash"], [192, 3, 1, "", "to_bands_hdu"], [192, 3, 1, "", "to_binsz"], [192, 3, 1, "", "to_cube"], [192, 3, 1, "", "to_header"], [192, 3, 1, "", "to_image"], [192, 3, 1, "", "to_nside"], [192, 3, 1, "", "to_swapped"], [192, 3, 1, "", "to_wcs_geom"], [192, 3, 1, "", "to_wcs_tiles"], [192, 3, 1, "", "upsample"], [192, 2, 1, "", "width"]], "gammapy.maps.HpxMap": [[193, 3, 1, "", "coadd"], [193, 3, 1, "", "copy"], [193, 3, 1, "", "create"], [193, 3, 1, "", "crop"], [193, 3, 1, "", "cumsum"], [193, 2, 1, "", "data"], [193, 3, 1, "", "dot"], [193, 3, 1, "", "downsample"], [193, 3, 1, "", "fill_by_coord"], [193, 3, 1, "", "fill_by_idx"], [193, 3, 1, "", "fill_by_pix"], [193, 3, 1, "", "fill_events"], [193, 3, 1, "", "from_geom"], [193, 3, 1, "", "from_hdulist"], [193, 3, 1, "", "from_stack"], [193, 2, 1, "", "geom"], [193, 3, 1, "", "get_by_coord"], [193, 3, 1, "", "get_by_idx"], [193, 3, 1, "", "get_by_pix"], [193, 3, 1, "", "get_image_by_coord"], [193, 3, 1, "", "get_image_by_idx"], [193, 3, 1, "", "get_image_by_pix"], [193, 3, 1, "", "get_spectrum"], [193, 3, 1, "", "integral"], [193, 3, 1, "", "interp_by_coord"], [193, 3, 1, "", "interp_by_pix"], [193, 3, 1, "", "interp_to_geom"], [193, 3, 1, "", "is_allclose"], [193, 2, 1, "", "is_mask"], [193, 3, 1, "", "iter_by_axis"], [193, 3, 1, "", "iter_by_image"], [193, 3, 1, "", "iter_by_image_data"], [193, 3, 1, "", "iter_by_image_index"], [193, 3, 1, "", "mask_nearest_position"], [193, 2, 1, "", "meta"], [193, 3, 1, "", "normalize"], [193, 3, 1, "", "pad"], [193, 3, 1, "", "plot_grid"], [193, 3, 1, "", "plot_interactive"], [193, 2, 1, "", "quantity"], [193, 3, 1, "", "read"], [193, 3, 1, "", "reduce"], [193, 3, 1, "", "reduce_over_axes"], [193, 3, 1, "", "rename_axes"], [193, 3, 1, "", "reorder_axes"], [193, 3, 1, "", "reproject_by_image"], [193, 3, 1, "", "reproject_to_geom"], [193, 3, 1, "", "resample"], [193, 3, 1, "", "resample_axis"], [193, 3, 1, "", "sample_coord"], [193, 3, 1, "", "set_by_coord"], [193, 3, 1, "", "set_by_idx"], [193, 3, 1, "", "set_by_pix"], [193, 3, 1, "", "slice_by_idx"], [193, 3, 1, "", "split_by_axis"], [193, 3, 1, "", "sum_over_axes"], [193, 2, 1, "", "tag"], [193, 3, 1, "", "to_cube"], [193, 3, 1, "", "to_hdu"], [193, 3, 1, "", "to_hdulist"], [193, 3, 1, "", "to_swapped"], [193, 3, 1, "", "to_unit"], [193, 3, 1, "", "to_wcs"], [193, 2, 1, "", "unit"], [193, 3, 1, "", "upsample"], [193, 3, 1, "", "write"]], "gammapy.maps.HpxNDMap": [[194, 3, 1, "", "coadd"], [194, 3, 1, "", "convolve"], [194, 3, 1, "", "convolve_full"], [194, 3, 1, "", "convolve_wcs"], [194, 3, 1, "", "copy"], [194, 3, 1, "", "create"], [194, 3, 1, "", "crop"], [194, 3, 1, "", "cumsum"], [194, 3, 1, "", "cutout"], [194, 2, 1, "", "data"], [194, 3, 1, "", "dot"], [194, 3, 1, "", "downsample"], [194, 3, 1, "", "fill_by_coord"], [194, 3, 1, "", "fill_by_idx"], [194, 3, 1, "", "fill_by_pix"], [194, 3, 1, "", "fill_events"], [194, 3, 1, "", "from_geom"], [194, 3, 1, "", "from_hdu"], [194, 3, 1, "", "from_hdulist"], [194, 3, 1, "", "from_stack"], [194, 3, 1, "", "from_wcs_tiles"], [194, 2, 1, "", "geom"], [194, 3, 1, "", "get_by_coord"], [194, 3, 1, "", "get_by_idx"], [194, 3, 1, "", "get_by_pix"], [194, 3, 1, "", "get_image_by_coord"], [194, 3, 1, "", "get_image_by_idx"], [194, 3, 1, "", "get_image_by_pix"], [194, 3, 1, "", "get_spectrum"], [194, 3, 1, "", "integral"], [194, 3, 1, "", "interp_by_coord"], [194, 3, 1, "", "interp_by_pix"], [194, 3, 1, "", "interp_to_geom"], [194, 3, 1, "", "is_allclose"], [194, 2, 1, "", "is_mask"], [194, 3, 1, "", "iter_by_axis"], [194, 3, 1, "", "iter_by_image"], [194, 3, 1, "", "iter_by_image_data"], [194, 3, 1, "", "iter_by_image_index"], [194, 3, 1, "", "mask_nearest_position"], [194, 2, 1, "", "meta"], [194, 3, 1, "", "normalize"], [194, 3, 1, "", "pad"], [194, 3, 1, "", "plot"], [194, 3, 1, "", "plot_grid"], [194, 3, 1, "", "plot_interactive"], [194, 3, 1, "", "plot_mask"], [194, 2, 1, "", "quantity"], [194, 3, 1, "", "read"], [194, 3, 1, "", "reduce"], [194, 3, 1, "", "reduce_over_axes"], [194, 3, 1, "", "rename_axes"], [194, 3, 1, "", "reorder_axes"], [194, 3, 1, "", "reproject_by_image"], [194, 3, 1, "", "reproject_to_geom"], [194, 3, 1, "", "resample"], [194, 3, 1, "", "resample_axis"], [194, 3, 1, "", "sample_coord"], [194, 3, 1, "", "set_by_coord"], [194, 3, 1, "", "set_by_idx"], [194, 3, 1, "", "set_by_pix"], [194, 3, 1, "", "slice_by_idx"], [194, 3, 1, "", "smooth"], [194, 3, 1, "", "split_by_axis"], [194, 3, 1, "", "stack"], [194, 3, 1, "", "sum_over_axes"], [194, 2, 1, "", "tag"], [194, 3, 1, "", "to_cube"], [194, 3, 1, "", "to_hdu"], [194, 3, 1, "", "to_hdulist"], [194, 3, 1, "", "to_nside"], [194, 3, 1, "", "to_region_nd_map"], [194, 3, 1, "", "to_swapped"], [194, 3, 1, "", "to_unit"], [194, 3, 1, "", "to_wcs"], [194, 3, 1, "", "to_wcs_tiles"], [194, 2, 1, "", "unit"], [194, 3, 1, "", "upsample"], [194, 3, 1, "", "write"]], "gammapy.maps.LabelMapAxis": [[195, 2, 1, "", "as_plot_center"], [195, 2, 1, "", "as_plot_edges"], [195, 2, 1, "", "as_plot_labels"], [195, 2, 1, "", "as_plot_xerr"], [195, 3, 1, "", "assert_name"], [195, 2, 1, "", "bin_width"], [195, 2, 1, "", "center"], [195, 3, 1, "", "concatenate"], [195, 3, 1, "", "coord_to_idx"], [195, 3, 1, "", "coord_to_pix"], [195, 3, 1, "", "copy"], [195, 3, 1, "", "downsample"], [195, 2, 1, "", "edges"], [195, 2, 1, "", "edges_max"], [195, 2, 1, "", "edges_min"], [195, 3, 1, "", "format_plot_xaxis"], [195, 3, 1, "", "from_stack"], [195, 3, 1, "", "from_table"], [195, 3, 1, "", "is_allclose"], [195, 2, 1, "", "name"], [195, 2, 1, "", "nbin"], [195, 2, 1, "", "node_type"], [195, 3, 1, "", "pad"], [195, 3, 1, "", "pix_to_coord"], [195, 3, 1, "", "pix_to_idx"], [195, 3, 1, "", "resample"], [195, 3, 1, "", "slice"], [195, 3, 1, "", "squash"], [195, 3, 1, "", "to_header"], [195, 2, 1, "", "unit"], [195, 3, 1, "", "upsample"]], "gammapy.maps.Map": [[196, 3, 1, "", "coadd"], [196, 3, 1, "", "copy"], [196, 3, 1, "", "create"], [196, 3, 1, "", "crop"], [196, 3, 1, "", "cumsum"], [196, 2, 1, "", "data"], [196, 3, 1, "", "dot"], [196, 3, 1, "", "downsample"], [196, 3, 1, "", "fill_by_coord"], [196, 3, 1, "", "fill_by_idx"], [196, 3, 1, "", "fill_by_pix"], [196, 3, 1, "", "fill_events"], [196, 3, 1, "", "from_geom"], [196, 3, 1, "", "from_hdulist"], [196, 3, 1, "", "from_stack"], [196, 2, 1, "", "geom"], [196, 3, 1, "", "get_by_coord"], [196, 3, 1, "", "get_by_idx"], [196, 3, 1, "", "get_by_pix"], [196, 3, 1, "", "get_image_by_coord"], [196, 3, 1, "", "get_image_by_idx"], [196, 3, 1, "", "get_image_by_pix"], [196, 3, 1, "", "get_spectrum"], [196, 3, 1, "", "integral"], [196, 3, 1, "", "interp_by_coord"], [196, 3, 1, "", "interp_by_pix"], [196, 3, 1, "", "interp_to_geom"], [196, 3, 1, "", "is_allclose"], [196, 2, 1, "", "is_mask"], [196, 3, 1, "", "iter_by_axis"], [196, 3, 1, "", "iter_by_image"], [196, 3, 1, "", "iter_by_image_data"], [196, 3, 1, "", "iter_by_image_index"], [196, 3, 1, "", "mask_nearest_position"], [196, 2, 1, "", "meta"], [196, 3, 1, "", "normalize"], [196, 3, 1, "", "pad"], [196, 3, 1, "", "plot_grid"], [196, 3, 1, "", "plot_interactive"], [196, 2, 1, "", "quantity"], [196, 3, 1, "", "read"], [196, 3, 1, "", "reduce"], [196, 3, 1, "", "reduce_over_axes"], [196, 3, 1, "", "rename_axes"], [196, 3, 1, "", "reorder_axes"], [196, 3, 1, "", "reproject_by_image"], [196, 3, 1, "", "reproject_to_geom"], [196, 3, 1, "", "resample"], [196, 3, 1, "", "resample_axis"], [196, 3, 1, "", "sample_coord"], [196, 3, 1, "", "set_by_coord"], [196, 3, 1, "", "set_by_idx"], [196, 3, 1, "", "set_by_pix"], [196, 3, 1, "", "slice_by_idx"], [196, 3, 1, "", "split_by_axis"], [196, 3, 1, "", "sum_over_axes"], [196, 2, 1, "", "tag"], [196, 3, 1, "", "to_cube"], [196, 3, 1, "", "to_unit"], [196, 2, 1, "", "unit"], [196, 3, 1, "", "upsample"], [196, 3, 1, "", "write"]], "gammapy.maps.MapAxes": [[197, 3, 1, "", "assert_names"], [197, 3, 1, "", "bin_volume"], [197, 2, 1, "", "center_coord"], [197, 3, 1, "", "coord_to_idx"], [197, 3, 1, "", "coord_to_pix"], [197, 3, 1, "", "copy"], [197, 3, 1, "", "count"], [197, 3, 1, "", "downsample"], [197, 3, 1, "", "drop"], [197, 3, 1, "", "from_default"], [197, 3, 1, "", "from_table"], [197, 3, 1, "", "from_table_hdu"], [197, 3, 1, "", "get_coord"], [197, 3, 1, "", "index"], [197, 3, 1, "", "index_data"], [197, 3, 1, "", "is_allclose"], [197, 2, 1, "", "is_flat"], [197, 2, 1, "", "is_unidimensional"], [197, 2, 1, "", "iter_with_reshape"], [197, 2, 1, "", "names"], [197, 3, 1, "", "pad"], [197, 3, 1, "", "pix_to_coord"], [197, 3, 1, "", "pix_to_idx"], [197, 2, 1, "", "primary_axis"], [197, 3, 1, "", "rename_axes"], [197, 3, 1, "", "replace"], [197, 3, 1, "", "resample"], [197, 2, 1, "", "reverse"], [197, 2, 1, "", "shape"], [197, 3, 1, "", "slice_by_idx"], [197, 3, 1, "", "squash"], [197, 3, 1, "", "to_header"], [197, 3, 1, "", "to_table"], [197, 3, 1, "", "to_table_hdu"], [197, 3, 1, "", "upsample"]], "gammapy.maps.MapAxis": [[198, 2, 1, "", "as_plot_center"], [198, 2, 1, "", "as_plot_edges"], [198, 2, 1, "", "as_plot_labels"], [198, 2, 1, "", "as_plot_scale"], [198, 2, 1, "", "as_plot_xerr"], [198, 3, 1, "", "assert_name"], [198, 2, 1, "", "bin_width"], [198, 2, 1, "", "bounds"], [198, 2, 1, "", "center"], [198, 3, 1, "", "concatenate"], [198, 3, 1, "", "coord_to_idx"], [198, 3, 1, "", "coord_to_pix"], [198, 3, 1, "", "copy"], [198, 3, 1, "", "downsample"], [198, 2, 1, "", "edges"], [198, 2, 1, "", "edges_max"], [198, 2, 1, "", "edges_min"], [198, 3, 1, "", "format_plot_xaxis"], [198, 3, 1, "", "format_plot_yaxis"], [198, 3, 1, "", "from_bounds"], [198, 3, 1, "", "from_edges"], [198, 3, 1, "", "from_energy_bounds"], [198, 3, 1, "", "from_energy_edges"], [198, 3, 1, "", "from_nodes"], [198, 3, 1, "", "from_stack"], [198, 3, 1, "", "from_table"], [198, 3, 1, "", "from_table_hdu"], [198, 3, 1, "", "group_table"], [198, 2, 1, "", "interp"], [198, 3, 1, "", "is_aligned"], [198, 3, 1, "", "is_allclose"], [198, 2, 1, "", "is_energy_axis"], [198, 2, 1, "", "iter_by_edges"], [198, 2, 1, "", "name"], [198, 2, 1, "", "nbin"], [198, 2, 1, "", "nbin_per_decade"], [198, 2, 1, "", "node_type"], [198, 3, 1, "", "pad"], [198, 3, 1, "", "pix_to_coord"], [198, 3, 1, "", "pix_to_idx"], [198, 3, 1, "", "rename"], [198, 3, 1, "", "round"], [198, 3, 1, "", "slice"], [198, 3, 1, "", "squash"], [198, 3, 1, "", "to_header"], [198, 3, 1, "", "to_node_type"], [198, 3, 1, "", "to_table"], [198, 3, 1, "", "to_table_hdu"], [198, 2, 1, "", "unit"], [198, 3, 1, "", "upsample"], [198, 2, 1, "", "use_center_as_plot_labels"], [198, 3, 1, "", "wrap_coord"]], "gammapy.maps.MapCoord": [[199, 3, 1, "", "apply_mask"], [199, 2, 1, "", "axis_names"], [199, 2, 1, "", "broadcasted"], [199, 3, 1, "", "copy"], [199, 3, 1, "", "create"], [199, 2, 1, "", "flat"], [199, 2, 1, "", "frame"], [199, 2, 1, "", "lat"], [199, 2, 1, "", "lon"], [199, 2, 1, "", "match_by_name"], [199, 2, 1, "", "ndim"], [199, 2, 1, "", "phi"], [199, 2, 1, "", "shape"], [199, 2, 1, "", "size"], [199, 2, 1, "", "skycoord"], [199, 2, 1, "", "theta"], [199, 3, 1, "", "to_frame"]], "gammapy.maps.Maps": [[200, 3, 1, "", "clear"], [200, 3, 1, "", "from_geom"], [200, 3, 1, "", "from_hdulist"], [200, 2, 1, "", "geom"], [200, 3, 1, "", "get"], [200, 3, 1, "", "items"], [200, 3, 1, "", "keys"], [200, 3, 1, "", "pop"], [200, 3, 1, "", "popitem"], [200, 3, 1, "", "read"], [200, 3, 1, "", "setdefault"], [200, 3, 1, "", "to_hdulist"], [200, 3, 1, "", "update"], [200, 3, 1, "", "values"], [200, 3, 1, "", "write"]], "gammapy.maps.RegionGeom": [[201, 2, 1, "", "as_energy_true"], [201, 2, 1, "", "axes"], [201, 2, 1, "", "axes_names"], [201, 3, 1, "", "bin_volume"], [201, 2, 1, "", "binsz_wcs"], [201, 2, 1, "", "center_coord"], [201, 2, 1, "", "center_pix"], [201, 2, 1, "", "center_skydir"], [201, 3, 1, "", "contains"], [201, 3, 1, "", "contains_pix"], [201, 3, 1, "", "contains_wcs_pix"], [201, 3, 1, "", "coord_to_idx"], [201, 3, 1, "", "coord_to_pix"], [201, 3, 1, "", "copy"], [201, 3, 1, "", "create"], [201, 3, 1, "", "crop"], [201, 3, 1, "", "data_nbytes"], [201, 2, 1, "", "data_shape"], [201, 2, 1, "", "data_shape_axes"], [201, 3, 1, "", "downsample"], [201, 3, 1, "", "drop"], [201, 3, 1, "", "energy_mask"], [201, 2, 1, "", "frame"], [201, 3, 1, "", "from_hdulist"], [201, 3, 1, "", "from_regions"], [201, 3, 1, "", "get_coord"], [201, 3, 1, "", "get_idx"], [201, 3, 1, "", "get_wcs_coord_and_weights"], [201, 2, 1, "", "has_energy_axis"], [201, 2, 1, "", "is_all_point_sky_regions"], [201, 3, 1, "", "is_allclose"], [201, 2, 1, "", "is_allsky"], [201, 2, 1, "", "is_flat"], [201, 2, 1, "", "is_hpx"], [201, 2, 1, "", "is_image"], [201, 2, 1, "", "is_region"], [201, 2, 1, "", "is_regular"], [201, 2, 1, "", "npix"], [201, 3, 1, "", "pad"], [201, 3, 1, "", "pix_to_coord"], [201, 3, 1, "", "pix_to_idx"], [201, 3, 1, "", "plot_region"], [201, 2, 1, "", "projection"], [201, 2, 1, "", "region"], [201, 3, 1, "", "rename_axes"], [201, 3, 1, "", "replace_axis"], [201, 3, 1, "", "resample_axis"], [201, 3, 1, "", "separation"], [201, 3, 1, "", "slice_by_idx"], [201, 3, 1, "", "solid_angle"], [201, 3, 1, "", "squash"], [201, 3, 1, "", "to_bands_hdu"], [201, 3, 1, "", "to_binsz"], [201, 3, 1, "", "to_binsz_wcs"], [201, 3, 1, "", "to_cube"], [201, 3, 1, "", "to_hdulist"], [201, 3, 1, "", "to_image"], [201, 3, 1, "", "to_wcs_geom"], [201, 3, 1, "", "union"], [201, 3, 1, "", "upsample"], [201, 2, 1, "", "wcs"], [201, 2, 1, "", "width"]], "gammapy.maps.RegionNDMap": [[202, 3, 1, "", "coadd"], [202, 3, 1, "", "copy"], [202, 3, 1, "", "create"], [202, 3, 1, "", "crop"], [202, 3, 1, "", "cumsum"], [202, 3, 1, "", "cutout"], [202, 2, 1, "", "data"], [202, 3, 1, "", "dot"], [202, 3, 1, "", "downsample"], [202, 3, 1, "", "fill_by_coord"], [202, 3, 1, "", "fill_by_idx"], [202, 3, 1, "", "fill_by_pix"], [202, 3, 1, "", "fill_events"], [202, 3, 1, "", "from_geom"], [202, 3, 1, "", "from_hdulist"], [202, 3, 1, "", "from_stack"], [202, 3, 1, "", "from_table"], [202, 2, 1, "", "geom"], [202, 3, 1, "", "get_by_coord"], [202, 3, 1, "", "get_by_idx"], [202, 3, 1, "", "get_by_pix"], [202, 3, 1, "", "get_image_by_coord"], [202, 3, 1, "", "get_image_by_idx"], [202, 3, 1, "", "get_image_by_pix"], [202, 3, 1, "", "get_spectrum"], [202, 3, 1, "", "integral"], [202, 3, 1, "", "interp_by_coord"], [202, 3, 1, "", "interp_by_pix"], [202, 3, 1, "", "interp_to_geom"], [202, 3, 1, "", "is_allclose"], [202, 2, 1, "", "is_mask"], [202, 3, 1, "", "iter_by_axis"], [202, 3, 1, "", "iter_by_axis_data"], [202, 3, 1, "", "iter_by_image"], [202, 3, 1, "", "iter_by_image_data"], [202, 3, 1, "", "iter_by_image_index"], [202, 3, 1, "", "mask_nearest_position"], [202, 2, 1, "", "meta"], [202, 3, 1, "", "normalize"], [202, 3, 1, "", "pad"], [202, 3, 1, "", "plot"], [202, 3, 1, "", "plot_grid"], [202, 3, 1, "", "plot_hist"], [202, 3, 1, "", "plot_interactive"], [202, 3, 1, "", "plot_mask"], [202, 3, 1, "", "plot_region"], [202, 2, 1, "", "quantity"], [202, 3, 1, "", "read"], [202, 3, 1, "", "reduce"], [202, 3, 1, "", "reduce_over_axes"], [202, 3, 1, "", "rename_axes"], [202, 3, 1, "", "reorder_axes"], [202, 3, 1, "", "reproject_by_image"], [202, 3, 1, "", "reproject_to_geom"], [202, 3, 1, "", "resample"], [202, 3, 1, "", "resample_axis"], [202, 3, 1, "", "sample_coord"], [202, 3, 1, "", "set_by_coord"], [202, 3, 1, "", "set_by_idx"], [202, 3, 1, "", "set_by_pix"], [202, 3, 1, "", "slice_by_idx"], [202, 3, 1, "", "split_by_axis"], [202, 3, 1, "", "stack"], [202, 3, 1, "", "sum_over_axes"], [202, 2, 1, "", "tag"], [202, 3, 1, "", "to_cube"], [202, 3, 1, "", "to_hdulist"], [202, 3, 1, "", "to_region_nd_map"], [202, 3, 1, "", "to_table"], [202, 3, 1, "", "to_unit"], [202, 2, 1, "", "unit"], [202, 3, 1, "", "upsample"], [202, 3, 1, "", "write"]], "gammapy.maps.TimeMapAxis": [[203, 2, 1, "", "as_plot_center"], [203, 2, 1, "", "as_plot_edges"], [203, 2, 1, "", "as_plot_labels"], [203, 2, 1, "", "as_plot_xerr"], [203, 3, 1, "", "assert_name"], [203, 2, 1, "", "bin_width"], [203, 2, 1, "", "bounds"], [203, 2, 1, "", "center"], [203, 3, 1, "", "coord_to_idx"], [203, 3, 1, "", "coord_to_pix"], [203, 3, 1, "", "copy"], [203, 3, 1, "", "downsample"], [203, 2, 1, "", "edges"], [203, 2, 1, "", "edges_max"], [203, 2, 1, "", "edges_min"], [203, 3, 1, "", "format_plot_xaxis"], [203, 3, 1, "", "from_gti"], [203, 3, 1, "", "from_gti_bounds"], [203, 3, 1, "", "from_table"], [203, 3, 1, "", "from_time_bounds"], [203, 3, 1, "", "from_time_edges"], [203, 3, 1, "", "group_table"], [203, 2, 1, "", "interp"], [203, 3, 1, "", "is_aligned"], [203, 3, 1, "", "is_allclose"], [203, 2, 1, "", "is_contiguous"], [203, 2, 1, "", "iter_by_edges"], [203, 2, 1, "", "name"], [203, 2, 1, "", "nbin"], [203, 2, 1, "", "node_type"], [203, 3, 1, "", "pix_to_coord"], [203, 3, 1, "", "pix_to_idx"], [203, 2, 1, "", "reference_time"], [203, 3, 1, "", "slice"], [203, 3, 1, "", "squash"], [203, 2, 1, "", "time_bounds"], [203, 2, 1, "", "time_delta"], [203, 2, 1, "", "time_edges"], [203, 2, 1, "", "time_format"], [203, 2, 1, "", "time_max"], [203, 2, 1, "", "time_mid"], [203, 2, 1, "", "time_min"], [203, 3, 1, "", "to_contiguous"], [203, 3, 1, "", "to_gti"], [203, 3, 1, "", "to_header"], [203, 3, 1, "", "to_table"], [203, 2, 1, "", "unit"], [203, 3, 1, "", "upsample"]], "gammapy.maps.WcsGeom": [[204, 2, 1, "", "as_energy_true"], [204, 2, 1, "", "axes"], [204, 2, 1, "", "axes_names"], [204, 3, 1, "", "bin_volume"], [204, 3, 1, "", "binary_structure"], [204, 3, 1, "", "boundary_mask"], [204, 2, 1, "", "center_coord"], [204, 2, 1, "", "center_pix"], [204, 2, 1, "", "center_skydir"], [204, 3, 1, "", "contains"], [204, 3, 1, "", "contains_pix"], [204, 3, 1, "", "coord_to_idx"], [204, 3, 1, "", "coord_to_pix"], [204, 3, 1, "", "copy"], [204, 3, 1, "", "create"], [204, 3, 1, "", "crop"], [204, 3, 1, "", "cutout"], [204, 3, 1, "", "cutout_slices"], [204, 3, 1, "", "data_nbytes"], [204, 2, 1, "", "data_shape"], [204, 2, 1, "", "data_shape_axes"], [204, 2, 1, "", "data_shape_image"], [204, 3, 1, "", "downsample"], [204, 3, 1, "", "drop"], [204, 3, 1, "", "energy_mask"], [204, 2, 1, "", "footprint"], [204, 2, 1, "", "footprint_rectangle_sky_region"], [204, 2, 1, "", "frame"], [204, 3, 1, "", "from_aligned"], [204, 3, 1, "", "from_hdulist"], [204, 3, 1, "", "from_header"], [204, 3, 1, "", "get_coord"], [204, 3, 1, "", "get_idx"], [204, 3, 1, "", "get_pix"], [204, 2, 1, "", "has_energy_axis"], [204, 3, 1, "", "is_aligned"], [204, 3, 1, "", "is_allclose"], [204, 2, 1, "", "is_allsky"], [204, 2, 1, "", "is_flat"], [204, 2, 1, "", "is_hpx"], [204, 2, 1, "", "is_image"], [204, 2, 1, "", "is_region"], [204, 2, 1, "", "is_regular"], [204, 2, 1, "", "ndim"], [204, 2, 1, "", "npix"], [204, 3, 1, "", "pad"], [204, 3, 1, "", "pix_to_coord"], [204, 3, 1, "", "pix_to_idx"], [204, 2, 1, "", "pixel_area"], [204, 2, 1, "", "pixel_scales"], [204, 2, 1, "", "projection"], [204, 3, 1, "", "region_mask"], [204, 3, 1, "", "region_weights"], [204, 3, 1, "", "rename_axes"], [204, 3, 1, "", "replace_axis"], [204, 3, 1, "", "resample_axis"], [204, 3, 1, "", "separation"], [204, 2, 1, "", "shape_axes"], [204, 3, 1, "", "slice_by_idx"], [204, 3, 1, "", "solid_angle"], [204, 3, 1, "", "squash"], [204, 3, 1, "", "to_bands_hdu"], [204, 3, 1, "", "to_binsz"], [204, 3, 1, "", "to_cube"], [204, 3, 1, "", "to_even_npix"], [204, 3, 1, "", "to_header"], [204, 3, 1, "", "to_image"], [204, 3, 1, "", "to_odd_npix"], [204, 3, 1, "", "upsample"], [204, 2, 1, "", "wcs"], [204, 2, 1, "", "width"]], "gammapy.maps.WcsMap": [[205, 3, 1, "", "coadd"], [205, 3, 1, "", "copy"], [205, 3, 1, "", "create"], [205, 3, 1, "", "crop"], [205, 3, 1, "", "cumsum"], [205, 2, 1, "", "data"], [205, 3, 1, "", "dot"], [205, 3, 1, "", "downsample"], [205, 3, 1, "", "fill_by_coord"], [205, 3, 1, "", "fill_by_idx"], [205, 3, 1, "", "fill_by_pix"], [205, 3, 1, "", "fill_events"], [205, 3, 1, "", "from_geom"], [205, 3, 1, "", "from_hdulist"], [205, 3, 1, "", "from_stack"], [205, 2, 1, "", "geom"], [205, 3, 1, "", "get_by_coord"], [205, 3, 1, "", "get_by_idx"], [205, 3, 1, "", "get_by_pix"], [205, 3, 1, "", "get_image_by_coord"], [205, 3, 1, "", "get_image_by_idx"], [205, 3, 1, "", "get_image_by_pix"], [205, 3, 1, "", "get_spectrum"], [205, 3, 1, "", "integral"], [205, 3, 1, "", "interp_by_coord"], [205, 3, 1, "", "interp_by_pix"], [205, 3, 1, "", "interp_to_geom"], [205, 3, 1, "", "is_allclose"], [205, 2, 1, "", "is_mask"], [205, 3, 1, "", "iter_by_axis"], [205, 3, 1, "", "iter_by_image"], [205, 3, 1, "", "iter_by_image_data"], [205, 3, 1, "", "iter_by_image_index"], [205, 3, 1, "", "mask_nearest_position"], [205, 2, 1, "", "meta"], [205, 3, 1, "", "normalize"], [205, 3, 1, "", "pad"], [205, 3, 1, "", "plot_grid"], [205, 3, 1, "", "plot_interactive"], [205, 2, 1, "", "quantity"], [205, 3, 1, "", "read"], [205, 3, 1, "", "reduce"], [205, 3, 1, "", "reduce_over_axes"], [205, 3, 1, "", "rename_axes"], [205, 3, 1, "", "reorder_axes"], [205, 3, 1, "", "reproject_by_image"], [205, 3, 1, "", "reproject_to_geom"], [205, 3, 1, "", "resample"], [205, 3, 1, "", "resample_axis"], [205, 3, 1, "", "sample_coord"], [205, 3, 1, "", "set_by_coord"], [205, 3, 1, "", "set_by_idx"], [205, 3, 1, "", "set_by_pix"], [205, 3, 1, "", "slice_by_idx"], [205, 3, 1, "", "split_by_axis"], [205, 3, 1, "", "sum_over_axes"], [205, 2, 1, "", "tag"], [205, 3, 1, "", "to_cube"], [205, 3, 1, "", "to_hdu"], [205, 3, 1, "", "to_hdulist"], [205, 3, 1, "", "to_unit"], [205, 2, 1, "", "unit"], [205, 3, 1, "", "upsample"], [205, 3, 1, "", "write"]], "gammapy.maps.WcsNDMap": [[206, 3, 1, "", "binary_dilate"], [206, 3, 1, "", "binary_erode"], [206, 3, 1, "", "coadd"], [206, 3, 1, "", "convolve"], [206, 3, 1, "", "copy"], [206, 3, 1, "", "create"], [206, 3, 1, "", "crop"], [206, 3, 1, "", "cumsum"], [206, 3, 1, "", "cutout"], [206, 3, 1, "", "cutout_and_mask_region"], [206, 2, 1, "", "data"], [206, 3, 1, "", "dot"], [206, 3, 1, "", "downsample"], [206, 3, 1, "", "fill_by_coord"], [206, 3, 1, "", "fill_by_idx"], [206, 3, 1, "", "fill_by_pix"], [206, 3, 1, "", "fill_events"], [206, 3, 1, "", "from_geom"], [206, 3, 1, "", "from_hdu"], [206, 3, 1, "", "from_hdulist"], [206, 3, 1, "", "from_stack"], [206, 2, 1, "", "geom"], [206, 3, 1, "", "get_by_coord"], [206, 3, 1, "", "get_by_idx"], [206, 3, 1, "", "get_by_pix"], [206, 3, 1, "", "get_image_by_coord"], [206, 3, 1, "", "get_image_by_idx"], [206, 3, 1, "", "get_image_by_pix"], [206, 3, 1, "", "get_spectrum"], [206, 3, 1, "", "integral"], [206, 3, 1, "", "interp_by_coord"], [206, 3, 1, "", "interp_by_pix"], [206, 3, 1, "", "interp_to_geom"], [206, 3, 1, "", "is_allclose"], [206, 2, 1, "", "is_mask"], [206, 3, 1, "", "iter_by_axis"], [206, 3, 1, "", "iter_by_image"], [206, 3, 1, "", "iter_by_image_data"], [206, 3, 1, "", "iter_by_image_index"], [206, 3, 1, "", "mask_contains_region"], [206, 3, 1, "", "mask_nearest_position"], [206, 2, 1, "", "meta"], [206, 3, 1, "", "normalize"], [206, 3, 1, "", "pad"], [206, 3, 1, "", "plot"], [206, 3, 1, "", "plot_grid"], [206, 3, 1, "", "plot_interactive"], [206, 3, 1, "", "plot_mask"], [206, 2, 1, "", "quantity"], [206, 3, 1, "", "read"], [206, 3, 1, "", "reduce"], [206, 3, 1, "", "reduce_over_axes"], [206, 3, 1, "", "rename_axes"], [206, 3, 1, "", "reorder_axes"], [206, 3, 1, "", "reproject_by_image"], [206, 3, 1, "", "reproject_to_geom"], [206, 3, 1, "", "resample"], [206, 3, 1, "", "resample_axis"], [206, 3, 1, "", "sample_coord"], [206, 3, 1, "", "set_by_coord"], [206, 3, 1, "", "set_by_idx"], [206, 3, 1, "", "set_by_pix"], [206, 3, 1, "", "slice_by_idx"], [206, 3, 1, "", "smooth"], [206, 3, 1, "", "split_by_axis"], [206, 3, 1, "", "stack"], [206, 3, 1, "", "sum_over_axes"], [206, 2, 1, "", "tag"], [206, 3, 1, "", "to_cube"], [206, 3, 1, "", "to_hdu"], [206, 3, 1, "", "to_hdulist"], [206, 3, 1, "", "to_region_nd_map"], [206, 3, 1, "", "to_region_nd_map_histogram"], [206, 3, 1, "", "to_unit"], [206, 2, 1, "", "unit"], [206, 3, 1, "", "upsample"], [206, 3, 1, "", "write"]], "gammapy.modeling": [[209, 1, 1, "", "Covariance"], [210, 1, 1, "", "CovarianceResult"], [211, 1, 1, "", "Fit"], [212, 1, 1, "", "FitResult"], [213, 1, 1, "", "OptimizeResult"], [214, 1, 1, "", "Parameter"], [215, 1, 1, "", "Parameters"], [216, 1, 1, "", "PriorParameter"], [217, 1, 1, "", "PriorParameters"], [10, 0, 0, "-", "models"], [286, 4, 1, "", "select_nested_models"], [287, 4, 1, "", "stat_profile_ul_scipy"]], "gammapy.modeling.Covariance": [[209, 2, 1, "", "correlation"], [209, 2, 1, "", "data"], [209, 3, 1, "", "from_factor_matrix"], [209, 3, 1, "", "from_stack"], [209, 3, 1, "", "get_subcovariance"], [209, 3, 1, "", "plot_correlation"], [209, 2, 1, "", "scipy_mvn"], [209, 3, 1, "", "set_subcovariance"], [209, 2, 1, "", "shape"]], "gammapy.modeling.CovarianceResult": [[210, 2, 1, "", "backend"], [210, 2, 1, "", "matrix"], [210, 2, 1, "", "message"], [210, 2, 1, "", "method"], [210, 2, 1, "", "success"], [210, 3, 1, "", "to_dict"]], "gammapy.modeling.Fit": [[211, 3, 1, "", "confidence"], [211, 3, 1, "", "covariance"], [211, 3, 1, "", "optimize"], [211, 3, 1, "", "run"], [211, 3, 1, "", "stat_contour"], [211, 3, 1, "", "stat_profile"], [211, 3, 1, "", "stat_surface"]], "gammapy.modeling.FitResult": [[212, 2, 1, "", "backend"], [212, 2, 1, "", "covariance_result"], [212, 2, 1, "", "message"], [212, 2, 1, "", "method"], [212, 2, 1, "", "minuit"], [212, 2, 1, "", "models"], [212, 2, 1, "", "nfev"], [212, 2, 1, "", "optimize_result"], [212, 2, 1, "", "parameters"], [212, 2, 1, "", "success"], [212, 2, 1, "", "total_stat"], [212, 2, 1, "", "trace"], [212, 3, 1, "", "write"]], "gammapy.modeling.OptimizeResult": [[213, 2, 1, "", "backend"], [213, 2, 1, "", "message"], [213, 2, 1, "", "method"], [213, 2, 1, "", "minuit"], [213, 2, 1, "", "models"], [213, 2, 1, "", "nfev"], [213, 2, 1, "", "parameters"], [213, 2, 1, "", "success"], [213, 3, 1, "", "to_dict"], [213, 2, 1, "", "total_stat"], [213, 2, 1, "", "trace"]], "gammapy.modeling.Parameter": [[214, 3, 1, "", "autoscale"], [214, 3, 1, "", "check_limits"], [214, 2, 1, "", "conf_max"], [214, 2, 1, "", "conf_min"], [214, 3, 1, "", "copy"], [214, 2, 1, "", "error"], [214, 2, 1, "", "factor"], [214, 2, 1, "", "factor_max"], [214, 2, 1, "", "factor_min"], [214, 2, 1, "", "frozen"], [214, 2, 1, "", "max"], [214, 2, 1, "", "min"], [214, 2, 1, "", "name"], [214, 2, 1, "", "prior"], [214, 3, 1, "", "prior_stat_sum"], [214, 2, 1, "", "quantity"], [214, 2, 1, "", "scale"], [214, 2, 1, "", "scale_method"], [214, 2, 1, "", "scan_max"], [214, 2, 1, "", "scan_min"], [214, 2, 1, "", "scan_n_sigma"], [214, 2, 1, "", "scan_values"], [214, 3, 1, "", "to_dict"], [214, 2, 1, "", "type"], [214, 2, 1, "", "unit"], [214, 3, 1, "", "update_from_dict"], [214, 2, 1, "", "value"]], "gammapy.modeling.Parameters": [[215, 3, 1, "", "autoscale"], [215, 3, 1, "", "check_limits"], [215, 3, 1, "", "copy"], [215, 3, 1, "", "count"], [215, 2, 1, "", "free_parameters"], [215, 3, 1, "", "freeze_all"], [215, 3, 1, "", "from_dict"], [215, 3, 1, "", "from_stack"], [215, 3, 1, "", "index"], [215, 2, 1, "", "max"], [215, 2, 1, "", "min"], [215, 2, 1, "", "names"], [215, 2, 1, "", "prior"], [215, 3, 1, "", "prior_stat_sum"], [215, 3, 1, "", "restore_status"], [215, 3, 1, "", "select"], [215, 3, 1, "", "set_parameter_factors"], [215, 3, 1, "", "to_dict"], [215, 3, 1, "", "to_table"], [215, 2, 1, "", "types"], [215, 3, 1, "", "unfreeze_all"], [215, 2, 1, "", "unique_parameters"], [215, 2, 1, "", "value"]], "gammapy.modeling.PriorParameter": [[216, 3, 1, "", "autoscale"], [216, 3, 1, "", "check_limits"], [216, 2, 1, "", "conf_max"], [216, 2, 1, "", "conf_min"], [216, 3, 1, "", "copy"], [216, 2, 1, "", "error"], [216, 2, 1, "", "factor"], [216, 2, 1, "", "factor_max"], [216, 2, 1, "", "factor_min"], [216, 2, 1, "", "frozen"], [216, 2, 1, "", "max"], [216, 2, 1, "", "min"], [216, 2, 1, "", "name"], [216, 2, 1, "", "prior"], [216, 3, 1, "", "prior_stat_sum"], [216, 2, 1, "", "quantity"], [216, 2, 1, "", "scale"], [216, 2, 1, "", "scale_method"], [216, 2, 1, "", "scan_max"], [216, 2, 1, "", "scan_min"], [216, 2, 1, "", "scan_n_sigma"], [216, 2, 1, "", "scan_values"], [216, 3, 1, "", "to_dict"], [216, 2, 1, "", "type"], [216, 2, 1, "", "unit"], [216, 3, 1, "", "update_from_dict"], [216, 2, 1, "", "value"]], "gammapy.modeling.PriorParameters": [[217, 3, 1, "", "autoscale"], [217, 3, 1, "", "check_limits"], [217, 3, 1, "", "copy"], [217, 3, 1, "", "count"], [217, 2, 1, "", "free_parameters"], [217, 3, 1, "", "freeze_all"], [217, 3, 1, "", "from_dict"], [217, 3, 1, "", "from_stack"], [217, 3, 1, "", "index"], [217, 2, 1, "", "max"], [217, 2, 1, "", "min"], [217, 2, 1, "", "names"], [217, 2, 1, "", "prior"], [217, 3, 1, "", "prior_stat_sum"], [217, 3, 1, "", "restore_status"], [217, 3, 1, "", "select"], [217, 3, 1, "", "set_parameter_factors"], [217, 3, 1, "", "to_dict"], [217, 3, 1, "", "to_table"], [217, 2, 1, "", "types"], [217, 3, 1, "", "unfreeze_all"], [217, 2, 1, "", "unique_parameters"], [217, 2, 1, "", "value"]], "gammapy.modeling.models": [[218, 1, 1, "", "BrokenPowerLawSpectralModel"], [219, 1, 1, "", "CompoundSpectralModel"], [220, 1, 1, "", "ConstantFluxSpatialModel"], [221, 1, 1, "", "ConstantSpatialModel"], [222, 1, 1, "", "ConstantSpectralModel"], [223, 1, 1, "", "ConstantTemporalModel"], [224, 1, 1, "", "DatasetModels"], [225, 1, 1, "", "DiskSpatialModel"], [226, 1, 1, "", "EBLAbsorptionNormSpectralModel"], [227, 5, 1, "", "EBL_DATA_BUILTIN"], [228, 1, 1, "", "ExpCutoffPowerLaw3FGLSpectralModel"], [229, 1, 1, "", "ExpCutoffPowerLawNormSpectralModel"], [230, 1, 1, "", "ExpCutoffPowerLawSpectralModel"], [231, 1, 1, "", "ExpDecayTemporalModel"], [232, 1, 1, "", "FoVBackgroundModel"], [233, 1, 1, "", "GaussianPrior"], [234, 1, 1, "", "GaussianSpatialModel"], [235, 1, 1, "", "GaussianSpectralModel"], [236, 1, 1, "", "GaussianTemporalModel"], [237, 1, 1, "", "GeneralizedGaussianSpatialModel"], [238, 1, 1, "", "GeneralizedGaussianTemporalModel"], [239, 1, 1, "", "LightCurveTemplateTemporalModel"], [240, 1, 1, "", "LinearTemporalModel"], [241, 1, 1, "", "LogParabolaNormSpectralModel"], [242, 1, 1, "", "LogParabolaSpectralModel"], [243, 5, 1, "", "MODEL_REGISTRY"], [244, 1, 1, "", "MeyerCrabSpectralModel"], [245, 1, 1, "", "Model"], [246, 1, 1, "", "ModelBase"], [247, 1, 1, "", "Models"], [248, 1, 1, "", "NaimaSpectralModel"], [249, 1, 1, "", "PiecewiseNormSpatialModel"], [250, 1, 1, "", "PiecewiseNormSpectralModel"], [251, 1, 1, "", "PointSpatialModel"], [252, 1, 1, "", "PowerLaw2SpectralModel"], [253, 1, 1, "", "PowerLawNormSpectralModel"], [254, 1, 1, "", "PowerLawSpectralModel"], [255, 1, 1, "", "PowerLawTemporalModel"], [256, 1, 1, "", "Prior"], [257, 5, 1, "", "SPATIAL_MODEL_REGISTRY"], [258, 5, 1, "", "SPECTRAL_MODEL_REGISTRY"], [259, 1, 1, "", "ScaleSpectralModel"], [260, 1, 1, "", "Shell2SpatialModel"], [261, 1, 1, "", "ShellSpatialModel"], [262, 1, 1, "", "SineTemporalModel"], [263, 1, 1, "", "SkyModel"], [264, 1, 1, "", "SmoothBrokenPowerLawSpectralModel"], [265, 1, 1, "", "SpatialModel"], [266, 1, 1, "", "SpectralModel"], [267, 1, 1, "", "SuperExpCutoffPowerLaw3FGLSpectralModel"], [268, 1, 1, "", "SuperExpCutoffPowerLaw4FGLDR3SpectralModel"], [269, 1, 1, "", "SuperExpCutoffPowerLaw4FGLSpectralModel"], [270, 5, 1, "", "TEMPORAL_MODEL_REGISTRY"], [271, 1, 1, "", "TemplateNDSpatialModel"], [272, 1, 1, "", "TemplateNDSpectralModel"], [273, 1, 1, "", "TemplateNPredModel"], [274, 1, 1, "", "TemplatePhaseCurveTemporalModel"], [275, 1, 1, "", "TemplateSpatialModel"], [276, 1, 1, "", "TemplateSpectralModel"], [277, 1, 1, "", "TemporalModel"], [278, 1, 1, "", "UniformPrior"], [279, 4, 1, "", "create_cosmic_ray_spectral_model"], [280, 4, 1, "", "create_crab_spectral_model"], [281, 4, 1, "", "create_fermi_isotropic_diffuse_model"], [282, 4, 1, "", "integrate_spectrum"], [283, 4, 1, "", "read_hermes_cube"], [284, 4, 1, "", "scale_plot_flux"], [10, 0, 0, "-", "utils"]], "gammapy.modeling.models.BrokenPowerLawSpectralModel": [[218, 3, 1, "", "__call__"], [218, 2, 1, "", "amplitude"], [218, 3, 1, "", "copy"], [218, 2, 1, "", "covariance"], [218, 2, 1, "", "default_parameters"], [218, 2, 1, "", "ebreak"], [218, 3, 1, "", "energy_flux"], [218, 3, 1, "", "energy_flux_error"], [218, 3, 1, "", "evaluate"], [218, 3, 1, "", "evaluate_error"], [218, 3, 1, "", "freeze"], [218, 3, 1, "", "from_dict"], [218, 3, 1, "", "from_parameters"], [218, 2, 1, "", "frozen"], [218, 2, 1, "", "index1"], [218, 2, 1, "", "index2"], [218, 3, 1, "", "integral"], [218, 3, 1, "", "integral_error"], [218, 3, 1, "", "inverse"], [218, 3, 1, "", "inverse_all"], [218, 2, 1, "", "is_norm_spectral_model"], [218, 2, 1, "", "parameters"], [218, 2, 1, "", "parameters_unique_names"], [218, 2, 1, "", "pivot_energy"], [218, 3, 1, "", "plot"], [218, 3, 1, "", "plot_error"], [218, 3, 1, "", "reassign"], [218, 3, 1, "", "reference_fluxes"], [218, 3, 1, "", "spectral_index"], [218, 3, 1, "", "spectral_index_error"], [218, 2, 1, "", "tag"], [218, 3, 1, "", "to_dict"], [218, 2, 1, "", "type"], [218, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.CompoundSpectralModel": [[219, 3, 1, "", "__call__"], [219, 3, 1, "", "copy"], [219, 2, 1, "", "covariance"], [219, 2, 1, "", "default_parameters"], [219, 3, 1, "", "energy_flux"], [219, 3, 1, "", "energy_flux_error"], [219, 3, 1, "", "evaluate"], [219, 3, 1, "", "evaluate_error"], [219, 3, 1, "", "freeze"], [219, 3, 1, "", "from_dict"], [219, 3, 1, "", "from_parameters"], [219, 2, 1, "", "frozen"], [219, 3, 1, "", "integral"], [219, 3, 1, "", "integral_error"], [219, 3, 1, "", "inverse"], [219, 3, 1, "", "inverse_all"], [219, 2, 1, "", "is_norm_spectral_model"], [219, 2, 1, "", "parameters"], [219, 2, 1, "", "parameters_unique_names"], [219, 2, 1, "", "pivot_energy"], [219, 3, 1, "", "plot"], [219, 3, 1, "", "plot_error"], [219, 3, 1, "", "reassign"], [219, 3, 1, "", "reference_fluxes"], [219, 3, 1, "", "spectral_index"], [219, 3, 1, "", "spectral_index_error"], [219, 2, 1, "", "tag"], [219, 3, 1, "", "to_dict"], [219, 2, 1, "", "type"], [219, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ConstantFluxSpatialModel": [[220, 3, 1, "", "__call__"], [220, 3, 1, "", "copy"], [220, 2, 1, "", "covariance"], [220, 2, 1, "", "default_parameters"], [220, 3, 1, "", "evaluate"], [220, 3, 1, "", "evaluate_geom"], [220, 2, 1, "", "evaluation_bin_size_min"], [220, 2, 1, "", "evaluation_radius"], [220, 2, 1, "", "evaluation_region"], [220, 2, 1, "", "frame"], [220, 3, 1, "", "freeze"], [220, 3, 1, "", "from_dict"], [220, 3, 1, "", "from_parameters"], [220, 3, 1, "", "from_position"], [220, 2, 1, "", "frozen"], [220, 3, 1, "", "integrate_geom"], [220, 2, 1, "", "is_energy_dependent"], [220, 2, 1, "", "parameters"], [220, 2, 1, "", "parameters_unique_names"], [220, 2, 1, "", "phi_0"], [220, 3, 1, "", "plot"], [220, 3, 1, "", "plot_error"], [220, 3, 1, "", "plot_grid"], [220, 3, 1, "", "plot_interactive"], [220, 3, 1, "", "plot_position_error"], [220, 2, 1, "", "position"], [220, 2, 1, "", "position_error"], [220, 2, 1, "", "position_lonlat"], [220, 3, 1, "", "reassign"], [220, 2, 1, "", "tag"], [220, 3, 1, "", "to_dict"], [220, 3, 1, "", "to_region"], [220, 2, 1, "", "type"], [220, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ConstantSpatialModel": [[221, 3, 1, "", "__call__"], [221, 3, 1, "", "copy"], [221, 2, 1, "", "covariance"], [221, 2, 1, "", "default_parameters"], [221, 3, 1, "", "evaluate"], [221, 3, 1, "", "evaluate_geom"], [221, 2, 1, "", "evaluation_bin_size_min"], [221, 2, 1, "", "evaluation_radius"], [221, 2, 1, "", "evaluation_region"], [221, 2, 1, "", "frame"], [221, 3, 1, "", "freeze"], [221, 3, 1, "", "from_dict"], [221, 3, 1, "", "from_parameters"], [221, 3, 1, "", "from_position"], [221, 2, 1, "", "frozen"], [221, 3, 1, "", "integrate_geom"], [221, 2, 1, "", "is_energy_dependent"], [221, 2, 1, "", "parameters"], [221, 2, 1, "", "parameters_unique_names"], [221, 2, 1, "", "phi_0"], [221, 3, 1, "", "plot"], [221, 3, 1, "", "plot_error"], [221, 3, 1, "", "plot_grid"], [221, 3, 1, "", "plot_interactive"], [221, 3, 1, "", "plot_position_error"], [221, 2, 1, "", "position"], [221, 2, 1, "", "position_error"], [221, 2, 1, "", "position_lonlat"], [221, 3, 1, "", "reassign"], [221, 2, 1, "", "tag"], [221, 3, 1, "", "to_dict"], [221, 3, 1, "", "to_region"], [221, 2, 1, "", "type"], [221, 3, 1, "", "unfreeze"], [221, 2, 1, "", "value"]], "gammapy.modeling.models.ConstantSpectralModel": [[222, 3, 1, "", "__call__"], [222, 2, 1, "", "const"], [222, 3, 1, "", "copy"], [222, 2, 1, "", "covariance"], [222, 2, 1, "", "default_parameters"], [222, 3, 1, "", "energy_flux"], [222, 3, 1, "", "energy_flux_error"], [222, 3, 1, "", "evaluate"], [222, 3, 1, "", "evaluate_error"], [222, 3, 1, "", "freeze"], [222, 3, 1, "", "from_dict"], [222, 3, 1, "", "from_parameters"], [222, 2, 1, "", "frozen"], [222, 3, 1, "", "integral"], [222, 3, 1, "", "integral_error"], [222, 3, 1, "", "inverse"], [222, 3, 1, "", "inverse_all"], [222, 2, 1, "", "is_norm_spectral_model"], [222, 2, 1, "", "parameters"], [222, 2, 1, "", "parameters_unique_names"], [222, 2, 1, "", "pivot_energy"], [222, 3, 1, "", "plot"], [222, 3, 1, "", "plot_error"], [222, 3, 1, "", "reassign"], [222, 3, 1, "", "reference_fluxes"], [222, 3, 1, "", "spectral_index"], [222, 3, 1, "", "spectral_index_error"], [222, 2, 1, "", "tag"], [222, 3, 1, "", "to_dict"], [222, 2, 1, "", "type"], [222, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ConstantTemporalModel": [[223, 3, 1, "", "__call__"], [223, 3, 1, "", "copy"], [223, 2, 1, "", "covariance"], [223, 2, 1, "", "default_parameters"], [223, 3, 1, "", "evaluate"], [223, 3, 1, "", "freeze"], [223, 3, 1, "", "from_dict"], [223, 3, 1, "", "from_parameters"], [223, 2, 1, "", "frozen"], [223, 3, 1, "", "integral"], [223, 2, 1, "", "is_energy_dependent"], [223, 2, 1, "", "parameters"], [223, 2, 1, "", "parameters_unique_names"], [223, 3, 1, "", "plot"], [223, 3, 1, "", "reassign"], [223, 2, 1, "", "reference_time"], [223, 3, 1, "", "sample_time"], [223, 2, 1, "", "tag"], [223, 3, 1, "", "time_sum"], [223, 3, 1, "", "to_dict"], [223, 2, 1, "", "type"], [223, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.DatasetModels": [[224, 3, 1, "", "copy"], [224, 3, 1, "", "count"], [224, 2, 1, "", "covariance"], [224, 3, 1, "", "freeze"], [224, 3, 1, "", "from_dict"], [224, 3, 1, "", "from_yaml"], [224, 2, 1, "", "frozen"], [224, 3, 1, "", "index"], [224, 2, 1, "", "names"], [224, 2, 1, "", "parameters"], [224, 2, 1, "", "parameters_unique_names"], [224, 3, 1, "", "plot_positions"], [224, 3, 1, "", "plot_regions"], [224, 2, 1, "", "positions"], [224, 3, 1, "", "read"], [224, 3, 1, "", "read_covariance"], [224, 3, 1, "", "reassign"], [224, 3, 1, "", "restore_status"], [224, 3, 1, "", "select"], [224, 3, 1, "", "select_from_geom"], [224, 3, 1, "", "select_mask"], [224, 3, 1, "", "select_region"], [224, 3, 1, "", "selection_mask"], [224, 3, 1, "", "set_parameters_bounds"], [224, 3, 1, "", "to_dict"], [224, 3, 1, "", "to_parameters_table"], [224, 3, 1, "", "to_regions"], [224, 3, 1, "", "to_template_sky_model"], [224, 3, 1, "", "to_template_spectral_model"], [224, 3, 1, "", "to_yaml"], [224, 3, 1, "", "unfreeze"], [224, 3, 1, "", "update_link_label"], [224, 3, 1, "", "update_parameters_from_table"], [224, 2, 1, "", "wcs_geom"], [224, 3, 1, "", "write"], [224, 3, 1, "", "write_covariance"]], "gammapy.modeling.models.DiskSpatialModel": [[225, 3, 1, "", "__call__"], [225, 3, 1, "", "copy"], [225, 2, 1, "", "covariance"], [225, 2, 1, "", "default_parameters"], [225, 2, 1, "", "e"], [225, 2, 1, "", "edge_width"], [225, 3, 1, "", "evaluate"], [225, 3, 1, "", "evaluate_geom"], [225, 2, 1, "", "evaluation_bin_size_min"], [225, 2, 1, "", "evaluation_radius"], [225, 2, 1, "", "evaluation_region"], [225, 3, 1, "", "freeze"], [225, 3, 1, "", "from_dict"], [225, 3, 1, "", "from_parameters"], [225, 3, 1, "", "from_position"], [225, 3, 1, "", "from_region"], [225, 2, 1, "", "frozen"], [225, 3, 1, "", "integrate_geom"], [225, 2, 1, "", "is_energy_dependent"], [225, 2, 1, "", "lat_0"], [225, 2, 1, "", "lon_0"], [225, 2, 1, "", "parameters"], [225, 2, 1, "", "parameters_unique_names"], [225, 2, 1, "", "phi"], [225, 2, 1, "", "phi_0"], [225, 3, 1, "", "plot"], [225, 3, 1, "", "plot_error"], [225, 3, 1, "", "plot_grid"], [225, 3, 1, "", "plot_interactive"], [225, 3, 1, "", "plot_position_error"], [225, 2, 1, "", "position"], [225, 2, 1, "", "position_error"], [225, 2, 1, "", "position_lonlat"], [225, 2, 1, "", "r_0"], [225, 3, 1, "", "reassign"], [225, 2, 1, "", "tag"], [225, 3, 1, "", "to_dict"], [225, 3, 1, "", "to_region"], [225, 2, 1, "", "type"], [225, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.EBLAbsorptionNormSpectralModel": [[226, 3, 1, "", "__call__"], [226, 2, 1, "", "alpha_norm"], [226, 3, 1, "", "copy"], [226, 2, 1, "", "covariance"], [226, 2, 1, "", "default_parameters"], [226, 3, 1, "", "energy_flux"], [226, 3, 1, "", "energy_flux_error"], [226, 3, 1, "", "evaluate"], [226, 3, 1, "", "evaluate_error"], [226, 3, 1, "", "freeze"], [226, 3, 1, "", "from_dict"], [226, 3, 1, "", "from_parameters"], [226, 2, 1, "", "frozen"], [226, 3, 1, "", "integral"], [226, 3, 1, "", "integral_error"], [226, 3, 1, "", "inverse"], [226, 3, 1, "", "inverse_all"], [226, 2, 1, "", "is_norm_spectral_model"], [226, 2, 1, "", "parameters"], [226, 2, 1, "", "parameters_unique_names"], [226, 2, 1, "", "pivot_energy"], [226, 3, 1, "", "plot"], [226, 3, 1, "", "plot_error"], [226, 3, 1, "", "read"], [226, 3, 1, "", "read_builtin"], [226, 3, 1, "", "reassign"], [226, 2, 1, "", "redshift"], [226, 3, 1, "", "reference_fluxes"], [226, 3, 1, "", "spectral_index"], [226, 3, 1, "", "spectral_index_error"], [226, 2, 1, "", "tag"], [226, 3, 1, "", "to_dict"], [226, 2, 1, "", "type"], [226, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel": [[228, 3, 1, "", "__call__"], [228, 2, 1, "", "amplitude"], [228, 3, 1, "", "copy"], [228, 2, 1, "", "covariance"], [228, 2, 1, "", "default_parameters"], [228, 2, 1, "", "ecut"], [228, 3, 1, "", "energy_flux"], [228, 3, 1, "", "energy_flux_error"], [228, 3, 1, "", "evaluate"], [228, 3, 1, "", "evaluate_error"], [228, 3, 1, "", "freeze"], [228, 3, 1, "", "from_dict"], [228, 3, 1, "", "from_parameters"], [228, 2, 1, "", "frozen"], [228, 2, 1, "", "index"], [228, 3, 1, "", "integral"], [228, 3, 1, "", "integral_error"], [228, 3, 1, "", "inverse"], [228, 3, 1, "", "inverse_all"], [228, 2, 1, "", "is_norm_spectral_model"], [228, 2, 1, "", "parameters"], [228, 2, 1, "", "parameters_unique_names"], [228, 2, 1, "", "pivot_energy"], [228, 3, 1, "", "plot"], [228, 3, 1, "", "plot_error"], [228, 3, 1, "", "reassign"], [228, 2, 1, "", "reference"], [228, 3, 1, "", "reference_fluxes"], [228, 3, 1, "", "spectral_index"], [228, 3, 1, "", "spectral_index_error"], [228, 2, 1, "", "tag"], [228, 3, 1, "", "to_dict"], [228, 2, 1, "", "type"], [228, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel": [[229, 3, 1, "", "__call__"], [229, 2, 1, "", "alpha"], [229, 3, 1, "", "copy"], [229, 2, 1, "", "covariance"], [229, 2, 1, "", "default_parameters"], [229, 3, 1, "", "energy_flux"], [229, 3, 1, "", "energy_flux_error"], [229, 3, 1, "", "evaluate"], [229, 3, 1, "", "evaluate_error"], [229, 3, 1, "", "freeze"], [229, 3, 1, "", "from_dict"], [229, 3, 1, "", "from_parameters"], [229, 2, 1, "", "frozen"], [229, 2, 1, "", "index"], [229, 3, 1, "", "integral"], [229, 3, 1, "", "integral_error"], [229, 3, 1, "", "inverse"], [229, 3, 1, "", "inverse_all"], [229, 2, 1, "", "is_norm_spectral_model"], [229, 2, 1, "", "lambda_"], [229, 2, 1, "", "norm"], [229, 2, 1, "", "parameters"], [229, 2, 1, "", "parameters_unique_names"], [229, 2, 1, "", "pivot_energy"], [229, 3, 1, "", "plot"], [229, 3, 1, "", "plot_error"], [229, 3, 1, "", "reassign"], [229, 2, 1, "", "reference"], [229, 3, 1, "", "reference_fluxes"], [229, 3, 1, "", "spectral_index"], [229, 3, 1, "", "spectral_index_error"], [229, 2, 1, "", "tag"], [229, 3, 1, "", "to_dict"], [229, 2, 1, "", "type"], [229, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel": [[230, 3, 1, "", "__call__"], [230, 2, 1, "", "alpha"], [230, 2, 1, "", "amplitude"], [230, 3, 1, "", "copy"], [230, 2, 1, "", "covariance"], [230, 2, 1, "", "default_parameters"], [230, 2, 1, "", "e_peak"], [230, 3, 1, "", "energy_flux"], [230, 3, 1, "", "energy_flux_error"], [230, 3, 1, "", "evaluate"], [230, 3, 1, "", "evaluate_error"], [230, 3, 1, "", "freeze"], [230, 3, 1, "", "from_dict"], [230, 3, 1, "", "from_parameters"], [230, 2, 1, "", "frozen"], [230, 2, 1, "", "index"], [230, 3, 1, "", "integral"], [230, 3, 1, "", "integral_error"], [230, 3, 1, "", "inverse"], [230, 3, 1, "", "inverse_all"], [230, 2, 1, "", "is_norm_spectral_model"], [230, 2, 1, "", "lambda_"], [230, 2, 1, "", "parameters"], [230, 2, 1, "", "parameters_unique_names"], [230, 2, 1, "", "pivot_energy"], [230, 3, 1, "", "plot"], [230, 3, 1, "", "plot_error"], [230, 3, 1, "", "reassign"], [230, 2, 1, "", "reference"], [230, 3, 1, "", "reference_fluxes"], [230, 3, 1, "", "spectral_index"], [230, 3, 1, "", "spectral_index_error"], [230, 2, 1, "", "tag"], [230, 3, 1, "", "to_dict"], [230, 2, 1, "", "type"], [230, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpDecayTemporalModel": [[231, 3, 1, "", "__call__"], [231, 3, 1, "", "copy"], [231, 2, 1, "", "covariance"], [231, 2, 1, "", "default_parameters"], [231, 3, 1, "", "evaluate"], [231, 3, 1, "", "freeze"], [231, 3, 1, "", "from_dict"], [231, 3, 1, "", "from_parameters"], [231, 2, 1, "", "frozen"], [231, 3, 1, "", "integral"], [231, 2, 1, "", "is_energy_dependent"], [231, 2, 1, "", "parameters"], [231, 2, 1, "", "parameters_unique_names"], [231, 3, 1, "", "plot"], [231, 3, 1, "", "reassign"], [231, 2, 1, "", "reference_time"], [231, 3, 1, "", "sample_time"], [231, 2, 1, "", "t0"], [231, 2, 1, "", "t_ref"], [231, 2, 1, "", "tag"], [231, 3, 1, "", "time_sum"], [231, 3, 1, "", "to_dict"], [231, 2, 1, "", "type"], [231, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.FoVBackgroundModel": [[232, 3, 1, "", "contributes"], [232, 3, 1, "", "copy"], [232, 2, 1, "", "covariance"], [232, 2, 1, "", "default_parameters"], [232, 3, 1, "", "evaluate"], [232, 3, 1, "", "evaluate_geom"], [232, 3, 1, "", "freeze"], [232, 3, 1, "", "from_dict"], [232, 3, 1, "", "from_parameters"], [232, 2, 1, "", "frozen"], [232, 2, 1, "", "name"], [232, 2, 1, "", "parameters"], [232, 2, 1, "", "parameters_unique_names"], [232, 3, 1, "", "reassign"], [232, 3, 1, "", "reset_to_default"], [232, 2, 1, "", "spatial_model"], [232, 2, 1, "", "spectral_model"], [232, 2, 1, "", "tag"], [232, 3, 1, "", "to_dict"], [232, 2, 1, "", "type"], [232, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GaussianPrior": [[233, 3, 1, "", "__call__"], [233, 3, 1, "", "copy"], [233, 2, 1, "", "covariance"], [233, 2, 1, "", "default_parameters"], [233, 3, 1, "", "evaluate"], [233, 3, 1, "", "freeze"], [233, 3, 1, "", "from_dict"], [233, 3, 1, "", "from_parameters"], [233, 2, 1, "", "frozen"], [233, 2, 1, "", "mu"], [233, 2, 1, "", "parameters"], [233, 2, 1, "", "parameters_unique_names"], [233, 3, 1, "", "reassign"], [233, 2, 1, "", "sigma"], [233, 2, 1, "", "tag"], [233, 3, 1, "", "to_dict"], [233, 2, 1, "", "type"], [233, 3, 1, "", "unfreeze"], [233, 2, 1, "", "weight"]], "gammapy.modeling.models.GaussianSpatialModel": [[234, 3, 1, "", "__call__"], [234, 3, 1, "", "copy"], [234, 2, 1, "", "covariance"], [234, 2, 1, "", "default_parameters"], [234, 2, 1, "", "e"], [234, 3, 1, "", "evaluate"], [234, 3, 1, "", "evaluate_geom"], [234, 2, 1, "", "evaluation_bin_size_min"], [234, 2, 1, "", "evaluation_radius"], [234, 2, 1, "", "evaluation_region"], [234, 3, 1, "", "freeze"], [234, 3, 1, "", "from_dict"], [234, 3, 1, "", "from_parameters"], [234, 3, 1, "", "from_position"], [234, 2, 1, "", "frozen"], [234, 3, 1, "", "integrate_geom"], [234, 2, 1, "", "is_energy_dependent"], [234, 2, 1, "", "lat_0"], [234, 2, 1, "", "lon_0"], [234, 2, 1, "", "parameters"], [234, 2, 1, "", "parameters_unique_names"], [234, 2, 1, "", "phi"], [234, 2, 1, "", "phi_0"], [234, 3, 1, "", "plot"], [234, 3, 1, "", "plot_error"], [234, 3, 1, "", "plot_grid"], [234, 3, 1, "", "plot_interactive"], [234, 3, 1, "", "plot_position_error"], [234, 2, 1, "", "position"], [234, 2, 1, "", "position_error"], [234, 2, 1, "", "position_lonlat"], [234, 3, 1, "", "reassign"], [234, 2, 1, "", "sigma"], [234, 2, 1, "", "tag"], [234, 3, 1, "", "to_dict"], [234, 3, 1, "", "to_region"], [234, 2, 1, "", "type"], [234, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GaussianSpectralModel": [[235, 3, 1, "", "__call__"], [235, 2, 1, "", "amplitude"], [235, 3, 1, "", "copy"], [235, 2, 1, "", "covariance"], [235, 2, 1, "", "default_parameters"], [235, 3, 1, "", "energy_flux"], [235, 3, 1, "", "energy_flux_error"], [235, 3, 1, "", "evaluate"], [235, 3, 1, "", "evaluate_error"], [235, 3, 1, "", "freeze"], [235, 3, 1, "", "from_dict"], [235, 3, 1, "", "from_parameters"], [235, 2, 1, "", "frozen"], [235, 3, 1, "", "integral"], [235, 3, 1, "", "integral_error"], [235, 3, 1, "", "inverse"], [235, 3, 1, "", "inverse_all"], [235, 2, 1, "", "is_norm_spectral_model"], [235, 2, 1, "", "mean"], [235, 2, 1, "", "parameters"], [235, 2, 1, "", "parameters_unique_names"], [235, 2, 1, "", "pivot_energy"], [235, 3, 1, "", "plot"], [235, 3, 1, "", "plot_error"], [235, 3, 1, "", "reassign"], [235, 3, 1, "", "reference_fluxes"], [235, 2, 1, "", "sigma"], [235, 3, 1, "", "spectral_index"], [235, 3, 1, "", "spectral_index_error"], [235, 2, 1, "", "tag"], [235, 3, 1, "", "to_dict"], [235, 2, 1, "", "type"], [235, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GaussianTemporalModel": [[236, 3, 1, "", "__call__"], [236, 3, 1, "", "copy"], [236, 2, 1, "", "covariance"], [236, 2, 1, "", "default_parameters"], [236, 3, 1, "", "evaluate"], [236, 3, 1, "", "freeze"], [236, 3, 1, "", "from_dict"], [236, 3, 1, "", "from_parameters"], [236, 2, 1, "", "frozen"], [236, 3, 1, "", "integral"], [236, 2, 1, "", "is_energy_dependent"], [236, 2, 1, "", "parameters"], [236, 2, 1, "", "parameters_unique_names"], [236, 3, 1, "", "plot"], [236, 3, 1, "", "reassign"], [236, 2, 1, "", "reference_time"], [236, 3, 1, "", "sample_time"], [236, 2, 1, "", "sigma"], [236, 2, 1, "", "t_ref"], [236, 2, 1, "", "tag"], [236, 3, 1, "", "time_sum"], [236, 3, 1, "", "to_dict"], [236, 2, 1, "", "type"], [236, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GeneralizedGaussianSpatialModel": [[237, 3, 1, "", "__call__"], [237, 3, 1, "", "copy"], [237, 2, 1, "", "covariance"], [237, 2, 1, "", "default_parameters"], [237, 2, 1, "", "e"], [237, 2, 1, "", "eta"], [237, 3, 1, "", "evaluate"], [237, 3, 1, "", "evaluate_geom"], [237, 2, 1, "", "evaluation_bin_size_min"], [237, 2, 1, "", "evaluation_radius"], [237, 2, 1, "", "evaluation_region"], [237, 3, 1, "", "freeze"], [237, 3, 1, "", "from_dict"], [237, 3, 1, "", "from_parameters"], [237, 3, 1, "", "from_position"], [237, 2, 1, "", "frozen"], [237, 3, 1, "", "integrate_geom"], [237, 2, 1, "", "is_energy_dependent"], [237, 2, 1, "", "lat_0"], [237, 2, 1, "", "lon_0"], [237, 2, 1, "", "parameters"], [237, 2, 1, "", "parameters_unique_names"], [237, 2, 1, "", "phi"], [237, 2, 1, "", "phi_0"], [237, 3, 1, "", "plot"], [237, 3, 1, "", "plot_error"], [237, 3, 1, "", "plot_grid"], [237, 3, 1, "", "plot_interactive"], [237, 3, 1, "", "plot_position_error"], [237, 2, 1, "", "position"], [237, 2, 1, "", "position_error"], [237, 2, 1, "", "position_lonlat"], [237, 2, 1, "", "r_0"], [237, 3, 1, "", "reassign"], [237, 2, 1, "", "tag"], [237, 3, 1, "", "to_dict"], [237, 3, 1, "", "to_region"], [237, 2, 1, "", "type"], [237, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GeneralizedGaussianTemporalModel": [[238, 3, 1, "", "__call__"], [238, 3, 1, "", "copy"], [238, 2, 1, "", "covariance"], [238, 2, 1, "", "default_parameters"], [238, 2, 1, "", "eta"], [238, 3, 1, "", "evaluate"], [238, 3, 1, "", "freeze"], [238, 3, 1, "", "from_dict"], [238, 3, 1, "", "from_parameters"], [238, 2, 1, "", "frozen"], [238, 3, 1, "", "integral"], [238, 2, 1, "", "is_energy_dependent"], [238, 2, 1, "", "parameters"], [238, 2, 1, "", "parameters_unique_names"], [238, 3, 1, "", "plot"], [238, 3, 1, "", "reassign"], [238, 2, 1, "", "reference_time"], [238, 3, 1, "", "sample_time"], [238, 2, 1, "", "t_decay"], [238, 2, 1, "", "t_ref"], [238, 2, 1, "", "t_rise"], [238, 2, 1, "", "tag"], [238, 3, 1, "", "time_sum"], [238, 3, 1, "", "to_dict"], [238, 2, 1, "", "type"], [238, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.LightCurveTemplateTemporalModel": [[239, 3, 1, "", "__call__"], [239, 3, 1, "", "copy"], [239, 2, 1, "", "covariance"], [239, 2, 1, "", "default_parameters"], [239, 3, 1, "", "evaluate"], [239, 3, 1, "", "freeze"], [239, 3, 1, "", "from_dict"], [239, 3, 1, "", "from_parameters"], [239, 3, 1, "", "from_table"], [239, 2, 1, "", "frozen"], [239, 3, 1, "", "integral"], [239, 2, 1, "", "is_energy_dependent"], [239, 2, 1, "", "parameters"], [239, 2, 1, "", "parameters_unique_names"], [239, 3, 1, "", "plot"], [239, 3, 1, "", "read"], [239, 3, 1, "", "reassign"], [239, 2, 1, "", "reference_time"], [239, 3, 1, "", "sample_time"], [239, 2, 1, "", "t_ref"], [239, 2, 1, "", "tag"], [239, 3, 1, "", "time_sum"], [239, 3, 1, "", "to_dict"], [239, 3, 1, "", "to_table"], [239, 2, 1, "", "type"], [239, 3, 1, "", "unfreeze"], [239, 3, 1, "", "write"]], "gammapy.modeling.models.LinearTemporalModel": [[240, 3, 1, "", "__call__"], [240, 2, 1, "", "alpha"], [240, 2, 1, "", "beta"], [240, 3, 1, "", "copy"], [240, 2, 1, "", "covariance"], [240, 2, 1, "", "default_parameters"], [240, 3, 1, "", "evaluate"], [240, 3, 1, "", "freeze"], [240, 3, 1, "", "from_dict"], [240, 3, 1, "", "from_parameters"], [240, 2, 1, "", "frozen"], [240, 3, 1, "", "integral"], [240, 2, 1, "", "is_energy_dependent"], [240, 2, 1, "", "parameters"], [240, 2, 1, "", "parameters_unique_names"], [240, 3, 1, "", "plot"], [240, 3, 1, "", "reassign"], [240, 2, 1, "", "reference_time"], [240, 3, 1, "", "sample_time"], [240, 2, 1, "", "t_ref"], [240, 2, 1, "", "tag"], [240, 3, 1, "", "time_sum"], [240, 3, 1, "", "to_dict"], [240, 2, 1, "", "type"], [240, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.LogParabolaNormSpectralModel": [[241, 3, 1, "", "__call__"], [241, 2, 1, "", "alpha"], [241, 2, 1, "", "beta"], [241, 3, 1, "", "copy"], [241, 2, 1, "", "covariance"], [241, 2, 1, "", "default_parameters"], [241, 3, 1, "", "energy_flux"], [241, 3, 1, "", "energy_flux_error"], [241, 3, 1, "", "evaluate"], [241, 3, 1, "", "evaluate_error"], [241, 3, 1, "", "freeze"], [241, 3, 1, "", "from_dict"], [241, 3, 1, "", "from_log10"], [241, 3, 1, "", "from_parameters"], [241, 2, 1, "", "frozen"], [241, 3, 1, "", "integral"], [241, 3, 1, "", "integral_error"], [241, 3, 1, "", "inverse"], [241, 3, 1, "", "inverse_all"], [241, 2, 1, "", "is_norm_spectral_model"], [241, 2, 1, "", "norm"], [241, 2, 1, "", "parameters"], [241, 2, 1, "", "parameters_unique_names"], [241, 2, 1, "", "pivot_energy"], [241, 3, 1, "", "plot"], [241, 3, 1, "", "plot_error"], [241, 3, 1, "", "reassign"], [241, 2, 1, "", "reference"], [241, 3, 1, "", "reference_fluxes"], [241, 3, 1, "", "spectral_index"], [241, 3, 1, "", "spectral_index_error"], [241, 2, 1, "", "tag"], [241, 3, 1, "", "to_dict"], [241, 2, 1, "", "type"], [241, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.LogParabolaSpectralModel": [[242, 3, 1, "", "__call__"], [242, 2, 1, "", "alpha"], [242, 2, 1, "", "amplitude"], [242, 2, 1, "", "beta"], [242, 3, 1, "", "copy"], [242, 2, 1, "", "covariance"], [242, 2, 1, "", "default_parameters"], [242, 2, 1, "", "e_peak"], [242, 3, 1, "", "energy_flux"], [242, 3, 1, "", "energy_flux_error"], [242, 3, 1, "", "evaluate"], [242, 3, 1, "", "evaluate_error"], [242, 3, 1, "", "freeze"], [242, 3, 1, "", "from_dict"], [242, 3, 1, "", "from_log10"], [242, 3, 1, "", "from_parameters"], [242, 2, 1, "", "frozen"], [242, 3, 1, "", "integral"], [242, 3, 1, "", "integral_error"], [242, 3, 1, "", "inverse"], [242, 3, 1, "", "inverse_all"], [242, 2, 1, "", "is_norm_spectral_model"], [242, 2, 1, "", "parameters"], [242, 2, 1, "", "parameters_unique_names"], [242, 2, 1, "", "pivot_energy"], [242, 3, 1, "", "plot"], [242, 3, 1, "", "plot_error"], [242, 3, 1, "", "reassign"], [242, 2, 1, "", "reference"], [242, 3, 1, "", "reference_fluxes"], [242, 3, 1, "", "spectral_index"], [242, 3, 1, "", "spectral_index_error"], [242, 2, 1, "", "tag"], [242, 3, 1, "", "to_dict"], [242, 2, 1, "", "type"], [242, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.MeyerCrabSpectralModel": [[244, 3, 1, "", "__call__"], [244, 2, 1, "", "coefficients"], [244, 3, 1, "", "copy"], [244, 2, 1, "", "covariance"], [244, 2, 1, "", "default_parameters"], [244, 3, 1, "", "energy_flux"], [244, 3, 1, "", "energy_flux_error"], [244, 3, 1, "", "evaluate"], [244, 3, 1, "", "evaluate_error"], [244, 3, 1, "", "freeze"], [244, 3, 1, "", "from_dict"], [244, 3, 1, "", "from_parameters"], [244, 2, 1, "", "frozen"], [244, 3, 1, "", "integral"], [244, 3, 1, "", "integral_error"], [244, 3, 1, "", "inverse"], [244, 3, 1, "", "inverse_all"], [244, 2, 1, "", "is_norm_spectral_model"], [244, 2, 1, "", "norm"], [244, 2, 1, "", "parameters"], [244, 2, 1, "", "parameters_unique_names"], [244, 2, 1, "", "pivot_energy"], [244, 3, 1, "", "plot"], [244, 3, 1, "", "plot_error"], [244, 3, 1, "", "reassign"], [244, 3, 1, "", "reference_fluxes"], [244, 3, 1, "", "spectral_index"], [244, 3, 1, "", "spectral_index_error"], [244, 3, 1, "", "to_dict"], [244, 2, 1, "", "type"], [244, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Model": [[245, 3, 1, "", "create"], [245, 3, 1, "", "from_dict"]], "gammapy.modeling.models.ModelBase": [[246, 3, 1, "", "copy"], [246, 2, 1, "", "covariance"], [246, 3, 1, "", "freeze"], [246, 3, 1, "", "from_dict"], [246, 3, 1, "", "from_parameters"], [246, 2, 1, "", "frozen"], [246, 2, 1, "", "parameters"], [246, 2, 1, "", "parameters_unique_names"], [246, 3, 1, "", "reassign"], [246, 3, 1, "", "to_dict"], [246, 2, 1, "", "type"], [246, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Models": [[247, 3, 1, "", "append"], [247, 3, 1, "", "clear"], [247, 3, 1, "", "copy"], [247, 3, 1, "", "count"], [247, 2, 1, "", "covariance"], [247, 3, 1, "", "extend"], [247, 3, 1, "", "freeze"], [247, 3, 1, "", "from_dict"], [247, 3, 1, "", "from_yaml"], [247, 2, 1, "", "frozen"], [247, 3, 1, "", "index"], [247, 3, 1, "", "insert"], [247, 2, 1, "", "names"], [247, 2, 1, "", "parameters"], [247, 2, 1, "", "parameters_unique_names"], [247, 3, 1, "", "plot_positions"], [247, 3, 1, "", "plot_regions"], [247, 3, 1, "", "pop"], [247, 2, 1, "", "positions"], [247, 3, 1, "", "read"], [247, 3, 1, "", "read_covariance"], [247, 3, 1, "", "reassign"], [247, 3, 1, "", "remove"], [247, 3, 1, "", "restore_status"], [247, 3, 1, "", "reverse"], [247, 3, 1, "", "select"], [247, 3, 1, "", "select_from_geom"], [247, 3, 1, "", "select_mask"], [247, 3, 1, "", "select_region"], [247, 3, 1, "", "selection_mask"], [247, 3, 1, "", "set_parameters_bounds"], [247, 3, 1, "", "set_prior"], [247, 3, 1, "", "to_dict"], [247, 3, 1, "", "to_parameters_table"], [247, 3, 1, "", "to_regions"], [247, 3, 1, "", "to_template_sky_model"], [247, 3, 1, "", "to_template_spectral_model"], [247, 3, 1, "", "to_yaml"], [247, 3, 1, "", "unfreeze"], [247, 3, 1, "", "update_link_label"], [247, 3, 1, "", "update_parameters_from_table"], [247, 2, 1, "", "wcs_geom"], [247, 3, 1, "", "write"], [247, 3, 1, "", "write_covariance"]], "gammapy.modeling.models.NaimaSpectralModel": [[248, 3, 1, "", "__call__"], [248, 3, 1, "", "copy"], [248, 2, 1, "", "covariance"], [248, 2, 1, "", "default_parameters"], [248, 3, 1, "", "energy_flux"], [248, 3, 1, "", "energy_flux_error"], [248, 3, 1, "", "evaluate"], [248, 3, 1, "", "evaluate_error"], [248, 3, 1, "", "freeze"], [248, 3, 1, "", "from_dict"], [248, 3, 1, "", "from_parameters"], [248, 2, 1, "", "frozen"], [248, 2, 1, "", "include_ssc"], [248, 3, 1, "", "integral"], [248, 3, 1, "", "integral_error"], [248, 3, 1, "", "inverse"], [248, 3, 1, "", "inverse_all"], [248, 2, 1, "", "is_norm_spectral_model"], [248, 2, 1, "", "parameters"], [248, 2, 1, "", "parameters_unique_names"], [248, 2, 1, "", "particle_distribution"], [248, 2, 1, "", "pivot_energy"], [248, 3, 1, "", "plot"], [248, 3, 1, "", "plot_error"], [248, 3, 1, "", "reassign"], [248, 3, 1, "", "reference_fluxes"], [248, 3, 1, "", "spectral_index"], [248, 3, 1, "", "spectral_index_error"], [248, 2, 1, "", "ssc_model"], [248, 2, 1, "", "tag"], [248, 3, 1, "", "to_dict"], [248, 2, 1, "", "type"], [248, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PiecewiseNormSpatialModel": [[249, 3, 1, "", "__call__"], [249, 2, 1, "", "coords"], [249, 3, 1, "", "copy"], [249, 2, 1, "", "covariance"], [249, 2, 1, "", "default_parameters"], [249, 3, 1, "", "evaluate"], [249, 3, 1, "", "evaluate_geom"], [249, 2, 1, "", "evaluation_bin_size_min"], [249, 2, 1, "", "evaluation_radius"], [249, 2, 1, "", "evaluation_region"], [249, 3, 1, "", "freeze"], [249, 3, 1, "", "from_dict"], [249, 3, 1, "", "from_parameters"], [249, 3, 1, "", "from_position"], [249, 2, 1, "", "frozen"], [249, 3, 1, "", "integrate_geom"], [249, 2, 1, "", "is_energy_dependent"], [249, 2, 1, "", "norms"], [249, 2, 1, "", "parameters"], [249, 2, 1, "", "parameters_unique_names"], [249, 2, 1, "", "phi_0"], [249, 3, 1, "", "plot"], [249, 3, 1, "", "plot_error"], [249, 3, 1, "", "plot_grid"], [249, 3, 1, "", "plot_interactive"], [249, 3, 1, "", "plot_position_error"], [249, 2, 1, "", "position"], [249, 2, 1, "", "position_error"], [249, 2, 1, "", "position_lonlat"], [249, 3, 1, "", "reassign"], [249, 2, 1, "", "tag"], [249, 3, 1, "", "to_dict"], [249, 2, 1, "", "type"], [249, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PiecewiseNormSpectralModel": [[250, 3, 1, "", "__call__"], [250, 3, 1, "", "copy"], [250, 2, 1, "", "covariance"], [250, 2, 1, "", "default_parameters"], [250, 2, 1, "", "energy"], [250, 3, 1, "", "energy_flux"], [250, 3, 1, "", "energy_flux_error"], [250, 3, 1, "", "evaluate"], [250, 3, 1, "", "evaluate_error"], [250, 3, 1, "", "freeze"], [250, 3, 1, "", "from_dict"], [250, 3, 1, "", "from_parameters"], [250, 2, 1, "", "frozen"], [250, 3, 1, "", "integral"], [250, 3, 1, "", "integral_error"], [250, 3, 1, "", "inverse"], [250, 3, 1, "", "inverse_all"], [250, 2, 1, "", "is_norm_spectral_model"], [250, 2, 1, "", "norms"], [250, 2, 1, "", "parameters"], [250, 2, 1, "", "parameters_unique_names"], [250, 2, 1, "", "pivot_energy"], [250, 3, 1, "", "plot"], [250, 3, 1, "", "plot_error"], [250, 3, 1, "", "reassign"], [250, 3, 1, "", "reference_fluxes"], [250, 3, 1, "", "spectral_index"], [250, 3, 1, "", "spectral_index_error"], [250, 2, 1, "", "tag"], [250, 3, 1, "", "to_dict"], [250, 2, 1, "", "type"], [250, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PointSpatialModel": [[251, 3, 1, "", "__call__"], [251, 3, 1, "", "copy"], [251, 2, 1, "", "covariance"], [251, 2, 1, "", "default_parameters"], [251, 3, 1, "", "evaluate_geom"], [251, 2, 1, "", "evaluation_bin_size_min"], [251, 2, 1, "", "evaluation_radius"], [251, 2, 1, "", "evaluation_region"], [251, 3, 1, "", "freeze"], [251, 3, 1, "", "from_dict"], [251, 3, 1, "", "from_parameters"], [251, 3, 1, "", "from_position"], [251, 2, 1, "", "frozen"], [251, 3, 1, "", "integrate_geom"], [251, 2, 1, "", "is_energy_dependent"], [251, 2, 1, "", "lat_0"], [251, 2, 1, "", "lon_0"], [251, 2, 1, "", "parameters"], [251, 2, 1, "", "parameters_unique_names"], [251, 2, 1, "", "phi_0"], [251, 3, 1, "", "plot"], [251, 3, 1, "", "plot_error"], [251, 3, 1, "", "plot_grid"], [251, 3, 1, "", "plot_interactive"], [251, 3, 1, "", "plot_position_error"], [251, 2, 1, "", "position"], [251, 2, 1, "", "position_error"], [251, 2, 1, "", "position_lonlat"], [251, 3, 1, "", "reassign"], [251, 2, 1, "", "tag"], [251, 3, 1, "", "to_dict"], [251, 3, 1, "", "to_region"], [251, 2, 1, "", "type"], [251, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLaw2SpectralModel": [[252, 3, 1, "", "__call__"], [252, 2, 1, "", "amplitude"], [252, 3, 1, "", "copy"], [252, 2, 1, "", "covariance"], [252, 2, 1, "", "default_parameters"], [252, 2, 1, "", "emax"], [252, 2, 1, "", "emin"], [252, 3, 1, "", "energy_flux"], [252, 3, 1, "", "energy_flux_error"], [252, 3, 1, "", "evaluate"], [252, 3, 1, "", "evaluate_error"], [252, 3, 1, "", "evaluate_integral"], [252, 3, 1, "", "freeze"], [252, 3, 1, "", "from_dict"], [252, 3, 1, "", "from_parameters"], [252, 2, 1, "", "frozen"], [252, 2, 1, "", "index"], [252, 3, 1, "", "integral"], [252, 3, 1, "", "integral_error"], [252, 3, 1, "", "inverse"], [252, 3, 1, "", "inverse_all"], [252, 2, 1, "", "is_norm_spectral_model"], [252, 2, 1, "", "parameters"], [252, 2, 1, "", "parameters_unique_names"], [252, 2, 1, "", "pivot_energy"], [252, 3, 1, "", "plot"], [252, 3, 1, "", "plot_error"], [252, 3, 1, "", "reassign"], [252, 3, 1, "", "reference_fluxes"], [252, 3, 1, "", "spectral_index"], [252, 3, 1, "", "spectral_index_error"], [252, 2, 1, "", "tag"], [252, 3, 1, "", "to_dict"], [252, 2, 1, "", "type"], [252, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLawNormSpectralModel": [[253, 3, 1, "", "__call__"], [253, 3, 1, "", "copy"], [253, 2, 1, "", "covariance"], [253, 2, 1, "", "default_parameters"], [253, 3, 1, "", "energy_flux"], [253, 3, 1, "", "energy_flux_error"], [253, 3, 1, "", "evaluate"], [253, 3, 1, "", "evaluate_energy_flux"], [253, 3, 1, "", "evaluate_error"], [253, 3, 1, "", "evaluate_integral"], [253, 3, 1, "", "freeze"], [253, 3, 1, "", "from_dict"], [253, 3, 1, "", "from_parameters"], [253, 2, 1, "", "frozen"], [253, 3, 1, "", "integral"], [253, 3, 1, "", "integral_error"], [253, 3, 1, "", "inverse"], [253, 3, 1, "", "inverse_all"], [253, 2, 1, "", "is_norm_spectral_model"], [253, 2, 1, "", "norm"], [253, 2, 1, "", "parameters"], [253, 2, 1, "", "parameters_unique_names"], [253, 2, 1, "", "pivot_energy"], [253, 3, 1, "", "plot"], [253, 3, 1, "", "plot_error"], [253, 3, 1, "", "reassign"], [253, 2, 1, "", "reference"], [253, 3, 1, "", "reference_fluxes"], [253, 3, 1, "", "spectral_index"], [253, 3, 1, "", "spectral_index_error"], [253, 2, 1, "", "tag"], [253, 2, 1, "", "tilt"], [253, 3, 1, "", "to_dict"], [253, 2, 1, "", "type"], [253, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLawSpectralModel": [[254, 3, 1, "", "__call__"], [254, 2, 1, "", "amplitude"], [254, 3, 1, "", "copy"], [254, 2, 1, "", "covariance"], [254, 2, 1, "", "default_parameters"], [254, 3, 1, "", "energy_flux"], [254, 3, 1, "", "energy_flux_error"], [254, 3, 1, "", "evaluate"], [254, 3, 1, "", "evaluate_energy_flux"], [254, 3, 1, "", "evaluate_error"], [254, 3, 1, "", "evaluate_integral"], [254, 3, 1, "", "freeze"], [254, 3, 1, "", "from_dict"], [254, 3, 1, "", "from_parameters"], [254, 2, 1, "", "frozen"], [254, 2, 1, "", "index"], [254, 3, 1, "", "integral"], [254, 3, 1, "", "integral_error"], [254, 3, 1, "", "inverse"], [254, 3, 1, "", "inverse_all"], [254, 2, 1, "", "is_norm_spectral_model"], [254, 2, 1, "", "parameters"], [254, 2, 1, "", "parameters_unique_names"], [254, 2, 1, "", "pivot_energy"], [254, 3, 1, "", "plot"], [254, 3, 1, "", "plot_error"], [254, 3, 1, "", "reassign"], [254, 2, 1, "", "reference"], [254, 3, 1, "", "reference_fluxes"], [254, 3, 1, "", "spectral_index"], [254, 3, 1, "", "spectral_index_error"], [254, 2, 1, "", "tag"], [254, 3, 1, "", "to_dict"], [254, 2, 1, "", "type"], [254, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLawTemporalModel": [[255, 3, 1, "", "__call__"], [255, 2, 1, "", "alpha"], [255, 3, 1, "", "copy"], [255, 2, 1, "", "covariance"], [255, 2, 1, "", "default_parameters"], [255, 3, 1, "", "evaluate"], [255, 3, 1, "", "freeze"], [255, 3, 1, "", "from_dict"], [255, 3, 1, "", "from_parameters"], [255, 2, 1, "", "frozen"], [255, 3, 1, "", "integral"], [255, 2, 1, "", "is_energy_dependent"], [255, 2, 1, "", "parameters"], [255, 2, 1, "", "parameters_unique_names"], [255, 3, 1, "", "plot"], [255, 3, 1, "", "reassign"], [255, 2, 1, "", "reference_time"], [255, 3, 1, "", "sample_time"], [255, 2, 1, "", "t0"], [255, 2, 1, "", "t_ref"], [255, 2, 1, "", "tag"], [255, 3, 1, "", "time_sum"], [255, 3, 1, "", "to_dict"], [255, 2, 1, "", "type"], [255, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Prior": [[256, 3, 1, "", "__call__"], [256, 3, 1, "", "copy"], [256, 2, 1, "", "covariance"], [256, 2, 1, "", "default_parameters"], [256, 3, 1, "", "freeze"], [256, 3, 1, "", "from_dict"], [256, 3, 1, "", "from_parameters"], [256, 2, 1, "", "frozen"], [256, 2, 1, "", "parameters"], [256, 2, 1, "", "parameters_unique_names"], [256, 3, 1, "", "reassign"], [256, 3, 1, "", "to_dict"], [256, 2, 1, "", "type"], [256, 3, 1, "", "unfreeze"], [256, 2, 1, "", "weight"]], "gammapy.modeling.models.ScaleSpectralModel": [[259, 3, 1, "", "__call__"], [259, 3, 1, "", "copy"], [259, 2, 1, "", "covariance"], [259, 2, 1, "", "default_parameters"], [259, 3, 1, "", "energy_flux"], [259, 3, 1, "", "energy_flux_error"], [259, 3, 1, "", "evaluate"], [259, 3, 1, "", "evaluate_error"], [259, 3, 1, "", "freeze"], [259, 3, 1, "", "from_dict"], [259, 3, 1, "", "from_parameters"], [259, 2, 1, "", "frozen"], [259, 3, 1, "", "integral"], [259, 3, 1, "", "integral_error"], [259, 3, 1, "", "inverse"], [259, 3, 1, "", "inverse_all"], [259, 2, 1, "", "is_norm_spectral_model"], [259, 2, 1, "", "norm"], [259, 2, 1, "", "parameters"], [259, 2, 1, "", "parameters_unique_names"], [259, 2, 1, "", "pivot_energy"], [259, 3, 1, "", "plot"], [259, 3, 1, "", "plot_error"], [259, 3, 1, "", "reassign"], [259, 3, 1, "", "reference_fluxes"], [259, 3, 1, "", "spectral_index"], [259, 3, 1, "", "spectral_index_error"], [259, 2, 1, "", "tag"], [259, 3, 1, "", "to_dict"], [259, 2, 1, "", "type"], [259, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Shell2SpatialModel": [[260, 3, 1, "", "__call__"], [260, 3, 1, "", "copy"], [260, 2, 1, "", "covariance"], [260, 2, 1, "", "default_parameters"], [260, 2, 1, "", "eta"], [260, 3, 1, "", "evaluate"], [260, 3, 1, "", "evaluate_geom"], [260, 2, 1, "", "evaluation_bin_size_min"], [260, 2, 1, "", "evaluation_radius"], [260, 2, 1, "", "evaluation_region"], [260, 3, 1, "", "freeze"], [260, 3, 1, "", "from_dict"], [260, 3, 1, "", "from_parameters"], [260, 3, 1, "", "from_position"], [260, 2, 1, "", "frozen"], [260, 3, 1, "", "integrate_geom"], [260, 2, 1, "", "is_energy_dependent"], [260, 2, 1, "", "lat_0"], [260, 2, 1, "", "lon_0"], [260, 2, 1, "", "parameters"], [260, 2, 1, "", "parameters_unique_names"], [260, 2, 1, "", "phi_0"], [260, 3, 1, "", "plot"], [260, 3, 1, "", "plot_error"], [260, 3, 1, "", "plot_grid"], [260, 3, 1, "", "plot_interactive"], [260, 3, 1, "", "plot_position_error"], [260, 2, 1, "", "position"], [260, 2, 1, "", "position_error"], [260, 2, 1, "", "position_lonlat"], [260, 2, 1, "", "r_0"], [260, 2, 1, "", "r_in"], [260, 3, 1, "", "reassign"], [260, 2, 1, "", "tag"], [260, 3, 1, "", "to_dict"], [260, 3, 1, "", "to_region"], [260, 2, 1, "", "type"], [260, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ShellSpatialModel": [[261, 3, 1, "", "__call__"], [261, 3, 1, "", "copy"], [261, 2, 1, "", "covariance"], [261, 2, 1, "", "default_parameters"], [261, 3, 1, "", "evaluate"], [261, 3, 1, "", "evaluate_geom"], [261, 2, 1, "", "evaluation_bin_size_min"], [261, 2, 1, "", "evaluation_radius"], [261, 2, 1, "", "evaluation_region"], [261, 3, 1, "", "freeze"], [261, 3, 1, "", "from_dict"], [261, 3, 1, "", "from_parameters"], [261, 3, 1, "", "from_position"], [261, 2, 1, "", "frozen"], [261, 3, 1, "", "integrate_geom"], [261, 2, 1, "", "is_energy_dependent"], [261, 2, 1, "", "lat_0"], [261, 2, 1, "", "lon_0"], [261, 2, 1, "", "parameters"], [261, 2, 1, "", "parameters_unique_names"], [261, 2, 1, "", "phi_0"], [261, 3, 1, "", "plot"], [261, 3, 1, "", "plot_error"], [261, 3, 1, "", "plot_grid"], [261, 3, 1, "", "plot_interactive"], [261, 3, 1, "", "plot_position_error"], [261, 2, 1, "", "position"], [261, 2, 1, "", "position_error"], [261, 2, 1, "", "position_lonlat"], [261, 2, 1, "", "radius"], [261, 3, 1, "", "reassign"], [261, 2, 1, "", "tag"], [261, 3, 1, "", "to_dict"], [261, 3, 1, "", "to_region"], [261, 2, 1, "", "type"], [261, 3, 1, "", "unfreeze"], [261, 2, 1, "", "width"]], "gammapy.modeling.models.SineTemporalModel": [[262, 3, 1, "", "__call__"], [262, 2, 1, "", "amp"], [262, 3, 1, "", "copy"], [262, 2, 1, "", "covariance"], [262, 2, 1, "", "default_parameters"], [262, 3, 1, "", "evaluate"], [262, 3, 1, "", "freeze"], [262, 3, 1, "", "from_dict"], [262, 3, 1, "", "from_parameters"], [262, 2, 1, "", "frozen"], [262, 3, 1, "", "integral"], [262, 2, 1, "", "is_energy_dependent"], [262, 2, 1, "", "omega"], [262, 2, 1, "", "parameters"], [262, 2, 1, "", "parameters_unique_names"], [262, 3, 1, "", "plot"], [262, 3, 1, "", "reassign"], [262, 2, 1, "", "reference_time"], [262, 3, 1, "", "sample_time"], [262, 2, 1, "", "t_ref"], [262, 2, 1, "", "tag"], [262, 3, 1, "", "time_sum"], [262, 3, 1, "", "to_dict"], [262, 2, 1, "", "type"], [262, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SkyModel": [[263, 3, 1, "", "__call__"], [263, 3, 1, "", "contributes"], [263, 3, 1, "", "copy"], [263, 2, 1, "", "covariance"], [263, 3, 1, "", "create"], [263, 2, 1, "", "default_parameters"], [263, 3, 1, "", "evaluate"], [263, 3, 1, "", "evaluate_geom"], [263, 2, 1, "", "evaluation_bin_size_min"], [263, 2, 1, "", "evaluation_radius"], [263, 2, 1, "", "evaluation_region"], [263, 2, 1, "", "frame"], [263, 3, 1, "", "freeze"], [263, 3, 1, "", "from_dict"], [263, 3, 1, "", "from_parameters"], [263, 2, 1, "", "frozen"], [263, 3, 1, "", "integrate_geom"], [263, 2, 1, "", "name"], [263, 2, 1, "", "parameters"], [263, 2, 1, "", "parameters_unique_names"], [263, 2, 1, "", "position"], [263, 2, 1, "", "position_lonlat"], [263, 3, 1, "", "reassign"], [263, 2, 1, "", "spatial_model"], [263, 2, 1, "", "spectral_model"], [263, 2, 1, "", "tag"], [263, 2, 1, "", "temporal_model"], [263, 3, 1, "", "to_dict"], [263, 2, 1, "", "type"], [263, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel": [[264, 3, 1, "", "__call__"], [264, 2, 1, "", "amplitude"], [264, 2, 1, "", "beta"], [264, 3, 1, "", "copy"], [264, 2, 1, "", "covariance"], [264, 2, 1, "", "default_parameters"], [264, 2, 1, "", "ebreak"], [264, 3, 1, "", "energy_flux"], [264, 3, 1, "", "energy_flux_error"], [264, 3, 1, "", "evaluate"], [264, 3, 1, "", "evaluate_error"], [264, 3, 1, "", "freeze"], [264, 3, 1, "", "from_dict"], [264, 3, 1, "", "from_parameters"], [264, 2, 1, "", "frozen"], [264, 2, 1, "", "index1"], [264, 2, 1, "", "index2"], [264, 3, 1, "", "integral"], [264, 3, 1, "", "integral_error"], [264, 3, 1, "", "inverse"], [264, 3, 1, "", "inverse_all"], [264, 2, 1, "", "is_norm_spectral_model"], [264, 2, 1, "", "parameters"], [264, 2, 1, "", "parameters_unique_names"], [264, 2, 1, "", "pivot_energy"], [264, 3, 1, "", "plot"], [264, 3, 1, "", "plot_error"], [264, 3, 1, "", "reassign"], [264, 2, 1, "", "reference"], [264, 3, 1, "", "reference_fluxes"], [264, 3, 1, "", "spectral_index"], [264, 3, 1, "", "spectral_index_error"], [264, 2, 1, "", "tag"], [264, 3, 1, "", "to_dict"], [264, 2, 1, "", "type"], [264, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SpatialModel": [[265, 3, 1, "", "__call__"], [265, 3, 1, "", "copy"], [265, 2, 1, "", "covariance"], [265, 2, 1, "", "default_parameters"], [265, 3, 1, "", "evaluate_geom"], [265, 2, 1, "", "evaluation_bin_size_min"], [265, 2, 1, "", "evaluation_radius"], [265, 2, 1, "", "evaluation_region"], [265, 3, 1, "", "freeze"], [265, 3, 1, "", "from_dict"], [265, 3, 1, "", "from_parameters"], [265, 3, 1, "", "from_position"], [265, 2, 1, "", "frozen"], [265, 3, 1, "", "integrate_geom"], [265, 2, 1, "", "is_energy_dependent"], [265, 2, 1, "", "parameters"], [265, 2, 1, "", "parameters_unique_names"], [265, 2, 1, "", "phi_0"], [265, 3, 1, "", "plot"], [265, 3, 1, "", "plot_error"], [265, 3, 1, "", "plot_grid"], [265, 3, 1, "", "plot_interactive"], [265, 3, 1, "", "plot_position_error"], [265, 2, 1, "", "position"], [265, 2, 1, "", "position_error"], [265, 2, 1, "", "position_lonlat"], [265, 3, 1, "", "reassign"], [265, 3, 1, "", "to_dict"], [265, 2, 1, "", "type"], [265, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SpectralModel": [[266, 3, 1, "", "__call__"], [266, 3, 1, "", "copy"], [266, 2, 1, "", "covariance"], [266, 2, 1, "", "default_parameters"], [266, 3, 1, "", "energy_flux"], [266, 3, 1, "", "energy_flux_error"], [266, 3, 1, "", "evaluate_error"], [266, 3, 1, "", "freeze"], [266, 3, 1, "", "from_dict"], [266, 3, 1, "", "from_parameters"], [266, 2, 1, "", "frozen"], [266, 3, 1, "", "integral"], [266, 3, 1, "", "integral_error"], [266, 3, 1, "", "inverse"], [266, 3, 1, "", "inverse_all"], [266, 2, 1, "", "is_norm_spectral_model"], [266, 2, 1, "", "parameters"], [266, 2, 1, "", "parameters_unique_names"], [266, 2, 1, "", "pivot_energy"], [266, 3, 1, "", "plot"], [266, 3, 1, "", "plot_error"], [266, 3, 1, "", "reassign"], [266, 3, 1, "", "reference_fluxes"], [266, 3, 1, "", "spectral_index"], [266, 3, 1, "", "spectral_index_error"], [266, 3, 1, "", "to_dict"], [266, 2, 1, "", "type"], [266, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel": [[267, 3, 1, "", "__call__"], [267, 2, 1, "", "amplitude"], [267, 3, 1, "", "copy"], [267, 2, 1, "", "covariance"], [267, 2, 1, "", "default_parameters"], [267, 2, 1, "", "ecut"], [267, 3, 1, "", "energy_flux"], [267, 3, 1, "", "energy_flux_error"], [267, 3, 1, "", "evaluate"], [267, 3, 1, "", "evaluate_error"], [267, 3, 1, "", "freeze"], [267, 3, 1, "", "from_dict"], [267, 3, 1, "", "from_parameters"], [267, 2, 1, "", "frozen"], [267, 2, 1, "", "index_1"], [267, 2, 1, "", "index_2"], [267, 3, 1, "", "integral"], [267, 3, 1, "", "integral_error"], [267, 3, 1, "", "inverse"], [267, 3, 1, "", "inverse_all"], [267, 2, 1, "", "is_norm_spectral_model"], [267, 2, 1, "", "parameters"], [267, 2, 1, "", "parameters_unique_names"], [267, 2, 1, "", "pivot_energy"], [267, 3, 1, "", "plot"], [267, 3, 1, "", "plot_error"], [267, 3, 1, "", "reassign"], [267, 2, 1, "", "reference"], [267, 3, 1, "", "reference_fluxes"], [267, 3, 1, "", "spectral_index"], [267, 3, 1, "", "spectral_index_error"], [267, 2, 1, "", "tag"], [267, 3, 1, "", "to_dict"], [267, 2, 1, "", "type"], [267, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel": [[268, 3, 1, "", "__call__"], [268, 2, 1, "", "amplitude"], [268, 3, 1, "", "copy"], [268, 2, 1, "", "covariance"], [268, 2, 1, "", "default_parameters"], [268, 3, 1, "", "energy_flux"], [268, 3, 1, "", "energy_flux_error"], [268, 3, 1, "", "evaluate"], [268, 3, 1, "", "evaluate_error"], [268, 2, 1, "", "expfactor"], [268, 3, 1, "", "freeze"], [268, 3, 1, "", "from_dict"], [268, 3, 1, "", "from_parameters"], [268, 2, 1, "", "frozen"], [268, 2, 1, "", "index_1"], [268, 2, 1, "", "index_2"], [268, 3, 1, "", "integral"], [268, 3, 1, "", "integral_error"], [268, 3, 1, "", "inverse"], [268, 3, 1, "", "inverse_all"], [268, 2, 1, "", "is_norm_spectral_model"], [268, 2, 1, "", "parameters"], [268, 2, 1, "", "parameters_unique_names"], [268, 2, 1, "", "pivot_energy"], [268, 3, 1, "", "plot"], [268, 3, 1, "", "plot_error"], [268, 3, 1, "", "reassign"], [268, 2, 1, "", "reference"], [268, 3, 1, "", "reference_fluxes"], [268, 3, 1, "", "spectral_index"], [268, 3, 1, "", "spectral_index_error"], [268, 2, 1, "", "tag"], [268, 3, 1, "", "to_dict"], [268, 2, 1, "", "type"], [268, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel": [[269, 3, 1, "", "__call__"], [269, 2, 1, "", "amplitude"], [269, 3, 1, "", "copy"], [269, 2, 1, "", "covariance"], [269, 2, 1, "", "default_parameters"], [269, 3, 1, "", "energy_flux"], [269, 3, 1, "", "energy_flux_error"], [269, 3, 1, "", "evaluate"], [269, 3, 1, "", "evaluate_error"], [269, 2, 1, "", "expfactor"], [269, 3, 1, "", "freeze"], [269, 3, 1, "", "from_dict"], [269, 3, 1, "", "from_parameters"], [269, 2, 1, "", "frozen"], [269, 2, 1, "", "index_1"], [269, 2, 1, "", "index_2"], [269, 3, 1, "", "integral"], [269, 3, 1, "", "integral_error"], [269, 3, 1, "", "inverse"], [269, 3, 1, "", "inverse_all"], [269, 2, 1, "", "is_norm_spectral_model"], [269, 2, 1, "", "parameters"], [269, 2, 1, "", "parameters_unique_names"], [269, 2, 1, "", "pivot_energy"], [269, 3, 1, "", "plot"], [269, 3, 1, "", "plot_error"], [269, 3, 1, "", "reassign"], [269, 2, 1, "", "reference"], [269, 3, 1, "", "reference_fluxes"], [269, 3, 1, "", "spectral_index"], [269, 3, 1, "", "spectral_index_error"], [269, 2, 1, "", "tag"], [269, 3, 1, "", "to_dict"], [269, 2, 1, "", "type"], [269, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.TemplateNDSpatialModel": [[271, 3, 1, "", "__call__"], [271, 3, 1, "", "copy"], [271, 2, 1, "", "covariance"], [271, 2, 1, "", "default_parameters"], [271, 3, 1, "", "evaluate"], [271, 3, 1, "", "evaluate_geom"], [271, 2, 1, "", "evaluation_bin_size_min"], [271, 2, 1, "", "evaluation_radius"], [271, 2, 1, "", "evaluation_region"], [271, 3, 1, "", "freeze"], [271, 3, 1, "", "from_dict"], [271, 3, 1, "", "from_parameters"], [271, 3, 1, "", "from_position"], [271, 2, 1, "", "frozen"], [271, 3, 1, "", "integrate_geom"], [271, 2, 1, "", "is_energy_dependent"], [271, 2, 1, "", "map"], [271, 2, 1, "", "parameters"], [271, 2, 1, "", "parameters_unique_names"], [271, 2, 1, "", "phi_0"], [271, 3, 1, "", "plot"], [271, 3, 1, "", "plot_error"], [271, 3, 1, "", "plot_grid"], [271, 3, 1, "", "plot_interactive"], [271, 3, 1, "", "plot_position_error"], [271, 2, 1, "", "position"], [271, 2, 1, "", "position_error"], [271, 2, 1, "", "position_lonlat"], [271, 3, 1, "", "reassign"], [271, 2, 1, "", "tag"], [271, 3, 1, "", "to_dict"], [271, 2, 1, "", "type"], [271, 3, 1, "", "unfreeze"], [271, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateNDSpectralModel": [[272, 3, 1, "", "__call__"], [272, 3, 1, "", "copy"], [272, 2, 1, "", "covariance"], [272, 2, 1, "", "default_parameters"], [272, 3, 1, "", "energy_flux"], [272, 3, 1, "", "energy_flux_error"], [272, 3, 1, "", "evaluate"], [272, 3, 1, "", "evaluate_error"], [272, 3, 1, "", "freeze"], [272, 3, 1, "", "from_dict"], [272, 3, 1, "", "from_parameters"], [272, 2, 1, "", "frozen"], [272, 3, 1, "", "integral"], [272, 3, 1, "", "integral_error"], [272, 3, 1, "", "inverse"], [272, 3, 1, "", "inverse_all"], [272, 2, 1, "", "is_norm_spectral_model"], [272, 2, 1, "", "map"], [272, 2, 1, "", "parameters"], [272, 2, 1, "", "parameters_unique_names"], [272, 2, 1, "", "pivot_energy"], [272, 3, 1, "", "plot"], [272, 3, 1, "", "plot_error"], [272, 3, 1, "", "reassign"], [272, 3, 1, "", "reference_fluxes"], [272, 3, 1, "", "spectral_index"], [272, 3, 1, "", "spectral_index_error"], [272, 2, 1, "", "tag"], [272, 3, 1, "", "to_dict"], [272, 2, 1, "", "type"], [272, 3, 1, "", "unfreeze"], [272, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateNPredModel": [[273, 3, 1, "", "copy"], [273, 2, 1, "", "covariance"], [273, 3, 1, "", "cutout"], [273, 2, 1, "", "default_parameters"], [273, 2, 1, "", "energy_center"], [273, 3, 1, "", "evaluate"], [273, 2, 1, "", "evaluation_radius"], [273, 3, 1, "", "freeze"], [273, 3, 1, "", "from_dict"], [273, 3, 1, "", "from_parameters"], [273, 2, 1, "", "frozen"], [273, 2, 1, "", "map"], [273, 2, 1, "", "name"], [273, 2, 1, "", "parameters"], [273, 2, 1, "", "parameters_unique_names"], [273, 2, 1, "", "position"], [273, 3, 1, "", "reassign"], [273, 3, 1, "", "slice_by_energy"], [273, 2, 1, "", "spectral_model"], [273, 3, 1, "", "stack"], [273, 2, 1, "", "tag"], [273, 3, 1, "", "to_dict"], [273, 2, 1, "", "type"], [273, 3, 1, "", "unfreeze"], [273, 3, 1, "", "write"]], "gammapy.modeling.models.TemplatePhaseCurveTemporalModel": [[274, 3, 1, "", "__call__"], [274, 3, 1, "", "copy"], [274, 2, 1, "", "covariance"], [274, 2, 1, "", "default_parameters"], [274, 3, 1, "", "evaluate"], [274, 2, 1, "", "f0"], [274, 2, 1, "", "f1"], [274, 2, 1, "", "f2"], [274, 3, 1, "", "freeze"], [274, 3, 1, "", "from_dict"], [274, 3, 1, "", "from_parameters"], [274, 2, 1, "", "frozen"], [274, 3, 1, "", "integral"], [274, 2, 1, "", "is_energy_dependent"], [274, 2, 1, "", "parameters"], [274, 2, 1, "", "parameters_unique_names"], [274, 2, 1, "", "phi_ref"], [274, 3, 1, "", "plot"], [274, 3, 1, "", "plot_phasogram"], [274, 3, 1, "", "read"], [274, 3, 1, "", "reassign"], [274, 2, 1, "", "reference_time"], [274, 3, 1, "", "sample_time"], [274, 2, 1, "", "t_ref"], [274, 2, 1, "", "tag"], [274, 3, 1, "", "time_sum"], [274, 3, 1, "", "to_dict"], [274, 2, 1, "", "type"], [274, 3, 1, "", "unfreeze"], [274, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateSpatialModel": [[275, 3, 1, "", "__call__"], [275, 3, 1, "", "copy"], [275, 2, 1, "", "covariance"], [275, 2, 1, "", "default_parameters"], [275, 3, 1, "", "evaluate"], [275, 3, 1, "", "evaluate_geom"], [275, 2, 1, "", "evaluation_bin_size_min"], [275, 2, 1, "", "evaluation_radius"], [275, 2, 1, "", "evaluation_region"], [275, 3, 1, "", "freeze"], [275, 3, 1, "", "from_dict"], [275, 3, 1, "", "from_parameters"], [275, 3, 1, "", "from_position"], [275, 2, 1, "", "frozen"], [275, 3, 1, "", "integrate_geom"], [275, 2, 1, "", "is_energy_dependent"], [275, 2, 1, "", "lat_0"], [275, 2, 1, "", "lon_0"], [275, 2, 1, "", "map"], [275, 2, 1, "", "map_center"], [275, 2, 1, "", "parameters"], [275, 2, 1, "", "parameters_unique_names"], [275, 2, 1, "", "phi_0"], [275, 3, 1, "", "plot"], [275, 3, 1, "", "plot_error"], [275, 3, 1, "", "plot_grid"], [275, 3, 1, "", "plot_interactive"], [275, 3, 1, "", "plot_position_error"], [275, 2, 1, "", "position"], [275, 2, 1, "", "position_error"], [275, 2, 1, "", "position_lonlat"], [275, 3, 1, "", "read"], [275, 3, 1, "", "reassign"], [275, 2, 1, "", "tag"], [275, 3, 1, "", "to_dict"], [275, 3, 1, "", "to_region"], [275, 2, 1, "", "type"], [275, 3, 1, "", "unfreeze"], [275, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateSpectralModel": [[276, 3, 1, "", "__call__"], [276, 3, 1, "", "copy"], [276, 2, 1, "", "covariance"], [276, 2, 1, "", "default_parameters"], [276, 3, 1, "", "energy_flux"], [276, 3, 1, "", "energy_flux_error"], [276, 3, 1, "", "evaluate"], [276, 3, 1, "", "evaluate_error"], [276, 3, 1, "", "freeze"], [276, 3, 1, "", "from_dict"], [276, 3, 1, "", "from_parameters"], [276, 3, 1, "", "from_region_map"], [276, 2, 1, "", "frozen"], [276, 3, 1, "", "integral"], [276, 3, 1, "", "integral_error"], [276, 3, 1, "", "inverse"], [276, 3, 1, "", "inverse_all"], [276, 2, 1, "", "is_norm_spectral_model"], [276, 2, 1, "", "parameters"], [276, 2, 1, "", "parameters_unique_names"], [276, 2, 1, "", "pivot_energy"], [276, 3, 1, "", "plot"], [276, 3, 1, "", "plot_error"], [276, 3, 1, "", "read_xspec_model"], [276, 3, 1, "", "reassign"], [276, 3, 1, "", "reference_fluxes"], [276, 3, 1, "", "spectral_index"], [276, 3, 1, "", "spectral_index_error"], [276, 2, 1, "", "tag"], [276, 3, 1, "", "to_dict"], [276, 2, 1, "", "type"], [276, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.TemporalModel": [[277, 3, 1, "", "__call__"], [277, 3, 1, "", "copy"], [277, 2, 1, "", "covariance"], [277, 2, 1, "", "default_parameters"], [277, 3, 1, "", "freeze"], [277, 3, 1, "", "from_dict"], [277, 3, 1, "", "from_parameters"], [277, 2, 1, "", "frozen"], [277, 3, 1, "", "integral"], [277, 2, 1, "", "is_energy_dependent"], [277, 2, 1, "", "parameters"], [277, 2, 1, "", "parameters_unique_names"], [277, 3, 1, "", "plot"], [277, 3, 1, "", "reassign"], [277, 2, 1, "", "reference_time"], [277, 3, 1, "", "sample_time"], [277, 3, 1, "", "time_sum"], [277, 3, 1, "", "to_dict"], [277, 2, 1, "", "type"], [277, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.UniformPrior": [[278, 3, 1, "", "__call__"], [278, 3, 1, "", "copy"], [278, 2, 1, "", "covariance"], [278, 2, 1, "", "default_parameters"], [278, 3, 1, "", "evaluate"], [278, 3, 1, "", "freeze"], [278, 3, 1, "", "from_dict"], [278, 3, 1, "", "from_parameters"], [278, 2, 1, "", "frozen"], [278, 2, 1, "", "max"], [278, 2, 1, "", "min"], [278, 2, 1, "", "parameters"], [278, 2, 1, "", "parameters_unique_names"], [278, 3, 1, "", "reassign"], [278, 2, 1, "", "tag"], [278, 3, 1, "", "to_dict"], [278, 2, 1, "", "type"], [278, 3, 1, "", "unfreeze"], [278, 2, 1, "", "weight"]], "gammapy.modeling.models.utils": [[285, 4, 1, "", "read_hermes_cube"]], "gammapy.stats": [[288, 1, 1, "", "CashCountsStatistic"], [289, 4, 1, "", "TimmerKonig_lightcurve_simulator"], [290, 1, 1, "", "WStatCountsStatistic"], [291, 4, 1, "", "cash"], [292, 4, 1, "", "cash_sum_cython"], [293, 4, 1, "", "compute_chisq"], [294, 4, 1, "", "compute_flux_doubling"], [295, 4, 1, "", "compute_fpp"], [296, 4, 1, "", "compute_fvar"], [297, 4, 1, "", "cstat"], [298, 4, 1, "", "discrete_correlation"], [299, 4, 1, "", "f_cash_root_cython"], [300, 4, 1, "", "get_wstat_gof_terms"], [301, 4, 1, "", "get_wstat_mu_bkg"], [302, 4, 1, "", "norm_bounds_cython"], [303, 4, 1, "", "structure_function"], [304, 4, 1, "", "wstat"]], "gammapy.stats.CashCountsStatistic": [[288, 3, 1, "", "compute_errn"], [288, 3, 1, "", "compute_errp"], [288, 3, 1, "", "compute_upper_limit"], [288, 2, 1, "", "error"], [288, 3, 1, "", "info_dict"], [288, 2, 1, "", "n_bkg"], [288, 2, 1, "", "n_sig"], [288, 3, 1, "", "n_sig_matching_significance"], [288, 2, 1, "", "p_value"], [288, 2, 1, "", "sqrt_ts"], [288, 2, 1, "", "stat_max"], [288, 2, 1, "", "stat_null"], [288, 3, 1, "", "sum"], [288, 2, 1, "", "ts"]], "gammapy.stats.WStatCountsStatistic": [[290, 3, 1, "", "compute_errn"], [290, 3, 1, "", "compute_errp"], [290, 3, 1, "", "compute_upper_limit"], [290, 2, 1, "", "error"], [290, 3, 1, "", "info_dict"], [290, 2, 1, "", "n_bkg"], [290, 2, 1, "", "n_sig"], [290, 3, 1, "", "n_sig_matching_significance"], [290, 2, 1, "", "p_value"], [290, 2, 1, "", "sqrt_ts"], [290, 2, 1, "", "stat_max"], [290, 2, 1, "", "stat_null"], [290, 3, 1, "", "sum"], [290, 2, 1, "", "ts"]], "gammapy.utils": [[13, 0, 0, "-", "cluster"], [13, 0, 0, "-", "coordinates"], [13, 0, 0, "-", "fits"], [13, 0, 0, "-", "integrate"], [13, 0, 0, "-", "interpolation"], [13, 0, 0, "-", "parallel"], [13, 0, 0, "-", "random"], [13, 0, 0, "-", "regions"], [13, 0, 0, "-", "scripts"], [13, 0, 0, "-", "table"], [13, 0, 0, "-", "testing"], [13, 0, 0, "-", "time"], [13, 0, 0, "-", "units"]], "gammapy.utils.cluster": [[305, 4, 1, "", "hierarchical_clustering"], [306, 4, 1, "", "standard_scaler"]], "gammapy.utils.coordinates": [[307, 5, 1, "", "D_SUN_TO_GALACTIC_CENTER"], [308, 4, 1, "", "cartesian"], [309, 4, 1, "", "fov_to_sky"], [310, 4, 1, "", "galactic"], [311, 4, 1, "", "motion_since_birth"], [312, 4, 1, "", "polar"], [313, 4, 1, "", "sky_to_fov"], [314, 4, 1, "", "velocity_glon_glat"]], "gammapy.utils.fits": [[315, 1, 1, "", "HDULocation"], [316, 1, 1, "", "LazyFitsData"], [317, 4, 1, "", "earth_location_from_dict"]], "gammapy.utils.fits.HDULocation": [[315, 3, 1, "", "get_hdu"], [315, 3, 1, "", "info"], [315, 3, 1, "", "load"], [315, 3, 1, "", "path"]], "gammapy.utils.integrate": [[318, 4, 1, "", "trapz_loglog"]], "gammapy.utils.interpolation": [[319, 1, 1, "", "ScaledRegularGridInterpolator"], [320, 4, 1, "", "interpolate_profile"], [321, 4, 1, "", "interpolation_scale"]], "gammapy.utils.interpolation.ScaledRegularGridInterpolator": [[319, 3, 1, "", "__call__"]], "gammapy.utils.parallel": [[322, 5, 1, "", "BACKEND_DEFAULT"], [323, 5, 1, "", "METHOD_DEFAULT"], [324, 5, 1, "", "METHOD_KWARGS_DEFAULT"], [325, 5, 1, "", "N_JOBS_DEFAULT"], [326, 5, 1, "", "POOL_KWARGS_DEFAULT"], [327, 1, 1, "", "multiprocessing_manager"], [328, 4, 1, "", "run_multiprocessing"]], "gammapy.utils.random": [[329, 1, 1, "", "InverseCDFSampler"], [330, 4, 1, "", "draw"], [331, 4, 1, "", "get_random_state"], [332, 4, 1, "", "normalize"], [333, 4, 1, "", "pdf"], [334, 4, 1, "", "sample_powerlaw"], [335, 4, 1, "", "sample_sphere"], [336, 4, 1, "", "sample_sphere_distance"], [337, 4, 1, "", "sample_times"]], "gammapy.utils.random.InverseCDFSampler": [[329, 3, 1, "", "sample"], [329, 3, 1, "", "sample_axis"]], "gammapy.utils.regions": [[338, 4, 1, "", "compound_region_to_regions"], [339, 4, 1, "", "make_concentric_annulus_sky_regions"], [340, 4, 1, "", "make_orthogonal_rectangle_sky_regions"], [341, 4, 1, "", "region_to_frame"], [342, 4, 1, "", "regions_to_compound_region"]], "gammapy.utils.scripts": [[343, 4, 1, "", "from_yaml"], [344, 4, 1, "", "get_images_paths"], [345, 4, 1, "", "make_path"], [346, 4, 1, "", "read_yaml"], [347, 4, 1, "", "recursive_merge_dicts"], [348, 4, 1, "", "to_yaml"], [349, 4, 1, "", "write_yaml"]], "gammapy.utils.table": [[350, 4, 1, "", "hstack_columns"], [351, 4, 1, "", "table_row_to_dict"], [352, 4, 1, "", "table_standardise_units_copy"], [353, 4, 1, "", "table_standardise_units_inplace"]], "gammapy.utils.testing": [[354, 1, 1, "", "Checker"], [355, 4, 1, "", "assert_quantity_allclose"], [356, 4, 1, "", "assert_skycoord_allclose"], [357, 4, 1, "", "assert_time_allclose"], [358, 4, 1, "", "mpl_plot_check"], [359, 4, 1, "", "requires_data"], [360, 4, 1, "", "requires_dependency"]], "gammapy.utils.testing.Checker": [[354, 3, 1, "", "run"]], "gammapy.utils.time": [[361, 4, 1, "", "absolute_time"], [362, 4, 1, "", "time_ref_from_dict"], [363, 4, 1, "", "time_ref_to_dict"], [364, 4, 1, "", "time_relative_to_ref"]], "gammapy.utils.units": [[365, 4, 1, "", "standardise_unit"], [366, 4, 1, "", "unit_from_fits_image_hdu"]], "gammapy.visualization": [[367, 1, 1, "", "MapPanelPlotter"], [368, 4, 1, "", "add_colorbar"], [369, 4, 1, "", "annotate_heatmap"], [370, 4, 1, "", "colormap_hess"], [371, 4, 1, "", "colormap_milagro"], [372, 4, 1, "", "plot_contour_line"], [373, 4, 1, "", "plot_distribution"], [374, 4, 1, "", "plot_heatmap"], [375, 4, 1, "", "plot_map_rgb"], [376, 4, 1, "", "plot_npred_signal"], [377, 4, 1, "", "plot_spectrum_datasets_off_regions"], [378, 4, 1, "", "plot_theta_squared_table"]], "gammapy.visualization.MapPanelPlotter": [[367, 3, 1, "", "plot"], [367, 3, 1, "", "plot_panel"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"], "6": ["std", "cmdoption", "program option"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:data", "6": "std:cmdoption"}, "terms": {"": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 51, 52, 53, 67, 82, 83, 84, 86, 87, 90, 91, 92, 95, 100, 101, 102, 103, 104, 105, 108, 109, 110, 124, 125, 126, 130, 133, 141, 142, 147, 148, 149, 153, 173, 179, 200, 206, 218, 222, 223, 228, 230, 231, 235, 236, 238, 239, 240, 242, 245, 247, 248, 252, 254, 255, 262, 263, 264, 267, 268, 269, 274, 277, 279, 280, 286, 296, 315, 365, 369, 370, 377, 380, 381, 383, 385, 390, 391, 392, 394, 396, 397, 398, 399, 400, 403, 406, 409, 410, 412, 413, 415, 416, 417, 418, 446, 447, 449, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 497, 498, 500, 503, 504, 510, 511, 512, 513, 516, 518, 523, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 582], "0": [11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 38, 39, 42, 47, 50, 51, 52, 53, 67, 71, 75, 83, 85, 87, 88, 89, 90, 91, 94, 96, 102, 103, 104, 105, 108, 109, 110, 111, 112, 113, 114, 116, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 132, 133, 141, 142, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 170, 173, 176, 177, 181, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 214, 216, 218, 219, 222, 223, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 278, 284, 286, 288, 289, 290, 291, 294, 295, 296, 297, 298, 305, 306, 325, 329, 336, 337, 357, 368, 370, 371, 375, 377, 380, 381, 383, 384, 387, 391, 392, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 408, 409, 413, 416, 417, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 499, 501, 502, 503, 504, 505, 506, 510, 512, 516, 520, 522, 525, 527, 528, 529, 530, 531, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 578, 579, 580, 581], "00": [67, 87, 88, 89, 91, 101, 197, 381, 395, 449, 450, 451, 452, 454, 455, 456, 457, 458, 459, 460, 462, 463, 464, 467, 468, 470, 471, 473, 474, 476, 477, 480, 481, 482, 483, 484, 485, 486, 488, 489, 491, 492, 493, 494, 495, 497, 499, 501, 502, 503, 504, 505, 533, 543, 563, 564, 574, 582], "000": [67, 87, 88, 91, 125, 395, 451, 453, 455, 456, 458, 459, 463, 464, 465, 467, 468, 471, 473, 474, 477, 480, 481, 482, 486, 488, 489, 494, 501, 502, 504, 533], "0000": 406, "00000": 142, "000000": 480, "000000000000002": 486, "00000000000001": 458, "00000000000003": 475, "00000000000004": 480, "0000000000016": 86, "0000000000018": 94, "000000000002": 467, "0000000000064": 467, "000000000007": 480, "00000000001": 480, "00000000e": [483, 484], "00000001": 86, "0000000e": 484, "00000143": [381, 582], "0000e": [101, 451, 452, 455, 456, 457, 458, 460, 463, 471, 473, 474, 483, 489, 491, 503, 563], "0001": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 371, 465], "00010298": 481, "00015": 482, "000150": 453, "0002": [453, 504], "00020": 453, "0002000": 453, "0003": 465, "00050": 453, "000500": 453, "0006": 453, "00074287037": [94, 468], "000742870370370241": 94, "0008": 480, "0009": 453, "000e": [451, 455, 458, 460, 463, 464, 471, 474, 480, 483, 489, 491, 503, 504, 563], "000true": 453, "001": [50, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 357, 467, 483, 541], "0016288e": 484, "001e": 67, "002018": 494, "0025508e": 484, "0028272e": 484, "0029": 405, "0029202684427718766": 502, "002e": [67, 456], "003": [475, 488, 494], "003026327991562108": 464, "0031052863692021915": 502, "0033": 580, "00336861061002e": 477, "0036925550381217": 458, "00375698": 239, "004": 67, "00422666667": 478, "00449161": 244, "00490": 465, "00490483": 465, "0049409": 493, "005": 480, "00521472221220211": 464, "005909017160171437": 466, "006": 574, "0064830e": 484, "00688029": 239, "007": 480, "0076540e": 484, "0079e": 471, "008": [480, 579], "008166963876141447": 466, "008891944789387447": 466, "00894": 504, "009": [477, 480], "00931e": 450, "009433226692021113": 466, "00e": [83, 450, 456, 459, 467, 471, 474, 475, 477, 481, 484, 485, 494, 502], "01": [39, 52, 75, 83, 87, 88, 91, 94, 102, 104, 105, 109, 110, 112, 113, 124, 127, 133, 176, 177, 181, 191, 192, 197, 201, 204, 225, 231, 236, 238, 240, 255, 262, 381, 416, 449, 450, 451, 454, 455, 456, 457, 459, 460, 461, 463, 464, 467, 471, 474, 475, 476, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 492, 494, 495, 496, 502, 503, 504, 505, 510, 515, 525, 527, 528, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 579, 582], "010": 488, "010e": 67, "011": 488, "01183": 142, "011872336272724": 502, "0118e": 474, "012": 488, "0122385e": 484, "01235137e": 484, "012733796525585": 490, "0139252e": 484, "014": [85, 102, 105, 109, 110, 173, 456, 463, 480, 485, 502, 503, 527], "0143724": 239, "0143764": 493, "01449": 83, "0145": 487, "01450": [472, 503], "0149044e": 484, "015": 480, "01551196351647377": 239, "0163": 465, "01648855015875024": 578, "01700709977114979": 478, "017442925431194484": 478, "018": 67, "018182745349064267": 464, "0183519e": 484, "01960784313726": 469, "019672": 482, "019899368286133": 464, "01e": [173, 416, 450, 480], "01t00": [87, 91, 94, 197, 381, 459, 467, 582], "01t01": 91, "01t02": 91, "02": [16, 67, 83, 94, 102, 105, 109, 110, 111, 116, 161, 168, 173, 191, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 416, 449, 450, 451, 453, 455, 456, 460, 461, 463, 464, 465, 466, 467, 468, 470, 471, 472, 473, 474, 475, 480, 483, 484, 485, 486, 487, 488, 489, 492, 494, 499, 502, 503, 504, 525, 527, 528, 535, 536, 537, 541, 543], "020": [464, 480, 482], "020420144596410953": 490, "021": [67, 480], "0211376632384": 474, "0225e": 480, "02288737": 239, "023": 480, "023472814714293713": 502, "024": 480, "02432": 480, "024715584699834": 502, "024e": 504, "025": [480, 494], "0251191207999763": 465, "025944": 542, "025e": 142, "026": [53, 67, 480], "02653": [459, 465], "026891": 480, "026914": 480, "027": 67, "028854": 487, "029e": [451, 480], "02e": [83, 477], "02t23": 86, "03": [17, 19, 20, 21, 22, 24, 25, 26, 27, 67, 87, 89, 91, 203, 393, 408, 449, 450, 451, 453, 464, 465, 467, 474, 480, 484, 486, 488, 490, 491, 492, 496, 497, 503, 535, 538], "03034567e": 482, "030607": 548, "032": 480, "0322": 67, "0322775e": 484, "032839": 560, "033": [67, 480], "033176650892097": 96, "03383": 493, "034": 579, "0344": 67, "03447394e": 482, "03493": 482, "034e": 453, "035": 482, "0351e": 471, "0354700e": 484, "0356": 450, "0356551": 450, "0358e": 471, "036": [67, 471], "036e": 480, "037": 488, "03745318352059925": 572, "0375512e": 484, "0376213e": 484, "03893": 482, "039": [463, 464, 482], "039215686274545": 469, "03921700077803329": 464, "0395135e": 484, "03978226e": 489, "04": [30, 67, 94, 449, 454, 456, 458, 459, 461, 464, 467, 474, 475, 480, 484, 486, 489, 492, 494, 534, 536, 542], "040": [449, 455, 469, 470], "040028": 571, "040e": 459, "041": 494, "0414": 459, "0415": 504, "041836": 489, "041882": 480, "042": 480, "0423761": 450, "042e": 480, "043": 67, "04357249662280083": 455, "04454": 494, "0454683": 493, "046": 67, "0462798e": 484, "047": [67, 449, 454], "0473174": 244, "0474750e": 484, "048": [463, 494], "0482342e": 484, "04897634344908595": 96, "048e": 67, "049": [453, 463], "04939e": 450, "049676": 480, "04d": 467, "04e": 485, "04t15": 86, "04t22": 86, "05": [19, 20, 26, 29, 42, 67, 71, 87, 91, 122, 123, 125, 132, 204, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 339, 408, 449, 450, 451, 452, 453, 454, 455, 459, 462, 463, 464, 465, 468, 471, 473, 479, 480, 481, 483, 484, 485, 488, 491, 493, 495, 497, 502, 503, 530, 535, 539, 540, 549], "050": 488, "05019": 142, "0503641": 450, "0505949e": 484, "05075": 484, "0508075688763": 480, "05088486522436142": 455, "050e": 459, "051": [19, 20, 26, 488], "051c": [17, 21, 22, 24, 25, 27], "052": 480, "0520119e": 484, "0521419985089": 466, "05227": 480, "053": 463, "053212009682775": 490, "054833602905273e": 464, "0548e": 464, "054e": 67, "055": 480, "055e": 453, "056": [449, 492], "0560": 504, "056130": 480, "05628243": 504, "05637e": 450, "05673": 504, "057": 480, "05762513693893088": 464, "058": 67, "058201": 480, "05853": 459, "058823529411775": 469, "059": 67, "05901956e": 484, "0598579": 450, "05deg": 204, "06": [147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 449, 463, 464, 465, 470, 476, 480, 481, 483, 484, 485, 486, 492, 494, 497, 547, 559, 564], "061": 504, "062": [467, 488, 489, 494], "0625": 489, "0628": 504, "063": 67, "0631757e": 484, "06334488877417636": 490, "0639008912973": 474, "064108e": 480, "06430": 465, "0643032": 465, "06450": 142, "065071": 480, "065119": 504, "06549": 142, "066": 455, "066442": 480, "067": 459, "068245": 480, "0689": 483, "068e": 453, "069": 67, "07": [102, 104, 124, 173, 355, 395, 416, 417, 449, 453, 454, 456, 463, 465, 473, 475, 476, 477, 480, 481, 484, 486, 488, 492, 494, 497, 505, 562], "07022": 142, "070483": 480, "0711412": 450, "072": 67, "073": 67, "0739282e": 484, "074": [480, 494], "07454639": 465, "07455": 465, "0746": 504, "0748": [480, 504], "075": 67, "07512322002655547": 464, "0756e": 450, "076": 504, "076122": 567, "077": 450, "078": 453, "07843137254903": 469, "0786e": 471, "07871368968": 481, "07934317e": 482, "07943648658692837": 490, "07944657408": 480, "079464e": 504, "0799109224230051": 490, "07e": 475, "07t20": [456, 460, 461, 463, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "08": [86, 375, 416, 449, 454, 457, 458, 460, 461, 463, 464, 471, 480, 481, 483, 485, 494, 502, 503, 544, 556], "0800792e": 484, "08075": 484, "08081469527619482": 458, "08088": 179, "080e": 459, "0811551760882139": 490, "08142": 479, "08191603310406206": 490, "08192": 465, "08192101": 465, "082": 480, "082363": 539, "082691868487906": 478, "08269984": 504, "082e": 125, "083": [67, 480], "08328557573258877": 490, "0833333358168602": 455, "0833333432674408": 455, "08342": 142, "08388624433428049": 490, "084": [67, 543], "08447355125099419": 490, "0845515": 450, "085": 480, "08529426": 97, "0855013383552432": 490, "0859117235629056e": 477, "08675": 481, "086e": 480, "087": 504, "08795162606984375": 490, "087e": 480, "088742": 480, "08880368117243051": 490, "08894569035619496": 490, "089": 137, "0894640e": 484, "0897868126630783": 490, "089881": 480, "08e": [471, 488], "09": [33, 125, 173, 449, 451, 454, 456, 459, 461, 463, 470, 480, 481, 484, 485, 502, 503, 504, 552, 554, 555, 580], "0902437e": 484, "0907128e": 484, "091": [449, 454, 574], "0910": [253, 254], "0914": [52, 53], "092": [449, 492, 574], "093": [449, 574], "093477": 465, "09348": 465, "09375": 477, "09426693227142095": 490, "094834": 480, "095232": 480, "09562941": 504, "095707": 504, "096": 456, "0960": 504, "09607": 504, "09610314778983592": 490, "09623312838375568": 490, "09740295372903346": 490, "097e": 67, "098": [449, 574], "09805": 142, "098903": 480, "09907043184188653": 490, "0998e": 474, "09e": 485, "0b100": 325, "0bvzwnbp": 477, "0d": [127, 469, 481, 539], "0e": [403, 456, 458, 459, 460, 464, 467, 471, 474, 477, 481, 482, 484, 486, 488, 489, 494, 502, 534, 535, 536, 537, 539, 540, 541, 542, 545, 546, 548, 551, 552, 554, 555, 556, 557, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "0f": [483, 494, 504], "0rc": 409, "0rc1": 409, "0true": 465, "0x105fd0cf8": 380, "0x105fe3b70": 380, "0x129602550": 380, "0x7f8f2aefb730": 490, "0x7f8f2af254f0": 491, "0x7f8f2bcfc1f0": 490, "0x7f8f2bfc51f0": 490, "0x7f8f2bfea610": 481, "0x7f8f2bfeae50": 481, "0x7f8f3006e790": 481, "0x7f8f305524f0": 493, "0x7f8f30552d60": 493, "0x7f8f307eacd0": 478, "0x7f8f330fb220": 481, "0x7f8f33120fd0": 490, "0x7f8f331771c0": 493, "0x7f8f352334c0": 469, "0x7f8f35233b20": 469, "0x7f8f35808700": 493, "0x7f8f44d859a0": 563, "0x7f8f45aebca0": 489, "1": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 59, 63, 66, 67, 71, 72, 74, 75, 78, 83, 86, 87, 88, 90, 91, 95, 96, 101, 102, 105, 109, 110, 111, 115, 116, 117, 118, 122, 125, 126, 127, 128, 130, 131, 133, 137, 141, 142, 147, 148, 149, 150, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 168, 173, 176, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 214, 216, 218, 219, 221, 222, 223, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 248, 250, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 274, 275, 276, 277, 278, 279, 280, 286, 288, 289, 290, 294, 295, 305, 306, 318, 319, 325, 326, 327, 336, 337, 339, 340, 365, 367, 370, 371, 375, 377, 380, 381, 383, 384, 387, 388, 390, 391, 392, 394, 395, 397, 400, 402, 403, 404, 405, 406, 407, 409, 410, 413, 416, 420, 421, 423, 424, 428, 430, 431, 432, 435, 436, 437, 438, 439, 440, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 499, 502, 503, 504, 506, 510, 511, 512, 515, 516, 518, 520, 521, 522, 523, 524, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576, 577, 579, 580, 581], "10": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 54, 66, 67, 84, 86, 87, 88, 89, 90, 91, 102, 103, 104, 105, 108, 109, 110, 111, 116, 118, 122, 123, 124, 125, 126, 127, 131, 132, 133, 135, 141, 142, 144, 147, 148, 150, 152, 154, 155, 160, 161, 162, 163, 164, 166, 173, 179, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 211, 214, 216, 225, 228, 241, 242, 244, 245, 267, 280, 289, 295, 325, 327, 337, 368, 373, 375, 377, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 396, 397, 402, 403, 404, 408, 410, 416, 421, 423, 434, 436, 439, 443, 445, 449, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 502, 503, 504, 506, 512, 516, 522, 525, 527, 528, 529, 530, 540, 541, 544, 546, 549, 550, 552, 553, 554, 555, 557, 558, 560, 561, 562, 563, 566, 567, 568, 578, 579, 582], "100": [19, 20, 26, 46, 47, 74, 94, 125, 133, 152, 153, 163, 204, 206, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 282, 337, 380, 381, 383, 388, 399, 419, 450, 452, 455, 458, 463, 464, 465, 467, 468, 469, 471, 475, 478, 479, 480, 481, 482, 484, 485, 486, 489, 491, 493, 494, 495, 497, 504, 508, 510, 511, 512, 516, 527, 530, 531, 534, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 579], "1000": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 194, 199, 380, 383, 453, 480, 481, 484, 491, 494, 504, 530], "10000": [17, 18, 21, 22, 23, 24, 25, 27, 103, 108, 152, 163, 166, 176, 480, 494], "100000": [74, 480, 502], "1000000": [51, 52, 54, 480, 563], "10000000": 563, "100000000000": 482, "1000e": 491, "1001": [438, 467, 468], "1002": 438, "10041": 141, "10045": [65, 269, 562], "10049": 450, "1006": 438, "101": [424, 463, 471, 475, 480], "1011e": 491, "1012": 479, "1013": 439, "1014": 439, "101430": 475, "101435": 545, "10172": 489, "102": [173, 456, 459, 579, 580], "1021": 439, "1025": 439, "1026": 439, "10262943822890519": [96, 490], "1027": 439, "102877228833871": 490, "1029": 439, "10295505": 504, "102e": 480, "103": [141, 419, 442], "103000133": 495, "1031": 439, "1032": 439, "1032531953505502": 502, "1034": 504, "1035": 439, "1035002116788955": 456, "1036": 459, "1038": 439, "104": [463, 465], "1040": [439, 474], "10409": 465, "10409446": 465, "10416667": 477, "1043": 439, "104317": [102, 481, 488], "1044": 459, "1045": 439, "1046": 398, "10470702368766069": 490, "10477": 504, "105": [82, 496], "1051": 439, "1052": 480, "1053": 439, "1054": 439, "1054498": 137, "1057": 439, "10592": 582, "105953": 504, "105e": 459, "1061971e": 484, "106217": 83, "1062535e": 484, "1064": 480, "1065": 439, "1067": 439, "1069": 439, "107": [450, 486], "1070": [439, 504], "1072542e": 484, "1073": 439, "10752883769757363": 490, "1076": 439, "1078": 439, "107e": [459, 480], "108": 436, "108034597491956e": 489, "108043": 463, "1082": 439, "1083": 439, "1084": 439, "1085": 439, "1085000": 463, "1086": 295, "1087": 439, "1088": 439, "1089": 439, "109": [419, 451, 486], "1090": 439, "1092": [439, 459], "1093": [439, 459], "1098": 439, "1099306e": 484, "109e": 465, "10d": 469, "10e": [173, 480, 484], "10k": 194, "10th": [407, 418], "11": [67, 87, 91, 94, 125, 126, 130, 131, 214, 339, 384, 387, 389, 397, 404, 408, 419, 420, 441, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 485, 487, 488, 491, 492, 494, 502, 503, 504, 527, 529, 551, 558, 560, 580], "110": [480, 494], "1100": [439, 455], "110000": [481, 485], "1102": 439, "1102e": 452, "1103": 439, "110380": [83, 396, 460, 463, 465, 493], "1104": 439, "1105": 439, "1107": 439, "1108": 439, "111": [368, 387, 439, 463, 480], "1110": 439, "1111": [135, 144, 480, 504], "111140": [396, 460, 463, 465], "111159": [396, 460, 463, 465, 493], "11132": 64, "1115": 439, "111507416": 475, "111630": [89, 475, 493], "111797": 480, "11184": [65, 268, 561], "112": [450, 455], "11208": 65, "11220184543": 482, "1127": 439, "11291820875721864": 490, "113": [449, 492, 504, 574], "1131": [388, 461], "1133": 439, "1134": 439, "1136": 439, "114416978060042": 474, "115": 67, "1150": 439, "11517": 504, "11553325504064559": [96, 490], "115770": 544, "11587179071752986": 96, "116": [419, 451, 452], "1160": 480, "11610": 504, "1162": 439, "1162290917256776e": 472, "1166": 439, "1167": [387, 394], "1169": 439, "116e": 67, "117": [419, 544], "1170": 439, "1172": 394, "1173775": 480, "1176": 439, "117877e": 480, "1179": 439, "118": [141, 463], "1183": 439, "118355": 480, "11839": 142, "119": [451, 459, 463], "1190": 439, "119432": 450, "1195": 439, "119e": 455, "11af4c": 419, "11e": 480, "12": [17, 38, 42, 67, 86, 87, 91, 102, 105, 112, 113, 125, 142, 163, 166, 192, 193, 194, 196, 202, 205, 206, 218, 222, 228, 230, 235, 242, 252, 254, 264, 267, 268, 269, 280, 384, 386, 387, 388, 389, 391, 392, 397, 400, 403, 419, 423, 424, 425, 437, 442, 449, 450, 451, 453, 455, 456, 457, 458, 459, 460, 461, 462, 463, 465, 466, 467, 471, 472, 473, 474, 477, 478, 480, 481, 482, 483, 486, 488, 489, 491, 494, 502, 504, 516, 527, 530, 531, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 548, 551, 552, 553, 555, 556, 557, 559, 560, 561, 562, 565, 566, 567, 568, 569, 570, 571, 572, 573], "120": [53, 395, 457, 494, 538], "120000": 460, "120154": 480, "1204": 439, "1207": 439, "120e": [67, 504], "121": [67, 465, 488], "1210": 439, "1211": [439, 480], "121241": 463, "12148": 459, "1215": 439, "1216": 452, "12186": 504, "1219": 480, "122": [67, 141, 419, 453, 488], "1220": 439, "1226": 439, "1227": 439, "12276676166802643": 490, "122e": 464, "123": [87, 91, 392, 459], "1231": 440, "1234": 88, "123456789": [197, 381, 582], "1235": 439, "1237": 388, "1238": 439, "123890826": 86, "123892513": 86, "1239": 385, "123944": 83, "123e": 459, "124": [141, 392, 459, 480, 488], "1240": 439, "12423250e": 484, "1243": 504, "1244969200533408": 306, "1246": 439, "12493874": 484, "124e": 67, "125": [67, 125, 141, 449, 455, 465, 486, 494, 502, 504, 505, 574, 579], "12518": 464, "12525306": 478, "12546": 65, "1258925411": 482, "126": [67, 453, 480, 483], "12611": 142, "1264500e": 484, "126585": 450, "1266": 439, "1268": 439, "12688": 83, "1269263e": 484, "12697": 464, "127": 459, "12704": [141, 142], "1271v": 296, "12751": 450, "1277": 386, "1278": 387, "12794487": 489, "128": [419, 475, 506], "12809": [102, 481, 488], "1281": 439, "12816": 504, "12856": 494, "1287": 439, "1289": 439, "128e": 453, "129": [445, 503], "1290": 439, "1291": 439, "1294": 439, "1299": 480, "12nan5": 453, "12r_": 53, "12th": [405, 418], "13": [67, 101, 125, 142, 203, 305, 384, 385, 389, 394, 399, 408, 424, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 502, 503, 504, 512, 545, 563, 580], "130": [476, 527], "1300": 439, "1301v": 38, "13030": 504, "1305": 439, "13061": 489, "131": 453, "1310": 504, "1312": 439, "13133": 504, "13152": 465, "1316": 439, "1317": 440, "1318": 439, "1319": [94, 439], "13197": 463, "132": 459, "13226": 504, "1323e": 464, "132472": 465, "132e": 455, "133": [142, 449, 574], "1331": 440, "1334": 440, "1337": 440, "1339": 440, "133e": 453, "134": [142, 456, 459, 465], "1341": 440, "1342a": 153, "1343": 440, "1344": 480, "1345": 440, "1346": 440, "1347": 440, "13499879586502125": 466, "135": [38, 101, 142, 453, 469, 480, 483], "13500212963": 480, "1351e": 480, "1354": 440, "135498046875": 455, "1357": 440, "1359316": 504, "135e": 125, "136": 480, "1360": 440, "1361": 480, "1362": 440, "1367": 440, "1369": [388, 440], "137": [142, 459, 466], "1372": 440, "137254901960785": 469, "1372e": 474, "1373": 440, "1374": 440, "137521287529426e": 502, "1376": 440, "1376407570489014e": 472, "1377": 440, "1378": 440, "1379190199428797": 306, "137990": 480, "138": [419, 453, 467, 504], "1381": 440, "1386": 440, "1387": 440, "138e": 465, "139": [455, 459, 494], "13911": 504, "1393881668086242e": 477, "1394": 550, "13944023e": 482, "1395": 440, "1396": [380, 456], "13960": 504, "1397": 440, "1397412321592923": 490, "13e": 481, "13nan6": 453, "13th": 418, "14": [28, 65, 67, 86, 269, 381, 384, 389, 392, 397, 399, 400, 438, 450, 453, 455, 456, 459, 463, 475, 477, 480, 481, 482, 483, 487, 488, 489, 503, 504, 548, 550, 562, 572, 579], "140": 495, "1401": 440, "1406": 440, "14079": 141, "1408": [440, 504], "141": [304, 465, 480], "1411180": 463, "1412": 440, "14121": 465, "1412536400000000": 504, "14149953611195087": [96, 490], "14150": 465, "141699": 562, "1419": [388, 441], "141945": 450, "142": [67, 419, 449, 453, 480, 492, 504], "14201": 141, "1421": 440, "14210": 453, "1426": 440, "142e": 480, "1432": 440, "1433": 440, "1435": 440, "1438": 176, "1438465e": 484, "1439110308062257": 490, "144": [453, 488, 504], "14419991": 97, "1442739329466746e": 489, "1443": 440, "1444": 440, "1445": 394, "14457": 504, "1446": 440, "1447": 440, "1449": 474, "145": 480, "1451": 395, "14531053887243": 465, "1456": 440, "1456479e": 484, "146": 504, "14610": 582, "146472": 480, "1464e": 491, "1467": [135, 144], "147": [438, 480, 486], "1470": [440, 504], "1474": 440, "1475": 440, "1476": 440, "14773": 494, "147e": 480, "148": 459, "1482": 480, "1485314": 97, "1486415e": 484, "1489": [440, 465], "149": [455, 485, 488], "1492": 440, "1494": 465, "149445429667434": 466, "1495": 440, "1499472780781963": 306, "149e": 480, "14e": [460, 479], "14msts37sst": [467, 468, 493], "14nan3": 453, "14nan5": 453, "14th": [404, 407, 418], "14yr_catalog": 65, "15": [39, 42, 67, 87, 88, 91, 150, 151, 152, 153, 154, 155, 160, 161, 162, 164, 203, 370, 371, 375, 389, 397, 419, 423, 428, 433, 436, 437, 438, 440, 449, 450, 455, 459, 461, 463, 464, 465, 467, 468, 469, 471, 475, 477, 478, 480, 481, 482, 483, 485, 486, 488, 489, 492, 494, 502, 504, 505, 527, 535, 567, 568, 570, 573], "150": [131, 141, 142, 419, 453, 455, 467, 468, 486, 504], "1505": 440, "15076259": 97, "151": [419, 488], "1510": 137, "1510240e": 484, "15140": 459, "1515": 440, "15154854": 97, "1517": 440, "151e": 474, "152": [459, 465, 474], "1521": 465, "1523": 467, "15246": 467, "152477": 494, "1527": 440, "153": [449, 480, 543], "1530": 481, "15319": 467, "153600": 481, "154": [419, 450, 480], "1543": 440, "154e": 465, "155": 419, "15518": 504, "1552": 461, "1553": [480, 504], "1554": 440, "1554106e": 484, "1556": [440, 480, 504], "1556008e": 484, "1556453201265": 474, "1558": 440, "156": [419, 455, 456, 459, 465, 482, 488], "1562": 440, "15621": 504, "1564": 440, "156525": 480, "1567629e": 484, "1568": 440, "15686274509804": 469, "157": [419, 504], "1573": 440, "1576": 440, "158": [142, 450, 456, 463], "1582": 440, "15848931924": 482, "1586": 94, "15899": 459, "1594": 440, "1597317": 97, "15990": 142, "159t": 52, "15e": 461, "15h14m00": 480, "15nan8": 453, "16": [16, 24, 53, 67, 94, 109, 110, 192, 384, 388, 397, 400, 401, 424, 439, 444, 446, 447, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 502, 503, 504, 529, 565, 566, 569, 571, 579, 580], "160": [31, 125, 419, 428, 469, 488], "1600": 468, "1600e": 451, "1605": 440, "16056": 459, "1606": 440, "1607": 479, "160e": 67, "161": [141, 388, 455, 465, 480], "1610e": [451, 480], "161250": 471, "1613279491744304": 490, "1616": 440, "1618850e": 484, "1619e": 101, "162": 67, "16227766": 486, "1622776601683795": [485, 486, 502], "16240": 503, "1626e": 460, "16287": 504, "1629219e": 484, "163": [469, 579], "1630": [440, 504], "16303": 465, "16303044": 465, "1634": 440, "164": [449, 480, 574], "1642": 450, "165": 488, "1650": 504, "16506": 450, "16511": 465, "16511148": 465, "1658": 440, "165e": 459, "166": [419, 465, 480], "1660": 440, "166015625": 452, "1661916367760008e": 477, "1665478": 97, "166871893629602e": 477, "167": [419, 465, 471], "167219": 480, "1675": 440, "168": [480, 481, 504], "1681": 440, "1685": 440, "1686": 480, "1687": 86, "168702": 450, "169": 465, "1691": 450, "1695": 440, "1696": 440, "1697": 440, "1698": 455, "169871": 471, "16th": 418, "17": [20, 21, 40, 67, 86, 391, 394, 397, 428, 445, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 476, 477, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 580], "170": 452, "17016482e": 483, "170172": 471, "1702": 440, "17020": 459, "170468": 554, "171": 474, "1710": 441, "1711": 440, "1713": 452, "1715": 394, "1717": 504, "171749": 504, "1719502": 97, "1719610": 97, "1719670": 97, "171b": 279, "172": 469, "172018": 553, "17229679": 97, "173": 480, "1731": [440, 488], "1732": 480, "17320": 480, "1736": 459, "1737799900000000": 504, "174": 455, "1742": 67, "17445": 504, "1746": [440, 504], "1748": [440, 488], "1750": 440, "1751": 440, "17511": 142, "1753": 504, "1755": 440, "1756": 456, "1759": 440, "175e": 480, "176": [142, 419, 475, 480], "1760": 440, "1761": 440, "1762": 506, "1763": [441, 480], "1764": [440, 465], "176470588235294": 469, "1766": 441, "1768896e": 484, "177": [419, 494, 495], "17776": 450, "1778279410": 482, "177e": 480, "178": 439, "178442": 67, "1785": [440, 450], "1791": 440, "179475": 244, "1799": 440, "17a": [60, 480], "17e": 488, "17g": 50, "17th": 434, "18": [11, 87, 91, 141, 203, 384, 399, 405, 425, 431, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "180": [394, 412, 414, 419, 449, 480, 486, 543], "1800": [440, 468, 486, 493], "180000": [467, 468, 493], "1804": 480, "180458": 463, "18046952655570045": 306, "1805": 394, "1807": 441, "1808": [440, 480, 504], "181": 459, "1811": 458, "1812": 440, "1813": 480, "1818": 440, "182": 474, "1821": 440, "1822": 440, "1825": 480, "18257": 459, "183": 455, "1830e": 455, "183139597": 86, "1834": 452, "1835": 94, "1836": 441, "1836544903987521": 490, "1837": 441, "18385658": 465, "18386": 465, "18392464": 518, "184": [86, 94, 433, 437, 459, 463, 467, 473, 477, 487, 488], "18400002": 473, "1841": 389, "1844": 474, "1845": 441, "1846": 441, "18465": 504, "1849": 441, "184989894219835": 478, "185": 487, "1854": [441, 480], "1855": 441, "1857": 441, "1858": 474, "1859": 441, "186": [432, 449, 465, 480, 543], "1861": 441, "1862": 441, "186484131475074": 337, "1866": 485, "186643": 504, "187": [425, 432, 465], "1871": 441, "1877": 390, "188": [432, 450, 480], "1883": 441, "1884": 441, "18842984749525210": 465, "1888": 441, "188e": 453, "189": [455, 484], "1890": 441, "1891": 441, "18921591": 484, "1893": 441, "1893e": [451, 480], "1894": 441, "1895": 441, "1896e": 451, "1898": 441, "18988": 504, "1899070e": 484, "18a": 62, "18h43m48": 67, "19": [51, 53, 54, 67, 203, 384, 396, 398, 400, 419, 427, 428, 430, 442, 456, 459, 469, 475, 477, 478, 480, 481, 486, 488], "190": 480, "1902": [65, 269, 562], "1903": 441, "1904": 441, "1905": 464, "1908": 441, "1909": 441, "190e": 455, "191": [141, 432], "1910": 179, "1912": 441, "1917": 504, "1918": [441, 474], "1919": 441, "192": 142, "1920": 504, "1921": 441, "19214093": 97, "1922": 441, "1926": 441, "1926520e": 484, "1927": 441, "1928": 480, "1929": 441, "193": 459, "1930": 441, "1933": 441, "1934": 441, "19354": 465, "1936925": 97, "1937": [441, 480], "193e": 456, "194": [432, 459], "1943186": 97, "1947565": 97, "1949": 441, "195": [142, 239, 455], "1950rspsa": 52, "1951": 420, "1953830": 97, "1955810e": 484, "1958e": 483, "196": [67, 450, 488], "1960784313725492": 469, "1961": [135, 144], "1962": 420, "1963": 480, "19644": 494, "1965tralm": 21, "1966": 420, "1969": 420, "196991563774588": 280, "197": [67, 465, 474, 494], "1971": 391, "19736017641361556": 466, "1975": 420, "1976572e": 484, "1978": 480, "1979": [291, 297, 420, 577], "1979892": 465, "1980": 480, "1982": 37, "1983": 577, "1986": 392, "1986027": 504, "1987": 465, "198723": 456, "19879005": 176, "1988": [136, 298, 420], "1988apj": [136, 298], "1989": 420, "199": [465, 488], "1990": [37, 420], "1990apj": [36, 37], "1991": 420, "1991mnra": 22, "19932878": 484, "1994": [420, 577], "1994a": [52, 53], "1995": [419, 420], "1995a": 289, "1995apj": 17, "1996": [27, 459, 478, 577], "1996mnra": 27, "1997": 502, "1997apj": 25, "1998": [87, 91, 420, 577], "1998apj": 28, "1999": [53, 197, 381, 582], "19991": 502, "199999809265137": 480, "19999999999999998": 458, "1999apj": 53, "19e": 485, "19th": 418, "1d": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 109, 110, 127, 151, 152, 161, 175, 192, 194, 332, 373, 386, 390, 391, 393, 394, 395, 396, 399, 400, 401, 412, 422, 424, 425, 426, 427, 431, 433, 436, 440, 442, 443, 446, 449, 450, 452, 453, 454, 455, 457, 459, 463, 470, 474, 477, 481, 483, 485, 487, 489, 490, 491, 493, 494, 502, 514, 516, 518, 531, 577], "1dc": [82, 83, 89, 102, 105, 109, 110, 115, 117, 118, 122, 141, 142, 148, 152, 153, 154, 163, 368, 373, 375, 388, 390, 396, 400, 421, 450, 458, 460, 463, 465, 471, 474, 475, 481, 482, 484, 488, 516], "1deg": 204, "1e": [19, 20, 26, 86, 100, 130, 131, 133, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 245, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 291, 297, 339, 355, 357, 380, 391, 451, 453, 455, 457, 459, 461, 463, 465, 467, 468, 471, 472, 473, 474, 475, 480, 483, 489, 491, 494, 495, 512, 516, 520, 544, 545, 546, 548, 551, 552, 556, 557, 559, 560, 561, 562], "1e0": 510, "1e10": [51, 153], "1e12": [510, 520], "1e2": [453, 510, 512], "1e3": [494, 520], "1e30": 554, "1e4": [483, 494, 495], "1e40": 511, "1e5": [457, 494, 512, 530, 531], "1e51": 52, "1e6": [45, 494, 508, 563], "1e7": [127, 563], "1f": 456, "1fhl": [425, 438], "1fhl_name": 71, "1h": 163, "1k": [102, 109], "1kpc": 512, "1lhaaso": [57, 70, 446, 480], "1lhaaso_catalog": 57, "1rc1": 409, "1tev": [52, 53, 131, 468], "2": [11, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 46, 50, 51, 52, 53, 54, 59, 63, 67, 68, 71, 72, 74, 75, 77, 78, 80, 83, 84, 85, 86, 87, 89, 90, 91, 95, 96, 101, 102, 104, 105, 109, 110, 114, 118, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 140, 142, 145, 146, 150, 151, 152, 153, 155, 161, 163, 166, 173, 176, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 203, 204, 206, 211, 214, 215, 217, 218, 222, 226, 228, 230, 235, 237, 238, 242, 245, 252, 253, 254, 260, 261, 263, 264, 267, 268, 269, 274, 279, 280, 286, 288, 289, 290, 291, 296, 297, 303, 305, 325, 327, 365, 368, 373, 375, 377, 380, 381, 384, 385, 389, 391, 392, 394, 395, 396, 397, 400, 403, 404, 405, 406, 407, 409, 416, 417, 419, 420, 421, 422, 423, 424, 431, 436, 437, 438, 439, 440, 441, 447, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 502, 503, 504, 512, 515, 516, 518, 523, 524, 525, 527, 528, 530, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 581], "20": [16, 38, 83, 87, 89, 91, 102, 104, 105, 109, 110, 124, 154, 155, 160, 162, 164, 173, 193, 194, 196, 202, 205, 206, 211, 289, 305, 381, 384, 385, 386, 388, 393, 395, 398, 400, 405, 442, 449, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 477, 478, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 525, 527, 528, 529, 535, 536, 537, 540, 541, 550, 553, 558, 563, 564, 579], "200": [52, 87, 91, 133, 204, 404, 432, 455, 456, 459, 465, 469, 471, 480, 486, 489, 504, 579], "2000": [88, 102, 105, 109, 110, 127, 231, 236, 238, 240, 255, 262, 420, 467, 468, 469, 485, 494, 504, 577], "2000000": 463, "20000000000000004": 458, "20009124": 484, "2000apj": 280, "2000e": 489, "2001": [94, 420, 459, 577], "20016447648031e": 477, "2002": [87, 91, 295, 478], "2003": [296, 478], "2003mnra": 296, "2004": [86, 94, 478, 496], "2004a": [39, 40], "2004aph": [83, 88], "2004mnra": 24, "2005": [65, 577], "200503": 450, "2005a": 480, "2006": [31, 33, 395, 459, 466, 473, 477], "200638": 504, "2006a": 280, "2006apj": [30, 31, 32, 33], "2006ara": 50, "2006mnra": [35, 118], "2007": [398, 577], "20072608": 484, "2008": [38, 86, 226, 276, 451, 494, 506, 544], "2008aj": 38, "2009": [133, 299, 421, 459, 577], "200954": 502, "20097159": 484, "2009851": 484, "20099855": 484, "201": [52, 486], "2010": [127, 153, 226, 244, 303, 381, 447, 544, 577, 582], "2010a": [244, 280], "2010mnra": 153, "2011": [226, 451, 506, 544], "2011jcap": [17, 19, 20, 21, 22, 24, 25, 26, 27], "2012": [91, 421, 577], "2013": [101, 137, 400, 406, 410, 419, 478], "20136": [82, 306, 496], "20137": [306, 496], "2013aph": 279, "2013apj": 60, "2014": [135, 144, 418, 506], "2015": [52, 86, 394, 397, 418, 494], "20151": 306, "2015apj": 61, "2015jheap": 280, "2016": [26, 394, 397, 418, 421, 478, 485, 493], "2016apj": 58, "2017": [226, 385, 387, 397, 400, 416, 418, 421, 465, 493, 544], "2017apj": [59, 62], "2017icrc": 493, "2018": [52, 385, 386, 387, 388, 389, 390, 391, 395, 397, 399, 400, 418, 445, 493, 496, 577], "2019": [387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 418, 440, 441, 466, 577], "202": 465, "2020": [203, 389, 400, 401, 402, 403, 404, 418, 466, 467, 474, 486, 566, 567, 568], "2021": [89, 226, 402, 404, 418, 445, 489, 493, 544], "2021345e": 484, "2022": [405, 406, 418, 421, 495], "2023": [392, 407, 408, 418, 421], "2023arxiv230517030c": 57, "2024": [418, 493], "2024e": 503, "2025": [104, 124, 417, 456, 460, 461, 463, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "2026": [392, 421], "2028": 421, "2030": [392, 421], "2031": 421, "20326": [305, 452], "20327": [305, 452], "2033": 421, "20339": 305, "2034": 421, "20343": 305, "20344": 305, "20345": 305, "20346": 305, "20349": 452, "2035": [123, 125, 421], "20350": 452, "2036": [123, 125], "2037": 421, "20372": 493, "2038": 421, "2039": 421, "20396": 452, "20397": 452, "204": [141, 449, 543], "2040469e": 484, "2041222e": 484, "20421": 452, "20422": 452, "2045": 392, "2046": 421, "2049": [421, 480, 504], "205": [432, 465, 486], "2050": 421, "20508075688775": 480, "2051": 421, "20517": 452, "20518": 452, "20519": 452, "205192": 480, "20521": 452, "2053315944536949e": 493, "205357": 480, "2054": 421, "20559": 504, "2058705e": 484, "206": 480, "2061": 480, "2062580e": 484, "2064": 421, "2064335": 97, "2065": 421, "2066": 421, "2068682e": 484, "2069": 421, "207": [461, 465, 469, 488], "2071": [392, 421], "2075": 408, "207520865": 473, "207521165": 477, "207521465": 473, "207521627": 477, "2076": 421, "2077": 421, "2079930e": 484, "207e": 459, "208": [60, 461, 471], "2085": 421, "2089": [394, 423], "20898": 452, "20899": 452, "209": 465, "20900": 452, "2093": 421, "2095": 465, "2097": 421, "2097e": 455, "2098": 421, "20deg": [467, 468], "20e": 484, "20th": 406, "21": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 101, 127, 148, 383, 384, 428, 434, 443, 450, 451, 459, 465, 473, 477, 479, 480, 482, 484, 486, 504, 531, 579], "210": [432, 480], "2103": 480, "2104": 422, "2104353e": 484, "2106": 422, "2108": 422, "211": [480, 481], "2111": 422, "2112": [422, 503], "21134890398": 482, "2114": 422, "2115": 422, "211690": 561, "211770556360534": 475, "2118": 422, "2119": 422, "211e": 480, "212": [67, 432, 447, 449, 455, 480, 564], "2121": 422, "2121164e": 484, "2123": 422, "21236e": 450, "2124": 422, "2126": [422, 450, 458, 460, 463, 465, 471, 474, 493], "2128": 422, "2129": [394, 423], "213": [449, 457, 543, 564], "2130": 422, "2131": [422, 480], "2132": 422, "21325": 494, "2133": 422, "2136": [393, 424], "2139": 422, "214": [453, 459], "2140": 422, "2141": 422, "2142": 422, "2145": 422, "2146": 422, "21464892": 504, "214e": 455, "215": [67, 432, 446, 480], "21500000000003": 538, "2151": 422, "2152": 422, "21525804550772332": 466, "2153": [422, 480], "2154": [422, 480], "2155": [426, 451, 473, 474, 477, 478, 480, 490, 504, 544], "215686274509824": 469, "2157": 422, "2159e": 101, "215e": 480, "216": [239, 455, 486, 488, 573], "2160": 422, "2162670e": 484, "2163": 422, "2164425e": 484, "2166": 422, "2169": 422, "217": [455, 480], "2171": 422, "21731921e": 486, "21733761e": 486, "21735587e": 486, "218": 61, "2190": 398, "2192": 423, "2197": 465, "21t19": 94, "21t20": 94, "22": [67, 83, 85, 88, 102, 105, 109, 110, 133, 168, 173, 176, 191, 192, 201, 204, 384, 418, 431, 449, 455, 456, 457, 458, 459, 464, 469, 470, 472, 474, 476, 477, 480, 481, 485, 486, 487, 495, 496, 502, 503, 504, 515, 522, 525, 527, 528, 531], "220": [480, 488, 579, 580], "2200": 423, "2201": [65, 268, 480, 504, 561], "2202e": 504, "2204": 423, "2206": 423, "220e": 480, "221": [394, 432], "22149": 459, "2217": 423, "2217412e": 484, "2218": [397, 424], "2219": [396, 424], "222": [58, 480, 488], "2221": 480, "22245374e": 125, "2227134679628": 474, "22271346796282": 474, "222713467962826": 474, "2229": [393, 423], "223": 488, "2230": 423, "2231": 480, "2235": 423, "223521": 538, "2237": [423, 504], "2238": 423, "2239": 423, "2240": 423, "2243": 423, "2244": 423, "224436": 504, "225": [96, 305, 306, 404, 432, 480], "2250": 423, "22500": 461, "2254": 423, "2255": [398, 490], "225575051666": 480, "2255890": [473, 477, 490], "2257": 423, "2259": 423, "226": [449, 465, 494, 564], "22608": 481, "2262": 423, "22635140877790516": 483, "2264": [392, 423], "22646133647326874": 483, "2264827111476982": 483, "22648881839710966": 483, "2265163003209506": 483, "22662622801631419": 483, "227": [449, 564], "2270": 397, "2272": 423, "2274": [399, 424, 450], "2276": 423, "2277": 423, "2278": 423, "227889": 456, "2278975306934438": 483, "2279": [397, 424], "227e": 480, "228": [291, 297, 388, 394, 449, 456, 461, 474, 476, 480, 485, 496], "2287": 423, "2289": 423, "229": [67, 449, 480, 564], "2290": 399, "2292": 424, "2294": 423, "2296": 423, "2297": 423, "22974080e": 494, "2298": 423, "22e": 485, "22nd": 418, "23": [77, 94, 176, 380, 384, 406, 418, 442, 449, 452, 455, 457, 459, 464, 474, 477, 480, 483, 486, 488, 490, 491, 492, 497, 504, 527], "230": [432, 459], "2300": 423, "2304": 398, "2305": 423, "230542e": 480, "2307": [64, 65], "2308": 424, "231": [432, 449, 564], "2310": 423, "2313": 424, "2314": 424, "232": [62, 449, 467, 470], "2320": [424, 480, 481], "2321": 424, "2323": 424, "2326": 424, "2327": [480, 488], "23273": 494, "233": [449, 456, 564], "2330": 424, "23306": 459, "2332": 488, "2334": 424, "2335": 424, "2338": 424, "2339": [452, 480, 504], "234": [432, 449, 473, 475, 476], "234132519034915": 486, "23413252": 486, "2342": 424, "2343": 424, "234359264373779": 485, "2343e": 488, "2344": 424, "2345": 424, "2346": 424, "2347": 424, "235": 432, "2350": 425, "2351": 424, "23523": [146, 173, 211, 416, 455, 456, 464, 472, 481, 483, 485, 496, 502, 503, 515, 518, 578], "23526": [146, 211, 455, 456, 464, 472, 481, 483, 485, 496, 502, 503, 578], "235294117647083": 469, "2354": 424, "23559": [455, 456, 472, 481, 485, 502, 503, 525, 527, 528, 578], "2356": 424, "2357": 488, "2358": 424, "2359": 424, "23592": [455, 456, 472, 481, 485, 502, 503, 525, 527, 528, 578], "236": [432, 480], "2360": 424, "2362506e": 484, "23628": 494, "2365": 424, "2366": 424, "2367": 424, "2368": 424, "237": 450, "23734": 504, "2375": 424, "2377": 424, "2378": 424, "2379": 424, "238": 463, "2381": 424, "238298": 450, "2384": 450, "2385": 424, "239": [67, 465], "23905561": 484, "239439": 504, "239557417": 86, "2399": 480, "239e": 480, "23a": 61, "24": [25, 27, 52, 53, 86, 87, 91, 94, 383, 384, 397, 401, 435, 440, 450, 456, 459, 474, 477, 480, 481, 486, 488, 493, 494, 502, 505, 527, 544, 551, 560, 561, 562], "240": [102, 105, 109, 110, 122, 449, 480, 481, 482, 516, 543], "2400": 424, "2401": 424, "2404": 424, "2405": 425, "240e": 455, "241": 480, "2412": 424, "2414": 480, "2419": 450, "2428255": 482, "242835": 67, "243": [455, 482], "2431": 480, "243121": 569, "2432": 459, "2433": 425, "2435": 425, "243742672227972e": 477, "244": [67, 432, 455], "2440": 480, "2441": 425, "244140625": 488, "2443672e": 484, "2444": 425, "2446": [425, 488], "2448": 425, "2449": 425, "245": 432, "2450": [425, 488], "245152": 465, "2454": 425, "2455": 425, "24579": 482, "2459": 425, "245e": 474, "246": [432, 482], "2461": 425, "24611324074": 480, "2463": [400, 425], "2464": 425, "2465055e": 484, "2468": 425, "24685677e": 484, "247": [67, 432, 449, 564], "2470": 425, "2471938975366008": 305, "2472": 425, "2475": 425, "2476": 425, "2477": 425, "2478": 425, "2479": [425, 503], "248": 432, "2481": 425, "248122": 480, "2483": 425, "2485": 502, "2486": 425, "249": [22, 432], "2490": 425, "2491": 425, "2492": 425, "2493": 425, "2496": 425, "24968": 450, "2497": 425, "2498": 425, "2499": 425, "249965667724609": 485, "249e": 142, "24e": [480, 488], "25": [33, 52, 87, 91, 101, 141, 142, 152, 163, 176, 291, 297, 384, 397, 404, 418, 439, 446, 447, 450, 451, 455, 456, 459, 465, 474, 475, 477, 480, 484, 486, 488, 504, 536, 541], "250": [486, 577], "2501": 425, "250185": 485, "2502": [425, 465], "2505": 425, "2505121": 97, "2505703": 475, "2509": 480, "251": [459, 463], "2510": 425, "251185": 504, "2511884200000000": 504, "2511886431": 482, "25162e": 450, "2518": 480, "251932": 480, "252": [432, 465, 480], "2520": 425, "2521": 425, "2523": 425, "2525": 425, "2528": 425, "253": [458, 488], "2535": 425, "2536": [425, 488], "2537": 488, "2538": 425, "254": 432, "2540": 425, "2546": 425, "254901960784338": 469, "25496": 504, "2551": 425, "2552": [425, 480], "2553": 425, "2555": 401, "2557": 425, "255750516626": 480, "2558": 425, "2559": 425, "256": [67, 435], "2560538e": 484, "2561": 425, "2562": 425, "2563": 425, "2564": 425, "2567": 425, "2568710719919036": 466, "257": [141, 458], "2574": 425, "25743553e": 483, "25763": 459, "257642": 480, "2579999": 493, "258": [458, 542], "2580": 425, "25823909e": 482, "2585": 425, "2587": 425, "2589254117941673": 502, "259": [458, 504], "2591e": [451, 480], "2594": 425, "2595": 425, "2595e": 463, "259e": [142, 459], "25b": 17, "25e": 488, "25t_": 53, "25th": 406, "26": [19, 87, 91, 142, 384, 418, 446, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 554, 572], "260": [435, 504], "2604": 425, "2609": 488, "261": [435, 504], "2616": 425, "26173": 459, "2619": 425, "262": [435, 459, 488, 504], "2620": 425, "262554796103245": 502, "2625818241224747": 483, "2627": 425, "262728": 493, "26272868097919794": 490, "2628525e": 484, "263": [141, 142, 459, 488], "2633e": 464, "2635": 425, "2635108e": 484, "2637": 425, "2639554729438709": 490, "264": [141, 435, 465], "2645": 425, "26475": 461, "2648150": 97, "2649e": 483, "265": [32, 142, 394, 450, 459, 465, 488, 504], "2651": 425, "2654": 425, "266": [141, 142, 394, 458, 459, 465, 467, 471, 486, 488, 504], "2660": 425, "266192": 450, "26665050077722524": 490, "2667": 426, "267": [67, 142, 458, 459, 465, 488, 493], "2672": 426, "2673": 426, "26739753": 97, "2674": 426, "268": [406, 459, 465, 480, 488, 502, 504], "2681": 426, "2684": 426, "2685": 426, "268663733018811": 490, "2687": 426, "26883694": 504, "26887783978974283": 490, "2689": 465, "269": [469, 504], "2692": 426, "269385": 480, "269627": 493, "2697": 426, "2699878e": 484, "26a": [39, 40, 50, 52, 53, 244, 280, 289, 480], "26e": [480, 488], "26th": [402, 418], "27": [142, 386, 446, 455, 459, 465, 474, 477, 481, 504, 579], "270": [452, 459, 480, 488, 504], "2703": 426, "2705": 426, "27057337686547633": 490, "2707": 426, "2708": 244, "2709": 426, "27093776e": 484, "271": [455, 458, 459, 463, 504], "2711": 426, "2712": 426, "2713": 426, "2715": 426, "271777777777796": 452, "27177778": 94, "2718": 426, "2719": 426, "272": [458, 459, 480, 488], "2720": [401, 427], "27209": 504, "2723": 426, "2725": 426, "2726": 426, "2726e": 504, "2727": 426, "2727693": 493, "2727e": 455, "2728": 426, "2729": 426, "273": [83, 435, 453, 459, 504], "2730": 426, "2731": 426, "2733": 426, "2734": 125, "2735": 426, "2737": 426, "2738": 426, "2739": 426, "274": 486, "27409496735322464": 490, "2741": 426, "2742": 426, "2743": 426, "274509803921596": 469, "2746": 426, "2747": 426, "27473": 465, "275": [458, 480, 572], "2750": 426, "2751": 426, "2752": 426, "2753": 426, "2755": 426, "2756": 426, "2759": 427, "276": 435, "2761": 427, "2762": 427, "2764": 427, "2765": 427, "2767": 427, "2768": 427, "277": 458, "2771": 427, "2772": 427, "27727": 488, "2775": 427, "277522283785622": 466, "2776": 427, "2777": 427, "2777074437073429": 490, "2778": 427, "2779": 427, "278": [27, 435, 449, 458, 471, 480, 488, 543], "2781": 427, "2782": 427, "2783": 427, "2784": 427, "2785": 427, "2785e": 455, "2787": 427, "2788": 427, "2789": 427, "278e": 459, "279": 435, "2790": 427, "2791": 427, "2792": 427, "2793": 427, "2794": 427, "2796": 427, "2797": 427, "2798": 427, "2799": 427, "27e": 480, "27t20": 89, "28": [21, 24, 67, 94, 141, 142, 389, 418, 449, 453, 455, 457, 458, 459, 465, 467, 471, 477, 479, 480, 485, 486, 488, 492, 493, 502, 504], "280": [67, 435, 455, 458, 486], "2800": [467, 488, 504], "2801": 427, "2802": 427, "2803": 427, "2804": 427, "2805": 427, "2808": 427, "2809": 427, "281": [458, 480], "2810": 427, "2811": 427, "28118133544922": 480, "2812": 427, "28120079": 480, "2815": 427, "2816": [427, 488], "2817": 427, "2818": 427, "2818047723094509": 490, "28183829312": 482, "282": [141, 142, 449, 564], "2820": 427, "2822": [427, 488], "2823": 427, "2825456e": 484, "2827": 427, "28275990e": 482, "2827988e": 484, "2828": 427, "2829": 427, "282951078740491e": 477, "282e": 480, "283": [435, 458], "2830e": 457, "2832": 427, "283218": 450, "283487": 480, "2837": 427, "28382603": 484, "2838398": 493, "28385358839966657": 490, "2839": 427, "284": [458, 480, 582], "2841": 427, "2842": 427, "28429": 465, "2845": 427, "2846": [427, 465], "285": [435, 458], "2852": 488, "28551": 142, "2859229": 482, "285f": [83, 88], "286": [435, 449, 458, 482, 564], "2861432787940619": 490, "286e": [459, 480], "287": [52, 53], "2872": 428, "28720322": 97, "2874": [428, 504], "28755283551095173": 490, "2878662980210884": 306, "288": 125, "2880470e": 484, "2885": 428, "288e": 453, "289": [435, 458], "28905": 494, "2891": 428, "28958": 459, "2896": 428, "2897": 428, "28e": [102, 453, 463, 465, 481, 494], "29": [67, 142, 274, 395, 405, 418, 446, 450, 453, 456, 458, 459, 465, 471, 473, 477, 480, 486, 488, 489, 493, 504], "290": [436, 458, 466, 482], "2900": 488, "290098": 482, "2903": [428, 488], "2903e": 457, "2907": 428, "291": 435, "2912": 428, "29158": 142, "29170324": 481, "291e": 504, "292": 474, "2922477": 97, "2923272203680937e": 477, "2924": 428, "2927": 428, "2929": 428, "293": [458, 474], "2930": 480, "2931": 428, "2932": 428, "29355238360800506": 490, "2938": 428, "2939": 428, "2942": 402, "2943": 428, "2944": [403, 428], "2945": 428, "2947": 428, "2948": 428, "295": [435, 458], "2950": 428, "2951": 428, "2953": 465, "29553683e": 482, "2956": 428, "29585273e": 494, "2959": 488, "295e": 480, "296": 435, "2965": 428, "2966": 428, "2967": 428, "297": 450, "2971e": 480, "2974": 428, "2976": 428, "2978e": 451, "298": [458, 465, 474, 480], "2981": 428, "2984": 428, "29882214027996945": 490, "299": [435, 458, 480], "2990": 428, "2991": 428, "2992": 428, "2993": 428, "2995484265169": 478, "2996": 504, "2998": 428, "2999": [428, 480], "299940468335294": 465, "299995937905366": 465, "299e": 480, "299t": 53, "29t20": [473, 477], "29t21": 477, "29t22": 477, "29t23": 477, "29th": 418, "2_": 19, "2d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 141, 142, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 173, 183, 184, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 234, 386, 391, 396, 399, 400, 401, 412, 420, 426, 439, 440, 441, 449, 459, 461, 462, 465, 486, 487, 504, 514, 517, 528, 529, 530, 542], "2degx2deg": 467, "2e": [198, 450, 452, 453, 467, 468, 477, 480, 483, 488], "2e3": [198, 486], "2e6": 494, "2f": [369, 450, 456, 490, 503, 580], "2fhl": [58, 71, 425, 437, 438, 480, 504, 513], "2hwc": [59, 72, 425, 431, 439, 480, 513], "2k": [102, 109], "2m": [244, 280], "2nd": [60, 405], "2nd_psr_catalog": 60, "2pc": [60, 69, 73, 447, 480], "2pc_catalog_v04": 60, "2swh0smy": 485, "3": [19, 20, 27, 28, 31, 32, 33, 37, 38, 42, 45, 46, 50, 51, 52, 53, 54, 59, 63, 67, 77, 80, 83, 85, 86, 87, 91, 94, 96, 102, 105, 109, 110, 111, 116, 118, 125, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 176, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 215, 217, 226, 234, 237, 245, 268, 274, 276, 279, 280, 288, 289, 290, 295, 305, 306, 327, 336, 357, 368, 373, 375, 377, 380, 381, 383, 384, 386, 391, 392, 394, 395, 396, 397, 399, 404, 405, 406, 409, 411, 416, 419, 420, 421, 423, 424, 429, 431, 433, 436, 437, 438, 439, 440, 441, 442, 444, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 505, 506, 508, 511, 512, 515, 516, 520, 522, 524, 525, 527, 528, 531, 535, 537, 538, 540, 541, 544, 549, 550, 552, 553, 554, 555, 557, 558, 561, 563, 567, 568, 572, 576, 577, 579, 580], "30": [24, 52, 67, 83, 96, 102, 112, 113, 141, 153, 192, 305, 306, 387, 388, 393, 400, 407, 418, 420, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 516, 522, 527, 528, 535, 536, 550, 553, 554, 555, 558, 563], "300": [74, 87, 91, 289, 458, 460, 464, 467, 468, 471, 474, 480, 494], "3000": [390, 480, 530], "30000": 480, "3000000": 563, "30000000": 563, "3000020211954284": 465, "3000e": 451, "3001": 428, "30015e": 450, "3002": 428, "3003": 488, "3004625872247901": 464, "3005": 428, "3006": 504, "3006942": 97, "3007": 428, "301": [435, 458], "3011061699260256": 490, "3012": 428, "3013": 480, "301668796295": 480, "302": [458, 474], "3020791585772495": 305, "30287": 459, "3028e": 488, "302e": 480, "303": [455, 458, 480], "3030": 428, "3032": 428, "3034": 480, "3035": 428, "3037": 428, "3037632e": 484, "3038": [428, 504], "3039": 428, "304": [451, 471, 473, 474, 477, 478, 480, 490, 504, 544], "3041": 428, "3042": 428, "3043": 488, "3045": 428, "3046875": [481, 488], "3049664466089965": 306, "304_steadi": 451, "305": [67, 458], "3051": 428, "3051827": 97, "3051852": 97, "3051856": 97, "3052": 428, "3053": 428, "30535345877453707": 490, "3054": 428, "3054538213469855": 466, "30561": 142, "3058": 428, "3058422e": 484, "305e": 480, "306": [435, 579], "3060": 428, "306196370000000": 504, "3063": 428, "3069": 428, "306e": 480, "307": 458, "3070": 428, "3071": 480, "3072": 428, "3074": 428, "3075": 404, "3076": 428, "307e": 480, "308": [458, 465, 474, 538], "3080": 428, "3081": 428, "3083": 428, "3085": 428, "3086": 428, "3088": 428, "3089": 428, "3091": 428, "3092": 428, "30997": 504, "309e": 474, "30a": 280, "30d00m00": 407, "30e": [451, 484, 488], "30t00": 477, "30t01": 477, "30t02": 477, "30th": 392, "31": [141, 142, 389, 390, 403, 404, 416, 443, 449, 451, 453, 454, 455, 456, 458, 459, 463, 466, 469, 473, 474, 476, 477, 480, 481, 485, 486, 488, 491, 495, 502, 504], "3100": 428, "3106": 428, "31067517": 480, "3107": [480, 504], "311": [462, 538, 580], "3110": 429, "3111": 429, "3112": 429, "3113": 429, "31139074e": 483, "3114": 429, "311489174710791e": 504, "3116": 429, "3117988e": 484, "31186857659616535": 490, "3119611261122878": 490, "312": 435, "3122": 430, "3123": 430, "3124": 430, "3125": 430, "3126": 430, "3127": 430, "3129": 430, "313": [449, 458, 464, 543], "3130": 430, "3131": [431, 488], "3135914081482271": 490, "3136": 431, "313714614138": 481, "3138": 431, "314": 440, "3140": 431, "3141": 431, "3145": 431, "3148": 431, "315": [458, 480], "3152": 431, "3153": 431, "3155": 431, "315767542862533": 502, "3158": 431, "316": [449, 458, 494, 495, 543], "3162": 431, "316227": 480, "316227766016838": 485, "3165": 431, "3168": 431, "3169": 431, "317": [435, 458], "3173": 431, "3178": 431, "317a": 280, "317e": [451, 480], "318": 435, "3180": 431, "3182": 431, "31834": 142, "3185": 431, "3189697265625": 455, "31898": 142, "319": [436, 494], "3191": 431, "3195": 504, "3197": 431, "319725": 493, "3199": 431, "32": [83, 104, 124, 141, 192, 455, 459, 461, 474, 477, 485, 486, 502, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "320": [102, 105, 109, 110, 122, 480, 481, 482, 488, 516], "3202": 431, "3207": 431, "3208": 431, "32095": 504, "321": 469, "3211": 431, "3216": 431, "3217": 431, "3219": 431, "322": 458, "3222": 431, "3228": 431, "3229": 465, "323": 458, "3230": 431, "3232943": 347, "3233356": 347, "32377509405904137": 96, "323779": 295, "3237948931463171": 490, "3238": 431, "3241": 431, "3243": 431, "3246": 431, "32465247": 489, "3254": 431, "3257": 431, "3258": 431, "325e": 456, "326": 435, "3262": 431, "32684": 504, "32684833": 493, "327": 465, "3272": 431, "3276": 431, "3277": 431, "3278": 431, "3279": 431, "3279955e": 484, "328": [449, 465, 564], "3281": 431, "3283": 431, "3284": 431, "32843": 504, "32847": 450, "3285": 431, "329": [96, 305, 306, 473, 477, 480, 490, 518], "3293": 431, "3299": 480, "329e": [455, 480], "33": [449, 456, 463, 470, 477, 478, 479, 483, 486, 504, 518], "330": [436, 458, 488], "3301": 431, "33013e": 450, "3302": 431, "3302565e": 484, "3303": 431, "330376": 67, "3304": 431, "3304290732412": 474, "3305": 431, "330505": 493, "33055e": 450, "3306": 431, "3307": 431, "3308": 431, "3309": 431, "3310": 431, "331082": 573, "3314": 431, "33164865722698683": 490, "3319": 431, "3319831545301117": 305, "332": [67, 436, 494], "3320": 431, "3323": [431, 481], "332525": 480, "3328": 431, "332e": [459, 465], "332f": [30, 31, 32, 33], "333": [136, 298], "3330487": 97, "3331": 504, "3331761": 97, "3333": 431, "33333333": 380, "3333333333333344": 469, "3335": 431, "33368e": 450, "3337": 431, "3338": 431, "334": [125, 449, 494, 564], "3342": 431, "3343": 431, "3346": 431, "3347": 431, "33484": 450, "3349": 431, "3349654391": 482, "334e": 480, "335": [436, 449, 564], "3353": 431, "3357": 431, "3358": 431, "335e": 453, "336": [469, 480, 492], "3363": 431, "3364130e": 484, "336444e": 480, "336606": 450, "3368855e": 484, "3369": 431, "337": [436, 458], "3374": 431, "3377": 431, "33787": [96, 490], "33788": [96, 142, 490], "33789": [96, 490], "3379": 431, "33790": 490, "33791": 490, "33792": 490, "33793": 490, "33794": 490, "33795": 490, "33796": 490, "33797": 490, "33798": 490, "33799": 490, "338": [436, 449, 480, 564], "33800": 490, "33800122": 97, "33801": 490, "3380311e": 484, "3381": 431, "339": [436, 449, 455, 469, 564], "3390": 431, "3392": 431, "3393": 431, "3395": 431, "3397": 431, "339835555384604": 490, "3398360": 484, "33983991887701287": 96, "3399": 431, "33e": [461, 475], "34": [52, 53, 67, 419, 450, 460, 461, 463, 465, 473, 477, 481, 486, 488, 504], "34005": 450, "3402": 431, "3403": 431, "340391": 504, "3404": 431, "34047": 450, "3406": 431, "3409": [94, 431], "341": 450, "3413": 431, "3416": 431, "3418": 431, "342": 436, "3420": 431, "3423": 431, "3426": 431, "3428": 431, "3434": 431, "3438": 431, "3439": 431, "343e": 453, "344": 480, "344238": 504, "3443842": 493, "3445": 431, "3446": 431, "3447": 431, "3449": 431, "344e": 67, "345": [296, 450, 488], "3453": 431, "3454": 431, "345692": 504, "3458": 431, "346": 488, "34613054105945": 466, "346488e": 480, "3466": 431, "3468": 431, "347": [436, 452], "3471": 431, "3474": 431, "348": [36, 37, 436, 455], "3480": 431, "3481e": 463, "3488": 431, "348e": [67, 480], "3491": [431, 459], "3493": 141, "34932": 142, "349530550405035": 483, "349530725254468": 483, "34953073943366": 483, "34953075819191": 483, "34953077463306": 483, "34953079334042": 483, "349530807529028": 483, "349535814693404": 483, "349536723056637": 483, "349537158300407": 483, "349537804239922": 483, "34953807814367": 483, "34953910575007": 483, "34953932636892": 483, "349542158419318": 483, "349559366703698": 483, "349655": 482, "34971209244579": 483, "349724940685938": 483, "3499075e": 484, "349e": 459, "34e": [480, 488], "35": [67, 397, 404, 416, 455, 473, 477, 480, 483, 491, 493], "350": [469, 475, 482], "350105": 465, "3502": 480, "35030398537787": 483, "3503706026275275": 490, "3504": 504, "35052105086856": 483, "350556388466543": 483, "350d": 469, "351": [436, 480, 504], "3514e": 503, "3515": 431, "352": [436, 480], "3521": 452, "3523": 431, "3529": 431, "3529411764705888": 469, "353": [24, 436, 449, 491, 492, 504], "3535": 433, "353592500058824e": 502, "3536": 450, "353e": 465, "354": 469, "3544": 431, "35569283": 484, "355804": 504, "3559": 431, "356": [449, 504, 564], "3561": 431, "3568": 431, "357": [480, 504], "35722435185": 480, "3576e": 452, "358": [465, 480, 504], "3583": 465, "3584": 431, "359": [436, 465, 480, 504], "3590188e": 484, "3592": 431, "3599": 467, "359e": 504, "36": [67, 86, 148, 325, 449, 452, 465, 467, 473, 476, 480, 481, 484, 504], "360": [394, 449, 486, 492, 506], "3600": [458, 467, 468, 486], "36014": 463, "36073833513766157": 490, "361": [67, 436], "3619e": 503, "36228879": 504, "36273": 504, "363472509034498": 490, "3639946": 475, "364": 436, "3659253e": 484, "366": [482, 503], "366486": 482, "36669663417038234": 490, "3669": 433, "367": [436, 469, 488], "3674884": 480, "368": 118, "36834038301420274": 490, "368346217294295": 96, "3684": 433, "3689322e": 484, "369": 436, "3690": 504, "3699": 433, "36e": [479, 480], "37": [450, 451, 456, 458, 461, 482, 483, 494, 580], "370": [469, 480, 488], "37058": 142, "371": 436, "3710784e": 484, "3712": 433, "3713": 433, "3715810e": 484, "3718745": 97, "372": [35, 125, 449, 479, 492, 504], "3720": 433, "3722": 433, "3725490196078436": 469, "3728": 433, "373": 465, "3733": 433, "373892759762174e": 477, "3739292e": 484, "374": 469, "3740": 433, "37455141": 504, "3748": 433, "3749626322403": 474, "375": [436, 486], "3750": 465, "37506": 504, "37517": 459, "3752": 433, "3759377929871826": 490, "375e": 474, "376": 67, "3760": 433, "3761": 433, "3765": 450, "376e": 474, "3777": 433, "37773": 459, "3779": 504, "3783": 433, "378350": 540, "3784": 141, "379": [436, 455], "3792": 488, "3796": 433, "3797": 433, "38": [22, 67, 450, 452, 461, 480, 486, 488, 489, 504, 563], "3802": 433, "3804": 433, "3806": 433, "381": 488, "3810": 433, "3812": [480, 504], "3812120e": 484, "3812160e": 484, "38143003": 97, "3817": 433, "38258165e": 482, "3829": 504, "382e": 455, "383": [67, 436, 480, 486], "3833": 433, "3837": 433, "383e": 67, "384": 482, "3841385": 482, "3842": 433, "3846": 433, "3848912826152664e": 504, "3856": 433, "385e": 142, "3860": 433, "3862": 442, "387": [436, 504], "3872": 480, "3873": 433, "3874": 433, "3876": 433, "387834": 504, "388": 542, "388405": 504, "3885947175689592": 490, "3886270e": 484, "3887": 433, "389": 385, "3892": 433, "3895": 433, "3898": 433, "389e": 504, "39": [17, 18, 21, 22, 24, 25, 27, 59, 142, 456, 462, 479, 480, 486, 494, 542, 563], "390": 431, "3904": 433, "39042": 86, "3905": 433, "3906": 433, "391": 480, "3915": 433, "3918": 433, "392": [436, 456], "39200283e": 477, "392156862745098": 469, "39224": 459, "3925": 442, "393": [207, 208], "3933": 433, "3935": 452, "3936": 433, "394": 436, "3941": 433, "3945": [452, 480], "3947637541758": 474, "394765638937866": 502, "3948": 434, "395": 436, "3950": [405, 442], "395004": 504, "3956": 442, "3959": 434, "396": 436, "3962942e": 484, "3966": 434, "397": 455, "3970": 406, "397035933646679e": 477, "39728": 504, "3975": 434, "3979": [434, 578], "397918129147546": [416, 578], "39791813": [416, 578], "398": [436, 461, 463], "3981": 504, "39810717055": 482, "3981075200000000": 504, "3983": 434, "3986": 434, "3987": 434, "3988": 434, "398e": 480, "3990": 434, "39e": 480, "3d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 148, 154, 161, 162, 164, 173, 283, 285, 386, 389, 390, 391, 395, 396, 399, 400, 401, 412, 420, 421, 422, 424, 425, 426, 427, 438, 439, 440, 447, 449, 450, 451, 453, 455, 456, 459, 460, 461, 465, 466, 467, 468, 469, 470, 473, 474, 477, 481, 483, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 502, 503, 514, 516, 517, 518, 525, 530, 575, 577], "3d33m15": 67, "3dataset": 464, "3e": [20, 125, 131, 465, 468, 471, 472, 475, 477, 480, 488], "3e4": 494, "3e5": 494, "3e6": 563, "3e7": 563, "3f": [125, 466, 579, 580], "3fgl": [61, 67, 74, 228, 267, 403, 432, 435, 437, 438, 439, 449, 453, 480, 489, 504, 513, 532, 564], "3fgl_name": 71, "3fhl": [62, 75, 86, 127, 129, 133, 286, 400, 438, 439, 453, 459, 467, 469, 480, 486, 487, 488, 489, 494, 504, 513, 515], "3fhl_data_fermi": 464, "3fhl_dataset": [286, 464, 487], "3fhl_model": [286, 464, 488], "3g": [479, 480], "3hwc": [63, 76, 431, 442, 480, 513], "3ml": [398, 494], "3pc": [64, 69, 77, 447, 480], "3pc_catalog": 64, "3rd": 64, "3rd_psr_catalog": 64, "3theagxi": 477, "4": [19, 20, 22, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 52, 54, 61, 67, 83, 87, 91, 101, 102, 105, 109, 110, 115, 117, 128, 133, 142, 145, 150, 153, 161, 173, 176, 192, 193, 194, 195, 196, 197, 202, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 286, 287, 325, 367, 380, 381, 383, 384, 392, 394, 397, 400, 404, 405, 416, 419, 428, 430, 431, 432, 435, 437, 438, 441, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 497, 502, 503, 504, 506, 511, 512, 513, 527, 530, 531, 535, 536, 539, 544, 549, 562, 563, 571, 577, 578, 579, 580, 581], "40": [59, 109, 110, 387, 432, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 527, 550, 553, 558, 563, 579], "400": [133, 459, 460, 465, 469, 480, 486, 504, 572], "4000": 442, "40000": [173, 503], "400056": 450, "40050506591797": 480, "40051035": 480, "40071076": 97, "400x200": 469, "401": 456, "40112": 504, "4013": 442, "4014": 442, "4015": 442, "4017": 442, "4018": 442, "401e": 459, "402": 153, "4022": 442, "40235": 463, "4024": 442, "4025": 442, "4026": 442, "402712": 480, "403": [436, 449, 454, 455, 465, 488], "4035": 504, "4037": 442, "404": 303, "4043": 442, "4044": 442, "40481": 463, "405": 388, "4051": 442, "40525": 463, "4054": 442, "4058": 442, "406": 504, "40611": 504, "4067": 442, "40671": 461, "40672": 461, "407": [449, 480, 497], "4071": 442, "4073": 442, "4073799600000000": 504, "4075": 442, "4076": 442, "4079": 442, "408": [455, 486], "4080": 442, "4080942e": 484, "40822469e": 489, "4083": 442, "4084": 442, "4088": 442, "4089": 442, "40919": 459, "4091e": 457, "4093": 442, "409416": 504, "4095": 442, "4098": 442, "40a": 59, "40deg": 493, "41": [67, 86, 94, 394, 480, 481, 486, 494, 504], "410": 469, "41009347393684": 481, "4103": 442, "4105": 442, "4106": 442, "4107": 442, "4108": 442, "411": 504, "4110e": 480, "4112": [125, 442], "4113": 442, "4115": 442, "41176470588239": 469, "4119": 442, "411e": 453, "4120719e": 484, "412165": 465, "412779907405": 480, "413": 465, "414": 436, "4140541880588": 466, "41415047": 97, "4142135623730951": 118, "41449": 459, "414e": 459, "415": [436, 554], "4151e": 463, "4155": [480, 504], "41584196": 478, "416": [67, 463, 480, 485], "4161e": 463, "416618": 559, "417": 480, "418007850646973": 416, "41803": 461, "41866": 494, "419": 488, "4191": 445, "41924": 141, "4198250e": 484, "41995": 459, "419e": 480, "41e19": [19, 20], "42": [25, 27, 94, 153, 347, 394, 456, 458, 465, 480, 484, 485, 486, 490, 493, 531, 534], "42050348": 481, "4208": 445, "4209": [445, 459], "421": [436, 449, 469, 504, 564, 577], "4210": 445, "4212": 445, "4212028e": 484, "4213": 445, "4215": 445, "4216": 445, "4217": 446, "4219": 445, "422": [39, 40], "4220": 463, "4221": 443, "4225498e": 484, "4225631e": 484, "42267": 465, "4226731": 465, "423": 455, "4231": [443, 445], "42361": 459, "42399798": 465, "423e": 125, "42400": 465, "4242": 445, "4243": 445, "4245": 445, "42463": 494, "424650": 481, "42474": 504, "425": 504, "4252": 445, "426": 480, "4264": 445, "4268": 443, "427": 456, "4275": [443, 445], "4277": 445, "4280": 445, "4281": 480, "4282": 445, "4288": 445, "429": 455, "429257": 558, "4294": 445, "42e": [483, 488], "43": [279, 347, 394, 456, 465, 471, 474, 481, 486, 504, 531], "430": 480, "43000": [52, 53], "4301": [443, 445], "430351": 534, "4303606e": 484, "4305": 445, "431": [137, 388, 469, 481], "431023787974766e": 502, "43113": 450, "43137254901962": 469, "4313847458879893": 490, "4319": 504, "43197": 459, "4324": [443, 445], "4326": 445, "432878": 480, "432e": 480, "433": 459, "4336": [443, 445], "43366": 572, "4338e": 451, "434": 480, "43416595": 475, "4344": 443, "4346": 445, "435": [436, 449, 497], "4350": 445, "4351637481047363": 490, "4352": 445, "4359": [443, 445], "435e": 455, "435l": 480, "436": 436, "4360750e": 484, "4369": 445, "437": [480, 488], "4370": 445, "4373240195300975": 490, "438": 488, "4380": [444, 445], "4381": [408, 446], "4382": 444, "439": 455, "4393": [444, 445], "4394": 444, "4395": 445, "4397": [444, 445], "439e": 480, "43e": 488, "44": [21, 50, 86, 347, 451, 458, 473, 474, 475, 486], "44008776202558": 474, "4402": 445, "44055555555555603": 94, "4406": 445, "4408": 446, "4409": 445, "4412": [444, 445], "4417": 445, "4418": 445, "4420073e": 484, "4420222e": 484, "4428": 445, "4428634e": 484, "443": 455, "4430": 445, "44319": 481, "4432": 446, "4433": 447, "4435": [444, 445], "4444": 445, "444e": 464, "445": 459, "4450": 504, "44528685": 504, "4453": [444, 445], "44573": 94, "4458": 445, "4459": 445, "446": [488, 580], "4466": [445, 463], "4466832000000000": 504, "4466835921": 482, "447": 436, "44742": 504, "44749e": 450, "44755": 461, "447552": 450, "447e": [465, 480], "447l": 17, "448": 469, "4480056e": 484, "44802852": 504, "4481": 480, "4485": 446, "4486": [444, 445], "448940": 565, "448e": 142, "4491": [407, 446], "4495": 445, "4497": 481, "4498": 141, "44e": 416, "45": [51, 54, 458, 464, 474, 475, 477, 481, 486, 487, 489, 506, 531, 536, 537], "450": [449, 454, 488], "4500": [444, 445], "4501": 446, "4504": 445, "4506": 445, "4508": 445, "4509803921569": 469, "4510": [445, 463, 504], "4515": 479, "4517490659800822": 472, "4520": 444, "4521": 445, "4524": 444, "453": [451, 488], "454": 455, "4540": 446, "4545": 445, "4546": 446, "455": [436, 453], "45515263080596924": 452, "45517415e": 482, "455870": 465, "455e": 67, "456": 436, "4561": 446, "45646095": 475, "4567": 446, "457": [280, 436, 488], "457251": 504, "4574": [444, 446], "4575": 94, "4578": 444, "4579e": 450, "458": [449, 469, 480, 497], "4584": 446, "45856": 504, "4586649826004114": 305, "459": [436, 481, 488], "4593": 444, "45935": 504, "4595": 446, "4599": 446, "45\u00ba": 495, "46": [53, 67, 109, 110, 394, 480, 486], "460249999": 86, "4608": 446, "461": [436, 477], "4615": 446, "46186956763267517": 452, "4619": 444, "462": [436, 455], "4620": [408, 446], "4620e": 480, "46225": 459, "4628": 446, "463": 504, "4631": 444, "4635": 446, "4638": 446, "4638e": 460, "464": [449, 471, 564], "4642048e": 484, "4647544e": 484, "465": [455, 480, 488], "4653": 444, "4657": [444, 446], "465784": 504, "4660": 446, "4664": 446, "4668": 446, "4669": 446, "4671": 446, "46711": 459, "4675e": 473, "4677": [444, 446], "468": [475, 480], "4681": 444, "4684": 452, "468805426856864e": 52, "468e": 67, "4697": 446, "46e": [83, 460, 465], "47": [67, 474, 477, 480, 486, 504], "4703": 446, "470588235294144": 469, "471": [449, 564], "4711": 504, "4712": 459, "4714": 446, "4721": 444, "4726": 446, "4728": 444, "4729": 446, "473": [436, 455], "4738": 446, "474": 436, "4740": 446, "4741": 446, "474e": 480, "475": [436, 488], "4750": 446, "4753": [444, 446], "475468": 450, "4755": 444, "4759": 446, "4770": 446, "4772": 444, "47797": 459, "477e": 480, "478": [436, 449, 454, 485, 492], "47802": 490, "47803": 490, "47804": 490, "47827": 490, "47828": 490, "47829": [82, 490, 496], "4783": 446, "4785": 446, "47e": 480, "48": [33, 173, 419, 449, 463, 464, 486, 488, 494], "480": [452, 480, 488], "4802": 446, "4805": 446, "480554966154": 463, "48068": 459, "4808": 446, "480e": 480, "481": [385, 436], "4810": 446, "4814": [446, 504], "4817": 446, "48180882997916e": 502, "4819444e": 484, "482": [450, 470], "48215685": 97, "4822": 446, "48248": 480, "4825": [480, 504], "4828": 446, "4829": 446, "4834": 446, "4834488e": 484, "4835": 446, "4837": 446, "484": 436, "48442": 274, "4845": 446, "4847": 446, "4848653": 480, "4849": [446, 480, 504], "484e": 142, "485": 436, "4850": 446, "4851": 446, "4854": 446, "485p": [36, 37], "487": [436, 502], "4875723e": 484, "4876": 444, "4879": 446, "4881": [253, 254], "4886": 446, "48871": 450, "488z": 27, "489e": 480, "48e": [480, 488, 503], "49": [53, 459, 463, 480, 488, 494, 502, 530], "490": 25, "4902": 446, "4904": 446, "4904078e": 484, "49078e": 450, "4913": 444, "49152": 494, "4917": 446, "493": 25, "493043594026": 463, "4933657e": 484, "4936": [444, 446], "4937": [444, 446], "4940": 446, "49417615": 86, "4942": 446, "494e": 455, "4958277": 97, "496021": 493, "4963": 504, "4966": 504, "4968236e": 484, "4970": 446, "4971": 446, "49716789e": 482, "4971704e": 484, "497221": 550, "4973": 446, "4975": 446, "4978": 446, "498": 504, "4983": 447, "498784": 480, "4989": 446, "498e": [480, 504], "499": [67, 480], "49919925926": [239, 573], "4992": 446, "4994": 446, "4996": 447, "49972277488662115": 490, "4999833830074": 465, "4d": 399, "4e": [475, 480, 488, 563], "4f": [578, 579, 580], "4fgl": [65, 78, 268, 269, 403, 423, 425, 431, 433, 446, 449, 451, 464, 480, 487, 489, 513, 532, 564], "4th": [392, 418], "4yr_catalog": 61, "5": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 52, 53, 67, 83, 87, 91, 102, 103, 105, 108, 109, 110, 118, 122, 125, 126, 128, 130, 132, 141, 142, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 173, 176, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 222, 225, 226, 228, 229, 230, 234, 235, 237, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 280, 303, 307, 339, 370, 371, 375, 377, 380, 381, 384, 385, 387, 391, 392, 394, 395, 396, 397, 399, 403, 404, 405, 411, 416, 419, 421, 423, 424, 431, 433, 435, 436, 438, 439, 440, 444, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 511, 512, 515, 522, 525, 527, 528, 529, 530, 531, 535, 536, 537, 538, 540, 544, 545, 550, 552, 553, 554, 558, 559, 563, 566, 567, 568, 569, 571, 577, 579, 580], "50": [87, 91, 94, 111, 116, 347, 387, 407, 450, 456, 457, 461, 463, 471, 473, 474, 475, 480, 481, 484, 486, 488, 489, 490, 493, 494, 496, 502, 503, 504, 527, 530, 538, 580], "500": [193, 194, 196, 202, 205, 206, 459, 465, 467, 468, 486, 493, 494, 504, 530, 535], "5000": [19, 20, 87, 91, 506, 530], "5000056568267741": 465, "5000e": 458, "50022222": 94, "500249": 480, "5004": 465, "5015": 446, "502": 436, "5029747": 457, "503": 436, "5030": 504, "504": 28, "5040": 446, "5044": 446, "5049": 504, "505": [67, 480, 481], "505523195905": 463, "5057": 447, "5058": 447, "506": 436, "5066": 480, "507": 436, "5074834": 97, "5078068": 97, "50807568877": 480, "509587": 482, "509632": 482, "509e": 480, "50e": [458, 488], "51": [52, 53, 67, 142, 460, 461, 463, 469, 489, 502], "510": [436, 482], "5106": 504, "51095676": 475, "511": [67, 436], "5115": 447, "51179": [381, 582], "5118": 447, "512": 455, "5125": 447, "5126": 67, "5129": 447, "513": [416, 486], "51312": 465, "5135": 447, "5144": [94, 450], "5145": 447, "514854": 493, "51544": [458, 467, 468, 471], "5156": 447, "5160": 447, "5161": 447, "5162628e": 484, "5163273": 493, "5169": 447, "5176": 447, "518": [436, 488], "5180": 447, "5184": 447, "5186": 447, "5188": 447, "5188338e": 484, "51910": 94, "5192420e": 484, "5194769e": 484, "51948705e": 489, "51958055e": 482, "52": [53, 125, 173, 450, 452, 459, 461, 463, 474, 480, 489, 493, 496, 504], "5200": 447, "5205": [447, 494], "5206": 447, "5207": 447, "52074074074": 83, "521": 437, "522": [449, 454], "5222": 447, "523": [437, 486], "5230376e": 484, "52318414": 97, "523681640625": 455, "5237647004325865": 490, "52389101852": 480, "523a": [244, 280], "523b": 22, "523e": 456, "524": [437, 449, 480, 481, 488, 492], "5248": 504, "524807800000000": 504, "5254": 447, "5255": 447, "5258": 447, "52587": 459, "526": 437, "52607": 504, "5269": 447, "527": [437, 494], "5270": 447, "5271": 447, "5275": 447, "5279": 447, "527e": 456, "528": [455, 488], "5280": 447, "52826166": 480, "5283": [480, 504], "52839183495354": 474, "5285": 447, "5289": 447, "529": 437, "5292": 481, "529411764705883": 469, "5297": 447, "5297030e": 484, "5298": 447, "52e": [475, 502], "53": [28, 465, 477, 491, 535, 544], "530": 437, "5300": 447, "53025": 94, "5303": 447, "5304": 447, "531": [437, 469], "5312": 447, "5314": 447, "5316": 447, "5320": 447, "53213": 465, "5324402": 97, "5326744": 97, "5326841": 97, "5326859": 97, "533": 480, "53343": [416, 472], "53344": 472, "53345": 472, "53346": 472, "53347": 472, "53348": 472, "5342": 447, "5345275e": 484, "5346": 447, "53482e": 450, "535": [437, 480], "5350": 447, "535058216604496": 280, "5353": 447, "5356": 447, "53566": 450, "53616": 244, "5366": 447, "537": 454, "5370": 447, "537001": 555, "5378": 447, "5380": 447, "5381": 447, "5382": 447, "53849342472254e": 477, "5385": 447, "5389": 447, "539": [280, 488, 542], "5390": 447, "5390438": 97, "5392e": 473, "539397": 480, "53945": 473, "53946": [477, 478], "539e": 480, "53e": [416, 458], "54": [67, 452, 455, 480, 484], "5400": 481, "5405": 447, "5407": 447, "5407363826067": 515, "5407363826070": 515, "5408": 447, "5409": 447, "541": 437, "5411": 450, "5423": 447, "5427": 447, "5427520e": 484, "54282": 459, "5433": 447, "5437": 447, "5438": 447, "5438860e": 484, "544": [437, 480, 494], "5445": 447, "5448": 447, "5449": 447, "545": 437, "5453": 447, "54566271": 579, "545y": [39, 40], "546": 437, "5461745": 97, "5462": 447, "5466": 447, "54676837e": 483, "54682": [459, 480, 494, 504], "547": [437, 450, 480], "5472": 447, "54721e": 450, "5477": 480, "54772": 480, "548": [449, 488, 492], "54892": 459, "548e": 480, "549": 437, "549007644529844e": 502, "549019607843138": 469, "5499840": 493, "54_uhdf": 459, "54e": 488, "55": [39, 42, 87, 91, 211, 474, 475, 483, 487, 491], "550": 455, "55027": 142, "55045": 480, "551": 480, "55197": [381, 582], "552": 480, "5525": 447, "55275": 494, "553": [451, 480], "5531e": 451, "553337": 504, "5538": 504, "5538942e": 484, "553e": 459, "554": 67, "55410": 480, "5545": 447, "5545130e": 484, "55461982e": 482, "554e": 453, "5553e": 474, "556": [437, 455, 580], "5561760e": 484, "557": [437, 488], "55775": 480, "558": 437, "558338072878877": 502, "559": 437, "5594": 83, "56": [450, 456, 475, 486, 495], "560": [37, 480], "5606985": 475, "5607778e": 484, "56093766": 97, "56141": 480, "562": 480, "5622482": 97, "56234132519": 482, "562885": 471, "56353481": 579, "563e": [455, 465], "564": [295, 437, 449, 455, 488, 499], "564139576925786": 466, "5644": 481, "565": 437, "56506": 480, "565095": 450, "566e": 455, "56711": 504, "5686274509803928": 469, "56871": 480, "569": 437, "56922612": 579, "5692809e": 484, "56973": 504, "57": [33, 458, 459, 463, 465, 475, 486], "57011": 465, "571": 480, "57185": 515, "5719922e": 484, "571e": 480, "572": 456, "57233": 504, "57236": [459, 480, 494, 504], "572e": [453, 459], "573": [67, 455, 504], "57300957": 176, "573529": 556, "5754970e": 484, "576": [449, 463, 470, 483, 488, 492], "5760": 504, "57602": 480, "5763635e": 484, "5768262e": 484, "576e": 459, "577398": 494, "5777e": 474, "5779092e": 484, "578": [480, 482, 579], "5782814": 482, "579": 480, "579178801616083e": 477, "57944657408": 480, "57967": 480, "57e": 480, "58": [416, 419, 458, 463, 466, 480, 485, 486, 488, 496, 502], "580": 580, "581": 456, "5819e": 457, "582": 437, "58332": 480, "5833e": 480, "5835918e": 484, "583e": 459, "5842497e": 484, "585": 480, "58540702": 97, "5867488e": 484, "58693695": 475, "58698": 480, "5882352941176467": 469, "588e": 480, "58909": 474, "58926": 459, "5892966e": 484, "5895": 452, "58999": 239, "58e": [471, 480, 482], "59": [83, 461, 471, 472, 480, 485, 496, 504], "590": 455, "59000": [239, 573], "59001": 239, "59063": 480, "5908": 480, "590835686434463": 490, "591": [437, 480], "59100": [572, 573], "59123": [566, 567, 568], "5915030546513255": 478, "5915e": 480, "5919e": 471, "59200": 572, "59233": 489, "59235": [83, 493], "59240": 489, "5924e": 503, "59250": 489, "59254e": 450, "59265": 450, "593": 437, "59300": 475, "59344": 504, "59348": 504, "59365": 573, "594": 437, "59400008": 97, "59428": 480, "59451": 459, "59497703e": 477, "5951631e": 484, "5956621435": 482, "596": 488, "59696": 459, "596e": 480, "597194451442478e": 477, "597774": 484, "59793": 480, "598": 504, "5985": 504, "5987726": 97, "599": [437, 469, 473, 488], "599625": 493, "59976": 480, "599999904632568": 480, "59d09m41": 480, "59e": [471, 480, 488, 494], "5a": 58, "5bq_njo9": 485, "5e": [458, 468, 480, 482, 488], "6": [28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 50, 52, 53, 67, 86, 87, 91, 100, 102, 109, 111, 116, 125, 130, 142, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 239, 280, 368, 371, 384, 387, 392, 396, 397, 400, 405, 413, 416, 429, 431, 433, 439, 440, 444, 446, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 510, 527, 531, 537, 541, 561, 577, 579], "60": [67, 91, 155, 444, 456, 459, 480, 483, 494], "600": [456, 459, 464], "6000": 530, "6000000000000001": 489, "600661": 484, "60075": 484, "60090769e": 489, "600e": 455, "6018166e": 484, "601e": 480, "6024e": 503, "603": [488, 504], "6033": 450, "60350": 453, "603625": 484, "604": 455, "6046689e": 484, "60603928": 489, "60682": [569, 570, 571], "607843137254942": 469, "60e": 480, "61": [67, 142, 426, 463, 480, 488, 494, 580], "610": 488, "61051": 494, "6105760e": 484, "611": [459, 482, 579], "611168": 482, "6116853": 480, "611e": 480, "6125": 496, "612e": 459, "613114": 478, "61422433": 97, "614389": 570, "61453755944866": 466, "61489": 484, "61526": 142, "615316": 504, "617835": 484, "6181862e": 484, "61862": 239, "619": 480, "6194453e": 484, "61975454954816": 502, "62": [480, 495, 503], "620": 480, "620398": 484, "6205": 504, "62111": 459, "621499": 504, "6218742e": 484, "6219": 453, "622": [437, 453], "62258": 480, "6227766": 486, "62277660168379": 486, "6228e": 453, "623": [480, 504], "62320": 453, "623397": 484, "62341325": 486, "623413251903492": 486, "624": 488, "624122": 465, "624d": 24, "624e": 455, "62503": 480, "62514628": 484, "6253652e": 484, "6259962e": 484, "6266": 504, "6267247": 504, "627": [449, 505], "627450980392158": 469, "627534": 557, "628": [437, 564], "62842028": 481, "63": [191, 192, 201, 204, 450, 455, 457, 481, 485, 495, 496, 502, 503, 525, 527, 528, 531], "630": [82, 488, 496, 502], "6309576500000000": 504, "630e": 67, "631": [437, 463], "631155605": 467, "631159205": 467, "631170005": 467, "631173605": 467, "631177205": 467, "631180805": 467, "6318811e": 484, "632627": 504, "633": [85, 102, 105, 109, 110, 173, 456, 464, 485, 502, 503, 527], "63307": 83, "63308": [472, 503], "633083": 487, "63310241699219": 464, "63326": 459, "6333": 94, "63342": 504, "633600": 488, "634": [449, 454], "635": 437, "63500212963": 480, "6354": 504, "63541": 493, "63668832485633": 474, "638": 488, "639": 480, "6390": 450, "63902": 450, "6395e": 460, "6397": 504, "63e": 481, "64": [39, 67, 83, 125, 192, 419, 471, 480, 494], "640": 437, "6402822e": 484, "641": [437, 449, 466, 470, 504], "64103": 493, "6413": 465, "641675": 537, "6417": 465, "6419578e": 484, "642": 504, "6423836025257211": 466, "6428": 474, "6429005895278312": 490, "642e": 455, "643": [30, 31, 32, 33], "64323": 459, "64438": 494, "6444": 450, "644527": 482, "645": [449, 476, 477, 481, 482], "6451": 465, "6464": 450, "646e": [136, 298], "647": 437, "647058823529452": 469, "6471115e": 484, "64794383e": 489, "648": 437, "648e": 67, "649": 437, "64987376": 97, "64e": 456, "65": [63, 142, 404, 419, 421, 481], "650": 481, "6509": 450, "651": 480, "651058": 504, "6514": 504, "652": 464, "6522806": 504, "652368617859867": 464, "653": [437, 452], "65357608e": 484, "654": [450, 480], "65412": 465, "654e": 480, "655": 459, "655283": 459, "6554088e": 484, "6556248e": 484, "6557": 459, "655e": [67, 456], "656": 579, "65603222222": 494, "65603794185": 480, "6561e": 463, "657569": 104, "6577182894355391": 490, "658": 488, "658909145253801e": 504, "6589622747787678": 490, "659": [455, 459], "659939": 566, "65e": 118, "66": [52, 53, 419, 422, 458, 464, 481, 483, 488, 491, 494, 502], "660": 437, "6604475": 465, "660e": 504, "660fals": 453, "661": 437, "66104": 450, "662": 480, "663": [455, 579], "663742400000000": 504, "664502403": 493, "664502405": 493, "664502408": 493, "664502409": 493, "664502414": 493, "664e": 459, "6652219e": 484, "6656409356335768": 466, "666": [449, 465, 470], "666495": 535, "66650390625": 452, "6666666666583865": 473, "6666666666666666": 568, "666666666666696": 469, "6678": 459, "66813": 465, "66984341": 484, "669e": [142, 459], "66e": [463, 481], "67": [17, 419, 480, 504], "670": 480, "6705024680435898": 305, "671": [457, 467, 496, 566], "671616": 450, "6728": [480, 504], "67304": 97, "67375": 450, "67457342435522e": 504, "675": 455, "676070": 546, "6768369882260035": 456, "6768e": 456, "677": [437, 449, 476], "6772235e": 484, "67759236e": 484, "678": [86, 466], "67824": 481, "6784": 579, "67861": 484, "678683717532289e": 456, "679": 437, "679478008080033e": 456, "6795e": 456, "67992517": 97, "67e21": 479, "68": [67, 83, 96, 154, 160, 162, 163, 164, 166, 234, 419, 450, 480, 483, 484, 486, 493, 504, 580], "680": [449, 470, 488], "6803": 504, "6812310184489": 474, "68125": 484, "6823": 450, "683535101178161e": 477, "684": 173, "68542112": 97, "68588096384626e": 477, "68628538586": 481, "687": 488, "687214": 485, "687500": 485, "687685": 480, "68e": [451, 463, 480], "69": [102, 446, 459, 471, 474, 480, 481], "690": 67, "690557685186": 480, "6909290e": 484, "691": 480, "691299354164691": 466, "69138": 459, "691680": [102, 481, 488], "692": 459, "692085": 563, "6920e": 457, "692e": 456, "69314486": 487, "693940": 463, "6953125": 481, "69543812": 97, "6959369197218669": 490, "695e": 459, "697": [449, 461, 462], "697317": 494, "69735": 484, "697e": 453, "697fals": 453, "6985": 452, "6992": 465, "6e": [453, 480, 488], "6h": 495, "6th": 418, "6vfdtfve": 451, "7": [30, 31, 38, 52, 53, 67, 87, 91, 125, 131, 141, 173, 176, 203, 209, 211, 237, 370, 371, 380, 384, 385, 392, 396, 397, 400, 416, 420, 421, 423, 424, 430, 431, 436, 437, 438, 440, 441, 450, 455, 456, 458, 459, 464, 466, 467, 472, 473, 474, 475, 477, 478, 480, 482, 483, 484, 485, 486, 488, 489, 490, 491, 493, 494, 502, 504, 531, 535, 536, 572, 579, 580], "70": [67, 91, 102, 456, 465, 480, 481, 579], "700": [388, 468, 482, 487], "70000000e": 489, "7000e": 489, "70016": 465, "7007": 465, "701": [449, 476, 527], "70181": 142, "702": [472, 480, 494, 503], "702e": 459, "703": 416, "70358483e": 489, "704": 488, "70428": 504, "70437": 484, "705": 504, "70546": 459, "705539": 124, "70634e": 450, "706e": [464, 480], "707945784": 482, "707t": 289, "708": [455, 456], "709": [437, 449, 459, 462], "7097381e": 484, "70e": 489, "71": [33, 456, 458, 488, 580], "710": 437, "71067811865478": 480, "710930": 460, "7115414505410296e": 477, "7116851": 489, "711e": 459, "712": 466, "71220672": 481, "7123895e": 484, "712e": [472, 503], "713": [437, 480], "7132e": 504, "71387207e": 482, "714": [480, 505], "715": 504, "716": [96, 305, 306, 486], "716062": 493, "71693826": [473, 477, 490, 518], "717": 480, "71795506": 504, "7184": 504, "719": [437, 488], "7190994e": 484, "71944e": 450, "7195": 480, "719e": 480, "72": [423, 452, 480, 485, 504], "720": [468, 480], "7200": 471, "722": 488, "72217": 504, "722557505166": 480, "723": 459, "723e": 480, "7240965e": 484, "725": 480, "725490196078432": 469, "726e": 455, "727": 488, "72775": 504, "7284447e": 484, "729e": 459, "73": [450, 504], "7303": 504, "731": 437, "731589446928548e": 502, "732e": [67, 480], "733": [67, 437], "734": 504, "7350250533013533": 490, "7350380e": 484, "7351418e": 484, "735e": 480, "736": [455, 579, 580], "737": 455, "738": [437, 480], "7385727e": 484, "739": 437, "7395744e": 484, "739e": 67, "73e": [480, 502], "74": [450, 504], "740": 437, "742": 488, "743e": [451, 480], "74427": 465, "74465974e": 484, "74479": 459, "745098039215687": 469, "74542e": 450, "746": 437, "7471700e": 484, "7479085e": 484, "748": 480, "748259": 463, "74989420933": 482, "75": [67, 373, 447, 451, 455, 504], "750": 580, "751643891117176": 502, "75267735": 504, "753": [437, 456], "7537086e": 484, "754": [437, 494], "75408483": 504, "754859": 536, "7555": 485, "755734405626": 570, "755740153625": 571, "755742519876": 569, "7559": 504, "756": 480, "7567": 450, "757": [449, 492], "7580410e": 484, "759": 437, "7596682e": 484, "75e": [480, 503], "76": [466, 477, 486], "7613": 416, "761c": 28, "762": 437, "762199399999986": 542, "763": 437, "7637308880733709": 490, "7638": 459, "763e": 459, "76419591747674": 474, "7647": 504, "764705882352942": 469, "76473": 459, "7652512e": 484, "766": [437, 459], "7660168382": 480, "766d": 493, "767": 437, "76739": 480, "768000": [102, 481], "768048": 97, "7681656e": 484, "76837444": 475, "7684028": 504, "7692170e": 484, "76e": 488, "770": 67, "771667": 496, "77174": 459, "7718272408581743": 305, "771e": 480, "772": [437, 450], "77206": 504, "77218": 459, "773": 480, "773184": 551, "7733e": [451, 480], "77351": 459, "774": [437, 471], "7743835449219": 455, "774e": 480, "775": [67, 488], "7752246942468283": 465, "7755386e": 484, "7760": 504, "7763307219821931": 305, "7765957e": 484, "77678": 450, "7769775": 493, "777": 437, "7771617763704126": 305, "77751797": 97, "777e": [67, 453], "777l": 35, "778": [437, 449, 455, 470, 480], "77827941": 486, "778279410038923": 486, "779": [456, 480], "7796942": 504, "779e": 455, "77e": [458, 480], "78": [486, 487, 495, 503], "780": [31, 125], "7800e": 455, "7804888e": 484, "78083": [141, 142], "780e": 125, "78181": 142, "78188": 459, "78188096": 97, "782": 494, "7827941": 486, "78279410038923": 486, "783": [437, 480, 504], "78332719": 465, "78333": 465, "783587001383003": 493, "783e": 465, "784": [438, 456], "7843137254901955": 469, "78499999999997": 538, "785": 538, "7853981633974483": 571, "787": [67, 173], "787169465401243e": 472, "7875405607868806": 490, "7876233e": 484, "788": [474, 480], "7887840e": 484, "788826": 547, "788e": 480, "789": 437, "78910994": 97, "7894": 465, "78952750835169": 474, "78e": 488, "79": [452, 480], "790": 437, "791": 438, "7913e": 455, "7922": 450, "793": [438, 459], "794": 482, "7941697": 482, "79432823": 489, "7943282347": 482, "79469899": 465, "79470": 465, "794e": 459, "796": [438, 488], "797": 438, "7972": 485, "798": 438, "798218": 450, "799": 455, "7990194e": 484, "7997221e": 484, "799999952316284": 480, "7c": 486, "7d": 480, "7e": [480, 488, 489], "7e955f": 419, "8": [17, 18, 21, 22, 24, 25, 27, 38, 40, 50, 67, 87, 89, 91, 102, 105, 109, 110, 111, 116, 128, 142, 147, 148, 197, 204, 237, 239, 307, 380, 384, 387, 388, 397, 420, 421, 424, 426, 427, 431, 432, 433, 436, 437, 438, 441, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 511, 513, 522, 527, 531, 535, 544, 555, 563, 579], "80": [176, 457, 459, 481, 486, 494, 527, 554, 563], "800": [449, 497], "800932": 480, "801": [504, 527], "801668796295": 480, "802": [488, 504], "803": 455, "8031431e": 484, "8037638e": 484, "803921568627494": 469, "804": 488, "804492": 471, "80492": 142, "80571": 141, "8062607e": 484, "80683246": 484, "807": [459, 542], "8071": 459, "807201": 504, "8075": [480, 504], "8075185": 480, "808473": 461, "8084e": 463, "808687936570502e": 483, "80871364": 97, "809": 474, "8090746": 493, "809505": 480, "80982039": 484, "80e": 451, "81": [427, 451, 472, 544], "810": [438, 480], "810000": 471, "8100e": 451, "810e": 480, "811": 438, "8115337251905373e": 483, "812": 438, "812075194992371e": 483, "8122169596532167e": 483, "8122425483643125e": 483, "8122e": 483, "812358724314062e": 483, "8129257829574434e": 483, "812951371538087e": 483, "813": 438, "81321308703623": 474, "814": 438, "8150": 504, "8157971601581226e": 483, "816": 438, "8160964882165554": 305, "81699e": 450, "816e": 480, "818388e": 504, "81847286": 475, "818e": 453, "819": 480, "81e": 544, "82": [67, 419, 463, 480, 503, 531], "820": 438, "820318044435": 474, "8205513": 493, "820562952023891": 305, "820734654694367e": 477, "8222980e": 484, "823": 455, "82352941176471": 469, "824": [137, 438, 488], "8241471833009617": 490, "825": [438, 450, 466, 480], "8256": 504, "825e": 474, "826": 438, "826414166666": 94, "827": 438, "8272": 506, "82739": 459, "827e": 142, "8290458e": 484, "8293": 504, "82946153": 504, "82e": 464, "83": [30, 67, 83, 85, 94, 102, 105, 109, 110, 173, 176, 191, 192, 201, 204, 455, 456, 457, 459, 464, 472, 481, 485, 486, 487, 495, 496, 502, 503, 522, 525, 527, 528, 531], "830": 438, "8300": 504, "831": 438, "831266": 572, "832": 438, "83242471": 484, "832628": 568, "833": [438, 456, 459], "833333333336": 475, "834": 438, "8341884287660133": 490, "8349780e": 484, "835": 438, "835e": [456, 465], "835fals": 453, "836": [438, 475, 480], "836319": 463, "836731": 480, "8369650e": 484, "837": [438, 488], "8377268e": 484, "838": 459, "8383396349722769": 305, "84": [24, 142, 419, 449, 455, 457, 465, 480, 488, 531], "840": [438, 459], "841": 480, "84196311": 97, "842": [438, 480], "84233": 459, "842x": [135, 144], "843": [59, 450, 475], "843072": 456, "843137254902004": 469, "843863242310971e": 502, "843e": 67, "8441040e": 484, "844644": 463, "844770648146": 94, "8449575657133206": 305, "845": 439, "84529": 480, "8455480e": 484, "845693": 450, "846": [459, 480, 579], "847": 438, "8475576e": 484, "8475650e": 484, "84e": 463, "85": [87, 91, 445, 465, 474, 535, 536], "851": 438, "851480": 489, "85157506": 504, "8515948e": 484, "85188496e": 484, "85202": 504, "85287": 494, "852e": 480, "854": 438, "854166666664": 475, "85416667": 473, "85469291": 97, "855": 438, "85527": 465, "85527359": 465, "8555500e": 484, "856": [449, 564], "85624": 460, "85625": 460, "8568": 504, "856e": 480, "8570719e": 484, "85722435185": 480, "858": 438, "858e": 480, "859": [438, 455], "85900": 465, "85900392": 465, "85925": 504, "8593054": 480, "859e": 459, "85e": 480, "86": [453, 455, 456, 459, 486, 504, 515], "860": 480, "861": 504, "86111111": 473, "861150": 453, "8613613e": 484, "8615800097566": 474, "86178": 141, "8620": 471, "8623": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "862745098039234": 469, "864": [438, 504], "864977": 552, "865": [438, 459], "86676": 494, "8669": 450, "8672": 465, "867591": 461, "86793518066406": 452, "868": [438, 449, 470, 480], "86831929": 97, "8699": 450, "8699165e": 484, "87": [67, 465, 474, 486], "870": [67, 438], "8704": 459, "871": 438, "871730083414263e": 477, "872": [438, 459, 474], "873": 456, "8733348": 493, "8736082200157": 466, "873659477745188": 490, "874": 452, "875": 438, "876": 488, "87621184": 461, "8769240e": 484, "876e": 459, "87710186": 97, "877563": 480, "878": [480, 488], "87897": 465, "87897418": 465, "8799800e": 484, "87e": 21, "88": [419, 441, 457, 465, 466, 477, 480, 486, 504], "880e": 459, "881": [438, 450, 459], "8815212313941426": 490, "882": 67, "882352941176466": 469, "883": 438, "8834862e": 484, "883e": 67, "884": 438, "88470839": 489, "885": 438, "886": 480, "8865": 504, "88781": 459, "888": 438, "8885138e": 484, "889": 480, "8893600e": 484, "88e": [453, 480], "89": [33, 486], "8908866e": 484, "8909e": 474, "890e": 67, "89136561972272": 474, "892": [449, 488], "8921": 471, "89243456": 504, "8926": 504, "89287": 450, "893": 438, "894": 453, "8943121e": 484, "89492144e": 483, "895": 475, "8954039e": 484, "89595846": 489, "89709472": 504, "898": 438, "8986348363207728": 490, "89873": 465, "8989213": 465, "898e": [459, 480], "899": 67, "8999": 465, "899a": 280, "89e": 481, "8e": [453, 463, 466, 468, 488, 494, 563], "8x9zwff": 477, "9": [31, 33, 35, 67, 83, 87, 91, 141, 197, 209, 237, 239, 337, 344, 377, 384, 385, 389, 397, 416, 422, 424, 435, 438, 440, 443, 445, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 530, 537, 541, 542, 543, 550, 566, 574, 579], "90": [57, 67, 403, 458, 461, 464, 465, 480, 486, 489, 506], "900": 480, "9002269877996247": 475, "900269": 484, "9023670e": 484, "90242058e": 481, "9032163": 86, "904": 504, "905": [449, 462, 480], "9053655e": 484, "9053906e": 484, "906": [438, 480], "90605275e": 494, "90677811e": 482, "90685": 459, "907": 480, "9074812e": 484, "9077294": 493, "90e": [102, 456, 463, 481], "91": [458, 486, 491, 531], "911": 438, "911552434768802e": 472, "912": [449, 454, 480], "912525e": 504, "912779907405": 480, "913196574074": 472, "913e": 459, "914": 67, "915": 480, "91507": [102, 481], "91612243652344": 452, "9163195e": 484, "91719": 481, "918": 67, "918365": 480, "919": 438, "919e": 480, "91e": 488, "92": [142, 458, 459, 486, 493], "920": 455, "92052435e": 482, "9205875e": 484, "921": 456, "9215375e": 484, "92234009259": [416, 472], "924": 456, "9240e": 489, "92490": 459, "925106": 465, "9269494e": 484, "9277492e": 484, "928": 480, "9280475e": 484, "929": [450, 456], "92960065298276": 502, "93": [67, 123, 125, 458, 459, 486, 493], "93026": 480, "9303": [480, 504], "931": 303, "93128e": 450, "932": 438, "93271046296": 472, "933": 438, "9332549000000": 504, "9343": 450, "935826709880043": 478, "93702": 494, "9382336444241555": 490, "938e": [465, 480], "939": [291, 297], "9391360e": 484, "93988308": 97, "93e": 480, "94": [458, 480, 486, 493, 502, 504], "940e": 480, "940fals": 453, "94111838": 97, "941176470588236": 469, "94186555556": [416, 472], "943282347242818": 502, "943466": 541, "944060876": 482, "9441e": 460, "9453950989269149": 490, "9462": 465, "946923": 274, "94722599": 465, "94723": 465, "947e": 459, "948683": 450, "9489822e": 484, "949": 488, "9499210e": 484, "94e": [465, 480], "95": [33, 67, 154, 160, 162, 163, 164, 166, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 458, 459, 465, 471, 474, 480, 481, 483, 486, 487, 493, 535, 580], "950": 438, "9500979841335693": 305, "95024543e": 483, "950e": 455, "952": 67, "9529719e": 484, "953": 488, "95421509259": 472, "95451985e": 125, "9546285068162436": 490, "95615": 450, "957": 67, "9580e": 457, "95883": 504, "959198": 480, "959d": [52, 53], "96": [419, 451, 458, 481, 486, 544], "960179": 549, "9606540e": 484, "960784313725491": 469, "9608912e": 484, "961": [449, 505], "9619812963": 472, "962565": 502, "963": [449, 492], "96374320": 461, "966": 438, "96602": 460, "967546": 459, "9677107409819438": 305, "968": [455, 465], "96814": 504, "96833546296": [480, 494], "968488": 303, "969": 480, "9692e": 451, "96e": 453, "96r": 486, "97": [458, 480, 484, 490, 503], "97003": 504, "97054": 459, "970e": 480, "97116": 465, "9721952295357764e": 477, "973": 480, "9730e": 464, "97369425926": 472, "974e": 480, "975": 438, "97529": 141, "97596": 459, "976": 438, "97749": 465, "97749371": 465, "9776920e": 484, "979": [67, 438, 486], "97934": 459, "97978": 83, "97e": 480, "98": [83, 347, 452, 457, 458, 459, 463, 472, 474, 484, 502], "980": 67, "9803921568627443": 469, "98049": 459, "98149518519": 472, "9816452e": 484, "982075849517389e": 489, "98258": 459, "9833462074166": 480, "9834338e": 484, "98359211196148547": 465, "98429": 459, "9845": 450, "9847406e": 484, "984e": 459, "985": [438, 453], "985502122122975": 490, "9868440049211211": 502, "9876": 450, "98772": 141, "988": [438, 480, 488], "988409870698051e": 52, "9890": 504, "989679": 502, "98e": 480, "99": [347, 458, 459, 460, 471, 482, 503, 504], "99004": 142, "991": 480, "9910796e": 484, "9912648e": 484, "9912712e": 484, "9924e": 474, "993": 452, "9931": 504, "994": 438, "99467": 142, "994e": 480, "995": 488, "9952623149688797": 502, "9969731e": 484, "997": 438, "9977859e": 484, "9978": 504, "998": 466, "99848e": 494, "99878762e": 482, "999": [50, 163, 166, 480], "99919925926": 239, "99993896484375": 455, "9999912037958": 465, "999999": 480, "99999994": 86, "9999999995": 480, "9999999997835": 452, "99999999999545": 477, "999999999997": 467, "9999999999977": 480, "9999999999978": 473, "9999999999998": 480, "99999999999994": 480, "99999999999999": [458, 480], "99e": 480, "9e": [451, 453, 480, 563], "A": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 104, 105, 108, 109, 110, 123, 124, 125, 133, 136, 141, 142, 191, 192, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 214, 215, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 271, 272, 273, 274, 275, 276, 288, 290, 298, 299, 307, 316, 369, 370, 371, 373, 374, 381, 383, 385, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 401, 403, 404, 405, 406, 407, 408, 409, 418, 420, 424, 425, 426, 427, 428, 431, 433, 434, 437, 438, 439, 440, 442, 444, 445, 446, 447, 450, 452, 457, 459, 463, 465, 466, 469, 472, 473, 474, 475, 478, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 501, 503, 504, 506, 514, 515, 516, 518, 519, 527, 528, 530, 531, 533, 535, 572, 573, 576, 577, 580], "AND": [487, 488], "AS": 409, "And": [280, 380, 383, 398, 400, 406, 411, 452, 453, 455, 456, 463, 467, 469, 474, 481, 483, 486, 487, 489, 493, 502, 503, 504], "As": [83, 307, 337, 380, 381, 383, 388, 392, 393, 394, 396, 398, 406, 407, 409, 416, 421, 440, 450, 451, 452, 455, 456, 457, 459, 460, 461, 465, 467, 468, 472, 473, 474, 477, 478, 479, 480, 481, 483, 485, 486, 489, 491, 494, 496, 502, 504, 518, 527, 580], "At": [263, 394, 397, 406, 407, 410, 424, 467, 486, 493, 523, 576], "But": [380, 385, 388, 394, 399, 407, 410, 416, 440, 455, 456, 483, 491, 493, 502, 578], "By": [19, 20, 26, 50, 65, 87, 91, 101, 102, 105, 109, 110, 122, 126, 130, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 170, 173, 180, 190, 192, 193, 194, 196, 202, 205, 206, 218, 219, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 377, 380, 406, 407, 408, 425, 426, 428, 467, 468, 473, 478, 483, 486, 491, 503, 525, 529, 535, 536, 537, 581], "FOR": [136, 298], "For": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 77, 82, 87, 88, 91, 95, 99, 100, 101, 102, 105, 109, 110, 118, 120, 122, 123, 125, 126, 127, 130, 131, 132, 133, 150, 151, 152, 158, 163, 166, 173, 178, 179, 180, 183, 184, 186, 187, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 230, 231, 234, 235, 236, 237, 238, 239, 240, 242, 247, 248, 249, 250, 251, 252, 254, 255, 260, 261, 262, 264, 265, 267, 268, 269, 271, 275, 276, 289, 291, 295, 297, 304, 310, 325, 379, 380, 381, 383, 385, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 403, 405, 406, 407, 408, 410, 411, 415, 416, 418, 421, 422, 423, 425, 426, 427, 428, 431, 438, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 467, 469, 471, 472, 473, 474, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 503, 504, 506, 513, 514, 516, 518, 528, 530, 531, 536, 541, 573, 577, 578, 580, 581, 582], "IN": [92, 100, 247], "If": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 93, 94, 96, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 120, 122, 123, 124, 125, 126, 128, 130, 133, 136, 140, 141, 143, 145, 150, 151, 152, 158, 161, 163, 166, 167, 169, 170, 173, 175, 176, 179, 180, 183, 184, 186, 187, 188, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 211, 214, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 287, 304, 307, 319, 320, 325, 366, 369, 373, 374, 375, 376, 380, 381, 382, 383, 385, 387, 388, 393, 394, 396, 397, 398, 401, 402, 403, 405, 406, 409, 410, 411, 412, 413, 414, 415, 416, 420, 421, 422, 439, 440, 441, 450, 452, 453, 455, 457, 458, 460, 463, 465, 468, 471, 472, 473, 474, 475, 477, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 504, 516, 518, 529, 531, 537, 539, 552, 578, 579, 580, 581], "In": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 77, 83, 84, 87, 88, 90, 91, 94, 101, 103, 104, 108, 124, 125, 150, 169, 192, 194, 197, 200, 206, 214, 216, 275, 287, 320, 380, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 416, 421, 422, 423, 424, 425, 426, 427, 428, 431, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 461, 463, 464, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 494, 495, 502, 503, 504, 514, 516, 518, 523, 526, 527, 528, 530, 531, 532, 535, 536, 541, 554, 573, 576, 577, 578, 579, 580, 581, 582], "It": [15, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 102, 105, 109, 110, 111, 114, 116, 123, 141, 150, 154, 161, 162, 163, 164, 166, 176, 179, 183, 184, 189, 193, 194, 196, 198, 201, 202, 205, 206, 208, 218, 219, 222, 225, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 259, 263, 264, 266, 267, 268, 269, 272, 276, 289, 293, 295, 296, 315, 329, 334, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 404, 405, 406, 407, 408, 410, 411, 415, 417, 421, 422, 423, 424, 428, 431, 433, 434, 435, 440, 442, 444, 445, 446, 447, 450, 456, 461, 464, 466, 468, 471, 475, 478, 480, 481, 482, 483, 485, 486, 487, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 507, 514, 515, 517, 518, 522, 523, 525, 527, 531, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 575, 576, 577, 578, 579, 580, 582], "Its": [392, 406, 407, 431, 433, 469, 473, 491, 503, 520, 521, 522, 524], "NOT": 487, "No": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 391, 401, 404, 405, 439, 441, 448, 469, 477, 480, 483, 485, 486, 504], "Not": [105, 109, 110, 195, 201, 203, 388, 563], "ON": [102, 105, 132, 180, 181, 182, 190, 378, 386, 433, 447, 450, 451, 455, 458, 461, 465, 472, 473, 475, 483, 485, 491, 518, 527, 579, 581], "OR": [102, 109, 481, 487, 488], "Of": [380, 383, 416, 463, 481, 486, 494, 578, 581], "On": [59, 168, 174, 175, 178, 289, 296, 303, 380, 381, 386, 388, 395, 396, 409, 411, 412, 413, 414, 435, 463, 464, 483, 498, 580], "One": [31, 32, 37, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 101, 102, 105, 109, 110, 224, 233, 247, 333, 380, 381, 386, 388, 389, 390, 391, 394, 396, 397, 398, 406, 445, 452, 456, 461, 472, 485, 486, 487, 502, 504, 527, 531, 554, 578, 580], "Ones": 307, "Or": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 381, 399, 400, 456, 463, 477, 481, 482, 486, 493, 494, 516], "Such": [392, 484, 522], "THE": [136, 298], "That": [16, 19, 20, 84, 90, 104, 124, 211, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 381, 385, 394, 397, 400, 483, 504, 578], "The": [11, 15, 16, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 52, 53, 57, 59, 63, 69, 77, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 170, 174, 175, 179, 180, 183, 184, 185, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 200, 201, 202, 203, 204, 205, 206, 210, 211, 212, 215, 217, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 279, 280, 286, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 303, 307, 319, 325, 327, 328, 331, 347, 363, 364, 366, 368, 369, 370, 371, 373, 374, 375, 376, 377, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 412, 413, 414, 417, 420, 421, 423, 424, 425, 426, 427, 428, 431, 433, 434, 435, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 498, 502, 503, 504, 506, 507, 508, 509, 513, 514, 516, 517, 518, 520, 521, 522, 523, 524, 525, 526, 528, 529, 530, 531, 532, 535, 537, 539, 540, 541, 544, 550, 552, 554, 563, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583], "Their": 487, "Then": [67, 102, 107, 109, 383, 385, 390, 393, 395, 396, 397, 398, 404, 413, 452, 455, 463, 464, 467, 471, 472, 483, 487, 489, 491, 503], "There": [87, 91, 141, 380, 381, 385, 386, 387, 389, 394, 395, 396, 397, 398, 399, 400, 401, 404, 407, 410, 412, 413, 439, 447, 465, 469, 478, 479, 480, 481, 483, 484, 485, 487, 488, 495, 506, 514, 515, 518, 531], "These": [77, 95, 198, 279, 380, 381, 385, 386, 391, 393, 394, 395, 396, 400, 401, 406, 423, 425, 426, 427, 431, 439, 445, 450, 464, 466, 467, 474, 478, 479, 481, 484, 486, 489, 490, 495, 498, 506, 523, 528, 530, 531, 579, 580, 581], "To": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 100, 104, 108, 122, 124, 126, 130, 192, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 279, 289, 370, 371, 382, 383, 387, 388, 391, 392, 393, 395, 396, 401, 402, 403, 404, 405, 406, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 426, 427, 431, 433, 439, 440, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 460, 461, 463, 465, 466, 467, 468, 469, 471, 472, 473, 474, 477, 478, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 498, 502, 504, 514, 515, 516, 519, 523, 525, 527, 528, 535, 576, 578, 579, 580], "With": [83, 380, 389, 390, 406, 427, 440, 491, 514, 580], "_": [102, 109, 128, 235, 254, 380, 394, 404, 406, 455, 458, 461, 479, 480, 483, 488, 491, 514, 527], "_0": [50, 51], "_1": [105, 110, 515], "_2": [105, 110], "__all__": 380, "__array__": 307, "__array_ufunc__": [457, 467, 496, 566], "__attributes__": [87, 91], "__call__": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 278, 319, 386, 391, 408, 427], "__class__": [380, 404, 479, 512], "__dict__": [16, 84, 90, 104, 124, 380], "__enter__": 358, "__eq__": 433, "__exit__": 358, "__fields__": 407, "__getitem__": [390, 391, 392, 447], "__init__": [16, 84, 90, 104, 124, 201, 275, 380, 386, 392, 404, 442], "__int__": 325, "__len__": 390, "__main__": [258, 380, 491, 500, 578], "__name__": [380, 461, 472, 473, 474, 477, 479, 500, 512, 578], "__neq__": 433, "__pydantic_extra__": [16, 84, 90, 104, 124], "__pydantic_fields_set__": [16, 84, 90, 104, 124], "__repr__": [380, 426, 440], "__str__": [380, 392, 407, 423], "__subclasses__": 479, "__version__": 415, "_basemodel__context": [16, 84, 90, 104, 124], "_build": [381, 410, 518], "_check_interv": 445, "_compute_flux_spati": 431, "_covari": [224, 247], "_data": 404, "_dataset": 381, "_dom_class": [463, 471, 486, 502, 503], "_energy_t": 404, "_err": 477, "_errn": [126, 127, 130, 131], "_errp": [126, 127, 130, 131], "_evaluate_timevar_sourc": 445, "_f_cash_root_cython": 302, "_factr": 483, "_fields_set": [16, 84, 90, 104, 124], "_i": 128, "_k": [102, 109, 514], "_l": 514, "_lat": 380, "_lon": 380, "_map": 373, "_model": 123, "_new_attribut": 380, "_old_attribut": 380, "_parameter_units_for_data_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "_parent_namespace_depth": [16, 84, 90, 104, 124], "_phi": 380, "_prior": 408, "_propagate_error": 430, "_reco": 380, "_repr_html_": 380, "_row_index": 69, "_sample_coord_time_energi": 445, "_scan": 483, "_time_group": 404, "_time_t": 404, "_true": 380, "_type": [408, 491], "_types_namespac": [16, 84, 90, 104, 124], "_was_": [16, 84, 90, 104, 124], "_wc": 542, "_weight": 408, "a9ga2kq": 477, "a_": [105, 110, 153, 520, 523, 580], "a_off": 580, "a_on": 580, "a_scan": 491, "aa": [87, 91, 307, 406], "aaguasca": 442, "ab": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 64, 65, 83, 88, 118, 135, 136, 144, 153, 206, 214, 216, 244, 279, 280, 289, 296, 298, 479, 480], "abc": [18, 56, 99, 121, 172, 191, 196, 485], "abcmeta": 485, "abdalla2018": [527, 528, 577], "abeysekara": 59, "abi6kwl0": 477, "abil": [404, 491], "abl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 390, 395, 398, 452, 471, 472, 473, 491, 498, 578], "about": [11, 13, 16, 84, 90, 104, 124, 148, 153, 234, 239, 337, 380, 383, 385, 389, 396, 397, 399, 400, 401, 405, 406, 408, 409, 410, 415, 416, 435, 436, 440, 441, 442, 451, 453, 459, 460, 461, 463, 464, 465, 467, 480, 484, 486, 489, 494, 503, 504, 514, 515, 578, 581], "abov": [29, 44, 52, 53, 83, 122, 124, 125, 128, 132, 133, 141, 142, 168, 203, 369, 371, 380, 381, 386, 389, 390, 392, 394, 396, 397, 398, 399, 400, 404, 412, 413, 416, 450, 459, 465, 467, 468, 469, 472, 475, 477, 482, 483, 485, 486, 487, 489, 490, 491, 493, 494, 495, 502, 512, 514, 515, 522, 525, 531, 577, 578, 579, 580, 581], "abramowski": 153, "abruptli": [380, 405], "abs_path": 315, "absenc": [395, 461, 485, 487, 527, 579], "absolut": [82, 91, 106, 147, 148, 149, 150, 153, 155, 157, 160, 165, 193, 194, 196, 198, 202, 205, 206, 311, 337, 357, 361, 516], "absolute_tim": 582, "absopt": 398, "absorb": [276, 390, 403, 438, 544], "absorbedspectralmodel": [425, 438], "absorbt": 403, "absorpt": [226, 398, 428, 438, 447, 449, 454, 498, 532, 564], "abstract": [56, 57, 59, 99, 121, 136, 164, 172, 177, 191, 193, 196, 205, 289, 298, 391, 427, 530], "abstractsetintstr": [16, 84, 90, 104, 124], "acada": 406, "academ": [137, 303], "accept": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 105, 106, 110, 122, 123, 125, 168, 185, 190, 192, 193, 194, 196, 204, 205, 206, 224, 247, 290, 378, 384, 385, 386, 387, 388, 389, 392, 393, 394, 396, 397, 398, 399, 400, 401, 403, 405, 406, 407, 408, 432, 436, 445, 447, 450, 451, 456, 457, 458, 461, 465, 468, 481, 485, 486, 494, 514, 530, 536, 554, 579, 580], "acceptance_off": [105, 106, 110, 122, 123, 125, 168, 178, 392, 450, 452, 455, 458, 461, 514, 580], "acceptance_on": [122, 123, 125], "acceptang": 122, "access": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 58, 60, 61, 62, 64, 65, 66, 67, 82, 83, 87, 91, 102, 161, 191, 192, 201, 204, 296, 315, 380, 388, 389, 390, 391, 393, 396, 404, 410, 412, 415, 420, 421, 428, 435, 436, 438, 439, 445, 446, 453, 455, 456, 457, 463, 477, 480, 483, 484, 488, 489, 493, 496, 502, 503, 504, 513, 518, 529, 530, 531, 576], "accessor": 486, "accident": [494, 578], "accomplish": 482, "accord": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 53, 72, 87, 91, 102, 105, 109, 110, 118, 123, 145, 151, 161, 168, 192, 198, 214, 216, 304, 369, 390, 391, 394, 395, 398, 404, 406, 425, 434, 446, 461, 472, 481, 485, 489, 490, 498, 514, 515, 518], "accordingli": [392, 406, 422, 428, 487], "account": [102, 105, 109, 110, 122, 123, 136, 170, 186, 224, 247, 263, 288, 290, 296, 355, 388, 393, 396, 404, 406, 427, 444, 446, 449, 450, 452, 454, 455, 457, 461, 463, 469, 474, 475, 482, 483, 485, 487, 498, 503, 514, 516, 579, 580], "accur": [134, 143, 398, 441, 463, 483, 525], "accuraci": [394, 483, 518], "aceptance_off": 392, "acero": [398, 421, 423, 425, 428, 431, 433, 438, 440, 446, 447], "achiev": [16, 84, 90, 104, 118, 124, 168, 370, 371, 380, 389, 390, 391, 392, 393, 394, 396, 403, 406, 428, 486, 489, 490, 528], "acknowledg": [383, 406, 417], "acquir": 416, "acquisit": 577, "across": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 118, 380, 389, 392, 410, 466, 474, 488, 494, 514, 530, 539, 577], "act": [91, 396, 488, 541], "action": [168, 385, 390, 396, 406, 409, 410, 431, 474], "activ": [91, 296, 383, 397, 411, 412, 414, 415, 416, 425, 442, 478, 518], "actual": [181, 355, 356, 357, 379, 380, 381, 385, 389, 391, 393, 395, 396, 404, 405, 407, 409, 458, 468, 471, 473, 481, 482, 483, 485, 486, 487, 491, 494, 495, 503, 504, 525, 527, 577, 578, 580], "ad": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 59, 82, 83, 84, 87, 90, 91, 102, 104, 105, 109, 110, 114, 115, 117, 124, 125, 193, 194, 196, 201, 202, 205, 206, 380, 381, 383, 385, 386, 388, 389, 390, 392, 393, 394, 395, 396, 397, 399, 400, 404, 406, 420, 421, 422, 424, 425, 426, 428, 431, 433, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 457, 461, 463, 464, 484, 485, 488, 489, 490, 491, 495, 514, 531, 581], "adapt": [118, 168, 211, 389, 390, 393, 394, 399, 400, 402, 403, 406, 409, 416, 421, 422, 424, 425, 426, 428, 429, 431, 434, 437, 438, 440, 442, 444, 445, 446, 447, 481, 484, 486, 487, 525, 528], "adaptiveringbackgroundestim": [178, 386], "adaptiveringbackgroundmak": [171, 425, 528], "adass": 400, "add": [13, 15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 79, 84, 87, 88, 90, 91, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 123, 124, 125, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 170, 193, 194, 196, 200, 202, 205, 206, 212, 224, 247, 263, 304, 349, 368, 377, 379, 380, 381, 383, 385, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 403, 404, 406, 408, 409, 412, 414, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 458, 463, 464, 467, 471, 472, 475, 481, 484, 485, 486, 487, 489, 491, 493, 504, 508, 509, 518, 531, 546, 578, 581], "add_artist": [489, 535, 536], "add_cbar": [102, 105, 109, 110, 125, 147, 148, 150, 153, 154, 155, 160, 161, 162, 164, 193, 194, 196, 202, 205, 206, 368, 459, 460, 461, 463, 465, 471, 475, 479, 481, 484, 485, 486, 488, 489, 494, 495, 502, 503, 531, 534, 535, 536, 539, 540, 542], "add_column": [87, 91], "add_enabled_unit": [450, 458, 460, 463, 465, 471, 474, 493], "add_index": [87, 91], "add_loc": 380, "add_row": [87, 91], "add_subplot": 368, "addit": [16, 19, 20, 26, 43, 84, 87, 90, 91, 102, 104, 105, 109, 110, 114, 122, 124, 126, 131, 165, 193, 194, 196, 199, 202, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 383, 384, 385, 389, 390, 391, 392, 394, 395, 396, 397, 399, 400, 401, 404, 405, 406, 407, 410, 411, 412, 413, 422, 423, 425, 427, 428, 431, 432, 439, 440, 442, 445, 446, 447, 453, 457, 469, 475, 480, 481, 482, 483, 486, 488, 489, 491, 493, 494, 503, 504, 514, 516, 518, 525, 530, 531, 575, 581], "addition": [131, 392, 481, 483, 486, 488, 489], "address": [389, 392, 393, 394, 396, 406, 491, 517], "adequ": 201, "adher": 383, "adjac": [145, 198, 431, 473, 486, 527], "adjust": [16, 67, 193, 194, 196, 202, 205, 206, 389, 391, 403, 447, 456, 478, 481, 482, 489, 490, 502, 518, 525, 577], "admit": 400, "adonath": 386, "adopt": [37, 393, 396, 401, 457, 467, 468, 479], "adsab": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 244, 279, 280, 289, 296, 298], "adult": 380, "advanc": [392, 396, 397, 400, 408, 412, 484, 486, 518, 577, 578], "advantag": [388, 394, 397, 404, 431, 486, 491, 554, 578], "advanteg": 392, "advertis": 409, "advic": [380, 406], "advis": [381, 406, 483, 491, 498], "advoc": 380, "aeff": [16, 82, 87, 88, 105, 110, 153, 179, 187, 390, 392, 393, 427, 428, 452, 455, 456, 457, 460, 461, 463, 465, 473, 477, 484, 485, 493, 495, 496, 502, 503, 520, 525, 527, 528, 577], "aeff2d": 152, "aeff_2d": [82, 87, 153, 493, 496], "aeff_3d": 484, "aeff_ev": 484, "aeff_new": 484, "aeff_perc": [179, 452, 455, 456, 465, 473, 477, 485, 495, 527], "aegi": 226, "af": 376, "affect": [136, 380, 388, 392, 394, 405, 422, 423, 434, 443, 451, 491], "affili": [394, 406, 442], "afmhot": [488, 504], "aforement": 406, "after": [16, 45, 50, 51, 52, 53, 84, 90, 91, 100, 102, 104, 105, 109, 124, 163, 166, 296, 319, 337, 361, 364, 380, 383, 385, 388, 389, 391, 393, 394, 395, 396, 398, 399, 400, 402, 403, 404, 405, 406, 407, 409, 410, 411, 416, 420, 427, 429, 430, 431, 433, 439, 441, 442, 443, 453, 461, 463, 473, 477, 478, 483, 486, 488, 493, 495, 496, 518, 578, 582], "ag": [20, 43, 44, 45, 50, 51, 52, 53, 54, 311, 380, 508], "again": [102, 105, 109, 110, 163, 383, 390, 392, 394, 396, 401, 407, 411, 426, 427, 430, 437, 442, 453, 455, 456, 463, 468, 469, 486, 489, 491, 494, 502, 504, 531, 578], "against": [16, 84, 90, 104, 124, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 381, 383, 397, 403, 410, 480, 482, 494, 502, 513, 516], "agent": 396, "agglom": 13, "aggreg": 407, "agil": 393, "agn": [137, 294, 394, 455, 472, 474, 478, 493], "agnost": 483, "ago": 387, "agre": [195, 198, 383, 385, 394, 406], "agreement": [380, 383, 401, 475], "aguasca": [433, 442, 443, 444, 445, 447], "aharonian": 466, "ahead": [394, 420], "ahelp": 211, "aim": [380, 389, 390, 406, 463, 467, 479, 490, 506, 577], "air": 493, "ait": [192, 193, 194, 500], "aitoff": 394, "aka": 504, "al": [26, 33, 59, 101, 136, 137, 153, 226, 295, 296, 298, 303, 390, 447, 459, 466, 478, 506, 577], "albert": 577, "albert2007": 577, "alexi": [428, 431], "algorithm": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 87, 91, 118, 133, 168, 211, 289, 380, 386, 392, 393, 394, 399, 407, 423, 428, 436, 437, 438, 447, 459, 478, 482, 483, 495, 516, 530, 576, 580], "alia": [16, 56, 84, 90, 104, 124, 383, 504], "alias": [16, 56, 84, 90, 104, 124], "align": [87, 91, 100, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 192, 193, 194, 196, 198, 202, 204, 205, 206, 380, 447, 484, 487, 489], "alisha": 433, "all": [6, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 87, 88, 89, 90, 91, 92, 95, 96, 100, 102, 103, 104, 105, 107, 108, 109, 110, 122, 123, 124, 125, 126, 130, 131, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 167, 173, 180, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 286, 352, 353, 354, 355, 356, 357, 367, 376, 379, 380, 381, 383, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 451, 452, 455, 456, 457, 460, 461, 463, 465, 466, 467, 471, 472, 474, 475, 477, 480, 481, 482, 483, 484, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 508, 514, 516, 518, 527, 529, 530, 531, 532, 554, 575, 578, 579, 580], "all_quant": [123, 125], "allclos": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 195, 196, 198, 202, 203, 205, 206, 355], "alloc": [194, 202, 206], "allow": [16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 84, 87, 90, 91, 104, 118, 123, 124, 125, 132, 133, 163, 166, 192, 197, 199, 330, 380, 381, 383, 385, 386, 387, 390, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 414, 422, 424, 425, 426, 427, 428, 431, 433, 440, 441, 442, 445, 447, 450, 455, 466, 474, 481, 482, 483, 484, 485, 486, 487, 503, 514, 516, 518, 525, 530, 531, 575, 576, 578, 583], "allow_extra": 197, "allow_pickl": [16, 84, 90, 104, 124], "allowed_channel": [26, 479], "allski": [83, 486], "alma": 399, "almeida": 428, "almost": [379, 381, 383, 394, 494, 504], "alon": 385, "along": [68, 101, 123, 125, 129, 145, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 164, 165, 193, 194, 196, 202, 204, 205, 206, 294, 295, 296, 298, 318, 319, 329, 339, 340, 389, 390, 404, 442, 445, 447, 460, 469, 480, 481, 484, 485, 488, 489, 515, 530, 531, 547, 577], "alpha": [21, 27, 28, 48, 102, 105, 109, 110, 122, 123, 125, 168, 190, 211, 229, 230, 240, 241, 242, 255, 290, 301, 304, 377, 378, 392, 403, 405, 431, 438, 447, 450, 451, 452, 453, 455, 457, 458, 461, 463, 464, 468, 475, 480, 483, 491, 493, 535, 544, 546, 548, 550, 552, 553, 554, 563, 569, 570, 579, 580, 581], "alpha_": [105, 110], "alpha_1": [105, 110], "alpha_2": [105, 110], "alpha_norm": [226, 403, 451, 544], "alphabet": [397, 406, 421, 422, 423, 424, 425, 426, 427, 428, 431], "alreadi": [15, 16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 124, 211, 271, 272, 273, 275, 380, 386, 387, 388, 391, 392, 393, 394, 395, 397, 400, 401, 402, 404, 407, 409, 410, 440, 451, 453, 457, 459, 461, 468, 475, 479, 480, 481, 486, 487, 488, 489, 493, 494, 495, 504, 506, 531, 542], "also": [15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 95, 118, 122, 123, 125, 126, 134, 135, 141, 143, 144, 165, 170, 176, 191, 198, 200, 201, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 287, 307, 315, 320, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 425, 426, 427, 428, 431, 439, 440, 441, 445, 450, 451, 452, 455, 456, 457, 458, 459, 461, 463, 465, 466, 467, 468, 469, 475, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 502, 503, 506, 514, 515, 516, 517, 518, 525, 527, 530, 531, 554, 557, 575, 577, 578, 579, 580, 582], "alt": [83, 85, 88, 94, 95, 380, 582], "alt_pnt": 91, "altaz": [83, 85, 94, 156, 380, 484, 582], "altaz_fram": [83, 94], "altaz_from_t": [83, 94], "altaz_interpol": 94, "altern": [82, 87, 91, 286, 379, 380, 383, 385, 389, 413, 431, 451, 455, 457, 459, 466, 480, 483, 484, 486, 488, 493, 514, 515, 578], "although": [380, 393, 394, 395, 397, 400, 404, 483, 493, 540, 541, 575, 582], "altitud": 452, "alwai": [77, 83, 87, 91, 150, 198, 201, 208, 214, 216, 232, 380, 381, 383, 386, 387, 388, 390, 391, 392, 394, 397, 405, 406, 413, 420, 427, 442, 443, 445, 458, 459, 463, 471, 479, 483, 485, 486, 488, 490, 491, 498, 516, 530, 531], "am": 389, "ambigu": [394, 439], "amend": 383, "among": [82, 87, 91, 102, 105, 109, 110, 134, 143, 396, 400, 401, 403, 408, 428, 483, 577], "amount": [387, 394, 408, 518], "amp": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 262, 571], "ampl_2": [154, 484], "ampl_3": [154, 484], "amplitud": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49, 68, 101, 126, 131, 133, 193, 194, 196, 205, 206, 211, 218, 225, 228, 230, 235, 242, 245, 252, 253, 254, 262, 264, 267, 268, 269, 280, 286, 299, 391, 392, 395, 403, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 488, 489, 493, 494, 502, 503, 504, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 548, 549, 551, 552, 554, 555, 556, 557, 559, 560, 561, 562, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "amplitude_err": 477, "amplitude_maximum_signific": 478, "amplitude_maximum_vari": 478, "amplitude_ref": 475, "an": [6, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 50, 66, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 101, 102, 103, 104, 105, 108, 109, 110, 111, 114, 116, 123, 124, 125, 126, 127, 128, 130, 131, 133, 140, 141, 142, 148, 150, 151, 152, 153, 155, 158, 161, 163, 165, 166, 169, 173, 176, 178, 181, 183, 184, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 282, 289, 294, 296, 305, 307, 311, 325, 336, 340, 358, 364, 370, 371, 373, 376, 379, 381, 383, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 411, 412, 413, 416, 417, 420, 421, 424, 425, 426, 427, 428, 431, 433, 434, 435, 438, 439, 440, 442, 443, 445, 446, 447, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 469, 471, 472, 473, 474, 475, 477, 478, 480, 482, 483, 485, 486, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 508, 513, 514, 515, 516, 518, 519, 520, 521, 522, 523, 524, 525, 527, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 577, 578, 579, 580, 581], "anaconda": [397, 411, 412], "analog": [87, 91, 193, 194, 196, 202, 205, 206, 531], "analogi": 401, "analys": [82, 379, 380, 389, 390, 391, 392, 394, 398, 400, 402, 403, 408, 416, 417, 423, 424, 425, 427, 428, 438, 440, 443, 455, 456, 463, 473, 474, 479, 480, 487, 489, 493, 494, 495, 502, 503, 506, 514, 578], "analysi": [6, 16, 57, 67, 70, 72, 74, 83, 102, 104, 105, 109, 110, 115, 117, 151, 152, 158, 163, 166, 175, 179, 379, 380, 381, 384, 390, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 407, 410, 411, 412, 413, 416, 417, 420, 421, 422, 424, 425, 426, 431, 433, 435, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 449, 451, 453, 454, 459, 460, 461, 462, 466, 467, 469, 470, 471, 473, 474, 476, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 503, 504, 506, 516, 518, 519, 523, 525, 526, 527, 528, 531, 557, 575, 577, 578, 580], "analysis3d": 441, "analysis_1": [449, 502, 505], "analysis_1d": 472, "analysis_2": [381, 449, 503, 505], "analysis_3d": [440, 449, 463, 470, 472], "analysis_joint": 463, "analysis_mwl": [449, 464, 470], "analysis_stack": 463, "analysisconfig": [15, 381, 456, 460, 461, 463, 472, 502], "analyt": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 153, 154, 162, 164, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 393, 398, 446, 447, 482, 484, 489, 516, 537, 581], "analyz": [136, 298, 390, 577], "andrea": 393, "andrew": 440, "angl": [16, 17, 18, 21, 22, 24, 25, 27, 33, 34, 38, 68, 83, 89, 91, 96, 102, 105, 115, 117, 118, 122, 129, 133, 147, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 169, 176, 177, 179, 181, 191, 192, 194, 199, 201, 204, 206, 207, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 279, 335, 367, 380, 386, 394, 396, 403, 407, 419, 421, 422, 423, 440, 447, 450, 452, 455, 458, 464, 467, 468, 473, 477, 480, 486, 487, 489, 490, 493, 494, 518, 523, 527, 530, 531, 535, 536, 537, 540, 541, 577], "angle_incr": 176, "angular": [23, 102, 105, 115, 117, 128, 151, 152, 158, 163, 166, 169, 194, 201, 204, 206, 225, 234, 237, 273, 311, 314, 380, 396, 444, 457, 468, 475, 523, 524, 577], "angular_extens": 41, "angular_s": 531, "angular_separ": [403, 444, 446, 489], "ani": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 87, 90, 91, 104, 120, 124, 130, 152, 175, 193, 194, 196, 201, 202, 204, 205, 206, 307, 330, 365, 379, 380, 381, 383, 385, 386, 387, 388, 391, 392, 393, 394, 395, 396, 397, 398, 399, 401, 403, 406, 407, 409, 412, 413, 414, 415, 416, 420, 421, 439, 440, 441, 446, 456, 465, 466, 469, 472, 473, 475, 477, 481, 485, 486, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 515, 516, 528, 530, 531, 546, 578, 582], "ann": [23, 439], "anna": 380, "annihil": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 442, 506], "annoi": [380, 578], "annot": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 369, 407, 535], "announc": [380, 385, 387, 394, 396, 399, 401, 403, 405, 406, 409, 410], "annuli": [469, 531], "annulu": [127, 339, 531], "anonym": 383, "anoth": [19, 20, 26, 83, 86, 87, 91, 102, 105, 109, 110, 151, 152, 153, 158, 163, 165, 166, 195, 198, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 380, 394, 395, 396, 398, 400, 401, 404, 407, 411, 412, 414, 416, 425, 440, 475, 481, 486, 487, 489, 531, 578], "another_posit": 527, "answer": [483, 518], "anti": [486, 487], "anticip": 389, "anymor": 442, "anyon": [385, 387, 493], "anyth": [150, 396, 578], "anytim": [383, 422], "anywai": [383, 394], "anywher": [394, 397, 399, 514], "ap": [385, 397, 405], "apart": 395, "apertur": 577, "api": [232, 384, 386, 389, 390, 391, 392, 393, 394, 396, 399, 400, 401, 405, 406, 417, 418, 420, 421, 422, 423, 425, 426, 427, 428, 431, 435, 439, 440, 449, 452, 455, 456, 459, 465, 467, 473, 481, 486, 487, 488, 489, 492, 493, 494, 502, 504, 505, 516, 517, 525, 575, 576, 577, 578], "apj": [291, 297], "aplpi": 440, "apologis": [420, 421, 440], "app": [87, 91, 410, 416, 439], "appear": [87, 91, 380, 381, 388, 394, 407, 434, 445, 447, 480], "append": [87, 91, 92, 100, 146, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 247, 392, 393, 395, 426, 445, 452, 455, 457, 458, 463, 464, 465, 467, 473, 474, 475, 477, 481, 482, 483, 485, 488, 489, 490, 491, 527], "append_ax": [147, 148, 150, 153, 154, 155, 160, 162, 164, 206, 368], "appendix": [30, 133, 153, 244, 280, 299, 459], "appl": 416, "appli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 86, 87, 89, 91, 101, 102, 103, 105, 109, 110, 111, 115, 116, 117, 118, 122, 125, 126, 130, 133, 150, 151, 152, 158, 163, 165, 166, 170, 176, 179, 180, 193, 194, 196, 197, 201, 202, 204, 205, 206, 214, 216, 224, 232, 247, 263, 276, 287, 288, 289, 290, 319, 320, 365, 369, 377, 380, 386, 387, 390, 391, 393, 395, 398, 404, 405, 406, 428, 433, 438, 439, 440, 441, 445, 447, 450, 455, 457, 467, 473, 474, 475, 477, 481, 482, 485, 486, 487, 488, 489, 491, 493, 496, 503, 504, 516, 518, 525, 563, 576, 579], "applic": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 87, 91, 380, 391, 406, 408, 427, 478, 483, 530, 577], "apply_async": [327, 328], "apply_edisp": 446, "apply_hysteresis_threshold": 487, "apply_irf": [263, 427], "apply_mask": 199, "apply_psf": [391, 424], "apply_standard_scal": 96, "apply_threshold_sensit": 122, "apply_union": 208, "approach": [87, 91, 133, 380, 386, 388, 392, 396, 401, 404, 405, 407, 445, 450, 455, 485, 498, 577, 580], "appropri": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 192, 193, 194, 196, 205, 206, 307, 315, 381, 457, 461, 463, 477, 486, 578], "approv": [386, 387, 388], "approx": [52, 53], "approxim": [101, 133, 134, 143, 179, 180, 192, 193, 194, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 288, 290, 318, 391, 394, 422, 447, 450, 455, 483, 493, 516, 527, 536, 537, 540, 541], "appveyor": 436, "apr": [402, 418], "april": [400, 407, 427], "apt": 413, "ar": [6, 11, 15, 16, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 46, 57, 67, 70, 74, 77, 79, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 96, 100, 101, 102, 104, 105, 108, 109, 110, 112, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 173, 174, 179, 180, 181, 186, 190, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 210, 211, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 286, 289, 294, 298, 303, 307, 319, 325, 327, 339, 340, 355, 369, 371, 376, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 507, 508, 509, 513, 514, 515, 516, 518, 520, 521, 522, 523, 524, 525, 528, 529, 530, 531, 532, 535, 536, 544, 554, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583], "arakelian": 295, "arang": [118, 395, 459, 473, 477, 530], "arb": 491, "arbitrari": [199, 201, 202, 391, 403, 426, 439, 467, 481, 486, 491, 530, 531], "arbitrary_types_allow": [16, 84, 90, 104, 124, 407], "arbitrarytypemetadata": 407, "archiv": [406, 496, 503], "arcsec": 176, "arctan": 394, "area": [82, 88, 105, 107, 152, 153, 168, 179, 180, 187, 194, 202, 204, 206, 380, 381, 391, 435, 437, 450, 455, 467, 475, 485, 495, 496, 523, 530, 531, 577], "areasc": [438, 440], "aren": [356, 380, 394, 399, 400, 411, 412, 414], "arf": [106, 107, 110, 197, 198, 201, 202, 455, 531], "arf_ob": 106, "arffil": 106, "arg": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 53, 84, 87, 90, 91, 104, 109, 110, 124, 147, 148, 149, 153, 154, 155, 157, 160, 161, 162, 164, 165, 194, 195, 202, 219, 232, 245, 252, 253, 254, 330, 578], "arg_in_kwarg": 380, "argmax": 478, "argmin": 478, "argpars": [385, 578], "argsort": [87, 91], "argument": [11, 16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 83, 84, 86, 87, 88, 90, 91, 92, 93, 100, 101, 102, 104, 105, 108, 109, 110, 124, 125, 126, 128, 130, 133, 146, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 169, 179, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 209, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 281, 287, 305, 307, 319, 325, 327, 328, 367, 368, 369, 373, 374, 375, 376, 377, 383, 386, 392, 395, 427, 428, 431, 433, 439, 445, 446, 447, 459, 463, 468, 469, 483, 485, 486, 489, 490, 494, 503, 516, 518, 529, 530, 531, 554, 578], "aris": [385, 396, 518], "arithmet": [219, 391, 441, 486, 487, 489, 546], "arjun": [438, 439], "arm": [33, 34, 38, 45, 435], "armstrong": 439, "arnau": [433, 442, 443, 444, 445, 447], "around": [56, 141, 169, 192, 194, 204, 206, 319, 394, 395, 457, 475, 479, 483, 487, 495, 504, 518, 527, 530, 531], "arpit": 438, "arr": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "arrai": [19, 20, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 82, 83, 85, 87, 91, 92, 94, 99, 100, 101, 102, 109, 110, 118, 123, 125, 126, 127, 130, 131, 133, 136, 141, 142, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 214, 218, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 273, 274, 275, 276, 277, 287, 288, 290, 292, 298, 303, 307, 318, 319, 320, 334, 335, 336, 340, 373, 374, 379, 380, 393, 394, 398, 404, 407, 416, 426, 439, 442, 444, 446, 457, 458, 467, 468, 475, 477, 480, 481, 483, 484, 486, 488, 489, 491, 493, 495, 496, 504, 530, 531, 538, 563, 566, 579, 580], "array_lik": [102, 109, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 291, 297, 304], "array_shap": [444, 446], "arriba": [432, 435, 436], "arriv": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 385, 393, 425, 426, 427, 467, 577, 581], "arrow": 576, "arrowprop": 535, "arrowstyl": 535, "artefact": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "arthmet": 391, "articl": [135, 137, 144, 295, 303, 385, 452, 473], "artifact": [122, 194], "artifici": 467, "artist": [201, 224, 247, 535, 536], "arxiv": [64, 65, 179, 253, 254, 268, 269, 464, 479, 480, 561, 562], "as_arrai": [87, 91], "as_artist": [201, 202, 489, 531, 535, 536], "as_energy_tru": [191, 192, 201, 204], "as_plot_cent": [195, 198, 203, 477], "as_plot_edg": [195, 198, 203], "as_plot_label": [195, 198, 203], "as_plot_scal": 198, "as_plot_xerr": [195, 198, 203], "asanyarrai": 380, "ascii": [87, 91, 125, 380], "asid": 482, "asimov": 491, "asinh": 459, "asinha": 82, "ask": [381, 383, 385, 387, 394, 396, 397, 400, 406, 415, 472, 504, 518, 519, 578], "asmooth": [118, 119, 399, 426, 437, 440], "asmoothestim": 401, "asmoothmapestim": [119, 401, 426, 428, 431, 459, 518], "aspect": [383, 406, 519, 578, 583], "assert": [195, 197, 198, 203, 355, 356, 357, 383, 391, 403, 486], "assert_allclos": 380, "assert_equ": 380, "assert_nam": [195, 197, 198, 203], "assert_quantity_allclos": [380, 435], "assess": [455, 457, 478], "assign": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 103, 108, 109, 192, 263, 273, 376, 380, 389, 392, 395, 407, 409, 452, 471, 472, 481, 486, 489, 491, 503, 504, 530], "assist": 396, "asso": [71, 74, 75, 77, 78], "assoc": 71, "assoc1": [74, 75, 78, 480, 504], "assoc2": [74, 75, 78, 504], "assoc_fgl": 78, "assoc_fhl": 78, "assoc_gam": 75, "assoc_gam1": [74, 78], "assoc_gam2": [74, 78], "assoc_gam3": [74, 78], "assoc_new": 77, "assoc_prob_bai": 480, "assoc_prob_lr": 480, "assoc_tev": [74, 75, 78], "associ": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 87, 91, 100, 102, 105, 123, 132, 136, 137, 138, 139, 151, 152, 163, 166, 183, 184, 189, 202, 274, 298, 307, 380, 386, 396, 404, 405, 406, 407, 408, 445, 446, 451, 452, 453, 455, 459, 464, 480, 481, 482, 485, 486, 488, 489, 491, 495, 504, 515, 516, 518, 531, 580], "association_catalog": [67, 480], "association_nam": [67, 480], "assum": [23, 50, 51, 52, 53, 67, 82, 83, 85, 95, 101, 122, 123, 125, 133, 134, 135, 140, 143, 144, 153, 165, 176, 190, 192, 193, 194, 196, 199, 203, 205, 206, 211, 269, 275, 279, 286, 334, 337, 380, 383, 392, 393, 395, 403, 404, 408, 416, 417, 450, 451, 452, 455, 457, 458, 461, 467, 468, 469, 471, 479, 484, 486, 489, 491, 494, 508, 514, 516, 523, 575, 580], "assumpt": [72, 95, 102, 105, 109, 110, 118, 132, 135, 144, 394, 404, 451, 523, 527, 579], "astri": 97, "astrisim": 393, "astro": [6, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 126, 186, 193, 194, 196, 205, 206, 258, 276, 380, 381, 392, 399, 400, 404, 423, 432, 436, 440, 442, 446, 457, 479, 484, 486, 493, 507, 508, 510, 511, 512, 515, 577], "astro_dark_matt": [400, 449, 479, 492], "astromodel": 506, "astronom": [13, 394, 401, 439, 577], "astronomi": [11, 280, 379, 390, 394, 398, 410, 417, 438, 452, 455, 461, 465, 485, 493, 518, 527, 528, 575, 576, 577, 578, 579, 580, 582, 583], "astrophys": [6, 23, 311, 395, 518, 576, 577], "astropi": [13, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 66, 83, 85, 86, 87, 88, 89, 91, 92, 94, 96, 102, 105, 109, 110, 115, 117, 118, 123, 125, 127, 129, 130, 133, 141, 142, 150, 152, 161, 163, 176, 190, 191, 192, 193, 194, 196, 197, 199, 201, 202, 203, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 238, 239, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 263, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 289, 298, 305, 306, 307, 337, 356, 357, 366, 370, 371, 375, 379, 381, 382, 383, 385, 386, 387, 391, 393, 394, 395, 397, 398, 399, 400, 401, 403, 404, 406, 407, 408, 409, 416, 417, 419, 423, 424, 425, 426, 430, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 444, 446, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 508, 510, 511, 512, 514, 515, 516, 518, 520, 522, 525, 527, 528, 529, 530, 531, 535, 536, 537, 538, 539, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 579, 582], "astropy_healpix": 389, "astropy_help": [380, 421, 422, 423], "astropy_introduct": 422, "astropy_timeseri": 395, "astropy_vers": 380, "astyp": [87, 91], "asymetr": [101, 455], "asymmetr": [122, 126, 127, 130, 131, 133, 134, 143, 398, 421, 427, 446, 455, 491, 502, 516, 536], "asymmetri": 484, "asymptot": [580, 581], "atmospher": [395, 412, 417, 493], "atnf": 439, "atol": [86, 100, 130, 198, 203, 355, 357, 380], "atol_ax": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206], "atom": 396, "atproduction_gamma": 26, "atreye": [392, 395, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 439, 440, 441, 442, 443, 444, 445, 446, 447], "attach": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 85, 94, 224, 232, 247, 263, 273, 391, 401, 444, 474, 483, 488, 489, 578], "attempt": [16, 84, 90, 104, 124, 383, 394, 397], "attenu": 451, "attr": 380, "attract": 400, "attribut": [15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 178, 179, 180, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 307, 390, 392, 402, 407, 408, 421, 422, 425, 426, 427, 428, 431, 433, 435, 437, 439, 444, 445, 446, 453, 457, 483, 485, 486, 487, 489, 504, 514, 530, 531, 580], "attributeerror": 380, "attrribut": 486, "aug": [393, 396, 397, 399, 418], "august": [387, 393, 396, 399, 465], "author": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409], "authoris": 406, "authorship": 384, "auto": [77, 193, 194, 196, 205, 206, 381, 383, 391, 400, 426, 440, 483, 578], "autocorrel": 136, "autodiff": 398, "autogener": 400, "autograd": [391, 398], "autom": [11, 388, 396, 406, 409, 410, 433, 483, 578], "automat": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 90, 104, 112, 113, 124, 126, 130, 133, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 379, 380, 381, 383, 387, 388, 390, 391, 397, 400, 402, 406, 409, 420, 421, 427, 457, 465, 483, 486, 578, 582], "automatis": 517, "autopep8": 380, "autoscal": [214, 215, 216, 217], "avail": [11, 13, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 57, 67, 70, 72, 77, 78, 83, 87, 88, 91, 101, 102, 105, 109, 110, 122, 123, 125, 126, 130, 131, 133, 134, 143, 146, 167, 173, 179, 180, 198, 211, 214, 216, 220, 221, 225, 226, 234, 237, 249, 251, 260, 261, 265, 271, 273, 275, 280, 331, 368, 380, 383, 386, 387, 388, 389, 391, 392, 393, 394, 397, 398, 400, 407, 410, 411, 412, 413, 414, 415, 421, 425, 426, 427, 431, 434, 438, 440, 442, 445, 447, 451, 455, 456, 459, 477, 482, 483, 485, 487, 489, 493, 494, 498, 502, 504, 506, 508, 509, 515, 517, 518, 520, 521, 522, 524, 532, 544, 576, 578, 580], "available_hdu": 88, "available_irf": 88, "available_method": [170, 179], "available_quant": [123, 125, 459, 482], "available_select": [173, 180], "available_stat_typ": 101, "averag": [19, 102, 105, 109, 110, 173, 180, 183, 184, 186, 187, 431, 451, 452, 455, 514], "averageaz": [467, 468], "avoid": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 122, 173, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 289, 380, 381, 386, 387, 388, 390, 394, 398, 399, 402, 403, 405, 406, 408, 412, 414, 431, 433, 442, 444, 445, 447, 455, 461, 487, 491, 515, 518, 527, 578], "awai": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 288, 290], "awar": [380, 385, 392, 400, 406], "ax": [16, 19, 20, 26, 66, 67, 83, 101, 102, 105, 109, 110, 111, 112, 113, 114, 116, 122, 123, 125, 127, 128, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 180, 183, 184, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 288, 290, 367, 368, 372, 373, 374, 375, 376, 377, 380, 389, 399, 422, 426, 431, 437, 438, 439, 442, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490, 491, 493, 494, 495, 502, 503, 504, 514, 516, 518, 520, 525, 527, 528, 529, 530, 535, 536, 537, 541, 544, 572, 573, 577], "ax1": [450, 459, 461, 465, 475, 487, 488], "ax2": [450, 459, 461, 465, 475, 487, 488], "ax3": [459, 465], "ax_crab_3fhl": 504, "ax_ebl": 544, "ax_excess": [452, 455], "ax_model": 544, "ax_residu": [101, 109, 110, 452, 455, 456, 457, 475, 502], "ax_s": [456, 502], "ax_spati": [102, 105, 109, 110], "ax_spectr": [102, 105, 109, 110], "ax_spectrum": [101, 109, 110, 452, 455, 456, 457, 475], "ax_sqrt_t": [452, 455], "axcols1": 486, "axcols2": 486, "axel": [389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "axes0": [193, 194, 196, 202, 205, 206], "axes_loc": [147, 148, 150, 153, 154, 155, 160, 162, 164, 206, 368], "axes_nam": [192, 193, 194, 196, 201, 202, 204, 205, 206], "axesimag": [368, 369], "axesn": [193, 194, 196, 202, 205, 206], "axi": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 83, 100, 101, 102, 105, 109, 110, 111, 112, 113, 114, 116, 118, 122, 123, 125, 126, 127, 129, 130, 133, 134, 137, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 218, 219, 222, 223, 224, 225, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 247, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 273, 274, 276, 277, 284, 288, 289, 290, 294, 295, 296, 298, 318, 319, 329, 368, 373, 374, 375, 376, 386, 389, 402, 404, 423, 426, 427, 428, 431, 433, 438, 440, 441, 442, 445, 450, 452, 455, 456, 457, 458, 460, 461, 463, 465, 467, 468, 469, 471, 473, 474, 477, 478, 480, 481, 484, 485, 486, 493, 494, 495, 502, 503, 504, 514, 516, 518, 522, 527, 530, 531, 573, 577], "axis0": 530, "axis1": 486, "axis2": 486, "axis_edg": 373, "axis_nam": [101, 102, 105, 109, 110, 123, 125, 137, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 469, 472, 473, 474, 481, 482], "axis_new": [125, 145, 473, 478], "axis_origin": 478, "axis_rgb": 375, "axis_tru": 465, "axisymmetr": 446, "axvlin": [458, 479, 490, 491], "axvspan": [202, 475], "az": [83, 85, 88, 94, 95, 380, 582], "azimuth": 494, "azur": 427, "b": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 51, 52, 54, 77, 84, 87, 90, 91, 104, 124, 153, 211, 347, 380, 381, 394, 403, 406, 409, 455, 466, 479, 480, 483, 486, 487, 489, 494, 504, 510, 514, 531], "b1509": 480, "b_0": [535, 536], "b_1": [87, 91], "b_mean": 42, "b_psr": 43, "b_stdv": 42, "back": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 77, 87, 91, 194, 319, 383, 390, 391, 394, 400, 409, 455, 456, 458, 486, 489, 502, 578], "backend": [93, 101, 120, 126, 127, 130, 131, 133, 169, 210, 211, 212, 213, 286, 322, 327, 328, 379, 389, 391, 421, 440, 441, 445, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503, 518, 575, 576], "backend_default": [127, 130, 133], "background": [16, 67, 82, 83, 88, 93, 102, 103, 105, 106, 108, 109, 110, 113, 114, 118, 122, 123, 125, 132, 147, 148, 149, 159, 168, 170, 171, 173, 174, 175, 176, 178, 179, 180, 186, 226, 232, 273, 281, 288, 290, 299, 300, 301, 302, 304, 376, 380, 386, 389, 392, 393, 394, 396, 400, 401, 404, 412, 417, 420, 421, 422, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 443, 445, 446, 447, 449, 450, 451, 452, 455, 456, 457, 458, 459, 460, 462, 463, 465, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 483, 484, 486, 487, 491, 495, 496, 498, 503, 514, 516, 517, 576, 577, 578, 580, 581], "background2d": [148, 149, 159, 427, 434, 442, 444, 446, 521], "background3d": [88, 147, 159, 186, 386, 427, 431, 439, 440, 441, 447, 484, 493, 521], "background_estim": 399, "background_interp_missing_data": 173, "background_map": [273, 391], "background_min": 146, "background_model": [102, 105, 109, 110, 133, 392, 393, 400, 402, 427, 460, 503, 521], "background_oversampl": [173, 180, 485], "background_pad_offset": 173, "background_r": [399, 481], "backgroundconfig": 16, "backgroundestim": [395, 425], "backgroundevalu": 391, "backgroundirf": [147, 148], "backgroundirfmodel": 402, "backgroundmodel": [392, 402, 403, 424, 426, 427, 428, 431], "backgroundtempl": 391, "backport": [387, 405, 409], "backround": 389, "backscal": 202, "backward": [385, 394, 403, 404, 405, 423, 482, 516], "bad": [86, 380, 394], "badli": 410, "balanc": 514, "band": [19, 20, 26, 68, 83, 89, 120, 123, 125, 128, 151, 152, 155, 158, 163, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 386, 398, 399, 403, 404, 412, 420, 453, 455, 456, 464, 465, 466, 475, 479, 480, 489, 494, 496, 513, 514, 516, 576], "bandshdu": 486, "banner": 410, "bar": [15, 82, 87, 91, 102, 105, 109, 110, 118, 130, 133, 147, 148, 206, 211, 235, 296, 328, 374, 397, 431, 434, 435, 441, 446, 475, 491, 518, 551], "bar_radiu": 38, "base": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 306, 315, 316, 319, 325, 327, 329, 354, 367, 375, 380, 381, 383, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 398, 399, 401, 403, 408, 410, 412, 413, 420, 422, 423, 425, 427, 428, 431, 433, 436, 437, 438, 439, 440, 446, 447, 451, 455, 457, 458, 460, 463, 464, 465, 466, 467, 469, 475, 478, 480, 482, 484, 486, 487, 489, 490, 491, 493, 494, 503, 504, 506, 515, 516, 518, 528, 530, 542, 552, 576, 577, 579, 580], "base_dir": [82, 87, 315, 493, 495, 496, 506], "baselin": [82, 83, 240, 493], "basement": 422, "basemodel": [16, 84, 90, 104, 124, 407, 463], "baseradi": 248, "bash": [412, 414, 578], "basi": [385, 386, 396, 399, 409, 433, 435, 475, 479], "basic": [45, 46, 67, 71, 72, 74, 75, 76, 78, 79, 80, 105, 110, 125, 239, 383, 386, 390, 391, 392, 393, 394, 396, 400, 404, 407, 416, 428, 438, 440, 449, 452, 455, 457, 470, 472, 478, 479, 480, 487, 498, 504, 506, 508, 509, 516, 527, 530, 577, 578], "basicconfig": [16, 465, 500], "bayesian": 398, "bayesian_block": 478, "bayesian_edg": 478, "baysian": 389, "bb": [87, 91, 406], "bbar": [19, 20], "bbox_with_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "bcf": [148, 152, 153, 154, 163, 450, 458, 471, 474, 484, 493], "becam": 387, "becaus": [16, 84, 90, 104, 124, 193, 194, 196, 200, 202, 205, 206, 380, 381, 383, 385, 387, 391, 392, 394, 395, 399, 403, 404, 407, 410, 431, 433, 447, 452, 453, 456, 469, 473, 475, 485, 486, 487, 488, 493, 494, 495, 502, 503, 504, 514, 518, 578, 581], "becom": [380, 388, 390, 391, 394, 399, 407, 467, 473, 489, 518, 578, 581], "been": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 100, 104, 122, 123, 124, 125, 165, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 307, 385, 386, 387, 388, 389, 391, 394, 395, 396, 397, 398, 399, 401, 402, 403, 404, 405, 407, 408, 411, 413, 427, 428, 431, 433, 434, 440, 441, 442, 443, 444, 445, 446, 447, 451, 456, 466, 473, 474, 475, 477, 482, 486, 489, 490, 493, 495, 502, 515, 530, 563], "befor": [13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 52, 53, 84, 87, 90, 91, 92, 100, 104, 123, 124, 193, 194, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 319, 375, 380, 381, 383, 385, 387, 388, 389, 390, 394, 395, 396, 398, 399, 405, 409, 410, 416, 434, 440, 451, 456, 458, 472, 473, 482, 483, 486, 489, 495, 498, 502, 554, 578], "begin": [52, 87, 91, 102, 109, 123, 125, 133, 400, 403, 406, 455, 457, 486, 489, 535, 540, 541, 545, 561, 580], "behav": [380, 390, 445, 460, 581], "behavior": [16, 84, 87, 90, 91, 95, 104, 124, 404, 430, 434, 445, 447], "behaviour": [355, 380, 402, 403, 428, 433, 439, 446, 473, 487, 494, 495, 514, 579], "behind": 477, "being": [122, 132, 194, 380, 385, 388, 394, 401, 404, 410, 457, 466, 478, 487, 507, 518, 531, 578], "belief": 491, "believ": [415, 491], "belong": [86, 404, 427], "below": [52, 53, 87, 91, 192, 196, 203, 204, 369, 370, 371, 375, 377, 381, 383, 384, 389, 390, 394, 396, 397, 400, 403, 404, 406, 407, 408, 410, 411, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 455, 459, 475, 480, 483, 485, 487, 489, 490, 491, 493, 494, 515, 518, 536, 580], "benchmark": [396, 406, 410], "benefit": 397, "benn": 396, "berg": 577, "berge2007": [394, 527, 528, 577], "bernet": 446, "besancon": 508, "besid": [122, 133, 394, 395, 404, 456, 457, 486, 494, 502, 503, 531], "best": [67, 71, 74, 75, 78, 80, 101, 123, 125, 126, 127, 130, 131, 141, 212, 213, 286, 288, 290, 373, 380, 383, 390, 393, 398, 406, 412, 414, 451, 453, 455, 456, 457, 460, 463, 466, 475, 480, 482, 483, 491, 502, 516, 518, 520, 544, 550, 553, 554, 558, 580, 581, 582], "best_fit_model": 457, "beta": [27, 28, 48, 211, 240, 241, 242, 264, 403, 405, 427, 451, 453, 457, 464, 480, 483, 546, 552, 553, 554, 559, 569], "better": [380, 383, 385, 386, 387, 388, 389, 393, 394, 399, 400, 401, 404, 421, 438, 439, 463, 464, 467, 475, 477, 483, 486, 487, 494, 514], "between": [19, 20, 26, 67, 77, 87, 88, 91, 94, 105, 110, 120, 122, 123, 125, 127, 128, 130, 141, 142, 154, 160, 162, 163, 164, 166, 176, 190, 192, 193, 194, 195, 196, 198, 201, 202, 203, 204, 205, 206, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 286, 304, 337, 370, 371, 378, 380, 381, 388, 390, 391, 392, 393, 394, 396, 397, 399, 400, 401, 404, 405, 407, 408, 409, 418, 428, 431, 434, 445, 450, 457, 459, 464, 466, 469, 474, 475, 478, 482, 483, 485, 486, 487, 488, 491, 494, 495, 504, 514, 516, 523, 524, 527, 536, 537, 577, 580, 582], "bewar": [274, 452, 473], "bexcub": 197, "bexpcub": [192, 193, 194, 196, 205, 206, 486], "beyond": [197, 394, 404, 407, 427, 485, 506], "bfg": 483, "bgstat": 437, "bgt2fqe0": 477, "bi": [438, 441], "bia": [96, 150, 151, 155, 179, 439, 445, 485, 491, 522], "bias": [457, 579], "bias_energi": 150, "bias_perc": 179, "bibliographi": 577, "biederbeck": [408, 446], "big": [387, 390, 397, 409, 441, 494, 579, 581], "bigger": 194, "biggest": 399, "billion": 380, "bimod": 31, "bin": [19, 20, 26, 83, 86, 88, 102, 105, 108, 109, 110, 112, 113, 118, 120, 122, 123, 125, 126, 128, 129, 130, 132, 133, 135, 136, 137, 138, 139, 144, 145, 146, 150, 151, 152, 153, 155, 158, 161, 163, 165, 166, 173, 175, 176, 177, 179, 181, 190, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 282, 291, 297, 298, 304, 373, 375, 378, 386, 391, 392, 393, 394, 396, 399, 400, 404, 411, 412, 422, 423, 425, 426, 428, 430, 431, 433, 436, 437, 438, 439, 440, 445, 446, 447, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 516, 518, 522, 525, 526, 576, 577, 578, 579, 581], "bin_cent": 475, "bin_edg": 475, "bin_volum": [197, 201, 204, 531], "bin_width": [195, 198, 203, 475], "binari": [204, 206, 388, 394, 397, 406, 410, 431], "binary_dil": [206, 487], "binary_erod": [206, 487], "binary_eros": [206, 431], "binary_structur": 204, "bincent": 298, "bind": 383, "binder": [388, 409, 439, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "binlik": 125, "binned_likelihood": 126, "binneddataaxi": [422, 438], "binnedtimeseri": [125, 395], "bins_axi": 206, "binsiz": [16, 456, 460, 461, 463, 472, 502, 503], "binsize_irf": [16, 456, 460, 461, 463, 472, 502], "binsz": [102, 105, 109, 110, 111, 116, 152, 161, 163, 173, 176, 177, 181, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 396, 455, 465, 466, 467, 468, 471, 475, 479, 481, 484, 485, 486, 487, 489, 494, 495, 503, 525, 527, 528, 530, 531, 534, 536, 537, 538, 539], "binsz_irf": [102, 105, 109, 110, 114, 481, 485, 518], "binsz_irf_default": [102, 105, 109, 110, 485], "binsz_wc": [201, 202], "bintabl": [192, 193, 194, 196, 205, 206], "bintablehdu": [83, 86, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 197, 198, 204, 205, 206, 467, 486, 514], "birth": [29, 30, 36, 50, 51, 52, 53], "bit": [83, 141, 381, 383, 387, 388, 394, 398, 399, 407, 447, 475, 486, 531], "bitbucket": 496, "bitpix": 486, "bkg": [16, 82, 87, 88, 102, 106, 107, 109, 110, 147, 148, 149, 179, 186, 232, 402, 426, 428, 433, 447, 450, 455, 456, 460, 461, 463, 464, 467, 468, 471, 475, 481, 484, 485, 488, 493, 495, 496, 502, 503, 514, 521, 577, 579, 580, 581], "bkg_": [102, 109], "bkg_2d": [87, 147], "bkg_3d": [82, 87, 148, 493, 496], "bkg_err": 475, "bkg_maker": [402, 452, 455, 457, 465, 473, 477, 527], "bkg_model": [392, 402, 408, 463, 467, 468, 471, 488, 503, 538], "bkg_ob": 106, "bkg_sy": 132, "bkg_syst_fract": [132, 450], "bkg_syst_fraction_sensit": 122, "bkgfile": 106, "black": [109, 110, 369, 370, 377, 398, 440, 442, 450, 475, 479, 485, 490, 527, 563], "blackground": 450, "blanch": [439, 440], "blanklin": [239, 416, 516, 531], "blazar": [303, 451, 477], "blind": [442, 518], "blk_jr47": 463, "bll": 504, "blob": 419, "block": [381, 383, 386, 393, 400, 410, 419, 439], "block_reduc": 440, "blue": [101, 102, 105, 109, 110, 370, 451, 455, 461, 463, 466, 490, 527, 563], "blur": 33, "board": [389, 400], "bodi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "boilerpl": 380, "boller": 478, "boni": [431, 434], "bool": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 80, 82, 83, 84, 86, 87, 88, 90, 91, 93, 96, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 115, 117, 122, 123, 124, 125, 126, 130, 131, 133, 140, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 180, 183, 184, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 211, 212, 214, 215, 216, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 271, 272, 273, 274, 275, 289, 304, 307, 316, 319, 320, 337, 343, 346, 348, 349, 351, 377, 380, 394, 465, 480, 485, 486], "boolean": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 123, 126, 127, 130, 131, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 211, 224, 247, 263, 396, 428, 463, 480, 486, 487, 488], "boost": 467, "bootstrap": [87, 91], "border": 91, "bose": 422, "bot": 386, "both": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 57, 70, 77, 82, 83, 86, 87, 88, 91, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 190, 193, 194, 196, 198, 200, 201, 202, 204, 205, 206, 214, 216, 380, 385, 386, 391, 392, 393, 394, 395, 400, 405, 409, 421, 425, 427, 428, 431, 434, 456, 457, 467, 471, 481, 482, 486, 487, 488, 490, 491, 515, 516, 518, 530, 531, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 580], "bother": 460, "bottom": [400, 402, 451, 467, 472, 473, 474, 478, 480], "bound": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 198, 201, 203, 211, 218, 219, 222, 223, 224, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 247, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 273, 274, 276, 277, 302, 389, 486, 491], "boundari": [198, 204, 275, 408, 436, 447, 483, 489, 530], "boundary_mask": [204, 487], "boundary_typ": 198, "bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "bounds_error": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 380, 484], "box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 102, 105, 127, 128, 201, 204, 206, 339, 340, 389, 394, 398, 404, 438, 487, 489, 531], "bpl": [218, 403, 489], "bpwl_norm": 403, "bracket": [150, 211, 443, 445], "brake": 51, "branch": [380, 383, 387, 394, 405, 410, 419], "branchnam": 380, "bratio": 506, "break": [218, 264, 386, 394, 396, 405, 425, 426, 427, 447, 545, 559], "brent": 459, "brentq": [19, 20, 26, 125, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 287], "breviti": [463, 518], "brief": 582, "briefli": [495, 496], "bright": [68, 127, 263, 279, 461, 472, 473, 487, 489, 512, 527], "brighter": 467, "brightest": 480, "brigitta": [397, 421, 423, 425, 427, 436, 437, 438, 439, 440, 441, 442, 447], "bring": 385, "broadcast": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 193, 194, 196, 199, 202, 205, 206, 263, 319, 447, 468, 484, 486, 530], "broadcasted_shap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "broken": [218, 264, 406, 409, 449, 477, 532, 564], "brokenpowerlaw": 403, "brokenpowerlawspectralmodel": [258, 264, 403, 428, 489, 545], "brought": 447, "brown": [137, 478], "brown2013": 137, "brows": [87, 91, 381, 416, 504], "browser": [87, 91, 383, 410, 416, 436, 439, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "bruno": [406, 423, 425, 428, 431, 434, 438, 439, 440, 442, 443, 444, 445, 446, 447], "brvmcw9i": 477, "br\u00fcgge": [439, 440], "bsd": 406, "bst": [87, 91], "buchner": 431, "budget": 518, "buffer": 358, "bug": [380, 383, 386, 387, 405, 406, 409, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 434, 436, 437, 438, 439, 440, 441, 443, 444], "bugfix": [387, 389, 405, 438, 439], "build": [16, 84, 90, 104, 124, 192, 226, 380, 386, 387, 388, 393, 394, 396, 400, 404, 405, 406, 407, 409, 427, 433, 442, 447, 459, 463, 475, 485, 487, 515, 518, 578], "build_doc": [344, 381, 383, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "built": [10, 180, 226, 347, 364, 379, 380, 381, 391, 392, 394, 396, 397, 399, 407, 410, 417, 440, 445, 480, 488, 494, 498, 514], "builtin": 504, "bullet": 385, "bump": [394, 438], "bunch": [103, 108, 381, 578], "bundl": [101, 102, 105, 109, 110, 389, 392, 410, 432, 440, 465, 481, 485, 514, 531, 576, 577], "bunit": [366, 440, 486], "bureaucrat": 385, "burkert": [17, 506], "burst": 478, "butterfli": [439, 483, 504], "button": [442, 486], "bx": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "by_alia": [16, 84, 90, 104, 124], "byte": [16, 84, 87, 90, 91, 104, 124, 325, 358, 380], "bytearrai": [16, 84, 90, 104, 124, 325], "bytestr": [87, 91], "b\u00fchler": 419, "c": [26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 87, 91, 199, 209, 228, 267, 291, 297, 307, 347, 379, 380, 397, 412, 413, 415, 432, 439, 455, 461, 475, 477, 479, 483, 491, 493, 494, 506, 530, 549, 560, 578, 579, 581], "c0": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "c1": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "c7": 101, "c_": 209, "c_0": [191, 192, 201, 204], "c_i": [191, 192, 201, 204], "c_n": [191, 192, 201, 204], "cabot": 447, "cach": [87, 88, 91, 100, 102, 105, 109, 110, 273, 315, 316, 389, 390, 392, 399, 402, 410, 424, 428, 431, 446], "cahil": 433, "cal_gen_92_002": [150, 198], "cal_gen_92_002_summari": 150, "calcul": [13, 15, 19, 20, 26, 96, 105, 110, 136, 137, 138, 139, 179, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 275, 276, 293, 295, 296, 304, 306, 329, 362, 370, 371, 390, 393, 421, 427, 431, 432, 433, 439, 444, 446, 450, 475, 478, 479, 482, 491, 502, 503, 506, 518, 577, 581], "caldb": [82, 148, 150, 152, 153, 154, 163, 198, 433, 450, 458, 467, 468, 471, 474, 484, 493], "calendar": [405, 409], "calib_vers": [494, 504], "call": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 86, 87, 90, 91, 101, 102, 104, 105, 109, 110, 124, 136, 137, 138, 139, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 175, 191, 192, 201, 204, 211, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 233, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 256, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 278, 319, 331, 352, 358, 366, 369, 377, 380, 381, 383, 385, 386, 389, 392, 393, 394, 395, 396, 398, 400, 402, 404, 406, 408, 410, 412, 416, 427, 431, 445, 455, 456, 465, 480, 481, 482, 483, 485, 486, 489, 494, 496, 502, 503, 504, 514, 518, 527, 528, 529, 530, 531, 578, 579, 580, 581], "callabl": [16, 45, 84, 90, 104, 124, 282], "callback": [169, 578], "caller": [380, 391], "camera": [474, 484, 485], "can": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 50, 56, 67, 68, 69, 77, 82, 83, 84, 87, 90, 91, 93, 102, 104, 105, 108, 109, 110, 114, 118, 122, 123, 124, 125, 130, 131, 133, 134, 141, 143, 148, 153, 161, 163, 166, 170, 176, 179, 191, 192, 193, 194, 196, 198, 199, 201, 202, 203, 204, 205, 206, 208, 211, 215, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 239, 241, 242, 244, 247, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 287, 289, 294, 307, 319, 320, 325, 328, 337, 356, 358, 373, 377, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 419, 421, 423, 425, 427, 428, 431, 433, 434, 438, 439, 440, 441, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 508, 509, 514, 515, 516, 518, 521, 522, 523, 524, 525, 527, 528, 529, 530, 531, 552, 554, 563, 573, 575, 576, 577, 578, 579, 580, 581], "candel": 226, "candid": [405, 433, 480], "candl": [280, 577], "cannot": [16, 67, 84, 87, 90, 91, 95, 104, 112, 113, 123, 124, 125, 208, 297, 347, 377, 383, 393, 394, 445, 484, 488, 489, 516, 531], "cap": [51, 54], "capabl": [390, 494, 506], "capsiz": 491, "captur": [380, 396], "car": [102, 105, 109, 110, 173, 204, 205, 206, 224, 247, 394, 423, 465, 484, 485, 486, 503, 504], "card": [83, 86, 88, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206, 486], "care": [123, 125, 307, 380, 389, 396, 405, 452, 457, 463, 486, 578], "carefulli": [406, 467, 468, 491], "carina": [33, 38], "carlo": [398, 523, 577], "carri": [395, 403, 405, 407, 431, 453, 503], "carr\u00e9": 204, "cartesian": [41, 46, 194, 205, 206, 310, 312, 444, 504, 530], "case": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 69, 77, 83, 87, 91, 101, 150, 169, 181, 192, 194, 200, 201, 204, 206, 211, 214, 216, 237, 248, 271, 273, 275, 287, 297, 320, 337, 375, 380, 381, 383, 385, 388, 389, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 412, 420, 421, 424, 427, 433, 434, 439, 445, 446, 450, 452, 455, 456, 457, 458, 460, 461, 463, 467, 468, 471, 472, 474, 475, 478, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 494, 496, 498, 502, 504, 513, 516, 517, 518, 528, 531, 535, 536, 537, 540, 541, 545, 554, 561, 576, 578, 580], "casebattacharya1998": [29, 30, 35, 36, 39, 40, 48], "cash": [102, 105, 109, 110, 173, 292, 297, 380, 392, 431, 458, 460, 463, 471, 474, 481, 485, 488, 491, 502, 503, 514, 577], "cash1979": [577, 580], "cashcountsstatist": [416, 446, 578, 580], "cast": 91, "cat": [66, 67, 79, 388, 410, 438, 439, 453, 480, 489, 513, 577, 578], "catalof": 69, "catalog": [6, 45, 46, 47, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 122, 126, 394, 400, 419, 423, 425, 427, 431, 432, 433, 436, 437, 438, 439, 440, 442, 446, 447, 449, 451, 453, 459, 464, 481, 489, 492, 494, 498, 508, 542, 576, 577], "catalog_3fgl": 453, "catalog_3fhl": [453, 480], "catalog_3fhl_bright": 480, "catalog_4fgl": 480, "catalog_4fgl_roi": 480, "catalog_gammacat": [453, 480], "catalog_hgp": 480, "catalog_registri": [453, 480, 487], "catalogimageestim": 440, "catalogu": [78, 431, 438], "catch_warn": 518, "categori": [380, 391, 404, 431, 447, 487, 489, 532], "caus": [387, 394, 440, 443, 518], "cautious": 466, "caveat": [211, 303, 446, 536], "cax": 484, "cb98": 48, "cbar": 368, "cbar_kw": 374, "cbarlabel": 374, "cc": [389, 394, 396, 399, 401, 403, 406, 408], "ccube": [192, 193, 194, 196, 197, 198, 204, 205, 206, 486], "cd": [380, 381, 383, 396, 412, 413, 414], "cdelt": [204, 206], "cdelt1": 486, "cdelt2": 486, "cdf": [329, 393, 467, 483], "cdot": [51, 52, 53, 54, 102, 109, 252, 267, 403, 489, 514, 535, 540, 541, 545, 548, 549, 556, 557, 559, 560, 561, 562, 567, 568, 569, 571, 579], "celesti": [486, 530, 535, 539, 582], "celfix": 542, "cell": [388, 416, 442, 464, 475, 486, 493, 494, 504], "center": [17, 18, 21, 22, 23, 24, 25, 27, 41, 83, 87, 91, 96, 102, 105, 109, 110, 112, 113, 123, 125, 127, 128, 129, 133, 150, 151, 152, 153, 154, 155, 158, 162, 163, 164, 166, 173, 176, 177, 179, 180, 181, 183, 184, 186, 187, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 207, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 309, 313, 339, 380, 381, 394, 396, 403, 404, 421, 422, 431, 433, 446, 450, 452, 455, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 473, 474, 475, 477, 479, 484, 485, 486, 487, 488, 489, 493, 494, 503, 504, 520, 521, 522, 523, 524, 525, 527, 528, 530, 531, 535, 536, 539], "center_coord": [191, 192, 197, 201, 204], "center_pix": [191, 192, 201, 204], "center_ski": 531, "center_skydir": [191, 192, 201, 204, 485, 486, 494, 495, 525, 527, 528], "centr": [479, 487, 506], "central": [392, 401, 453, 504], "cern": 506, "certain": [50, 83, 87, 91, 211, 294, 379, 394, 396, 398, 404, 450, 479, 485, 486, 494, 513, 531], "certainli": 383, "certif": 406, "certifi": 406, "cfa": [211, 483], "cff": 409, "cg": 510, "ch": 53, "chain": [169, 393, 396, 425, 485, 518, 528, 577], "chainer": 398, "chakraborti": [437, 438], "challeng": [387, 389, 393, 438, 461, 463, 465, 493], "chanc": 385, "chang": [16, 19, 20, 26, 84, 86, 87, 90, 91, 104, 123, 124, 125, 192, 201, 204, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 355, 365, 381, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 398, 399, 400, 402, 404, 405, 406, 409, 410, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 437, 438, 439, 440, 441, 443, 448, 457, 458, 459, 465, 467, 468, 472, 477, 478, 481, 482, 483, 487, 489, 491, 493, 502, 514, 518, 525, 527, 531, 542, 550, 578], "changelog": [380, 409, 432, 440], "channel": [19, 20, 26, 379, 382, 383, 397, 439, 468, 479, 486, 496, 506], "channel0": 506, "channel1": 506, "channel_registri": [19, 20, 26], "chapter": 479, "charact": [87, 91, 380, 488], "character": [296, 404, 467], "characterist": [21, 25, 27, 51, 52, 53, 54, 137, 294, 391, 445, 478, 577], "charg": [406, 409, 554], "chatti": [380, 465], "cheat": 415, "check": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 86, 87, 88, 91, 102, 105, 106, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 215, 217, 224, 247, 263, 303, 354, 356, 383, 396, 402, 406, 409, 410, 412, 413, 414, 417, 426, 431, 439, 447, 453, 471, 477, 484, 498, 506, 518, 522, 531, 575, 578, 579], "check_limit": [214, 215, 216, 217], "check_random_st": 380, "check_tutorials_setup": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "checker": [437, 440], "checklist": 410, "checkout": [380, 383, 409, 422, 463, 467, 489], "checksum": [83, 86, 88, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206, 212, 224, 247, 343, 346, 349, 446, 464, 494], "chen": 440, "cherenkov": [153, 393, 412, 417, 452, 455, 461, 472, 485, 493, 495, 527, 528, 577], "cherri": [380, 387, 394, 405], "chi": [293, 395, 579, 580, 581], "chi2": [101, 135, 144, 392, 422, 455, 466, 474, 483, 514, 580], "chi2assym": 425, "child": 390, "children": [463, 471, 486, 502, 503], "chime": 383, "chisq": 293, "chisquar": 293, "chmod": 578, "choic": [136, 393, 397, 399, 406, 455, 456, 458, 460, 483, 495, 502, 519, 575, 578], "choos": [45, 77, 191, 192, 195, 197, 198, 201, 204, 276, 321, 392, 394, 396, 400, 412, 414, 431, 453, 455, 459, 463, 465, 474, 481, 483, 485, 486, 488, 489, 490, 494, 503, 518, 578], "chose": [467, 494, 495, 580, 582], "chosen": [26, 150, 163, 166, 192, 193, 194, 202, 205, 206, 224, 234, 247, 380, 383, 395, 396, 399, 456, 473, 485, 486, 490, 491, 495, 502, 516, 526, 527, 531], "christoph": [385, 386, 387, 388, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 419, 420, 421, 422, 423, 424, 425, 426, 432, 435, 436, 437, 438, 439, 440, 441], "chrome": [87, 91], "chromei": 433, "chunk": [152, 163, 166], "chunk_siz": [152, 163, 166], "ci": [380, 383, 387, 406, 410, 425, 431, 433, 436, 442], "circl": [83, 181, 377, 381, 394, 433, 455, 465, 474, 479, 485, 487, 490, 493, 503, 504, 515, 525, 527, 528, 531], "circle_area": 381, "circleannulusskyregion": [260, 261, 527], "circledast": 514, "circlepixelregion": 394, "circleskyregion": [102, 105, 109, 110, 175, 176, 180, 204, 225, 381, 394, 450, 452, 455, 457, 458, 461, 463, 465, 467, 468, 473, 477, 479, 481, 485, 487, 488, 503, 525, 527, 528, 531], "circular": [91, 102, 105, 180, 192, 194, 204, 391, 399, 401, 452, 457, 481, 490, 527, 531], "circumv": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "cirelli": [26, 506], "citat": 409, "cite": [383, 406], "cl": [16, 84, 90, 102, 104, 109, 124, 407], "clabel": 483, "clang": 416, "clarif": 385, "clarifi": [404, 445], "class": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 315, 316, 319, 327, 329, 354, 367, 383, 386, 389, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 408, 412, 416, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 450, 453, 455, 456, 457, 458, 459, 460, 461, 465, 467, 468, 471, 472, 475, 480, 481, 482, 483, 484, 485, 486, 489, 491, 493, 494, 495, 502, 504, 509, 513, 514, 515, 516, 517, 518, 520, 521, 522, 523, 526, 528, 529, 530, 531, 532, 554, 563, 575, 576, 577, 578, 583], "class1": 480, "class2": 480, "classic": [389, 398, 412, 421, 452, 455, 461, 465, 481, 485, 516, 518, 527, 528, 577, 580], "classifi": 495, "classmethod": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 94, 100, 101, 102, 104, 105, 109, 110, 123, 124, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 407], "classproperti": 431, "classvar": [16, 84, 90, 104, 124], "claudio": [444, 446, 447], "claus": [380, 406], "clean": [380, 381, 383, 388, 389, 394, 396, 398, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 438, 439, 440, 441], "cleaner": 442, "cleanup": [387, 399, 410, 419, 424, 425, 430, 431, 432, 436, 437, 439, 447], "clear": [92, 100, 200, 247, 380, 385, 387, 391, 394, 395, 399, 400, 401, 439, 466, 582], "clearer": 424, "clearli": [137, 380, 385, 386, 394, 397, 405], "cli": [11, 396, 441, 576], "click": [379, 396, 397, 416, 424, 439, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 578], "clip": [19, 20, 26, 191, 192, 195, 197, 198, 201, 203, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 275, 276, 319, 424, 425, 459], "clockwis": [225, 234, 237, 535], "clone": [383, 413, 440], "close": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 275, 355, 356, 357, 389, 394, 409, 434, 445, 446, 447, 483, 563], "closer": 504, "closest": [118, 122, 126, 130, 133, 192, 193, 194, 196, 202, 205, 206, 482, 487, 516], "cloud": [410, 498], "cluster": [6, 96, 305, 306, 393, 445, 446, 449, 492, 498, 515, 518], "clutter": [463, 518], "cm": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 51, 52, 53, 54, 67, 101, 125, 131, 133, 218, 222, 228, 230, 235, 242, 245, 252, 254, 263, 264, 267, 268, 269, 279, 365, 391, 403, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 473, 474, 475, 479, 480, 482, 483, 489, 491, 493, 494, 502, 504, 511, 512, 516, 518, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577], "cm2": [51, 54, 67, 107, 125, 142, 153, 206, 280, 365, 450, 451, 453, 455, 456, 458, 459, 463, 464, 465, 467, 468, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 486, 488, 489, 491, 494, 502, 503, 504, 516, 531, 547, 550, 553, 558, 563], "cm3": [17, 18, 19, 21, 22, 24, 25, 27, 52, 479], "cm5": 479, "cmap": [102, 105, 109, 110, 370, 371, 457, 463, 479, 486, 488, 494, 495, 502, 503, 527], "cmb": 554, "co": [53, 199, 405, 406, 450, 535, 536, 537], "coadd": [193, 194, 196, 202, 205, 206], "coars": 481, "coarser": [198, 203, 481], "codaci": 410, "codata": 52, "code": [19, 20, 26, 82, 83, 87, 91, 150, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 375, 383, 384, 385, 387, 388, 390, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 413, 416, 419, 422, 423, 425, 426, 427, 428, 431, 433, 436, 437, 438, 439, 440, 442, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 518, 525, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 578], "codebas": [381, 397, 419, 438, 440], "codemeta": 433, "codespel": 431, "codestyl": 383, "coeffici": [128, 240, 244, 544], "coerce_numbers_to_str": 104, "coerce_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "coher": 447, "coincid": 478, "col": [87, 91, 431], "col0": [87, 91], "col1": [87, 91], "col2": [87, 91], "col_b": [87, 91], "col_c": [87, 91], "col_d": [87, 91], "col_fit_deriv": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "col_label": 374, "collabor": [77, 370, 371, 385, 387, 389, 393, 433, 466, 494, 577], "colleagu": [383, 578], "collect": [200, 247, 380, 382, 407, 410, 438, 439, 456, 481, 488, 506, 515, 519, 523, 577, 582], "collis": 50, "colnam": [87, 91, 193, 194, 196, 202, 205, 206, 494, 504], "color": [101, 109, 110, 147, 148, 206, 369, 370, 371, 374, 377, 381, 450, 451, 453, 455, 456, 457, 458, 459, 461, 463, 465, 466, 469, 472, 475, 479, 482, 483, 485, 488, 490, 491, 518, 527, 531, 535, 536, 554, 563], "colorbar": [125, 147, 148, 150, 153, 154, 155, 160, 161, 162, 164, 206, 368, 374, 477, 483, 486], "colorblind": 518, "colorblind10": 518, "colormap": [369, 370, 371, 419, 432, 504], "colormap_hess": [401, 583], "colormap_milagro": 583, "colour": 442, "column": [41, 43, 44, 46, 47, 56, 83, 87, 91, 103, 108, 123, 125, 128, 141, 147, 148, 150, 174, 193, 194, 195, 196, 197, 198, 202, 203, 205, 206, 274, 296, 305, 350, 351, 352, 353, 373, 374, 377, 378, 380, 393, 395, 404, 442, 445, 446, 450, 468, 475, 480, 486, 489, 493, 515, 518], "column_nam": 484, "column_prefix": 198, "columnclass": [87, 91], "columnspac": 377, "com": [135, 137, 144, 303, 334, 335, 347, 383, 400, 409, 410, 413], "combin": [99, 101, 102, 105, 109, 110, 134, 143, 145, 179, 187, 193, 194, 196, 201, 202, 205, 206, 219, 263, 380, 386, 390, 391, 392, 393, 394, 395, 400, 403, 412, 424, 439, 445, 447, 453, 458, 463, 464, 471, 474, 481, 483, 484, 485, 486, 487, 489, 495, 503, 504, 506, 508, 518, 525, 530, 546, 576, 577], "combine_flux_map": [143, 447], "combine_significance_map": 144, "combined_ev": 515, "combining_and_defin": [450, 458, 460, 463, 465, 471, 474, 493], "come": [69, 383, 386, 387, 388, 389, 390, 394, 395, 396, 397, 399, 400, 405, 407, 409, 410, 427, 428, 431, 440, 441, 445, 455, 463, 471, 489, 493, 502, 578], "comma": [71, 72, 74, 75, 76, 78, 79, 80, 480], "command": [6, 13, 94, 101, 125, 154, 160, 162, 164, 379, 381, 383, 388, 389, 391, 396, 397, 410, 411, 412, 413, 414, 415, 421, 425, 436, 439, 440, 442, 467, 517, 576], "commensur": 206, "comment": [125, 380, 381, 385, 389, 393, 394, 396, 397, 399, 401, 403, 405, 406], "commit": [380, 383, 388, 394, 405, 406, 409, 418, 419, 442], "committe": [385, 387, 405, 406], "commod": 406, "common": [95, 379, 380, 381, 383, 385, 386, 394, 396, 400, 401, 403, 404, 406, 413, 415, 416, 431, 433, 456, 457, 469, 480, 484, 487, 489, 502, 503, 506, 513, 516, 517, 531, 536, 578], "common_irf_head": 484, "commonli": [29, 83, 394, 398, 440, 469, 506, 575, 576, 578, 580, 583], "commun": [380, 396, 402, 406, 409, 411, 417, 496], "comp": 480, "compact": [16, 84, 87, 90, 91, 104, 124], "compar": [87, 91, 126, 127, 130, 131, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 286, 380, 394, 397, 400, 428, 444, 445, 450, 451, 452, 455, 459, 463, 466, 469, 471, 473, 477, 480, 483, 485, 491, 494, 502, 513, 577, 579], "comparison": [86, 87, 91, 100, 130, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 337, 436, 508], "compat": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 193, 194, 196, 205, 206, 232, 385, 387, 391, 394, 403, 405, 407, 408, 416, 419, 421, 423, 440, 446, 447, 486, 530], "compil": [383, 432], "complain": 383, "complaint": 398, "complement": 400, "complementari": [101, 134, 143, 455], "complet": [13, 16, 84, 90, 104, 124, 337, 380, 386, 390, 391, 392, 393, 394, 397, 398, 400, 404, 405, 406, 409, 413, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 436, 437, 438, 439, 440, 441, 463, 468, 483, 490, 498, 518, 523], "complex": [380, 381, 386, 390, 394, 395, 396, 402, 404, 416, 447, 452, 455, 465, 468, 474, 478, 481, 486, 487, 489, 490, 494, 527], "complianc": [406, 442], "compliant": [193, 194, 196, 205, 206, 446, 577], "complic": [394, 531], "compon": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 81, 88, 102, 103, 105, 108, 109, 110, 130, 137, 165, 167, 201, 224, 247, 248, 263, 279, 391, 392, 393, 396, 402, 403, 421, 425, 427, 431, 439, 440, 451, 456, 457, 458, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 477, 480, 481, 482, 488, 489, 493, 494, 502, 503, 506, 514, 516, 518, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 577], "component_1": 391, "component_2": 391, "component_class": 480, "components_model": 80, "components_statu": 67, "compos": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 386, 406], "composit": [57, 70, 80, 318, 406, 438], "compound": [201, 208, 219, 338, 342, 394, 403, 449, 451, 469, 532, 564], "compoundmodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 433], "compoundpixelregion": 342, "compoundskymodel": 391, "compoundskyregion": [208, 338, 342], "compoundsourcemodel": 391, "compoundspectralmodel": [258, 403, 445, 451, 489, 494, 544, 546, 550, 553, 555, 558, 563], "compress": 388, "compris": 495, "compromis": [380, 385, 393, 491], "compton": [248, 427, 554], "compulsori": 489, "comput": [16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 83, 84, 86, 88, 90, 94, 96, 100, 101, 102, 104, 105, 109, 110, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 179, 180, 182, 185, 186, 187, 188, 190, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 207, 211, 218, 219, 222, 224, 226, 228, 229, 230, 235, 239, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 279, 280, 286, 287, 288, 290, 293, 294, 295, 296, 298, 302, 303, 306, 310, 311, 314, 380, 389, 390, 391, 392, 393, 394, 395, 398, 400, 401, 402, 403, 404, 408, 410, 412, 413, 417, 419, 421, 422, 423, 424, 427, 428, 430, 431, 432, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 452, 457, 459, 463, 464, 468, 469, 472, 473, 475, 478, 479, 481, 482, 485, 488, 489, 490, 491, 494, 495, 496, 502, 504, 506, 514, 516, 518, 523, 527, 554, 576, 577, 578, 579, 580, 581, 582], "computation": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 211, 393, 394, 514], "compute_chisq": 438, "compute_differential_jfactor": 23, "compute_errn": [288, 290, 442, 580], "compute_errp": [288, 290, 580], "compute_flux_doubl": 137, "compute_fpp": 138, "compute_fvar": [139, 295], "compute_jfactor": [23, 479], "compute_lightcurve_doublingtim": 478, "compute_lightcurve_fpp": 478, "compute_lightcurve_fvar": 478, "compute_lima_map": 427, "compute_npr": 393, "compute_upper_limit": [288, 290], "computedfieldinfo": [16, 84, 90, 104, 124], "con": [380, 396], "concaten": [83, 86, 92, 195, 198, 392, 396, 402, 445, 486], "concentr": 339, "concept": [16, 84, 90, 104, 124, 400, 401, 407, 417, 479, 486, 519], "conception": [393, 402], "concern": [383, 385, 394, 396, 397, 399, 401, 403, 406, 431, 441, 495, 580], "conclud": 389, "concret": [16, 84, 90, 104, 124, 397, 400], "conda": [379, 383, 387, 388, 397, 400, 405, 409, 410, 412, 413, 414, 415, 416, 421, 423, 439, 440, 578], "condit": [52, 53, 146, 198, 215, 217, 224, 247, 404, 408, 428, 447, 450, 455, 458, 468, 480, 487, 488, 490, 495, 514, 523], "conduct": [442, 474], "cone": [91, 394, 456, 490, 502, 503, 518], "conesearch": 396, "conf": [87, 91, 380, 381, 410, 422, 437], "conf_1d": 472, "conf_3d": 472, "conf_max": [214, 216], "conf_min": [214, 216], "confid": [122, 211, 214, 216, 288, 290, 391, 398, 422, 427, 441, 577, 580], "confidence_opt": [211, 482], "config": [15, 16, 84, 90, 104, 124, 379, 381, 386, 388, 389, 396, 397, 400, 407, 412, 414, 424, 425, 426, 431, 439, 456, 463, 502, 575], "config_dict": 502, "config_joint": 463, "config_paramet": [118, 120, 121, 122, 126, 127, 129, 130, 131, 132, 133], "config_stack": 463, "config_str": 16, "configdict": [16, 84, 90, 104, 124], "configpars": 437, "configur": [11, 15, 16, 46, 84, 87, 90, 91, 101, 104, 109, 110, 118, 120, 121, 122, 124, 126, 127, 129, 130, 131, 132, 133, 327, 380, 381, 383, 389, 391, 395, 396, 400, 401, 407, 409, 410, 416, 424, 426, 427, 431, 433, 442, 445, 446, 455, 457, 459, 465, 467, 468, 477, 493, 498, 517, 518, 523, 577, 578], "confirm": [383, 409], "conflict": [87, 91, 380, 383, 406], "confluenc": 496, "conform": [16, 84, 90, 104, 124, 486], "confus": [380, 381, 386, 399], "connect": [390, 455, 469, 471, 487, 503, 575], "consant": [193, 194, 196, 202, 205, 206], "consciou": 385, "consecut": [176, 337, 380, 405], "consensu": [385, 406], "consent": 380, "consequ": [406, 468, 531], "conserv": [514, 539], "consid": [19, 20, 59, 96, 173, 180, 183, 184, 186, 187, 194, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 286, 376, 385, 386, 391, 392, 394, 395, 396, 397, 398, 399, 400, 402, 406, 408, 452, 455, 457, 463, 467, 468, 478, 484, 487, 515, 518, 523, 581], "consider": [396, 421, 431, 439, 463], "consist": [74, 91, 95, 123, 125, 151, 152, 163, 166, 193, 194, 196, 205, 206, 234, 237, 380, 390, 391, 393, 394, 395, 400, 407, 424, 425, 426, 427, 428, 435, 439, 440, 442, 444, 445, 446, 456, 457, 458, 459, 466, 471, 474, 483, 485, 486, 489, 491, 502, 552, 554, 579], "consol": [380, 578], "consortium": [407, 493], "const": [220, 221, 222, 223, 403, 468, 489, 547, 565], "const3d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "const_norm": 403, "constant": [50, 51, 52, 53, 102, 109, 118, 153, 193, 194, 196, 202, 204, 205, 206, 220, 221, 222, 223, 225, 238, 240, 336, 393, 394, 399, 439, 449, 472, 494, 511, 514, 532, 543, 564, 574, 577, 581], "constant_model": 565, "constantmodel": 441, "constantnormspectralmodel": 403, "constantspatialmodel": [257, 403, 489, 494, 534], "constantspectralmodel": [258, 403, 468, 489, 547], "constanttemporalmodel": [270, 403, 424, 489, 565], "constitu": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "constitut": 481, "constrain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 406, 451, 460, 464, 485, 491, 525], "constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 518], "construct": [16, 84, 90, 104, 124, 198, 241, 242, 345, 531, 577], "constructor": [191, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 445, 503, 529], "consult": 415, "consum": [483, 518], "contact": [382, 387, 389, 406, 415, 417, 420, 421, 422, 436, 439], "contain": [13, 16, 19, 20, 26, 57, 59, 63, 67, 69, 82, 83, 84, 86, 87, 88, 90, 91, 92, 95, 96, 100, 101, 102, 104, 105, 108, 109, 110, 112, 113, 123, 124, 125, 133, 134, 135, 136, 141, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 178, 180, 185, 188, 190, 191, 192, 193, 194, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 211, 215, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 294, 305, 306, 373, 375, 377, 378, 380, 383, 384, 386, 388, 389, 390, 393, 394, 395, 396, 397, 399, 400, 401, 402, 404, 406, 409, 410, 417, 421, 425, 426, 427, 428, 430, 431, 433, 434, 437, 438, 439, 440, 441, 445, 446, 447, 450, 453, 455, 456, 457, 460, 463, 464, 467, 468, 471, 472, 473, 475, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 507, 509, 514, 515, 516, 518, 522, 526, 527, 530, 531, 532, 575, 577, 579, 580, 581], "containment_correct": [16, 102, 105, 180, 450, 455, 456, 457, 460, 461, 463, 465, 472, 473, 475, 477, 481, 485, 502], "containment_fract": 96, "containment_radiu": [154, 160, 162, 163, 164, 166, 450, 481, 484, 487], "containment_radius_map": [163, 166], "contains_pix": [191, 192, 201, 204], "contains_wcs_pix": 201, "contamin": [67, 461, 480, 487, 527], "content": [84, 90, 104, 124, 125, 193, 194, 196, 202, 205, 206, 343, 346, 380, 383, 385, 389, 395, 400, 407, 410, 425, 434, 439, 452, 486, 487, 493, 495, 515, 518, 529, 530], "content_typ": [16, 84, 90, 104, 124], "context": [16, 84, 87, 90, 91, 104, 124, 215, 217, 224, 247, 327, 358, 380, 395, 406, 410, 446, 486, 508], "contigu": [198, 203, 431], "continu": [198, 387, 389, 390, 393, 394, 396, 397, 399, 400, 405, 416, 419, 420, 423, 431, 436, 437, 438, 440, 455, 468, 477, 487, 530, 577], "continuous_upd": [463, 471, 486, 502, 503], "contour": [208, 211, 372, 389, 441], "contour_": 483, "contourf": 206, "contract": 406, "contrari": [381, 388], "contrast": [400, 577], "contrera": 441, "contribut": [100, 115, 117, 224, 232, 247, 263, 376, 380, 382, 389, 394, 402, 404, 410, 417, 420, 431, 433, 435, 485, 519, 554, 575, 578, 579], "contributes_to_stat": 100, "contributor": [380, 383, 400, 410, 418, 429, 430], "control": [83, 87, 91, 102, 105, 109, 110, 380, 393, 411, 413, 450, 479, 486, 491, 518, 580], "controversi": [380, 385, 386, 400], "conveni": [13, 123, 379, 380, 383, 390, 394, 402, 404, 411, 421, 423, 428, 431, 433, 438, 465, 477, 479, 480, 481, 486, 487, 488, 489, 493, 495, 504, 513, 517, 576], "convent": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 192, 193, 194, 196, 204, 205, 206, 402, 404, 423, 424, 427, 428, 442, 447, 481, 485, 486, 489, 514, 516, 523, 530, 580], "converg": [408, 422, 443, 455, 457, 463, 477, 483, 514, 518, 525, 535], "convers": [84, 87, 90, 91, 104, 123, 124, 125, 134, 143, 385, 404, 407, 412, 414, 431, 444, 445, 446, 450, 531], "conversion_typ": [494, 504], "convert": [16, 19, 23, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 83, 85, 86, 87, 91, 99, 101, 102, 105, 107, 109, 110, 123, 125, 128, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 176, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 210, 213, 214, 215, 216, 217, 224, 239, 247, 286, 304, 307, 308, 312, 325, 341, 361, 363, 364, 381, 386, 394, 395, 404, 407, 410, 432, 444, 445, 446, 447, 450, 459, 466, 473, 474, 477, 481, 482, 483, 487, 488, 493, 504, 516, 522, 527, 530, 580, 582], "convert_bytestring_to_unicod": [87, 91], "convert_unicode_to_bytestr": [87, 91], "convinc": 504, "convolut": [118, 122, 128, 133, 161, 194, 206, 379, 392, 398, 419, 426, 428, 437, 439, 440, 446, 447, 461, 486, 514, 531], "convolution_method": 194, "convolv": [105, 111, 116, 133, 161, 194, 206, 391, 419, 428, 431, 440, 458, 459, 461, 486, 524, 554], "convolve_ful": 194, "convolve_wc": 194, "cookiecutt": 396, "coolwarm": [463, 494, 495, 503], "coord": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 249, 294, 391, 424, 468, 486, 487, 527, 530, 531, 538], "coord_to_idx": [191, 192, 195, 197, 198, 201, 203, 204, 486], "coord_to_pix": [191, 192, 195, 197, 198, 201, 203, 204, 486], "coordiant": 484, "coordin": [6, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 46, 47, 83, 85, 87, 88, 89, 91, 94, 95, 96, 102, 103, 105, 108, 109, 110, 112, 113, 123, 125, 127, 128, 129, 137, 141, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 160, 162, 163, 164, 165, 166, 176, 186, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 224, 225, 234, 237, 239, 247, 249, 251, 260, 261, 263, 275, 294, 298, 303, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 319, 329, 335, 339, 340, 356, 381, 385, 386, 387, 389, 393, 394, 399, 400, 403, 405, 406, 419, 421, 424, 426, 437, 439, 440, 442, 450, 452, 455, 457, 458, 461, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 503, 504, 514, 522, 527, 529, 530, 535, 536, 539, 576, 577, 582], "coordsi": 426, "copi": [11, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 104, 105, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 151, 152, 155, 158, 163, 166, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 307, 352, 380, 385, 388, 390, 394, 396, 402, 409, 410, 416, 431, 433, 440, 441, 442, 445, 447, 451, 452, 455, 457, 458, 463, 465, 471, 473, 474, 477, 480, 483, 485, 489, 491, 494, 518, 527, 531, 542, 578], "copy_data": [87, 91, 224, 232, 247, 263, 271, 273, 275], "copy_indic": [87, 91], "copy_ob": [82, 518], "copy_on_getitem": [87, 91], "copyright": 416, "core": [16, 53, 84, 90, 104, 124, 159, 379, 380, 387, 393, 394, 401, 405, 406, 409, 417, 420, 437, 441, 445, 450, 457, 458, 460, 463, 465, 467, 469, 471, 474, 477, 488, 493, 506, 516, 578], "corner": [394, 397, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "corr_coord": [163, 166], "correct": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 83, 88, 102, 103, 105, 152, 163, 166, 180, 185, 186, 199, 232, 249, 250, 275, 380, 392, 393, 405, 406, 407, 409, 423, 426, 428, 429, 430, 431, 434, 437, 438, 440, 442, 443, 444, 445, 446, 447, 450, 451, 455, 456, 457, 458, 467, 471, 472, 480, 481, 483, 485, 487, 488, 489, 491, 495, 502, 504, 515, 516, 525, 538, 550, 553, 555, 558, 563], "correctli": [19, 20, 26, 77, 151, 152, 158, 163, 166, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 381, 383, 406, 407, 421, 423, 428, 433, 434, 443, 484, 485, 486, 487, 488, 491, 530, 536], "correl": [19, 20, 26, 122, 128, 136, 209, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 276, 298, 398, 403, 404, 431, 441, 447, 466, 469, 483, 487, 489, 491, 502, 516, 575], "correlate_off": [122, 461], "correlation_radiu": [16, 122, 141, 142, 456, 460, 461, 463, 475, 482, 495, 502, 516], "correspond": [19, 20, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 45, 87, 89, 91, 100, 102, 105, 109, 110, 123, 125, 126, 127, 128, 130, 131, 133, 134, 143, 150, 151, 152, 158, 161, 163, 165, 166, 167, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 208, 218, 219, 222, 226, 228, 229, 230, 234, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 305, 373, 390, 391, 392, 393, 400, 401, 404, 406, 408, 425, 428, 452, 453, 455, 456, 457, 463, 467, 468, 472, 480, 483, 485, 486, 489, 490, 491, 493, 494, 495, 502, 504, 514, 515, 516, 518, 530, 531, 541, 544, 576, 577, 582], "cosimo": [428, 431, 433, 439, 440, 442, 445], "cosmic": [52, 226, 279, 398, 493], "coto": 439, "could": [16, 84, 90, 104, 124, 381, 383, 385, 386, 389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 404, 406, 407, 410, 452, 455, 463, 465, 480, 482, 491, 493, 494, 502, 517], "count": [16, 83, 92, 100, 102, 105, 106, 107, 108, 109, 110, 114, 118, 122, 123, 125, 126, 127, 129, 130, 131, 132, 133, 140, 142, 168, 170, 173, 174, 175, 180, 182, 186, 190, 193, 194, 196, 197, 198, 202, 205, 206, 215, 217, 224, 247, 288, 290, 291, 292, 297, 299, 302, 304, 329, 365, 367, 376, 378, 386, 388, 391, 392, 393, 395, 396, 400, 404, 422, 423, 426, 428, 431, 433, 434, 440, 441, 445, 446, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 469, 471, 472, 473, 474, 475, 477, 481, 483, 485, 486, 487, 491, 495, 500, 502, 503, 504, 516, 518, 522, 525, 526, 527, 528, 531, 577, 578, 579, 581], "count_bkg": 475, "count_statist": 580, "counter": [225, 234, 237, 535], "counts_3d": 486, "counts_imag": [469, 481], "counts_min": 146, "counts_off": [102, 105, 106, 109, 110, 168, 174, 175, 178, 378, 392, 433, 444, 445, 451, 456, 457, 458, 461, 465, 475, 481, 514, 580], "counts_on": 422, "counts_rat": 481, "counts_statist": 461, "countspredictor": 391, "countsspectrum": [392, 395, 422, 423, 425, 427, 436], "countsstatist": [288, 290, 404, 427, 428, 431, 442], "coupl": [388, 394, 399, 410, 428, 440, 486], "cours": [380, 383, 387, 390, 397, 416, 456, 463, 481, 486, 494, 502, 578, 581], "cousin": [422, 428, 436, 438, 577], "cousins2007": [577, 580], "coutinho": [428, 431], "cov": [253, 254, 410], "cov_matrix": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "covar": [209, 373, 441], "covar_list": 209, "covari": [15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 126, 127, 130, 131, 210, 211, 212, 215, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 373, 398, 408, 427, 433, 441, 442, 445, 447, 456, 502, 580], "covariance_data": [224, 232, 247, 263, 273], "covariance_opt": 211, "covariance_result": 212, "covariance_typ": 408, "covariancegaussianprior": 408, "covariancemixin": [219, 224, 263, 447], "covarianceresult": [101, 211, 212, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 483, 494, 502, 503], "cover": [274, 380, 382, 394, 395, 396, 404, 452, 472, 473, 481, 486, 498, 504, 519], "coverag": [389, 395, 410, 419, 423, 431, 437, 440, 473, 483], "coveral": [410, 419], "cpu": [126, 127, 130, 133, 327, 328, 393], "cpython": 385, "crab": [67, 83, 109, 110, 131, 146, 211, 244, 280, 286, 388, 392, 400, 419, 425, 437, 439, 455, 456, 457, 464, 465, 472, 480, 481, 482, 483, 487, 491, 494, 495, 496, 502, 503, 504, 516, 527, 531, 577], "crab_10gev_100tev_dataset": 464, "crab_3fhl": 504, "crab_3fhl_spec": 504, "crab_events_pass4": 495, "crab_fp": 456, "crab_fp_tabl": 456, "crab_hess_ecpl": 280, "crab_hess_fp": [123, 125, 145], "crab_magic_lp": 457, "crab_model": 483, "crab_posit": 527, "crab_spec": 464, "crab_spectrum": 483, "crabnebula": 472, "crabspectrum": 423, "creat": [11, 13, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 70, 82, 83, 84, 86, 87, 88, 90, 91, 92, 93, 99, 101, 102, 104, 105, 109, 110, 111, 112, 113, 114, 116, 118, 123, 124, 125, 126, 127, 130, 133, 134, 143, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 175, 176, 177, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 280, 286, 307, 317, 338, 342, 358, 367, 369, 374, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 414, 416, 423, 424, 425, 428, 431, 433, 439, 440, 442, 443, 444, 445, 446, 447, 450, 451, 453, 456, 457, 458, 463, 465, 466, 467, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 483, 485, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 504, 506, 513, 514, 515, 518, 522, 525, 527, 528, 529, 530, 534, 536, 537, 538, 539, 544, 554, 563, 575, 576, 578, 583], "create_crab_spectral_model": [455, 457, 464], "create_fermi_isotropic_diffuse_model": [488, 494], "create_map_dataset_from_observ": [93, 108], "create_t": 477, "creation": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 127, 204, 389, 390, 394, 403, 406, 425, 431, 447, 478, 489, 496], "creator": [104, 124, 383, 407, 456, 460, 461, 463, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "creatormedadata": 407, "creatormetadata": [84, 90, 104, 124, 407], "credit": 416, "crimson": 457, "criteria": [15, 91, 433, 485, 490, 498], "criterion": [91, 133, 305, 450, 518], "critic": 491, "criticis": 371, "crop": [86, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206], "crop_width": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206], "cross": [19, 386, 400, 447, 506], "crowd": 480, "crpix": 204, "crpix1": 486, "crpix2": 486, "crucial": [407, 467, 468, 481], "cruft": 410, "crux": [33, 38, 477], "crval1": 486, "crval2": 486, "cryptic": 391, "csh": 578, "csobsselect": 390, "css": [87, 91, 410, 447], "cstat": [392, 425], "csv": 125, "ct": [365, 440], "cta": [82, 83, 89, 102, 105, 109, 110, 115, 117, 118, 122, 141, 142, 148, 152, 153, 154, 163, 226, 368, 373, 375, 384, 387, 388, 389, 393, 396, 399, 400, 409, 420, 421, 431, 437, 438, 439, 440, 447, 449, 450, 458, 460, 463, 465, 467, 468, 471, 474, 475, 481, 482, 484, 488, 497, 498, 502, 516, 520, 577], "cta_data_analysi": [400, 449, 465, 470], "cta_dataset": 488, "cta_north": 97, "cta_sensist": 400, "cta_sensit": [449, 450, 454], "cta_simul": 420, "cta_south": [97, 450, 458, 467, 468, 471, 474], "cta_util": 440, "ctadata": 493, "ctao": [82, 152, 153, 173, 279, 380, 400, 406, 409, 412, 417, 447, 449, 450, 456, 458, 460, 465, 467, 468, 475, 490, 495, 496, 497, 498, 506, 518, 576], "ctapip": [383, 387, 389, 396, 397, 399, 400, 401], "ctaspectrumobserv": 440, "ctobssim": 393, "ctool": [390, 393, 396, 400, 552], "cts_sigma": 483, "ctselect": 390, "ctype1": 486, "ctype2": 486, "cube": [46, 102, 105, 133, 168, 186, 193, 194, 196, 202, 205, 206, 243, 263, 380, 391, 392, 393, 399, 400, 401, 403, 412, 419, 423, 424, 427, 432, 435, 436, 437, 438, 439, 440, 459, 460, 465, 469, 494, 504, 514, 523, 525, 530, 531, 577], "cubic": 486, "cumbersom": [390, 398], "cumsum": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206], "cumul": [100, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 329, 393, 455, 467, 488, 518], "cunit1": 486, "cunit2": 486, "curat": [410, 420], "curl": [67, 397, 411, 412, 414, 493], "current": [11, 15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 86, 87, 88, 89, 91, 99, 100, 101, 102, 105, 109, 110, 125, 126, 130, 156, 179, 191, 192, 193, 194, 196, 202, 203, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 358, 374, 380, 381, 383, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 408, 411, 412, 413, 414, 423, 441, 456, 479, 482, 484, 485, 486, 488, 493, 495, 496, 502, 503, 507, 514, 515, 516, 531, 575, 577, 578], "curv": [15, 19, 20, 26, 73, 77, 83, 130, 137, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 296, 372, 384, 391, 393, 396, 400, 404, 412, 421, 425, 427, 428, 432, 435, 436, 438, 440, 442, 445, 446, 449, 450, 476, 477, 478, 498, 516, 517, 527, 532, 574, 576], "curve_fit": 373, "cuspi": 506, "custom": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 89, 90, 104, 124, 129, 389, 390, 391, 396, 398, 403, 407, 411, 425, 426, 428, 440, 450, 458, 460, 463, 465, 471, 474, 481, 484, 486, 493, 518, 563], "custom_model": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "customari": 489, "customis": [400, 484], "customprior": 491, "cut": [91, 122, 165, 179, 180, 390, 439, 445, 449, 450, 454, 458, 475, 481, 485, 486, 490, 493, 498, 503, 504, 526, 527], "cutoff": [228, 229, 230, 267, 268, 269, 286, 425, 445, 449, 458, 463, 532, 564], "cutout": [102, 105, 109, 110, 115, 117, 151, 152, 158, 163, 166, 169, 192, 194, 202, 204, 206, 273, 386, 392, 421, 426, 431, 437, 440, 447, 460, 461, 463, 465, 469, 481, 485, 494, 503, 504, 514], "cutout2d": [102, 105, 151, 152, 158, 163, 166, 169, 204, 206, 273, 386], "cutout_and_mask_region": [206, 445], "cutout_info": 425, "cutout_mod": 169, "cutout_slic": 204, "cutout_template_model": 447, "cutout_width": 169, "cval": [193, 194, 196, 202, 205, 206], "cwd": 388, "cwt": [400, 425, 437, 440], "cxc": [211, 400, 483], "cyan": 377, "cycl": [377, 383, 384, 385, 397, 399, 413, 438, 442], "cycler": [377, 450], "cython": [383, 422, 432], "d": [19, 20, 23, 87, 89, 91, 197, 200, 203, 239, 244, 255, 274, 280, 347, 383, 398, 400, 433, 442, 453, 461, 467, 468, 474, 486, 489, 490, 523, 530, 535, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 581], "d5wnrln3": 485, "dai": [87, 91, 123, 125, 203, 231, 236, 238, 255, 262, 383, 394, 400, 409, 410, 486, 571, 578], "daniel": [441, 444, 446, 447], "dark": [1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 400, 408, 440, 445, 446, 449, 492, 498, 507, 576], "dark_matter_spectra": 26, "darkbit": 506, "darkblu": 491, "darkgreen": 491, "darkmatt": [6, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 258, 381, 400, 440, 479, 507], "darkmatterannihilationspectralmodel": [20, 258, 442, 479], "darkmatterdecayspectralmodel": [258, 446, 479], "darkorang": [455, 456], "darksusi": 506, "darwin": 416, "dash": [475, 479, 491], "dashboard": 410, "dat": [26, 87, 91, 224, 247, 456, 502, 506], "data": [6, 11, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 123, 124, 125, 126, 127, 128, 129, 136, 141, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 179, 186, 190, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 291, 296, 297, 298, 300, 301, 304, 305, 306, 315, 316, 319, 337, 343, 346, 350, 351, 359, 368, 369, 370, 371, 373, 374, 379, 381, 384, 387, 390, 391, 392, 393, 394, 396, 399, 400, 401, 402, 403, 404, 406, 408, 409, 412, 416, 417, 419, 420, 421, 422, 423, 425, 426, 427, 428, 431, 432, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 449, 450, 453, 458, 459, 460, 461, 465, 467, 468, 471, 474, 479, 480, 482, 483, 484, 487, 488, 489, 490, 491, 492, 493, 494, 496, 497, 500, 505, 506, 514, 516, 518, 520, 521, 522, 523, 524, 525, 527, 528, 530, 531, 537, 538, 550, 553, 555, 557, 558, 563, 575, 576, 577, 580, 581, 582], "data_extend": [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "data_nbyt": [191, 192, 201, 204], "data_path": 495, "data_reduct": 396, "data_shap": [101, 102, 105, 109, 110, 191, 192, 201, 204, 481, 531], "data_shape_ax": [192, 201, 204], "data_shape_imag": 204, "data_spectr": [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "data_stor": [82, 96, 173, 305, 306, 396, 416, 457, 465, 467, 473, 475, 477, 485, 490, 493, 495, 496, 500, 503, 515, 525, 527, 528], "data_storag": 515, "data_summari": 437, "dataaxi": 422, "databas": [386, 518], "dataclass": 380, "datafram": [87, 91], "dataset": [6, 15, 16, 19, 20, 26, 63, 94, 98, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 125, 126, 127, 130, 131, 132, 133, 135, 140, 141, 142, 143, 144, 146, 151, 152, 158, 163, 166, 168, 169, 170, 173, 174, 175, 178, 179, 180, 195, 200, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 327, 373, 376, 377, 381, 383, 384, 386, 388, 393, 395, 396, 397, 399, 400, 404, 408, 409, 410, 412, 414, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 438, 440, 441, 442, 443, 444, 445, 446, 447, 449, 451, 453, 455, 458, 459, 465, 466, 467, 469, 471, 475, 477, 479, 480, 486, 489, 490, 492, 493, 494, 496, 498, 500, 504, 515, 516, 518, 523, 525, 526, 527, 528, 538, 542, 544, 572, 573, 575, 576, 577, 578, 579, 580], "dataset1": [491, 514], "dataset1_prior": 491, "dataset2": [491, 514], "dataset2_prior": 491, "dataset_1": 516, "dataset_2": 516, "dataset_3fgl": 453, "dataset_3fhl": 453, "dataset_cta": 481, "dataset_empti": [452, 455, 457, 458, 465, 473, 477, 481, 485, 495, 527], "dataset_energy_depend": 466, "dataset_fak": 458, "dataset_fp": 474, "dataset_gammacat": 453, "dataset_hawc": 464, "dataset_hess": [464, 483], "dataset_imag": [465, 481], "dataset_kwarg": [93, 108], "dataset_lc": 474, "dataset_mak": [455, 457, 465, 473, 477, 485, 527], "dataset_nam": [108, 112, 113, 130, 224, 232, 247, 402, 408, 447, 463, 467, 468, 471, 481, 488, 503, 538], "dataset_on_off": [168, 174, 175, 178, 450, 455, 457, 458, 461, 465, 473, 477, 485, 527, 528], "dataset_on_off1": 450, "dataset_onoff": 392, "dataset_simul": 457, "dataset_stack": [455, 463], "datasetmodel": [213, 247, 263, 402, 428, 467, 468, 471, 477], "datasetread": 106, "datasets1": 377, "datasets2": 377, "datasets3": 377, "datasets_fil": [16, 456, 460, 461, 463, 502], "datasets_hess": 464, "datasets_in_phase_bin_3": 404, "datasets_mak": 485, "datasets_nam": [19, 20, 26, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 427, 464, 488, 502, 538], "datasets_read": [488, 494], "datasets_sl": 481, "datasets_to_fit": 477, "datasetsconfig": 16, "datasetsmak": [171, 433, 445, 485, 490, 518], "datasetsmetadata": 407, "datasetwrit": 107, "datastor": [16, 89, 96, 173, 305, 306, 386, 390, 395, 412, 416, 422, 433, 434, 436, 437, 439, 445, 446, 452, 455, 456, 457, 460, 461, 463, 465, 467, 471, 473, 475, 477, 485, 490, 495, 496, 500, 502, 515, 518, 525, 527, 528, 578], "datastorecheck": 440, "datastoreindex": 390, "datastoreinmemori": 390, "datastoremak": [422, 433], "datastoremetadata": 407, "datastoreobserv": [174, 386, 390, 426, 439], "datastorexml": 390, "datasum": [83, 86, 88, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206], "datat": [87, 91], "date": [87, 91, 104, 124, 361, 397, 405, 406, 407, 409, 417, 439, 456, 459, 460, 461, 463, 489, 496, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 582], "datefmt": [16, 456, 460, 461, 463, 502, 578], "dateref": 459, "datetim": [104, 124, 407], "datetime64": [87, 91], "datfix": 459, "daughter": 407, "david": [390, 395, 420, 440, 441], "dc": 463, "dc1": [389, 400, 441, 467, 475, 484, 488, 493], "dc2": 389, "ddof": 478, "de": [19, 20, 26, 67, 100, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 304, 406, 409, 428, 431, 434, 479, 577], "deabsorb": 451, "deactiv": 411, "dead": [83, 86, 88, 337, 390], "dead_tim": [83, 88, 337], "deadc": 390, "deadlin": [389, 393], "deadtim": [88, 90, 186, 458, 467, 471, 493], "deadtime_fract": [88, 90], "deal": [86, 380, 386, 395, 396, 458, 467, 473, 498, 518], "debanjan": 422, "debian": [397, 413, 435], "debug": [11, 380, 386, 391, 396, 442, 455, 482, 486, 518, 578], "dec": [67, 83, 85, 87, 88, 91, 94, 141, 142, 176, 380, 381, 385, 389, 391, 393, 396, 397, 400, 418, 444, 450, 455, 457, 459, 461, 465, 468, 472, 473, 475, 477, 480, 485, 487, 493, 494, 495, 496, 503, 504, 506, 518, 522, 527, 582], "dec_pnt": 496, "dec_tru": 393, "decad": [17, 18, 21, 22, 24, 25, 27, 112, 113, 198, 282, 446, 467], "decai": [17, 18, 20, 21, 22, 23, 24, 25, 27, 231, 238, 255, 403, 467, 474, 478, 489, 506, 568], "decemb": 418, "decid": [380, 386, 389, 390, 391, 392, 394, 395, 399, 402, 403, 404, 409, 456, 490, 502], "decim": [87, 91, 303], "decis": [380, 381], "declar": [15, 87, 91, 263, 359, 360, 383, 387, 388, 391, 396, 397, 403, 410, 427, 517], "decor": [359, 360, 380, 407, 578], "decorrel": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "decoupl": 69, "dedic": [383, 394, 395, 404, 406, 407, 410, 426, 427, 428, 446, 455, 456, 457, 463, 475, 483, 502, 503, 515], "deduc": [404, 446], "deep": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 86, 87, 90, 91, 99, 100, 101, 102, 104, 105, 109, 110, 123, 124, 125, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 463], "deepcopi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 271, 273, 275], "def": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 289, 359, 360, 380, 381, 391, 392, 393, 394, 403, 404, 407, 408, 455, 463, 477, 483, 489, 491, 500, 527, 578, 580], "def_unit": [450, 458, 460, 463, 465, 471, 474, 493], "defalut": 113, "default": [11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 65, 67, 77, 78, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 174, 176, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 287, 288, 289, 290, 291, 295, 296, 297, 298, 303, 304, 305, 307, 318, 319, 320, 325, 327, 328, 334, 335, 336, 337, 339, 340, 343, 346, 348, 349, 351, 357, 362, 363, 367, 369, 370, 371, 373, 374, 376, 377, 380, 386, 392, 396, 397, 403, 406, 410, 416, 422, 424, 425, 426, 428, 431, 433, 439, 440, 442, 443, 444, 445, 446, 455, 456, 457, 459, 461, 463, 467, 468, 473, 474, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 494, 502, 503, 504, 514, 516, 518, 525, 528, 529, 530, 531, 535, 536, 537, 544, 550, 554, 578, 582], "default_alpha": [21, 27], "default_beta": 27, "default_css": [87, 91], "default_css_nb": [87, 91], "default_epoch": 363, "default_gamma": 27, "default_hdu_t": 82, "default_interp_kwarg": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 438], "default_nam": [87, 91], "default_notebook_table_class": [87, 91], "default_obs_t": 82, "default_paramet": [19, 20, 26, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 408], "default_scale_radiu": [17, 21, 22, 24, 25, 27], "default_unit": [147, 148, 153, 155, 160, 165, 484], "defer": [105, 110], "defin": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 43, 44, 45, 46, 47, 52, 53, 83, 84, 87, 88, 90, 91, 95, 101, 102, 103, 104, 105, 108, 109, 110, 115, 117, 122, 123, 124, 125, 126, 127, 129, 130, 133, 150, 151, 152, 154, 158, 161, 162, 163, 164, 166, 169, 170, 174, 179, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 214, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 289, 291, 297, 299, 319, 329, 334, 335, 336, 337, 340, 370, 371, 380, 381, 383, 385, 386, 389, 391, 392, 393, 394, 395, 396, 397, 401, 402, 404, 405, 406, 407, 408, 411, 412, 413, 414, 421, 422, 425, 428, 431, 434, 438, 439, 444, 445, 446, 451, 456, 458, 459, 460, 461, 463, 464, 466, 469, 471, 474, 475, 477, 478, 480, 481, 482, 483, 484, 485, 486, 488, 489, 490, 491, 493, 494, 495, 502, 504, 514, 515, 516, 518, 520, 523, 527, 528, 530, 535, 537, 539, 540, 541, 544, 545, 548, 549, 551, 552, 554, 556, 557, 559, 560, 561, 562, 563, 573, 575, 576, 577, 578, 579, 580, 581], "definit": [83, 84, 86, 88, 90, 100, 102, 104, 105, 109, 110, 124, 170, 201, 289, 304, 318, 380, 389, 390, 394, 401, 402, 403, 404, 407, 423, 427, 428, 444, 446, 447, 455, 457, 460, 469, 473, 484, 485, 502, 514, 516, 523, 524, 529, 531, 535, 536, 580], "deform": 531, "deg": [16, 33, 34, 38, 47, 67, 83, 85, 87, 91, 94, 96, 102, 105, 109, 110, 112, 113, 114, 115, 117, 118, 122, 127, 128, 133, 141, 142, 152, 154, 155, 160, 161, 162, 163, 164, 165, 166, 168, 176, 177, 179, 181, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 224, 225, 234, 237, 247, 251, 260, 261, 263, 305, 306, 339, 375, 380, 381, 391, 394, 396, 403, 404, 407, 416, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 502, 503, 504, 515, 516, 518, 520, 522, 525, 527, 528, 529, 530, 531, 535, 536, 537, 538, 539, 540, 541, 542], "deg2": 496, "degre": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 105, 109, 110, 112, 113, 114, 120, 123, 125, 135, 144, 192, 193, 194, 196, 199, 204, 205, 206, 224, 247, 251, 263, 274, 446, 450, 452, 456, 461, 466, 473, 477, 480, 485, 486, 487, 493, 502, 516, 530, 531, 580, 581], "deil": [385, 386, 387, 388, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 419, 420, 421, 422, 423, 424, 425, 426, 432, 435, 436, 437, 438, 439, 440, 441], "deiml": 439, "dej2000": [480, 504], "del": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 391], "delai": [401, 405], "deleg": 396, "delet": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 380, 391, 410, 411, 412, 414, 446, 488], "delete_interv": 86, "delimit": 125, "deliv": 396, "delta": [19, 20, 23, 87, 91, 122, 123, 128, 131, 133, 155, 203, 253, 254, 287, 303, 445, 451, 459, 483, 491, 516, 523, 524, 536, 537, 539, 580], "delta_t": [120, 287, 466], "demonstr": [396, 421, 424, 425, 426, 427, 428, 433, 445, 446, 472, 478, 486, 488, 498, 530], "denot": [102, 109, 404, 514], "densiti": [17, 18, 21, 22, 24, 25, 27, 28, 30, 35, 36, 39, 40, 45, 52, 101, 125, 155, 206, 333, 336, 373, 393, 461, 463, 479, 480, 491, 506, 508, 512, 522, 523, 524, 577], "dep": 445, "depend": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 88, 100, 102, 103, 108, 109, 120, 123, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 180, 191, 192, 201, 204, 206, 224, 239, 247, 263, 307, 360, 380, 382, 383, 384, 386, 391, 392, 393, 394, 395, 398, 399, 404, 406, 407, 408, 409, 410, 411, 412, 413, 414, 418, 420, 424, 425, 428, 435, 437, 440, 441, 443, 445, 446, 447, 449, 450, 454, 458, 460, 461, 470, 473, 480, 483, 484, 485, 486, 487, 488, 490, 491, 493, 494, 498, 514, 518, 522, 526, 527, 530, 544], "deploy": 406, "deposit": 406, "deprec": [16, 84, 85, 90, 104, 124, 422, 431, 444, 445, 446, 447, 463, 469, 494, 542], "deprecated_argument_funct": 380, "deprecated_argument_function_kwarg": 380, "deprecated_attribut": 380, "deprecated_funct": 380, "deprecated_renamed_argu": 380, "deprecatedparseprotocol": [16, 84, 90, 104, 124], "deprecation_polici": 405, "depriv": 525, "depth": [16, 84, 90, 104, 124, 347, 412, 417, 451, 478, 544], "deriv": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 54, 100, 122, 126, 130, 133, 134, 143, 274, 380, 392, 393, 398, 401, 404, 459, 482, 493, 495, 516, 530, 579, 580], "describ": [27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 95, 125, 126, 128, 133, 162, 202, 211, 276, 299, 381, 383, 385, 386, 389, 390, 392, 393, 394, 396, 397, 399, 400, 403, 404, 405, 406, 417, 423, 431, 439, 440, 456, 459, 467, 468, 478, 482, 483, 489, 491, 493, 495, 496, 502, 514, 518, 522, 531, 532, 577, 578, 579, 580], "descript": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 87, 91, 127, 211, 381, 385, 386, 394, 400, 405, 406, 417, 442, 446, 463, 471, 480, 483, 486, 493, 495, 502, 503, 518], "description1": 381, "description2": 381, "description3": 381, "description_width": [463, 471, 486, 502, 503], "descriptionstyl": [463, 471, 486, 502, 503], "descriptor": [87, 88, 91, 102, 105, 109, 110, 273, 316, 381, 427], "design": [385, 386, 389, 390, 393, 394, 396, 400, 402, 404, 405, 419, 439, 446], "desir": [16, 84, 87, 90, 91, 104, 124, 161, 191, 192, 201, 204, 289, 355, 356, 357, 486, 504, 531], "desktop": 417, "destin": 11, "detail": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 100, 102, 105, 109, 110, 125, 126, 151, 152, 158, 163, 166, 169, 192, 204, 206, 211, 214, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 273, 274, 275, 380, 381, 383, 385, 388, 389, 390, 393, 394, 395, 399, 400, 401, 405, 406, 411, 415, 417, 418, 425, 429, 430, 449, 450, 451, 455, 457, 458, 459, 460, 465, 466, 467, 470, 471, 474, 477, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 495, 496, 498, 503, 504, 514, 515, 517, 523, 527, 528, 530, 575, 576, 578, 582], "detect": [59, 141, 142, 286, 370, 371, 381, 396, 399, 400, 402, 419, 425, 426, 427, 437, 439, 440, 446, 449, 462, 480, 493, 495, 498, 577, 580], "detect_t": 400, "detector": [83, 88, 103, 108, 155, 487, 495, 523, 577], "determin": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 112, 113, 132, 154, 160, 162, 164, 176, 177, 179, 181, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 307, 329, 391, 395, 398, 406, 433, 445, 446, 450, 457, 460, 461, 466, 472, 485, 487, 508, 576], "determinist": 380, "deti": [83, 103, 108, 393, 493], "detx": [83, 103, 108, 393, 493], "dev": [11, 16, 82, 84, 90, 104, 124, 380, 382, 383, 396, 406, 409, 410, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 544, 572, 573], "dev190": [104, 124, 417, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "develop": [381, 385, 386, 388, 389, 390, 391, 393, 394, 396, 397, 399, 400, 401, 402, 403, 405, 406, 408, 409, 410, 413, 417, 419, 432, 439, 440, 441, 493], "deviat": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 126, 194, 206, 211, 233, 289, 293, 483, 491], "devoid": [455, 521], "devop": 406, "devot": 498, "dex": 307, "df": [87, 91, 120, 135, 144, 466, 483, 580], "diagnosi": 389, "diagnost": 396, "diagon": [150, 151, 152, 398, 408, 494], "diagram": 582, "dialog": [412, 414], "diamet": [192, 193, 194, 452], "diamond": 490, "dict": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 69, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 96, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 118, 120, 123, 124, 125, 126, 127, 128, 130, 131, 133, 135, 136, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 178, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 213, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 281, 286, 287, 288, 289, 290, 294, 305, 319, 327, 328, 343, 346, 347, 348, 351, 361, 362, 363, 364, 367, 368, 369, 373, 374, 375, 376, 377, 380, 395, 397, 401, 404, 407, 424, 428, 431, 439, 456, 463, 472, 473, 477, 480, 483, 486, 490, 502, 503, 530, 535, 544], "dict_kei": [451, 544], "dictionari": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 84, 87, 88, 89, 90, 91, 92, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 120, 123, 124, 125, 126, 127, 130, 131, 133, 135, 136, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 168, 178, 191, 192, 193, 194, 196, 197, 199, 200, 201, 202, 204, 205, 206, 210, 211, 213, 214, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 288, 289, 290, 294, 317, 343, 346, 347, 348, 351, 361, 364, 374, 381, 397, 399, 404, 407, 408, 455, 457, 463, 483, 484, 490, 491, 573], "dictionnari": 373, "did": [77, 387, 394, 399, 400, 401, 403, 406, 422, 450, 458, 460, 463, 465, 471, 474, 483, 491, 493], "didn": [83, 88, 387, 390, 394, 397, 506], "diff": [101, 102, 105, 109, 110, 380, 383, 388, 392, 463, 471, 503], "diff_flux": 479, "diff_flux_point": [101, 481], "differ": [26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 59, 67, 80, 86, 87, 91, 94, 100, 101, 120, 122, 123, 125, 126, 127, 130, 131, 133, 141, 147, 148, 149, 150, 153, 155, 157, 160, 165, 175, 193, 194, 196, 199, 200, 201, 202, 204, 205, 206, 286, 287, 288, 290, 337, 341, 355, 356, 371, 380, 381, 383, 385, 386, 388, 390, 391, 392, 393, 394, 396, 397, 398, 400, 401, 402, 403, 404, 406, 408, 410, 412, 414, 423, 426, 428, 438, 441, 442, 443, 445, 447, 450, 455, 456, 457, 459, 460, 463, 466, 467, 468, 469, 472, 474, 477, 478, 480, 481, 482, 483, 485, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 504, 506, 514, 516, 518, 523, 530, 531, 536, 537, 576, 578, 579, 580], "different": 388, "differenti": [23, 79, 123, 125, 132, 193, 194, 196, 198, 202, 205, 206, 248, 263, 279, 280, 334, 386, 391, 398, 404, 438, 486, 489, 494, 504, 516, 577], "differential_flux": 125, "difficult": [391, 394, 410], "diffus": [68, 193, 194, 196, 202, 205, 206, 281, 380, 396, 399, 440, 441, 463, 467, 480, 486, 488, 489, 493, 575], "diffuse_cub": 489, "diffuse_galactic_fermi": 488, "diffuse_iem": [488, 494], "diffuse_iso": [488, 494], "diffuse_model": 281, "difrsp0": [494, 504], "difrsp1": [494, 504], "difrsp2": [494, 504], "difrsp3": [494, 504], "difrsp4": [494, 504], "digit": 380, "dilat": [206, 431], "dim": [160, 336, 436, 437, 465, 577], "dimens": [46, 53, 102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 175, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 271, 272, 275, 307, 319, 373, 396, 428, 439, 441, 445, 447, 483, 484, 486, 489, 498, 514, 530, 531, 536], "dimension": [31, 32, 37, 68, 87, 91, 191, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 233, 234, 237, 282, 320, 333, 386, 394, 408, 412, 437, 459, 482, 483, 484, 486, 489, 504, 522, 524, 530, 531, 576, 577], "dimensionless": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 155, 268, 269, 306, 469, 489], "dimitri": [431, 433], "dipol": [51, 54], "dirac": 19, "direct": [91, 104, 165, 183, 184, 187, 189, 198, 225, 234, 237, 311, 314, 381, 386, 392, 394, 399, 401, 404, 407, 431, 449, 454, 458, 485, 498, 515, 523, 524, 526, 527, 535, 576, 577], "directional_offset_bi": [450, 458], "directli": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 69, 83, 84, 87, 90, 91, 104, 124, 134, 140, 143, 144, 165, 180, 193, 194, 196, 202, 205, 206, 271, 273, 275, 380, 382, 383, 385, 387, 388, 391, 392, 393, 394, 398, 400, 407, 412, 414, 415, 419, 421, 422, 423, 425, 439, 446, 453, 455, 456, 458, 463, 464, 465, 468, 469, 471, 473, 474, 478, 480, 481, 482, 483, 484, 486, 487, 488, 489, 490, 493, 494, 502, 503, 504, 506, 514, 518, 523, 527, 530, 554, 580], "directori": [11, 82, 87, 380, 396, 456, 466, 496, 502, 504, 515, 518, 578], "dirk": [422, 436, 438], "disabl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 431], "disable_unicode_literals_warn": 380, "disadvantag": 578, "disagr": 385, "disambigu": 385, "disc": [460, 461, 463, 468], "discard": [407, 477, 480], "discard_on_copi": [87, 91], "discarded_ind": 480, "discarded_spati": 480, "discarded_t": 480, "disccus": 389, "discourag": 380, "discov": 578, "discrep": 455, "discret": [91, 136, 298, 303, 393, 447, 483, 530], "discrete_correl": 136, "discrete_correlation_dict": 136, "discrete_correlation_err": [136, 298], "discuss": [13, 59, 276, 380, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 410, 417, 439, 491, 496, 507, 582], "disjoint": 394, "disk": [82, 110, 152, 155, 194, 204, 206, 225, 237, 239, 358, 379, 380, 390, 391, 392, 396, 403, 404, 447, 449, 450, 455, 463, 464, 486, 487, 488, 489, 529, 532, 537, 541, 543], "disk_inc": 394, "diskspatialmodel": [72, 257, 403, 424, 445, 488, 489, 535], "dismiss": 100, "disp": [522, 523], "dispatch": 391, "dispers": [82, 88, 102, 103, 105, 107, 108, 109, 110, 111, 114, 116, 150, 151, 152, 155, 173, 179, 180, 183, 184, 187, 380, 386, 391, 392, 393, 425, 427, 437, 438, 439, 441, 450, 452, 455, 456, 463, 467, 485, 495, 496, 502, 503, 514, 523, 526, 577], "displac": 311, "displai": [11, 15, 82, 87, 91, 118, 130, 133, 211, 294, 328, 373, 377, 380, 381, 410, 412, 414, 431, 434, 445, 446, 450, 452, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 469, 471, 472, 474, 475, 480, 481, 482, 483, 486, 488, 489, 493, 494, 496, 518, 578], "display_length": [87, 91], "disrupt": [420, 421], "dissolv": 424, "dist": [330, 410], "distanc": [17, 18, 21, 22, 23, 24, 25, 27, 41, 46, 47, 127, 141, 142, 201, 248, 275, 303, 310, 336, 394, 437, 444, 457, 459, 469, 479, 480, 483, 512, 527, 554], "distance_gc": [17, 18, 21, 22, 24, 25, 27, 479], "distance_max": [46, 47, 336, 480], "distance_min": [47, 336, 480], "distance_refer": 480, "distibut": [134, 143], "distinct": [395, 396, 401, 495, 581], "distinguish": [288, 290, 404, 407, 450, 486], "distort": [394, 423], "distrib": [101, 134, 143, 455], "distribut": [13, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 45, 46, 83, 101, 108, 134, 135, 143, 144, 155, 190, 230, 233, 242, 248, 288, 290, 329, 330, 334, 373, 376, 378, 379, 380, 384, 385, 388, 393, 398, 399, 402, 405, 406, 409, 410, 413, 424, 433, 439, 445, 446, 450, 455, 457, 458, 461, 463, 467, 469, 471, 472, 483, 488, 491, 493, 504, 506, 518, 522, 523, 525, 531, 539, 554, 577, 579, 580], "divers": 404, "divid": [192, 198, 203, 401, 404, 457, 467, 490, 495, 496], "divis": 198, "djangoproject": 400, "djuvsland": 446, "dkvojcj6": 477, "dl3": [6, 16, 82, 83, 86, 88, 91, 96, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 179, 197, 198, 305, 306, 381, 386, 388, 389, 391, 400, 407, 412, 416, 422, 425, 427, 433, 442, 446, 452, 455, 456, 457, 460, 461, 463, 472, 473, 477, 485, 487, 490, 500, 502, 503, 514, 518, 520, 521, 522, 524, 525, 527, 528, 576, 577], "dl4": [99, 101, 102, 105, 109, 110, 118, 122, 126, 130, 133, 158, 179, 381, 386, 407, 412, 427, 474, 481, 482, 483, 518, 576, 577], "dl5": [118, 122, 126, 130, 133, 407, 446, 474, 482, 483, 576, 577], "dl6": [118, 122, 126, 130, 133, 482, 576, 577], "dm": [19, 20, 26, 427, 442, 479], "dm_exampl": 506, "dmfitfunct": 506, "dmpipe": 506, "dmprofil": [17, 21, 22, 23, 24, 25, 27, 479, 506], "dmsky": 506, "dn": [230, 242, 479, 577], "dnde": [19, 20, 26, 67, 123, 124, 125, 132, 134, 136, 137, 138, 139, 143, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 404, 431, 453, 455, 456, 465, 469, 480, 481, 482, 489, 494, 502, 504, 516], "dnde_cu": 280, "dnde_err": [123, 125, 134, 143, 516], "dnde_errn": [67, 123, 125, 134, 143, 480], "dnde_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "dnde_errp": [67, 123, 125, 134, 143, 480], "dnde_ref": [123, 125, 404], "dnde_scan_axi": [134, 143], "dnde_scan_valu": [123, 125], "dnde_ul": [67, 123, 125, 134, 143, 480, 504], "dnek9xvb": 482, "do": [13, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 90, 95, 100, 104, 124, 150, 161, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 331, 373, 381, 383, 385, 386, 387, 390, 394, 395, 396, 397, 398, 399, 400, 403, 404, 407, 409, 410, 412, 414, 425, 451, 453, 455, 456, 458, 459, 460, 461, 463, 465, 466, 467, 471, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 493, 494, 502, 503, 504, 514, 518, 525, 530, 575, 578, 581, 582], "do_someth": 380, "doc": [11, 13, 16, 83, 84, 87, 90, 91, 104, 124, 150, 192, 198, 201, 204, 211, 224, 247, 307, 344, 380, 381, 383, 385, 388, 394, 396, 397, 399, 400, 409, 416, 417, 419, 425, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 531, 542, 544, 550, 566, 572, 573, 577, 578, 582], "docker": [397, 410], "dockerfil": [388, 409, 410], "docstr": [380, 400, 406, 431, 432, 433, 435, 438, 444, 445, 446, 447, 463, 489], "doctest": [161, 368, 381], "document": [11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 315, 319, 329, 354, 367, 380, 382, 384, 385, 387, 388, 390, 394, 396, 397, 399, 401, 403, 405, 406, 410, 411, 416, 417, 418, 425, 427, 428, 431, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 486, 488, 493, 495, 496, 518, 529, 530, 531, 578], "doe": [16, 84, 87, 90, 91, 104, 124, 126, 130, 136, 153, 163, 166, 200, 239, 274, 286, 380, 381, 387, 388, 390, 392, 394, 395, 397, 399, 400, 403, 404, 406, 407, 422, 431, 442, 450, 451, 455, 458, 460, 463, 465, 466, 480, 483, 484, 485, 486, 487, 495, 506, 518, 527, 578], "doesn": [69, 380, 381, 385, 387, 388, 394, 397, 398, 400, 447, 493, 494, 578], "dof": 580, "doi": [135, 144, 406], "domain": [193, 194, 196, 202, 205, 206, 380, 394, 478], "domenico": 437, "dominguez": [226, 227, 403, 451, 544], "dominquez": 226, "don": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 150, 379, 380, 383, 385, 387, 388, 397, 407, 410, 452, 455, 460, 465, 472, 487, 489, 576, 578, 581, 582], "donath": [389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "done": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 123, 126, 151, 152, 158, 163, 166, 373, 380, 381, 383, 385, 386, 387, 391, 393, 394, 395, 396, 398, 399, 400, 403, 404, 406, 409, 412, 416, 440, 445, 452, 458, 463, 464, 468, 469, 471, 474, 475, 481, 482, 485, 486, 489, 490, 514, 518, 526, 527, 531, 563, 580, 582], "dos2unix": 380, "dot": [50, 51, 54, 109, 110, 193, 194, 196, 202, 205, 206, 445], "doubl": [27, 122, 136, 137, 294, 406, 438, 446], "doubling_dict": 294, "down": [50, 51, 54, 133, 385, 387, 390, 394, 399, 409, 423, 481, 494, 581], "downgrad": [192, 379], "download": [67, 94, 101, 125, 383, 388, 396, 397, 400, 407, 409, 411, 412, 414, 416, 420, 421, 423, 424, 431, 440, 441, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "downsampl": [102, 105, 109, 110, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 422, 428, 437, 447, 481, 482], "downsampled_energi": 481, "downsampling_factor": [133, 465], "downward": [288, 290], "dozen": 380, "dpp": 406, "dr": [17, 18, 21, 22, 24, 25, 27, 537], "dr1": [16, 65, 82, 83, 86, 88, 91, 96, 155, 173, 269, 305, 306, 381, 388, 400, 416, 449, 452, 455, 456, 461, 463, 473, 477, 485, 490, 500, 502, 503, 515, 518, 520, 521, 522, 524, 525, 527, 528, 532, 564], "dr2": [65, 269, 431, 449, 532, 564], "dr3": [65, 268, 449, 489, 532, 564], "dr4": [65, 446], "draft": [380, 384, 385, 408, 440], "drag": 383, "draw": [33, 194, 329, 393, 491], "drawback": [395, 399], "drawn": [329, 393], "drift": [85, 94, 95, 442], "drive": 396, "driven": [11, 15, 386, 396, 398, 400, 439, 498, 517], "drop": [52, 53, 102, 105, 109, 110, 123, 125, 130, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 225, 232, 273, 365, 384, 385, 396, 397, 402, 421, 424, 425, 428, 431, 438, 441, 486, 514], "ds9": [83, 192, 201, 204, 208, 224, 247, 380, 381, 394, 423, 487, 489, 531], "ds9parser": 394, "dss": 390, "dt": [87, 91], "dtime_t": 478, "dtype": [33, 38, 87, 91, 111, 116, 148, 150, 153, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 224, 247, 307, 380, 408, 457, 460, 469, 477, 480, 481, 482, 484, 485, 486, 493, 494, 504, 516], "duck": [16, 84, 90, 104, 124], "due": [59, 87, 91, 380, 408, 434, 449, 454, 455, 486, 491, 493, 498, 554, 578], "dummi": [109, 110, 394, 460, 518], "dump": [16, 84, 90, 104, 124, 396], "dumps_kwarg": [16, 84, 90, 104, 124], "duplic": [87, 91, 100, 151, 380, 381, 383, 386, 400, 401, 404, 428, 431, 447], "durat": [83, 86, 88, 94, 458, 467, 471, 473, 477, 493, 515, 518], "dure": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 52, 53, 83, 84, 85, 88, 90, 95, 102, 104, 105, 109, 110, 124, 170, 286, 381, 388, 392, 396, 399, 400, 402, 405, 406, 407, 408, 409, 410, 425, 428, 445, 446, 456, 457, 467, 472, 473, 477, 481, 485, 487, 491, 503, 514, 515, 577, 581], "dust": 226, "duti": 406, "dwarf": 506, "dx": [33, 311], "dy": [33, 311], "dynam": [377, 515], "dz": 311, "e": [13, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 50, 51, 54, 59, 67, 68, 82, 83, 84, 85, 86, 87, 90, 91, 95, 104, 114, 124, 125, 126, 141, 150, 151, 152, 153, 155, 179, 186, 192, 193, 194, 196, 198, 200, 202, 204, 205, 206, 211, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 288, 290, 294, 307, 309, 313, 339, 347, 358, 369, 370, 375, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 409, 410, 412, 413, 414, 416, 417, 419, 420, 421, 425, 431, 432, 433, 437, 439, 440, 441, 445, 447, 449, 451, 452, 453, 455, 456, 457, 458, 461, 464, 465, 466, 467, 468, 469, 471, 472, 473, 475, 477, 478, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 497, 498, 500, 502, 503, 504, 506, 513, 514, 515, 516, 518, 522, 523, 528, 529, 530, 535, 536, 537, 544, 545, 547, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 572, 575, 577, 578, 579, 580, 581, 582, 583], "e2dnd": [19, 20, 26, 123, 124, 125, 132, 136, 137, 138, 139, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 404, 431, 438, 450, 451, 453, 455, 456, 457, 464, 480, 482, 503, 504, 516, 518, 554], "e2dnde_err": [123, 125], "e2dnde_errn": [123, 125, 480], "e2dnde_errp": [123, 125, 480], "e2dnde_ref": [123, 125], "e2dnde_ul": [123, 125, 480], "e501": [19, 20, 150, 186, 197, 198, 204, 226, 377], "e9rhwq3": 477, "e_": [19, 20, 26, 50, 52, 53, 150, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 514, 520, 522, 523, 524, 545, 549, 557, 559, 560], "e_0": [228, 229, 230, 241, 242, 253, 254, 264, 267, 268, 269, 548, 549, 552, 554, 556, 559, 560, 561, 562], "e_b": 403, "e_cut": [67, 480], "e_cutoff": 554, "e_d": [253, 254], "e_edg": 428, "e_max": [67, 125, 404, 450, 455, 456, 457, 468, 472, 480, 481, 482, 483, 486, 491, 504, 516], "e_min": [67, 125, 404, 450, 455, 456, 457, 468, 472, 480, 481, 482, 483, 486, 491, 494, 504, 516], "e_peak": [230, 242], "e_reco": [111, 116, 150, 155, 475, 577], "e_ref": [67, 125, 404, 450, 455, 456, 472, 480, 482, 502, 504, 516], "e_refe_mine_maxdndednde_errpdnde_errndnde_ulsqrt_tsis_ul": 453, "e_refe_mine_maxdndednde_errtssqrt_tsnprednpred_excessstatstat_nullcountssuccess": 465, "e_sn": [43, 44, 52], "e_tru": [111, 116, 155, 475, 494], "each": [11, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 86, 87, 91, 92, 100, 102, 105, 108, 109, 110, 115, 117, 118, 120, 122, 123, 125, 126, 130, 132, 133, 135, 137, 138, 139, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 174, 175, 190, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 211, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 247, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 298, 305, 344, 369, 378, 380, 383, 385, 386, 388, 389, 390, 392, 393, 394, 395, 396, 397, 400, 401, 404, 406, 410, 411, 418, 425, 428, 439, 442, 445, 447, 452, 458, 459, 461, 463, 464, 465, 467, 468, 472, 473, 474, 475, 477, 479, 480, 481, 483, 484, 485, 486, 488, 489, 490, 491, 495, 496, 503, 507, 513, 514, 515, 518, 522, 523, 524, 530, 531, 538, 554, 555, 577, 578, 581, 582], "eager": 396, "earli": [394, 399, 400, 493], "earlier": [387, 406], "earth": [41, 88, 279, 494], "earth_azimuth_angl": [494, 504], "earthloc": [83, 85, 88, 90, 94, 97, 317, 407], "easi": [380, 381, 386, 391, 394, 395, 396, 399, 400, 404, 407, 425, 431, 439, 486, 487, 494, 515, 575, 576, 578, 582], "easier": [380, 386, 391, 399, 404, 439, 442, 493], "easiest": 413, "easili": [87, 91, 125, 386, 391, 392, 396, 407, 412, 413, 472, 473, 483, 484, 486, 494, 504, 578], "ebel": 459, "ebl": [226, 227, 276, 398, 403, 425, 428, 438, 445, 447, 449, 454, 489, 498, 532, 564], "ebl_data_builtin": [451, 544], "ebl_dominguez11": [227, 544], "ebl_franceschini": [227, 276], "ebl_franceschini_2017": 227, "ebl_saldana": 227, "eblabsorbtionnormspectralmodel": 403, "eblabsorptionnormspectralmodel": [258, 403, 428, 451, 489, 544], "ebltabl": 451, "ebound": [150, 198, 531], "ebreak": [218, 264, 545, 559], "ec": [475, 489, 531], "eccentr": [225, 234, 237, 535, 536, 537], "echo": 578, "eco": 406, "ecosystem": 407, "ecpl": [67, 80, 228, 229, 230, 286, 403, 437, 453, 480, 489], "ecpl_norm": 550, "ecsv": [59, 63, 125, 392], "ecut": [228, 267, 549, 560], "edelson": [136, 295, 298, 478], "edelson1988": [136, 298], "edelson2002": 295, "edg": [102, 105, 109, 110, 118, 120, 122, 126, 129, 130, 133, 146, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 173, 174, 179, 190, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 225, 373, 394, 404, 422, 428, 431, 450, 451, 455, 464, 465, 466, 467, 468, 478, 482, 484, 485, 486, 487, 494, 495, 502, 525, 535], "edge_max": 535, "edge_min": 535, "edge_width": [225, 488, 535], "edgecolor": [377, 455, 457, 459, 465, 466, 469, 475, 479, 527, 535, 536, 537], "edges_max": [195, 197, 198, 203, 486], "edges_min": [195, 197, 198, 203, 486], "edisp": [16, 82, 87, 88, 96, 102, 105, 106, 109, 110, 111, 116, 150, 151, 152, 155, 159, 173, 179, 180, 183, 184, 263, 305, 306, 381, 390, 391, 392, 393, 396, 426, 428, 431, 437, 438, 439, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 471, 473, 474, 477, 481, 485, 490, 493, 494, 495, 496, 502, 514, 522, 523, 577], "edisp2d": [152, 155, 381], "edisp2d_ax": 155, "edisp3d": 484, "edisp_": 514, "edisp_2d": [82, 87, 155, 493, 496], "edisp_3d": 484, "edisp_ev": 484, "edisp_kernel": [150, 481, 522], "edisp_kernel_map": [151, 495], "edisp_map": [103, 108, 151, 152, 484, 522], "edisp_new": 484, "edispkernel": [105, 111, 116, 151, 155, 183, 426, 522], "edispkernelmap": [102, 105, 106, 109, 110, 114, 152, 158, 159, 163, 166, 173, 180, 183, 427, 428, 459, 485, 494, 518, 522], "edispmap": [102, 103, 105, 108, 109, 110, 151, 158, 159, 163, 166, 173, 180, 183, 184, 392, 393, 401, 421, 424, 425, 426, 428, 431, 484, 514, 522], "edit": [381, 383, 385, 387, 388, 389, 396, 400, 409, 410, 413, 502, 578], "editor": [381, 406, 456, 502, 578], "editori": 406, "edm": 483, "edu": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 192, 201, 204, 211, 224, 244, 247, 279, 280, 289, 296, 298, 400, 483, 531], "eemin": 554, "eff": [153, 520, 523, 536, 537], "eff_area": 484, "effarea": 484, "effect": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 46, 82, 87, 88, 91, 105, 107, 152, 153, 179, 180, 185, 187, 188, 201, 224, 247, 370, 371, 380, 385, 390, 391, 393, 394, 404, 435, 437, 455, 467, 469, 472, 478, 491, 495, 496, 498, 502, 523, 531, 536, 537, 577], "effective_area": [159, 393, 493], "effective_livetim": 485, "effective_times_src": 485, "effectivearea3d": 484, "effectiveareat": [392, 419, 431, 435], "effectiveareatable2d": [88, 152, 159, 165, 187, 386, 435, 484, 493, 520], "effici": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 105, 110, 385, 391, 392, 393, 394, 395, 402, 453, 490, 523, 528, 580], "effort": [387, 389, 396, 397, 399, 400, 403, 422, 514], "eflux": [19, 20, 26, 123, 124, 125, 136, 137, 138, 139, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 404, 431, 469, 489, 516], "eflux_err": [123, 125, 404], "eflux_errn": [123, 125], "eflux_errp": [123, 125], "eflux_ref": [123, 125], "eflux_ul": [123, 125], "eg": [380, 447, 451, 463, 471, 474, 477, 481, 484, 488, 489, 491], "eg86btgn": 477, "egal": 493, "egg": 413, "einasto": [21, 506], "either": [67, 82, 87, 88, 91, 95, 110, 123, 125, 155, 170, 191, 192, 193, 194, 196, 198, 199, 200, 201, 202, 204, 205, 206, 239, 289, 307, 337, 369, 381, 383, 385, 387, 394, 396, 399, 402, 406, 412, 431, 445, 456, 463, 469, 474, 481, 483, 489, 491, 502, 514, 516, 518, 529, 531, 575, 578], "ej": [50, 52, 53], "eject": 52, "ejecta": 52, "el": [26, 479], "elabor": [406, 459], "elaps": [83, 389, 577], "electron": [50, 279, 493, 554], "element": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 92, 100, 102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 373, 398, 445, 447, 480, 486, 530], "elementtre": 493, "elev": 395, "elif": [380, 394, 407], "elli": [419, 432], "ellips": [225, 394, 531, 535], "ellipseannulusskyregion": [527, 531], "ellipseskyregion": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 452, 489, 527], "ellipsoid": 483, "ellipt": [531, 537], "elong": [421, 424, 425, 535, 536], "elpas": 445, "els": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 123, 125, 133, 200, 380, 383, 394, 397, 404, 407, 408, 410, 412, 414, 490, 578, 580], "elsewher": [115, 117], "email": [381, 383, 406, 410], "emax": [130, 252, 280, 460, 466, 557], "emax_fit": 475, "embryon": 396, "emce": [389, 397, 421, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "emerg": 390, "emeri": 440, "emin": [130, 252, 280, 460, 466, 557], "emin_fit": 475, "emiss": [52, 68, 137, 386, 391, 395, 455, 461, 463, 464, 467, 488, 493, 494, 514, 528, 554, 575], "emit": [82, 214, 215, 216, 217, 366, 380, 421, 439, 451, 523], "emitt": 455, "emmanoulopoulo": [303, 447], "emmanoulopoulos2010": 303, "emphas": 482, "emphasi": 483, "empir": 40, "emploi": 457, "empti": [92, 100, 102, 105, 109, 110, 141, 173, 193, 194, 196, 200, 202, 205, 206, 211, 247, 366, 388, 390, 422, 434, 463, 467, 468, 471, 474, 485, 486, 495, 507, 514, 527, 528, 531], "empty_dataset": 450, "empty_i": 474, "empty_map": [102, 105, 109, 110, 466, 485, 527], "emsembl": 93, "en": [34, 83, 87, 88, 91, 126, 186, 201, 211, 276, 307, 383, 400, 450, 458, 460, 463, 465, 471, 474, 483, 484, 487, 493, 515, 518, 529, 531], "enabl": [389, 392, 413, 422, 431, 440, 450, 458, 460, 463, 465, 471, 474, 493, 525], "encapsul": [204, 404, 529], "enclos": [206, 381, 452, 457, 483, 487], "enclosur": [82, 157, 447, 457, 484], "encod": [16, 84, 87, 90, 91, 104, 124], "encompass": [192, 529, 531], "encount": [167, 412, 413, 414, 415, 457, 461, 467, 474, 477, 496, 566, 578], "encourag": [380, 385, 406, 409, 439], "end": [52, 53, 86, 87, 91, 92, 94, 100, 102, 109, 123, 125, 133, 198, 239, 247, 385, 387, 389, 391, 392, 394, 395, 396, 397, 399, 400, 403, 432, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "end_po": [127, 340, 469], "endswith": 380, "energet": 467, "energi": [16, 19, 20, 26, 44, 50, 51, 52, 53, 58, 62, 63, 67, 71, 74, 75, 80, 82, 83, 88, 96, 100, 101, 102, 103, 105, 107, 108, 109, 110, 111, 112, 113, 114, 116, 118, 120, 122, 123, 125, 126, 127, 130, 132, 133, 135, 137, 138, 139, 140, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 165, 166, 173, 175, 179, 180, 182, 183, 184, 186, 187, 189, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 280, 282, 284, 375, 376, 380, 386, 389, 391, 392, 393, 394, 395, 396, 398, 399, 402, 404, 408, 412, 416, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 451, 452, 454, 455, 456, 458, 459, 460, 461, 463, 464, 465, 467, 469, 470, 471, 472, 473, 474, 475, 477, 480, 481, 482, 485, 486, 495, 496, 498, 502, 503, 504, 513, 514, 515, 518, 523, 525, 526, 527, 529, 530, 531, 538, 544, 550, 553, 555, 558, 563, 573, 576, 577, 579], "energy_axes_are_align": 100, "energy_axi": [19, 20, 26, 102, 105, 109, 110, 111, 112, 113, 116, 123, 125, 150, 151, 152, 155, 163, 166, 173, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 404, 450, 452, 455, 457, 458, 459, 461, 465, 467, 468, 473, 474, 477, 481, 484, 485, 486, 489, 494, 495, 503, 522, 525, 527, 528, 530, 531], "energy_axis_new": 481, "energy_axis_tru": [102, 105, 109, 110, 111, 112, 113, 114, 116, 150, 151, 152, 153, 155, 161, 163, 173, 381, 425, 450, 452, 455, 457, 458, 459, 461, 465, 467, 468, 471, 473, 474, 475, 477, 481, 484, 485, 494, 495, 503, 522, 525, 527, 528], "energy_bin": 396, "energy_bin_per_decade_max": [112, 113], "energy_bound": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 394, 431, 451, 453, 455, 457, 463, 464, 475, 479, 480, 483, 489, 494, 503, 504, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 563], "energy_cent": 273, "energy_column": 404, "energy_depend": 466, "energy_dependent_estim": [449, 466, 470], "energy_edg": [16, 118, 120, 122, 126, 127, 130, 133, 141, 142, 146, 198, 327, 404, 451, 455, 456, 459, 460, 461, 463, 464, 465, 466, 469, 472, 473, 474, 475, 482, 495, 502, 503, 516], "energy_estim": 495, "energy_flux": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 489, 504], "energy_flux_err": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "energy_flux_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "energy_index": 160, "energy_integr": 51, "energy_logspac": 399, "energy_mask": [191, 192, 201, 204, 427, 457, 463, 475, 481, 483, 487, 491], "energy_max": [19, 20, 26, 83, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 150, 191, 192, 198, 201, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 276, 282, 394, 396, 463, 468, 475, 477, 479, 481, 485, 489, 504], "energy_min": [19, 20, 26, 52, 53, 83, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 150, 191, 192, 198, 201, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 276, 282, 394, 396, 463, 468, 475, 477, 479, 481, 485, 489, 504], "energy_nam": [163, 166], "energy_nod": [403, 489], "energy_pow": [19, 20, 26, 125, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 284, 455, 463, 475, 483, 504], "energy_rang": [66, 67, 71, 74, 75, 80, 83, 100, 102, 105, 109, 110, 431, 481, 487, 561, 562], "energy_range_fit": [102, 105, 109, 110, 481], "energy_range_saf": [102, 105, 109, 110, 481], "energy_range_tot": [102, 105, 109, 110, 487], "energy_reco": [380, 471], "energy_ref": [123, 125], "energy_resolut": 439, "energy_saf": 396, "energy_tru": [16, 96, 102, 105, 109, 110, 111, 116, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 173, 180, 183, 191, 192, 198, 201, 204, 305, 306, 380, 381, 393, 445, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 471, 472, 473, 474, 475, 477, 481, 484, 485, 486, 487, 489, 490, 493, 494, 495, 502, 503, 522, 523, 525, 527, 528, 530, 531], "energy_true_axi": 150, "energyaxesconfig": 16, "energyaxisconfig": 16, "energybound": 423, "energydependentmorphologi": 466, "energydependentmorphologyestim": [446, 466], "energydependentmultigausspsf": [159, 419, 484, 493, 524], "energydependenttablepsf": [386, 401, 420, 431], "energydispers": [150, 151, 152, 155, 392, 426, 436, 439, 440], "energydispersion2d": [88, 150, 152, 159, 165, 183, 184, 381, 386, 431, 433, 438, 484, 493, 522], "energydispersion3d": 484, "energyoffsetarrai": 436, "energyrangeconfig": 16, "enforc": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 383, 407], "engin": [87, 91], "english": 518, "enhanc": [385, 389, 416], "enlarg": 528, "enough": [393, 395, 396, 455, 458, 461, 471, 472, 487, 525], "enrico": 396, "enrico_config": 396, "enrico_xml": 396, "enriqu": [388, 396, 400, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 439, 440, 441], "ensembl": 93, "ensur": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 179, 199, 286, 380, 386, 391, 392, 403, 407, 413, 433, 447, 450, 455, 473, 482, 487, 525, 530, 539], "enter": [215, 217, 224, 247, 416], "entir": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 102, 104, 105, 109, 110, 124, 180, 452, 463, 466, 478], "entri": [43, 44, 87, 91, 94, 120, 123, 126, 127, 130, 131, 133, 135, 136, 143, 144, 211, 212, 224, 247, 286, 347, 380, 381, 392, 400, 404, 407, 409, 431, 442, 447, 452, 456, 480, 483, 486, 489, 490, 518, 519, 531], "entry_point": 432, "enum": [95, 156, 322, 323], "enumer": [455, 467, 480, 483, 488, 491], "env": [383, 397, 409, 411, 412, 414, 415, 440, 578], "envelop": [393, 483, 503], "environ": [11, 82, 345, 379, 380, 383, 387, 388, 392, 397, 400, 409, 410, 412, 413, 414, 415, 416, 420, 421, 423, 439, 440, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 578], "envis": 389, "envvar": 11, "eosc": 406, "episod": 137, "epoch": 363, "epsilon": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "epsilon_": [102, 109, 514], "epsilon_k": [102, 109, 514], "epsmch": 483, "eq": 101, "eqcon": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "eqnarrai": 403, "equal": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 118, 122, 126, 130, 133, 150, 198, 380, 390, 393, 441, 455, 472, 473, 487, 491, 514, 530, 581], "equat": [27, 268, 269, 295, 540, 541, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 580, 581], "equatori": [95, 156, 192, 193, 194, 196, 199, 201, 204, 205, 206, 484], "equival": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 123, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 373, 381, 392, 393, 394, 403, 404, 445, 446, 455, 480, 485, 486, 487, 489, 493, 502, 514, 516, 518, 529, 530, 531, 578, 579, 580], "er": [26, 479], "era": 226, "ereco": [150, 484], "erf": [235, 535], "erg": [52, 53, 67, 450, 455, 480, 504, 511, 518], "erlangen": 399, "erod": 206, "eros": [204, 206], "err": 483, "errat": 380, "errn": [122, 126, 130, 131, 133, 211, 442, 580], "errn_2sigma": 580, "error": [11, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 68, 79, 84, 86, 90, 101, 102, 104, 105, 109, 110, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 136, 137, 138, 139, 143, 169, 195, 198, 203, 214, 216, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 288, 290, 294, 295, 296, 298, 303, 358, 380, 381, 394, 395, 396, 398, 403, 404, 407, 408, 421, 425, 427, 429, 431, 432, 434, 438, 439, 442, 444, 445, 446, 447, 451, 452, 453, 455, 456, 458, 459, 460, 463, 464, 465, 466, 468, 471, 472, 474, 475, 477, 478, 480, 482, 489, 490, 491, 493, 502, 503, 504, 506, 514, 516, 518, 536, 554, 563, 575, 578], "error_callback": 169, "errorbar": [83, 101, 102, 105, 109, 110, 198, 202, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 450, 477, 491], "errp": [122, 126, 130, 131, 133, 211, 442, 580], "errp_2sigma": 580, "escap": [380, 406], "especi": [87, 91, 137, 383, 387, 390, 394, 400, 401, 410, 431, 437, 452, 465, 473, 480, 486, 491, 493, 494], "essenti": [390, 392, 395, 425, 426, 427, 469, 486], "establish": [380, 393], "estim": [6, 19, 20, 26, 50, 72, 101, 105, 110, 112, 113, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 168, 174, 175, 176, 182, 191, 192, 201, 204, 206, 211, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 286, 293, 296, 301, 327, 373, 384, 386, 389, 393, 394, 395, 396, 399, 402, 408, 412, 421, 422, 425, 426, 427, 428, 431, 432, 433, 437, 438, 439, 440, 442, 445, 446, 447, 449, 450, 451, 455, 457, 461, 463, 464, 465, 468, 470, 473, 474, 475, 476, 481, 483, 487, 491, 492, 495, 498, 502, 503, 514, 518, 528, 575, 576, 577, 579, 581], "estimate_best_fit": [126, 127, 130, 131], "estimate_count": [126, 127, 130, 131], "estimate_energy_depend": 120, "estimate_errn_errp": [126, 127, 130, 131], "estimate_excess_map": 122, "estimate_exposure_reco_energi": 122, "estimate_fit_input_map": 133, "estimate_flux_default": 133, "estimate_flux_map": 133, "estimate_flux_point": [126, 127, 130], "estimate_kernel": [122, 133], "estimate_map": 118, "estimate_mask_default": [122, 133], "estimate_min_e2dnd": 132, "estimate_min_excess": 132, "estimate_npr": [126, 127, 130, 131], "estimate_npred_excess": [126, 127, 130], "estimate_pad_width": 133, "estimate_scan": [126, 127, 130, 131], "estimate_t": [126, 127, 130, 131], "estimate_time_bin_flux": 130, "estimate_ul": [126, 127, 130, 131], "estimator_result": [135, 143, 144, 475], "et": [26, 33, 59, 101, 136, 137, 153, 226, 295, 296, 298, 303, 390, 447, 459, 466, 478, 506, 577], "eta": [237, 238, 260, 537, 541, 568], "eta_": 50, "eta_b": 50, "eta_rang": [537, 541], "etc": [105, 110, 123, 380, 385, 386, 390, 391, 392, 395, 396, 400, 401, 404, 406, 407, 428, 456, 458, 463, 471, 472, 474, 475, 477, 481, 486, 489, 491, 494, 502, 514, 527], "etru": 484, "eu": 400, "euclidean": 305, "europ": 406, "ev": [482, 484, 518, 554], "ev2": 484, "evalu": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 87, 91, 102, 105, 108, 109, 110, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 180, 186, 201, 212, 213, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 320, 380, 385, 389, 395, 398, 399, 402, 403, 404, 408, 420, 421, 422, 424, 427, 431, 436, 437, 439, 440, 441, 442, 443, 444, 445, 446, 447, 467, 468, 475, 484, 489, 491, 493, 494, 514, 536, 537, 544, 577, 580], "evaluate_contain": [154, 162, 164, 433], "evaluate_direct": [154, 162, 164], "evaluate_energy_flux": [253, 254], "evaluate_error": [19, 20, 26, 125, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 398], "evaluate_geom": [220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275, 446, 489, 537], "evaluate_integr": [252, 253, 254], "evaluate_paramet": [154, 162, 164], "evaluation_bin_size_min": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "evaluation_radiu": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 391, 392, 403, 489], "evaluation_region": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "even": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 134, 143, 204, 215, 217, 380, 383, 385, 387, 388, 394, 397, 398, 406, 407, 423, 472, 475, 482, 483, 485, 486, 487, 488, 489, 502, 514, 516, 540, 541, 578], "event": [82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 103, 104, 108, 114, 122, 132, 152, 163, 166, 167, 174, 182, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 337, 380, 381, 384, 386, 390, 392, 394, 395, 396, 407, 412, 416, 423, 424, 425, 427, 431, 432, 433, 438, 439, 440, 441, 442, 445, 446, 447, 449, 452, 455, 456, 457, 461, 463, 464, 470, 474, 485, 495, 498, 500, 502, 503, 518, 526, 527, 528, 576, 577, 580], "event_3fhl": 504, "event_class": [84, 494, 504], "event_det_coord": [103, 108], "event_fil": 88, "event_filt": 89, "event_filter_typ": 89, "event_id": [393, 493, 494, 504, 515], "event_list": [83, 380, 381, 393], "event_list_meta": [103, 108, 426], "event_sampl": [449, 467, 470], "event_sampling_nrg_depend_model": [449, 468, 470], "event_typ": [104, 494, 504], "eventlist": [84, 88, 103, 108, 182, 193, 194, 196, 202, 205, 206, 380, 381, 386, 393, 394, 395, 407, 416, 421, 428, 433, 435, 436, 437, 439, 440, 467, 468, 475, 486, 493, 494, 504, 515, 518, 527], "eventlistbas": 89, "eventlistdataset": 440, "eventlistmetadata": [83, 407], "events2": 83, "events_": 467, "events_0001": 467, "events_1": 515, "events_2": 515, "events_3fhl": 504, "events_bkg": 393, "events_gc_3fhl": 504, "events_list": 393, "events_path": [82, 467], "events_src": 393, "events_tot": 393, "events_vela": 475, "eventu": [380, 385, 396, 399, 400, 416, 489], "ever": 581, "everi": [192, 194, 206, 275, 380, 383, 388, 389, 390, 392, 396, 405, 407, 410, 452, 455, 486, 503, 578], "everyon": 385, "everyth": [380, 398, 399, 518], "everywher": [380, 394, 399, 400, 420], "evid": [137, 480], "evolut": [50, 52, 53, 226, 386, 400, 449, 470, 498, 511, 512, 532], "evolv": [28, 29, 30, 35, 36, 39, 40, 50, 52, 53, 226, 397, 400, 407, 468, 484], "evt_sampl": 467, "ex": [11, 486, 488, 489], "exact": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 398, 473, 486, 494], "exactli": [118, 122, 126, 130, 133, 198, 375, 455, 457, 473, 475, 487, 491, 494, 514, 531], "exagger": 371, "examin": [406, 522], "exampl": [11, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 66, 67, 80, 82, 83, 85, 86, 87, 88, 89, 91, 94, 96, 99, 101, 102, 105, 109, 110, 111, 115, 116, 117, 118, 120, 122, 123, 125, 127, 129, 130, 131, 132, 133, 137, 141, 142, 145, 146, 148, 150, 152, 153, 154, 155, 161, 163, 166, 173, 176, 178, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 215, 217, 239, 245, 276, 280, 286, 289, 305, 306, 327, 331, 337, 347, 359, 360, 365, 368, 370, 371, 373, 375, 377, 380, 381, 383, 385, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 403, 406, 407, 408, 412, 413, 414, 416, 420, 422, 425, 428, 431, 432, 433, 436, 438, 439, 440, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509, 515, 518, 520, 521, 522, 524, 529, 531, 532, 533, 543, 564, 572, 573, 574, 575, 578, 580, 582, 583], "example_cub": 486, "example_cube_fgst": 486, "exce": [112, 113], "except": [67, 69, 80, 87, 91, 102, 105, 109, 110, 169, 193, 194, 196, 202, 205, 206, 307, 377, 380, 391, 395, 399, 484, 488, 531], "excerpt": 496, "excess": [15, 67, 72, 102, 105, 109, 110, 119, 122, 123, 125, 126, 127, 130, 132, 135, 138, 139, 143, 144, 173, 288, 290, 295, 296, 378, 392, 395, 427, 428, 434, 439, 446, 447, 450, 451, 455, 456, 458, 459, 460, 463, 465, 469, 471, 474, 475, 480, 481, 482, 485, 487, 488, 495, 502, 503, 516, 518], "excess_estim": 495, "excess_estimator_integr": 495, "excess_integr": 495, "excess_map": [16, 456, 460, 461, 463, 502], "excess_map_estim": 475, "excess_matching_signific": [430, 440], "excess_min": 146, "excess_r": 481, "excessestim": 404, "excessmapconfig": 16, "excessmapestim": [119, 141, 142, 143, 144, 404, 427, 428, 429, 431, 434, 444, 446, 447, 461, 463, 475, 482, 487, 495, 516], "excesspointsestim": 404, "excessprofileestim": [404, 428], "exchang": 394, "exclud": [16, 84, 90, 101, 102, 104, 105, 109, 110, 124, 129, 174, 176, 215, 217, 224, 247, 386, 443, 463, 485, 487, 527, 528], "exclude_default": [16, 84, 90, 104, 124], "exclude_non": [16, 84, 90, 104, 124], "exclude_unset": [16, 84, 90, 104, 124], "exclus": [16, 83, 168, 170, 175, 176, 177, 178, 181, 192, 204, 386, 394, 396, 427, 429, 447, 452, 460, 463, 485, 525, 527], "exclusion_mask": [168, 170, 175, 176, 177, 178, 181, 455, 461, 465, 485, 487, 503, 525, 527, 528], "exclusion_mask_2d": 485, "exclusion_mask_crab": [456, 502], "exclusion_radiu": 487, "exclusion_region": 455, "exclusionmask": 437, "execut": [11, 122, 126, 130, 131, 133, 380, 381, 383, 385, 387, 388, 389, 395, 396, 400, 410, 411, 412, 413, 414, 415, 416, 425, 433, 439, 449, 454, 462, 470, 476, 485, 486, 492, 494, 497, 498, 499, 501, 504, 505, 533, 543, 564, 574, 576], "exercis": [383, 396, 400, 406], "exhibit": 466, "exist": [11, 15, 16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 88, 91, 99, 100, 101, 102, 105, 107, 109, 110, 123, 125, 151, 152, 158, 163, 166, 178, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 212, 224, 239, 247, 271, 272, 273, 275, 349, 364, 380, 383, 385, 388, 389, 391, 392, 393, 394, 396, 397, 399, 400, 401, 403, 404, 406, 407, 412, 413, 416, 417, 420, 424, 425, 439, 440, 442, 445, 459, 461, 481, 486, 487, 489, 490, 494, 515, 530, 531, 579], "exist_ok": [455, 456, 463, 464, 467, 502, 503], "exit": [11, 15, 87, 91, 215, 217, 224, 247, 421, 542, 578], "exot": 397, "exp": [21, 28, 29, 30, 31, 32, 35, 36, 39, 40, 153, 231, 235, 242, 253, 254, 267, 381, 403, 474, 489, 536, 537, 544, 548, 549, 550, 551, 560, 561, 562, 566, 567, 568, 581], "expand": [130, 345, 390, 431], "expand_map": 130, "expans": [50, 52, 53], "expcutoffpowerlaw": 550, "expcutoffpowerlaw3fglspectralmodel": [258, 403, 453, 489, 549], "expcutoffpowerlawnormspectralmodel": [230, 258, 446, 489, 550], "expcutoffpowerlawspectralmodel": [19, 20, 26, 80, 218, 219, 222, 226, 228, 229, 235, 241, 242, 244, 248, 250, 252, 253, 254, 258, 259, 264, 266, 267, 268, 269, 272, 276, 403, 453, 455, 463, 489, 548, 554], "expdecai": [231, 449, 532, 574], "expdecay_model": [467, 566], "expdecaytemporalmodel": [270, 403, 427, 431, 467, 474, 489, 566], "expect": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 105, 108, 110, 123, 178, 183, 184, 189, 204, 288, 289, 290, 291, 293, 297, 304, 337, 380, 385, 393, 395, 396, 397, 400, 405, 407, 450, 452, 457, 458, 459, 461, 467, 468, 472, 478, 479, 483, 486, 487, 491, 494, 496, 514, 516, 579, 580, 581], "expens": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 455, 468], "experi": [380, 383, 385, 389, 391, 395, 408, 410, 439, 506, 577, 582], "experienc": [389, 415], "experiment": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 396, 578], "expert": 400, "expertis": 397, "expfactor": [268, 269, 561, 562], "expir": 393, "explain": [87, 91, 380, 383, 385, 394, 397, 399, 400, 406, 410, 412, 414, 425, 431, 450, 455, 457, 479, 483, 487, 489, 493, 518, 576, 578], "explan": [118, 122, 126, 130, 133, 381, 385, 417, 478, 582], "explicit": [87, 91, 192, 194, 380, 381, 396, 398, 404, 530, 582], "explicitli": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 307, 390, 402, 411, 421, 468, 488, 516, 530, 582], "explor": [193, 194, 196, 202, 205, 206, 388, 396, 416, 449, 455, 460, 463, 466, 469, 470, 472, 473, 477, 478, 480, 481, 488, 495, 496, 502, 504, 518, 527], "explos": 52, "expomap": 393, "expon": [403, 489], "exponenti": [28, 30, 36, 39, 40, 77, 228, 229, 230, 231, 267, 268, 269, 381, 391, 425, 449, 463, 467, 474, 532, 564], "exponentialcutoffpowerlaw": 554, "export": [84, 87, 90, 91, 102, 104, 105, 123, 124, 125, 383, 404, 407, 412, 414, 425, 435, 442, 443, 446, 456, 489, 495, 496, 502], "expos": [6, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 389, 394, 395, 396, 399, 400, 444, 446, 447, 486, 498, 516, 517, 576], "exposur": [16, 83, 88, 102, 105, 106, 108, 109, 110, 122, 133, 140, 151, 152, 158, 161, 163, 166, 168, 173, 180, 183, 184, 185, 187, 188, 189, 263, 299, 302, 304, 386, 389, 390, 391, 392, 393, 404, 423, 428, 436, 438, 439, 440, 442, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 471, 473, 474, 477, 481, 485, 486, 487, 495, 502, 503, 514, 523, 526, 531, 580], "exposure_geom": 152, "exposure_hdu": [151, 152, 158, 163, 166], "exposure_hdu_band": [151, 152, 158, 163, 166], "exposure_hpx": 494, "exposure_map": [151, 152, 158, 163, 166, 183, 184, 189, 484], "exposure_max": 481, "exposure_min": 481, "exposure_tim": 393, "express": [122, 137, 288, 290, 391, 403, 404, 446, 461, 483, 484, 489, 491, 514, 530, 537, 579, 580, 581], "exptest": 437, "extend": [15, 19, 20, 26, 69, 72, 87, 91, 92, 100, 168, 195, 198, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 289, 387, 391, 392, 393, 394, 400, 402, 403, 404, 407, 412, 424, 426, 431, 449, 454, 455, 459, 468, 472, 480, 486, 487, 488, 489, 494, 498, 526, 527], "extended_archive_v18": 542, "extended_source_spectral_analysi": [449, 452, 454], "extens": [41, 150, 193, 194, 196, 198, 205, 206, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 265, 271, 275, 382, 385, 386, 387, 388, 389, 391, 393, 395, 396, 397, 398, 399, 400, 409, 410, 434, 466, 467, 468, 489, 578], "extent": [204, 224, 247, 394, 459, 489], "extern": [114, 381, 406, 432, 436, 437, 440, 493, 518], "extnam": 484, "extra": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 83, 84, 90, 101, 104, 124, 191, 192, 197, 201, 202, 204, 210, 211, 213, 271, 272, 305, 379, 381, 387, 388, 394, 396, 397, 400, 406, 407, 436, 439, 440, 451, 486, 487, 518, 531], "extra_term": 304, "extract": [16, 84, 90, 100, 102, 104, 105, 109, 110, 123, 124, 125, 130, 151, 152, 158, 163, 166, 169, 174, 175, 180, 182, 190, 193, 194, 195, 196, 198, 203, 204, 205, 206, 273, 380, 390, 395, 404, 406, 407, 433, 434, 445, 446, 450, 452, 455, 456, 457, 458, 463, 464, 467, 468, 469, 471, 477, 481, 482, 486, 502, 514, 522, 527], "extragalact": [226, 451, 493], "extrapol": [101, 147, 148, 149, 173, 193, 194, 196, 202, 205, 206, 226, 276, 319, 320, 431, 436, 438, 439, 447, 484, 486, 493, 494, 530], "extras_requir": 397, "extrem": [380, 407, 486, 537], "f": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 133, 146, 200, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 306, 307, 334, 380, 383, 397, 402, 403, 408, 411, 412, 414, 433, 442, 450, 452, 455, 456, 458, 464, 465, 466, 467, 468, 473, 474, 475, 477, 479, 480, 483, 485, 487, 489, 490, 491, 494, 495, 500, 502, 503, 504, 512, 527, 544, 554, 565, 566, 567, 568, 569, 570, 571, 578, 579, 580], "f0": [274, 572], "f06": 48, "f06b": [49, 508], "f06p": 49, "f1": [274, 572], "f2": [274, 572], "f4": [148, 153, 457, 481, 484, 486, 493, 494], "f8": [484, 494], "f_": [294, 296, 306, 514], "f_0": [252, 557], "f_dead": [83, 88], "f_i": 294, "f_max": 478, "f_max_err": 478, "f_mean": 478, "f_mean_err": 478, "f_min": 478, "f_min_err": 478, "f_pp": 295, "f_var": 295, "fabio": [393, 398, 421, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 438, 440, 442, 444, 445, 446, 447], "face": [385, 388], "facecolor": [377, 451, 455, 457, 465, 466, 469, 475, 479, 535, 536, 537], "facil": 405, "fact": [19, 20, 97, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 406, 452, 531], "facto": 406, "factor": [19, 20, 23, 102, 103, 105, 108, 109, 110, 118, 122, 123, 151, 152, 154, 158, 160, 161, 162, 163, 164, 166, 173, 180, 186, 190, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 209, 214, 215, 216, 217, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 249, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 267, 268, 269, 271, 274, 275, 277, 289, 380, 393, 395, 427, 447, 450, 458, 459, 460, 463, 465, 469, 471, 474, 481, 482, 485, 489, 493, 514, 531, 544], "factor1": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275], "factor_max": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275], "factor_min": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275], "factori": [193, 194, 205, 206, 394, 399, 403, 529, 531], "factoris": [263, 403, 489, 575], "fail": [16, 84, 90, 104, 124, 211, 381, 383, 394, 409, 410, 434, 447, 464, 494], "failur": [442, 445], "faint": 579, "fair": [380, 406], "fair4r": [380, 406], "fake": [102, 105, 109, 110, 392, 393, 423, 457, 458, 471, 474, 491], "fall": [77, 137, 176, 203, 224, 247, 380, 387, 389, 390, 397, 440, 441, 478], "fallback": 380, "fals": [16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 82, 83, 84, 86, 87, 88, 90, 91, 96, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 115, 117, 122, 123, 124, 125, 126, 130, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 180, 183, 184, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 212, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 289, 307, 320, 337, 343, 346, 348, 349, 377, 380, 394, 396, 403, 408, 439, 440, 446, 450, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 473, 474, 477, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 494, 502, 503, 504, 515, 518, 525, 527, 528, 542, 554, 563], "falsifi": 491, "famili": 406, "familiar": [397, 398, 486, 487, 504], "fanci": [380, 475], "far": [388, 393, 395, 397, 401, 404, 407, 416, 431, 467, 506], "fashion": [395, 400], "fast": [380, 394, 398, 483], "faster": [87, 91, 134, 143, 193, 194, 196, 202, 205, 206, 358, 446, 459], "faucher": [31, 33, 37, 39, 45], "faucherkaspi2006": [28, 29, 31, 35, 36, 39, 40, 48], "faucherkaspi2006velocitybimod": 49, "faucherkaspi2006velocitymaxwellian": 49, "faucherspir": 508, "favour": [385, 393, 408, 491], "favourit": 465, "fc": [489, 531], "fcluster": [305, 490], "fcluster_kwarg": [305, 490], "fcn": 483, "fdx": 380, "fe": 279, "feasibl": [394, 399, 458, 471, 481], "featur": [6, 13, 87, 91, 96, 118, 141, 305, 306, 370, 371, 380, 383, 387, 389, 390, 391, 392, 394, 396, 397, 402, 403, 404, 406, 407, 408, 413, 418, 421, 422, 423, 424, 425, 427, 428, 431, 435, 438, 439, 440, 441, 478, 486, 487, 489, 490, 516, 554], "feature_irf": 490, "features_irf": [96, 305, 306, 490], "feb": [386, 387, 397, 401, 416, 418], "februari": 418, "fed": 457, "feedback": [383, 385, 389, 394, 396, 397, 400, 401, 403, 409, 439, 484, 518], "feedstock": [409, 410], "feel": [390, 578], "feijen": [444, 445, 446, 447], "feldman": [422, 428, 436, 438, 577], "feldman1998": [577, 580], "fellowship": 406, "felt": 380, "fermi": [55, 58, 60, 61, 62, 64, 65, 69, 71, 74, 75, 77, 78, 83, 86, 126, 127, 129, 133, 193, 194, 196, 202, 203, 205, 206, 226, 279, 281, 286, 387, 388, 389, 390, 392, 393, 396, 397, 400, 410, 412, 417, 419, 420, 423, 425, 428, 432, 435, 436, 437, 438, 439, 440, 447, 449, 451, 453, 459, 467, 469, 480, 486, 487, 488, 489, 497, 498, 504, 506, 515, 518, 523, 542, 552, 557, 575, 582], "fermi_3fhl": [83, 193, 194, 196, 202, 205, 206, 488, 494, 504], "fermi_3fhl_events_select": [83, 494], "fermi_3fhl_exposure_cube_hpx": 494, "fermi_3fhl_psf_gc": 494, "fermi_bkg_model": 488, "fermi_ct": 129, "fermi_dataset": [286, 488, 494], "fermi_lat": [400, 440, 449, 494, 497], "fermi_model": 494, "fermi_prof": 127, "fermi_ts_imag": 381, "fermilat": 451, "fermipi": [387, 389, 392, 396, 400, 404, 437, 439, 494, 506], "fermitool": 396, "fetch": [15, 380, 388, 409, 419, 432, 502, 578], "few": [82, 83, 87, 88, 91, 379, 380, 381, 383, 385, 386, 387, 388, 390, 392, 394, 398, 400, 405, 409, 410, 416, 430, 441, 443, 446, 447, 452, 456, 461, 463, 465, 480, 482, 483, 486, 493, 502, 503, 527, 531, 583], "fewer": [394, 400], "ff": 406, "fft": 206, "fftconvolv": 206, "fgl": [203, 487], "fgst": [192, 193, 194, 196, 197, 198, 204, 205, 206, 486], "fhit": 495, "fidalgo": [390, 395, 420, 440, 441], "fiduci": 486, "field": [16, 42, 50, 51, 54, 83, 84, 87, 90, 91, 104, 124, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 170, 232, 248, 309, 313, 367, 380, 394, 406, 407, 416, 421, 426, 433, 440, 455, 457, 461, 463, 465, 467, 484, 485, 487, 493, 494, 518, 520, 521, 522, 523, 524, 525, 527, 554, 577], "fieldinfo": [16, 84, 90, 104, 124], "fig": [206, 368, 450, 452, 455, 456, 457, 458, 459, 461, 463, 464, 465, 466, 469, 472, 474, 475, 479, 483, 487, 491, 503, 527, 528, 537, 541, 544, 576], "figsiz": [88, 102, 105, 109, 110, 128, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 193, 194, 196, 202, 205, 206, 209, 368, 452, 455, 458, 459, 461, 463, 464, 465, 466, 472, 473, 474, 475, 477, 478, 479, 480, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 496, 503, 527, 537, 541, 544], "figur": [88, 102, 105, 109, 110, 128, 147, 148, 150, 151, 152, 153, 154, 160, 161, 162, 163, 164, 166, 193, 194, 196, 202, 205, 206, 209, 358, 367, 368, 374, 380, 381, 385, 400, 410, 451, 455, 459, 463, 465, 466, 467, 469, 472, 473, 478, 479, 480, 481, 483, 485, 486, 488, 489, 493, 494, 495, 496, 578], "file": [11, 15, 16, 26, 65, 66, 67, 82, 83, 85, 86, 87, 88, 91, 93, 94, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 174, 179, 193, 194, 196, 200, 202, 205, 206, 212, 224, 226, 239, 247, 271, 272, 273, 274, 275, 276, 315, 343, 346, 349, 379, 380, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 396, 397, 399, 400, 401, 403, 404, 407, 408, 409, 410, 411, 412, 414, 416, 424, 425, 431, 433, 435, 437, 438, 439, 440, 442, 443, 445, 446, 447, 449, 450, 454, 457, 458, 462, 463, 465, 467, 468, 470, 471, 474, 476, 480, 481, 485, 486, 487, 488, 489, 492, 495, 496, 497, 498, 499, 501, 504, 505, 506, 517, 518, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 582], "file_dir": 315, "file_model": 467, "file_nam": 315, "filemod": [16, 456, 460, 461, 463, 502, 578], "filenam": [11, 16, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 82, 83, 85, 86, 87, 91, 94, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 127, 129, 131, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 193, 194, 196, 200, 202, 205, 206, 224, 226, 239, 247, 271, 272, 273, 274, 275, 276, 281, 283, 285, 286, 315, 346, 349, 359, 380, 381, 385, 428, 447, 455, 456, 460, 461, 463, 464, 468, 469, 480, 481, 482, 486, 487, 488, 489, 493, 494, 502, 503, 504, 515, 518, 520, 521, 522, 524, 542, 544, 572, 573, 578], "filename_1": 515, "filename_2": 515, "filename_arf": 107, "filename_bkg": 107, "filename_model": [100, 123, 286, 488, 494], "filename_rmf": 107, "filepath": 16, "fill": [16, 84, 85, 87, 90, 91, 102, 104, 105, 108, 109, 110, 124, 150, 161, 192, 193, 194, 196, 202, 204, 205, 206, 276, 380, 388, 389, 393, 396, 400, 406, 409, 410, 425, 432, 439, 442, 452, 467, 468, 480, 484, 485, 487, 494, 503, 530], "fill_between": [19, 20, 26, 128, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 475], "fill_by_coord": [161, 193, 194, 196, 202, 205, 206, 486, 494, 530], "fill_by_idx": [193, 194, 196, 202, 205, 206, 530], "fill_by_pix": [193, 194, 196, 202, 205, 206, 530], "fill_ev": [193, 194, 196, 202, 205, 206, 434, 445, 457, 486, 494, 500], "fill_nan": 194, "fill_valu": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 271, 272, 275, 380, 484, 486], "filled_t": [87, 91], "filter": [88, 89, 386, 390, 392, 394, 395, 440, 441, 444, 477, 487, 490, 498, 503, 504], "filter_ev": 89, "filter_gti": 89, "filter_success_nan": [123, 125], "filtered_ev": 89, "filtered_gti": 89, "filterwarn": [474, 475], "final": [130, 289, 380, 381, 387, 388, 390, 393, 394, 396, 397, 399, 401, 403, 405, 406, 410, 425, 426, 427, 450, 451, 452, 453, 455, 463, 465, 467, 468, 472, 473, 475, 479, 481, 483, 485, 487, 490, 494, 495, 498, 502, 503, 504, 514, 515, 516], "finalis": 384, "find": [19, 20, 26, 133, 141, 142, 150, 176, 177, 181, 208, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 299, 380, 385, 391, 393, 399, 409, 410, 411, 431, 433, 439, 440, 445, 446, 453, 455, 459, 480, 481, 486, 489, 493, 496, 504, 578, 580, 581], "find_peak": [142, 440, 459, 465], "find_peaks_in_flux_map": 459, "find_root": 431, "finder": [141, 176, 177, 431, 440, 459], "fine": [287, 320, 393, 461, 481, 494, 531, 578], "finer": [467, 481, 531], "fingertip": 379, "finish": [383, 387, 389, 409, 437, 439], "finit": [100, 102, 105, 109, 110, 151, 152, 158, 163, 179, 194, 202, 206, 273, 398], "fink": [226, 227, 451, 544], "fir": 554, "firefox": [87, 91], "first": [57, 77, 87, 91, 92, 94, 100, 102, 105, 109, 110, 123, 125, 127, 134, 136, 141, 143, 150, 167, 176, 193, 194, 195, 198, 202, 203, 224, 247, 280, 298, 340, 369, 380, 381, 383, 385, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 404, 405, 406, 410, 411, 416, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 438, 440, 441, 442, 443, 445, 447, 450, 452, 453, 455, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 503, 504, 515, 527, 530, 578], "firstli": [466, 467, 482], "firstnam": [87, 91], "fit": [6, 15, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 57, 58, 60, 61, 62, 64, 65, 66, 67, 71, 74, 75, 77, 78, 82, 83, 84, 85, 86, 87, 88, 90, 91, 94, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 133, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 170, 173, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 203, 204, 205, 206, 210, 212, 213, 214, 216, 218, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 273, 274, 275, 276, 286, 287, 288, 290, 291, 292, 297, 300, 304, 315, 316, 317, 362, 363, 366, 368, 373, 375, 379, 380, 381, 386, 390, 391, 392, 393, 396, 398, 399, 400, 401, 402, 403, 404, 407, 408, 412, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 436, 438, 439, 440, 441, 443, 445, 446, 447, 449, 450, 454, 458, 459, 461, 462, 466, 467, 468, 469, 470, 472, 473, 475, 476, 477, 478, 480, 481, 482, 484, 485, 486, 488, 489, 490, 492, 493, 495, 496, 498, 500, 504, 514, 515, 516, 517, 518, 520, 521, 522, 524, 525, 526, 527, 535, 542, 544, 554, 572, 573, 576, 577, 582], "fit2": 488, "fit_covari": [456, 502], "fit_deriv": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "fit_joint": [452, 455, 463, 464], "fit_prior": 491, "fit_rang": [16, 456, 460, 461, 463, 502], "fit_result": [211, 286, 456, 477, 482, 502], "fit_results_nul": 286, "fit_scipi": 483, "fit_sherpa": 483, "fit_stat_scan": 395, "fit_statist": [380, 461], "fit_statistics_cython": 410, "fitconfig": 16, "fitmc": 398, "fitresult": [211, 433, 445, 447, 483, 503], "fitsfixedwarn": [459, 542], "fitsonli": 493, "fitspectrum": 435, "fitstepresult": [210, 213], "fittabl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49], "fittable1dmodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "fitter": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 438, 439, 453], "five": 504, "fix": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 85, 88, 94, 95, 106, 107, 133, 145, 163, 165, 180, 211, 249, 250, 255, 275, 383, 385, 386, 387, 391, 392, 395, 397, 402, 404, 405, 406, 409, 410, 412, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 434, 435, 436, 437, 438, 439, 440, 441, 443, 444, 450, 457, 458, 460, 461, 463, 464, 467, 471, 473, 474, 477, 483, 484, 485, 488, 489, 490, 502, 528, 530, 538, 555], "fixed_altaz": 85, "fixed_bin": 145, "fixed_icr": [85, 163, 450, 458, 467, 468, 471, 474], "fixed_offset": [96, 179, 431], "fixed_r_in": 168, "fixed_width": 168, "fixedpointinginfo": [88, 163, 186, 445, 446, 450, 458, 467, 468, 471, 474], "fk5": [531, 542], "flag": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 103, 108, 123, 125, 126, 127, 130, 131, 191, 192, 193, 194, 196, 198, 199, 201, 202, 204, 205, 206, 210, 211, 212, 213, 452, 463, 467, 480, 489], "flake8": 383, "flare": [137, 294, 412, 425, 426, 449, 472, 474, 476, 477, 478, 498, 516, 527], "flask": 439, "flat": [125, 137, 155, 165, 191, 192, 197, 199, 201, 204, 207, 208, 249, 391, 404], "flatten": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 191, 192, 199, 201, 204, 478], "fledg": 408, "flexibl": [82, 331, 380, 385, 389, 390, 391, 394, 396, 400, 401, 407, 486, 518, 575], "float": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 50, 51, 83, 87, 88, 90, 91, 96, 102, 105, 109, 110, 114, 118, 122, 124, 125, 128, 131, 132, 133, 141, 142, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 168, 170, 179, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 207, 208, 211, 213, 214, 216, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 278, 286, 287, 288, 289, 290, 293, 297, 299, 307, 318, 325, 334, 336, 369, 370, 371, 485, 491, 493, 494, 578, 582], "float32": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 460, 465, 486], "float64": [87, 91, 111, 116, 150, 153, 380, 408, 416, 482, 484, 486, 516, 578], "float64float64float64": 465, "float64float64float64float64float64float64float64float32bool": 453, "float64float64float64float64float64float64float64float64": 465, "float_a": [87, 91], "flow": [407, 576, 577], "fluctuat": [288, 290, 404, 458, 471, 491, 580], "flux": [15, 19, 20, 26, 41, 46, 67, 71, 73, 74, 75, 77, 78, 79, 80, 83, 88, 100, 101, 102, 105, 109, 110, 118, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 218, 219, 220, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 262, 263, 264, 266, 267, 268, 269, 272, 274, 276, 277, 279, 280, 284, 293, 294, 295, 296, 298, 303, 384, 392, 393, 395, 396, 398, 400, 401, 403, 412, 419, 422, 424, 425, 427, 431, 433, 437, 438, 439, 441, 446, 447, 449, 454, 457, 459, 463, 465, 467, 468, 470, 472, 473, 474, 475, 477, 478, 481, 486, 489, 494, 498, 512, 514, 518, 523, 532, 539, 554, 575, 576, 577, 580], "flux1": 298, "flux2": 298, "flux_err": [19, 20, 26, 123, 125, 133, 142, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 295, 296, 303, 459, 472, 478], "flux_err1": 298, "flux_err2": 298, "flux_errn": [123, 125, 480], "flux_errp": [123, 125, 480], "flux_int_cu": 280, "flux_map": [123, 125, 134, 143, 404, 479], "flux_metadata_fits_kei": 124, "flux_per_omega": 489, "flux_point": [16, 66, 67, 71, 73, 74, 75, 77, 78, 79, 80, 98, 101, 123, 125, 126, 392, 450, 453, 455, 456, 460, 461, 463, 465, 475, 480, 481, 502, 503, 504], "flux_point_dataset": 392, "flux_points_at_tim": 404, "flux_points_ctb_37b": 125, "flux_points_dataset": [455, 465, 475], "flux_points_dataset_no_ul": 455, "flux_points_fermi": 464, "flux_points_hawc": 464, "flux_points_hess": 464, "flux_points_intrins": 451, "flux_points_meta": [71, 74, 75, 78], "flux_points_no_ul": 455, "flux_points_ob": 451, "flux_points_recomput": 125, "flux_points_t": [71, 73, 74, 75, 77, 78, 79, 80], "flux_pr": 101, "flux_profil": [449, 469, 470], "flux_profile_estim": 469, "flux_profile_fermi": 469, "flux_quant": [136, 137, 138, 139, 478], "flux_ref": [123, 125, 404], "flux_sensit": [123, 125], "flux_ul": [123, 125, 133, 480], "fluxestim": [123, 125, 126, 401, 427, 429, 430, 431, 433, 446], "fluxmap": [122, 124, 125, 133, 134, 135, 142, 143, 431, 446, 447, 459, 516], "fluxmapestim": 404, "fluxmapsmetadata": 407, "fluxpoint": [71, 73, 74, 75, 77, 78, 79, 80, 101, 123, 124, 126, 127, 130, 136, 137, 138, 139, 145, 392, 395, 404, 407, 431, 438, 439, 445, 446, 447, 450, 453, 464, 469, 472, 473, 478, 480, 481, 504, 513, 514, 516, 518], "fluxpointdataset": 425, "fluxpointestim": [395, 422, 428, 441], "fluxpointfit": 392, "fluxpointfitt": 440, "fluxpointprofil": 441, "fluxpointsconfig": 16, "fluxpointsdataset": [98, 99, 102, 105, 401, 404, 407, 421, 425, 446, 447, 453, 455, 464, 465, 474, 475, 514], "fluxpointsdatasetmetadata": 407, "fluxpointsestim": [119, 127, 130, 327, 401, 402, 404, 412, 422, 427, 428, 431, 445, 446, 451, 455, 464, 465, 475, 482, 502, 503, 518], "fluxpointsetim": 404, "fluxpointsmetadata": 407, "fluxprofileestim": [119, 431, 444, 446, 469], "fly": 390, "fmt": [477, 483, 491], "focu": [390, 400, 425, 438, 457, 578], "focus": [390, 406], "fold": [108, 404, 453, 464, 473, 482, 514, 516], "folder": [11, 82, 94, 101, 106, 110, 125, 344, 380, 381, 385, 388, 409, 411, 416, 421, 431, 434, 456, 463, 467, 493, 502, 503, 576, 578], "follow": [15, 19, 20, 43, 44, 80, 82, 83, 84, 90, 91, 102, 104, 106, 107, 109, 110, 123, 124, 125, 128, 133, 135, 141, 144, 192, 193, 194, 196, 200, 205, 206, 211, 263, 280, 286, 370, 371, 373, 380, 381, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 402, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 416, 423, 424, 425, 427, 428, 431, 433, 434, 440, 441, 445, 446, 447, 450, 451, 452, 453, 455, 456, 458, 459, 460, 463, 464, 467, 468, 472, 473, 474, 475, 477, 479, 480, 482, 483, 485, 486, 487, 488, 489, 493, 498, 502, 504, 506, 508, 509, 514, 516, 518, 520, 522, 523, 527, 529, 530, 531, 532, 540, 541, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 563, 576, 577, 579, 580, 581, 583], "font": [193, 194, 196, 202, 205, 206, 381, 486], "fontsiz": [377, 475, 483], "foo": [87, 91], "footprint": [193, 194, 196, 202, 204, 205, 206, 538], "footprint_rectangle_sky_region": 204, "forbid": [16, 84, 90, 104, 124], "forbidden": 488, "forc": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 151, 152, 158, 161, 163, 166, 204, 206, 307, 385, 395, 421], "forecom": [380, 405], "foremost": 578, "forens": 396, "foreseen": [390, 405], "forev": 421, "forg": [379, 397, 409, 410, 412, 413, 416, 439], "forget": [456, 466, 502], "forgot": 380, "forgotten": 380, "fork": [383, 409], "form": [16, 84, 87, 90, 91, 102, 104, 124, 163, 166, 201, 319, 380, 386, 390, 395, 403, 405, 407, 417, 439, 447, 487, 491, 515, 523, 536, 546, 576], "formal": [385, 408, 459], "format": [16, 83, 84, 85, 86, 87, 88, 90, 91, 94, 102, 104, 105, 107, 109, 110, 123, 124, 125, 126, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 186, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 208, 224, 232, 239, 247, 263, 273, 276, 315, 337, 361, 362, 369, 379, 388, 389, 390, 391, 392, 394, 396, 404, 406, 407, 410, 419, 431, 433, 436, 440, 442, 443, 445, 446, 447, 451, 453, 455, 456, 457, 459, 460, 461, 463, 465, 467, 468, 469, 472, 474, 478, 480, 482, 484, 486, 487, 489, 493, 494, 495, 496, 502, 504, 506, 512, 514, 515, 516, 517, 520, 521, 522, 523, 524, 531, 572, 573, 577, 578, 579], "format_plot_xaxi": [195, 198, 203, 484], "format_plot_yaxi": [198, 484], "formatt": [369, 486], "formatwarn": 380, "former": [406, 422, 427, 452, 488, 576, 579], "formula": [28, 29, 30, 31, 35, 36, 37, 39, 40, 50, 52, 53, 162, 253, 254, 304, 450, 579], "forthcom": 482, "forum": 409, "forward": [19, 20, 26, 83, 87, 91, 102, 105, 109, 110, 127, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 175, 197, 201, 202, 203, 211, 218, 219, 222, 223, 226, 228, 229, 230, 231, 232, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 281, 305, 369, 374, 381, 387, 390, 404, 453, 464, 473, 482, 514, 516, 531], "forwardref": [16, 84, 90, 104, 124], "found": [19, 20, 26, 82, 86, 87, 91, 137, 176, 181, 200, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 383, 384, 388, 395, 405, 406, 425, 428, 429, 430, 434, 461, 467, 478, 489, 491, 496, 515, 516, 527, 528], "four": [383, 391, 404, 409, 472, 493, 494, 522, 524, 530, 577], "fov": [122, 147, 148, 170, 171, 185, 186, 188, 190, 232, 380, 386, 394, 436, 439, 440, 447, 460, 477, 484, 487, 488, 493, 503, 526, 577], "fov_": 380, "fov_align": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 484], "fov_background": [460, 502], "fov_bkg_mak": [485, 525], "fov_lat": [148, 484, 493, 523], "fov_lat_axi": 484, "fov_lon": [148, 484, 493, 523], "fov_lon_axi": 484, "fov_theta": 380, "fovalign": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 484], "fovbackground": [408, 427], "fovbackgroundmak": [171, 426, 431, 485, 502, 503], "fovbackgroundmodel": [15, 102, 108, 109, 113, 170, 243, 408, 428, 445, 446, 447, 463, 464, 467, 468, 471, 481, 488, 502, 503, 525, 538], "fp": [123, 125, 145, 404, 502, 516, 518], "fp_dataset": [455, 481], "fp_dnde": 404, "fp_energy_flux": 404, "fp_estim": 482, "fp_result": 482, "fpe": [327, 402, 404, 451, 455, 465, 475, 503], "fpe_no_ul": 455, "fpp": 295, "fpp_err": [295, 478], "fpp_tabl": 478, "fr": 406, "frac": [17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 54, 105, 110, 150, 153, 209, 230, 235, 252, 254, 267, 294, 296, 306, 403, 514, 522, 523, 535, 536, 537, 540, 541, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 566, 567, 568, 570, 580, 581], "fraction": [19, 20, 26, 50, 52, 53, 83, 88, 89, 90, 122, 132, 139, 154, 160, 162, 163, 164, 166, 201, 207, 208, 218, 219, 222, 225, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 295, 296, 390, 395, 438, 446, 450, 458, 467, 471, 481, 484, 487, 493, 494, 495], "frame": [16, 83, 85, 91, 94, 95, 96, 102, 105, 109, 110, 111, 112, 113, 116, 127, 141, 163, 173, 176, 186, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275, 305, 306, 341, 356, 380, 381, 389, 391, 394, 404, 421, 422, 424, 425, 426, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 481, 484, 485, 486, 487, 488, 489, 490, 494, 495, 496, 502, 503, 504, 522, 527, 529, 530, 531, 535, 536, 537, 538, 539, 540, 541, 542], "framework": [391, 393, 394, 396, 398, 399, 403, 421, 422, 428, 440, 475, 489, 508, 518], "franceschini": [226, 227, 276, 445, 451, 544], "franceschini17": [227, 451, 544], "franceschni": 544, "frd_ab": 227, "free": [50, 52, 53, 77, 102, 105, 109, 110, 126, 130, 131, 173, 211, 215, 217, 249, 250, 286, 385, 395, 421, 447, 451, 456, 458, 460, 461, 463, 465, 466, 471, 472, 474, 477, 481, 483, 485, 488, 489, 491, 494, 498, 502, 503, 506, 516, 525, 538, 554, 555, 578, 580, 581], "free_paramet": [215, 217, 286, 477, 483, 488], "freedom": [120, 123, 125, 135, 144, 406, 446, 466, 516, 580, 581], "freez": [19, 20, 26, 87, 91, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 395, 406, 421, 431, 446, 460, 471, 477, 483, 489, 554], "freeze_al": [215, 217], "frenk": 506, "frequenc": [274, 289, 510], "frequent": [198, 380, 389, 398, 406, 473, 474, 478, 487, 518, 519, 578], "frequentist": 398, "fridai": 389, "friendli": [380, 385, 407, 442, 456, 502, 518], "from": [13, 15, 16, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 96, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 174, 175, 176, 179, 180, 182, 186, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 280, 286, 287, 288, 289, 290, 293, 296, 305, 306, 307, 317, 325, 327, 329, 330, 334, 337, 338, 342, 347, 359, 360, 362, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 381, 383, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 414, 416, 417, 419, 420, 421, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511, 512, 513, 514, 515, 516, 518, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 582], "from_align": [204, 431], "from_attribut": [16, 84, 90, 104, 124], "from_bound": [153, 155, 163, 192, 198, 204, 404, 464, 467, 468, 481, 484, 485, 486, 496, 530, 531], "from_covariance_matrix": 408, "from_default": 197, "from_diagonal_respons": [111, 116, 150, 151, 152, 459, 494], "from_dict": [19, 20, 26, 101, 102, 105, 109, 110, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 424, 431, 491], "from_dir": [82, 89, 96, 173, 305, 306, 416, 452, 455, 457, 465, 473, 475, 477, 485, 490, 493, 496, 500, 503, 515, 518, 525, 527, 528], "from_edg": [152, 193, 194, 196, 198, 202, 205, 206, 458, 471, 474, 484, 494, 495], "from_edisp_kernel": 151, "from_energy_bound": [102, 105, 109, 110, 111, 116, 150, 152, 153, 155, 161, 163, 173, 191, 192, 197, 198, 201, 204, 206, 381, 450, 452, 455, 457, 464, 465, 467, 468, 473, 475, 477, 481, 484, 485, 489, 494, 495, 503, 522, 525, 527, 528, 531], "from_energy_edg": [150, 198, 375, 481, 484], "from_events_fil": [82, 467, 493], "from_factor_matrix": 209, "from_fil": [82, 515], "from_fits_head": 85, "from_gauss": [150, 151, 155, 161, 163, 166, 522], "from_gaussian": 428, "from_geom": [102, 105, 109, 110, 151, 152, 161, 163, 166, 193, 194, 196, 200, 202, 205, 206, 425, 444, 481, 486, 487, 531, 537], "from_gti": 203, "from_gti_bound": 203, "from_hdu": [192, 194, 206], "from_hdulist": [102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 486], "from_head": [84, 90, 104, 124, 192, 204, 407], "from_irf": 165, "from_log10": [241, 242, 552], "from_map": [123, 125], "from_map_dataset": [105, 110], "from_nam": [461, 465], "from_nod": 198, "from_orm": [16, 84, 90, 104, 124], "from_panda": [87, 91], "from_paramet": [19, 20, 26, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "from_parametr": [153, 520], "from_posit": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 468], "from_refer": 403, "from_region": [201, 225, 445, 527], "from_region_map": 276, "from_spatial_model": 161, "from_spectrum_dataset": [110, 450, 458], "from_stack": [83, 86, 92, 123, 125, 193, 194, 195, 196, 198, 202, 205, 206, 209, 215, 217, 445, 446, 515], "from_tabl": [125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 195, 197, 198, 202, 203, 239, 442, 450], "from_table_hdu": [86, 197, 198], "from_time_bound": 203, "from_time_edg": [203, 477, 478], "from_time_interv": 86, "from_wcs_til": 194, "from_yaml": [16, 224, 247, 391, 456], "fromnumer": [457, 477], "front": [389, 409, 438], "frozen": [19, 20, 26, 101, 126, 130, 170, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 395, 403, 408, 423, 446, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 469, 471, 473, 474, 477, 480, 481, 482, 483, 487, 488, 489, 491, 494, 502, 503, 504, 516, 525, 554, 563], "fr\u00f6se": [446, 447], "ftol": 483, "ftool": 395, "fulfil": [407, 486], "full": [82, 126, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 194, 212, 224, 247, 315, 376, 379, 380, 385, 389, 390, 393, 395, 396, 400, 406, 408, 411, 418, 421, 431, 433, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 518, 529, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576], "full_enclosur": [186, 484], "full_output": [19, 20, 26, 212, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "fulli": [130, 191, 192, 201, 204, 274, 389, 390, 397, 401, 406, 410, 413, 423, 425, 433, 452, 478, 489, 493, 495, 496], "fun": [380, 383], "func": [17, 18, 21, 22, 24, 25, 27, 193, 194, 196, 202, 205, 206, 282, 328, 332, 333, 373, 461, 463], "function": [6, 15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 82, 83, 85, 87, 88, 91, 100, 101, 102, 103, 105, 108, 109, 110, 118, 123, 130, 133, 134, 136, 137, 138, 139, 142, 143, 153, 154, 155, 157, 158, 160, 162, 163, 164, 166, 193, 194, 196, 198, 202, 205, 206, 211, 212, 213, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 262, 263, 264, 266, 267, 268, 269, 272, 276, 282, 288, 289, 290, 298, 299, 303, 320, 328, 329, 331, 332, 336, 337, 347, 365, 368, 369, 373, 375, 377, 379, 383, 386, 390, 391, 392, 393, 394, 395, 398, 399, 400, 401, 403, 404, 405, 407, 408, 412, 414, 416, 417, 419, 421, 422, 423, 424, 425, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 444, 445, 446, 447, 450, 451, 455, 456, 457, 458, 459, 463, 465, 466, 467, 468, 469, 477, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 495, 496, 498, 502, 503, 504, 506, 507, 508, 513, 514, 515, 517, 518, 527, 529, 531, 536, 537, 539, 566, 575, 576, 577, 578, 579, 581, 583], "functional_model": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "fundament": [393, 402, 407], "further": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 118, 122, 126, 127, 130, 133, 199, 331, 380, 383, 384, 386, 389, 390, 393, 394, 397, 399, 400, 401, 402, 403, 426, 427, 428, 431, 433, 461, 467, 479, 480, 481, 482, 486, 503, 504, 507, 508, 523, 578], "furthermor": 493, "futur": [103, 108, 380, 385, 390, 393, 394, 396, 397, 398, 399, 400, 401, 402, 404, 405, 406, 408, 439, 463, 469, 486, 494, 507, 516, 575], "fvar": [139, 296, 395, 438], "fvar_err": [296, 478], "fvar_tabl": 478, "g": [13, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 51, 52, 53, 54, 59, 67, 83, 85, 86, 87, 91, 95, 114, 141, 192, 193, 194, 196, 198, 202, 204, 205, 206, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 307, 347, 369, 375, 379, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 403, 404, 406, 407, 409, 410, 412, 413, 414, 431, 433, 437, 439, 440, 441, 442, 445, 452, 453, 455, 456, 458, 465, 467, 469, 479, 480, 481, 483, 486, 487, 488, 489, 493, 494, 498, 504, 506, 510, 513, 514, 515, 516, 518, 523, 528, 529, 530, 537, 575, 577, 578, 580, 582, 583], "g0": [463, 494], "g28": 67, "g320": 480, "g6sgkldw": 477, "g_1": 153, "g_2": 153, "g_3": 153, "ga": 469, "gabriel": 440, "gadf": [83, 84, 85, 86, 88, 90, 95, 102, 104, 105, 109, 110, 124, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 390, 393, 404, 407, 431, 433, 442, 445, 447, 482, 484, 486, 502, 514, 518, 531, 577], "gain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 385, 397, 439], "gal_diffus": 396, "galact": [17, 18, 21, 22, 24, 25, 27, 29, 45, 47, 67, 68, 83, 91, 102, 105, 109, 110, 111, 116, 126, 127, 129, 163, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 225, 234, 237, 251, 260, 261, 314, 341, 380, 381, 391, 394, 400, 419, 421, 438, 451, 452, 455, 458, 459, 460, 463, 465, 466, 467, 469, 471, 474, 479, 480, 481, 486, 487, 488, 489, 493, 504, 506, 509, 513, 528, 529, 530, 531, 535, 536, 537, 538, 539, 540, 541, 577, 583], "galactic_median": 83, "galactocentr": 41, "galaxi": [28, 30, 35, 39, 40, 41, 226, 295, 296, 419, 452], "galelli": [444, 446, 447], "gallant": 439, "galleri": [410, 426, 428, 431, 442, 446, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 519, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575], "gallery_jupyt": 532, "gallery_python": 532, "galprop": [192, 193, 194, 196, 205, 206], "galprop2": [192, 193, 194, 196, 205, 206], "gambit": 506, "gamma": [11, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 52, 53, 57, 59, 63, 66, 67, 79, 83, 122, 126, 132, 162, 186, 193, 194, 196, 205, 206, 226, 228, 229, 230, 252, 253, 254, 276, 280, 334, 380, 386, 388, 391, 392, 393, 394, 404, 410, 412, 416, 417, 422, 436, 437, 438, 439, 440, 450, 451, 453, 455, 456, 457, 461, 464, 465, 466, 467, 469, 480, 484, 486, 487, 490, 493, 495, 496, 502, 504, 506, 508, 509, 513, 514, 515, 518, 521, 523, 525, 527, 528, 537, 544, 548, 549, 556, 557, 575, 576, 577, 578, 579, 580, 583], "gamma1": [218, 545, 559], "gamma2": [218, 545, 559], "gamma_1": [264, 267, 268, 269, 403, 560, 561, 562], "gamma_2": [264, 267, 268, 269, 403, 560, 561, 562], "gamma_min": [132, 450], "gamma_min_sensit": 122, "gammacat": [55, 66, 438, 453], "gammalib": [380, 393], "gammamc_dif": 506, "gammapi": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 384, 385, 387, 388, 390, 391, 392, 393, 394, 395, 396, 398, 402, 403, 404, 408, 411, 412, 413, 414, 415, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 492, 497, 498, 500, 502, 503, 504, 507, 508, 510, 511, 512, 518, 519, 520, 521, 522, 524, 528, 529, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 583], "gammapy_analysis_config": 396, "gammapy_data": [26, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 82, 83, 86, 88, 89, 91, 94, 96, 101, 102, 105, 109, 110, 115, 117, 118, 122, 123, 125, 127, 129, 131, 133, 141, 142, 145, 146, 148, 152, 153, 154, 155, 163, 173, 193, 194, 196, 202, 205, 206, 211, 227, 239, 276, 286, 305, 306, 359, 368, 373, 375, 380, 381, 383, 396, 412, 414, 416, 420, 421, 422, 431, 440, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 515, 516, 518, 520, 521, 522, 524, 525, 527, 528, 542, 572, 573], "gammapy_extra": 420, "gammapybaseconfig": 16, "gammapydeprecationwarn": [380, 469, 494, 550], "gammmapi": [390, 397], "gap": 136, "garcia": 440, "gather": [394, 400, 409], "gauss": [42, 51, 54, 102, 105, 128, 129, 154, 194, 206, 234, 235, 236, 237, 403, 437, 475, 486, 489, 504, 535, 536], "gauss_elong": 489, "gauss_temp": 489, "gaussian": [67, 68, 80, 81, 101, 118, 128, 134, 143, 150, 151, 155, 161, 163, 166, 194, 206, 233, 234, 235, 236, 237, 238, 295, 296, 391, 399, 403, 408, 424, 428, 447, 449, 451, 453, 455, 465, 467, 471, 474, 478, 480, 483, 484, 489, 491, 493, 504, 522, 524, 532, 543, 564, 574], "gaussian1d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "gaussian2d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50], "gaussian2dkernel": 118, "gaussian_compon": [67, 480], "gaussian_error": [134, 143], "gaussian_filt": [128, 206], "gaussian_model": 567, "gaussian_sigma": 483, "gaussianband2d": 439, "gaussianprior": [408, 451, 491], "gaussianspatialmodel": [80, 81, 115, 117, 257, 403, 424, 465, 466, 471, 489, 536], "gaussianspectralmodel": [258, 403, 489, 551], "gaussiantemporalmod": 431, "gaussiantemporalmodel": [270, 403, 427, 489, 567], "gb": [388, 390, 493, 495], "gc": [86, 102, 105, 109, 110, 115, 117, 118, 122, 127, 129, 133, 141, 142, 368, 373, 375, 383, 459, 460, 463, 465, 467, 469, 479, 481, 482, 486, 488, 489, 493, 494, 504, 506, 515, 516], "gc_3fhl": 504, "gc_3fhl_cutout": 504, "gc_3fhl_smooth": 504, "gc_imag": 469, "gc_po": 494, "gc_sep": 488, "gca": 451, "gcc": 416, "gdp0q1ak": 489, "ge": 90, "ged6e64092": [104, 124, 417, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "geminga": 59, "gen_gaussian_model": 568, "gener": [16, 27, 33, 42, 45, 46, 47, 56, 82, 83, 84, 87, 88, 90, 91, 92, 102, 103, 104, 105, 108, 109, 110, 124, 152, 163, 166, 193, 194, 196, 197, 198, 202, 205, 206, 211, 223, 231, 236, 237, 238, 239, 240, 255, 262, 271, 272, 274, 276, 277, 289, 329, 331, 334, 335, 336, 337, 344, 381, 383, 389, 391, 392, 393, 394, 396, 398, 399, 400, 401, 402, 403, 404, 405, 409, 410, 413, 416, 422, 426, 427, 428, 431, 433, 438, 442, 445, 446, 447, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 514, 518, 523, 529, 531, 532, 534, 535, 536, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 569, 570, 571, 572, 573, 574, 578, 580, 581], "generalconfig": 16, "generalis": [125, 399, 425, 484], "generalized_gaussian_model": 568, "generalizedgaussianspatialmodel": [257, 428, 489, 537], "generalizedgaussiantemporalmodel": [270, 433, 489, 568], "generalrandom": 423, "generatejsonschema": [16, 84, 90, 104, 124], "gengauss": [238, 489, 537], "geodeticloc": 94, "geolat": 452, "geom": [16, 23, 83, 102, 105, 109, 110, 111, 114, 116, 122, 123, 125, 127, 133, 151, 152, 161, 163, 166, 173, 180, 182, 183, 184, 185, 186, 187, 188, 189, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 220, 221, 224, 225, 232, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 275, 391, 393, 395, 428, 431, 440, 446, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 494, 495, 502, 503, 504, 516, 525, 527, 528, 529, 530, 531, 534, 536, 537, 538, 539], "geom_24_energy_bin": 531, "geom_6_energy_bin": 531, "geom_edisp": [102, 105, 109, 110, 481], "geom_energi": 531, "geom_exposur": [102, 105, 109, 110, 444, 481], "geom_imag": [461, 465, 531], "geom_irf": 393, "geom_psf": [102, 105, 109, 110, 481], "geom_tru": 425, "geomconfig": 16, "geometri": [23, 83, 100, 102, 105, 109, 110, 112, 113, 114, 123, 125, 133, 134, 135, 143, 151, 152, 158, 161, 163, 166, 170, 173, 175, 180, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 196, 197, 199, 200, 201, 202, 204, 205, 206, 207, 208, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 275, 376, 386, 392, 395, 396, 425, 431, 442, 447, 455, 456, 457, 458, 460, 461, 463, 467, 468, 471, 481, 482, 485, 494, 495, 514, 516, 518, 526, 530, 576, 577], "geomspac": [125, 408, 482], "geq": [52, 53], "gerrit": 447, "get": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 85, 87, 88, 90, 91, 94, 96, 100, 102, 104, 106, 107, 109, 118, 122, 124, 126, 127, 130, 131, 133, 141, 145, 150, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 209, 215, 217, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 233, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 256, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 278, 279, 315, 331, 380, 381, 385, 386, 387, 388, 389, 390, 394, 395, 397, 404, 406, 407, 408, 410, 411, 413, 414, 416, 417, 420, 422, 437, 438, 439, 440, 447, 450, 456, 458, 459, 463, 464, 465, 471, 473, 477, 480, 481, 483, 484, 485, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 514, 518, 531, 577, 581], "get_altaz": [85, 94, 445], "get_bia": 150, "get_bias_energi": 150, "get_bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "get_by_coord": [193, 194, 196, 202, 205, 206, 485, 486, 494, 495, 530], "get_by_idx": [193, 194, 196, 202, 205, 206, 486, 530], "get_by_pix": [193, 194, 196, 202, 205, 206, 530], "get_cl": [453, 480, 487], "get_combined_flux_map": 134, "get_combined_significance_map": 135, "get_coord": [191, 192, 197, 201, 204, 424, 431, 440, 468, 486, 487, 527, 531], "get_dataset": [15, 456, 460, 461, 463, 472, 502, 518], "get_devel_vers": 383, "get_edges_fixed_bin": 145, "get_edges_min_t": 145, "get_edisp_kernel": [151, 152, 426, 431, 481, 494, 522], "get_events_meta_data": 393, "get_excess_map": [15, 502], "get_filenam": [106, 107], "get_flux_point": [15, 123, 125, 404, 426, 456, 502], "get_group_by_idx": 404, "get_hdu": 315, "get_icr": [85, 94, 445], "get_idx": [191, 192, 201, 204, 531], "get_image_by_coord": [193, 194, 196, 202, 205, 206, 486], "get_image_by_idx": [193, 194, 196, 202, 205, 206], "get_image_by_pix": [193, 194, 196, 202, 205, 206], "get_index_list": 192, "get_irfs_featur": [305, 306, 445, 490], "get_kernel": 118, "get_light_curv": 15, "get_mean": 150, "get_observ": [15, 82, 96, 305, 306, 422, 433, 452, 455, 456, 457, 460, 461, 463, 465, 467, 472, 473, 475, 477, 485, 490, 495, 496, 500, 502, 503, 518, 525, 527, 528], "get_ogip_meta": 107, "get_pix": 204, "get_pointing_altaz": [88, 490], "get_pointing_icr": [88, 445, 465, 485, 503], "get_psf_kernel": [161, 163, 166, 446, 447, 494], "get_random_st": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 334, 335, 336, 337, 380], "get_rebinned_axi": 473, "get_resolut": 150, "get_respons": 438, "get_scal": 118, "get_scale_model": [126, 127, 130], "get_spectrum": [193, 194, 196, 202, 205, 206], "get_subcovari": 209, "get_transform": [459, 465, 535, 536], "get_valid_path": 106, "get_wcs_coord_and_weight": 201, "getattr": 408, "getitem": 438, "getlogg": [380, 461, 465, 472, 473, 474, 477, 500], "getter": 381, "getting_start": 400, "gev": [17, 18, 19, 20, 21, 22, 24, 25, 27, 74, 127, 133, 193, 194, 196, 198, 202, 205, 206, 453, 457, 459, 463, 464, 469, 471, 474, 475, 479, 480, 485, 486, 487, 488, 493, 494, 495, 504, 531, 554, 576, 577], "gev2": [19, 479], "gevgevgev1": 453, "gh": [380, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 410], "ghtvdwzy": 477, "git": [86, 263, 380, 381, 383, 385, 387, 388, 406, 409, 413, 442], "github": [381, 383, 384, 385, 386, 388, 389, 398, 400, 406, 409, 410, 413, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 436, 437, 438, 439, 440, 441, 518], "giuliani": 393, "giunti": [421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 442, 445], "give": [6, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 101, 140, 294, 295, 380, 385, 389, 390, 394, 395, 396, 397, 400, 401, 406, 410, 421, 423, 425, 433, 446, 455, 456, 459, 466, 468, 473, 477, 478, 480, 483, 484, 485, 486, 489, 493, 494, 502, 518, 523, 578, 579, 581, 582], "given": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 46, 51, 52, 53, 67, 68, 69, 80, 82, 83, 84, 85, 87, 88, 90, 91, 94, 96, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 112, 113, 120, 122, 123, 124, 125, 126, 128, 130, 131, 132, 133, 134, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 175, 176, 179, 181, 183, 184, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 211, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 286, 288, 290, 296, 305, 307, 310, 311, 318, 325, 329, 332, 333, 341, 367, 368, 373, 377, 380, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 399, 403, 404, 406, 408, 420, 425, 431, 439, 440, 445, 450, 451, 452, 453, 456, 459, 467, 468, 469, 471, 472, 473, 474, 479, 480, 481, 482, 484, 485, 486, 487, 489, 493, 494, 502, 504, 514, 515, 516, 518, 522, 523, 527, 528, 530, 531, 537, 541, 544, 575, 577, 578, 579, 580], "glast": 494, "glat": [41, 67, 68, 83, 380, 455, 480, 486, 494], "glat_err": 480, "glat_pnt": [465, 493], "glimps": [495, 498], "gll_iem_v06_cutout": [193, 194, 196, 202, 205, 206], "gll_iem_v06_gc": [467, 486, 488, 489, 494], "gll_psc_v16": 61, "gll_psc_v20": 480, "gll_psc_v32": 65, "gll_psch_v09": 58, "gll_psch_v13": 62, "glob": [82, 381, 481, 482], "global": [16, 33, 42, 45, 46, 47, 100, 102, 103, 105, 108, 109, 110, 152, 163, 166, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380, 384, 386, 428, 445, 455, 465, 466, 475, 488, 491, 516, 576], "global_dataset": 485, "global_to_loc": 192, "glon": [41, 67, 68, 83, 380, 455, 480, 486, 494], "glon_pnt": [465, 493], "glossari": [400, 442, 514, 531], "glue": 518, "glueviz": 397, "go": [50, 87, 91, 383, 390, 400, 405, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 506, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "goal": [385, 394, 408, 483], "goe": [41, 52, 370, 380, 399, 410, 469, 491], "gogia": 438, "good": [82, 86, 101, 125, 300, 304, 380, 385, 387, 388, 389, 390, 391, 394, 396, 397, 398, 400, 451, 455, 457, 458, 461, 471, 473, 474, 478, 479, 481, 483, 485, 487, 489, 494, 495, 498, 540, 541, 577, 582], "googl": [87, 91, 400, 409, 447], "got": 493, "gov": [58, 60, 61, 62, 64, 65, 150, 198, 400, 557], "gp": [82, 83, 89, 381, 390, 396, 460, 463, 465, 475, 493, 495], "gpl3": 380, "gps_baseline_110380": [82, 83, 493], "gradient": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "grai": [371, 527, 554], "grand": 380, "grant": [383, 406], "granular": 478, "grayify_colormap": 399, "grb": [474, 478], "great": [385, 394, 399, 437, 498], "greater": [170, 373], "green": [101, 109, 110, 439, 466, 490, 491], "grei": 475, "grep": 415, "grid": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 126, 129, 154, 162, 164, 193, 194, 196, 198, 202, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 282, 373, 380, 391, 396, 423, 425, 483, 530, 531, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571], "gridsearch": [211, 483], "gridspec": 367, "gridspec_kw": [459, 465, 472, 474, 544], "ground": [95, 395, 493, 579], "group": [86, 87, 91, 92, 126, 127, 130, 131, 133, 151, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 305, 386, 395, 399, 400, 401, 404, 409, 412, 422, 425, 427, 431, 437, 440, 459, 472, 474, 498, 516, 518, 532, 578], "group_1": 490, "group_2": 490, "group_bi": [87, 91, 404], "group_by_axi": 404, "group_by_label": [92, 490], "group_high_zenith": 490, "group_low_zenith": 490, "group_siz": [145, 473], "group_tabl": [86, 198, 203], "grouped_observ": 490, "grow": [388, 399, 439], "grown": 400, "grpzbr9i": 485, "gr\u00e9aux": 445, "gsfc": [58, 60, 61, 62, 64, 65, 150, 198, 400, 557], "gt": 484, "gtexpcube2": 494, "gti": [82, 87, 88, 89, 100, 101, 102, 105, 109, 110, 123, 125, 127, 130, 134, 143, 167, 203, 263, 386, 389, 390, 393, 394, 395, 404, 423, 425, 426, 428, 441, 445, 446, 467, 473, 474, 477, 481, 485, 493, 495, 496, 514, 577], "gti_1": 515, "gti_2": 515, "gti_t0": 474, "gtimetadata": 407, "gtmktime": [390, 494], "gtobsim": 393, "gtol": 483, "gtpsf": [151, 152, 158, 163, 166, 198, 459, 494], "gtselect": [390, 494], "guarante": [388, 403, 405], "guess": [125, 192, 194, 446], "guid": [383, 396, 398, 412, 413, 414, 417, 440, 463, 498, 518, 533, 543, 564, 574], "guidelin": [380, 384, 417, 439], "guiger": [31, 39], "gz": [58, 60, 61, 62, 64, 65, 66, 67, 82, 83, 86, 88, 91, 94, 102, 105, 109, 110, 115, 117, 118, 122, 127, 129, 133, 141, 142, 155, 227, 276, 368, 373, 375, 381, 402, 440, 451, 455, 456, 459, 466, 467, 468, 469, 480, 481, 482, 484, 486, 488, 489, 493, 494, 495, 500, 502, 503, 504, 515, 516, 518, 520, 521, 522, 524, 544], "h": [26, 67, 82, 86, 87, 91, 95, 126, 128, 152, 179, 193, 194, 196, 202, 205, 206, 289, 370, 400, 403, 412, 416, 417, 425, 440, 447, 449, 450, 451, 452, 455, 456, 458, 461, 464, 466, 472, 473, 474, 477, 479, 483, 484, 485, 486, 489, 490, 491, 493, 494, 495, 497, 498, 500, 502, 503, 513, 518, 531, 566, 567, 577, 578], "h0": 466, "h05": [45, 49], "h1": 466, "h_0": [466, 580], "h_1": [466, 580], "h_i": 128, "ha": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 80, 87, 91, 101, 102, 105, 109, 110, 122, 123, 125, 165, 187, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 274, 275, 276, 373, 375, 377, 380, 381, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 410, 411, 413, 427, 428, 431, 433, 434, 440, 441, 442, 444, 445, 446, 447, 451, 452, 455, 456, 457, 461, 466, 468, 472, 473, 475, 479, 480, 481, 483, 485, 486, 487, 489, 490, 491, 493, 495, 496, 502, 503, 514, 515, 518, 523, 527, 528, 530, 531, 535, 536, 563, 575, 578, 580], "habilit": 304, "hack": 436, "had": [380, 386, 388, 406, 428, 434, 438, 439], "hadron": [279, 386, 391, 461, 481, 493, 514, 527], "hajlaoui": [428, 431], "hal": 406, "half": [163, 166, 198, 204, 275], "halo": 506, "halv": [137, 294, 446], "halving_coord": 478, "halving_err": 478, "hand": [175, 380, 383, 388, 391, 400, 406, 408, 443, 483, 498, 518], "handbook": [400, 498], "handi": 463, "handl": [3, 16, 84, 90, 104, 123, 124, 125, 179, 200, 297, 379, 381, 384, 392, 393, 394, 396, 401, 403, 404, 407, 409, 412, 414, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 436, 437, 438, 439, 441, 442, 444, 445, 455, 457, 463, 464, 465, 467, 481, 484, 486, 488, 489, 494, 495, 498, 503, 504, 514, 515, 518, 577], "handler_map": 377, "hanna": [446, 447], "hap": 396, "happen": [82, 383, 385, 387, 388, 394, 398, 410, 456, 488, 498, 502, 503, 514, 518, 580], "happi": [383, 387, 400, 420, 421, 440], "hard": [380, 381, 403, 408, 426, 491], "harder": [387, 578], "hardli": 407, "harri": [435, 436], "harvard": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 211, 244, 279, 280, 289, 296, 298, 400, 483], "has_any_t": [123, 125], "has_energy_axi": [191, 192, 201, 204], "has_invers": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "has_masked_column": [87, 91], "has_masked_valu": [87, 91], "has_mixin_column": [87, 91], "has_offset_axi": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165], "has_single_spatial_bin": [151, 152, 158, 163, 166], "has_stat_profil": [123, 125], "has_success": [123, 125], "has_ul": [123, 125], "has_user_bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "has_user_invers": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "hasattr": 380, "hasn": 385, "hatch": 475, "have": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 84, 87, 90, 91, 95, 100, 104, 107, 111, 116, 123, 124, 125, 126, 130, 141, 142, 150, 151, 152, 161, 163, 166, 173, 175, 187, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 307, 331, 337, 377, 379, 380, 381, 382, 383, 385, 386, 387, 389, 391, 393, 394, 397, 398, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 420, 421, 422, 425, 428, 431, 433, 434, 437, 439, 440, 441, 442, 443, 445, 446, 447, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 473, 474, 475, 477, 480, 481, 482, 483, 484, 486, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 503, 504, 506, 514, 515, 516, 518, 525, 529, 530, 531, 541, 552, 575, 578, 581, 582], "haven": 416, "hawc": [55, 59, 63, 72, 76, 97, 417, 425, 431, 439, 442, 443, 445, 449, 497, 498, 513, 526, 577], "hawc19_flux_point": [125, 464, 518], "hawc_crab": [125, 464, 518], "hayjt6ia": 477, "hd": 67, "hdr": 407, "hdr_dict": 407, "hdu": [67, 82, 83, 85, 86, 87, 88, 94, 102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 315, 366, 381, 390, 419, 434, 436, 439, 442, 443, 484, 486, 493, 495, 496, 514, 515, 518, 520, 521, 522, 524, 531, 573], "hdu1": 150, "hdu2": 150, "hdu_al": 467, "hdu_band": [123, 125, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206], "hdu_class": [82, 87, 315, 493, 495, 496], "hdu_class_uniqu": 87, "hdu_evt": 467, "hdu_filenam": 495, "hdu_gti": 467, "hdu_hdu": 82, "hdu_index": 82, "hdu_list": [151, 152, 154, 158, 162, 163, 164, 166, 193, 194, 205, 206], "hdu_loc": 87, "hdu_nam": 315, "hdu_ob": 82, "hdu_out": [193, 194], "hdu_region": [201, 202], "hdu_tabl": [82, 495], "hdu_table_filenam": 82, "hdu_typ": [82, 87, 493, 495, 496], "hdu_type_uniqu": 87, "hduclas2": 484, "hduclas3": 484, "hduclas4": 484, "hduclasn": 484, "hduindext": [82, 315, 495], "hdulist": [102, 105, 107, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 467, 486, 514], "hduloc": [87, 102], "he": [279, 390, 395], "hea": 395, "head": 381, "header": [82, 83, 84, 85, 86, 87, 88, 90, 91, 94, 100, 101, 102, 104, 105, 106, 107, 109, 110, 123, 124, 125, 150, 151, 152, 158, 163, 166, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 203, 204, 205, 206, 275, 317, 362, 363, 366, 385, 390, 393, 407, 425, 433, 435, 440, 442, 445, 457, 468, 486, 493, 582], "healpi": [192, 379, 387, 389, 397, 411, 412, 414, 423, 431, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 529], "healpix": [13, 192, 193, 194, 196, 202, 205, 206, 379, 387, 389, 394, 431, 439, 486, 494, 530], "healpix_to_imag": 432, "heapsort": [87, 91], "heart": 580, "heasarc": [150, 198], "heatmap": [369, 374], "heavi": [440, 441], "heavier": 463, "heavili": 431, "hegra": [97, 280], "heidelberg": [380, 409], "heidt": 478, "height": [16, 29, 87, 91, 94, 127, 340, 456, 460, 461, 463, 469, 472, 475, 479, 486, 487, 489, 502, 527, 531], "heighten": 478, "helen": 437, "hello": [416, 465], "help": [11, 87, 91, 291, 297, 380, 383, 385, 387, 394, 395, 396, 400, 406, 409, 410, 411, 416, 420, 421, 422, 439, 440, 442, 480, 485, 486, 488, 494, 496, 504, 518, 578], "helper": [13, 315, 320, 387, 389, 394, 395, 396, 399, 410, 416, 422, 423, 424, 425, 431, 433, 436, 438, 439, 445, 446, 469, 480, 487, 488, 527, 576, 583], "henc": [87, 91, 396, 460, 461, 516, 531, 580], "here": [13, 82, 83, 87, 91, 102, 109, 125, 135, 144, 148, 153, 162, 211, 288, 290, 293, 368, 379, 380, 381, 382, 383, 386, 387, 392, 393, 394, 395, 396, 397, 398, 399, 400, 406, 407, 408, 409, 410, 412, 414, 416, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 484, 485, 486, 487, 490, 491, 493, 494, 495, 498, 502, 503, 504, 508, 514, 518, 523, 525, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 579, 580, 582, 583], "hereaft": 467, "herebi": 491, "heritag": 406, "herm": [283, 285, 446], "hess": [16, 55, 67, 82, 83, 86, 88, 91, 96, 97, 101, 109, 110, 131, 145, 146, 153, 155, 173, 211, 286, 305, 306, 381, 388, 389, 394, 396, 400, 409, 412, 416, 419, 421, 424, 435, 436, 439, 440, 449, 452, 453, 455, 456, 457, 461, 463, 465, 466, 473, 475, 477, 480, 481, 482, 483, 485, 490, 491, 494, 496, 497, 500, 502, 503, 506, 515, 516, 518, 520, 521, 522, 524, 525, 527, 528], "hess2": [153, 520], "hess_dl3_dr1_obs_id_020136": [88, 155, 381, 520, 521, 522, 524], "hess_dl3_dr1_obs_id_023523": [83, 86, 515], "hess_dl3_dr1_obs_id_023526": 515, "hess_ecpl": [280, 455], "hess_pl": 280, "hessian": 516, "heterogen": [407, 453, 464], "hfm": 67, "hgp": [67, 80, 81, 122, 400, 425, 437, 439, 440, 513], "hgps_catalog_v1": 67, "hgps_sourc": 67, "hgpsc": [67, 480], "hi": [380, 438], "hi_bnd": 198, "hi_threshold": 150, "hidden": 391, "hide": [13, 385, 402], "hierarch": [13, 305, 347, 389, 391, 407, 446, 518, 530], "hierarchi": [305, 391, 424], "hierarchical_clust": [445, 490], "high": [6, 15, 58, 62, 63, 83, 150, 198, 330, 380, 384, 385, 386, 393, 394, 395, 400, 407, 423, 424, 425, 426, 427, 431, 439, 440, 449, 450, 453, 456, 459, 460, 463, 469, 471, 472, 479, 480, 481, 482, 485, 487, 493, 494, 495, 496, 498, 503, 504, 505, 513, 514, 515, 516, 523, 526, 576, 577, 578, 579], "high_zenith": 490, "higher": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 238, 383, 386, 391, 396, 399, 401, 413, 453, 468, 478, 484, 486, 525, 531], "highest": [141, 179, 478, 485, 493, 504], "highli": 489, "highlight": 578, "hint": [407, 459, 516], "hire": [154, 400, 508, 510, 511, 512, 514, 515, 520, 521, 522, 524, 527, 531, 580, 583], "hist": [83, 109, 110, 202, 206, 373, 458, 491], "histogram": [83, 109, 110, 198, 202, 206, 373, 445, 475, 531, 577], "histori": [394, 406, 442], "hkv7g9u": 477, "hli": [393, 426, 427, 431, 442, 449, 454, 498, 514, 517, 577], "hli_spectrum_analysi": 456, "hline": 535, "hoc": 394, "hold": [69, 82, 89, 92, 96, 100, 161, 232, 307, 389, 390, 392, 395, 578, 580], "home": [16, 344, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 544, 550, 566, 572, 573], "homebrew": 397, "homework": 422, "homogen": [87, 91, 428], "honk": 385, "hood": [456, 498, 502], "hook": [383, 442], "hope": 385, "hopefulli": 387, "horizont": [85, 95, 156, 350, 484, 582], "host": 380, "hour": [67, 94, 383, 396, 409, 410, 450, 480, 485, 486, 518], "hover": 381, "how": [16, 19, 20, 82, 83, 84, 85, 90, 99, 104, 124, 125, 127, 129, 173, 194, 204, 206, 331, 337, 382, 385, 388, 392, 394, 396, 397, 399, 402, 403, 406, 407, 410, 411, 412, 416, 417, 420, 421, 422, 425, 426, 433, 435, 438, 439, 440, 445, 446, 450, 451, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 504, 508, 514, 516, 519, 523, 527, 529, 530, 544, 563, 576, 578, 579, 580, 582, 583], "howev": [77, 87, 91, 101, 122, 295, 379, 380, 381, 383, 387, 390, 393, 394, 398, 406, 408, 413, 452, 461, 469, 475, 477, 479, 480, 481, 483, 491, 495, 496, 498, 514, 518, 530, 531, 536, 552, 578], "howto": [400, 442, 443], "hpx": [192, 193, 194, 196, 205, 206, 394, 431, 486, 494], "hpx2wc": [193, 194], "hpx_map": [193, 194], "hpx_pixel": 394, "hpx_reg": 192, "hpxgeom": [123, 191, 193, 194, 426, 431, 442, 494, 529], "hpxmap": [194, 196, 529], "hpxndmap": [271, 431, 529], "hpxsparsemap": 425, "hpxtowcsmap": [193, 194], "hr": [467, 468, 471, 474], "hspace": 479, "hspec": [435, 436, 437], "hst": 226, "hstack": [87, 91, 393], "html": [26, 83, 87, 91, 126, 150, 186, 192, 198, 201, 204, 211, 224, 247, 276, 307, 334, 335, 380, 381, 383, 388, 400, 405, 406, 409, 410, 418, 439, 450, 458, 460, 463, 465, 471, 474, 483, 484, 493, 515, 518, 521, 529, 531, 557], "htmlcov": 410, "http": [11, 13, 16, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 63, 64, 65, 67, 83, 84, 87, 88, 90, 91, 104, 118, 124, 126, 135, 136, 137, 144, 150, 153, 179, 186, 192, 198, 201, 204, 211, 224, 244, 247, 253, 254, 268, 269, 276, 279, 280, 289, 295, 296, 298, 303, 307, 334, 335, 347, 383, 397, 400, 405, 406, 409, 410, 411, 412, 413, 414, 418, 422, 439, 450, 455, 458, 460, 463, 464, 465, 471, 474, 479, 480, 483, 484, 493, 515, 518, 529, 531, 557, 561, 562, 578], "hubert": 440, "hue": 371, "huestart": 371, "huge": [410, 536], "hugovk": 421, "human": [361, 391, 410, 433, 456, 502], "hundr": 495, "hypercub": [486, 530, 531], "hypothes": [286, 445, 518, 580], "hypothesi": [123, 125, 126, 127, 130, 131, 286, 288, 290, 447, 453, 459, 466, 482, 516, 518, 577, 580], "hysteresi": 477, "hz": [337, 504], "i": [11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 176, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 303, 304, 305, 307, 309, 313, 315, 318, 319, 320, 325, 327, 328, 331, 334, 335, 336, 337, 339, 340, 343, 346, 348, 349, 351, 355, 357, 358, 362, 363, 364, 366, 367, 368, 369, 370, 371, 373, 374, 375, 376, 377, 379, 381, 382, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 507, 508, 513, 514, 515, 516, 517, 518, 520, 521, 522, 523, 524, 525, 526, 527, 528, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583], "i0": [87, 91], "i1": [87, 91], "i4": 469, "i8": [486, 504], "i_0": [193, 194, 196, 202, 205, 206], "i_hpx": [193, 194, 196, 202, 205, 206], "i_lat": [193, 194, 196, 202, 205, 206], "i_lon": [193, 194, 196, 202, 205, 206], "i_n": [193, 194, 196, 202, 205, 206], "i_scan": 491, "iact": [82, 83, 85, 94, 173, 176, 180, 386, 389, 390, 391, 392, 394, 396, 400, 417, 422, 436, 438, 440, 453, 459, 461, 485, 486, 488, 493, 494, 496, 515, 520, 521, 522, 524, 575, 577], "iactbasicimageestim": [386, 439], "iau": [52, 419, 423], "iau2015": 52, "ic": 554, "icon": 576, "icr": [83, 85, 88, 91, 94, 95, 96, 102, 105, 109, 110, 112, 113, 141, 163, 173, 176, 192, 193, 194, 196, 199, 201, 204, 205, 206, 220, 221, 225, 234, 237, 251, 260, 261, 305, 306, 341, 380, 381, 404, 424, 455, 456, 457, 458, 459, 461, 464, 465, 467, 468, 471, 472, 473, 474, 475, 477, 480, 481, 484, 485, 486, 487, 489, 490, 493, 494, 495, 496, 502, 503, 515, 518, 522, 527, 531, 535, 536, 537, 539, 540, 541], "icrc": 435, "id": [67, 80, 82, 83, 87, 88, 91, 92, 112, 113, 393, 396, 416, 456, 458, 467, 469, 471, 475, 480, 489, 493, 494, 495, 496, 502, 515], "id_obs_vela": 475, "idea": [385, 388, 395, 399, 400, 401, 456, 477, 484, 490, 494, 502], "ideal": [382, 383, 390, 394, 395, 404, 408, 409, 453, 494], "idempot": [16, 84, 90, 104, 124], "ident": [355, 383, 395, 442, 455, 457], "identif": [67, 386, 480], "identifi": [67, 88, 103, 108, 192, 263, 380, 390, 391, 393, 396, 405, 406, 410, 426, 459, 467, 478, 480, 481, 489, 493, 495, 517], "identified_object": 480, "idx": [83, 87, 91, 92, 100, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 247, 458, 467, 474, 480, 483, 486, 530], "idx1": 483, "idx2": 483, "idx_glob": 192, "idx_loc": 192, "ie": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 406, 451, 477, 488, 489, 514, 577], "iem": [488, 494], "iem_minus_iem": 486, "iem_plus_iem": 486, "iem_times_two": 486, "ignacio": 441, "ignasi": 435, "ignor": [11, 16, 84, 87, 90, 91, 101, 104, 124, 136, 157, 167, 196, 214, 216, 232, 307, 319, 381, 433, 447, 455, 469, 474, 475, 481, 487, 502, 518, 578], "ii": [209, 437], "ij": 209, "ilist": 192, "illustr": [109, 110, 381, 390, 392, 393, 394, 396, 399, 457, 459, 464, 469, 481, 485, 486, 488, 489, 494, 508, 514, 527, 528, 535, 536, 544, 576], "illustrate_colormap": 399, "iloc": [87, 91], "im": [369, 483], "imag": [102, 105, 109, 110, 118, 128, 129, 141, 152, 153, 154, 160, 162, 163, 164, 166, 168, 178, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 275, 299, 302, 344, 366, 368, 369, 370, 371, 375, 380, 388, 389, 391, 396, 397, 400, 401, 410, 412, 417, 419, 420, 421, 424, 425, 426, 432, 436, 437, 438, 439, 440, 447, 449, 460, 463, 469, 470, 485, 487, 489, 493, 503, 504, 514, 523, 527, 528, 529, 530, 531, 576, 577, 583], "image_analysi": [400, 420], "image_err": 129, "image_fitting_with_sherpa": [400, 441], "image_pip": 439, "image_profil": 438, "imagehdu": [193, 194, 205, 206], "imagenorm": [370, 371], "imageprofil": 129, "images_t": 465, "imagin": 578, "img": [368, 486], "iminuit": [211, 379, 397, 406, 431, 433, 440, 444, 445, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 575], "immut": 224, "impact": [387, 393, 397, 495], "imperfect": 485, "implement": [19, 20, 102, 105, 109, 110, 135, 144, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 289, 295, 380, 381, 385, 386, 388, 389, 392, 393, 394, 395, 396, 397, 398, 401, 402, 403, 404, 405, 407, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 438, 439, 441, 442, 445, 446, 447, 452, 460, 473, 478, 479, 480, 485, 486, 487, 506, 514, 516, 518, 523, 524, 525, 563, 575, 576, 577, 578, 579, 582], "implent": 380, "impli": [238, 380, 399, 514, 577], "implic": 402, "implicit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 523], "implicitli": 485, "import": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 66, 67, 82, 83, 84, 85, 86, 87, 88, 89, 91, 94, 96, 101, 102, 104, 105, 109, 110, 111, 115, 116, 117, 118, 122, 123, 124, 125, 127, 129, 131, 133, 141, 142, 145, 146, 148, 150, 152, 153, 154, 155, 161, 163, 173, 176, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 215, 217, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 245, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 286, 289, 295, 296, 305, 306, 327, 337, 347, 359, 360, 365, 368, 370, 371, 373, 375, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 399, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 416, 427, 437, 439, 444, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 507, 508, 510, 511, 512, 514, 515, 516, 518, 520, 521, 522, 524, 525, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576, 578, 579, 580, 582], "importantli": [404, 440, 452, 578], "importerror": [87, 91], "impos": [444, 450, 527], "improv": [108, 286, 382, 384, 385, 386, 388, 389, 390, 394, 395, 396, 397, 398, 399, 400, 405, 410, 411, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 434, 435, 436, 437, 438, 439, 440, 441, 443, 486, 493, 518, 528, 535], "imshow": [102, 105, 161, 194, 206, 368, 374, 438, 486, 504], "in2p3": 406, "in_memori": [88, 518], "in_memory_gener": 92, "in_safe_data_rang": [102, 105, 109, 110], "inaccur": 380, "incex": [16, 84, 90, 104, 124], "incid": 386, "includ": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 82, 83, 84, 87, 88, 90, 91, 104, 124, 130, 161, 167, 169, 170, 176, 177, 181, 191, 192, 201, 204, 248, 315, 379, 380, 386, 388, 391, 392, 393, 394, 396, 397, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 421, 423, 428, 439, 444, 445, 446, 447, 450, 463, 464, 466, 467, 469, 474, 479, 480, 482, 483, 485, 487, 488, 489, 493, 495, 506, 508, 514, 516, 517, 528, 530, 575, 579, 582], "include_irf": [88, 515, 518], "include_ssc": 248, "inclus": [83, 201, 394], "incompat": [405, 433], "incomplet": [380, 410, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "inconsist": [428, 434, 444, 445], "inconveni": [399, 440], "incorpor": [396, 400, 408, 577], "incorrect": [83, 380, 407, 415, 424, 442, 443, 485, 491], "incorrectli": [442, 487], "increas": [141, 168, 198, 203, 225, 234, 237, 380, 389, 407, 473, 482, 485, 514, 518, 535], "increment": [19, 20, 26, 118, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 394, 486, 530], "ind": [192, 204, 224, 247], "inde": [467, 536], "indefinit": 387, "indent": [16, 84, 90, 104, 124], "independ": [67, 126, 130, 134, 135, 143, 144, 304, 318, 380, 386, 390, 391, 392, 393, 394, 395, 398, 401, 402, 403, 404, 406, 412, 421, 431, 450, 456, 472, 480, 486, 487, 488, 489, 495, 502, 503, 513, 518, 523, 577, 581], "index": [19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 89, 91, 92, 100, 101, 102, 105, 109, 110, 118, 122, 123, 125, 126, 127, 131, 132, 133, 140, 150, 151, 152, 158, 161, 163, 166, 186, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 215, 217, 218, 219, 222, 224, 226, 228, 229, 230, 235, 241, 242, 244, 245, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 289, 315, 329, 334, 383, 386, 389, 390, 391, 392, 395, 396, 403, 404, 405, 409, 412, 422, 436, 438, 439, 445, 446, 451, 452, 453, 455, 456, 458, 459, 460, 463, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 484, 488, 489, 493, 494, 495, 496, 502, 503, 504, 516, 518, 529, 530, 531, 534, 535, 536, 537, 539, 540, 541, 542, 544, 546, 548, 549, 550, 555, 556, 557, 565, 566, 567, 568, 569, 570, 571, 572, 573], "index1": [218, 264, 545, 559], "index2": [218, 264, 545, 559], "index_1": [267, 268, 269, 560, 561, 562], "index_2": [77, 267, 268, 269, 560, 561, 562], "index_arrai": [87, 91], "index_column": [87, 91], "index_data": 197, "index_err": 477, "index_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "index_mod": [87, 91], "index_scan": 491, "indexerror": [92, 100, 247], "indic": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 100, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 380, 442, 458, 468, 478, 485, 486, 490, 491, 495, 496, 518, 530, 531, 577], "indico": 389, "indirect": [479, 506], "individu": [87, 91, 108, 120, 128, 376, 386, 392, 393, 395, 400, 403, 404, 408, 452, 455, 458, 466, 469, 473, 480, 481, 483, 485, 488, 489, 504, 514, 518, 523], "indiviud": 402, "indxschm": [193, 194, 205, 206], "ineffici": [87, 91, 383], "ineqcon": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "inequ": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "inertia": [51, 54], "inf": [67, 237, 278, 408, 491], "infer": [123, 125, 191, 192, 193, 194, 196, 204, 205, 206, 226, 381, 502, 530], "inferno": 486, "infil": 380, "infin": 491, "influenc": 491, "info": [16, 67, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 85, 86, 87, 91, 94, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 154, 160, 162, 164, 288, 290, 315, 381, 395, 396, 400, 409, 415, 425, 426, 428, 435, 436, 439, 456, 460, 461, 463, 467, 473, 477, 479, 480, 481, 486, 494, 495, 496, 498, 500, 502, 578], "info_dict": [102, 105, 109, 110, 288, 290, 373, 428, 446, 481], "info_t": [100, 452, 455, 456, 458, 463, 474, 481, 488, 518], "infodict": 373, "inform": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 67, 69, 71, 72, 74, 75, 76, 78, 79, 80, 84, 85, 88, 90, 91, 94, 99, 100, 101, 102, 104, 105, 109, 110, 123, 124, 125, 150, 154, 160, 162, 164, 165, 168, 173, 174, 179, 180, 199, 211, 218, 219, 220, 221, 222, 223, 225, 226, 228, 230, 231, 234, 235, 236, 237, 238, 239, 240, 242, 248, 249, 250, 251, 252, 254, 255, 260, 261, 262, 264, 267, 268, 269, 271, 272, 275, 276, 291, 297, 315, 331, 362, 363, 380, 384, 385, 390, 392, 393, 394, 395, 396, 403, 404, 407, 408, 410, 415, 416, 417, 425, 427, 428, 431, 433, 439, 445, 446, 451, 453, 456, 457, 464, 467, 468, 471, 477, 478, 481, 482, 483, 485, 486, 489, 493, 494, 495, 496, 502, 503, 504, 513, 514, 515, 516, 518, 531, 578, 581], "infrar": 226, "infrastructur": [410, 418, 431, 442, 445], "ingredi": [404, 479], "inherit": [87, 91, 289, 380, 390, 392, 395, 404, 407, 408, 426, 431, 438, 481, 484, 529, 530], "init": [19, 20, 26, 87, 91, 122, 127, 133, 170, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 248, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 319, 331, 392, 428, 443, 445, 446, 447, 459, 469, 473, 480, 481, 482, 504], "initi": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 53, 65, 84, 87, 90, 91, 104, 123, 124, 125, 133, 194, 197, 198, 224, 247, 249, 250, 307, 380, 385, 390, 391, 392, 396, 433, 450, 458, 461, 463, 464, 466, 467, 468, 471, 475, 480, 481, 486, 489, 502, 503, 504, 513, 515, 563, 577], "initialis": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380, 402, 491], "inject": [458, 471], "inlin": [385, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 486, 487, 488, 489, 493, 494, 496, 502, 503, 504], "inner": [44, 52, 53, 127, 168, 178, 261, 461, 504, 541], "inner_height": [527, 531], "inner_width": [527, 531], "input": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 84, 86, 87, 90, 91, 102, 104, 105, 108, 118, 120, 122, 123, 124, 125, 126, 129, 130, 133, 137, 138, 139, 140, 142, 146, 151, 152, 154, 161, 162, 163, 164, 165, 166, 168, 170, 174, 176, 178, 192, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 215, 217, 224, 239, 247, 274, 275, 276, 289, 307, 318, 328, 331, 350, 352, 373, 375, 386, 388, 390, 391, 392, 393, 394, 395, 396, 401, 416, 426, 431, 434, 441, 445, 447, 458, 467, 468, 475, 482, 486, 491, 516, 530, 531, 579], "input_map": [111, 116], "input_shap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_units_allow_dimensionless": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_units_equival": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_units_strict": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "inputs_map": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "ins": 445, "insensit": 200, "insert": [87, 91, 92, 100, 247, 406, 426, 581], "insert_row": [87, 91], "inset": 432, "insid": [50, 83, 102, 109, 115, 117, 150, 176, 192, 193, 194, 196, 201, 204, 205, 206, 224, 247, 263, 369, 373, 380, 381, 394, 396, 404, 431, 450, 455, 458, 460, 463, 465, 471, 474, 481, 485, 487, 488, 489, 493, 495, 515, 525, 527, 528, 531], "inside_geom": 487, "insight": 415, "inspect": [392, 396, 416, 455, 457, 463, 467, 468, 483, 486, 488, 493, 494], "inspir": [380, 404, 409], "instal": [87, 91, 379, 380, 383, 387, 388, 389, 397, 409, 410, 411, 414, 416, 417, 420, 421, 431, 435, 438, 439, 440, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 518, 578], "instanc": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 84, 85, 86, 87, 88, 90, 91, 92, 104, 120, 124, 125, 126, 128, 130, 131, 165, 167, 175, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 248, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 325, 331, 367, 369, 370, 371, 374, 376, 380, 386, 391, 392, 395, 396, 402, 404, 407, 431, 453, 455, 458, 469, 480, 482, 483, 485, 487, 488, 489, 504, 508, 518, 530, 531, 554], "instanti": [15, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 193, 194, 196, 198, 205, 206, 391, 396, 452, 456, 480, 481, 486, 489, 491, 502], "instead": [16, 19, 20, 26, 84, 85, 87, 90, 91, 102, 104, 105, 109, 110, 114, 124, 180, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 381, 383, 385, 387, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 408, 411, 412, 414, 421, 424, 427, 428, 441, 445, 447, 451, 457, 463, 467, 469, 471, 472, 474, 475, 480, 481, 484, 485, 486, 489, 491, 494, 515, 522, 523, 530, 531, 578], "instruct": [380, 389, 397, 409, 411, 412, 420, 431, 435, 439, 467, 493], "instrument": [6, 83, 95, 108, 153, 157, 158, 232, 380, 390, 391, 392, 393, 395, 400, 404, 412, 416, 425, 428, 440, 441, 442, 449, 452, 453, 455, 456, 459, 463, 470, 475, 477, 481, 483, 484, 485, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 514, 515, 516, 520, 522, 524, 576, 577], "int": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 33, 34, 38, 42, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 82, 83, 84, 85, 87, 88, 90, 91, 93, 94, 102, 103, 104, 105, 108, 109, 110, 112, 113, 118, 120, 124, 125, 126, 127, 130, 131, 133, 141, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 176, 180, 181, 186, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 213, 214, 215, 217, 218, 219, 221, 222, 223, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 282, 284, 286, 288, 289, 290, 294, 295, 296, 298, 303, 307, 318, 319, 325, 329, 331, 334, 335, 336, 337, 339, 340, 367, 373, 380, 394, 438, 483, 508], "int64": [102, 105, 109, 110, 111, 116, 122, 133, 516], "int_": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 523, 535], "int_flux": 479, "integ": [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 87, 91, 92, 93, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 133, 141, 142, 151, 152, 158, 163, 166, 169, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 215, 217, 224, 247, 307, 325, 331, 380, 386, 394, 530], "integr": [6, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 31, 32, 37, 51, 101, 102, 105, 109, 110, 123, 125, 128, 130, 140, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 168, 193, 194, 196, 198, 202, 205, 206, 207, 208, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 279, 280, 282, 318, 379, 387, 389, 391, 393, 394, 395, 397, 398, 400, 404, 406, 419, 421, 422, 426, 427, 431, 436, 437, 438, 439, 440, 441, 442, 445, 455, 457, 458, 460, 474, 477, 479, 480, 481, 486, 487, 489, 504, 506, 514, 516, 522, 537, 557], "integral_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 398, 428, 477], "integral_flux": 477, "integral_flux_imag": 432, "integrate_geom": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275, 431, 444, 446], "integrate_log_log": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165], "integrate_spectrum": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 422, 428], "integrate_spectrum_separ": [17, 18, 21, 22, 24, 25, 27], "intend": [87, 91, 307, 390, 408, 484], "intens": [193, 194, 196, 202, 205, 206, 211, 238, 390, 486, 514], "intent": 385, "interact": [19, 20, 87, 91, 163, 166, 193, 194, 196, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 379, 380, 381, 389, 390, 391, 392, 396, 400, 403, 416, 425, 451, 463, 471, 483, 486, 488, 489, 498, 502, 503, 527, 530, 554, 578], "interchang": 530, "interest": [115, 117, 126, 130, 211, 286, 385, 393, 394, 398, 400, 410, 453, 463, 467, 469, 477, 480, 481, 483, 485, 487, 490, 493, 494, 504, 515, 516, 554, 577, 580, 581], "interfac": [6, 11, 15, 19, 20, 87, 91, 209, 211, 214, 215, 216, 217, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 384, 385, 386, 390, 392, 393, 395, 397, 398, 399, 400, 421, 424, 426, 427, 428, 431, 435, 438, 439, 445, 449, 451, 456, 459, 460, 463, 471, 472, 483, 489, 493, 498, 503, 504, 505, 514, 515, 518, 526, 529, 554, 575, 576, 577, 578], "interfer": 409, "intermedi": [204, 389, 396, 406, 416, 452, 473], "intern": [15, 19, 20, 26, 87, 91, 123, 125, 136, 137, 138, 139, 170, 176, 201, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 282, 307, 319, 380, 392, 394, 396, 399, 404, 431, 433, 442, 445, 450, 456, 463, 472, 478, 481, 484, 486, 496, 502, 514, 518, 573], "interp": [19, 20, 155, 193, 194, 196, 198, 202, 203, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 320, 375, 403, 408, 444, 446, 458, 464, 468, 471, 474, 484, 485, 486, 489, 494, 495, 496, 530, 531, 554, 555], "interp1": 486, "interp1d": 320, "interp2": 486, "interp_by_coord": [193, 194, 196, 202, 205, 206, 275, 442, 486], "interp_by_pix": [193, 194, 196, 202, 205, 206, 271, 272, 486], "interp_kwarg": [68, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 226, 271, 272, 275, 276, 380, 484, 494, 563], "interp_map": [193, 194, 196, 202, 205, 206], "interp_missing_data": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165], "interp_param": 380, "interp_scal": [101, 287, 320], "interp_to_geom": [193, 194, 196, 202, 205, 206, 428, 444, 486, 494, 518], "interp_weight": 192, "interpol": [6, 26, 94, 101, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 173, 192, 193, 194, 196, 198, 202, 203, 205, 206, 226, 239, 249, 250, 271, 272, 274, 275, 276, 287, 319, 320, 321, 379, 391, 392, 393, 421, 426, 431, 433, 436, 439, 441, 442, 443, 444, 445, 446, 455, 468, 484, 485, 489, 494, 495, 518, 526, 530, 563], "interpolatedunivariatesplin": 274, "interpret": [91, 102, 105, 128, 141, 142, 194, 198, 204, 205, 206, 325, 398, 408, 486, 516, 531], "intersect": [89, 176, 177, 181, 201, 394, 473], "interspers": 385, "interstellar": [45, 467], "interv": [52, 53, 78, 82, 83, 86, 88, 89, 91, 92, 100, 101, 103, 108, 125, 130, 174, 198, 203, 211, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 389, 390, 394, 395, 398, 404, 412, 425, 427, 428, 431, 440, 441, 446, 447, 472, 474, 477, 483, 486, 495, 503, 515, 530, 577, 580], "interval_edg": 203, "intrins": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 248, 296, 391, 395], "intrinsic_model": 451, "intro_map": 440, "introduc": [19, 20, 193, 194, 196, 198, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 387, 388, 390, 392, 393, 394, 395, 397, 400, 402, 405, 408, 422, 424, 425, 427, 428, 431, 433, 434, 438, 439, 440, 442, 445, 446, 447, 466, 478, 485, 489, 531, 536, 578, 581], "introduct": [383, 401, 402, 403, 421, 425, 426, 427, 428, 447, 453, 456, 489, 502, 503, 507], "introductori": 478, "introspect": 307, "intuit": [401, 581], "invalid": [366, 380, 394, 407, 408, 431, 447, 457, 461, 467, 496], "invalid_pixel": 487, "invers": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 204, 218, 219, 222, 226, 228, 229, 230, 235, 238, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 288, 289, 290, 329, 336, 393, 467, 487, 489, 491, 554], "inverse_al": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "inverse_cdf": 467, "inversecdf": 393, "inversecdfsampl": [393, 423], "inversecompton": [248, 554], "invert": [91, 192, 204, 504], "invest": 383, "investig": [466, 473, 477], "involv": [87, 91, 102, 105, 109, 110, 380, 385, 394, 396, 398, 402, 459, 578], "io": [13, 83, 86, 87, 91, 126, 186, 196, 201, 211, 276, 383, 389, 400, 410, 422, 425, 437, 441, 445, 467, 483, 484, 486, 493, 515, 518, 529, 531], "iop": 295, "iopscienc": 295, "ipix": 192, "ipykernel": [412, 414], "ipynb": [388, 400, 422, 425, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "ipynb_to_galleri": 380, "ipython": [87, 91, 379, 380, 396, 397, 411, 415, 423, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 517, 578], "ipython3": 413, "ipywidget": 486, "irap": 400, "irf": [6, 82, 88, 96, 102, 103, 105, 108, 109, 110, 111, 112, 113, 114, 116, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 173, 179, 180, 182, 183, 184, 186, 188, 189, 192, 201, 204, 263, 306, 380, 381, 386, 390, 391, 392, 393, 396, 399, 400, 401, 402, 408, 412, 420, 422, 425, 427, 428, 431, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 449, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 467, 468, 471, 472, 474, 485, 487, 490, 491, 492, 494, 495, 496, 498, 502, 503, 514, 515, 518, 520, 521, 522, 524, 525, 576, 577], "irf_dict": 167, "irf_dl3_hdu_specif": 484, "irf_fil": [88, 148, 152, 153, 154, 163, 450, 458, 471, 474, 484, 493], "irf_filenam": [467, 468, 484, 493], "irf_map": [151, 152, 158, 163, 166], "irf_path": 467, "irfmap": [151, 152, 163, 166, 412, 428, 518], "irfmetadata": 407, "irfmodel": 391, "irfs1": 493, "irfs2": 493, "irfs_path": 82, "irfstack": [428, 437], "irregular": [192, 204, 530], "irrespect": [393, 463, 486, 530], "is_align": [192, 198, 203, 204], "is_all_point_sky_region": 201, "is_all_same_energy_shap": 100, "is_all_same_shap": 100, "is_all_same_typ": 100, "is_allclos": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206], "is_allski": [191, 192, 201, 204], "is_bkg": 107, "is_contigu": [203, 486], "is_convertible_to_flux_sed_typ": [123, 125], "is_energy_axi": 198, "is_energy_depend": [220, 221, 223, 225, 231, 234, 236, 237, 238, 239, 240, 249, 251, 255, 260, 261, 262, 265, 271, 274, 275, 277, 444, 489], "is_fixed_rad_max": 165, "is_flat": [191, 192, 197, 201, 204], "is_hpx": [192, 201, 204], "is_imag": [191, 192, 201, 204], "is_mask": [193, 194, 196, 202, 205, 206], "is_norm": [408, 433, 446], "is_norm_spectral_model": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 431, 489], "is_nul": 486, "is_pointed_observ": 83, "is_pointlik": [71, 74, 75, 76, 78, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 431], "is_region": [192, 201, 204], "is_regular": [192, 201, 204], "is_ul": [67, 123, 125, 431, 446, 456, 480, 482, 504], "is_unidimension": 197, "isf": [483, 580], "isinst": [380, 391, 394, 403, 407, 408], "ism": [52, 53, 554], "isn": [383, 387, 394, 396, 399, 410, 465, 578], "isnan": [486, 487], "iso": [88, 125, 203, 208, 445, 474, 488, 494, 530, 572], "iso_p8r2_source_v6_v06": [488, 494], "isol": [394, 411, 487], "isot": [361, 582], "isotherm": [22, 506], "isotrop": [47, 221, 281, 488], "issu": [19, 20, 26, 87, 91, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 381, 383, 388, 389, 391, 392, 394, 397, 400, 405, 406, 407, 408, 409, 412, 413, 414, 418, 421, 433, 434, 436, 437, 438, 439, 440, 442, 443, 444, 445, 446, 465, 487, 493, 514, 518, 578, 579], "item": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 92, 100, 200, 247, 400, 407], "iter": [87, 91, 92, 100, 123, 125, 133, 193, 194, 196, 197, 198, 200, 202, 203, 205, 206, 247, 383, 386, 388, 396, 432, 459, 474], "iter_by_axi": [123, 125, 193, 194, 196, 202, 205, 206], "iter_by_axis_data": 202, "iter_by_coord": 423, "iter_by_edg": [198, 203], "iter_by_imag": [193, 194, 196, 202, 205, 206, 440], "iter_by_image_data": [193, 194, 196, 202, 205, 206, 486], "iter_by_image_index": [193, 194, 196, 202, 205, 206], "iter_by_pix": 423, "iter_with_reshap": 197, "itercol": [87, 91], "iterrow": [87, 91], "itertool": 483, "its": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 102, 105, 109, 110, 123, 125, 169, 170, 179, 192, 198, 200, 218, 219, 222, 225, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 286, 380, 383, 386, 389, 390, 392, 395, 396, 397, 399, 404, 406, 407, 410, 413, 431, 445, 446, 447, 452, 456, 457, 460, 467, 468, 472, 473, 478, 480, 482, 483, 485, 486, 487, 488, 489, 491, 502, 504, 507, 523, 525, 527, 529, 530, 531, 577, 580], "itself": [87, 91, 379, 380, 395, 406, 452, 472, 473, 475, 491, 578], "ivoa": [380, 446], "j": [19, 20, 23, 102, 109, 128, 135, 144, 289, 381, 383, 514], "j0001": [480, 504], "j0002": [480, 504], "j0003": [480, 504], "j0006": 480, "j0007": 504, "j0008": [480, 504], "j0009": 504, "j0010": 480, "j0013": 480, "j0021": 480, "j0022": 480, "j0025": 480, "j0031": 480, "j0349": 480, "j0521": 455, "j0534": [480, 504], "j0633": 504, "j0835": [453, 504], "j0851": 480, "j1036": 480, "j1104": [480, 504], "j1506": 453, "j1507": 453, "j1513": 480, "j1514": 480, "j1555": 504, "j1653": 480, "j1713": 452, "j1731": 488, "j1732": 488, "j1741": 488, "j1744": 488, "j1745": 488, "j1746": 488, "j1747": 488, "j1748": 488, "j1753": 488, "j1800": 488, "j1801": 488, "j1802": 488, "j1809": 488, "j1811": 488, "j1824": 480, "j1825": 466, "j1843": 67, "j1844": 67, "j2028": 480, "j2158": 480, "j2347": 504, "j2350": 504, "j2351": 504, "j2352": 504, "j2356": 504, "j2357": [480, 504], "j2358": [480, 504], "j2359": [480, 504], "j_": 23, "jackson": [87, 91], "jacob": [421, 440], "jacobian": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 427], "jalel": [428, 431], "jan": [385, 386, 389, 392, 397, 401, 417, 418], "jana": 446, "januari": [387, 389, 405], "jargon": 412, "jason": 421, "javascript": [87, 91], "jax": 398, "jbernet": 446, "jean": [439, 440], "jeffrei": 491, "jeltema": 506, "jep": 385, "jet": 371, "jfact": 479, "jfact_decai": 479, "jfact_map": 479, "jfactor": [19, 20, 445], "jfactori": 479, "jfx2l5qr": 489, "jj": 209, "jk": [102, 109, 514], "jkl": 514, "jl": 514, "jo": [87, 91], "job": [93, 126, 127, 130, 133, 169, 433], "johann": [424, 431, 435, 436, 437, 438, 439, 440], "john": [87, 91], "join": [382, 391, 392, 493], "joint": [100, 109, 110, 120, 131, 134, 135, 144, 146, 211, 286, 388, 389, 392, 396, 400, 402, 412, 421, 422, 424, 425, 440, 441, 447, 449, 452, 453, 455, 456, 457, 459, 466, 470, 474, 481, 482, 483, 485, 489, 490, 491, 494, 498, 502, 516, 518, 575, 576, 577], "joint_fit": 475, "joint_result": 475, "jointli": [490, 495], "jonathan": [435, 436], "jose": [431, 433, 439], "joshi": 431, "jos\u00e9": [388, 396, 400, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 439, 440, 441], "journal": 406, "jouvin": [421, 423, 424, 425, 428, 436, 437, 438, 439, 440], "jqueri": [87, 91], "jskwarg": [87, 91], "json": [16, 84, 90, 104, 124, 409, 433, 435, 439], "json_data": [16, 84, 90, 104, 124], "json_schema": [16, 84, 90, 104, 124], "jsonschema": [397, 424, 425], "jsviewer": [87, 91, 465], "juan": 446, "jul": [386, 395, 397, 399, 418], "juli": [386, 389, 394, 396, 397, 399, 403, 405, 407, 473, 477], "julia": 446, "julian": 582, "julien": [437, 438, 439], "jun": [394, 396, 397, 402, 403], "june": [394, 398, 418], "junior": [66, 400], "jupyt": [379, 387, 396, 397, 400, 411, 415, 417, 422, 437, 438, 439, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "jupyterlab": [379, 397, 400, 416, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "jupytext": 400, "just": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 86, 153, 355, 380, 381, 382, 383, 385, 388, 390, 394, 396, 397, 398, 400, 410, 411, 413, 439, 441, 451, 455, 456, 458, 463, 465, 467, 472, 473, 475, 478, 481, 486, 494, 495, 502, 504, 515, 531, 578], "juypter": 396, "jyear": [87, 91], "k": [19, 33, 52, 53, 102, 109, 200, 222, 274, 331, 451, 453, 455, 457, 480, 483, 486, 488, 494, 514, 531, 535, 547, 554, 565], "k6z01o7l": 477, "kagcs2ji": 458, "kai": [439, 440], "kaori": 423, "kaspi": [31, 39, 45], "katrin": [408, 444, 445, 446], "kb": 388, "keep": [13, 87, 91, 100, 123, 161, 193, 194, 196, 202, 205, 206, 211, 380, 381, 383, 385, 386, 387, 388, 394, 397, 398, 399, 400, 403, 404, 429, 439, 460, 461, 466, 471, 477, 483, 488, 494], "keep_byteord": [87, 91], "keep_column": [87, 91], "keep_mc_id": [103, 108], "keepdim": [161, 163, 166, 193, 194, 196, 202, 205, 206, 420, 425, 485], "kei": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 82, 84, 87, 89, 90, 91, 102, 104, 105, 109, 110, 118, 124, 133, 200, 211, 343, 348, 349, 366, 388, 390, 397, 402, 404, 407, 417, 440, 451, 481, 489, 544], "kept": [89, 102, 105, 109, 110, 123, 125, 126, 130, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 380, 386, 400, 404, 451, 477, 516], "kernel": [102, 105, 109, 110, 118, 122, 128, 129, 133, 150, 151, 152, 161, 163, 166, 168, 173, 178, 180, 183, 194, 204, 206, 386, 407, 412, 414, 426, 427, 432, 437, 441, 442, 447, 459, 461, 475, 485, 486, 487, 494, 504, 514, 518, 522], "kernel_width": [133, 459, 465], "kernelbackgroundestim": 427, "kernelbackgroundmapestim": 401, "kev": [107, 133, 198, 459, 481, 482, 531], "keyboard": 416, "keyerror": [91, 200, 404], "keyword": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 82, 83, 84, 86, 87, 88, 90, 91, 95, 101, 102, 104, 105, 109, 110, 124, 125, 127, 128, 145, 146, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 209, 211, 214, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 281, 287, 289, 319, 327, 328, 349, 361, 363, 364, 367, 368, 369, 373, 374, 375, 376, 377, 407, 427, 431, 434, 442, 443, 457, 467, 468, 481, 486, 495, 516, 531, 542], "kg": 52, "khelifi": [423, 425, 428, 431, 434, 438, 439, 440, 442, 443], "kh\u00e9lifi": [406, 442, 444, 445, 446, 447], "kill": 409, "kind": [87, 91, 355, 391, 392, 393, 398, 399, 403, 406, 440], "kinet": 44, "king": [162, 424, 435, 436, 437, 438, 439, 440, 484, 524], "kirsti": [444, 445, 446, 447], "kl": 514, "klepser": 435, "km": [32, 37], "km2": 493, "km2a": [57, 70], "know": [381, 383, 385, 389, 394, 396, 397, 404, 410, 422, 439, 440, 441, 465, 468, 479, 484, 485, 486, 493, 495, 496, 578], "knowledg": [408, 416, 453, 458, 464, 466, 469, 471, 472, 483, 485, 486, 488, 491], "known": [288, 290, 307, 393, 418, 455, 459, 461, 466, 472, 485, 486, 487, 504, 518, 528, 578, 579, 580], "koenig": [289, 447], "konig": [289, 447], "konrad": 446, "kornecki": 446, "kovalev": 478, "kpc": [17, 18, 21, 22, 24, 25, 27, 29, 33, 34, 38, 248, 307, 310, 479, 480, 512, 554], "kurt": 446, "kwarg": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 53, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 83, 86, 87, 88, 91, 101, 102, 105, 109, 110, 125, 126, 127, 128, 130, 145, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 175, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 213, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 281, 287, 319, 330, 355, 367, 368, 369, 372, 374, 375, 376, 377, 380, 391, 407, 408, 444, 453, 457, 467, 475, 485, 496, 566], "kwargs_ax": [373, 461, 463], "kwargs_background": [109, 110], "kwargs_colorbar": [147, 148, 150, 153, 154, 155, 160, 162, 164, 206, 368], "kwargs_count": [109, 110], "kwargs_excess": [109, 110], "kwargs_extens": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 466], "kwargs_fit": [109, 110, 373], "kwargs_fp": 101, "kwargs_hist": [373, 461, 463], "kwargs_list": 200, "kwargs_model": 101, "kwargs_npred_sign": [109, 110], "kwargs_point": [201, 224, 247, 457], "kwargs_posit": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 466], "kwargs_residu": [101, 109, 110], "kwargs_saf": [109, 110], "kwargs_spati": [102, 105, 109, 110, 463, 503], "kwargs_spectr": [102, 105, 109, 110, 463, 503], "kwargs_spectrum": [101, 109, 110], "l": [23, 26, 51, 54, 101, 102, 109, 110, 173, 377, 381, 394, 403, 406, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 466, 471, 474, 475, 480, 481, 483, 485, 486, 487, 489, 490, 491, 493, 494, 502, 503, 504, 514, 518, 531, 554, 563, 577, 579, 580, 581], "l06": [48, 508], "l_": [52, 53], "l_0": [51, 511, 535, 536], "l_snr": 44, "la": 437, "lab": [406, 412, 414, 416, 439], "label": [92, 195, 198, 203, 224, 247, 305, 368, 369, 374, 377, 380, 381, 384, 389, 393, 394, 409, 410, 431, 433, 442, 443, 445, 447, 450, 451, 453, 455, 457, 461, 463, 464, 468, 469, 472, 473, 475, 478, 479, 483, 486, 489, 490, 491, 504, 511, 512, 520, 544, 550, 553, 554, 558, 563], "label_axi": [195, 486], "label_axis2": 486, "labelcolor": 450, "labelmapaxi": [431, 445, 447], "lack": [200, 395, 475], "lafferti": [419, 577], "lafferty1994": 577, "lai": 487, "lambda": [67, 229, 230, 289, 373, 480, 493, 548, 580], "lambda_": [229, 230, 286, 453, 455, 463, 548, 550], "lancast": [135, 144], "land": 410, "langl": 19, "languag": [387, 399], "laplac": [237, 537], "lar": [396, 420, 421, 422, 438, 439, 440, 443, 445, 447], "larg": [67, 87, 91, 193, 194, 196, 202, 205, 206, 271, 273, 275, 380, 383, 385, 386, 394, 400, 401, 421, 431, 440, 441, 446, 450, 455, 461, 473, 480, 487, 493, 494, 495, 504, 514, 516, 518, 519, 525, 531, 537, 575, 578, 583], "large_scale_compon": [67, 480], "larger": [27, 132, 151, 152, 158, 163, 166, 286, 295, 381, 388, 399, 445, 447, 450, 452, 455, 481, 485, 486, 487, 491, 515, 531, 537, 579, 580], "largest": [102, 105, 109, 110, 206, 380], "last": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 92, 94, 100, 193, 194, 195, 196, 198, 202, 205, 206, 247, 337, 377, 387, 390, 392, 402, 406, 409, 410, 412, 414, 420, 421, 478, 525, 527], "lat": [16, 47, 58, 60, 61, 62, 64, 65, 69, 71, 74, 75, 77, 78, 83, 86, 91, 94, 96, 102, 105, 109, 111, 116, 122, 126, 127, 129, 133, 151, 152, 158, 163, 166, 169, 193, 194, 196, 199, 202, 204, 205, 206, 220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 281, 286, 309, 310, 313, 335, 380, 381, 388, 389, 390, 391, 392, 393, 399, 400, 403, 410, 412, 417, 420, 425, 438, 439, 440, 447, 449, 453, 456, 459, 460, 461, 463, 465, 469, 472, 473, 477, 480, 481, 482, 484, 485, 486, 487, 488, 489, 490, 497, 498, 502, 503, 504, 506, 513, 515, 516, 518, 523, 530, 531, 535, 536, 537, 538, 539, 540, 541, 575, 582], "lat_0": [225, 234, 237, 251, 260, 261, 275, 395, 403, 459, 460, 463, 464, 466, 467, 468, 471, 472, 480, 481, 488, 489, 494, 502, 503, 535, 536, 537, 539, 540, 541, 542], "lat_0_err": 466, "lat_pnt": [309, 313], "lat_rang": 335, "lat_t": [309, 313], "later": [380, 385, 386, 387, 391, 392, 393, 396, 397, 398, 399, 400, 401, 419, 421, 431, 432, 434, 435, 441, 451, 455, 457, 463, 464, 481, 485, 486, 489, 494, 504, 514], "latest": [126, 186, 276, 307, 383, 387, 400, 405, 406, 409, 413, 442, 450, 458, 460, 463, 464, 465, 471, 474, 483, 515, 518, 531], "latex": [380, 381], "latex_inlin": 445, "latitud": [94, 148, 191, 192, 193, 194, 199, 201, 204, 205, 206, 335, 367, 424, 469, 486, 489, 523, 530, 538], "latpol": 486, "latter": [180, 211, 391, 393, 395, 401, 404, 407, 425, 457, 458, 467, 468, 471, 487, 488, 525, 527, 579], "launch": [412, 414, 439, 578], "laura": [428, 431, 433, 434, 440, 442, 444, 445, 446, 447], "law": [27, 101, 118, 123, 125, 127, 132, 140, 161, 163, 166, 218, 228, 229, 230, 252, 253, 254, 255, 264, 267, 268, 269, 279, 289, 334, 393, 419, 425, 439, 449, 451, 458, 460, 463, 467, 469, 471, 473, 474, 475, 477, 488, 489, 491, 518, 532, 544, 564, 570], "law2": 557, "layer": [87, 91, 392, 399], "layout": [431, 463, 471, 486, 493, 502, 503], "lazi": [88, 100, 102, 105, 109, 110, 273, 316, 439], "lazili": 102, "lazyfitsdata": 427, "lc": [86, 130, 203, 393, 395], "lc_1d": [123, 125, 145, 472, 473, 474, 478], "lc_3d": 472, "lc_estim": 395, "lc_maker_1d": [472, 473, 474], "lc_maker_3d": 472, "lc_new": 473, "ldqg0rcq": 477, "le": 90, "lea": 428, "lead": [122, 380, 389, 394, 399, 401, 403, 405, 406, 424, 447, 491, 493, 495, 506, 578], "leak": [457, 527], "leakag": [289, 447, 472], "learn": [148, 153, 380, 397, 400, 409, 412, 414, 416, 440, 453, 455, 459, 465, 466, 467, 469, 478, 480, 481, 483, 486, 489, 491, 493, 498, 504, 578], "least": [43, 44, 134, 143, 380, 383, 385, 389, 467, 478, 530], "leav": [385, 392, 394, 395, 397, 400, 411, 488], "lefaucheur": [437, 438, 439], "left": [21, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 87, 91, 102, 109, 123, 125, 130, 133, 151, 153, 193, 194, 196, 202, 205, 206, 230, 235, 254, 267, 291, 297, 380, 388, 390, 394, 396, 399, 403, 416, 459, 465, 472, 474, 478, 480, 488, 516, 525, 528, 536, 537, 544, 545, 548, 549, 551, 552, 554, 556, 559, 560, 561, 562, 566, 567, 568, 570, 579, 580, 581], "legaci": [380, 439, 440], "legacy_altaz": 85, "legal": [87, 91], "legend": [377, 450, 451, 453, 455, 457, 463, 464, 468, 469, 472, 473, 475, 478, 479, 483, 489, 490, 491, 494, 511, 512, 520, 544, 550, 553, 554, 558, 563], "legend_kwarg": 377, "lemi\u00e8r": 439, "len": [83, 286, 377, 459, 466, 467, 468, 473, 475, 477, 478, 480, 485, 488, 504, 518], "lenain": [439, 440], "length": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 80, 82, 87, 91, 94, 169, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 289, 319, 373, 406, 453, 455, 458, 465, 469, 477, 480, 483, 486, 494, 504, 535], "lengthi": 486, "lennarz": [422, 436, 438], "leq": [535, 540, 541], "less": [77, 192, 194, 198, 239, 274, 297, 380, 385, 387, 398, 410, 439, 483, 489, 490, 491], "let": [67, 280, 380, 383, 385, 389, 394, 397, 412, 415, 439, 440, 441, 453, 456, 457, 458, 459, 463, 464, 465, 466, 467, 469, 474, 475, 480, 481, 483, 486, 487, 489, 491, 494, 502, 504, 578], "level": [6, 11, 15, 16, 83, 84, 90, 104, 122, 124, 211, 288, 290, 380, 381, 383, 384, 385, 391, 393, 395, 399, 400, 401, 404, 407, 412, 416, 423, 424, 425, 426, 427, 431, 439, 446, 449, 452, 453, 455, 456, 459, 460, 461, 463, 465, 467, 471, 472, 473, 474, 475, 478, 479, 482, 483, 488, 490, 493, 494, 495, 496, 498, 500, 504, 505, 514, 515, 516, 523, 525, 526, 576, 577, 578, 582], "levelnam": 380, "levmar": [211, 483], "lf": 410, "lgpl": 380, "lgtm": 410, "lhaaso": [55, 57], "li": [118, 122, 176, 386, 450, 459, 461, 467, 482, 577, 580], "lib": [344, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "librari": [87, 91, 380, 385, 386, 390, 400, 406, 417, 452, 455, 467, 489, 493, 503, 506, 515, 518, 576, 578], "licenc": 406, "licens": [406, 416], "lie": [191, 192, 198, 201, 204, 482], "life": [387, 483], "lifetim": [20, 446], "lifetime_age_of_univers": 20, "light": [15, 73, 77, 130, 137, 226, 239, 296, 384, 391, 393, 396, 400, 404, 412, 425, 427, 428, 435, 438, 440, 445, 446, 449, 451, 476, 477, 478, 498, 516, 517, 527, 532, 574, 576], "light_curv": [16, 239, 400, 440, 449, 456, 460, 461, 463, 472, 476, 502, 573], "light_curve_flar": [449, 473, 476], "light_curve_model": 573, "light_curve_simul": [449, 474, 476], "lightcrv_pksb1222": [239, 573], "lightcurv": [71, 73, 74, 75, 77, 78, 119, 125, 130, 136, 137, 138, 139, 145, 202, 203, 239, 293, 294, 296, 389, 391, 396, 399, 401, 404, 412, 423, 425, 426, 427, 431, 437, 438, 439, 440, 442, 443, 445, 446, 449, 472, 473, 476, 482, 498, 513, 518, 573], "lightcurve1": 136, "lightcurve2": 136, "lightcurve_at_energi": 404, "lightcurveconfig": 16, "lightcurveestim": [119, 395, 396, 401, 404, 412, 423, 425, 427, 428, 431, 439, 440, 445, 472, 473, 474, 477, 518], "lightcurvetablemodel": [391, 393], "lightcurvetempl": 391, "lightcurvetemplatemodel": [444, 445], "lightcurvetemplatetemporalmodel": [270, 403, 442, 445, 447, 468, 489, 573], "like": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 50, 52, 53, 67, 80, 82, 87, 88, 91, 141, 142, 157, 165, 193, 194, 196, 200, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 307, 327, 337, 379, 380, 381, 383, 385, 386, 387, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 406, 408, 409, 411, 412, 416, 422, 431, 433, 434, 438, 439, 441, 442, 444, 445, 450, 451, 453, 455, 456, 457, 458, 461, 468, 469, 475, 478, 479, 481, 483, 484, 486, 490, 491, 493, 494, 498, 502, 504, 506, 507, 514, 518, 523, 531, 541, 576, 578, 579, 580, 581], "likelhood": 392, "likelihood": [100, 101, 102, 105, 110, 122, 123, 124, 125, 127, 133, 134, 143, 287, 304, 380, 386, 389, 392, 393, 396, 398, 400, 401, 402, 404, 412, 419, 421, 422, 425, 432, 435, 438, 440, 441, 446, 447, 453, 455, 456, 457, 459, 465, 469, 472, 473, 475, 481, 482, 483, 485, 491, 494, 502, 503, 506, 514, 516, 518, 554, 576, 577, 579, 580], "likelihood_profil": [391, 421], "likelihood_typ": 426, "likewis": [194, 206], "lima": 118, "lima1983": [516, 577, 580], "lima_map": 461, "lima_maps2": 461, "limamapestim": [401, 427], "limit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 53, 77, 80, 87, 91, 101, 112, 113, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 143, 150, 165, 168, 198, 215, 217, 252, 287, 288, 290, 327, 328, 367, 386, 388, 389, 391, 392, 393, 394, 395, 397, 398, 400, 401, 403, 404, 408, 421, 427, 431, 438, 439, 440, 441, 446, 450, 455, 459, 463, 466, 469, 472, 481, 482, 483, 486, 487, 490, 494, 502, 514, 516, 518, 527, 536, 554, 563, 576, 577, 581], "lin": [19, 20, 198, 202, 203, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 287, 319, 320, 321, 408, 468, 484, 486, 496, 531, 554], "line": [6, 13, 46, 82, 83, 87, 91, 101, 102, 105, 109, 110, 154, 160, 162, 164, 201, 202, 224, 247, 339, 340, 377, 379, 381, 383, 386, 389, 391, 394, 396, 397, 404, 410, 411, 412, 414, 416, 425, 436, 439, 447, 463, 483, 485, 489, 506, 518, 531, 576], "line2d": [201, 224, 247], "linear": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 147, 148, 149, 150, 153, 155, 157, 160, 165, 193, 194, 196, 202, 203, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 271, 272, 274, 275, 276, 319, 380, 442, 449, 463, 468, 469, 471, 486, 489, 494, 502, 503, 532, 574], "linear_model": 569, "linearli": [203, 206, 486, 514], "linearsegmentedcolormap": [370, 371], "linearstretch": [370, 371], "lineartemporalmodel": [270, 489, 569], "lineno": 380, "liner": [274, 394], "linestyl": [450, 475, 477, 479, 491, 512, 531, 535, 536], "linewidth": [377, 381, 477], "linhoff": [443, 444, 445, 446, 447], "link": [67, 69, 80, 101, 224, 226, 247, 286, 383, 385, 388, 389, 392, 400, 406, 409, 410, 416, 417, 428, 431, 433, 437, 438, 439, 451, 452, 455, 456, 457, 458, 460, 463, 464, 471, 473, 474, 480, 483, 489, 491, 493, 503, 504, 518, 563, 575], "linkag": 305, "linkage_kwarg": 305, "linkcheck": 381, "linspac": [83, 152, 193, 194, 196, 202, 205, 206, 211, 467, 469, 475, 483, 484, 486, 491, 530, 535], "lint": [16, 84, 90, 104, 124], "linux": [387, 397, 410, 413, 440, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 578], "list": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 71, 72, 74, 75, 76, 78, 79, 80, 82, 83, 86, 87, 88, 89, 90, 91, 92, 93, 96, 100, 101, 102, 103, 104, 105, 108, 109, 110, 118, 120, 122, 123, 125, 126, 127, 130, 131, 133, 134, 135, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 168, 169, 173, 174, 176, 177, 179, 180, 181, 182, 185, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 209, 211, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 328, 338, 339, 340, 342, 369, 373, 374, 376, 377, 379, 380, 382, 383, 384, 385, 386, 387, 388, 389, 390, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 413, 414, 415, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 451, 452, 455, 458, 459, 464, 468, 469, 471, 472, 474, 477, 478, 481, 482, 483, 484, 485, 490, 491, 493, 494, 495, 496, 498, 503, 514, 518, 521, 530, 531, 575, 576, 577, 578], "list_format": [87, 91], "listen": 518, "listenv": 383, "liter": [16, 84, 90, 104, 124, 325, 380], "literatur": [506, 508, 577], "littl": [87, 91, 399, 401, 407, 486, 494, 523, 527, 578], "live": [83, 86, 88, 380, 385, 388, 390, 401, 441, 444, 482], "livetim": [67, 88, 89, 105, 106, 110, 163, 185, 187, 188, 386, 450, 452, 455, 456, 458, 465, 467, 468, 471, 474, 480, 481, 484, 486, 494, 495, 504, 514, 518], "livetime_fract": 89, "ljouvin": 386, "ll": [123, 125, 133, 383, 385, 397, 413, 450, 451, 452, 455, 457, 460, 461, 465, 472, 473, 474, 475, 477, 478, 578, 580], "llvm": 416, "ln": [53, 483, 561], "lo": [23, 438], "lo_bnd": 198, "lo_threshold": 150, "load": [66, 67, 83, 86, 87, 91, 100, 101, 102, 105, 109, 127, 129, 167, 173, 191, 192, 193, 194, 204, 315, 380, 434, 437, 439, 445, 456, 458, 460, 461, 467, 468, 471, 474, 475, 478, 487, 493, 494, 496, 502, 504, 515], "load_cta_irf": [441, 445], "load_irf_dict_from_fil": [163, 445, 450, 458, 467, 468, 471, 474, 493], "loc": [87, 91, 206, 373, 475, 511, 512, 520, 544, 550, 553, 554, 558], "loc_indic": [87, 91], "local": [17, 18, 21, 22, 24, 25, 27, 87, 91, 141, 142, 178, 191, 192, 201, 202, 204, 380, 381, 383, 388, 394, 409, 410, 413, 417, 421, 431, 456, 459, 460, 461, 466, 467, 479, 485, 498, 502, 518], "local_dataset": 485, "local_dens": [17, 18, 21, 22, 24, 25, 27, 479], "local_to_glob": 192, "localfold": 11, "localis": 315, "localn": [16, 84, 90, 104, 124], "locat": [47, 82, 83, 85, 87, 88, 90, 94, 137, 151, 152, 158, 163, 166, 204, 336, 388, 394, 398, 401, 406, 407, 412, 414, 445, 447, 450, 458, 467, 468, 471, 474, 480, 495, 496, 515, 531, 578], "location_info": 87, "log": [16, 19, 20, 26, 42, 84, 90, 102, 104, 123, 124, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 198, 202, 206, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 271, 272, 274, 275, 276, 279, 282, 291, 297, 318, 319, 321, 366, 375, 392, 396, 418, 435, 442, 446, 449, 451, 456, 458, 459, 460, 461, 463, 464, 465, 468, 471, 472, 473, 474, 477, 479, 481, 483, 484, 485, 486, 489, 491, 494, 495, 500, 502, 503, 518, 520, 530, 531, 532, 555, 563, 564, 570, 577, 578, 579, 580, 581], "log10": 475, "log_": [241, 242, 489, 552], "log_2": 294, "log_en": 489, "log_level": 11, "log_parabola": 453, "log_parabola_norm": 403, "logarithm": [34, 486, 491, 552], "logarithmic_spir": 34, "logb": 42, "logconfig": 16, "logenergyaxi": 438, "loggaussian": 391, "logger": [346, 349, 380, 465], "logic": [16, 84, 86, 90, 104, 124, 179, 404, 447, 486, 487], "logical_and": [193, 194, 196, 202, 205, 206], "logical_or": [193, 194, 196, 202, 205, 206, 485], "loglog": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 318, 450, 479, 510, 511, 512], "lognorm": 479, "logo": 410, "logparabola": [391, 553], "logparabolanormspectralmodel": [242, 258, 403, 428, 489, 553], "logparabolaspectralmodel": [211, 241, 258, 403, 451, 453, 455, 457, 464, 480, 483, 489, 546, 552], "logscal": 425, "logspac": [152, 193, 194, 196, 202, 205, 206, 458, 471, 474, 475, 479, 486, 510, 511, 512, 531], "logspir": [33, 38], "lomb": [395, 439], "lon": [16, 47, 91, 94, 96, 102, 105, 109, 111, 116, 122, 127, 129, 133, 151, 152, 158, 163, 166, 169, 193, 194, 196, 199, 202, 204, 205, 206, 220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 309, 310, 313, 335, 380, 381, 391, 394, 399, 403, 424, 447, 456, 459, 460, 461, 463, 465, 469, 472, 473, 477, 480, 481, 482, 484, 485, 486, 489, 490, 494, 502, 503, 504, 516, 530, 531, 535, 536, 537, 538, 539, 540, 541], "lon_0": [225, 234, 237, 251, 260, 261, 275, 395, 403, 459, 460, 463, 464, 466, 467, 468, 471, 472, 480, 481, 488, 489, 494, 502, 503, 535, 536, 537, 539, 540, 541, 542], "lon_0_err": 466, "lon_pnt": [309, 313], "lon_rang": 335, "lon_t": [309, 313], "long": [380, 383, 385, 387, 394, 396, 399, 400, 402, 405, 407, 433, 442, 451, 480, 498, 530], "longer": [295, 380, 386, 387, 394, 395, 397, 400, 413, 431, 434, 439, 440, 442, 445, 452, 458, 472], "longest": 197, "longitud": [68, 94, 148, 191, 192, 193, 194, 199, 201, 204, 205, 206, 335, 367, 394, 469, 486, 489, 523, 530, 538], "lonpol": 486, "look": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 83, 88, 102, 105, 109, 110, 125, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 337, 380, 382, 383, 385, 392, 394, 395, 397, 399, 400, 403, 416, 439, 452, 455, 456, 458, 459, 460, 461, 463, 465, 467, 469, 471, 472, 474, 475, 481, 484, 486, 489, 493, 494, 496, 498, 502, 504, 506, 515, 518, 578], "look_up": 437, "lookup": 199, "loop": [87, 91, 328, 393, 445, 455, 480, 486, 495, 502, 518], "lopez": [226, 439, 445, 544], "lopez21": [227, 451, 544], "lopez_2021": 227, "lorimer2006": [28, 29, 30, 36, 39, 40, 48], "lose": 380, "loss": 52, "lost": [100, 102, 105, 109, 110, 518, 531], "lot": [82, 380, 383, 385, 386, 387, 388, 391, 393, 394, 396, 400, 410, 420, 422, 423, 431, 439, 440, 456, 465, 494, 502, 503, 528], "low": [87, 91, 150, 198, 330, 380, 381, 384, 389, 409, 437, 439, 449, 452, 455, 459, 465, 467, 481, 487, 488, 493, 494, 498, 502, 505, 525, 579], "low_zenith": 490, "lower": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 53, 123, 125, 150, 179, 198, 200, 203, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 380, 394, 399, 400, 407, 469, 485, 503], "lower_error": 125, "lowest": [399, 478], "lp": [241, 242, 403, 453, 480, 489, 546], "lp_norm": 553, "lss": 455, "lst": [387, 493], "lsw": 409, "lt": [380, 406, 433, 442, 540, 541], "ltcube": [192, 193, 194, 196, 205, 206, 486], "lts_author": 406, "luca": [421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 442, 445], "lui": 441, "luigi": 436, "luminos": [41, 46, 51, 52, 53, 54, 248], "luminosity_spindown": [51, 54], "luminosity_tev": [52, 53, 512], "lvtm": 474, "lw": [455, 457, 459, 465, 475, 483, 531, 535, 537], "lxkwcahx": 477, "ly": [431, 488], "lyne": 37, "l\u00e9a": [421, 423, 424, 425, 428, 436, 437, 438, 439, 440], "l\u00f3pez": 439, "m": [19, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 52, 53, 87, 91, 94, 97, 111, 116, 130, 191, 192, 193, 194, 196, 202, 204, 205, 206, 289, 304, 380, 381, 383, 394, 409, 411, 412, 413, 414, 468, 479, 483, 484, 486, 489, 500, 523, 527, 529, 530, 531, 542, 578, 581], "m2": [102, 153, 173, 451, 456, 458, 460, 461, 463, 465, 471, 481, 484, 485, 493, 502, 503], "m8gbdhak": 477, "m_": [20, 50, 52, 53], "m_3fhl_gc": 486, "m_4d": 486, "m_allski": 486, "m_b": 579, "m_cube": 486, "m_ejecta": [52, 511], "m_gc": 486, "m_hpx": 486, "m_i": 579, "m_iem_10gev": 486, "m_iem_cutout": 486, "m_iem_gc": 486, "m_iem_interp": 486, "m_sub": 486, "m_sun": 511, "m_wc": [193, 194, 196, 202, 205, 206, 486], "ma": [87, 91, 118, 122, 450, 459, 461, 482, 577, 580], "mac": [87, 91, 380, 387, 410, 438, 578], "machin": [383, 387, 388, 393, 397, 410, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "machineri": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 463], "maco": [397, 440], "macport": [397, 438, 440], "made": [173, 180, 201, 204, 215, 217, 224, 247, 307, 339, 340, 380, 383, 385, 396, 399, 401, 404, 405, 406, 431, 442, 443, 447, 455, 459, 463, 464, 485, 493, 531, 542], "madrid": 390, "magenta": [377, 466, 490], "magic": [97, 412, 417, 433, 439, 442, 457, 494, 577], "magic_ecpl": 280, "magic_lp": [280, 457], "magnet": [42, 50, 51, 54, 554], "magnetic_field": [50, 51, 54], "magnitud": [319, 467], "mai": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 87, 90, 91, 94, 101, 104, 124, 125, 380, 381, 383, 388, 389, 393, 394, 396, 397, 405, 406, 410, 411, 413, 418, 419, 451, 460, 461, 467, 482, 493, 517, 518, 530, 537, 554, 575, 578, 582], "mail": [381, 383, 385, 387, 394, 396, 399, 401, 403, 406, 409, 415, 420, 421, 504, 578], "mailmap": [431, 442], "main": [91, 102, 109, 380, 383, 385, 386, 388, 392, 395, 396, 397, 400, 404, 406, 409, 410, 421, 427, 431, 434, 439, 445, 456, 466, 467, 469, 471, 477, 480, 484, 486, 487, 488, 500, 502, 503, 513, 515, 519, 578], "mainli": [380, 390, 391, 394, 401, 486], "maint": 447, "maintain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 380, 382, 397, 399, 400, 401, 405, 410, 440, 485], "mainten": [380, 387, 406, 410, 422, 444], "major": [201, 225, 234, 237, 380, 384, 385, 389, 397, 405, 433, 439, 440, 535, 536, 537], "majorana": 19, "make": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 46, 59, 82, 84, 87, 90, 91, 95, 101, 104, 124, 168, 169, 173, 174, 175, 176, 178, 179, 180, 183, 184, 189, 190, 192, 193, 194, 197, 198, 201, 203, 204, 205, 206, 274, 337, 339, 340, 351, 379, 381, 382, 385, 386, 387, 390, 392, 394, 396, 397, 398, 399, 400, 401, 404, 406, 407, 410, 412, 414, 416, 419, 420, 422, 425, 426, 431, 433, 436, 437, 438, 439, 442, 444, 447, 451, 452, 455, 457, 458, 461, 463, 467, 471, 472, 484, 485, 486, 489, 493, 494, 500, 504, 515, 518, 578, 579], "make_background": [173, 180], "make_background_fit": 170, "make_background_scal": 170, "make_base_catalog_galact": [439, 508], "make_concentric_annulus_sky_region": 469, "make_contour": 483, "make_count": [173, 174, 175, 180], "make_counts_off": [174, 175], "make_cub": 168, "make_dataset": 169, "make_default_fov_background_model": 170, "make_edisp": [173, 180], "make_edisp_kernel": [173, 180], "make_edisp_kernel_map": 484, "make_edisp_map": 152, "make_effective_livetime_map": [447, 485], "make_exclusion_mask": 170, "make_exposur": [173, 180], "make_exposure_irf": [173, 180], "make_imag": 440, "make_lupton_rgb": 375, "make_map_background_irf": 434, "make_map_count": 386, "make_map_cutout": 386, "make_map_exposure_reco_energi": 386, "make_map_exposure_true_energi": [152, 386, 484], "make_map_fov_background": 386, "make_map_hadron_accept": 386, "make_map_ring_background": 386, "make_map_xxx": 386, "make_maps_off": 178, "make_mask_bkg_invalid": 179, "make_mask_energy_aeff_default": 179, "make_mask_energy_aeff_max": 179, "make_mask_energy_bkg_peak": 179, "make_mask_energy_edisp_bia": 179, "make_mask_offset_max": 179, "make_mean_edisp": 441, "make_mean_psf": 441, "make_meta_t": [173, 180], "make_model": 399, "make_more_random_stuff": 380, "make_observation_time_map": 485, "make_orthogonal_rectangle_sky_region": [127, 469], "make_path": [125, 464, 481, 482], "make_pixel_region": 394, "make_psf": [163, 173, 180, 441], "make_psf_map": 484, "make_quant": 351, "make_random_stuff": 380, "make_region": 394, "make_sky_coord": 394, "make_some_random_stuff": 380, "make_theta_squared_t": [431, 496], "makefil": [410, 435], "maker": [6, 152, 163, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 386, 393, 395, 406, 425, 427, 428, 433, 442, 445, 446, 449, 450, 455, 457, 458, 461, 465, 467, 468, 471, 474, 475, 477, 481, 484, 487, 492, 495, 496, 498, 528, 577], "maker_fov": 503, "maker_safe_mask": [465, 471, 503], "mamba": [383, 411, 412, 433], "manag": [87, 91, 215, 217, 224, 247, 327, 358, 379, 380, 383, 388, 396, 397, 399, 402, 406, 407, 409, 431, 436, 438, 442, 446, 486, 488, 578], "manconi": 423, "mandatori": [179, 383, 393, 406, 468, 489], "mandatory_keyword": 484, "mani": [87, 91, 319, 380, 381, 383, 385, 387, 389, 392, 394, 395, 396, 397, 400, 401, 406, 410, 416, 422, 423, 428, 431, 437, 438, 439, 440, 441, 444, 445, 452, 455, 458, 466, 471, 478, 482, 486, 496, 498, 506, 514, 516, 528, 531, 575, 576, 577, 578, 582], "manifest": 390, "manipul": [87, 91, 404, 407, 433, 491, 530], "manner": [444, 445], "manpow": [385, 397], "manual": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 387, 392, 402, 409, 518, 526, 578, 579], "manuel": [432, 435, 436], "map": [6, 15, 16, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 83, 84, 87, 90, 91, 96, 98, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 116, 118, 119, 120, 122, 123, 124, 125, 127, 129, 130, 133, 134, 135, 140, 141, 142, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 170, 171, 173, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 221, 224, 225, 232, 234, 237, 239, 247, 249, 251, 260, 261, 263, 265, 271, 272, 273, 275, 276, 284, 289, 329, 367, 368, 373, 375, 377, 379, 380, 381, 383, 387, 391, 392, 393, 394, 395, 396, 399, 400, 401, 402, 403, 404, 407, 412, 416, 420, 421, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 455, 456, 457, 458, 462, 463, 466, 467, 468, 469, 470, 472, 473, 474, 477, 478, 480, 481, 482, 485, 489, 492, 493, 494, 495, 496, 498, 499, 502, 503, 506, 513, 514, 517, 518, 522, 524, 525, 526, 527, 528, 534, 536, 537, 538, 539, 542, 573, 576, 577], "map_": [207, 208, 368, 375], "map_4d": 486, "map_analysi": 399, "map_cent": 275, "map_coord": [83, 152, 163, 166], "map_dataset": [392, 475], "map_dataset_empti": 475, "map_dataset_mak": 475, "map_dataset_on_off": 475, "map_edisp": [111, 116], "map_in": [193, 194, 196, 202, 205, 206], "map_out": [105, 110, 151, 152, 158, 163, 166, 193, 194, 196, 202, 205, 206], "map_result": 459, "map_select": [16, 456, 460, 461, 463, 502], "map_typ": [193, 194, 196, 202, 205, 206, 486, 530], "mapax": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 428, 431, 433, 486], "mapaxi": [19, 20, 26, 102, 105, 109, 110, 111, 112, 113, 114, 116, 123, 125, 127, 134, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 173, 183, 184, 189, 190, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 375, 381, 395, 404, 422, 423, 425, 428, 431, 441, 445, 447, 450, 452, 455, 457, 458, 464, 465, 467, 468, 471, 473, 474, 475, 477, 481, 484, 485, 486, 489, 494, 495, 496, 503, 522, 525, 527, 528, 530, 531], "mapcoord": [83, 152, 163, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 249, 439, 440, 486, 531, 538], "mapdataset": [98, 99, 103, 105, 108, 109, 110, 112, 113, 114, 115, 117, 118, 122, 127, 130, 133, 140, 141, 142, 143, 144, 168, 169, 170, 173, 174, 178, 179, 232, 373, 376, 393, 395, 401, 402, 421, 422, 423, 424, 425, 426, 427, 428, 431, 445, 446, 447, 459, 460, 464, 465, 466, 468, 469, 471, 472, 474, 475, 482, 483, 485, 487, 488, 494, 502, 503, 516, 518, 525, 528, 577, 579, 580], "mapdataseteventsampl": [93, 108, 425, 426, 427, 434, 445, 447, 467, 468], "mapdatasetmak": [163, 171, 180, 393, 425, 428, 431, 434, 442, 465, 467, 468, 471, 475, 484, 485, 495, 502, 503, 518, 525, 528], "mapdatasetmetadata": [102, 105, 407], "mapdatasetoff": 433, "mapdatasetonoff": [98, 102, 109, 110, 118, 122, 140, 168, 174, 178, 425, 426, 428, 431, 444, 445, 461, 475, 485, 514, 528, 579], "mapdatasetsampl": 393, "mapevalu": [391, 392, 424, 425, 428, 431, 442, 443, 444, 446], "mapeventsampl": [423, 424], "mapfit": [391, 392, 421, 440, 441], "mapgeom": [386, 441, 442], "mapmak": [173, 396, 421, 425, 440], "mapmakerob": [424, 425], "mappabl": 404, "mappanelplott": [401, 583], "mapper": 315, "mappingintstrani": [16, 84, 90, 104, 124], "mappingnamespac": [16, 84, 90, 104, 124], "maps_off": 178, "mar": [397, 418, 443], "march": [387, 389, 418, 420, 441], "marcocirelli": 26, "margin": [101, 105, 110, 115, 117, 192, 194, 204, 206, 224, 247, 263, 391, 487, 535, 579], "marion": [421, 440], "mark": [91, 380, 391, 409], "marker": [101, 102, 105, 109, 110, 450, 452, 455, 457, 459, 465, 472, 473, 474, 478, 504], "markerfacecolor": [102, 105, 109, 110], "markers": [101, 102, 105, 109, 110, 491], "markov": 577, "mask": [83, 87, 91, 99, 101, 102, 105, 109, 110, 122, 126, 127, 129, 130, 131, 133, 151, 152, 158, 163, 166, 168, 170, 175, 176, 177, 178, 179, 181, 191, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 215, 217, 224, 247, 263, 392, 408, 425, 427, 428, 429, 431, 434, 440, 442, 443, 444, 445, 447, 449, 450, 452, 463, 465, 485, 488, 492, 495, 498, 514, 525, 527, 530, 577], "mask_1": 490, "mask_2": 490, "mask_bright": 480, "mask_contains_region": 206, "mask_data": 487, "mask_energi": [481, 487], "mask_fit": [101, 102, 105, 109, 110, 115, 117, 392, 425, 442, 457, 461, 463, 475, 481, 483, 487, 491, 514], "mask_fit_imag": [102, 105, 109, 110], "mask_imag": [102, 105, 109, 110], "mask_map": [192, 204, 449, 487, 492], "mask_map_catalog": 487, "mask_nearest_posit": [193, 194, 196, 202, 205, 206], "mask_off": 475, "mask_roi": 480, "mask_saf": [101, 102, 105, 106, 109, 110, 179, 392, 425, 481, 485, 487, 514], "mask_safe_edisp": [102, 105, 109, 110, 447], "mask_safe_imag": [102, 105, 109, 110, 151, 152, 158, 163, 166], "mask_safe_psf": [102, 105, 109, 110], "mask_spac": 481, "mask_valid": 101, "masked_ev": 83, "maskedarrai": [87, 91], "maskedcolumn": [87, 91], "mass": [19, 20, 26, 52, 393, 427, 446, 479, 506, 539], "massdm": [19, 20, 479], "master": [386, 387, 394, 409, 410, 419], "match": [87, 91, 108, 113, 191, 192, 194, 197, 198, 199, 201, 204, 206, 208, 288, 290, 380, 388, 439, 441, 446, 455, 458, 474, 482, 494, 513, 530], "match_by_nam": 199, "math": [234, 379], "mathcal": [483, 514], "mathemat": [489, 491], "mathieu": [431, 434], "mathrm": [19, 20, 23, 102, 109, 153, 479, 483, 514, 579, 581], "mathworld": [334, 335], "matomo": 447, "matplotlib": [19, 20, 26, 66, 67, 83, 129, 147, 150, 153, 154, 155, 160, 161, 162, 163, 164, 165, 166, 193, 194, 196, 202, 205, 206, 209, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 358, 368, 369, 370, 373, 374, 375, 377, 379, 380, 381, 394, 397, 406, 413, 416, 423, 431, 433, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 527, 535, 537, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 582], "matric": 209, "matrix": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 111, 116, 150, 151, 152, 155, 209, 210, 211, 215, 224, 247, 288, 290, 373, 397, 398, 408, 441, 442, 445, 447, 483, 484, 514, 516, 522], "matter": [1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 394, 400, 408, 440, 445, 446, 449, 485, 492, 494, 498, 507, 576, 578], "matthew": [387, 437, 439, 440], "matthia": [439, 440], "mattox": 459, "max": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 88, 91, 102, 112, 113, 126, 128, 130, 165, 169, 173, 175, 179, 206, 214, 215, 216, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 278, 335, 388, 396, 403, 408, 416, 427, 428, 429, 431, 433, 445, 447, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 469, 471, 472, 473, 474, 475, 477, 478, 480, 481, 483, 484, 485, 486, 487, 489, 490, 491, 494, 495, 502, 503, 504, 506, 525, 527, 528, 535, 554, 557, 563, 580], "max_ag": [45, 508], "max_column": [87, 91], "max_energi": 478, "max_lin": [87, 91], "max_nit": [133, 447], "max_offset": 396, "max_percentil": 83, "max_radiu": [161, 163, 166, 204, 494], "max_region_numb": [176, 527], "max_width": [87, 91], "maxcal": 211, "maxclust": 305, "maxfev": 483, "maxim": [45, 82, 91, 112, 113, 133, 179, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 443, 444, 445, 446, 447, 527], "maxima": [141, 215, 217], "maximilian": [431, 433, 434, 443, 444, 445, 446, 447], "maximum": [19, 20, 45, 46, 47, 83, 87, 91, 100, 123, 125, 128, 163, 166, 168, 176, 179, 185, 188, 192, 198, 203, 204, 214, 216, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 288, 290, 334, 336, 339, 377, 383, 386, 394, 433, 453, 459, 478, 482, 485, 486, 491, 495, 503, 508, 516, 527, 554, 576, 577, 580], "maxmimum": 278, "maxwellian": 32, "mayb": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 388, 390, 391, 402], "mb": [191, 192, 201, 204, 388, 412, 414, 449, 454, 462, 470, 476, 492, 493, 494, 496, 497, 499, 501, 505, 533, 543, 564, 574], "mbox": [102, 109], "mc": 398, "mc_id": [83, 390, 393, 433, 467, 493], "mcerp": 398, "mckee": [53, 446], "mcmc": [398, 400, 421, 426, 428, 554, 577], "mcmc_sampl": [400, 423], "md": [383, 400, 406], "mdm": [26, 479], "mean": [42, 68, 87, 91, 96, 101, 102, 127, 129, 150, 151, 152, 155, 158, 163, 166, 233, 235, 239, 274, 289, 293, 306, 325, 380, 381, 383, 385, 387, 393, 394, 396, 397, 403, 408, 413, 416, 428, 437, 455, 458, 459, 468, 478, 482, 483, 485, 489, 490, 491, 494, 495, 504, 536, 551, 578, 579], "meaning": 489, "meant": [386, 445, 450, 458, 460, 463, 465, 471, 474, 493], "measur": [27, 67, 101, 105, 110, 129, 134, 143, 198, 280, 288, 290, 293, 294, 295, 296, 298, 300, 301, 303, 304, 386, 394, 399, 404, 410, 419, 424, 432, 438, 440, 451, 452, 455, 457, 458, 461, 464, 466, 469, 471, 472, 473, 478, 480, 494, 503, 504, 516, 523, 525, 528, 576, 577, 580, 581], "mechan": [388, 398, 404, 407], "media": 406, "median": [83, 163, 166, 416, 475, 490, 494], "median_zenith": 490, "medium": [45, 52, 380, 389], "meeseeksdev": 380, "meeseeksmachin": 380, "meet": [224, 247, 307, 386, 388, 400, 405, 410], "megabyt": [191, 192, 201, 204], "mem": [449, 454, 462, 470, 476, 492, 497, 499, 501, 505, 533, 543, 564, 574], "member": [83, 381, 385, 394, 406, 407, 439, 445, 482, 493, 496], "memo": [150, 198], "memori": [87, 88, 91, 92, 100, 102, 103, 105, 108, 109, 110, 191, 192, 201, 204, 271, 273, 275, 358, 380, 390, 392, 393, 396, 402, 404, 425, 431, 446, 458, 471, 518], "memoryobserv": 88, "mender": [444, 445, 446], "mention": [59, 145, 380, 381, 383, 387, 388, 392, 394, 397, 399, 400, 405, 406, 409, 410, 484, 488, 489, 491, 506, 577], "mentor": [383, 400], "mere": 390, "merg": [67, 86, 87, 91, 195, 198, 224, 247, 347, 380, 383, 384, 385, 386, 393, 394, 395, 399, 400, 405, 406, 409, 410, 420, 421, 422, 423, 424, 425, 426, 427, 428, 436, 437, 438, 439, 440, 441], "merge_equ": 86, "mergesort": [87, 91], "mess": 381, "messag": [101, 210, 212, 213, 383, 394, 396, 403, 429, 444, 452, 453, 455, 456, 457, 463, 464, 465, 474, 475, 477, 482, 483, 494, 502, 503, 518, 578], "met": [86, 361, 445, 473, 477, 577], "met_start": 86, "met_stop": 86, "meta": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 87, 88, 91, 94, 100, 102, 103, 105, 107, 108, 109, 110, 123, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 180, 193, 194, 196, 202, 205, 206, 271, 272, 275, 276, 317, 361, 362, 363, 364, 390, 393, 394, 395, 404, 407, 409, 427, 428, 439, 443, 445, 446, 467, 475, 486, 490, 493, 495, 515, 516, 573], "meta_t": [100, 101, 102, 105, 109, 110, 173, 180, 404, 407, 428, 452, 458, 485, 514], "metaattribut": [87, 91], "metadata": [16, 83, 84, 85, 87, 88, 90, 91, 104, 106, 123, 124, 125, 147, 148, 149, 153, 154, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 362, 384, 386, 397, 446, 456, 460, 461, 463, 467, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "metadata_fits_export_kei": [84, 90, 104, 124], "metadatabas": 407, "metadatabasemodel": 407, "metapackag": 397, "method": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 141, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 296, 298, 305, 315, 319, 323, 327, 328, 329, 354, 367, 369, 379, 380, 383, 386, 389, 390, 391, 394, 395, 396, 398, 399, 400, 402, 404, 406, 407, 412, 416, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 450, 452, 453, 455, 456, 457, 459, 460, 461, 463, 464, 465, 466, 467, 468, 471, 473, 475, 477, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 513, 515, 517, 518, 522, 525, 527, 528, 529, 531, 552, 566, 575, 576, 577, 578, 580], "method_kwarg": [327, 328], "methoda": 423, "metric": 305, "mev": [74, 83, 147, 148, 149, 153, 269, 450, 451, 458, 460, 463, 465, 471, 474, 475, 480, 484, 486, 489, 493, 494, 504, 563], "meval": 537, "mexico": 495, "meyer": [244, 280, 464, 577], "meyer2010": 577, "mgtime": 395, "mibgld7c": 477, "michael": [444, 446], "michel": 447, "mid": [112, 434, 445, 493], "middl": [369, 396], "midli": 455, "midpoint": 88, "might": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 181, 198, 211, 380, 385, 391, 392, 394, 397, 399, 404, 406, 407, 409, 412, 414, 421, 455, 473, 475, 481, 485, 487, 494, 495, 498, 504, 506, 514, 518, 525, 531, 578, 580], "migra": [102, 105, 109, 110, 152, 155, 160, 184, 396, 467, 468, 484, 523], "migra_axi": [102, 105, 109, 110, 114, 152, 154, 155, 467, 468, 484, 485], "migrad": [101, 211, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "migrad_opt": [211, 483], "migrat": [102, 105, 109, 110, 114, 154, 155, 160, 389, 424, 431, 440, 463, 467, 485, 522, 523], "milagro": [97, 371], "mileston": [389, 409], "milki": [33, 38, 419, 508], "miller": [87, 91], "million": [380, 407], "min": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 91, 102, 126, 128, 130, 145, 173, 214, 215, 216, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 278, 294, 335, 395, 396, 403, 408, 416, 431, 439, 447, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 469, 471, 472, 473, 474, 475, 477, 478, 480, 481, 483, 484, 485, 486, 489, 490, 491, 494, 502, 503, 504, 506, 527, 554, 557, 563], "min_count": 170, "min_dist": [141, 142, 176, 459, 465, 527], "min_distance_input": [176, 527], "min_energi": 478, "min_npix": [151, 152, 158, 163, 166, 204, 206], "min_npred_background": 170, "min_pix": 447, "min_signific": 395, "min_significance_lc": 395, "minaya": 441, "mind": [383, 400, 471, 483], "mini": 400, "miniconda": 411, "minim": [19, 20, 26, 112, 113, 132, 193, 194, 196, 201, 202, 205, 206, 207, 211, 218, 219, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 286, 392, 395, 403, 407, 433, 443, 445, 450, 467, 481, 483, 491, 503, 518, 527, 528, 531, 576, 581], "minima": [215, 217, 491], "minimis": [474, 490], "minimmum": [151, 152, 158, 163, 166, 204, 206], "minimum": [19, 20, 26, 47, 83, 100, 122, 123, 125, 128, 132, 137, 141, 142, 145, 146, 168, 170, 176, 198, 201, 203, 213, 214, 216, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 278, 282, 287, 291, 294, 307, 334, 336, 339, 375, 397, 433, 439, 455, 459, 467, 482, 483, 486, 491, 494, 516, 518, 527, 554, 581], "mino": [211, 483], "minor": [380, 385, 400, 403, 405, 430, 443, 536, 537], "minos_contour": [423, 441], "minu": [155, 475], "minuit": [101, 120, 211, 212, 213, 286, 391, 398, 425, 440, 441, 445, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "minuit_opt": 483, "minut": [400, 410, 439, 455, 459, 461, 463, 465, 466, 467, 469, 473, 474, 477, 479, 481, 483, 485, 488, 491, 502], "mireia": [442, 447], "mirror": 190, "misc": [419, 432, 436, 437, 438], "miss": [82, 87, 91, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 380, 383, 388, 389, 390, 391, 394, 400, 401, 404, 429, 431, 433, 439, 444, 447, 486], "mission": [83, 445, 577], "mistak": [385, 405], "mix": [379, 380, 396, 481, 486], "mixin": [87, 91], "mjd": [86, 94, 125, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 362, 364, 381, 444, 445, 459, 467, 468, 472, 473, 474, 477, 478, 486, 489, 515, 566, 567, 568, 569, 570, 571, 572, 573, 582], "mjdref": [459, 486], "mjdreff": [94, 361, 364, 468], "mjdrefi": [94, 361, 364, 468], "mkdir": [396, 455, 456, 463, 464, 467, 502, 503], "mkn": [504, 577], "mkn_421_3fhl": 504, "mncontour": 211, "mnra": [137, 303], "mnt": 442, "mock": 466, "mock_dl4": 466, "mode": [16, 84, 85, 87, 90, 91, 94, 102, 104, 105, 109, 124, 128, 151, 152, 158, 163, 166, 169, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 273, 407, 426, 439, 442, 446, 474], "model": [1, 6, 15, 16, 18, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 45, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 93, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 140, 143, 144, 147, 153, 154, 161, 162, 163, 164, 166, 170, 173, 186, 193, 194, 196, 202, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 299, 302, 304, 376, 379, 380, 381, 384, 385, 386, 392, 393, 395, 396, 398, 400, 401, 404, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 450, 453, 458, 459, 461, 466, 469, 471, 475, 482, 484, 485, 486, 487, 492, 494, 495, 498, 506, 507, 513, 514, 516, 518, 519, 523, 525, 526, 533, 543, 564, 574, 576, 577, 580, 581], "model1": [219, 544, 546, 550, 553, 555, 558], "model2": [219, 451, 474, 544, 546, 550, 553, 555, 558], "model_1d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 456], "model_2d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_3d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_add": [489, 546], "model_best": 451, "model_best_joint": 455, "model_best_stack": 455, "model_bin_": 477, "model_bin_0": 477, "model_bkg": 481, "model_computed_field": [16, 84, 90, 104, 124], "model_config": [16, 84, 90, 104, 124, 460, 502], "model_constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_construct": [16, 84, 90, 104, 124], "model_copi": [16, 84, 90, 104, 124, 463, 489], "model_dump": [16, 84, 90, 104, 124], "model_dump_json": [16, 84, 90, 104, 124], "model_extra": [16, 84, 90, 104, 124], "model_field": [16, 84, 90, 104, 124], "model_fields_set": [16, 84, 90, 104, 124], "model_fit": 474, "model_in_bin": 477, "model_joint": 463, "model_json_schema": [16, 84, 90, 104, 124], "model_manag": [449, 488, 492], "model_nam": [102, 105, 109, 110, 224, 247, 376, 481], "model_parametrized_nam": [16, 84, 90, 104, 124], "model_plot": 466, "model_post_init": [16, 84, 90, 104, 124], "model_prior": 491, "model_read": 491, "model_rebuild": [16, 84, 90, 104, 124], "model_set_axi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_simu": [458, 471, 474], "model_spectrum": 489, "model_str": 456, "model_typ": [224, 232, 245, 247, 263, 273, 286, 403, 488], "model_valid": [16, 84, 90, 104, 124], "model_validate_json": [16, 84, 90, 104, 124], "model_validate_str": [16, 84, 90, 104, 124], "model_weak": 491, "model_weak_prior": 491, "model_without_nam": 489, "modelbas": [232, 256, 263, 265, 266, 273, 277, 408], "modeldm": [19, 20], "modelevalu": 391, "modeling_2d": [449, 460, 462], "modelmetadata": 407, "modelmodel_dump": [16, 84, 90, 104, 124], "modelmodel_dump_json": [16, 84, 90, 104, 124], "models_3fhl": 488, "models_4fgl_roi": 480, "models_as_dict": [16, 84, 90, 104, 124], "models_diffus": 467, "models_fil": [16, 456, 460, 461, 463, 502], "models_fit": 471, "models_gc": 488, "models_gp": 493, "models_joint": 463, "models_or": 488, "models_read": 489, "models_select": 488, "models_stack": 463, "models_yaml": 489, "modelsmetadata": 407, "modern": [87, 91, 398], "modernis": [397, 425], "modest": [380, 536], "modif": [16, 84, 87, 90, 91, 104, 124, 380, 383, 402, 409, 442], "modifi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 87, 91, 93, 102, 109, 125, 126, 127, 130, 133, 169, 211, 327, 352, 377, 390, 392, 396, 402, 406, 407, 426, 428, 429, 431, 433, 441, 444, 445, 447, 451, 456, 468, 485, 487, 491, 495, 502, 516, 531, 582], "modul": [6, 262, 380, 381, 385, 389, 396, 401, 419, 421, 427, 439, 474, 480, 482, 485, 488, 506, 507, 508, 509, 554, 571, 582], "modular": 386, "mohanti": 101, "mohrmann": [396, 420, 421, 422, 438, 439, 440, 443, 445, 447, 577], "mohrmann2019": 577, "moment": [15, 51, 54, 86, 95, 263, 356, 386, 394, 396, 397, 400, 405, 406, 484, 486, 523], "moncar": [211, 483], "monitor": [393, 493, 518], "monkei": 380, "mono": 388, "monoton": 198, "mont": [398, 523, 577], "montecarlo": [103, 108, 211], "month": [78, 383, 389, 394, 397, 399, 400, 405, 409, 413, 419, 420, 421, 422, 423, 432, 435, 436, 437, 438, 439, 440, 441], "monthli": [389, 407, 412, 441], "moor": 24, "morcuend": [441, 444, 446, 447], "more": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 71, 74, 75, 78, 87, 91, 99, 100, 101, 102, 105, 109, 110, 134, 141, 143, 150, 179, 193, 194, 196, 205, 206, 218, 219, 220, 221, 222, 223, 225, 226, 228, 230, 231, 234, 235, 236, 237, 238, 239, 240, 242, 248, 249, 250, 251, 252, 254, 255, 260, 261, 262, 264, 267, 268, 269, 275, 276, 291, 297, 315, 355, 380, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 404, 405, 406, 407, 408, 410, 411, 412, 413, 416, 425, 426, 427, 428, 431, 438, 440, 441, 445, 447, 451, 452, 455, 457, 459, 461, 463, 467, 468, 474, 477, 478, 479, 481, 483, 485, 486, 487, 488, 489, 490, 491, 495, 496, 498, 504, 514, 515, 516, 518, 527, 528, 530, 531, 536, 575, 576, 578, 580, 582], "moreov": [396, 480, 485, 514], "morpholog": [120, 393, 449, 470, 498], "morphologi": [50, 52, 120, 391, 393, 403, 419, 436, 438, 452, 460, 466, 467, 468, 471, 480, 485, 532], "mosaic": 386, "most": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 83, 87, 91, 95, 118, 125, 379, 380, 381, 383, 385, 386, 387, 388, 391, 392, 393, 394, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 410, 412, 413, 431, 438, 439, 441, 442, 445, 446, 460, 461, 469, 472, 474, 480, 482, 483, 484, 485, 486, 487, 493, 494, 498, 504, 506, 516, 517, 518, 523, 525, 531, 575, 577, 578, 581], "mostli": [56, 69, 307, 380, 381, 386, 387, 388, 389, 394, 396, 399, 400, 401, 404, 405, 407, 410, 431, 439, 480, 485, 496, 504, 580, 582], "motion": [45, 311], "motiv": [179, 385, 387, 388, 394, 397, 399, 409, 489, 518], "move": [286, 385, 386, 387, 388, 391, 394, 399, 400, 401, 404, 409, 415, 421, 422, 424, 425, 426, 427, 431, 432, 436, 437, 439, 440, 441, 442, 458], "move_axi": 445, "movement": 406, "mpatch": 469, "mpg": 67, "mpi": 67, "mpl": 380, "mpl_check_plot": 380, "mpl_kwarg": [455, 465, 469], "mpl_normal": [370, 371], "mpl_plot_check": 380, "mpl_style": 439, "msg": [450, 458, 460, 463, 465, 471, 474, 493], "msh": [461, 480, 485], "msh15": 496, "mst": 493, "mu": [26, 233, 288, 290, 291, 373, 408, 451, 479, 491, 522, 523, 580], "mu_": [291, 297, 579, 580, 581], "mu_background": 578, "mu_bkg": [105, 110, 288, 301, 304, 416, 578, 580], "mu_off": 580, "mu_on": [291, 297, 580], "mu_sig": [290, 301, 304, 461, 579, 580], "mu_x": 580, "much": [194, 380, 386, 391, 394, 396, 399, 400, 424, 431, 458, 463, 469, 475, 491, 494, 504, 537], "mul": [26, 451, 479, 489, 544, 550, 553, 555, 558, 563], "mulitpli": [233, 256, 278], "multi": [87, 91, 192, 204, 389, 394, 408, 425, 428, 432, 439, 449, 453, 459, 470, 481, 483, 484, 489, 490, 494, 498, 516, 518, 530, 576, 577], "multicompon": 447, "multidimension": [386, 396, 408, 446, 482, 498, 523, 576], "multinorm": 398, "multipl": [19, 20, 26, 82, 87, 91, 92, 100, 101, 102, 105, 108, 109, 110, 113, 115, 117, 133, 141, 167, 193, 194, 196, 202, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 381, 386, 389, 392, 393, 394, 396, 398, 401, 402, 404, 408, 412, 421, 428, 429, 431, 439, 445, 446, 447, 457, 463, 473, 480, 481, 482, 485, 486, 487, 489, 494, 516, 530, 554, 563, 575, 576, 577, 578, 583], "multipli": [19, 20, 26, 125, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 239, 241, 242, 244, 247, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 284, 289, 299, 302, 307, 451, 459, 461, 475, 479, 489, 544, 580], "multiprocess": [13, 93, 126, 127, 130, 133, 169, 322, 327, 328, 425, 445, 446], "multithread": 13, "multivari": 398, "multivariategaussianprior": 408, "multiwavelength": 226, "muon": 490, "muoneff": 490, "mur": [26, 479], "must": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 87, 88, 91, 101, 102, 105, 106, 110, 111, 116, 125, 130, 133, 134, 141, 142, 143, 161, 169, 173, 175, 180, 187, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 295, 296, 307, 325, 375, 380, 385, 391, 392, 395, 404, 405, 406, 407, 450, 455, 460, 473, 481, 482, 485, 487, 488, 489, 493, 494, 503, 504, 518, 530], "mutablemap": 200, "mutablesequ": [92, 100, 247], "mutipl": 412, "mutltipl": 383, "my": [380, 402, 403, 411, 467, 468, 481, 489], "my_custom_model": 489, "my_flux_map": 404, "my_ob": 89, "my_obs_filt": 89, "my_sourc": 402, "mybind": [410, 439], "myconfig": [11, 578], "mycustomgaussianmodel": [403, 489], "mycustomprior": 491, "mycustomspectralmodel": [258, 489], "n": [19, 20, 51, 82, 87, 91, 123, 125, 191, 192, 193, 194, 196, 198, 199, 202, 204, 205, 206, 214, 216, 279, 286, 380, 383, 394, 397, 411, 413, 437, 471, 473, 477, 479, 480, 482, 483, 486, 488, 491, 493, 494, 495, 496, 501, 523, 530, 531, 533, 536, 537, 577, 579, 581], "n8p7hzgt": 477, "n_": [102, 109, 291, 297, 514, 579, 580, 581], "n_0": [235, 551], "n_bad": 494, "n_bin": 481, "n_bkg": [288, 290, 580], "n_dof": [123, 125, 516], "n_event": [193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 393], "n_event_bunch": [103, 108], "n_events_bkg": 393, "n_fit_bin": [463, 474, 481, 488], "n_free_paramet": 286, "n_input": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49], "n_ism": [43, 44, 45, 52, 511, 512], "n_job": [16, 93, 126, 127, 130, 133, 169, 327, 445, 456, 459, 460, 461, 463, 469, 473, 485, 502], "n_jobs_default": [93, 126, 127, 130, 133, 169], "n_model": [72, 76], "n_ob": [458, 467, 474], "n_observ": 578, "n_off": [105, 110, 290, 300, 301, 304, 461, 579, 580], "n_off_posit": 457, "n_off_region": [181, 457], "n_on": [288, 290, 291, 297, 300, 301, 304, 416, 461, 578, 579, 580], "n_output": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49], "n_point": [19, 20, 26, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 408, 572], "n_scale": 118, "n_sig": [288, 290, 475, 580], "n_sig_matching_signific": [288, 290], "n_sigma": [71, 74, 75, 78, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 286, 288, 290, 450, 459, 469, 473, 480, 481, 482, 502, 504, 516], "n_sigma_sensit": [122, 123, 124, 125], "n_sigma_ul": [71, 74, 75, 78, 122, 123, 124, 125, 126, 127, 130, 131, 133, 459, 469, 472, 473, 480, 481, 482, 502, 504, 516], "n_sourc": [45, 508], "n_spatial_ax": 197, "n_submodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "n_tel": 91, "n_time_bin": [473, 477], "nachiketa": [437, 438], "naima": [248, 379, 397, 398, 399, 400, 403, 422, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 518, 532, 563, 564], "naimamodel": [422, 425, 427], "naimaspectralmodel": [258, 403, 431, 489, 518, 554], "nakashima": 423, "name": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 90, 91, 94, 96, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 111, 115, 116, 117, 123, 124, 125, 126, 127, 130, 131, 133, 137, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 174, 183, 184, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 305, 306, 328, 359, 360, 375, 381, 383, 386, 389, 390, 392, 393, 394, 395, 398, 399, 402, 403, 404, 406, 407, 408, 409, 412, 414, 421, 422, 423, 424, 425, 426, 427, 428, 431, 440, 442, 443, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 484, 485, 486, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 516, 518, 522, 525, 527, 528, 530, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "name1": 483, "name2": 483, "name_err": [126, 127, 130, 131], "name_scan": [126, 127, 130, 131], "name_substr": [224, 247, 488], "name_ul": [126, 127, 130, 131], "namedtupl": 380, "nameerror": 380, "namespac": [6, 16, 84, 90, 104, 124, 380, 399, 401, 424, 427, 437, 489, 507, 582], "namibia": 496, "nan": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 87, 91, 102, 123, 125, 136, 173, 191, 192, 193, 194, 196, 202, 205, 206, 214, 216, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 403, 408, 447, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 469, 471, 472, 473, 474, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 502, 503, 504, 518, 554, 563], "nan_to_num": [100, 102, 105, 109, 110, 151, 152, 158, 163, 166, 194, 202, 206, 273], "nanograv": 518, "nansum": [193, 194, 196, 205, 206], "nasa": [58, 60, 61, 62, 64, 65, 150, 198, 400, 557], "nativ": [87, 91, 199, 392, 397, 431, 486], "natur": [87, 91, 380, 386, 403, 406, 489, 552], "nauroi": [304, 577], "naurois2012": 577, "navarro": 506, "navi": 451, "navig": [439, 441], "naxi": 486, "naxis1": 486, "naxis2": 486, "naxis3": 486, "naxis4": 486, "nbin": [16, 111, 116, 127, 153, 155, 161, 163, 195, 198, 203, 206, 339, 340, 396, 450, 455, 456, 457, 460, 461, 463, 464, 465, 467, 468, 469, 472, 473, 475, 477, 481, 484, 485, 486, 489, 494, 495, 496, 502, 522, 525, 527, 528, 531], "nbin_per_decad": 198, "nbstripout": 388, "nchunk": 289, "ncol": [147, 148, 193, 194, 196, 202, 205, 206, 373, 377, 452, 455, 459, 461, 463, 465, 475, 481, 483, 486, 487, 527, 544], "ncp": 478, "nd": [193, 194, 196, 202, 205, 206, 271, 272, 401, 486, 531], "ndarrai": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 87, 91, 92, 101, 118, 147, 148, 149, 150, 151, 154, 155, 157, 160, 161, 162, 163, 164, 166, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 210, 214, 215, 216, 217, 224, 249, 250, 276, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 298, 299, 302, 303, 304, 307, 318, 319, 320, 329, 334, 336, 369, 373, 374, 380, 481, 486, 504, 530, 531], "nddata": [422, 425], "nddataarrai": [423, 437, 438], "ndecad": [17, 18, 21, 22, 23, 24, 25, 27, 282], "ndim": [102, 109, 111, 116, 148, 150, 153, 192, 199, 204, 457, 460, 465, 469, 481, 482, 484, 485, 486, 493, 494, 504, 516, 531], "ndimag": [206, 394], "ndmap": 482, "ndmin": 307, "ne": 392, "nearest": [26, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 193, 194, 196, 198, 202, 205, 206, 319, 433, 440, 442, 486, 516, 518, 530], "nearli": [380, 431, 452], "nebula": [50, 280, 286, 425, 455, 456, 457, 461, 464, 465, 466, 472, 483, 487, 489, 491, 494, 495, 496, 502, 503, 504, 509, 531, 577], "necess": [404, 491], "necessari": [16, 84, 90, 101, 104, 124, 383, 390, 395, 406, 409, 433, 452, 455, 457, 458, 461, 467, 468, 471, 473, 474, 482, 485, 486, 488, 489, 503, 514, 515, 518], "necessarili": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 395, 460], "need": [11, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 85, 87, 89, 90, 91, 94, 101, 102, 104, 105, 109, 110, 122, 124, 125, 151, 152, 163, 165, 166, 201, 279, 280, 307, 379, 380, 381, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 404, 405, 406, 407, 410, 411, 416, 420, 421, 422, 439, 441, 446, 451, 452, 456, 458, 459, 460, 461, 465, 467, 468, 473, 474, 477, 478, 483, 484, 486, 487, 488, 489, 490, 493, 495, 502, 504, 514, 527, 529, 530, 578, 582], "need_upd": 431, "neg": [19, 20, 26, 87, 91, 123, 125, 126, 127, 130, 131, 133, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 275, 276, 288, 290, 381, 428, 446, 447, 491, 516, 580, 581], "neglect": [128, 179, 450, 485, 516, 581], "neighbor": [154, 162, 164, 433, 440], "neighbour": [319, 539], "neither": [96, 179, 397, 405], "neldermead": 211, "nep": [385, 405], "neraest": 194, "nest": [15, 192, 193, 194, 248, 286, 307, 347, 445, 494, 529, 580], "nested_model": 248, "net": [26, 87, 91, 455, 518], "neutrino": [52, 380], "neutron": 36, "never": [377, 379, 380, 383, 386, 390, 394, 402, 495], "nevertheless": [412, 414], "new": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 86, 87, 88, 90, 91, 92, 101, 102, 104, 105, 109, 110, 123, 124, 125, 126, 130, 133, 136, 145, 147, 148, 149, 150, 153, 155, 157, 160, 165, 176, 177, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 224, 247, 263, 273, 298, 307, 331, 358, 365, 383, 385, 386, 387, 388, 389, 390, 392, 393, 394, 397, 398, 399, 400, 401, 402, 403, 405, 406, 407, 409, 410, 411, 412, 414, 415, 416, 417, 418, 419, 432, 435, 463, 477, 478, 480, 481, 486, 488, 489, 515, 516, 518, 563, 577], "new_attribut": 380, "new_axi": 145, "new_dataset_nam": [224, 247], "new_datasets_nam": [19, 20, 26, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "new_ev": 518, "new_flux_map": 404, "new_funct": 380, "new_input": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "new_model": 563, "new_nam": [87, 91, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206], "new_ob": [88, 518], "new_observ": 92, "newaxi": 530, "newer": [397, 410, 421, 440], "newli": [425, 426, 427], "next": [87, 91, 102, 380, 381, 385, 396, 400, 401, 405, 408, 409, 437, 438, 450, 463, 466, 467, 469, 471, 480, 481, 482, 485, 486, 489, 490, 491, 494], "nfcn": 483, "nfev": [101, 211, 212, 213, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "nfw": [25, 27, 506], "nfwprofil": 479, "ni": 380, "nice": [380, 385, 391, 397, 399, 407, 423, 431, 459, 463, 480, 578], "nicer": [380, 416, 504], "nieto": [428, 431, 433, 434, 442, 444, 445, 446, 447], "nieva": [442, 447], "night": [395, 473], "nightli": [412, 472], "nightwise_lc": 472, "nigro": [428, 431, 433, 439, 440, 442, 445], "niter": [123, 125, 133, 459], "nmcid": 434, "nn": 495, "noah": [408, 446], "node": [19, 20, 26, 163, 166, 195, 198, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 249, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 422, 483, 484, 486, 493, 494, 538, 555], "node_typ": [155, 195, 198, 203, 467, 468, 484, 494], "noeth": [428, 429], "nois": [289, 295, 398, 577], "noisi": 493, "non": [16, 84, 87, 90, 91, 100, 102, 104, 105, 109, 110, 115, 117, 123, 124, 125, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 175, 179, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 273, 307, 370, 371, 373, 375, 386, 391, 394, 398, 400, 401, 407, 421, 425, 426, 427, 431, 439, 442, 443, 445, 446, 447, 452, 477, 494, 498, 514, 518, 529, 530, 554, 577], "none": [16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 50, 51, 52, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 112, 113, 114, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 140, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 286, 288, 289, 290, 304, 305, 307, 310, 315, 319, 327, 328, 329, 331, 334, 335, 336, 337, 346, 349, 355, 363, 367, 368, 369, 373, 374, 375, 376, 377, 380, 392, 394, 397, 404, 407, 408, 433, 444, 445, 447, 451, 452, 453, 455, 456, 458, 459, 463, 464, 465, 467, 468, 469, 471, 473, 474, 475, 477, 479, 480, 481, 482, 485, 486, 488, 489, 491, 494, 502, 506, 514, 530, 535, 536, 537, 578], "nonposit": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "nonposx": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 431], "nonstopmod": 381, "nonzero": 39, "nooverlaperror": 444, "noqa": [19, 20, 150, 186, 197, 198, 204, 226, 377], "nor": [96, 179, 390, 401, 405, 409], "norm": [19, 20, 26, 122, 123, 125, 126, 127, 130, 133, 135, 142, 144, 170, 218, 219, 222, 223, 226, 228, 229, 230, 231, 232, 235, 236, 238, 239, 240, 241, 242, 244, 248, 249, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 373, 391, 402, 404, 408, 425, 426, 428, 431, 446, 447, 449, 455, 459, 460, 461, 463, 464, 466, 467, 468, 469, 471, 473, 474, 475, 479, 480, 481, 482, 483, 494, 502, 503, 504, 506, 516, 518, 525, 532, 537, 543, 544, 551, 563, 564, 572, 580], "norm_0": [538, 555], "norm_1": [538, 555], "norm_2": [538, 555], "norm_3": [538, 555], "norm_4": 555, "norm_5": 555, "norm_err": [122, 123, 125, 127, 133, 142, 404, 459, 469, 473, 481, 482, 516], "norm_errn": [123, 125, 473, 480, 482, 504, 516], "norm_errp": [123, 125, 473, 480, 482, 504, 516], "norm_only_chang": 443, "norm_prior": 408, "norm_scan": [123, 404, 455, 456, 482, 516], "norm_sensit": [123, 125], "norm_ul": [123, 125, 404, 469, 473, 480, 481, 482, 504, 516], "norma": [33, 38], "normal": [42, 101, 102, 105, 109, 110, 126, 127, 128, 130, 140, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 170, 193, 194, 196, 202, 203, 205, 206, 232, 249, 250, 253, 273, 275, 279, 307, 370, 371, 380, 381, 385, 386, 390, 391, 394, 398, 404, 420, 424, 433, 447, 451, 461, 467, 472, 473, 475, 485, 486, 487, 488, 489, 494, 503, 504, 530, 535, 536, 537, 540, 541, 542, 563, 579, 580], "normalis": [67, 80, 122, 123, 125, 130, 147, 148, 149, 150, 153, 155, 157, 160, 161, 165, 170, 190, 193, 194, 196, 202, 205, 206, 249, 250, 263, 378, 456, 459, 460, 461, 474, 482, 487, 488, 489, 494, 502], "normed_templ": 489, "normspectralmodel": [224, 247, 403, 428, 444, 446, 489, 525], "north": [225, 234, 237, 535], "notat": [428, 520, 522, 528, 581], "note": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 78, 82, 83, 84, 86, 87, 90, 91, 94, 101, 102, 103, 104, 105, 108, 109, 110, 118, 122, 124, 125, 130, 133, 150, 155, 163, 165, 175, 186, 204, 208, 211, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 295, 296, 307, 328, 355, 371, 377, 379, 382, 383, 385, 388, 393, 394, 397, 400, 404, 405, 406, 408, 409, 410, 413, 419, 421, 441, 443, 445, 447, 450, 451, 452, 456, 457, 459, 460, 463, 466, 468, 473, 474, 475, 477, 478, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 514, 516, 518, 525, 530, 531, 540, 541, 552, 580, 581, 582], "notebook": [87, 91, 344, 383, 384, 389, 390, 394, 395, 396, 397, 398, 400, 409, 410, 412, 413, 414, 417, 420, 421, 422, 423, 425, 426, 427, 429, 431, 433, 437, 438, 439, 440, 441, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 517, 518, 519, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "noth": [331, 397, 491], "notic": [386, 483, 498], "notimplementederror": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "nov": [387, 392, 397, 398, 400, 404, 418, 442], "novemb": [389, 418, 428, 429, 430, 431], "now": [16, 82, 84, 88, 90, 99, 104, 123, 124, 125, 203, 248, 380, 383, 385, 386, 387, 390, 392, 393, 394, 396, 397, 398, 399, 400, 401, 404, 406, 407, 408, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 481, 483, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 515, 516, 527, 565, 569, 570, 571, 578, 580, 581, 582], "np": [83, 87, 91, 102, 105, 109, 110, 111, 116, 118, 122, 125, 133, 152, 193, 194, 196, 202, 205, 206, 211, 279, 380, 381, 391, 392, 395, 403, 404, 408, 416, 442, 447, 450, 458, 459, 461, 467, 469, 471, 473, 474, 475, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 489, 490, 491, 510, 511, 512, 516, 518, 525, 530, 531, 535, 536, 538, 563, 571, 578], "npanel": 367, "npix": [192, 201, 204, 205, 206, 455, 465, 484, 494, 527, 531, 534, 538], "npix_max": 192, "npoint": [289, 483], "npred": [102, 105, 109, 110, 122, 123, 125, 126, 127, 130, 131, 133, 142, 273, 292, 391, 392, 393, 402, 404, 419, 421, 428, 431, 437, 439, 447, 459, 467, 469, 473, 480, 481, 482, 491, 494, 514, 516, 580], "npred_background": [102, 105, 109, 110, 123, 125, 428, 457, 458, 469, 481, 516, 580], "npred_background_min": 146, "npred_excess": [122, 123, 125, 127, 133, 135, 142, 144, 459, 461, 469, 473, 475, 482, 516], "npred_excess_err": [123, 125], "npred_excess_errn": [123, 125], "npred_excess_errp": [123, 125], "npred_excess_ref": [123, 125], "npred_excess_ul": [123, 125], "npred_min": 146, "npred_off": [105, 110, 580], "npred_sig": [102, 105, 109, 110, 392], "npred_sign": [102, 105, 109, 110, 376, 431, 445, 481, 580], "npred_signal_min": 146, "npred_sourc": 481, "nrow": [452, 455, 483, 544], "nsi2ln3j": 477, "nside": [192, 193, 194, 442, 494, 529], "nside2resol": 194, "nside_til": [192, 194], "nsou": 459, "nstep": 395, "nu": [19, 26], "nu_e": [26, 479], "nu_mu": [26, 479], "nu_tau": [26, 479], "nuamoap": 477, "nuisanc": [455, 483, 577, 581], "null": [123, 125, 126, 127, 130, 131, 286, 288, 290, 447, 456, 460, 461, 463, 466, 482, 489, 502, 516, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "null_valu": [131, 286, 469], "nullabl": [87, 91], "num": 83, "numba": 397, "number": [11, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 45, 46, 47, 67, 72, 76, 82, 83, 85, 86, 87, 91, 92, 93, 94, 100, 102, 103, 105, 108, 109, 110, 112, 113, 118, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 169, 170, 173, 176, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 212, 213, 214, 215, 217, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 277, 282, 286, 288, 289, 290, 303, 307, 325, 327, 328, 329, 330, 331, 334, 335, 336, 337, 339, 340, 367, 373, 384, 385, 386, 389, 391, 392, 393, 394, 395, 399, 401, 404, 406, 407, 409, 416, 421, 431, 433, 434, 435, 440, 441, 442, 445, 446, 447, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 485, 486, 487, 489, 490, 493, 494, 495, 496, 502, 503, 504, 508, 514, 516, 518, 525, 527, 530, 531, 577, 578, 579, 580, 581], "number_of_column": [87, 91], "number_param": 209, "numer": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 87, 91, 125, 198, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 277, 307, 379, 380, 393, 398, 413, 431, 450, 458, 460, 463, 465, 471, 474, 486, 493], "numpi": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 92, 101, 111, 116, 118, 125, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 164, 165, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 208, 209, 211, 214, 215, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 274, 275, 288, 290, 307, 331, 336, 374, 379, 380, 381, 383, 387, 391, 393, 397, 398, 399, 406, 408, 416, 417, 424, 425, 428, 436, 437, 438, 440, 442, 443, 444, 446, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 510, 511, 512, 516, 518, 530, 531, 535, 536, 538, 563, 571], "numpoint": [211, 483], "numpy121": 383, "nupeak_ob": 504, "nutshel": 582, "n\u00f6the": [431, 433, 434], "o": [67, 82, 87, 91, 101, 200, 380, 389, 394, 397, 401, 404, 411, 412, 414, 423, 431, 434, 437, 438, 439, 445, 450, 452, 455, 459, 465, 472, 473, 474, 477, 478, 486, 490, 491, 493, 518, 577, 578], "ob": [40, 82, 83, 88, 89, 91, 92, 96, 163, 173, 305, 306, 392, 393, 396, 397, 402, 416, 434, 435, 444, 450, 452, 455, 458, 459, 465, 467, 471, 473, 474, 475, 477, 485, 490, 493, 494, 495, 496, 500, 503, 515, 518, 523, 525, 527, 528], "obei": 530, "obj": [16, 84, 90, 104, 124, 457, 477], "object": [6, 15, 16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 50, 51, 52, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 100, 101, 102, 103, 104, 105, 109, 110, 123, 124, 125, 128, 129, 130, 136, 137, 138, 139, 142, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 169, 177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 288, 290, 307, 311, 315, 316, 319, 327, 329, 331, 337, 340, 354, 355, 356, 357, 362, 367, 373, 375, 376, 377, 386, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 404, 406, 407, 412, 416, 422, 423, 425, 426, 427, 428, 431, 433, 438, 439, 440, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 464, 466, 469, 471, 472, 473, 474, 477, 478, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 508, 513, 514, 515, 516, 524, 527, 529, 530, 531, 563, 575, 577, 578, 582], "obs2": 518, "obs_": 455, "obs_clust": [92, 490], "obs_col": 465, "obs_con": [16, 456, 460, 461, 463, 502], "obs_copi": 88, "obs_fil": [16, 456, 460, 461, 463, 502], "obs_filenam": 495, "obs_filt": [88, 89], "obs_id": [16, 82, 87, 88, 89, 91, 96, 146, 211, 305, 306, 390, 392, 402, 407, 416, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 467, 468, 472, 473, 474, 477, 483, 485, 490, 493, 495, 496, 500, 502, 503, 527], "obs_id_uniqu": 87, "obs_index": 82, "obs_info": [90, 104, 407], "obs_list": [439, 441], "obs_list_vela": 475, "obs_mod": 95, "obs_model": 451, "obs_muoneff": 490, "obs_po": [41, 310], "obs_tabl": [82, 91, 96, 305, 306, 433, 465, 467, 473, 477, 485, 490, 493, 495, 496, 500, 503, 527], "obs_table_filenam": 82, "obs_tim": [16, 456, 460, 461, 463, 502], "obs_time_src": 485, "obs_zenith": 490, "obscor": 446, "observ": [6, 15, 16, 41, 82, 83, 85, 86, 87, 89, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 108, 109, 110, 112, 113, 163, 168, 169, 170, 173, 174, 175, 176, 178, 179, 180, 183, 184, 185, 186, 188, 189, 190, 223, 226, 231, 236, 238, 239, 240, 255, 262, 274, 277, 291, 297, 304, 306, 315, 336, 384, 386, 392, 393, 394, 395, 396, 400, 402, 404, 407, 412, 421, 425, 426, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 457, 458, 460, 461, 463, 464, 471, 474, 475, 477, 478, 483, 491, 492, 493, 495, 496, 498, 500, 506, 514, 515, 518, 521, 523, 525, 527, 528, 554, 577, 578, 579, 580], "observation_clust": [449, 490, 492], "observation_dead_time_fract": [83, 88], "observation_list": 92, "observation_live_time_dur": [83, 88], "observation_time_dur": [83, 88], "observation_time_start": 83, "observation_time_stop": 83, "observationcheck": 440, "observationcta": 390, "observationeventsampl": 446, "observationfilt": [88, 390, 395, 420, 441], "observationlist": [390, 441], "observationmetadata": 407, "observations_list": 92, "observationsconfig": 16, "observationseventsampl": 446, "observationseventssampl": 447, "observationssummari": 425, "observationstat": [420, 425], "observationt": [82, 393, 394, 442, 490, 495, 503], "observationtablecheck": 440, "observationtablesummari": 437, "observatori": [57, 59, 63, 82, 83, 85, 88, 90, 94, 393, 407, 409, 412, 432, 493, 495, 496, 513, 518], "observatory_earth_loc": [83, 88, 447], "observatory_loc": [407, 433, 450, 458, 467, 468, 471, 474], "obsinfometadata": [90, 104], "obstim": [85, 94, 186, 582], "obtain": [85, 102, 105, 108, 110, 123, 125, 137, 294, 390, 395, 397, 398, 404, 441, 447, 455, 456, 457, 459, 461, 467, 468, 473, 477, 478, 483, 486, 487, 491, 502, 504, 514, 518, 522, 523, 579, 580], "obviou": [392, 399, 400, 401, 407], "obvious": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 506], "occur": [193, 194, 196, 205, 206, 337, 380, 400, 401, 405, 494], "occurr": [92, 100, 197, 215, 217, 224, 247], "oct": [388, 390, 391, 395, 397, 400, 406], "octob": 389, "odd": [204, 206], "odd_npix": [204, 206], "odot": [28, 35, 39, 40, 52], "off": [102, 103, 105, 107, 108, 109, 110, 122, 123, 125, 168, 174, 175, 178, 181, 190, 290, 304, 377, 378, 383, 386, 392, 394, 395, 396, 425, 431, 433, 435, 445, 447, 450, 451, 452, 456, 457, 461, 465, 472, 473, 475, 477, 481, 483, 485, 491, 514, 527, 528, 577, 579, 580, 581], "off_2": [105, 110], "off_ev": 475, "off_patch": 475, "off_phas": [174, 475], "off_phase_rang": 475, "offdatabackgroundmak": 436, "offer": [123, 383, 391, 406, 407, 412, 413, 440, 457, 482, 483, 485, 489, 518], "offici": [406, 519, 578], "offlin": [87, 91], "offset": [83, 96, 112, 113, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 169, 173, 179, 180, 185, 188, 193, 194, 196, 198, 202, 205, 206, 380, 386, 394, 416, 425, 435, 437, 439, 444, 445, 446, 447, 450, 457, 458, 460, 463, 464, 465, 471, 475, 484, 485, 490, 493, 496, 503, 515, 523, 525, 528], "offset2": 83, "offset_axi": [153, 154, 155], "offset_band": 83, "offset_from_median": 83, "offset_index": 160, "offset_max": [16, 83, 169, 179, 185, 188, 456, 460, 461, 463, 465, 471, 475, 485, 502, 503, 525, 528], "offset_min": 83, "often": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 137, 280, 370, 371, 380, 385, 394, 395, 396, 398, 438, 450, 452, 456, 460, 461, 464, 465, 471, 477, 481, 483, 485, 487, 502, 503, 514, 518, 577], "ogip": [95, 106, 107, 110, 150, 195, 197, 198, 201, 202, 203, 392, 395, 438, 451, 455, 464, 514, 522, 531], "ogip_column": 202, "ogipdatasetread": 110, "ogipdatasetwrit": [110, 444, 446], "ok": [380, 394, 483], "old": [197, 365, 380, 385, 388, 392, 396, 397, 422, 423, 438, 439, 440, 478], "old_attribut": 380, "older": [387, 397, 413, 438, 480], "oldest": 400, "olga": [436, 437], "olivera": [428, 431, 433, 434, 442, 444, 445, 446, 447], "omega": [19, 20, 23, 262, 279, 493, 535, 571], "omit": [133, 381, 463, 493, 578], "omp": 400, "on_circl": 527, "on_ellipse_annulu": 527, "on_ev": 475, "on_patch": 475, "on_phas": [174, 475], "on_phase_rang": 475, "on_posit": 190, "on_radii": 450, "on_radiu": [465, 475], "on_rectangl": 527, "on_region": [16, 102, 105, 176, 450, 452, 455, 456, 457, 458, 460, 461, 463, 465, 467, 468, 472, 473, 475, 477, 481, 502, 527], "on_region_radiu": [450, 455, 458, 467, 468, 473, 477], "onc": [87, 91, 102, 204, 380, 383, 385, 390, 391, 394, 395, 396, 400, 401, 402, 404, 405, 409, 410, 411, 412, 414, 457, 473, 475, 485, 488, 495, 498, 515, 518, 578], "one": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 70, 84, 87, 89, 90, 91, 92, 93, 95, 99, 102, 104, 105, 108, 109, 110, 113, 118, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 135, 136, 141, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 175, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 282, 286, 288, 289, 290, 315, 320, 336, 351, 367, 373, 374, 380, 381, 382, 383, 385, 386, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 400, 402, 404, 405, 406, 407, 408, 409, 410, 411, 412, 439, 442, 443, 445, 447, 450, 452, 455, 456, 457, 460, 463, 467, 472, 474, 475, 478, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 502, 503, 504, 513, 514, 515, 516, 518, 523, 525, 527, 530, 531, 537, 575, 576, 578, 579, 580, 581, 582], "ones": [87, 91, 118, 122, 126, 130, 133, 150, 197, 384, 388, 392, 394, 397, 400, 408, 413, 416, 474, 478, 484, 486, 506, 525, 577, 578], "ones_lik": [475, 525], "ongo": [383, 386, 387, 410], "onli": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 70, 72, 74, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 95, 100, 101, 102, 103, 104, 105, 108, 109, 110, 122, 124, 125, 126, 130, 133, 134, 136, 143, 144, 151, 152, 156, 158, 163, 166, 169, 175, 180, 191, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 214, 215, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 273, 274, 275, 288, 290, 307, 327, 355, 377, 380, 381, 383, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 413, 421, 423, 427, 431, 433, 434, 439, 443, 445, 446, 447, 452, 453, 455, 456, 457, 460, 461, 463, 464, 466, 467, 468, 469, 472, 473, 474, 475, 477, 480, 481, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 503, 506, 514, 516, 522, 525, 528, 531, 573, 577, 578, 579, 580], "onlin": [87, 91, 381, 385, 388, 400, 416], "onlinelibrari": [135, 144], "onoff": [434, 514], "onserv": 93, "ontim": [186, 390, 467, 481], "onto": [105, 110, 193, 194, 196, 202, 204, 205, 206, 367, 386, 503, 514, 518, 530, 576], "oo": 406, "op": 396, "opac": 226, "opat7_3p": 485, "open": [66, 87, 91, 380, 381, 383, 385, 391, 394, 397, 399, 400, 404, 405, 406, 409, 411, 412, 414, 416, 417, 438, 456, 464, 486, 493, 495, 496, 502, 513, 577, 578], "openastronomi": 439, "oper": [87, 91, 192, 204, 219, 380, 386, 391, 394, 426, 428, 431, 440, 441, 445, 451, 481, 488, 489, 530, 531, 544, 546, 550, 553, 555, 558, 563], "opinion": [385, 578], "oppos": [478, 554, 578], "opposit": [193, 194], "opt": [89, 480, 544, 554], "opt_method": 483, "optic": [226, 394, 451, 544], "optim": [19, 20, 26, 101, 131, 133, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 373, 379, 380, 389, 392, 393, 402, 404, 452, 453, 455, 456, 457, 458, 459, 463, 464, 465, 475, 477, 478, 482, 483, 491, 494, 502, 503], "optimis": [19, 20, 211, 212, 213, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 394, 396, 398, 440, 447, 516, 575], "optimize_opt": [211, 463, 471, 482, 483, 503], "optimize_result": [211, 212, 445], "optimizeresult": [101, 211, 212, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "optin": 406, "optinon": [109, 110], "option": [11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 67, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 140, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 174, 175, 176, 177, 180, 181, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 279, 280, 282, 284, 286, 287, 288, 289, 290, 294, 295, 296, 298, 303, 304, 305, 307, 318, 328, 331, 334, 335, 336, 337, 339, 340, 343, 348, 349, 351, 362, 363, 367, 368, 369, 374, 375, 376, 377, 380, 383, 385, 386, 388, 389, 391, 392, 394, 396, 398, 400, 403, 407, 410, 411, 412, 413, 414, 420, 421, 422, 425, 427, 428, 431, 433, 437, 439, 440, 441, 442, 444, 445, 446, 447, 459, 463, 471, 472, 474, 480, 481, 485, 486, 487, 489, 490, 493, 494, 502, 503, 514, 516, 518, 530, 531, 573, 577, 578], "option1": 381, "option2": 381, "option3": 381, "option_context": [87, 91], "optionali": 538, "optout": 406, "optpars": 385, "oral": 406, "orang": [381, 455, 463, 469, 472, 475, 479, 482, 491, 527], "orchestr": [386, 390, 392, 396, 456, 502, 503], "orcid": 406, "order": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 87, 91, 94, 100, 101, 102, 105, 125, 136, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 163, 165, 166, 169, 173, 180, 183, 184, 189, 191, 192, 193, 194, 196, 197, 201, 202, 203, 204, 205, 206, 273, 286, 307, 377, 380, 381, 386, 391, 392, 394, 395, 396, 397, 404, 405, 406, 408, 421, 422, 423, 424, 425, 426, 427, 428, 431, 447, 455, 456, 457, 459, 463, 464, 467, 475, 480, 483, 484, 485, 486, 489, 495, 502, 503, 504, 529, 530, 531, 578, 581], "ordereddict": [386, 397, 424], "ordinari": 504, "org": [11, 34, 63, 64, 65, 83, 87, 88, 91, 179, 211, 253, 254, 268, 269, 295, 307, 383, 388, 397, 400, 405, 406, 409, 411, 412, 414, 418, 437, 439, 450, 458, 460, 463, 464, 465, 471, 474, 479, 480, 483, 493, 561, 562, 578], "organ": [384, 400, 405, 406, 431, 495, 496, 515, 530], "organis": [387, 396, 399, 406, 439], "orient": [148, 156, 157, 380, 391], "origin": [16, 41, 84, 87, 90, 91, 102, 104, 109, 123, 124, 125, 194, 206, 271, 273, 275, 390, 394, 406, 407, 409, 437, 456, 460, 461, 463, 473, 478, 486, 489, 494, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 581, 582], "orthogon": 340, "oscar": [439, 440], "osx": 427, "other": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 67, 69, 83, 84, 86, 87, 90, 91, 102, 104, 105, 109, 110, 123, 124, 126, 130, 131, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 175, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 215, 217, 273, 287, 307, 320, 350, 369, 374, 379, 383, 385, 387, 388, 389, 391, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 404, 406, 407, 411, 439, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 515, 516, 518, 523, 525, 527, 531, 546, 575, 576, 578, 582], "other_id": 452, "otherwis": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 87, 90, 91, 102, 104, 105, 109, 110, 124, 161, 200, 204, 206, 208, 214, 215, 216, 217, 224, 247, 278, 307, 373, 393, 403, 406, 447, 488, 489, 494, 545], "oup": [137, 303], "our": [380, 383, 389, 394, 396, 397, 399, 402, 403, 404, 406, 421, 422, 438, 447, 450, 452, 455, 456, 457, 460, 461, 463, 464, 465, 468, 473, 474, 475, 477, 486, 487, 491, 495, 502, 503, 578], "ourself": 504, "out": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 92, 94, 100, 101, 125, 193, 194, 196, 202, 205, 206, 247, 260, 261, 379, 380, 381, 383, 385, 388, 390, 392, 394, 396, 398, 399, 400, 405, 409, 416, 417, 419, 425, 439, 453, 457, 460, 461, 477, 486, 487, 493, 494, 502, 504, 506, 507, 527, 540, 541, 575, 578, 582], "out_fold": 396, "outcom": [385, 394], "outdat": [397, 400], "outdir": [16, 82, 93, 456, 460, 461, 463, 502], "outer": [43, 44, 52, 53, 127, 168, 260, 541], "outer_height": [527, 531], "outer_width": [527, 531], "outfil": 380, "outflow": 203, "outlin": [102, 105, 109, 110, 220, 221, 225, 234, 237, 251, 260, 261, 275, 383, 385, 388, 389, 390, 391, 394, 400, 403], "output": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 83, 84, 86, 87, 88, 90, 91, 93, 104, 124, 141, 142, 150, 155, 193, 194, 196, 202, 205, 206, 212, 224, 239, 247, 289, 336, 381, 388, 390, 393, 396, 397, 401, 404, 407, 420, 435, 441, 444, 445, 447, 463, 467, 468, 471, 474, 482, 485, 486, 502, 503, 516, 518, 578, 579], "output_map": [193, 194, 196, 202, 205, 206], "output_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "outsid": [87, 91, 102, 105, 109, 110, 115, 117, 150, 170, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 214, 216, 226, 276, 320, 368, 380, 394, 395, 396, 431, 461, 482, 483, 485, 486, 487, 518, 525, 537, 563], "over": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 83, 87, 88, 91, 92, 95, 101, 102, 105, 109, 110, 126, 133, 137, 150, 151, 161, 163, 166, 173, 180, 183, 184, 186, 187, 193, 194, 196, 197, 198, 202, 204, 205, 206, 224, 247, 279, 288, 290, 294, 318, 319, 332, 371, 380, 381, 385, 388, 389, 390, 393, 394, 395, 400, 403, 407, 411, 413, 431, 452, 455, 459, 461, 463, 466, 467, 474, 480, 481, 482, 485, 486, 489, 503, 504, 516, 518, 522, 579, 580], "overal": [388, 394, 447, 455], "overcom": 487, "overestim": [516, 580], "overflow": [203, 457, 474, 477, 566], "overkil": 474, "overlai": [456, 482], "overlaid": [102, 105, 109, 110, 455, 456], "overlap": [86, 91, 115, 117, 130, 181, 198, 203, 377, 395, 455], "overlap_ok": 86, "overlin": [102, 109, 514], "overload": 431, "overplot": [480, 513], "overrid": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 347, 391, 455, 457, 465, 469], "overridden": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 124, 201, 377], "oversampl": [103, 108, 161, 163, 166, 173, 180, 186, 192, 193, 194, 196, 201, 202, 205, 206, 221, 225, 234, 237, 238, 239, 249, 260, 261, 263, 265, 271, 275, 277, 282, 422, 485], "oversample_energy_factor": [103, 108, 468], "oversampling_factor": [194, 204, 220, 221, 225, 234, 237, 238, 239, 249, 251, 260, 261, 263, 265, 271, 275, 277], "overview": [6, 383, 410, 425, 426, 428, 431, 449, 475, 482, 486, 489, 498, 504, 505, 518, 519, 532, 579], "overwrit": [11, 15, 16, 19, 20, 26, 82, 88, 93, 100, 101, 102, 105, 107, 109, 110, 123, 125, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 198, 200, 201, 202, 203, 204, 205, 206, 212, 214, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 271, 272, 273, 274, 275, 327, 349, 404, 440, 442, 447, 455, 456, 463, 464, 467, 468, 469, 484, 486, 487, 488, 489, 493, 494, 500, 502, 503, 514, 531, 542, 578], "overwrite_templ": [212, 224, 247], "overwritten": [163, 166, 319], "ovtgakeu": 489, "owen": [419, 432], "own": [87, 91, 99, 123, 125, 200, 202, 383, 386, 396, 402, 406, 431, 450, 467, 489, 494, 503, 518, 530, 531], "p": [38, 51, 54, 87, 91, 109, 110, 129, 293, 304, 380, 431, 456, 466, 479, 483, 502, 518, 523, 524, 580], "p0_birth": 43, "p90": 48, "p_": [520, 522, 523, 524], "p_0": [51, 193, 196, 202, 205, 206, 510], "p_dot": [51, 54], "p_i": [193, 196, 202, 205, 206], "p_lat": [193, 196, 202, 205, 206], "p_lon": [193, 196, 202, 205, 206], "p_mean": 42, "p_n": [193, 196, 202, 205, 206], "p_stdv": 42, "p_valu": [288, 290, 483, 578, 580], "pace": [388, 389], "packag": [6, 11, 141, 307, 344, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 394, 397, 398, 400, 405, 406, 407, 409, 411, 415, 416, 417, 418, 419, 421, 424, 425, 427, 428, 431, 434, 435, 436, 437, 438, 439, 440, 442, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 517, 518, 519, 526, 531, 542, 550, 552, 566, 578, 582], "pacman": 436, "paczynski": 37, "paczynski1990": [28, 29, 30, 35, 37, 39, 40, 48], "paczynski1990veloc": 49, "pad": [87, 91, 102, 105, 109, 110, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 204, 205, 206, 368, 428, 431], "pad_width": [102, 109, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206], "pad_with": [193, 194, 196, 202, 205, 206], "page": [6, 87, 91, 211, 291, 297, 304, 381, 383, 385, 392, 394, 397, 400, 406, 409, 410, 412, 413, 417, 425, 426, 431, 434, 435, 438, 439, 440, 441, 447, 483, 486, 496, 498, 516, 518, 529, 531, 579, 582], "pain": [380, 383, 387], "pair": [16, 84, 90, 102, 104, 105, 109, 110, 123, 124, 125, 137, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 396, 451], "panda": [87, 91, 379, 397, 440, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "panel": [88, 101, 102, 105, 109, 110, 367, 434, 467, 483], "panel_fov": 367, "panni": 431, "papadopoulo": [431, 433], "paper": [57, 59, 63, 72, 74, 126, 179, 400, 406, 440, 473, 478, 480, 485, 495, 506], "papermil": 396, "par": [391, 403, 408, 451, 477, 483, 491, 493], "par_000_amplitud": 483, "par_001_alpha": 483, "par_002_beta": 483, "par_00x_": 391, "par_1": [211, 483], "par_2": [211, 483], "par_alpha": [211, 483], "par_beta": [211, 483], "par_box": 91, "par_nam": [224, 232, 247, 263, 273], "par_to_v": 493, "par_typ": [224, 232, 247, 263, 273], "parabol": [287, 320, 483], "parabola": [241, 242, 449, 464, 483, 532, 564], "paragraph": 385, "parallel": [6, 93, 126, 127, 130, 133, 169, 322, 323, 324, 325, 326, 327, 328, 383, 397, 410, 433, 445, 446, 447, 459, 481], "parallel_backend": [93, 126, 127, 130, 133, 169, 327, 469], "parallelbackendenum": 322, "parallelmixin": [93, 126, 133, 169], "param": [16, 84, 90, 104, 124, 226, 276, 373, 396, 426, 483], "param_nam": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "param_pair": 483, "param_set": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "paramet": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 284, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 302, 303, 304, 305, 306, 307, 309, 311, 313, 314, 316, 318, 319, 320, 321, 327, 328, 329, 331, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 373, 374, 375, 376, 377, 378, 380, 381, 389, 392, 393, 395, 396, 398, 399, 402, 404, 406, 417, 420, 421, 422, 423, 424, 425, 427, 428, 431, 433, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 474, 475, 477, 479, 480, 481, 482, 484, 485, 490, 491, 493, 494, 503, 504, 506, 514, 516, 517, 518, 525, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581], "parameter": 489, "parameter_constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "parameter_nam": 381, "parameter_name_scan": 211, "parameter_typ": 381, "parameterestim": [119, 427, 446], "parameteris": [520, 522], "parameters_list": [215, 217], "parameters_nam": [224, 247], "parameters_stat_sum": 408, "parameters_unique_nam": [19, 20, 26, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 483], "parametr": [16, 27, 84, 90, 101, 104, 124, 153, 154, 159, 162, 164, 241, 242, 260, 392, 396, 403, 421, 428, 431, 457, 459, 489, 493, 540, 541, 552], "parametricpsf": [154, 162, 431, 433], "parametris": [162, 403, 425, 522, 524, 535, 536, 537, 538, 545, 548, 549, 550, 551, 552, 553, 555, 556, 557, 558, 559, 560, 561, 562, 565, 566, 567, 568, 569, 570, 571, 572, 573], "parent": [16, 84, 90, 104, 118, 122, 124, 126, 130, 133, 204, 380, 390, 407, 473, 482, 516, 554], "parenthes": [391, 397, 443, 445], "parfiv": [397, 424], "parnam": 491, "pars": [16, 84, 85, 90, 104, 124, 192, 201, 381, 394, 447, 450, 458, 460, 463, 465, 471, 474, 487, 493, 578], "parse_arg": 578, "parse_fil": [16, 84, 90, 104, 124], "parse_obj": [16, 84, 90, 104, 124], "parse_raw": [16, 84, 90, 104, 124], "parseabl": 307, "parser": 578, "part": [101, 380, 383, 386, 389, 391, 393, 394, 395, 396, 398, 399, 400, 405, 406, 412, 414, 421, 425, 426, 427, 435, 440, 445, 446, 450, 452, 455, 463, 471, 480, 481, 486, 487, 503, 504, 518, 523, 527], "parti": 385, "partial": [91, 102, 105, 151, 152, 158, 163, 166, 169, 192, 204, 206, 273, 394, 398, 426, 440, 529], "partial_overlap": 91, "particip": [385, 389, 400], "particl": [19, 26, 248, 279, 427, 506, 554], "particle_distribut": [248, 554], "particular": [87, 91, 380, 386, 393, 395, 402, 404, 405, 407, 428, 431, 442, 443, 452, 455, 456, 457, 458, 460, 464, 467, 473, 474, 478, 483, 485, 488, 493, 495, 496, 502, 503, 515, 518, 525, 527, 531, 580], "particularli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "partli": [383, 389, 390, 394, 400, 401], "pass": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 45, 46, 47, 68, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 101, 102, 104, 105, 108, 109, 110, 124, 125, 128, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 170, 178, 186, 191, 192, 193, 194, 196, 198, 200, 201, 202, 204, 205, 206, 209, 210, 211, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 287, 289, 307, 319, 327, 328, 329, 334, 335, 336, 337, 367, 368, 373, 375, 376, 380, 383, 390, 392, 393, 394, 395, 407, 427, 431, 433, 445, 446, 447, 452, 453, 455, 456, 463, 464, 468, 472, 473, 478, 480, 481, 483, 484, 485, 486, 487, 489, 490, 493, 502, 503, 504, 518, 529, 530, 531, 535, 536, 578, 582], "pass4": 495, "passkwarg": [457, 477], "past": [380, 385, 388, 396, 397, 400, 401, 403, 406, 408, 416, 437, 439, 440, 486, 578], "patch": [377, 380, 387, 406, 434, 443, 455, 457, 465, 469, 475], "path": [11, 15, 16, 66, 82, 83, 84, 86, 87, 88, 90, 91, 93, 100, 104, 106, 107, 110, 124, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 193, 194, 196, 201, 202, 205, 206, 212, 224, 239, 247, 274, 315, 344, 345, 346, 349, 380, 383, 415, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 516, 572, 573, 578], "path_effect": [201, 224, 247], "path_to_notebook": 380, "path_to_script": 380, "patheffect": [201, 224, 247], "pathlib": [16, 82, 83, 86, 87, 91, 150, 202, 212, 224, 247, 345, 455, 456, 463, 464, 467, 468, 493, 502, 503], "pathpatch": 469, "pattern": [380, 386, 394], "paula": 446, "paulakx": 446, "paz": [432, 435, 436], "pbar": 518, "pc": [46, 47, 50, 52, 511, 512], "pcolormesh": [83, 125, 147, 148, 150, 153, 154, 155, 160, 162, 164, 165, 438, 444, 483, 484], "pd": [87, 91], "pdf": [150, 154, 179, 253, 254, 268, 269, 329, 373, 381, 464, 467, 479, 508, 510, 511, 512, 514, 515, 520, 521, 522, 524, 527, 531, 561, 562, 580, 583], "pdf_in_safe_rang": 150, "pdf_matrix": 150, "pdf_threshold": [150, 151, 155], "pdflatex": 381, "peak": [68, 128, 141, 142, 150, 179, 230, 236, 238, 242, 433, 439, 446, 459, 478, 480, 485, 541], "peak_bright": 68, "peak_brightness_error": 68, "peak_latitud": 68, "peak_latitude_error": 68, "pedant": 380, "peek": [83, 88, 102, 105, 109, 110, 128, 129, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 380, 392, 416, 428, 434, 438, 442, 452, 457, 463, 467, 468, 475, 481, 484, 493, 495, 496, 515, 518, 520, 521, 522, 524], "pei": 447, "penalti": 491, "peopl": [385, 387, 400, 406, 409, 410, 479, 506, 518, 578], "pep": 385, "pep8": 383, "per": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 99, 101, 102, 105, 109, 110, 112, 113, 122, 123, 125, 126, 127, 130, 131, 135, 141, 144, 145, 146, 163, 166, 198, 231, 239, 240, 282, 291, 297, 304, 380, 386, 392, 393, 396, 404, 406, 407, 419, 427, 431, 433, 446, 450, 458, 467, 471, 472, 474, 479, 485, 486, 490, 491, 495, 496, 514, 518, 521, 525, 577, 579], "per_decad": [198, 455, 457, 467, 468, 475, 481, 494, 522, 528], "percent": 132, "percentag": [150, 179, 485], "percentil": 83, "peresano": 447, "perfect": 150, "perfectli": [536, 578], "perform": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 85, 87, 90, 91, 94, 100, 104, 108, 124, 170, 178, 192, 204, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 288, 290, 343, 346, 373, 380, 381, 386, 389, 390, 391, 395, 396, 404, 407, 409, 410, 412, 421, 428, 431, 433, 436, 440, 443, 445, 446, 447, 450, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 466, 468, 471, 472, 473, 474, 477, 481, 483, 485, 486, 487, 488, 490, 495, 498, 502, 514, 518, 526, 527, 530, 536, 554, 576, 577, 578, 579], "perhap": 531, "period": [42, 51, 54, 198, 274, 387, 406, 439, 447, 490, 510], "period_dot": 51, "periodicmapaxi": 447, "periodogram": [289, 395, 440, 447], "permit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 406], "perseu": [33, 38], "person": [380, 383, 385, 387, 388, 389, 393, 398, 401], "perspect": [87, 91], "pertain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "peter": 439, "pf": 26, "pformat": [87, 91], "pformat_al": [87, 91], "pg": 504, "ph": 365, "pha": [106, 107, 110, 202, 392, 437, 440, 455, 464], "pha_": 481, "pha_meta": 106, "pha_ob": [106, 146, 211, 464, 482, 483], "pha_obs23523": [109, 110, 131, 286, 491, 516], "pha_obs23592": 516, "phacountsspectrum": 423, "phacountsspectrumlist": 422, "phase": [50, 52, 53, 89, 171, 174, 274, 385, 390, 391, 394, 395, 397, 399, 404, 416, 421, 440, 442, 445, 447, 449, 489, 507, 518, 532, 574], "phase_axi": 404, "phase_bkg_mak": 475, "phase_column_nam": [174, 475], "phase_curve_model": 572, "phase_filt": 89, "phase_max": 475, "phase_min": 475, "phase_model": 572, "phasebackgroundestim": 425, "phasebackgroundmak": [171, 425, 445, 447, 475], "phasecurv": [274, 439, 572], "phasecurve_lsi_dc": 572, "phasecurvemodel": 403, "phasecurvetablemodel": [391, 393], "phasecurvetempl": 391, "phasogram": [274, 572], "phi": [19, 20, 26, 199, 218, 219, 222, 225, 226, 228, 229, 230, 234, 237, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 311, 403, 471, 488, 489, 494, 504, 523, 535, 536, 537, 539, 540, 541, 545, 547, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562], "phi_0": [218, 220, 221, 225, 228, 229, 230, 234, 237, 241, 242, 249, 251, 253, 254, 260, 261, 264, 265, 267, 268, 269, 271, 275, 403, 483, 545, 548, 549, 552, 556, 559, 560, 561, 562], "phi_ref": [274, 572], "philipp": [439, 440], "phone": 400, "photon": [44, 226, 248, 365, 395, 451, 458, 467, 471, 487, 489, 504, 523, 554, 577], "photutil": [141, 380, 394, 440], "php": 63, "physic": [126, 127, 130, 133, 327, 328, 379, 404, 408, 422, 456, 464, 486, 489, 491, 493, 502, 516, 518, 554, 577, 580, 581], "pi": [19, 20, 30, 31, 32, 37, 54, 235, 279, 403, 489, 512, 535, 536, 537, 540, 541, 551, 571], "pick": [380, 387, 394, 405, 421, 504], "pictur": 381, "pie": 518, "piec": [380, 386, 394, 399, 408], "piecewis": [249, 250, 449, 489, 532, 543, 564], "piecewisebrokenpowerlawnormspectralmodel": 403, "piecewisebrokenpowerlawnormspectramodel": 403, "piecewisenormsectralmodel": 428, "piecewisenormspatialmodel": [257, 445, 447, 489, 538], "piecewisenormspectralmodel": [258, 408, 428, 431, 444, 446, 489, 525, 555], "pig": [13, 380, 382, 383, 420, 421, 423, 424, 425, 427, 428, 439, 441, 442, 446], "pii": [135, 144], "pijhviyo": 463, "pillar": 396, "pin": 440, "pink": [109, 110], "pint": [475, 518], "pintor": [393, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 442, 444, 445, 446, 447], "pip": [379, 383, 387, 397, 411, 412, 414, 421, 440, 493, 578], "pipe": [436, 437, 438], "pipelin": [393, 395, 427], "piron": 577, "piron2001": 577, "pivot": [19, 20, 26, 67, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 446, 480], "pivot_energi": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "pix": [191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 530], "pix_reg": 479, "pix_reg_rec": 479, "pix_to_coord": [191, 192, 195, 197, 198, 201, 203, 204, 446], "pix_to_idx": [191, 192, 195, 197, 198, 201, 203, 204], "pix_tuple_to_idx": 447, "pixcoord": 394, "pixel": [13, 83, 102, 105, 109, 110, 112, 113, 114, 118, 128, 141, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 176, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 391, 419, 423, 437, 440, 459, 467, 469, 481, 485, 486, 494, 504, 514, 516, 528, 529, 530, 539], "pixel_area": 204, "pixel_scal": [118, 192, 204], "pixelis": 530, "pixelregion": [394, 527], "pixilis": 486, "pixreg": 537, "pixregion": 206, "pk": [137, 426, 451, 473, 474, 477, 478, 480, 490, 504, 544], "pks2155": [451, 473, 477], "pks2155_hess_lc": [123, 125, 145, 478, 482], "pl": [67, 80, 122, 127, 133, 170, 245, 252, 253, 254, 403, 453, 459, 469, 473, 480, 481, 482, 489, 504], "pl_model": 570, "pl_spectrum": 491, "place": [83, 86, 87, 91, 92, 100, 102, 105, 109, 110, 141, 147, 148, 149, 150, 151, 152, 153, 157, 158, 163, 165, 166, 176, 181, 193, 194, 196, 202, 205, 206, 247, 273, 303, 353, 380, 381, 387, 388, 391, 392, 393, 394, 396, 399, 400, 401, 402, 405, 410, 424, 426, 455, 472, 486, 487, 489, 504, 514, 515, 576, 582], "placehold": 385, "plai": [400, 465], "plain": [397, 486], "plan": [384, 385, 389, 390, 394, 396, 397, 400, 405, 409, 420, 437, 439, 440, 441, 575], "planar": [275, 391], "plane": [29, 67, 68, 126, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 400, 479, 480, 486, 493, 513, 528, 531, 536, 577, 583], "plate": [204, 486], "platform": [397, 406, 431], "plausibl": [407, 466], "pleas": [103, 108, 381, 383, 385, 387, 389, 415, 420, 421, 422, 431, 439, 441, 447, 453, 455, 456, 457, 458, 460, 463, 467, 468, 473, 474, 478, 481, 482, 502, 507, 518], "pleasant": 383, "plot": [6, 19, 20, 26, 66, 67, 83, 88, 101, 102, 105, 109, 110, 125, 128, 129, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 165, 166, 193, 194, 195, 196, 198, 201, 202, 203, 205, 206, 209, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 280, 284, 358, 367, 368, 372, 373, 374, 375, 376, 377, 378, 379, 381, 394, 395, 396, 398, 399, 401, 404, 416, 419, 422, 425, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 444, 445, 446, 447, 450, 452, 453, 457, 459, 460, 461, 463, 464, 468, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 487, 489, 490, 491, 493, 494, 495, 496, 502, 504, 508, 510, 511, 512, 514, 518, 520, 521, 522, 524, 527, 572, 573, 577, 580, 582], "plot_absorb": [449, 544, 564], "plot_at_energi": [147, 148, 493], "plot_bia": [150, 155], "plot_broken_powerlaw": [449, 545, 564], "plot_compound": [449, 546, 564], "plot_const": [449, 534, 543], "plot_constant_spectr": [449, 547, 564], "plot_constant_tempor": [449, 565, 574], "plot_containment_radiu": [154, 160, 162, 164], "plot_containment_radius_vs_energi": [154, 160, 162, 163, 164, 166, 493, 494], "plot_contour_lin": 483, "plot_correl": [209, 483], "plot_count": [109, 110], "plot_dat": 582, "plot_disk": [449, 535, 543], "plot_distribut": [447, 461, 463], "plot_energi": [83, 468], "plot_energy_depend": [147, 153, 493, 520], "plot_energy_offset": 83, "plot_err": 128, "plot_error": [19, 20, 26, 66, 67, 101, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 398, 451, 453, 455, 457, 463, 464, 466, 480, 483, 503], "plot_excess": [109, 110, 434], "plot_exp_cutoff_powerlaw": [449, 548, 564], "plot_exp_cutoff_powerlaw_3fgl": [449, 549, 564], "plot_exp_cutoff_powerlaw_norm_spectr": [449, 550, 564], "plot_expdecay_tempor": [449, 566, 574], "plot_extension_error": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275], "plot_fit": [101, 109, 110, 452, 455, 456, 457, 465, 475, 502], "plot_gauss": [449, 536, 543], "plot_gauss_spectr": [449, 551, 564], "plot_gaussian_tempor": [449, 567, 574], "plot_gen_gauss": [449, 537, 543], "plot_generalized_gaussian_tempor": [449, 568, 574], "plot_grid": [161, 193, 194, 196, 202, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 404, 433, 444, 463, 481, 484, 485, 486, 487, 489, 495], "plot_heatmap": 209, "plot_hist": [202, 531], "plot_imag": 83, "plot_interact": [193, 194, 196, 202, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 433, 440, 463, 471, 486, 502, 503], "plot_kernel": 161, "plot_kwarg": [455, 457, 465], "plot_linear_tempor": [449, 569, 574], "plot_logparabola": [449, 552, 564], "plot_logparabola_norm_spectr": [449, 553, 564], "plot_map_rgb": 445, "plot_mask": [109, 110, 194, 202, 206, 527], "plot_matrix": [150, 481, 494], "plot_migr": 155, "plot_naima": [449, 554, 564], "plot_npred_sign": [445, 463, 465, 503], "plot_offset2_distribut": 83, "plot_offset_depend": [147, 153], "plot_panel": 367, "plot_phasogram": 274, "plot_piecewise_norm_spati": [449, 538, 543], "plot_piecewise_norm_spectr": [449, 555, 564], "plot_point": [449, 539, 543], "plot_posit": [224, 247, 488], "plot_position_error": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275], "plot_powerlaw": [449, 556, 564], "plot_powerlaw2": [449, 557, 564], "plot_powerlaw_norm_spectr": [449, 558, 564], "plot_powerlaw_tempor": [449, 570, 574], "plot_profil": 128, "plot_psf_vs_rad": [154, 160, 162, 163, 164, 166, 494], "plot_rad_max_vs_energi": [165, 447, 457], "plot_region": [201, 202, 224, 247, 377, 457, 469, 488, 527, 531], "plot_residu": [101, 102, 105, 109, 110, 429, 431, 463, 503], "plot_residuals_spati": [102, 105, 109, 110, 463, 471, 503], "plot_residuals_spectr": [102, 105, 109, 110], "plot_rgb": 445, "plot_shel": [449, 540, 543], "plot_shell2": [449, 541, 543], "plot_sine_tempor": [449, 571, 574], "plot_smooth_broken_powerlaw": [449, 559, 564], "plot_spati": 431, "plot_spectrum": [101, 147, 463, 474, 481], "plot_spectrum_datasets_off_region": [428, 444, 445, 455, 457, 465, 527], "plot_stat": 455, "plot_super_exp_cutoff_powerlaw_3fgl": [449, 560, 564], "plot_super_exp_cutoff_powerlaw_4fgl": [449, 561, 564], "plot_super_exp_cutoff_powerlaw_4fgl_dr1": [449, 562, 564], "plot_templ": [449, 542, 543], "plot_template_phase_tempor": [449, 572, 574], "plot_template_spectr": [449, 563, 564], "plot_template_tempor": [449, 573, 574], "plot_theta_squared_t": 496, "plot_tim": 83, "plot_ts_profil": [125, 455, 456, 469, 472, 482], "plotmixin": [109, 110], "plotter": 367, "plsuperexpcutoff3fgl": 438, "plsuperexpcutoff4fgl": 423, "plt": [19, 20, 26, 66, 67, 129, 147, 153, 154, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 368, 377, 380, 381, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 527, 535, 537, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571], "plu": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 225, 400, 406, 489], "pmf": 393, "png": [154, 388, 416, 508, 510, 511, 512, 514, 515, 520, 521, 522, 524, 527, 531, 580, 583], "po": [152, 204, 527], "poi3qgwf": 477, "point": [15, 17, 18, 21, 22, 24, 25, 27, 61, 65, 67, 71, 72, 73, 74, 75, 77, 78, 79, 80, 82, 83, 85, 87, 88, 90, 91, 94, 95, 96, 99, 100, 101, 102, 104, 105, 109, 110, 112, 113, 119, 123, 125, 126, 127, 130, 131, 132, 133, 134, 138, 143, 145, 152, 154, 157, 163, 165, 166, 176, 177, 179, 180, 181, 183, 184, 186, 187, 189, 190, 193, 194, 196, 201, 202, 205, 206, 211, 224, 247, 251, 263, 282, 286, 289, 295, 309, 313, 319, 325, 335, 372, 380, 382, 383, 385, 386, 387, 388, 389, 390, 392, 393, 394, 396, 397, 400, 401, 402, 403, 404, 405, 406, 407, 409, 412, 419, 422, 424, 425, 431, 433, 434, 436, 437, 438, 439, 441, 444, 445, 446, 449, 452, 454, 457, 458, 459, 463, 468, 469, 471, 472, 473, 474, 475, 477, 481, 483, 484, 485, 486, 489, 490, 494, 496, 498, 506, 507, 513, 514, 515, 518, 523, 527, 530, 532, 536, 537, 543, 554, 575, 576, 577], "point_sourc": 391, "pointer": 388, "pointing_altaz": [407, 445], "pointing_galact": 91, "pointing_info": [85, 94, 450], "pointing_posit": [163, 458, 468, 471], "pointing_radec": [83, 91, 445, 493], "pointing_t": 94, "pointing_zen": 445, "pointinginfo": [85, 437], "pointinginfometadata": [90, 104], "pointingmetadata": 407, "pointingmod": 85, "pointlik": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 439, 527], "points_scal": 319, "pointskyregion": [175, 180, 201, 251, 434, 457, 468], "pointsourc": [391, 506], "pointspatialmodel": [19, 20, 72, 80, 133, 257, 403, 404, 424, 444, 459, 460, 463, 464, 467, 468, 472, 480, 481, 488, 489, 494, 502, 503, 539], "pointspreadfunct": 484, "poisson": [105, 110, 288, 289, 290, 291, 297, 300, 301, 304, 337, 392, 393, 422, 427, 453, 458, 461, 471, 577, 578, 580], "poissonian": [289, 475, 478, 577], "poissonlikelihoodfitt": 436, "polar": [51, 54, 308, 380], "pole": [51, 394, 486], "poli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 194], "polici": 384, "pollut": 395, "polygon": [194, 208, 394], "polygonis": 394, "polygonpixelregion": 394, "polygonskyregion": [208, 394], "polynomi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 244, 486], "polynomial1d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "polynomialmodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "pool": [323, 327, 328], "pool_kwarg": [327, 328], "poolmethodenum": 323, "poon": 437, "poorli": [485, 525], "pop": [92, 100, 200, 247], "popitem": 200, "popul": [6, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 381, 400, 438, 507, 509, 554, 576], "popular": 578, "port": 438, "pos_ob": 465, "pos_on": 190, "pos_target": [465, 475], "posit": [16, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 87, 90, 91, 94, 95, 96, 102, 103, 104, 105, 108, 112, 113, 123, 124, 125, 126, 127, 130, 131, 133, 151, 152, 158, 161, 163, 166, 176, 179, 181, 190, 192, 193, 194, 196, 201, 202, 203, 204, 205, 206, 207, 214, 215, 216, 217, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 286, 288, 290, 305, 306, 309, 310, 313, 314, 368, 380, 387, 391, 393, 394, 403, 404, 405, 406, 421, 423, 428, 431, 433, 446, 447, 450, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 474, 475, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 496, 504, 514, 515, 516, 518, 523, 524, 527, 528, 529, 531, 535, 536, 537, 539, 554, 580], "position_angl": 458, "position_error": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 425], "position_lonlat": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "position_off": 190, "positv": 442, "posixpath": [16, 344], "possibl": [33, 82, 87, 91, 136, 156, 380, 381, 383, 387, 388, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 404, 407, 409, 410, 412, 422, 423, 431, 438, 440, 445, 447, 451, 455, 459, 460, 461, 466, 469, 481, 483, 484, 485, 486, 494, 503, 504, 516, 518, 525, 530, 531, 554, 578, 579], "possibli": [87, 91, 123, 386, 390, 391, 393, 394, 398, 399, 400, 401, 407, 409, 431, 525], "post": [52, 389, 407], "postbuild": 409, "poster": [383, 406, 410, 435], "posterior": [398, 491], "posteriori": 491, "postfix": 380, "potenti": [120, 388, 396, 466, 518], "potentiel": 406, "power": [19, 20, 26, 27, 101, 118, 123, 125, 127, 132, 140, 161, 163, 166, 192, 214, 216, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 264, 266, 267, 268, 269, 272, 276, 279, 284, 289, 334, 391, 393, 419, 425, 437, 439, 447, 449, 451, 458, 460, 463, 467, 469, 471, 473, 474, 475, 477, 488, 489, 491, 518, 532, 544, 564, 570], "power_spectrum": 289, "power_spectrum_param": 289, "powerlaw": [179, 253, 255, 289, 391, 392, 396, 437, 439, 449, 452, 460, 468, 469, 480, 489, 491, 503, 532, 558, 574], "powerlaw2spectralmodel": [245, 253, 254, 258, 403, 453, 460, 489, 504, 557], "powerlaw_with_paramet": 289, "powerlawnormspectralmodel": [67, 232, 252, 254, 258, 273, 402, 403, 408, 428, 446, 463, 464, 467, 468, 471, 481, 488, 489, 494, 502, 525, 538, 558, 563], "powerlawspectr": 133, "powerlawspectralmodel": [70, 72, 76, 80, 101, 109, 110, 115, 117, 122, 125, 131, 133, 215, 217, 252, 253, 258, 280, 403, 404, 408, 451, 452, 453, 456, 458, 459, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 488, 489, 491, 493, 494, 502, 503, 504, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 546, 555, 556, 565, 566, 567, 568, 569, 570, 571, 572, 573], "powerlawspectramodel": 408, "powerlawtemporalmodel": [270, 489, 570], "pppc4dm": 506, "pppc4dmid": 26, "pprint": [87, 91, 579], "pprint_al": [87, 91], "pprint_exclude_nam": [87, 91], "pprint_include_nam": [87, 91], "pr": [380, 390, 392, 394, 403, 404, 406, 408, 409, 425, 426], "practic": [393, 397, 401, 404, 405, 406, 407, 455, 481, 487, 489, 503, 514, 518, 527, 577], "pre": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 101, 104, 108, 124, 125, 380, 383, 389, 400, 406, 407, 411, 412, 428, 440, 442, 456, 460, 461, 464, 466, 469, 478, 480, 482, 483, 488, 491, 514, 520], "preced": [325, 394, 396, 406, 489], "precis": [133, 154, 160, 162, 164, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 380, 398, 405, 406, 468], "precision_factor": [163, 166, 193, 194, 196, 202, 205, 206], "precomput": [26, 101, 125, 447, 481, 488], "pred": 514, "predefin": [412, 414, 433, 469, 472, 473, 502], "predic": 391, "predict": [101, 102, 105, 108, 109, 110, 122, 123, 125, 126, 127, 130, 131, 140, 170, 173, 179, 186, 251, 263, 292, 329, 376, 386, 391, 392, 393, 428, 445, 446, 451, 456, 458, 460, 461, 463, 465, 467, 469, 471, 481, 482, 485, 491, 502, 503, 516, 518, 522, 525, 544, 577, 580], "prefer": [87, 91, 355, 380, 385, 387, 391, 399, 400, 406, 411, 412, 416, 469, 474, 486, 487, 491, 498, 578, 580], "prefix": [198, 391], "preliminari": [389, 400, 408, 436, 438, 446, 459, 484, 494], "prepar": [82, 173, 390, 391, 409, 456, 464, 482, 485, 489, 494, 502, 526, 575], "prepare_input": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "prepare_output": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "prepend": [87, 91, 307], "presenc": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 447, 459, 478, 486, 554, 577], "present": [15, 70, 82, 83, 85, 91, 92, 100, 106, 110, 123, 125, 167, 195, 200, 224, 232, 247, 307, 380, 381, 383, 393, 396, 400, 404, 407, 410, 431, 452, 457, 460, 461, 472, 473, 477, 478, 479, 484, 485, 486, 488, 514, 516, 519, 531, 578, 580], "preserv": [87, 91, 105, 193, 194, 196, 198, 202, 205, 206, 397, 481, 487], "preserve_count": [193, 194, 196, 202, 205, 206, 486], "press": 493, "pretti": [394, 400, 410, 416], "prevent": [194, 226, 307, 431, 463, 525], "preview": [383, 496], "previou": [74, 87, 91, 380, 383, 394, 400, 401, 405, 409, 422, 428, 446, 447, 457, 466, 467, 486, 489, 490, 491, 504, 513], "previous": [286, 397, 427, 439, 440, 450, 455, 463, 464, 480, 485, 487], "primari": [26, 87, 91, 193, 194, 196, 197, 205, 206, 385, 406, 427, 442, 482, 486], "primarili": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "primary_axi": 197, "primary_band": 486, "primary_hdu": 467, "primaryflux": [19, 20, 479, 506], "primaryhdu": [467, 486], "prime": 23, "primer": 398, "princip": 466, "principl": [380, 406, 408, 455, 528], "print": [11, 67, 82, 83, 85, 86, 87, 88, 91, 94, 96, 101, 102, 109, 111, 116, 122, 125, 127, 133, 141, 142, 148, 150, 153, 154, 160, 162, 164, 173, 176, 215, 217, 224, 239, 247, 280, 305, 306, 315, 347, 380, 381, 391, 392, 395, 404, 407, 415, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 502, 503, 504, 516, 518, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 579, 580, 582], "print0": 380, "print_level": [463, 471, 483, 503], "print_stack": 380, "printout": [380, 438, 439, 481], "prior": [19, 20, 99, 101, 102, 109, 214, 215, 216, 217, 218, 221, 222, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 278, 384, 389, 446, 447, 449, 451, 452, 455, 456, 457, 458, 460, 463, 464, 469, 471, 473, 474, 480, 483, 489, 492, 498, 503, 504, 563, 575], "prior_registri": 491, "prior_stat_sum": [214, 215, 216, 217, 408, 491], "priorfitstatist": 408, "priori": [404, 461, 487], "prioriti": [377, 389, 391, 392, 394, 406, 409], "priormodel": 408, "priorparamet": [233, 256, 278, 408, 491], "privat": [380, 383, 389, 403, 439, 495, 496], "pro": [380, 396], "probabl": [13, 101, 134, 143, 155, 383, 386, 387, 388, 390, 393, 394, 398, 400, 402, 408, 410, 455, 458, 471, 483, 486, 489, 491, 494, 522, 523, 524, 577, 578, 580, 581], "probe": [133, 295, 489], "problem": [19, 20, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 303, 358, 388, 390, 394, 401, 408, 415, 443, 483, 518], "problemat": [399, 404, 407, 473, 518], "proce": [383, 410, 412, 414, 442, 451, 452, 455, 456, 467, 471, 473, 487, 488, 493, 494, 502, 503], "procedur": [393, 405, 409, 410, 451, 459, 463], "proceed": [400, 406, 495], "process": [11, 83, 93, 126, 127, 130, 133, 134, 143, 169, 194, 206, 326, 327, 328, 337, 380, 381, 383, 385, 386, 388, 389, 390, 392, 393, 395, 396, 402, 405, 406, 407, 413, 417, 423, 428, 431, 433, 439, 446, 447, 452, 455, 459, 465, 467, 468, 480, 481, 485, 495, 500, 503, 508, 515, 517, 518, 576, 577, 578], "process_lots_of_data": 380, "processor": 400, "prod": 420, "prod3": 400, "prod3b": 493, "prod5": [467, 468, 493], "produc": [15, 102, 105, 109, 110, 114, 123, 283, 285, 380, 381, 386, 395, 396, 404, 405, 407, 410, 425, 451, 452, 455, 457, 459, 464, 465, 466, 467, 471, 473, 475, 479, 483, 485, 491, 493, 503, 518, 521, 523, 578], "product": [108, 134, 143, 193, 194, 196, 199, 202, 205, 206, 274, 386, 395, 396, 406, 407, 416, 431, 445, 446, 451, 453, 459, 468, 475, 481, 483, 485, 494, 496, 516, 523, 577], "prof_mak": 127, "profil": [17, 18, 21, 22, 23, 24, 25, 27, 101, 119, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 143, 154, 160, 162, 163, 164, 166, 190, 194, 202, 211, 236, 238, 287, 304, 320, 339, 340, 392, 394, 398, 399, 406, 412, 414, 419, 421, 428, 431, 436, 438, 440, 441, 446, 447, 449, 455, 456, 465, 470, 472, 473, 474, 482, 483, 491, 498, 506, 516, 518, 535, 580], "profile_err": 128, "profile_high": 469, "profile_new": 469, "profuma": 506, "program": [380, 396], "programmat": 463, "progress": [15, 82, 118, 130, 133, 211, 328, 386, 389, 396, 397, 410, 431, 438, 439, 440, 446, 518], "progress_download": 518, "proj": [102, 105, 109, 110, 173, 192, 193, 194, 204, 205, 206, 455, 485, 486, 494, 503, 527], "project": [102, 109, 127, 170, 176, 192, 193, 194, 196, 201, 202, 204, 205, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 314, 340, 380, 381, 382, 383, 385, 387, 394, 396, 397, 400, 406, 423, 431, 439, 445, 456, 459, 461, 465, 469, 475, 484, 486, 487, 488, 494, 500, 502, 503, 504, 506, 527, 530, 531, 540, 541, 576, 578], "projected_distance_axi": 127, "prompt": 578, "pronounc": 518, "pronunci": 518, "prop_cycl": 377, "propag": [19, 20, 26, 53, 128, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 391, 398, 425, 445, 483], "proper": [45, 100, 395, 406, 444, 445, 457, 463, 518], "properli": [133, 186, 385, 395, 406, 443, 444, 455, 456, 482, 483, 502, 514, 579], "properti": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 87, 90, 91, 96, 104, 123, 124, 170, 204, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 296, 377, 380, 381, 391, 393, 403, 404, 407, 408, 428, 431, 433, 438, 439, 441, 444, 445, 455, 457, 465, 467, 469, 480, 487, 489, 490, 504, 515, 531, 577], "propos": [380, 382, 384, 385, 386, 387, 389, 397, 405, 406, 408, 409, 421, 424, 425, 427, 428, 439, 445], "protect": 447, "proto": [16, 84, 90, 104, 124], "proton": [279, 554], "prototyp": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 385, 391, 393, 396, 397, 398, 400, 436, 438, 439, 446, 507], "proven": 396, "provid": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 85, 87, 88, 90, 91, 101, 102, 104, 105, 109, 110, 114, 124, 130, 133, 134, 136, 143, 150, 151, 169, 183, 184, 189, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 212, 275, 289, 304, 307, 373, 380, 381, 390, 391, 393, 395, 396, 397, 400, 401, 404, 406, 407, 408, 409, 410, 411, 412, 414, 415, 417, 421, 424, 425, 426, 428, 431, 433, 442, 445, 447, 450, 455, 457, 458, 459, 468, 471, 478, 480, 481, 482, 483, 485, 486, 487, 489, 490, 494, 495, 496, 498, 503, 504, 506, 508, 513, 515, 516, 517, 518, 519, 520, 521, 522, 524, 525, 528, 529, 530, 531, 532, 539, 542, 554, 563, 575, 576, 577, 578, 580, 583], "proxi": 390, "prune": [383, 409], "pset": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "pseudonym": 383, "psf": [16, 82, 87, 88, 96, 102, 103, 105, 108, 109, 110, 112, 113, 114, 152, 154, 159, 160, 161, 162, 163, 164, 166, 173, 180, 189, 204, 224, 247, 263, 305, 306, 380, 386, 390, 391, 392, 393, 396, 419, 421, 425, 426, 427, 428, 431, 432, 436, 437, 438, 439, 440, 441, 442, 443, 445, 447, 450, 452, 455, 456, 457, 459, 460, 461, 463, 465, 467, 468, 471, 472, 481, 485, 487, 490, 493, 495, 496, 502, 503, 514, 516, 518, 523, 526, 531, 577], "psf3d": [88, 154, 159, 162, 164, 189, 421, 439, 524], "psf68": 450, "psf_": 514, "psf_3gauss": [87, 154, 493, 524], "psf_assym": 484, "psf_kernel": [163, 494], "psf_kernel_map": [161, 494], "psf_king": [87, 162, 524], "psf_map": [103, 108, 163, 166], "psf_map_reco": [166, 495], "psf_mean": 494, "psf_new": 484, "psf_out": [163, 166], "psf_r95": 487, "psf_tabl": [82, 87, 160, 484, 496], "psf_theta": 380, "psf_updat": [103, 108], "psf_valu": [154, 162, 164], "psfkernel": [105, 163, 166, 194, 206, 392, 401, 440, 524], "psfking": [159, 433, 524], "psfmap": [102, 103, 105, 108, 109, 110, 151, 152, 158, 159, 161, 166, 173, 180, 189, 392, 393, 401, 421, 424, 425, 427, 428, 440, 446, 447, 459, 481, 494, 518, 524], "psfnd": 484, "psr": [475, 480, 504], "public": [6, 370, 371, 383, 385, 394, 399, 402, 405, 410, 435, 452, 464, 472, 473, 477, 576, 583], "publicli": [493, 495, 496], "publish": [11, 397, 410, 455, 494], "pull": [381, 384, 385, 388, 389, 390, 391, 392, 393, 394, 400, 405, 406, 409, 410, 418], "puls": 238, "pulsar": [30, 31, 32, 35, 39, 42, 50, 54, 60, 64, 77, 83, 390, 400, 421, 423, 442, 445, 447, 449, 461, 466, 476, 489, 498, 508, 509, 518], "pulsar_analysi": [400, 449, 475, 476], "pulsar_phas": 518, "pulsar_phase_comput": 518, "pulsarastronomi": 518, "pulsat": 262, "pulse_stat": 475, "punch": [444, 446], "pure": [380, 397, 399, 400, 527], "purpl": 531, "purpos": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 331, 355, 384, 386, 392, 395, 399, 403, 405, 406, 439, 459, 481, 488, 489, 522], "push": [380, 383, 409, 442], "put": [198, 380, 381, 383, 385, 387, 388, 391, 400, 409, 410, 416, 422, 458, 467, 487, 494, 518, 578], "pwabcbbu": 477, "pwbpl": 403, "pwd": [383, 412, 414], "pwl": [19, 20, 26, 125, 215, 217, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 391, 403, 408, 451, 453, 467, 482, 489, 491, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 546], "pwl2": 489, "pwl_decai": 467, "pwl_norm": [403, 489, 558], "pwn": [43, 480, 504, 511], "pwne": 466, "py": [380, 381, 387, 394, 397, 399, 401, 409, 410, 416, 421, 423, 424, 432, 437, 441, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 499, 500, 502, 503, 504, 505, 518, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 578], "py310": 383, "py35": 438, "pycharm": 422, "pydant": [16, 84, 90, 104, 124, 379, 425, 444, 446, 463], "pydantic_cor": [16, 84, 90, 104, 124], "pydanticdeprecatedsince20": 463, "pydanticserializationerror": [16, 84, 90, 104, 124], "pydanticundefin": [16, 84, 90, 104, 124], "pydata": [433, 447], "pydocstyl": 381, "pyfact": [419, 437], "pyflak": 433, "pyirf": 446, "pyjok": 379, "pymc": 398, "pymotw": 578, "pypi": [397, 407, 409, 410, 412, 413], "pyplot": [19, 20, 26, 66, 67, 83, 129, 154, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 368, 373, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 527, 535, 537, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571], "pyproject": 428, "pyregion": 394, "pytest": [380, 381, 383, 410, 439], "python": [11, 16, 84, 90, 104, 124, 141, 307, 348, 379, 383, 384, 385, 389, 390, 392, 393, 394, 396, 397, 398, 399, 400, 401, 406, 407, 409, 410, 411, 412, 413, 414, 415, 417, 419, 420, 421, 423, 424, 431, 433, 436, 437, 438, 439, 440, 441, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 517, 518, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 578], "python3": [344, 413, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "python_execut": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "python_vers": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "pytorch": 398, "pyx": [383, 410], "pyyaml": [379, 397, 420, 424], "q": [26, 83, 87, 91, 375, 479], "q7m6agyd": 477, "qol": 447, "qtabl": [87, 91, 395, 477], "quadrat": [486, 496, 504, 581], "qualiti": [202, 400, 439, 440, 445, 490, 503, 518, 576, 583], "quantifi": [446, 466, 477, 478, 491], "quantiti": [13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 47, 50, 51, 52, 53, 54, 71, 74, 75, 80, 83, 86, 87, 88, 91, 94, 96, 100, 102, 103, 105, 106, 108, 109, 110, 112, 113, 114, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 136, 137, 138, 139, 141, 142, 143, 146, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 177, 178, 179, 181, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 207, 208, 214, 216, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 282, 288, 289, 290, 293, 294, 295, 296, 298, 303, 306, 307, 309, 311, 313, 314, 319, 337, 339, 340, 351, 355, 380, 381, 386, 389, 391, 394, 395, 396, 398, 403, 404, 407, 408, 422, 424, 428, 431, 432, 440, 441, 442, 450, 457, 459, 467, 468, 469, 473, 477, 478, 480, 481, 484, 485, 486, 487, 489, 493, 495, 496, 504, 510, 511, 512, 514, 518, 531, 557, 566, 568, 577, 580, 582], "quantity_support": [484, 535], "quasar": 137, "quentin": [398, 402, 403, 423, 424, 425, 426, 427, 428, 431, 433, 434, 442, 443, 444, 445, 446, 447], "queri": [396, 436, 480], "question": [347, 383, 385, 387, 388, 389, 391, 392, 393, 394, 397, 399, 404, 415, 420, 421, 439, 440, 441, 465, 504, 518, 519, 578], "questionnair": [387, 439], "quetin": 425, "quick": [83, 88, 102, 105, 109, 110, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 380, 383, 400, 410, 459, 460, 463, 465, 467, 474, 481, 484, 488, 493, 495, 496, 498, 504, 506, 515], "quickest": 381, "quickli": [380, 381, 383, 385, 396, 397, 400, 406, 410, 412, 438, 455, 463, 478, 495, 522, 578], "quicklook": 83, "quickplot": 194, "quicksort": [87, 91], "quickstart": 417, "quiescent": 544, "quit": [87, 91, 380, 408, 467], "quival": 391, "quot": [74, 280, 380, 381, 479], "r": [17, 18, 21, 22, 24, 25, 26, 27, 28, 30, 35, 36, 39, 40, 51, 53, 54, 86, 87, 91, 155, 190, 203, 308, 380, 381, 405, 410, 456, 464, 468, 483, 485, 502, 508, 523, 527, 535, 536, 537, 541, 544], "r68": [83, 112, 113, 154, 163, 166], "r70": [67, 480], "r_": [17, 18, 21, 22, 24, 25, 27, 28, 35, 36, 39, 40, 50, 52, 53, 260, 261, 479, 537, 540, 541], "r_0": [30, 33, 38, 48, 225, 237, 260, 488, 535, 537, 541], "r_1": [39, 48], "r_eval": 237, "r_exp": [36, 48], "r_in": [44, 168, 178, 260, 461, 528], "r_m": 537, "r_out": 44, "r_out_max": 168, "r_out_pwn": 43, "r_sun": 38, "ra": [67, 83, 85, 87, 88, 91, 94, 141, 142, 176, 380, 381, 393, 396, 450, 455, 457, 459, 461, 465, 468, 472, 473, 475, 477, 480, 485, 487, 493, 494, 495, 496, 503, 504, 506, 518, 522, 582], "ra_pnt": 496, "ra_tru": [380, 393], "rad": [33, 83, 88, 102, 105, 109, 110, 112, 113, 114, 154, 160, 162, 163, 164, 165, 166, 176, 189, 262, 396, 433, 445, 457, 481, 484, 485, 494, 523, 524, 527, 571], "rad_axi": [102, 105, 109, 110, 114, 163, 166, 481, 484, 485, 518], "rad_di": [45, 508], "rad_index": 160, "rad_max": [82, 83, 87, 88, 159, 165, 182, 433, 442, 444, 445, 457], "rad_max_2d": [87, 165, 175, 180, 182, 457], "radec": [83, 94, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 380, 381, 484, 486, 504], "radecsi": 542, "radesysa": 542, "radi": [248, 554], "radial": [28, 30, 35, 36, 39, 40, 45, 129, 190, 194, 333, 380, 391, 399, 404, 421, 436, 438, 446, 467, 469, 485, 493, 506, 508, 524, 527], "radian": [17, 18, 21, 22, 24, 25, 27, 199, 220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "radiat": [226, 518, 540, 541, 554], "radiative_model": [248, 554], "radii": [27, 479, 494, 536], "radio": [137, 394, 486], "radiobutton": [463, 471, 486, 502, 503], "radiu": [16, 17, 18, 21, 22, 24, 25, 27, 33, 34, 38, 43, 44, 50, 51, 52, 53, 54, 72, 82, 83, 91, 96, 102, 105, 109, 110, 122, 127, 128, 154, 160, 162, 163, 164, 166, 168, 176, 178, 194, 204, 206, 207, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 305, 306, 339, 381, 394, 396, 403, 404, 421, 430, 431, 435, 445, 450, 452, 455, 456, 458, 459, 460, 461, 463, 465, 467, 468, 472, 473, 475, 477, 479, 481, 484, 485, 487, 488, 489, 490, 493, 502, 503, 504, 511, 512, 525, 527, 528, 531, 535, 536, 537, 540, 541], "radius_inn": [52, 53], "radius_max": [339, 469], "radius_min": 339, "radius_reverse_shock": [50, 53, 511], "radmax": [433, 434, 445, 446], "radmax2d": [83, 88, 159, 182, 431, 447, 457], "rai": [11, 19, 20, 26, 52, 53, 57, 59, 63, 66, 83, 93, 122, 126, 127, 130, 132, 133, 137, 169, 226, 279, 280, 295, 296, 327, 328, 380, 386, 391, 392, 394, 398, 410, 412, 416, 417, 422, 438, 440, 445, 446, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 508, 509, 513, 514, 515, 518, 521, 523, 525, 527, 528, 544, 575, 576, 577, 578, 579, 580, 583], "rais": [16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 72, 84, 86, 87, 90, 91, 92, 100, 104, 124, 195, 200, 224, 226, 247, 271, 272, 273, 275, 307, 358, 380, 394, 403, 404, 407, 408, 425, 442, 445, 446, 447, 468], "raise_error": [16, 84, 90, 104, 124], "raj2000": [480, 504], "ran": [409, 493], "random": [6, 33, 42, 45, 46, 47, 87, 91, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 330, 331, 332, 333, 334, 335, 336, 337, 383, 392, 393, 396, 423, 435, 439, 467, 489, 518, 579, 580, 582], "random_se": 392, "random_st": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 330, 331, 334, 335, 336, 337, 380, 393, 458, 467, 468], "randomli": [46, 380], "randomnumb": 334, "randomst": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380], "rang": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 67, 71, 74, 75, 80, 83, 87, 91, 92, 100, 101, 102, 105, 109, 110, 126, 133, 150, 163, 165, 166, 179, 191, 192, 195, 197, 198, 201, 202, 204, 214, 216, 218, 219, 222, 223, 225, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 247, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 273, 274, 276, 277, 282, 320, 332, 334, 335, 336, 373, 380, 386, 392, 393, 395, 404, 422, 427, 428, 431, 439, 440, 442, 452, 455, 457, 458, 460, 463, 464, 466, 468, 473, 474, 475, 478, 480, 481, 482, 483, 484, 486, 487, 489, 490, 491, 494, 495, 502, 503, 504, 514, 516, 518, 537, 547, 576, 580], "rangl": 19, "rapid": [137, 295, 386, 389, 404, 405], "rare": [379, 380, 399, 486], "raster": [95, 194], "rate": [44, 45, 83, 88, 147, 148, 179, 186, 289, 337, 393, 416, 440, 455, 457, 475, 485, 493, 494, 496, 508, 521, 577], "rather": [118, 122, 126, 130, 133, 385, 398, 401, 439, 442, 444, 446, 447, 452, 483, 486, 504, 514, 536, 580], "ratio": [105, 110, 168, 192, 193, 194, 290, 304, 404, 450, 475, 493, 528, 577, 579, 580, 581, 583], "ravel": [192, 467], "raw": [123, 179, 504], "rc": [193, 194, 196, 202, 205, 206, 377, 486], "rc_context": [193, 194, 196, 202, 205, 206, 486], "rc_param": [193, 194, 196, 202, 205, 206, 486], "rcparam": 377, "rdbu": 502, "rdbu_r": [102, 105, 109, 110], "re": [87, 91, 96, 125, 126, 131, 170, 193, 194, 196, 202, 205, 206, 211, 305, 306, 373, 380, 381, 383, 385, 387, 388, 394, 395, 396, 398, 401, 402, 403, 404, 415, 419, 431, 433, 440, 453, 455, 456, 461, 463, 464, 465, 474, 483, 484, 488, 490, 494, 502, 504, 516, 518, 539, 578], "reach": [53, 132, 207, 385, 390, 393, 489], "reactiv": 442, "read": [15, 16, 83, 85, 86, 87, 88, 91, 94, 100, 101, 102, 105, 106, 109, 110, 115, 117, 118, 122, 123, 125, 127, 129, 131, 133, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 175, 193, 194, 196, 200, 201, 202, 205, 206, 211, 224, 226, 239, 247, 274, 275, 276, 281, 283, 285, 286, 343, 346, 366, 368, 373, 375, 380, 381, 383, 385, 390, 391, 392, 393, 396, 400, 402, 404, 406, 407, 408, 412, 414, 425, 428, 431, 439, 440, 442, 445, 446, 447, 451, 455, 456, 457, 461, 463, 466, 467, 478, 481, 482, 483, 484, 489, 491, 493, 494, 495, 498, 502, 504, 515, 516, 518, 520, 521, 522, 524, 542, 572, 573, 578, 581], "read_arf": 106, "read_bkg": 106, "read_builtin": [226, 451, 544], "read_covari": [224, 247], "read_dataset": 15, "read_lazi": 433, "read_model": 15, "read_pha": 106, "read_rmf": 106, "read_xspec_model": 276, "readabl": [361, 391, 433, 456, 502], "reader": [407, 450, 458, 460, 463, 465, 468, 471, 474, 493], "readi": [390, 407, 415, 577], "readili": 400, "readm": [383, 406], "readthedoc": [13, 126, 186, 201, 211, 276, 383, 400, 422, 437, 483, 484, 493, 515, 518, 529, 531], "real": [51, 380, 383, 410, 458, 459, 461, 468, 483, 487, 514], "realis": [385, 394, 406], "realist": 408, "realiti": 451, "realiz": [386, 577], "realli": [380, 387, 394, 397, 458, 471, 483], "rearrang": 400, "reason": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 385, 386, 387, 388, 391, 392, 393, 395, 397, 399, 401, 406, 439, 451, 467, 483, 491, 495, 514, 578], "reassign": [19, 20, 26, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "rebas": [380, 394], "rebin": [125, 145, 395, 433, 446, 473, 478, 481], "rebuild": [16, 84, 90, 104, 124, 464], "recarrai": [87, 91, 154, 164], "receiv": [398, 400, 401, 403, 405], "recent": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 390, 394, 395, 396, 397, 400, 413, 420, 434, 440, 464, 493, 495], "recip": [382, 396, 409, 417, 431, 475, 518, 519, 577, 580], "reco": [102, 105, 109, 110, 150, 183, 380, 386, 395, 404, 441, 442, 450, 481, 485, 495, 577], "reco_exposur": [122, 447], "reco_psf": [102, 105, 109, 110, 114, 485, 495], "recogn": [450, 458, 460, 463, 465, 471, 474, 493], "recognis": [391, 578], "recognit": 406, "recommend": [92, 100, 101, 180, 224, 247, 287, 319, 320, 379, 380, 381, 383, 387, 389, 397, 406, 410, 411, 413, 416, 423, 440, 455, 456, 457, 466, 481, 483, 485, 489, 494, 502, 518, 525, 530, 531, 578, 579, 582], "recomput": [125, 404, 461], "recompute_ul": 125, "recon_vers": [494, 504], "reconstruct": [83, 102, 103, 105, 108, 109, 110, 112, 113, 114, 122, 132, 133, 140, 147, 148, 150, 151, 152, 155, 165, 166, 179, 186, 380, 386, 391, 393, 428, 443, 450, 452, 455, 458, 460, 461, 463, 467, 471, 474, 481, 485, 487, 491, 495, 514, 516, 522, 523, 524, 531, 577], "recopsfmap": [159, 442, 445], "record": [83, 88, 380, 385, 386, 406, 493], "recov": 396, "rectangl": [221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 340, 394, 469, 527], "rectangleskyregion": [204, 220, 221, 275, 339, 340, 394, 452, 479, 487, 527, 531], "rectangular": [469, 527, 531], "recurr": 395, "recurs": [347, 407], "red": [101, 289, 295, 370, 450, 451, 455, 458, 461, 463, 466, 479, 490, 491, 535, 536], "redesign": 389, "redistribut": 522, "redo": 475, "redshift": [19, 20, 226, 403, 504, 544], "redshift_scan": 451, "reduc": [6, 11, 15, 100, 102, 105, 109, 110, 161, 163, 166, 171, 181, 193, 194, 196, 198, 202, 205, 206, 386, 387, 389, 391, 392, 396, 399, 401, 406, 407, 412, 419, 424, 431, 440, 446, 449, 451, 452, 453, 456, 457, 458, 463, 464, 467, 471, 472, 473, 474, 477, 487, 490, 492, 495, 498, 514, 518, 528, 531, 536, 537, 576, 577, 578], "reduce_data": 396, "reduce_over_ax": [193, 194, 196, 202, 205, 206, 460, 485, 495], "reduct": [6, 11, 169, 386, 392, 393, 396, 400, 401, 402, 407, 412, 425, 427, 445, 449, 461, 465, 466, 469, 475, 481, 484, 487, 488, 490, 492, 498, 515, 518, 525, 527, 528, 576, 577], "ref": [83, 94, 102, 109, 122, 127, 133, 192, 201, 204, 224, 247, 381, 404, 459, 465, 469, 473, 480, 481, 482, 484, 486, 494, 504, 531, 566, 567, 568, 569, 570, 571, 577, 578], "ref_templ": [16, 84, 90, 104, 124], "refactor": [380, 392, 394, 395, 396, 403, 421, 422, 423, 425, 426, 427, 428, 431, 433, 435, 437, 439], "refer": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 59, 63, 67, 69, 77, 83, 84, 85, 86, 87, 88, 90, 91, 94, 101, 102, 104, 105, 106, 109, 110, 112, 113, 114, 123, 124, 125, 126, 128, 133, 134, 136, 137, 143, 155, 169, 170, 173, 176, 177, 180, 181, 182, 185, 186, 188, 203, 204, 205, 206, 211, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 289, 291, 295, 296, 297, 298, 303, 304, 334, 335, 361, 362, 363, 364, 380, 381, 386, 388, 391, 392, 394, 396, 398, 403, 404, 405, 406, 407, 410, 417, 431, 438, 439, 447, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 488, 489, 491, 493, 494, 495, 502, 503, 504, 507, 514, 516, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 546, 548, 549, 550, 552, 553, 555, 556, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580, 582], "referenc": [380, 577], "reference_flux": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "reference_map": 486, "reference_model": [123, 125, 134, 143, 450, 451, 459, 464, 482], "reference_model_default": [123, 125], "reference_spectral_model": [123, 125], "reference_tim": [86, 88, 102, 105, 109, 110, 197, 203, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 444, 445, 468, 474, 478, 485, 486, 573], "refit": 482, "reflect": [171, 175, 176, 177, 181, 190, 389, 394, 396, 399, 401, 412, 424, 431, 433, 436, 437, 440, 451, 452, 455, 456, 457, 465, 473, 477, 487, 526, 577], "reflected_bkg_mak": 485, "reflectedbgestim": 396, "reflectedregion": 451, "reflectedregionsbackgroundmak": [171, 176, 425, 447, 452, 455, 457, 465, 473, 477, 485], "reflectedregionsfind": [175, 181, 423, 527], "refpix": [204, 205, 206], "refresh": [87, 91], "refus": 380, "reg": [102, 105, 109, 110, 487, 489], "reg_dataset": 481, "regard": [404, 407, 455], "regardless": [87, 91], "regeard": [443, 444, 445, 446, 447], "regi": [386, 391, 392, 396], "region": [6, 27, 83, 91, 100, 102, 105, 107, 109, 110, 115, 117, 122, 123, 125, 127, 129, 132, 137, 151, 152, 158, 163, 166, 168, 169, 170, 173, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 190, 192, 193, 194, 196, 201, 202, 204, 205, 206, 208, 211, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 276, 279, 290, 304, 338, 339, 340, 341, 342, 376, 377, 379, 381, 384, 386, 387, 395, 396, 397, 399, 402, 404, 412, 423, 424, 425, 427, 431, 433, 434, 436, 437, 439, 440, 442, 444, 445, 447, 451, 456, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 486, 489, 491, 493, 494, 495, 496, 502, 503, 504, 513, 514, 515, 516, 518, 525, 526, 528, 529, 530, 535, 536, 554, 576, 577, 579, 580, 581], "region_coord": 201, "region_ev": 475, "region_find": [175, 457], "region_io": 201, "region_map": [202, 206, 531], "region_map_1": 531, "region_map_2": 531, "region_mask": [83, 192, 204, 394, 455, 461, 465, 481, 485, 487, 503, 525, 527, 528], "region_nd_map": 202, "region_new": 341, "region_pix": 489, "region_weight": 204, "regionfind": [176, 177, 181], "regiongeom": [102, 105, 109, 110, 123, 127, 173, 180, 182, 183, 184, 186, 187, 202, 221, 225, 234, 237, 249, 260, 261, 263, 265, 271, 275, 394, 395, 402, 412, 427, 428, 431, 450, 452, 455, 457, 458, 465, 469, 473, 474, 475, 477, 480, 481, 482, 485, 494, 504, 514, 527, 530], "regionndmap": [26, 106, 109, 110, 132, 174, 175, 180, 182, 193, 194, 196, 201, 205, 206, 221, 225, 234, 237, 239, 249, 260, 261, 265, 271, 272, 275, 377, 394, 412, 427, 428, 431, 434, 442, 445, 468, 482, 494, 514, 530, 573], "regions_ds9": 487, "regionsfind": [175, 176, 181, 433], "regist": 489, "registri": [55, 98, 119, 159, 171, 243, 245, 257, 258, 270, 401, 408, 424, 427, 428, 431, 440, 480, 489], "regress": 383, "regul": 406, "regular": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 192, 200, 204, 389, 408, 433, 445, 471, 486, 487, 495], "regulargridinterpol": [319, 380], "regularis": 408, "regularli": [408, 496], "reichardt": 435, "reimplement": 391, "rej_sampl": 393, "reject": [384, 385, 393], "rel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 87, 88, 91, 105, 106, 110, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 203, 204, 205, 206, 260, 280, 294, 337, 395, 406, 431, 474, 478, 495, 541, 580], "rel_reduction_of_f_": 483, "relat": [11, 13, 67, 83, 85, 209, 295, 386, 388, 391, 393, 394, 397, 399, 400, 401, 406, 410, 427, 428, 440, 446, 481, 489, 493, 508, 575, 580], "relative_variability_amplitud": 478, "relative_variability_error": 478, "relative_variability_signific": 478, "relativist": 554, "releas": [11, 51, 65, 95, 382, 384, 385, 387, 388, 394, 397, 398, 407, 411, 413, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 452, 455, 456, 464, 472, 473, 477, 493, 495, 496, 502, 503, 506, 518, 520, 521, 522, 524], "relev": [123, 288, 290, 363, 380, 386, 395, 400, 404, 409, 455, 456, 459, 472, 473, 474, 477, 488, 490, 493, 495, 496, 502, 503, 514, 515, 582], "reli": [123, 380, 385, 386, 390, 391, 395, 399, 404, 405, 423, 428, 431, 442, 453, 463, 487, 506, 580], "reliabl": [383, 413, 461, 483, 487, 579], "remain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 100, 385, 386, 387, 388, 393, 397, 406, 421, 440, 457, 488, 524], "remaind": 495, "remark": 457, "rememb": [380, 394, 483, 498, 578], "remi": [402, 403, 423, 424, 425, 426, 427, 428, 431, 442, 443, 444, 445, 446, 447], "remind": [198, 406, 459, 465, 482], "remnant": [28, 52, 452, 466, 489, 509], "remot": [383, 409], "remov": [13, 16, 84, 87, 90, 91, 92, 96, 100, 104, 124, 163, 166, 178, 191, 192, 197, 200, 201, 204, 206, 247, 306, 383, 387, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 411, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 443, 444, 445, 446, 447, 455, 461, 463, 469, 475, 481, 487, 490, 493, 494, 507, 518, 527], "remove_column": [87, 91], "remove_indic": [87, 91], "remove_row": [87, 91], "renam": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 125, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 383, 390, 391, 399, 400, 403, 419, 422, 424, 425, 426, 427, 431, 441, 442, 445, 578], "rename_ax": [191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 442], "rename_column": [87, 91, 125], "rename_dupl": [87, 91], "render": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 358, 380, 381, 388, 439], "renorm": [461, 525], "renormalis": 178, "reoptim": [126, 130, 131, 211, 421, 451, 469, 472, 482, 483, 491, 502], "reorder": 447, "reorder_ax": [193, 194, 196, 202, 205, 206, 445], "reorgan": 431, "reorganis": 400, "repeat": [381, 463, 495], "repl": 380, "replac": [15, 87, 91, 100, 102, 105, 109, 110, 151, 152, 158, 163, 191, 192, 194, 197, 201, 202, 204, 206, 273, 286, 380, 390, 391, 394, 398, 401, 407, 413, 422, 423, 425, 427, 428, 445, 446, 447, 475], "replace_axi": [191, 192, 201, 204], "replace_column": [87, 91], "repo": [381, 388, 409, 410, 419, 432], "report": [87, 383, 396, 409, 410, 419, 433, 434, 439], "repositori": [87, 91, 380, 383, 385, 388, 390, 406, 409, 431, 440, 467, 496], "repres": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 74, 75, 76, 78, 79, 80, 84, 87, 90, 91, 102, 104, 105, 109, 110, 124, 192, 194, 196, 198, 199, 201, 203, 263, 307, 315, 325, 380, 391, 392, 393, 394, 398, 401, 402, 403, 404, 421, 445, 451, 468, 469, 480, 482, 483, 485, 486, 487, 489, 494, 504, 513, 514, 516, 520, 521, 522, 524, 530, 575, 576, 577, 582], "represent": [16, 19, 20, 26, 83, 84, 86, 87, 90, 91, 104, 124, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 394, 407, 421, 423, 445, 453, 480, 486, 489, 530], "reprocess": 386, "reproduc": [94, 101, 125, 381, 396, 397, 398, 400, 406, 407, 411, 413, 440, 485], "reproject": [179, 193, 194, 196, 202, 205, 206, 376, 380, 386, 394, 397, 404, 425, 432, 440, 442, 446, 486, 487], "reproject_by_imag": [193, 194, 196, 202, 205, 206, 446], "reproject_to_geom": [193, 194, 196, 202, 205, 206, 442], "request": [85, 123, 125, 381, 384, 385, 387, 388, 389, 390, 391, 392, 394, 400, 404, 405, 406, 408, 410, 418, 467, 482, 487, 516], "requir": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 43, 44, 82, 83, 84, 85, 87, 88, 90, 91, 95, 102, 104, 105, 109, 110, 111, 116, 124, 125, 128, 133, 147, 148, 150, 153, 154, 155, 160, 162, 165, 170, 193, 194, 195, 196, 197, 198, 201, 202, 203, 205, 206, 207, 307, 355, 359, 360, 378, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 402, 403, 404, 405, 406, 408, 409, 411, 413, 419, 424, 425, 426, 427, 432, 433, 435, 436, 437, 438, 441, 442, 443, 447, 451, 452, 457, 461, 464, 473, 474, 475, 477, 478, 481, 484, 486, 487, 489, 493, 503, 516, 518, 531], "require_ev": 82, "required_ax": [147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 484], "required_hdu": 434, "required_irf": [16, 82, 456, 457, 460, 461, 463, 502], "required_nam": [195, 197, 198, 203], "required_paramet": [154, 162, 164], "rerun": [395, 477], "resampl": [102, 105, 109, 110, 125, 145, 146, 151, 191, 192, 193, 194, 195, 196, 197, 201, 202, 204, 205, 206, 375, 431, 433, 478, 518], "resample_axi": [125, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 375, 428, 473, 478], "resample_energy_axi": [102, 105, 109, 110, 151, 428, 433, 481], "resample_energy_edg": [455, 518], "resampled_energy_edg": 146, "resampled_map": [193, 194, 196, 202, 205, 206], "rescal": 485, "research": [396, 406], "reset": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 105, 109, 110, 232, 273, 381, 428], "reset_data_cach": [102, 105, 109, 110], "reset_to_default": 232, "reshap": [193, 194, 196, 202, 205, 206, 450, 468, 484, 486], "resid": [402, 489], "residu": [72, 101, 102, 105, 109, 110, 170, 391, 392, 396, 423, 428, 434, 441, 447, 461, 481, 483, 494, 514, 527, 577], "resolut": [52, 150, 151, 155, 192, 204, 389, 391, 393, 394, 439, 445, 447, 480, 494], "resolv": [16, 84, 90, 104, 124, 381, 383, 390, 394, 395, 402, 403, 415, 421, 440, 447, 449, 473, 476, 498, 527], "resort": 460, "resourc": [439, 498], "respect": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 83, 84, 87, 90, 91, 104, 106, 124, 125, 137, 192, 194, 204, 206, 287, 380, 390, 395, 406, 408, 428, 447, 459, 461, 474, 482, 486, 487, 495, 516, 531, 581], "respond": 406, "respons": [6, 108, 150, 151, 152, 155, 157, 158, 176, 380, 386, 387, 389, 391, 392, 393, 395, 396, 404, 406, 412, 438, 439, 440, 441, 452, 455, 456, 457, 458, 471, 474, 484, 485, 488, 493, 495, 496, 498, 502, 503, 514, 515, 520, 522, 524, 576, 577], "rest": [26, 383, 397, 399, 480, 513], "restor": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 488], "restore_statu": [215, 217, 224, 247, 491], "restore_valu": [215, 217, 224, 247], "restrict": [87, 91, 394, 463, 481, 487], "restructur": [381, 395, 396, 397, 399, 401, 407, 410, 425, 431, 432, 433, 434, 436, 445], "result": [16, 46, 74, 84, 86, 87, 90, 91, 92, 101, 102, 104, 105, 109, 110, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 133, 135, 136, 141, 143, 144, 155, 161, 163, 166, 179, 183, 184, 189, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 210, 211, 212, 213, 224, 247, 275, 286, 289, 307, 373, 379, 380, 381, 383, 385, 387, 389, 390, 391, 392, 393, 396, 398, 399, 402, 406, 408, 413, 416, 423, 431, 433, 434, 439, 441, 445, 446, 447, 451, 453, 455, 457, 458, 463, 465, 467, 468, 471, 473, 474, 475, 478, 480, 481, 483, 486, 487, 490, 491, 494, 495, 496, 502, 503, 513, 516, 518, 531, 566, 577, 579, 580], "result1": 451, "result2": 488, "result_ecpl": 453, "result_joint": [452, 455, 463], "result_list": 373, "result_log_parabola": 453, "result_minuit": 483, "result_pwl": 453, "result_scipi": 483, "result_stack": 455, "results_joint": 464, "results_prior": 491, "results_simplex": 483, "results_t": 466, "retain": [480, 531], "retriev": [87, 91, 404, 406, 452, 453, 455, 486, 489, 490, 495, 503, 515, 530, 531], "return": [16, 19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 77, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 281, 284, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 303, 304, 305, 306, 307, 309, 311, 313, 314, 318, 320, 325, 329, 331, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 346, 347, 350, 351, 352, 361, 362, 363, 364, 365, 368, 370, 371, 373, 375, 376, 386, 390, 391, 392, 393, 394, 395, 403, 404, 407, 408, 424, 425, 428, 431, 434, 440, 442, 447, 455, 457, 461, 465, 469, 473, 474, 477, 480, 481, 482, 483, 485, 486, 487, 489, 491, 504, 508, 530, 531, 563, 580], "return_delta": 337, "return_diff": 337, "return_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "reus": [396, 428, 446], "reval": 537, "revers": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 53, 87, 91, 92, 100, 197, 247, 486, 511], "reverse_lon_radec": 156, "revert": 447, "review": [383, 388, 389, 390, 393, 394, 396, 397, 399, 400, 401, 403, 404, 406, 408, 441, 442, 530], "revis": 400, "revisit": 226, "rework": 426, "rewrit": [386, 389, 396, 426, 436, 437, 439, 440, 441, 578], "rewritten": [438, 441], "rf": 479, "rgb": [375, 377, 445, 450, 455], "rglob": [82, 467, 493], "rhe": 182, "rho": [17, 18, 21, 22, 23, 24, 25, 27], "rho_": [17, 21, 22, 24, 25, 27, 52, 53], "rich": [380, 396], "rid": 386, "right": [21, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 87, 91, 102, 109, 123, 125, 133, 153, 230, 235, 254, 267, 291, 297, 368, 380, 394, 403, 406, 459, 465, 467, 472, 474, 493, 535, 536, 537, 544, 545, 548, 549, 551, 552, 556, 559, 560, 561, 562, 566, 567, 568, 570, 578, 579, 580, 581], "rightarrow": [541, 581], "rigid": 385, "ring": [105, 122, 168, 171, 178, 192, 193, 194, 386, 389, 396, 399, 412, 421, 425, 427, 437, 438, 439, 440, 449, 462, 466, 487, 498, 517, 526, 529, 577], "ring2dkernel": [168, 178], "ring_background": [449, 461, 462], "ring_bkg_mak": 528, "ring_mak": 461, "ringbackgroundestim": [386, 439], "ringbackgroundmak": [168, 171, 425, 461, 485, 528], "rint": 447, "rise": [137, 238, 478, 568], "risk": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 383, 406], "rm": [150, 151, 155, 269, 403, 457, 483, 520, 522, 523, 524, 537, 566, 567, 568, 569, 570, 571], "rmax": [17, 18, 21, 22, 24, 25, 27], "rmf": [106, 107, 110, 150, 151, 152, 437, 455], "rmf_ob": 106, "rmffile": 106, "rmin": [17, 18, 21, 22, 24, 25, 27], "rng": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380], "roadmap": [384, 387, 396, 405, 420, 441], "roberta": [439, 440], "robust": [380, 440], "roellinghoff": 447, "roi": [67, 396, 480, 496, 577], "roi_max": 396, "role": [439, 485], "rolf": 419, "rolk": 577, "rolke2005": [577, 580], "roll": 494, "room": 390, "root": [19, 20, 26, 123, 124, 133, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 299, 302, 380, 398, 431, 459, 506, 516, 578, 580], "rosillo": 442, "rotang": 468, "rotat": [51, 54, 176, 177, 181, 186, 225, 234, 237, 468, 527, 535, 536], "rough": [72, 396], "roughli": [118, 383, 388, 394, 396, 399, 400, 438, 461], "round": [87, 91, 193, 194, 196, 198, 202, 205, 206, 455, 530], "round_to_edg": [191, 192, 201, 204], "round_trip": [16, 84, 90, 104, 124], "routin": 419, "row": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 91, 141, 150, 315, 351, 374, 395, 404, 407, 442, 445, 455, 458, 468, 469, 477, 480, 483, 486, 493, 495, 496, 504, 513], "row_idx": [67, 87], "row_index": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 480], "row_label": 374, "row_specifi": [83, 87, 91], "royalblu": 475, "rpovid": 395, "rspec": [67, 480], "rst": [383, 385, 400, 406, 409, 410, 426, 431], "rtd": 440, "rtol": [133, 355, 380], "rtol_ax": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206], "rtol_wc": 204, "ruben": 439, "rub\u00e9n": 439, "ruiz": [388, 396, 400, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 439, 440, 441], "rule": [87, 91, 263, 282, 318, 406, 486, 530], "run": [16, 82, 83, 84, 88, 90, 93, 101, 103, 104, 108, 118, 120, 121, 122, 124, 126, 127, 129, 130, 131, 132, 133, 141, 142, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 201, 204, 211, 327, 328, 354, 373, 379, 380, 381, 387, 388, 390, 393, 395, 396, 397, 400, 402, 404, 408, 409, 410, 411, 416, 422, 423, 426, 427, 438, 440, 441, 445, 447, 450, 451, 452, 453, 458, 459, 460, 461, 463, 464, 465, 467, 471, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 503, 504, 514, 515, 516, 518, 523, 525, 527, 528, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "run_fit": [15, 456, 460, 502], "run_id": [494, 504], "run_multiprocess": 518, "runner": [16, 344, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 544, 550, 566, 572, 573], "runtim": [389, 407, 409], "runtimewarn": [457, 461, 467, 477, 496, 566], "rx": 452, "rxj": 452, "rxj1713_2016_250gev": 542, "r\u00e9gi": [386, 389, 390, 394, 395, 397, 399, 401, 402, 403, 404, 405, 407, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "r\u00e9my": [398, 431, 433, 434, 442], "s0167947313003204": [135, 144], "s180": 295, "s2": 274, "s3": 274, "s_0": 518, "s_1": 518, "safari": [87, 91], "safe": [99, 101, 102, 105, 109, 110, 151, 152, 158, 163, 166, 171, 179, 380, 392, 394, 406, 425, 427, 428, 442, 443, 444, 445, 447, 452, 455, 481, 487, 503, 514, 576], "safe_mask": [16, 102, 109, 456, 460, 461, 463, 502], "safe_mask_mak": [169, 452, 455, 475, 485, 495, 525, 527, 528], "safe_mask_mask": [457, 465, 473, 477, 485], "safemaskconfig": 16, "safemaskmak": [169, 171, 401, 425, 426, 431, 433, 434, 446, 452, 455, 457, 465, 471, 473, 475, 477, 485, 487, 495, 502, 503, 525, 526, 527, 528], "safeti": 406, "sagittariu": [33, 38], "saha": 439, "sai": [74, 385, 399, 578], "said": [380, 385, 387, 495, 496, 578], "sake": [467, 483], "saldana": [226, 227, 445, 451, 544], "saldana21": 544, "samantha": 447, "same": [27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 87, 91, 95, 100, 102, 105, 106, 109, 110, 122, 133, 134, 135, 141, 142, 143, 144, 154, 155, 161, 162, 163, 164, 166, 167, 169, 190, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 280, 289, 295, 373, 380, 383, 388, 390, 392, 394, 395, 399, 400, 401, 402, 403, 404, 405, 406, 408, 409, 410, 412, 413, 423, 424, 428, 431, 445, 453, 456, 457, 458, 463, 464, 467, 471, 472, 473, 475, 480, 481, 486, 487, 488, 489, 490, 491, 494, 495, 498, 502, 514, 515, 516, 522, 530, 531, 578], "sampl": [47, 93, 103, 108, 133, 136, 152, 154, 160, 162, 163, 164, 166, 193, 194, 196, 202, 204, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 287, 289, 298, 320, 329, 334, 335, 336, 337, 384, 392, 394, 395, 398, 400, 412, 419, 421, 423, 424, 427, 433, 440, 442, 445, 446, 447, 449, 457, 470, 478, 481, 483, 498, 518], "sample_axi": 329, "sample_background": [103, 108, 425], "sample_coord": [152, 163, 166, 193, 194, 196, 202, 205, 206, 425, 427, 442], "sample_edisp": [103, 108], "sample_powerlaw": 399, "sample_psf": [103, 108], "sample_sourc": [103, 108], "sample_spher": [435, 582], "sample_tim": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 431, 442, 447], "sampler": [103, 329, 389, 393, 427, 431, 447, 467], "sampler_kwarg": 93, "saniti": 439, "santiago": 447, "satisfi": [146, 170, 192, 193, 194, 307, 488, 518], "save": [15, 19, 20, 26, 100, 133, 208, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 388, 396, 404, 408, 447, 451, 463, 464, 467, 483, 487, 488, 495, 515], "savefig": [358, 416], "savez": 208, "saw": 417, "sbpl": [264, 403, 489], "sc": [87, 91], "scalar": [87, 91, 161, 192, 193, 194, 196, 202, 205, 206, 307, 399, 433, 444, 446, 486, 530], "scale": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 52, 53, 67, 86, 88, 96, 100, 104, 105, 110, 118, 124, 126, 127, 130, 154, 170, 198, 202, 203, 204, 206, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 284, 287, 306, 319, 320, 321, 337, 361, 362, 363, 373, 381, 389, 394, 395, 398, 403, 426, 431, 432, 440, 443, 444, 445, 447, 456, 459, 468, 469, 472, 473, 474, 478, 479, 480, 482, 484, 485, 486, 489, 490, 491, 493, 502, 504, 506, 544, 565, 566, 567, 568, 569, 570, 571, 572, 573], "scale10": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 408, 554], "scale_method": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 408, 554], "scale_to_local_dens": [17, 18, 21, 22, 24, 25, 27, 479], "scaled_featur": 306, "scaled_features_irf": [305, 306, 490], "scaledregulargridinterpol": [68, 226, 276, 426, 441], "scalespectralmodel": [126, 127, 130, 258, 403, 489], "scan": [19, 20, 95, 123, 125, 126, 127, 130, 131, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 395, 404, 431, 469, 473, 482, 491, 516, 518], "scan_max": [19, 20, 126, 130, 133, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 451, 473, 482, 483], "scan_min": [19, 20, 126, 130, 133, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 451, 482, 483], "scan_n_sigma": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 483], "scan_n_valu": [19, 20, 126, 130, 131, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 451, 483, 491], "scan_prior": 491, "scan_valu": [19, 20, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 469, 483], "scargl": [395, 439, 478], "scatter": [224, 247, 401, 459, 465, 477, 535, 536], "scenario": [87, 91, 385, 392, 402, 412, 482, 486, 489, 507, 579], "scengin": [87, 91], "schedul": 389, "schema": [15, 16, 84, 90, 104, 124, 396, 399], "schema_gener": [16, 84, 90, 104, 124], "schema_json": [16, 84, 90, 104, 124], "scheme": [16, 84, 90, 101, 104, 106, 107, 124, 192, 193, 194, 203, 239, 380, 386, 390, 392, 395, 402, 403, 404, 405, 407, 409, 424, 431, 442, 446, 468, 484, 486, 489, 518, 523, 529, 530, 532], "schiavo": 447, "school": 406, "scienc": [135, 144, 193, 194, 196, 205, 206, 387, 389, 393, 396, 397, 400, 406, 417, 439, 440, 458, 464, 474, 486, 489, 490, 493, 494, 498, 506, 518, 552, 577, 578], "sciencedirect": [135, 144], "scientif": [381, 387, 403, 406, 413], "scientist": 493, "scikit": [141, 380, 394, 397, 400, 440, 487], "scipi": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 206, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 305, 319, 360, 373, 379, 380, 383, 389, 394, 397, 398, 400, 406, 417, 421, 422, 423, 424, 436, 437, 438, 441, 443, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 575, 580], "scipy_mvn": 209, "scipy_opt": 483, "scitool": 557, "scope": [393, 394, 395, 396, 399, 407, 507], "scratch": [153, 380, 390, 394, 410, 463, 487], "screen": [87, 91, 486, 504], "script": [6, 87, 91, 125, 343, 344, 345, 346, 347, 348, 349, 381, 386, 387, 389, 391, 394, 396, 399, 400, 406, 409, 410, 420, 421, 422, 423, 431, 432, 436, 439, 440, 441, 442, 446, 449, 455, 459, 461, 463, 464, 465, 466, 467, 469, 473, 474, 477, 479, 480, 481, 482, 483, 485, 488, 491, 494, 499, 502, 517, 518, 578], "scriptabl": 407, "scutum": [33, 38], "sdc": 493, "sdist": 410, "seaborn": 518, "search": [87, 91, 288, 290, 344, 380, 381, 416, 439, 440, 456, 459, 465, 466, 479, 480, 490, 502, 503, 504, 506, 518, 578], "season": 400, "sebastian": 431, "sec": [54, 83, 94, 100, 130, 337], "second": [42, 58, 83, 86, 87, 88, 91, 136, 150, 274, 298, 337, 340, 357, 361, 364, 369, 381, 388, 390, 392, 394, 398, 404, 406, 410, 425, 444, 455, 456, 459, 461, 463, 465, 466, 467, 468, 469, 473, 474, 477, 479, 481, 483, 485, 486, 488, 491, 493, 498, 502, 513, 579, 582], "secpl": [267, 268, 269, 403, 489], "section": [19, 87, 91, 289, 291, 297, 380, 381, 383, 385, 394, 396, 397, 399, 403, 406, 410, 428, 441, 458, 463, 467, 468, 471, 474, 480, 482, 483, 487, 488, 489, 504, 507, 518, 531, 576, 578, 582], "secur": 487, "sed": [119, 122, 123, 124, 125, 127, 133, 202, 226, 379, 396, 398, 404, 412, 419, 438, 453, 459, 469, 473, 480, 481, 482, 502, 504, 577], "sed_fit": [449, 453, 454], "sed_fitting_gammacat_fermi": 400, "sed_typ": [19, 20, 26, 123, 124, 125, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 431, 450, 451, 453, 455, 456, 457, 464, 465, 469, 472, 473, 474, 480, 482, 503, 504, 516, 518, 554, 577], "sed_type_init": [71, 74, 75, 78, 123, 124, 125], "sed_type_plot_default": [123, 125], "sedov": [52, 53], "sedov_taylor_begin": [52, 53, 512], "sedov_taylor_end": [52, 53, 512], "seds_20230803": 64, "sedtypeenum": 124, "see": [11, 13, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 66, 82, 83, 85, 87, 89, 91, 95, 99, 100, 101, 102, 105, 109, 110, 118, 120, 122, 125, 126, 127, 130, 132, 133, 135, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 169, 176, 178, 179, 186, 191, 192, 194, 196, 198, 199, 201, 204, 206, 211, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 281, 291, 297, 300, 301, 304, 307, 315, 331, 347, 370, 371, 379, 380, 381, 383, 384, 385, 387, 388, 389, 390, 393, 394, 395, 396, 397, 398, 400, 401, 405, 406, 407, 408, 410, 412, 413, 415, 416, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 436, 437, 438, 439, 440, 441, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 473, 474, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 495, 498, 502, 503, 504, 506, 514, 515, 518, 528, 529, 531, 557, 561, 562, 575, 577, 578, 579, 580, 582], "seed": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 248, 255, 262, 274, 277, 289, 329, 330, 331, 334, 335, 336, 337, 380, 439, 467, 554], "seed_photon_field": [248, 554], "seem": [380, 387, 388, 391, 397, 401, 506], "seen": [380, 394, 401, 452, 459, 464, 473, 486, 489, 494], "select": [16, 82, 83, 86, 87, 88, 89, 91, 92, 96, 100, 102, 105, 109, 110, 122, 173, 180, 193, 194, 195, 196, 198, 203, 205, 206, 215, 217, 224, 247, 263, 273, 286, 376, 377, 390, 392, 393, 394, 395, 396, 400, 402, 404, 407, 412, 414, 420, 423, 431, 435, 450, 455, 457, 458, 460, 461, 463, 464, 466, 467, 468, 471, 474, 475, 481, 482, 483, 485, 486, 487, 490, 493, 495, 496, 498, 504, 516, 518, 522, 523, 527, 576, 578], "select_energi": [83, 515], "select_from_geom": [224, 247], "select_map_mask": 421, "select_mask": [83, 224, 247, 431, 488], "select_nested_model": [445, 447], "select_obs_id": [91, 465], "select_observ": [91, 96, 396, 473, 477, 490, 503, 518], "select_offset": [83, 467, 496, 515], "select_paramet": [83, 89, 475, 515], "select_phas": 390, "select_rad_max": 83, "select_rang": 91, "select_region": [83, 89, 224, 247, 394, 423, 431, 467, 468, 475, 488, 504, 515], "select_row_subset": 83, "select_sky_box": 394, "select_sky_circl": [91, 394], "select_tim": [83, 86, 88, 92, 100, 390, 404, 425, 468, 473, 477, 515], "select_time_rang": 91, "selected_energi": 515, "selected_ev": 83, "selected_id": 515, "selected_obs_t": [91, 490, 503], "selected_offset": 515, "selected_region": 515, "selected_tim": 515, "selection_al": [118, 133], "selection_mask": [224, 247, 488], "selection_opt": [16, 118, 120, 121, 122, 126, 127, 129, 130, 131, 132, 133, 431, 447, 451, 455, 456, 459, 460, 461, 463, 464, 465, 469, 472, 473, 474, 475, 482, 487, 495, 502], "selection_vari": 91, "selectionconfig": 16, "selectionslid": [463, 471, 486, 502, 503], "self": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 86, 87, 90, 91, 104, 123, 124, 125, 201, 202, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 263, 264, 266, 267, 268, 269, 272, 276, 380, 381, 391, 392, 394, 397, 403, 404, 407, 408, 427, 461, 486, 489], "semant": [394, 405], "semi": 225, "semiaxi": [225, 234, 237, 535, 536, 537], "semilogi": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 450, 468], "semimajor": 480, "semiminor": 480, "semver": 405, "send": 409, "sens": [380, 387, 390, 394, 396, 399, 400, 401, 461], "sensibl": 490, "sensit": [119, 122, 123, 124, 125, 132, 280, 393, 400, 426, 428, 438, 439, 445, 446, 449, 454, 471, 493, 498, 506, 523], "sensitivity_estim": 450, "sensitivity_t": 450, "sensitivityestim": [119, 420, 426, 450], "sent": 385, "sentenc": [385, 400, 406], "sep": [201, 389, 397, 403, 418, 489], "separ": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 71, 72, 74, 75, 76, 78, 79, 80, 83, 91, 192, 201, 204, 303, 369, 380, 381, 386, 387, 388, 389, 392, 393, 394, 395, 396, 399, 400, 401, 402, 427, 431, 437, 439, 440, 444, 445, 458, 461, 463, 465, 471, 474, 480, 488, 489, 490, 507, 515, 523, 524, 535, 536, 540, 541, 554, 577], "septemb": [389, 397, 399, 400, 405], "sequenc": [87, 91, 92, 100, 102, 109, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 215, 224, 247, 307, 410], "sequenti": [386, 455, 503], "seri": [87, 91, 125, 289, 294, 337, 389, 394, 395, 431, 447, 478], "serial": [16, 84, 87, 90, 91, 99, 100, 101, 102, 104, 105, 109, 110, 124, 386, 391, 395, 396, 401, 404, 424, 427, 431, 433, 440, 442, 443, 444, 445, 446, 486, 489, 491, 506], "serialis": [20, 102, 105, 109, 110, 218, 219, 222, 224, 226, 228, 229, 230, 232, 233, 235, 239, 241, 242, 244, 246, 247, 248, 250, 252, 253, 254, 256, 259, 264, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 278, 392, 394, 396, 399, 401, 402, 403, 423, 425, 427, 431, 436, 439, 441, 442, 444, 445, 446, 491, 502, 518, 531, 573], "serializ": [16, 84, 90, 104, 124], "serialize_as_ani": [16, 84, 90, 104, 124], "serialize_method": [87, 91], "serializiaton": 392, "serilis": [26, 220, 221, 223, 225, 231, 234, 236, 237, 238, 240, 249, 251, 255, 260, 261, 262, 263, 265, 272, 275, 277], "sersic": 403, "sersic2d": 403, "sersicspatialmodel": 403, "serv": [87, 91, 380, 385, 392, 396, 404, 410, 433, 479, 522], "server": [402, 412, 414, 498], "servic": 439, "session": [396, 406, 517], "set": [15, 16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 87, 90, 91, 95, 101, 102, 103, 104, 105, 106, 108, 109, 110, 114, 120, 122, 123, 124, 125, 126, 127, 129, 130, 133, 135, 144, 150, 152, 163, 166, 169, 170, 173, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 211, 214, 215, 216, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 267, 268, 269, 271, 274, 275, 276, 286, 298, 327, 329, 380, 381, 386, 389, 390, 392, 393, 395, 396, 397, 398, 400, 404, 405, 406, 407, 408, 410, 412, 414, 427, 433, 435, 437, 439, 442, 445, 446, 447, 450, 451, 452, 455, 457, 458, 459, 460, 463, 465, 466, 467, 468, 469, 472, 473, 475, 480, 481, 482, 483, 485, 487, 489, 490, 491, 493, 495, 496, 498, 503, 506, 514, 515, 518, 527, 529, 530, 531, 554, 575, 578, 581, 582], "set_by_coord": [193, 194, 196, 202, 205, 206, 486, 530], "set_by_idx": [193, 194, 196, 202, 205, 206, 486, 530], "set_by_pix": [193, 194, 196, 202, 205, 206, 530], "set_label": 477, "set_log": 16, "set_model": [15, 402, 456, 460, 472, 502], "set_models_paramet": 402, "set_parameter_factor": [215, 217], "set_parameters_bound": [224, 247], "set_prior": [247, 408], "set_prop_cycl": 450, "set_slice_arg": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "set_subcovari": 209, "set_titl": [451, 452, 455, 459, 461, 465, 475, 479, 483, 484, 485, 488, 527, 537, 541, 544], "set_unit": [453, 482, 518], "set_xlabel": [450, 451, 452, 455, 458, 475, 477, 483, 490, 491], "set_xlim": [453, 455, 456, 464, 475, 520, 544], "set_xscal": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "set_xtick": [537, 541], "set_ylabel": [450, 451, 452, 455, 469, 475, 477, 479, 483, 490, 544], "set_ylim": [450, 453, 455, 456, 457, 472, 475, 520, 544], "set_yscal": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 469, 479, 520], "set_ytick": [537, 541], "setdefault": 200, "seterr": 380, "setlevel": 465, "setter": [381, 408, 425, 431, 481], "settl": 406, "setup": [13, 382, 383, 384, 387, 392, 393, 397, 400, 408, 437, 441, 498, 578], "setuptool": [432, 578], "sever": [87, 91, 175, 385, 386, 387, 394, 395, 396, 399, 404, 407, 425, 426, 427, 431, 434, 443, 444, 445, 458, 464, 480, 493, 494, 495, 518, 578, 580], "seyfert": 295, "sf": [303, 580], "sgr": 504, "shade": [194, 202, 206, 483, 576], "shall": 383, "shape": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 101, 102, 105, 109, 110, 111, 116, 122, 123, 127, 128, 133, 140, 141, 142, 148, 150, 153, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 209, 237, 287, 307, 320, 336, 391, 394, 398, 429, 444, 447, 453, 455, 457, 459, 460, 465, 468, 469, 473, 477, 478, 480, 481, 482, 484, 485, 486, 487, 489, 493, 494, 504, 516, 530, 531, 532, 537, 541], "shape_ax": [192, 204], "share": [193, 194, 196, 200, 202, 205, 206, 380, 385, 392, 395, 399, 402, 413, 431, 433, 445, 463, 464, 487, 488, 518, 578], "sharp": [238, 370, 371, 535], "she": [390, 395], "shear": 394, "sheet": [415, 518], "shell": [52, 53, 80, 260, 261, 391, 396, 403, 412, 414, 449, 489, 532, 541, 543, 578], "shell2": [260, 449, 489, 532, 543], "shell2d": 52, "shell2spatialmodel": [257, 261, 489, 541], "shellspatialmodel": [80, 257, 260, 403, 431, 489, 540], "sherpa": [107, 110, 150, 197, 198, 201, 202, 211, 291, 297, 379, 380, 389, 397, 398, 400, 401, 411, 412, 414, 421, 435, 436, 437, 438, 440, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 531, 552, 579], "sherpa_opt": 483, "shift": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 275, 416, 447], "shim": 387, "shini": 365, "ship": [387, 388, 397, 420, 438, 458, 471, 475, 489, 518], "shock": [50, 52, 53, 511], "short": [380, 381, 384, 385, 389, 394, 397, 400, 403, 406, 428, 473, 478, 494, 518, 519, 577, 580, 583], "short_observ": [473, 477], "shortcut": [82, 416, 433], "shorten": 431, "shorter": [295, 380, 381, 394, 400, 405, 428, 458, 473, 489, 578], "should": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 87, 90, 91, 102, 104, 105, 108, 109, 110, 113, 115, 117, 123, 124, 125, 126, 130, 133, 136, 137, 138, 139, 145, 151, 152, 155, 161, 163, 166, 178, 183, 184, 189, 191, 192, 193, 194, 196, 198, 200, 201, 202, 204, 205, 206, 214, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 307, 355, 369, 370, 371, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 403, 405, 406, 407, 409, 410, 412, 414, 415, 416, 421, 423, 445, 457, 463, 466, 467, 468, 474, 475, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 495, 514, 516, 518, 523, 525, 530, 578, 579, 581, 582], "shoulder": 279, "shouldn": [83, 380, 383], "show": [11, 82, 87, 91, 127, 128, 129, 154, 173, 239, 377, 380, 381, 383, 392, 394, 395, 399, 400, 408, 410, 420, 421, 425, 433, 438, 439, 440, 445, 446, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 525, 527, 529, 535, 544, 563, 576, 578, 580, 583], "show_dtyp": [87, 91], "show_in_brows": [87, 91, 465], "show_in_notebook": [87, 91], "show_nam": [87, 91], "show_progress_bar": 518, "show_row_index": [87, 91], "show_unit": [87, 91], "showcas": 491, "shower": [435, 493, 523], "shown": [19, 20, 26, 83, 161, 201, 202, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 375, 380, 387, 397, 398, 399, 407, 408, 409, 410, 425, 427, 452, 455, 459, 463, 465, 466, 467, 468, 473, 474, 475, 478, 485, 488, 489, 490, 491, 493, 503, 515], "showwarn": 380, "si": [83, 192, 201, 204, 224, 247, 279, 531], "side": [204, 206, 288, 290, 380, 394], "sider": 582, "sidereal_tim": 381, "siejkowski": 440, "sig": [373, 579, 580, 581], "sight": 506, "sigma": [19, 20, 30, 32, 48, 49, 122, 123, 124, 125, 126, 130, 131, 133, 141, 142, 150, 151, 155, 161, 162, 163, 166, 209, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 286, 288, 290, 296, 403, 408, 451, 459, 465, 466, 471, 472, 478, 482, 483, 487, 489, 491, 502, 516, 522, 536, 551, 567, 580], "sigma1": 31, "sigma2": 31, "sigma_": [209, 536], "sigma_1": [31, 49, 154, 484], "sigma_10tev": [403, 489], "sigma_1tev": [403, 489], "sigma_2": [31, 49, 154, 484], "sigma_3": [154, 484], "sigma_err": 466, "sigma_gauss": 237, "sigma_laplac": 237, "sigma_m": 536, "sigma_nod": 489, "sigma_to_t": 580, "sigmav": 506, "sign": [214, 216, 288, 290, 383, 406, 427, 442, 516, 580], "signal": [83, 102, 105, 108, 109, 110, 178, 206, 262, 288, 290, 304, 404, 450, 455, 456, 461, 464, 472, 487, 502, 506, 521, 525, 527, 577, 579, 580, 581], "signif_avg": 504, "signific": [77, 118, 122, 123, 124, 125, 132, 133, 135, 144, 145, 286, 288, 290, 294, 370, 371, 378, 385, 386, 387, 388, 395, 396, 400, 401, 404, 406, 427, 428, 436, 439, 440, 445, 446, 447, 449, 450, 455, 456, 462, 463, 464, 465, 466, 472, 475, 477, 478, 480, 482, 483, 495, 498, 502, 504, 516, 518, 576, 577, 578], "significance_lima": 427, "significance_map": [461, 463], "significance_map_off": 461, "significance_mask": 487, "significance_mask_inv": 487, "significancemapestim": 427, "significantli": [431, 451, 467, 493], "signoff": 383, "silent": [442, 447], "silvia": 423, "simeq": 53, "similar": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 371, 380, 383, 392, 393, 394, 395, 396, 399, 400, 401, 404, 431, 445, 457, 478, 482, 486, 490, 491, 504, 514, 522, 578], "similarli": [386, 388, 404, 407, 431, 480, 483, 484, 486, 487, 489, 531], "simlat": 289, "simon": [444, 445, 446], "simpifi": 389, "simpl": [50, 52, 141, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 279, 380, 381, 392, 393, 394, 395, 396, 399, 404, 407, 408, 421, 431, 435, 439, 440, 445, 450, 452, 453, 455, 456, 457, 458, 460, 463, 475, 477, 478, 482, 483, 486, 487, 490, 496, 502, 503, 504, 508, 518, 576, 577, 578], "simple_norm": 206, "simple_rebin_lc": 395, "simplefilt": 518, "simpler": [181, 388, 393, 394, 402], "simplest": [450, 455, 478], "simplex": [211, 483], "simpli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 87, 91, 170, 211, 215, 217, 380, 394, 395, 404, 412, 413, 414, 442, 445, 450, 451, 452, 465, 481, 487, 488, 489, 504, 531, 578, 580], "simplic": [464, 467, 483, 489, 491, 494], "simplif": [391, 403, 442], "simplifi": [133, 200, 387, 389, 391, 398, 404, 421, 424, 425, 426, 428, 431, 435, 442, 451, 453, 459, 523, 581], "simu": [471, 474, 491], "simul": [45, 83, 88, 93, 102, 105, 108, 109, 110, 113, 152, 163, 166, 289, 337, 390, 393, 396, 400, 407, 408, 412, 419, 423, 425, 427, 433, 436, 438, 439, 440, 445, 446, 447, 449, 454, 460, 463, 465, 470, 475, 476, 488, 491, 493, 498, 508, 523, 576], "simulate_3d": [400, 440, 449, 470, 471], "simulate_dataset": [421, 425, 426], "simulate_observ": 93, "simulated_d": 457, "simulated_data": 93, "simulated_model": 457, "simultan": [408, 474, 481, 489, 491, 514], "sin": [535, 536, 537, 571], "sinc": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 51, 87, 91, 194, 204, 355, 380, 381, 386, 390, 394, 396, 397, 398, 399, 400, 404, 406, 407, 408, 410, 431, 441, 442, 443, 444, 445, 446, 447, 451, 457, 461, 463, 473, 474, 477, 481, 488, 489, 491, 493, 495, 550, 579, 582], "sine": [262, 391, 449, 532, 574], "sine_model": 571, "sinetemporalmodel": [270, 489, 571], "singl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 87, 88, 89, 91, 93, 95, 122, 126, 127, 130, 133, 151, 152, 163, 165, 166, 169, 173, 175, 180, 183, 184, 189, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 224, 247, 380, 386, 387, 390, 392, 393, 394, 395, 396, 397, 401, 402, 407, 408, 412, 419, 421, 426, 427, 439, 445, 446, 450, 455, 457, 459, 460, 461, 472, 474, 480, 481, 485, 486, 488, 491, 495, 496, 502, 504, 514, 516, 528, 530, 531, 575, 577], "singleobscubemak": 386, "singleobsimagemak": 386, "singleton": 331, "sinha": [392, 395, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 439, 440, 441, 442, 443, 444, 445, 446, 447], "sink": 397, "sinu": [262, 489], "sinusoid": [262, 571], "sipocz": [397, 421, 423, 425, 427, 436, 437, 438, 439, 440, 441], "sip\u0151cz": [442, 447], "sit": 383, "site": [344, 410, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566, 578], "situat": [394, 395, 397, 523], "six": [399, 405], "size": [19, 20, 26, 46, 47, 67, 72, 80, 87, 88, 91, 102, 103, 105, 108, 109, 110, 112, 113, 114, 115, 117, 128, 133, 136, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 168, 169, 175, 176, 177, 180, 181, 182, 190, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 209, 218, 219, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 298, 329, 330, 334, 335, 336, 337, 368, 380, 388, 391, 393, 394, 412, 414, 444, 446, 450, 457, 461, 463, 467, 473, 475, 480, 485, 486, 487, 489, 493, 494, 495, 496, 504, 514, 529, 535, 536, 582], "skeleton": 396, "sketch": 396, "skill": [383, 416], "skimag": 440, "skip": [16, 82, 84, 90, 104, 124, 161, 368, 381, 383, 392, 394, 400, 438, 477, 488], "skip_miss": [82, 439], "sklearn": 380, "sky": [6, 13, 41, 57, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 83, 88, 96, 102, 105, 108, 109, 110, 118, 141, 151, 152, 163, 166, 186, 192, 193, 194, 196, 201, 202, 204, 205, 206, 224, 247, 263, 275, 279, 281, 309, 313, 314, 338, 340, 342, 367, 379, 380, 381, 393, 399, 412, 421, 423, 437, 438, 440, 451, 455, 456, 458, 459, 461, 471, 474, 475, 480, 486, 489, 493, 494, 498, 500, 502, 503, 504, 506, 513, 514, 515, 518, 523, 524, 527, 529, 531, 535, 536, 540, 541, 542, 576, 577], "sky_circl": [91, 96, 473, 477, 490, 503], "sky_model": [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 115, 117, 395, 451, 472, 473, 477, 480, 488, 489, 503, 546], "sky_model_pntpwl": 467, "sky_reg": 479, "sky_reg_rec": 479, "sky_region": 89, "skycood": 391, "skycoord": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 85, 87, 88, 91, 94, 96, 102, 105, 109, 110, 112, 113, 123, 125, 127, 129, 151, 152, 158, 163, 166, 176, 177, 179, 181, 183, 184, 186, 187, 189, 190, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 207, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 305, 306, 339, 340, 356, 376, 381, 391, 394, 404, 407, 450, 452, 455, 457, 458, 461, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 503, 504, 518, 522, 527, 529, 531, 539], "skycoord_from_t": 394, "skycoord_to_pixel_scale_angl": 394, "skycoordconfig": 16, "skycub": [386, 399, 437, 438, 439, 440], "skydiffusecub": [391, 403, 422, 427, 428, 440], "skydiffusemap": [391, 422], "skydir": [16, 83, 102, 105, 109, 110, 111, 116, 152, 163, 173, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 455, 456, 457, 460, 461, 463, 465, 466, 467, 468, 471, 472, 475, 479, 481, 484, 485, 486, 487, 489, 494, 495, 502, 503, 525, 527, 528, 529, 531, 536, 537, 538, 539], "skydirfunct": 506, "skydisk": 422, "skydiskelong": 391, "skyellips": [421, 422, 423, 424], "skygaussian": 421, "skygaussianelong": 391, "skyimag": [386, 399, 437, 438, 439, 440], "skyimagelist": 437, "skymap": [193, 194, 196, 202, 205, 206, 394, 436, 437, 468], "skymap_band": [468, 573], "skymap_region": 468, "skymask": 438, "skymodel": [67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 101, 102, 105, 109, 110, 115, 117, 123, 125, 131, 133, 134, 143, 170, 211, 224, 243, 247, 281, 286, 391, 392, 393, 395, 401, 403, 404, 421, 425, 426, 427, 431, 440, 446, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 488, 491, 494, 502, 503, 513, 514, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575], "skypointsourc": 424, "skyregion": [100, 102, 105, 109, 110, 127, 151, 152, 158, 163, 166, 176, 177, 181, 196, 201, 202, 206, 224, 247, 338, 341, 394, 452, 467, 469, 487, 489, 522, 527, 531], "skyspatialmodel": [391, 440], "slack": [382, 383, 387, 403, 409, 415, 420, 421, 578], "slew": 95, "slice": [83, 87, 91, 100, 102, 105, 109, 110, 120, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 273, 275, 299, 386, 428, 466, 469, 473, 481, 482, 493, 530], "slice_by_coord": [123, 125, 446], "slice_by_energi": [100, 102, 105, 109, 110, 123, 125, 273, 428, 481], "slice_by_idx": [102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 428, 440, 442, 469, 473, 482, 486, 494], "slice_by_tim": [123, 125], "sliced_ax": 197, "sliced_geom": [191, 192, 201, 204], "sliced_lc": 473, "slide": [389, 459, 480], "slider": 486, "sliderstyl": [463, 471, 486, 502, 503], "slightli": [118, 198], "slope": [27, 422], "slow": [87, 91, 211, 387, 396, 456, 483, 502, 503], "slower": [87, 91, 194, 380, 388, 398], "slowest": 410, "small": [371, 380, 386, 388, 394, 396, 397, 400, 402, 407, 410, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 472, 473, 486, 491, 493, 494, 495, 496, 536, 540, 541, 577, 578], "smaller": [27, 152, 163, 166, 181, 192, 193, 194, 196, 202, 205, 206, 373, 383, 421, 440, 467, 473, 478, 483, 486, 491, 536], "smallest": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 276, 459], "smooth": [102, 105, 109, 110, 118, 128, 129, 141, 194, 206, 225, 264, 372, 375, 431, 436, 437, 438, 440, 441, 449, 461, 463, 465, 469, 471, 475, 481, 485, 486, 488, 494, 502, 503, 504, 532, 535, 564], "smooth_kernel": [102, 105], "smooth_radiu": [102, 105], "smoothbrokenpowerlawspectralmodel": [218, 258, 403, 426, 427, 489, 559], "sn": [45, 50, 52, 53], "sn_rate": [45, 508], "snippet": [381, 400, 518], "snr": [44, 50, 53, 67, 494, 511, 512], "snr_model": 512, "snrcat": [435, 480], "snrtruelovemcke": [50, 511, 512], "so": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 95, 101, 105, 110, 122, 126, 128, 130, 131, 133, 134, 143, 146, 151, 152, 158, 163, 166, 190, 193, 194, 196, 198, 202, 205, 206, 211, 214, 216, 237, 275, 286, 355, 363, 370, 371, 380, 381, 383, 385, 386, 387, 388, 391, 392, 393, 394, 395, 397, 398, 399, 400, 401, 402, 403, 404, 407, 409, 411, 412, 414, 416, 421, 423, 431, 441, 443, 444, 447, 452, 455, 457, 459, 460, 465, 466, 467, 471, 472, 479, 480, 482, 483, 486, 487, 489, 491, 493, 494, 495, 498, 503, 518, 525, 527, 531, 537, 541, 578, 579, 580, 581], "social": 406, "soft": 295, "softwar": [193, 194, 196, 205, 206, 394, 395, 397, 406, 407, 410, 486, 518], "solar": 52, "sole": [390, 406], "solid": [191, 192, 201, 204, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 279, 396, 419, 421, 422, 423, 440, 461, 485, 486, 493, 521, 527, 577], "solid_angl": [191, 192, 201, 204, 486, 531], "solut": [19, 20, 26, 52, 134, 143, 150, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 381, 383, 385, 387, 388, 393, 394, 396, 397, 398, 400, 402, 404, 408, 413, 482, 514, 516, 518, 581], "solv": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 383, 388, 390, 391, 392, 393, 433, 518], "some": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 72, 77, 82, 84, 87, 90, 91, 104, 124, 179, 200, 307, 315, 383, 385, 386, 387, 388, 389, 394, 395, 396, 397, 398, 399, 400, 401, 404, 405, 406, 407, 410, 412, 413, 414, 415, 416, 417, 419, 421, 423, 431, 432, 434, 436, 438, 439, 440, 445, 450, 452, 453, 455, 457, 459, 460, 461, 464, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 485, 486, 488, 489, 491, 493, 494, 503, 504, 506, 507, 514, 515, 518, 523, 528, 530, 578, 579, 580, 582], "some_class": 380, "some_map": 161, "some_map_convolv": 161, "somehow": [388, 394, 399], "someon": [383, 385, 400], "someth": [87, 91, 380, 381, 382, 383, 385, 388, 394, 397, 398, 400, 410, 412, 414, 458, 480, 531, 578], "sometim": [19, 20, 83, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 358, 380, 383, 387, 394, 400, 410, 412, 483, 518, 577, 582], "somewhat": [397, 493], "somewher": [383, 397, 410], "soon": [383, 394, 410], "sort": [82, 83, 87, 91, 101, 141, 343, 348, 349, 380, 397, 422, 447, 504], "sort_kei": [343, 348, 349], "sortedarrai": [87, 91], "sourc": [6, 16, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 102, 103, 105, 108, 109, 110, 115, 117, 120, 123, 125, 126, 127, 130, 132, 133, 141, 142, 163, 166, 180, 201, 224, 247, 248, 251, 263, 286, 298, 299, 302, 303, 311, 329, 336, 351, 377, 380, 381, 383, 385, 388, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 406, 410, 412, 417, 419, 421, 425, 426, 431, 432, 437, 438, 439, 440, 445, 446, 447, 449, 451, 453, 454, 456, 457, 458, 460, 461, 462, 463, 464, 469, 470, 471, 472, 473, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 486, 488, 489, 490, 492, 494, 495, 496, 498, 500, 502, 503, 506, 507, 512, 514, 516, 518, 523, 526, 527, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 579, 580], "source1": 489, "source2": 489, "source_1": [391, 396], "source_2": 391, "source_42": 396, "source_fermi_3fgl": 453, "source_fermi_3fhl": 453, "source_gammacat": 453, "source_irf_model": 391, "source_librari": 493, "source_model": 557, "source_nam": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 480, 504], "source_name_alia": 56, "source_name_kei": 56, "source_po": [461, 465, 485], "source_population_model": [400, 425], "source_posit": [450, 466, 490], "sourcebackground": 391, "sourcecatalog": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 394, 431, 480, 487, 504, 513], "sourcecatalog1lhaaso": [55, 70, 480], "sourcecatalog2fhl": [55, 71, 480, 513], "sourcecatalog2hwc": [55, 72, 480, 513], "sourcecatalog2pc": [55, 480], "sourcecatalog3fgl": [55, 74, 453, 480, 513], "sourcecatalog3fhl": [55, 75, 453, 480, 488, 504, 513], "sourcecatalog3hwc": [55, 76, 480, 513], "sourcecatalog3pc": [55, 480], "sourcecatalog4fgl": [55, 78, 433, 451, 480, 513], "sourcecataloggammacat": [55, 79, 453, 480, 513], "sourcecataloghgp": [55, 80, 81, 480, 513], "sourcecataloglargescalehgp": 67, "sourcecatalogobject": [70, 79, 80, 81, 480, 513], "sourcecatalogobject1lhaaso": 57, "sourcecatalogobject2fhl": 58, "sourcecatalogobject2hwc": 59, "sourcecatalogobject2pc": 60, "sourcecatalogobject3fgl": 61, "sourcecatalogobject3fhl": 62, "sourcecatalogobject3hwc": 63, "sourcecatalogobject3pc": 64, "sourcecatalogobject4fgl": 65, "sourcecatalogobjectfermibas": [71, 74, 75, 78], "sourcecatalogobjectfermipcbas": [73, 77], "sourcecatalogobjectgammacat": 66, "sourcecatalogobjecthgp": [67, 81, 420, 480], "sourcecatalogobjecthgpscompon": 67, "sourcecatalogobjecthwcbas": [72, 76], "sourceevalu": 391, "sources_flux_map": 459, "sourcetempl": 391, "south": [467, 468, 493], "south_z20_50h": [82, 148, 152, 153, 154, 163, 450, 458, 471, 474, 484, 493], "south_z40_50h": 493, "southaz": 493, "southern": 493, "space": [87, 91, 102, 105, 109, 110, 203, 206, 271, 272, 289, 318, 336, 379, 380, 390, 396, 402, 475, 481, 483, 486, 530, 554, 563], "span": 490, "spars": [192, 193, 194, 196, 201, 204, 205, 206, 422, 431, 439, 468, 486], "sparsif": 404, "sparsifi": [193, 194, 196, 205, 206], "spatail": 133, "spatial": [1, 46, 48, 67, 70, 71, 72, 74, 75, 76, 78, 79, 80, 81, 83, 102, 105, 109, 110, 112, 113, 123, 125, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 175, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 215, 217, 220, 221, 224, 225, 232, 234, 237, 247, 249, 251, 257, 260, 261, 263, 265, 271, 273, 275, 286, 373, 375, 380, 386, 389, 392, 393, 394, 396, 398, 399, 404, 412, 420, 421, 423, 424, 425, 426, 428, 431, 439, 440, 442, 445, 446, 447, 449, 451, 453, 456, 458, 459, 460, 463, 464, 466, 467, 468, 469, 471, 473, 474, 475, 477, 480, 481, 482, 485, 488, 492, 494, 498, 502, 506, 507, 514, 516, 518, 519, 529, 530, 543, 575, 576, 577], "spatial_bin_s": [112, 113], "spatial_bin_size_min": [112, 113], "spatial_model": [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 115, 117, 133, 225, 232, 263, 273, 286, 395, 425, 451, 459, 463, 465, 466, 467, 468, 471, 472, 473, 477, 480, 481, 488, 489, 494, 503, 534, 535, 536, 537, 538, 539, 540, 541, 542], "spatial_model_point": 467, "spatial_model_registri": 489, "spatial_par": 403, "spatial_typ": 403, "spatial_width": [112, 113], "spatial_width_max": [112, 113], "spatialbackground": 391, "spatialcircleconfig": 16, "spatialconst": 391, "spatialgaussian": 391, "spatialmodel": [70, 71, 72, 74, 75, 76, 78, 79, 80, 220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 271, 273, 275, 391, 403, 425, 440, 444, 480, 489, 503, 506, 513, 532, 575], "spatialtempl": 391, "spatiamodel": 161, "speak": 483, "spec": [80, 110, 380, 394, 436, 463, 468, 480, 493, 503], "spec_model_tru": 475, "special": [87, 91, 237, 380, 390, 392, 394, 395, 403, 406, 407, 420, 447, 460, 480, 481, 482, 488, 489], "specialis": [394, 400], "specif": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 86, 87, 91, 94, 102, 105, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 169, 183, 184, 189, 193, 194, 195, 196, 198, 202, 203, 204, 205, 206, 211, 239, 273, 286, 369, 379, 380, 381, 383, 385, 390, 392, 394, 395, 396, 397, 398, 399, 401, 404, 405, 406, 407, 410, 412, 413, 425, 428, 431, 433, 442, 443, 445, 451, 452, 455, 457, 458, 461, 463, 464, 469, 471, 474, 475, 481, 483, 484, 486, 487, 490, 491, 496, 498, 504, 514, 515, 516, 518, 520, 521, 522, 524, 529, 530, 531, 582], "specifi": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 87, 88, 90, 91, 92, 96, 101, 102, 104, 105, 109, 110, 118, 120, 123, 124, 125, 126, 128, 130, 131, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 168, 179, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 204, 205, 206, 224, 239, 247, 286, 307, 309, 313, 318, 367, 390, 397, 402, 405, 413, 424, 427, 431, 447, 451, 457, 460, 461, 463, 466, 469, 471, 481, 482, 483, 484, 485, 486, 488, 489, 493, 503, 514, 516, 529], "spectra": [26, 109, 110, 126, 131, 146, 211, 258, 279, 286, 386, 389, 391, 393, 395, 399, 403, 419, 423, 436, 440, 451, 452, 457, 458, 464, 468, 472, 474, 475, 481, 482, 483, 485, 489, 491, 506, 514, 516, 518, 577], "spectral": [1, 19, 20, 26, 52, 53, 66, 67, 69, 70, 71, 72, 74, 75, 76, 78, 79, 80, 101, 102, 105, 109, 110, 118, 122, 123, 125, 126, 127, 130, 132, 133, 140, 161, 163, 166, 170, 215, 217, 218, 219, 222, 224, 226, 228, 229, 230, 232, 235, 239, 241, 242, 244, 245, 247, 248, 250, 252, 253, 254, 258, 259, 263, 264, 266, 267, 268, 269, 272, 273, 274, 276, 279, 280, 295, 334, 386, 389, 391, 392, 393, 394, 395, 396, 398, 399, 401, 402, 404, 412, 420, 422, 423, 424, 425, 426, 427, 428, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 454, 458, 459, 460, 463, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 485, 487, 488, 491, 492, 493, 494, 502, 503, 506, 507, 513, 514, 516, 517, 518, 519, 525, 526, 527, 534, 535, 536, 537, 538, 539, 540, 541, 542, 560, 561, 562, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 579], "spectral_analysi": [449, 454, 455], "spectral_analysis_hli": [449, 454, 456], "spectral_analysis_rad_max": [449, 454, 457], "spectral_cub": 432, "spectral_index": [19, 20, 26, 52, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "spectral_index_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 445], "spectral_irf_model": 391, "spectral_model": [66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 101, 109, 110, 115, 117, 118, 122, 127, 131, 132, 133, 140, 161, 163, 166, 170, 211, 224, 232, 245, 247, 263, 273, 286, 395, 398, 402, 403, 404, 408, 428, 447, 450, 451, 452, 453, 455, 457, 458, 459, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 488, 489, 491, 494, 503, 504, 516, 525, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "spectral_model1": 474, "spectral_model2": 474, "spectral_model_pwl": 467, "spectral_model_registri": 489, "spectral_par": 403, "spectral_point": 396, "spectral_typ": 403, "spectralbackground": 391, "spectralbackgroundmodel": 392, "spectralcompoundmodel": 391, "spectralconst": 391, "spectralevalu": 391, "spectralexponentialcutoffpowerlaw3fgl": 399, "spectralgaussian": [391, 423], "spectralmodel": [19, 20, 71, 74, 75, 78, 79, 80, 101, 118, 122, 123, 125, 127, 132, 140, 161, 163, 166, 170, 218, 219, 222, 224, 226, 228, 229, 230, 232, 235, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 263, 264, 267, 268, 269, 272, 273, 276, 279, 391, 392, 395, 398, 404, 428, 431, 438, 445, 447, 480, 489, 503, 504, 513, 532, 575], "spectralregion": 394, "spectraltempl": 391, "spectroscopi": [447, 449, 473, 476, 498, 527], "spectrum": [19, 20, 26, 72, 76, 98, 100, 101, 102, 105, 106, 109, 110, 123, 125, 130, 132, 137, 163, 166, 171, 175, 179, 180, 193, 194, 196, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 280, 289, 295, 377, 386, 391, 392, 395, 396, 399, 400, 401, 412, 422, 423, 424, 425, 427, 431, 433, 436, 437, 438, 439, 440, 442, 444, 447, 449, 452, 453, 454, 456, 463, 464, 467, 468, 469, 474, 479, 480, 481, 487, 489, 493, 494, 498, 502, 504, 506, 514, 518, 523, 531, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 578], "spectrum_analysi": 455, "spectrum_dataset": [146, 392, 475, 481], "spectrum_dataset_1": 392, "spectrum_dataset_2": 392, "spectrum_dataset_empti": [475, 485], "spectrum_dataset_mak": [475, 485], "spectrum_dataset_on_off": 475, "spectrum_fitting_with_sherpa": 400, "spectrum_mak": 450, "spectrum_simul": [400, 449, 454, 458], "spectrumanalysisiact": [396, 424, 438], "spectrumdataset": [98, 99, 100, 102, 105, 110, 130, 132, 146, 174, 175, 179, 180, 232, 401, 422, 423, 424, 425, 426, 427, 428, 431, 434, 450, 452, 455, 457, 458, 465, 473, 474, 475, 477, 483, 485, 491, 527, 579], "spectrumdatasetmak": [171, 425, 431, 450, 452, 455, 457, 458, 465, 473, 474, 475, 477, 485, 527], "spectrumdatasetonoff": [98, 105, 106, 107, 109, 131, 132, 146, 174, 175, 211, 286, 377, 395, 422, 423, 424, 426, 427, 443, 444, 445, 450, 451, 452, 455, 456, 458, 464, 465, 472, 475, 477, 481, 482, 483, 485, 491, 514, 516, 579], "spectrumdatasetonoffstack": 424, "spectrumdatasetsonoff": 392, "spectrumenergygroup": 439, "spectrumevalu": 427, "spectrumextract": [395, 422, 425, 438], "spectrumfit": [422, 438, 439, 440], "spectrumobserv": [392, 422, 438], "spectrumobservationlist": [422, 437], "spectrumobservationstack": 437, "spectrumonoffdataset": 395, "spectrumresult": 422, "spectrumsimul": [423, 437, 440], "spectrumstack": 439, "spectrumstat": 423, "specutil": 394, "speed": [133, 307, 383, 413, 423, 425, 433, 439, 440, 447, 483], "spell": [385, 518], "spend": [393, 400], "spent": [387, 485], "sphere": [47, 335, 419, 421, 530, 535, 536, 539], "spherepointpick": 335, "spheric": [47, 380, 421, 530, 576], "sphericalcircleskyregion": [399, 475, 504], "sphinx": [383, 387, 400, 410, 422, 426, 433, 439, 440, 442, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "sphinx_gallery_conf": 410, "sphinx_gallery_thumbnail_numb": [381, 451, 455, 457, 459, 461, 466, 469, 484, 544], "sphinxext": 381, "spill": 485, "spin": [50, 51, 54, 423, 510], "spir": [421, 440], "spiral": [33, 34, 38, 45, 435], "spiralarm": [33, 38, 45, 439, 508], "spiralarm_index": [33, 34, 38], "spirit": 406, "split": [19, 20, 87, 91, 92, 115, 117, 123, 125, 193, 194, 196, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 386, 388, 390, 392, 394, 395, 399, 401, 403, 412, 428, 446, 473, 489, 507, 583], "split_by_axi": [193, 194, 196, 202, 205, 206], "split_template_model": [115, 117], "sporad": 407, "spot": 380, "spread": [82, 88, 154, 163, 166, 380, 402, 428, 450, 459, 484, 523, 577], "spring": [390, 441], "sprint": [388, 389, 393, 396, 397, 398, 399, 401], "spuriou": 141, "sqrt": [19, 20, 30, 31, 32, 67, 101, 102, 105, 109, 110, 118, 123, 125, 128, 133, 193, 194, 196, 198, 202, 205, 206, 209, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 287, 296, 319, 320, 321, 392, 452, 455, 459, 461, 463, 469, 471, 475, 478, 480, 483, 485, 486, 488, 494, 502, 503, 504, 516, 536, 537, 540, 541, 551, 580], "sqrt_space": [399, 425], "sqrt_t": [118, 122, 123, 125, 133, 141, 142, 146, 288, 290, 373, 404, 416, 428, 452, 455, 456, 459, 461, 463, 465, 475, 480, 481, 482, 487, 495, 502, 504, 516, 578, 580], "sqrt_ts_min": [146, 455], "sqrt_ts_threshold_ul": [71, 74, 75, 78, 122, 123, 124, 125, 127, 133, 459, 469, 472, 473, 480, 481, 482, 502, 504], "squar": [17, 18, 21, 22, 24, 25, 27, 46, 102, 105, 123, 124, 150, 151, 152, 158, 163, 166, 169, 190, 204, 206, 273, 293, 395, 398, 428, 487, 491, 506, 516, 530, 578, 579, 580, 581], "squash": [152, 191, 192, 195, 197, 198, 201, 203, 204, 445, 450, 461, 481, 486], "squeez": [450, 484], "sr": [147, 148, 149, 160, 191, 192, 201, 204, 221, 275, 279, 450, 458, 460, 463, 465, 471, 474, 480, 481, 484, 486, 489, 493, 494, 523, 534, 542], "src": [393, 451, 466, 514], "src_above_bkg": 466, "src_event": [467, 468], "src_posit": [467, 468], "srcmap": [192, 193, 194, 196, 205, 206, 486], "ssc": [58, 60, 61, 62, 64, 65, 248, 400, 557], "ssc_model": 248, "st": [53, 483, 494], "stabil": [19, 20, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 405, 471], "stabl": [11, 87, 91, 201, 211, 307, 387, 388, 389, 396, 397, 400, 405, 409, 410, 411, 413, 425, 426, 427, 433, 438, 440, 442, 483, 515], "stack": [16, 83, 86, 92, 100, 101, 102, 104, 105, 109, 110, 122, 123, 125, 134, 143, 151, 152, 158, 163, 166, 169, 193, 194, 195, 196, 201, 202, 205, 206, 209, 215, 217, 273, 350, 380, 392, 395, 396, 402, 407, 421, 424, 425, 428, 431, 436, 437, 442, 443, 445, 447, 451, 452, 456, 460, 464, 465, 472, 475, 481, 483, 485, 490, 491, 502, 503, 515, 516, 525, 528], "stack_dataset": [169, 475, 485], "stack_reduc": [100, 146, 211, 424, 452, 455, 457, 463, 464, 465, 475, 481, 483, 516], "stacked_dataset": [465, 466], "stacked_fit": 455, "stacked_on_off": 461, "stackedobscubemak": 386, "stackedobsimagemak": 386, "stackoverflow": 347, "stage": [383, 396, 461, 463, 474, 481, 514, 577], "stai": [392, 409], "stand": 385, "standard": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 86, 87, 91, 96, 194, 206, 211, 233, 280, 289, 306, 362, 363, 380, 381, 383, 385, 389, 391, 392, 393, 396, 398, 404, 406, 407, 416, 423, 424, 440, 446, 450, 451, 456, 458, 461, 464, 466, 468, 471, 473, 474, 477, 479, 483, 486, 489, 490, 491, 493, 496, 498, 502, 514, 517, 522, 530, 576, 577, 578], "standard_broadcast": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "standard_scal": [96, 305, 490], "standardis": [352, 353, 365, 439], "standardise_unit": [352, 366], "standpoint": 380, "stapel": [446, 447], "star": [36, 40, 226], "starmap": [323, 327, 328], "start": [16, 53, 83, 86, 88, 89, 91, 92, 94, 100, 130, 141, 203, 223, 224, 231, 236, 238, 239, 240, 247, 255, 262, 274, 277, 380, 381, 383, 385, 387, 388, 389, 390, 393, 394, 396, 397, 405, 406, 408, 409, 410, 414, 415, 416, 417, 419, 424, 433, 436, 437, 438, 439, 440, 445, 447, 449, 450, 451, 452, 453, 455, 456, 457, 459, 460, 461, 463, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 479, 480, 482, 486, 489, 493, 494, 495, 498, 502, 504, 505, 518, 522, 576], "start_po": [127, 340, 469], "startswith": 380, "stat": [6, 100, 101, 105, 110, 123, 125, 126, 127, 130, 131, 133, 211, 212, 214, 216, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 373, 380, 392, 400, 408, 410, 416, 423, 425, 426, 427, 428, 431, 437, 440, 441, 442, 446, 447, 452, 453, 455, 456, 457, 459, 461, 463, 464, 465, 466, 469, 473, 475, 477, 478, 482, 483, 491, 494, 502, 503, 516, 578, 579, 580], "stat_arrai": [99, 101, 102, 105, 109, 110, 408, 447], "stat_contour": 211, "stat_kwarg": 101, "stat_max": [288, 290], "stat_nul": [123, 125, 126, 127, 130, 131, 133, 288, 290, 446, 459, 469, 473, 482, 516], "stat_per_bin": 392, "stat_profil": [211, 451, 483, 491, 518], "stat_scan": [101, 123, 125, 126, 127, 130, 131, 133, 134, 143, 211, 287, 447, 451, 455, 473, 482, 483, 491, 516], "stat_sum": [99, 100, 101, 102, 105, 109, 110, 408, 444, 445, 463, 474, 481, 488, 518], "stat_surfac": [211, 428, 518], "stat_typ": [101, 102, 105, 109, 110, 426, 455, 463, 474, 481, 488], "state": [16, 45, 47, 203, 211, 380, 386, 390, 392, 396, 400, 402, 404, 451, 456, 502, 523, 544], "stateless": 407, "statement": [380, 383, 387, 444, 446, 507], "static": [17, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 103, 106, 107, 108, 118, 122, 123, 125, 126, 127, 130, 131, 133, 154, 162, 173, 179, 180, 192, 193, 194, 196, 202, 203, 205, 206, 218, 220, 221, 222, 223, 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 252, 253, 254, 255, 260, 261, 262, 264, 267, 268, 269, 274, 276, 277, 278, 377, 388, 391, 410, 422, 439], "staticmethod": [391, 403, 408, 489, 491], "statist": [6, 19, 20, 26, 79, 99, 100, 101, 102, 105, 109, 110, 122, 123, 125, 126, 127, 130, 131, 133, 142, 146, 173, 211, 213, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 276, 286, 287, 288, 290, 291, 292, 297, 304, 392, 395, 398, 399, 400, 402, 408, 422, 426, 427, 428, 431, 433, 445, 446, 450, 451, 456, 458, 459, 460, 461, 463, 465, 469, 471, 472, 474, 475, 478, 481, 483, 485, 491, 502, 503, 514, 516, 518, 525, 528, 576, 577], "statu": [19, 20, 26, 123, 125, 210, 212, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 383, 384, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 408, 441, 446, 488, 489], "std": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 289, 306, 458, 478, 494], "stddev": 68, "stderr": 380, "stdout": [315, 380], "steadi": 451, "steep": 458, "stefan": [435, 446, 447], "step": [19, 20, 26, 122, 126, 130, 131, 133, 211, 212, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 380, 383, 386, 387, 390, 391, 392, 394, 395, 396, 398, 401, 405, 408, 409, 410, 416, 433, 440, 441, 445, 450, 455, 457, 460, 463, 465, 466, 467, 468, 473, 474, 481, 482, 483, 485, 489, 491, 502, 503, 504, 518, 526, 531], "stepprior": 408, "stepsiz": 168, "steradian": 201, "stewart": [133, 299, 459, 577], "stewart2009": [133, 577, 580], "stick": [383, 403, 421, 440, 483, 577], "still": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 387, 388, 390, 393, 394, 397, 399, 400, 401, 404, 405, 407, 409, 410, 438, 439, 440, 489, 491, 504, 516, 540, 541, 578], "stipul": 406, "stone": [380, 400], "stop": [16, 52, 83, 86, 88, 89, 91, 92, 100, 130, 133, 203, 223, 224, 231, 236, 238, 239, 240, 247, 255, 262, 274, 277, 390, 416, 445, 456, 460, 461, 463, 473, 475, 477, 483, 494, 502], "storag": [82, 518], "store": [11, 15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 69, 82, 83, 85, 86, 87, 91, 123, 124, 125, 128, 130, 161, 174, 175, 193, 194, 196, 202, 205, 206, 211, 212, 214, 216, 224, 247, 363, 380, 381, 383, 386, 388, 389, 390, 392, 393, 396, 398, 402, 404, 406, 407, 410, 428, 431, 432, 447, 452, 457, 458, 467, 468, 475, 477, 478, 481, 482, 483, 484, 485, 486, 487, 490, 493, 494, 495, 496, 504, 514, 515, 518, 523, 524, 525, 530, 531, 554, 575, 576, 578, 582], "store_per_ob": 396, "store_trac": [211, 483], "str": [15, 16, 19, 20, 26, 50, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 77, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 112, 113, 120, 122, 123, 124, 125, 126, 128, 130, 131, 133, 134, 136, 137, 138, 139, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 164, 165, 166, 167, 170, 173, 174, 179, 180, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 212, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 281, 307, 319, 328, 343, 344, 345, 349, 362, 363, 365, 369, 373, 374, 376, 394, 407, 455, 457, 477, 485, 489], "str3": [87, 91], "straight": [381, 412, 518], "straightforward": [410, 581], "strang": 380, "strategi": [286, 380, 387, 394, 445, 483, 581], "stream": 380, "streil": [408, 444, 445, 446], "strength": [51, 54, 408, 554], "stretch": [193, 194, 196, 202, 205, 206, 370, 371, 375, 459, 463, 469, 471, 485, 486, 488, 494, 502, 503, 504], "strict": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 102, 104, 105, 124, 151, 152, 158, 163, 166, 169, 198, 204, 206, 273, 447], "strict_bound": 198, "strictli": [16, 84, 90, 104, 124, 198], "strike": 514, "string": [15, 16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 90, 91, 93, 104, 123, 124, 125, 126, 127, 130, 133, 154, 160, 162, 164, 169, 192, 193, 194, 196, 198, 199, 201, 202, 204, 205, 206, 214, 216, 224, 247, 307, 325, 369, 380, 393, 394, 397, 399, 406, 407, 419, 423, 431, 433, 456, 480, 487, 489, 502, 530, 531], "strip": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "strip_units_from_tre": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "strong": [52, 393, 400, 455], "stronger": 491, "strongli": [295, 395, 397, 406, 431, 460, 483, 491], "structur": [87, 91, 204, 303, 384, 385, 386, 389, 391, 393, 396, 400, 403, 406, 407, 418, 424, 425, 427, 431, 434, 446, 447, 449, 469, 481, 482, 485, 486, 487, 489, 498, 505, 506, 515, 519, 530, 531, 578], "stuck": 578, "student": 383, "studi": [46, 279, 303, 393, 396, 404, 413, 440, 447, 452, 453, 464, 465, 466, 469, 471, 473, 474, 477, 483, 486, 489, 493, 508, 518, 527, 579], "stuff": [381, 410, 518], "stuff1": 380, "stuff2": 380, "style": [87, 91, 101, 193, 194, 196, 202, 205, 206, 377, 383, 389, 406, 435, 437, 463, 471, 484, 486, 502, 503, 518, 531], "sub": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 105, 109, 110, 115, 117, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 193, 194, 195, 196, 198, 202, 203, 205, 206, 209, 380, 383, 387, 389, 390, 394, 399, 400, 401, 402, 407, 410, 419, 421, 425, 427, 428, 436, 438, 439, 465, 467, 482, 485, 487, 489, 495, 496, 514, 517, 518, 526, 576, 578, 582], "subclass": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 124, 307, 394, 437, 440, 489, 491], "subcompon": [67, 80], "subfold": [388, 431], "submit": [385, 406], "submodul": [388, 421, 422, 427, 486, 504, 516], "subok": 307, "subpackag": [401, 407, 424, 431, 435], "subplot": [66, 67, 193, 194, 196, 202, 205, 206, 450, 452, 453, 455, 456, 457, 458, 459, 461, 463, 464, 465, 469, 472, 474, 475, 477, 479, 482, 483, 484, 486, 487, 488, 490, 491, 503, 518, 520, 527, 537, 541, 544], "subplot_kw": [459, 461, 465, 475, 487, 527], "subplots_adjust": [473, 478, 479, 480], "subsect": [400, 486], "subsequ": [294, 389], "subset": [82, 83, 87, 91, 126, 130, 133, 248, 407, 435, 436, 465, 475, 488, 493, 495, 517, 576], "subspac": 394, "substanti": [87, 91], "substitut": 579, "substr": [224, 247], "subtract": 457, "succeed": 123, "success": [16, 84, 90, 101, 104, 123, 124, 125, 126, 127, 130, 131, 133, 210, 211, 212, 213, 408, 409, 431, 452, 453, 455, 456, 457, 459, 463, 464, 465, 469, 472, 473, 475, 477, 482, 483, 488, 494, 502, 503, 542], "successfulli": [101, 409, 452, 453, 455, 456, 457, 463, 464, 465, 474, 475, 477, 482, 483, 494, 502, 503], "sudo": 413, "suffer": [397, 475], "suffic": 474, "suffici": [383, 386, 393, 406, 445, 518], "suffix": [101, 123, 381, 391, 403, 489, 530, 532], "suggest": [383, 385, 387, 390, 394, 400, 402, 404, 408, 459, 467, 468, 518, 578], "suit": [194, 380, 531], "suitabl": 194, "sum": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 102, 105, 109, 110, 125, 126, 127, 129, 130, 131, 133, 134, 135, 143, 144, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 279, 288, 290, 292, 376, 380, 390, 391, 393, 402, 404, 408, 422, 446, 459, 463, 467, 475, 479, 481, 491, 494, 502, 503, 504, 514, 524, 577, 579], "sum_": 514, "sum_band": [193, 194], "sum_i": 128, "sum_j": 514, "sum_k": 514, "sum_of_implicit_term": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "sum_over_ax": [193, 194, 196, 202, 205, 206, 368, 440, 461, 463, 469, 475, 481, 485, 487, 488, 494, 503], "sum_over_energy_group": [122, 126, 133, 459, 465, 469], "summar": [389, 506], "summari": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 315, 319, 329, 354, 367, 381, 383, 400, 418, 452, 456, 473, 474, 481, 493, 502, 518], "summaris": [380, 385, 387, 400], "summat": [288, 290, 386], "summer": 388, "sun": 41, "sunpi": [397, 400, 401], "super": [192, 194, 267, 268, 269, 449, 457, 467, 496, 532, 564, 566], "superexpcutoffpowerlaw3fglspectralmodel": [258, 403, 489, 560], "superexpcutoffpowerlaw4fgldr3spectralmodel": [77, 258, 489, 561], "superexpcutoffpowerlaw4fglspectralmodel": [258, 403, 489, 562], "superflu": [390, 475], "supernova": [28, 52, 452, 466, 489, 508, 509], "superpixel": 192, "supersed": [192, 193, 194, 204, 205, 206], "supervisor": 396, "suppli": [19, 20, 26, 87, 91, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 451, 473, 474], "support": [83, 85, 86, 87, 88, 89, 91, 92, 95, 100, 102, 105, 109, 110, 114, 125, 145, 156, 161, 192, 193, 194, 195, 196, 198, 203, 204, 205, 206, 211, 224, 247, 379, 384, 385, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 407, 413, 417, 420, 421, 423, 424, 425, 426, 427, 428, 431, 433, 436, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 456, 458, 460, 463, 465, 471, 474, 479, 480, 481, 486, 491, 493, 494, 495, 496, 502, 517, 523, 530, 531, 573, 575, 576, 578], "suppos": [239, 274, 385, 392, 577, 579], "suppress": [150, 151, 155, 518], "sure": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 383, 385, 396, 409, 455, 472, 486, 518, 578], "surfac": [28, 30, 35, 36, 39, 40, 45, 211, 263, 279, 333, 399, 428, 483, 489, 508], "surface_brightness_err": 480, "surprisingli": 394, "surround": [52, 325, 380], "survei": [63, 67, 126, 226, 387, 390, 400, 416, 449, 493, 498, 499, 508, 513, 518, 577], "survey_map": [449, 499, 500], "suspect": 580, "suss": [389, 406], "svg": 380, "swap": 192, "swept": 52, "swh": 406, "swhid": 406, "switch": [103, 108, 286, 380, 387, 390, 409, 433, 437], "switcher": 409, "sy": [380, 415], "syllabl": 518, "symbol": 487, "symmetr": [102, 105, 109, 110, 122, 131, 133, 181, 190, 194, 234, 380, 391, 421, 433, 436, 453, 474, 485, 491, 493, 506, 516, 524, 535, 536, 580], "symmetri": [194, 421], "sync": 440, "sync_constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "synchronis": 406, "synchrotron": [248, 427, 554], "syntact": [87, 91], "syntax": [16, 87, 91, 381, 396, 399, 425, 442, 578], "synthesi": [508, 509], "synthet": 419, "system": [11, 83, 87, 91, 112, 113, 148, 156, 157, 192, 193, 194, 196, 199, 201, 204, 205, 206, 224, 247, 380, 386, 391, 393, 397, 400, 401, 405, 406, 408, 413, 421, 439, 445, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 529, 530, 576, 578, 582], "systemat": [391, 404, 406, 407, 428, 455, 472, 485, 516, 577, 579], "t": [16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 67, 69, 83, 84, 86, 87, 88, 90, 91, 104, 118, 119, 120, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 135, 142, 143, 144, 145, 150, 190, 203, 224, 239, 247, 286, 288, 289, 290, 305, 352, 356, 379, 380, 381, 383, 385, 387, 388, 390, 392, 394, 396, 397, 398, 399, 400, 403, 404, 405, 407, 410, 411, 412, 414, 416, 428, 432, 435, 436, 437, 440, 445, 447, 450, 451, 452, 455, 460, 463, 465, 466, 469, 471, 472, 473, 475, 477, 478, 479, 480, 482, 483, 485, 486, 487, 489, 490, 491, 493, 494, 506, 510, 511, 512, 514, 516, 518, 527, 565, 566, 567, 568, 569, 570, 571, 576, 578, 581, 582], "t0": [231, 255, 467, 473, 474, 477, 566, 570], "t1": [87, 91], "t2": [87, 91], "t2nfbyox": 477, "t_": [52, 53, 294, 523, 566, 567, 568, 569, 570, 571, 579], "t_0": 570, "t_b": 579, "t_decai": [238, 568], "t_delta": [103, 108, 203, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277], "t_i": 294, "t_j": 514, "t_live": [83, 88], "t_max": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 393, 404, 477], "t_min": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 393, 404, 477], "t_observ": [83, 88], "t_r": 239, "t_ref": [231, 236, 238, 239, 240, 255, 262, 274, 444, 445, 467, 468, 474, 489, 566, 567, 568, 569, 570, 571, 572, 573], "t_rise": [238, 568], "t_start": [86, 515], "t_stop": [52, 86, 515], "ta": 289, "ta2": 289, "ta3": 289, "tab": [150, 385, 463, 469, 472, 482, 491, 527], "tabl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 481, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583], "table_arrai": [87, 91], "table_associ": 67, "table_bkg_src": 466, "table_class": [87, 91], "table_compon": [67, 480], "table_filenam": 26, "table_format": 125, "table_from_row_data": 445, "table_hdu": 86, "table_identif": 67, "table_large_scale_compon": [67, 480], "table_model": [276, 403], "table_oth": 350, "tableau": 518, "tableclass": [87, 91], "tablegroup": [87, 91], "tableid": [87, 91], "tableiloc": [87, 91], "tableindic": [87, 91], "tableloc": [87, 91], "tablelocindic": [87, 91], "tablemodel": [391, 441], "tablepsf": [401, 419, 421], "tablepsfcheck": 437, "tabul": 506, "tabular": [489, 563], "tackl": 389, "tag": [19, 20, 26, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 84, 87, 90, 91, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 126, 127, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 178, 179, 180, 193, 194, 196, 202, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 271, 272, 273, 274, 275, 276, 278, 405, 408, 409, 428, 442, 484, 489, 491, 537, 541], "tail": [493, 578], "take": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 102, 105, 109, 110, 122, 148, 168, 170, 202, 204, 209, 211, 224, 247, 263, 355, 378, 380, 385, 386, 389, 390, 391, 392, 393, 394, 395, 396, 399, 400, 401, 404, 410, 426, 427, 428, 431, 433, 441, 442, 444, 445, 446, 450, 452, 455, 457, 458, 467, 468, 469, 474, 475, 477, 482, 483, 485, 486, 487, 489, 490, 491, 493, 503, 504, 515, 518, 531, 547, 579, 580, 581], "taken": [15, 27, 87, 91, 102, 105, 109, 110, 123, 125, 153, 161, 180, 186, 188, 202, 203, 206, 211, 297, 381, 385, 389, 393, 444, 451, 455, 463, 464, 475, 477, 482, 484, 487, 488, 493, 504, 514, 516, 527, 528, 580], "talk": [383, 385, 387, 397, 406], "tan": [194, 201, 394, 423, 455, 486, 494, 527], "tandem": 506, "tangent": [176, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275], "tangenti": [192, 531], "tar": [410, 493], "target": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 88, 90, 102, 105, 109, 110, 114, 118, 122, 124, 133, 151, 152, 163, 166, 183, 184, 188, 189, 193, 194, 196, 198, 202, 205, 206, 381, 386, 387, 393, 406, 409, 437, 452, 457, 465, 473, 485, 487, 503], "target_nam": 527, "target_posit": [176, 452, 455, 457, 465, 472, 473, 477, 503], "target_radec": 88, "targetmetadata": [90, 124], "task": [328, 400, 404, 406, 407, 409, 410, 441, 456, 459, 485, 486, 494, 498, 502, 518, 526, 576, 578, 582], "task_nam": 328, "tast": 578, "tau": [26, 51, 54, 136, 298, 408, 479, 544], "tau_0": 51, "taul": [26, 479], "taur": [26, 479], "taylor": [52, 53], "tb00058": [135, 144], "tbl": [87, 91], "tdelta_precis": 303, "team": [385, 389, 397, 400, 402, 406, 418, 439], "technic": [382, 383, 385, 393, 400, 402, 404, 406, 410, 460], "techniqu": [386, 395, 396, 398, 452, 455, 463, 466, 485, 487, 495, 525, 528, 576], "tediou": 480, "tel": [87, 91], "telescop": [82, 83, 85, 91, 95, 104, 153, 393, 394, 407, 412, 416, 417, 467, 472, 475, 490, 493, 494, 496], "tell": 457, "temp": [435, 468], "temperatur": [52, 53], "templat": [16, 26, 57, 70, 84, 90, 104, 105, 110, 115, 117, 124, 170, 178, 192, 193, 194, 196, 197, 198, 204, 205, 206, 212, 224, 239, 247, 271, 272, 273, 274, 275, 276, 283, 285, 299, 302, 385, 391, 392, 396, 403, 428, 442, 445, 446, 449, 458, 459, 461, 468, 486, 487, 488, 489, 506, 527, 532, 543, 550, 553, 558, 564, 572], "template_diffus": [488, 494], "template_extrapol": 563, "template_model": 467, "template_noextrapol": 563, "templatelightcurvetemporalmodel": 442, "templatend": [271, 272, 489], "templatendspatialmodel": [257, 489], "templatendspectralmodel": [26, 258, 433, 444, 489], "templatenpredmodel": [243, 431], "templatephasecurvetemporalmodel": [270, 442, 447, 489, 572], "templatespatialmodel": [67, 257, 402, 403, 428, 442, 443, 445, 446, 447, 467, 488, 489, 494, 542], "templatespectralmodel": [224, 247, 258, 281, 403, 489, 494, 514, 550, 553, 558, 563], "templatetemporalmodel": 442, "tempo2": [475, 518], "tempor": [215, 217, 223, 224, 231, 236, 238, 239, 240, 247, 255, 262, 263, 270, 274, 277, 294, 391, 393, 403, 404, 424, 426, 427, 428, 433, 442, 444, 445, 446, 447, 449, 451, 453, 456, 458, 459, 463, 464, 465, 467, 470, 471, 477, 478, 480, 481, 482, 488, 494, 498, 502, 518, 519, 574, 575, 577], "temporal_model": [263, 393, 467, 468, 474, 489, 565, 566, 567, 568, 569, 570, 571, 572, 573], "temporal_model1": 474, "temporal_model2": 474, "temporal_model_map": 468, "temporal_model_registri": 489, "temporal_typ": 403, "temporalbackground": 391, "temporalmodel": [223, 231, 236, 238, 239, 240, 255, 262, 263, 274, 391, 404, 427, 442, 444, 445, 447, 532], "temporari": 498, "temporarili": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 391], "ten": [386, 400], "tend": [380, 537], "tension": 478, "tensorflow": [398, 400], "tent": 409, "term": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 240, 300, 304, 383, 385, 387, 389, 390, 394, 397, 400, 405, 407, 429, 433, 442, 451, 459, 483, 484, 578, 580, 581], "termin": [87, 91, 101, 396, 411, 412, 413, 414, 415, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503, 578], "terrier": [386, 389, 390, 391, 392, 394, 395, 396, 397, 399, 401, 402, 403, 404, 405, 407, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "test": [6, 16, 84, 90, 94, 101, 104, 115, 117, 120, 122, 123, 124, 125, 126, 127, 130, 131, 133, 142, 161, 163, 166, 193, 194, 196, 202, 205, 206, 239, 286, 287, 288, 290, 293, 337, 354, 355, 356, 357, 358, 359, 360, 381, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 405, 408, 409, 410, 420, 422, 423, 425, 427, 431, 432, 433, 436, 437, 438, 439, 440, 441, 442, 445, 447, 452, 458, 459, 468, 471, 472, 473, 474, 477, 481, 482, 484, 516, 518, 522, 528, 572, 573, 577, 580], "test2": 474, "test_aeff3d": 484, "test_edisp": 484, "test_events_with_gti": 515, "test_gti": 515, "test_person_txt": 380, "test_plot": 380, "test_psf": 484, "test_someth": 380, "test_using_data_fil": 359, "test_using_scipi": 360, "testcod": 381, "testoutput": 381, "testpar": 408, "teststatisticnest": [445, 447], "tev": [16, 19, 20, 26, 44, 52, 53, 66, 67, 71, 75, 83, 96, 101, 102, 105, 109, 110, 111, 116, 118, 123, 125, 126, 141, 142, 147, 148, 150, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 173, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 263, 264, 266, 267, 268, 269, 272, 276, 279, 280, 305, 306, 327, 375, 381, 391, 403, 404, 407, 408, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 512, 515, 516, 522, 523, 525, 527, 528, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576], "tevcat": [432, 480], "tevcat_nam": 71, "tevpi": 419, "tevtevtev1": 465, "tex": 381, "texliv": 381, "text": [17, 18, 21, 22, 23, 24, 25, 27, 50, 51, 52, 53, 54, 105, 110, 123, 125, 133, 260, 261, 306, 343, 349, 369, 381, 388, 396, 406, 410, 456, 475, 484, 493, 502, 504, 535, 536, 537, 540, 541, 545, 561, 568, 578, 580], "textcolor": 369, "textkw": 369, "th": 198, "than": [27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 87, 91, 132, 151, 152, 154, 155, 158, 162, 163, 164, 166, 170, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 286, 295, 358, 373, 380, 381, 383, 385, 386, 387, 390, 393, 394, 395, 398, 399, 404, 406, 407, 410, 439, 442, 443, 444, 446, 450, 452, 463, 464, 467, 472, 473, 478, 483, 485, 487, 490, 491, 514, 531, 536, 537, 578, 580], "thank": [404, 425, 426, 431, 433, 447, 485, 518], "thaw": 488, "thei": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 95, 104, 108, 112, 113, 124, 130, 137, 167, 274, 294, 327, 380, 381, 383, 385, 386, 387, 388, 389, 391, 394, 396, 397, 399, 400, 403, 404, 405, 406, 407, 408, 409, 410, 417, 428, 431, 433, 445, 446, 452, 453, 457, 479, 481, 483, 487, 488, 489, 490, 491, 493, 496, 506, 515, 516, 518, 523, 530, 531, 576, 577, 578, 579, 580, 582], "them": [11, 15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 87, 90, 91, 100, 104, 124, 215, 217, 224, 247, 307, 380, 381, 383, 385, 387, 388, 394, 396, 399, 406, 407, 409, 410, 416, 423, 439, 452, 453, 455, 458, 460, 463, 464, 466, 468, 472, 480, 481, 482, 483, 486, 487, 489, 491, 493, 495, 498, 503, 515, 518, 527, 578, 580], "theme": [433, 440, 447], "themselv": [87, 91, 396, 485, 487, 525], "theorem": [286, 516, 580], "theoret": 491, "therefor": [105, 386, 390, 393, 394, 395, 399, 401, 403, 413, 431, 447, 452, 472, 475, 483, 486, 487, 490, 491, 495, 504, 516, 580, 581], "thereof": 391, "thermal": [19, 554, 577], "thermal_relic_cross_sect": 19, "theta": [33, 34, 38, 52, 53, 154, 160, 162, 164, 168, 176, 190, 199, 308, 311, 380, 428, 457, 494, 504, 535, 536, 540, 541], "theta2": [180, 190, 378, 439], "theta2_axi": 496, "theta2_max": 378, "theta2_min": 378, "theta2_t": 496, "theta_0": [33, 38], "theta_squared_axi": [190, 496], "thew": 480, "thi": [6, 15, 16, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 56, 67, 68, 69, 82, 83, 84, 85, 86, 87, 88, 90, 91, 100, 102, 103, 104, 105, 108, 109, 110, 114, 118, 122, 123, 124, 125, 126, 127, 129, 130, 132, 133, 134, 137, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 170, 173, 175, 176, 177, 179, 181, 183, 184, 187, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 279, 286, 288, 290, 296, 307, 315, 325, 328, 331, 336, 337, 355, 358, 365, 367, 369, 370, 371, 375, 377, 379, 380, 381, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 416, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 507, 514, 515, 516, 518, 520, 521, 522, 523, 524, 525, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581, 582], "thick": 377, "thin": [56, 319], "thing": [380, 383, 385, 388, 394, 395, 396, 397, 400, 404, 410, 419, 438, 457, 460, 474, 475, 487, 494], "think": [385, 397, 398, 400], "third": [62, 63, 87, 91, 381, 431, 480, 483, 486, 498, 504, 513], "thoma": [406, 439], "thorough": [486, 506], "those": [15, 83, 179, 193, 194, 196, 202, 205, 206, 211, 215, 217, 224, 247, 315, 369, 380, 383, 385, 387, 389, 394, 396, 399, 400, 401, 402, 403, 405, 410, 411, 412, 414, 415, 425, 428, 472, 477, 483, 486, 487, 488, 490, 498, 504, 516, 518, 527, 582], "though": [15, 383, 388, 394, 395, 396, 398, 400, 456, 489, 502], "thought": [385, 394], "three": [87, 91, 161, 289, 380, 389, 392, 394, 406, 409, 447, 465, 467, 472, 478, 486, 491, 498, 523, 530, 577], "threshold": [67, 102, 109, 118, 123, 124, 125, 133, 141, 142, 150, 151, 155, 168, 179, 203, 286, 369, 370, 371, 394, 421, 427, 428, 450, 455, 457, 459, 465, 469, 472, 480, 481, 483, 485, 487, 493, 502, 514, 516], "threshold_alpha": 168, "through": [41, 87, 91, 306, 307, 377, 383, 385, 393, 394, 400, 404, 405, 413, 417, 431, 442, 451, 459, 468, 478, 483, 485, 486, 487, 488, 494, 495, 518, 523, 530, 577, 580], "throughout": [13, 387, 389, 390, 394, 396, 438, 480], "throught": 469, "thrown": 489, "thu": [380, 387, 394, 397, 398, 400, 435, 450, 451, 460, 461, 465, 467, 482, 575, 581], "thumbnail": 431, "ti": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 194, 389, 474], "tibaldo": 436, "tick": [444, 445], "tick_param": 450, "ticker": 369, "tight_layout": [473, 483, 491, 537, 541], "tightli": 399, "tikonov": 408, "tild": [192, 204], "tile": [192, 194], "tilt": [253, 273, 391, 402, 403, 408, 420, 426, 460, 463, 464, 467, 468, 471, 481, 489, 494, 502, 503, 525, 531, 538, 558, 563], "tilt_prior": 408, "tim": 446, "time": [6, 19, 20, 50, 51, 52, 53, 78, 82, 83, 85, 86, 87, 88, 89, 91, 92, 94, 100, 101, 102, 103, 104, 105, 108, 109, 110, 112, 123, 124, 125, 130, 133, 136, 137, 145, 169, 175, 186, 188, 193, 194, 195, 196, 197, 202, 203, 205, 206, 211, 214, 216, 223, 226, 231, 236, 238, 239, 240, 255, 262, 263, 274, 277, 289, 294, 298, 303, 337, 357, 361, 362, 363, 364, 380, 381, 383, 385, 386, 387, 388, 390, 393, 394, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 409, 410, 412, 416, 420, 421, 424, 425, 426, 428, 431, 435, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 451, 455, 457, 458, 459, 461, 463, 465, 466, 468, 469, 472, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 502, 503, 504, 510, 511, 512, 514, 515, 516, 518, 523, 527, 531, 536, 537, 544, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 581], "time1": 298, "time2": 298, "time_axi": [193, 194, 196, 197, 202, 205, 206, 289, 468, 477, 486, 531], "time_bin": 395, "time_bin_end": 395, "time_bin_s": 395, "time_bin_start": 395, "time_bound": 203, "time_box": 91, "time_column": 404, "time_delta": [86, 203, 361, 364], "time_edg": [203, 478, 486], "time_filt": 89, "time_format": [125, 203, 445, 474], "time_info": 90, "time_interv": [16, 83, 86, 88, 92, 130, 456, 460, 461, 463, 468, 472, 473, 477, 502], "time_map_axi": [203, 486], "time_map_axis_contigu": 486, "time_max": [100, 123, 125, 203, 394, 395, 396, 468, 472, 477, 480, 486], "time_mid": [203, 478], "time_min": [100, 123, 125, 203, 394, 395, 396, 468, 472, 477, 480, 486], "time_rang": [91, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 468, 565, 566, 567, 568, 569, 570, 571, 572, 573], "time_ref": [83, 85, 86, 91, 94, 197], "time_ref_default": 86, "time_ref_from_dict": 582, "time_relative_to_ref": 582, "time_resolved_spectroscopi": [449, 476, 477], "time_seri": 289, "time_start": [85, 86, 91, 395], "time_step": 395, "time_stop": [85, 86, 91, 395], "time_sum": [86, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277], "timedelta": [87, 91, 94, 203, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 337, 361, 364, 582], "timedelta64": [87, 91], "timeinfometadata": 90, "timelin": [385, 387, 439], "timemapaxi": [125, 145, 195, 197, 431, 446, 447, 473, 474, 477, 478], "timerangeconfig": 16, "timeref": 467, "timescal": [137, 231, 295, 405, 478], "timeseri": 395, "timesi": [94, 443, 445, 467], "timestamp": 380, "timeunit": 467, "timmer": [289, 447], "timmer1995": 289, "tini": [465, 493], "tip": 518, "titl": [385, 469, 479], "tiziani": 437, "tke": 494, "tm": [87, 91], "tmax": 395, "tmid": [88, 445, 465, 485, 490, 503], "tmin": 395, "to_2d": [148, 496], "to_3d": [147, 444, 446], "to_bands_hdu": [191, 192, 201, 204], "to_binsz": [192, 201, 204, 431], "to_binsz_wc": 201, "to_contigu": [203, 486], "to_counts_hdulist": 107, "to_cub": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 428, 461, 531], "to_dict": [19, 20, 26, 99, 101, 102, 105, 109, 110, 210, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 407, 491], "to_edisp_kernel": [155, 447, 522], "to_edisp_kernel_map": [152, 431, 522], "to_energy_dependent_table_psf": 439, "to_even_npix": 204, "to_fits_head": 85, "to_fram": 199, "to_gti": [203, 446], "to_hdu": [193, 194, 205, 206], "to_hdulist": [102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 193, 194, 200, 201, 202, 205, 206, 486], "to_head": [84, 90, 104, 124, 192, 195, 197, 198, 203, 204, 407], "to_html": 380, "to_imag": [102, 105, 109, 110, 150, 151, 161, 163, 166, 191, 192, 201, 204, 402, 425, 426, 450, 461, 465, 481, 494, 528, 531], "to_json": [16, 84, 90, 104, 124], "to_map": [123, 125], "to_map_dataset": [105, 110], "to_mask": [102, 105, 109, 110, 479], "to_model": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 431, 480], "to_node_typ": 198, "to_nsid": [192, 194], "to_odd_npix": 204, "to_panda": [87, 91], "to_parameters_t": [224, 247, 451, 452, 455, 456, 457, 460, 463, 473, 483, 491, 503], "to_pixel": [394, 455, 465, 479, 485, 489, 527, 535, 536, 537], "to_polygon": 394, "to_psf3d": [154, 162, 164], "to_python": [16, 84, 90, 104, 124], "to_region": [220, 221, 224, 225, 234, 237, 247, 251, 260, 261, 275, 394, 425, 489, 535, 536, 537], "to_region_map_dataset": [102, 105, 109, 110, 481], "to_region_nd_map": [151, 152, 158, 163, 166, 194, 202, 206, 428, 431, 494], "to_region_nd_map_histogram": [206, 445], "to_sed_typ": 404, "to_sherpa": [425, 439, 440], "to_spectrum": 431, "to_spectrum_dataset": [100, 102, 105, 109, 110, 402, 424, 426, 475, 481, 491], "to_st": 445, "to_str": [445, 450], "to_swap": [192, 193, 194], "to_tabl": [101, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 197, 198, 202, 203, 215, 217, 239, 431, 447, 451, 453, 455, 456, 465, 469, 471, 472, 474, 480, 482, 489, 504, 516], "to_table_hdu": [83, 86, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 197, 198, 486], "to_table_psf": 437, "to_template_sky_model": [224, 247], "to_template_spectral_model": [224, 247, 403], "to_unit": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206], "to_wc": [193, 194], "to_wcs_geom": [192, 201, 531], "to_wcs_til": [192, 194], "to_yaml": [16, 84, 90, 104, 124, 224, 247, 391, 407, 489, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "tob": 456, "todai": 406, "todo": [13, 79, 99, 161, 276, 381, 404, 422, 493, 508, 509, 582], "tof": 160, "togeth": [100, 102, 105, 109, 110, 126, 130, 224, 247, 377, 380, 393, 397, 400, 411, 423, 451, 461, 463, 464, 469, 473, 481, 483, 485, 488, 489, 490, 491, 496, 503, 514, 515, 578], "tol": [286, 483], "toler": [86, 100, 130, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 357, 483], "tolist": 483, "tomato": 451, "toml": 428, "ton": [295, 493], "too": [380, 385, 386, 430, 431, 444, 445, 446, 483, 487], "took": 405, "tool": [6, 13, 193, 194, 196, 205, 206, 379, 383, 387, 389, 391, 393, 396, 397, 400, 406, 417, 425, 436, 439, 440, 466, 469, 474, 481, 483, 486, 490, 493, 494, 496, 506, 518, 552, 576, 577], "toolbox": [396, 436], "top": [109, 110, 367, 376, 380, 385, 396, 400, 402, 413, 439, 457, 459, 465, 469, 472, 474, 478, 480, 485, 504, 518, 531, 576, 578, 582], "top_five_ts_3fhl": 504, "tophat2dkernel": 122, "topic": [385, 389, 400, 408, 504], "total": [51, 67, 99, 101, 102, 105, 109, 110, 126, 127, 130, 131, 140, 173, 188, 192, 212, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 304, 388, 404, 408, 412, 414, 446, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 473, 474, 475, 476, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 491, 492, 494, 497, 499, 501, 502, 503, 504, 505, 508, 514, 518, 523, 533, 543, 554, 564, 574, 577], "total_jfact": 479, "total_jfact_decai": 479, "total_model": 391, "total_obstim": 485, "total_stat": [212, 213, 451, 477, 483, 579], "touch": [86, 420], "tour": 498, "toward": [325, 387, 394, 400, 441], "tox": [344, 381, 383, 442, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "tqdm": 518, "trace": [211, 212, 213, 428, 483], "traceback": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380], "track": [85, 94, 380, 389, 395, 406, 433, 488], "tracker": [383, 394, 409, 447], "tradition": [489, 579], "train": 405, "traitlet": [396, 407], "traittyp": 407, "transfer": 407, "transform": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 94, 161, 195, 197, 198, 203, 204, 224, 247, 309, 313, 336, 341, 380, 394, 396, 404, 408, 419, 421, 437, 440, 459, 465, 485, 491, 530, 535, 536, 582], "transit": [27, 370, 371, 387, 420, 421, 439, 495], "transit_map": 495, "transit_numb": 495, "transitsmap_crab": 495, "translat": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 396, 516], "transpar": 395, "transport": 486, "transpos": 440, "trapezoid": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 282, 318], "trapz": 318, "trapz_loglog": 426, "trash": 422, "travi": [425, 427, 431], "treat": [95, 412, 444, 445, 455, 467, 581], "treatment": [431, 455, 463, 577], "trend": 467, "tri": [77, 388, 394], "tributor": 406, "tricki": 394, "trigger": [358, 380, 409, 495], "trim": [102, 105, 151, 152, 158, 163, 166, 169, 204, 206, 273], "tripl": 154, "trivial": 387, "troubl": 578, "troubleshoot": [412, 413, 414], "trough": 478, "true": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 45, 80, 82, 83, 84, 86, 87, 88, 90, 91, 93, 96, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 122, 123, 124, 125, 126, 130, 131, 133, 134, 140, 143, 147, 148, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 179, 180, 183, 184, 186, 187, 189, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 208, 211, 212, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 304, 307, 315, 316, 319, 337, 349, 351, 368, 373, 377, 380, 386, 393, 394, 395, 396, 403, 404, 407, 422, 426, 427, 438, 440, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 494, 495, 500, 502, 503, 504, 508, 514, 516, 518, 523, 528, 530, 531, 534, 535, 536, 539, 540, 542, 563, 577, 580], "truelov": 53, "truncat": [133, 325, 431], "truncation_valu": [291, 297], "trust": [16, 84, 90, 104, 124], "trustworthi": 408, "truth": 491, "try": [16, 77, 84, 90, 104, 124, 193, 194, 196, 202, 205, 206, 380, 381, 390, 394, 400, 409, 410, 416, 421, 453, 455, 457, 467, 468, 472, 480, 483, 486, 504, 578], "ts2": 289, "ts3": 289, "ts_image_estim": 465, "ts_scan": [123, 125], "ts_threshold": [145, 286], "ts_threshold_ul": [475, 516], "ts_to_sigma": [466, 580], "tsimageestim": 439, "tsmap": 447, "tsmap_est": 373, "tsmapestim": [119, 143, 144, 373, 401, 404, 426, 427, 429, 431, 445, 447, 459, 465, 518], "tstart": [88, 91, 393, 395, 458, 467, 471, 473, 474, 477, 493], "tstop": [88, 393, 395, 458, 467, 471, 473, 477, 493], "tt": [86, 94, 362, 363, 406, 468, 473, 477, 582], "tth_sec3": 198, "tupl": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 56, 83, 84, 87, 88, 90, 91, 101, 102, 104, 105, 109, 110, 124, 128, 133, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 169, 174, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 209, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 276, 288, 290, 293, 319, 329, 336, 380, 486, 530], "turn": [83, 88, 381, 383, 394, 493, 575], "tutori": [82, 99, 120, 130, 132, 178, 380, 383, 384, 389, 392, 393, 394, 395, 396, 397, 398, 401, 410, 414, 415, 416, 417, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 437, 438, 439, 440, 441, 442, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 460, 462, 463, 464, 465, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 480, 481, 482, 483, 484, 486, 488, 489, 490, 491, 492, 494, 496, 497, 499, 501, 502, 503, 504, 505, 518, 519, 521, 530, 575, 578], "tutorials_jupyt": [409, 498], "tutorials_python": 498, "tweak": [396, 431, 447, 486], "twice": [122, 530, 581], "twinx": 450, "two": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 77, 86, 87, 89, 91, 101, 102, 105, 109, 110, 136, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 169, 174, 176, 192, 193, 194, 195, 196, 198, 201, 202, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 337, 347, 369, 374, 377, 379, 380, 381, 383, 387, 389, 390, 391, 392, 394, 395, 396, 397, 398, 400, 401, 404, 405, 406, 408, 409, 410, 412, 433, 439, 441, 445, 447, 456, 457, 463, 464, 466, 469, 474, 480, 481, 482, 483, 484, 486, 487, 489, 490, 491, 493, 495, 502, 503, 508, 514, 515, 516, 518, 527, 530, 531, 546, 580, 581], "txripm4": 477, "txt": [125, 405, 407, 409, 488, 494], "tyler": 433, "type": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 84, 87, 89, 90, 91, 96, 99, 100, 101, 102, 104, 114, 122, 123, 124, 125, 127, 133, 167, 173, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 307, 337, 386, 389, 390, 391, 392, 394, 395, 396, 399, 403, 404, 406, 408, 410, 411, 416, 424, 431, 437, 438, 439, 445, 447, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 477, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 502, 503, 504, 506, 518, 530, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578], "typeerror": [16, 84, 90, 104, 124, 307, 394, 404, 408], "typic": [123, 386, 389, 391, 398, 402, 403, 404, 405, 407, 409, 412, 413, 452, 457, 461, 469, 471, 472, 473, 480, 481, 482, 484, 487, 489, 490, 506, 513, 514, 515, 523, 527, 576, 577], "typing_extens": [16, 84, 90, 104, 124], "typo": [380, 417, 443, 444, 447], "tzgvn5h0": 477, "u": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 66, 83, 85, 87, 91, 96, 102, 105, 109, 110, 115, 117, 118, 123, 125, 127, 129, 133, 141, 142, 150, 152, 161, 191, 192, 193, 194, 196, 197, 201, 202, 203, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 280, 289, 305, 306, 307, 327, 375, 380, 383, 387, 388, 389, 395, 396, 397, 398, 403, 404, 407, 408, 420, 421, 422, 439, 440, 441, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 508, 515, 516, 518, 520, 525, 527, 528, 531, 535, 537, 538, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572], "u03c3": 466, "u18": [33, 38], "u9f7se2t": 477, "uc": [87, 91], "ufunc": [193, 194, 196, 202, 205, 206, 457, 477], "ui": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 244, 279, 280, 289, 296, 298], "ul": [67, 122, 123, 125, 126, 127, 130, 131, 133, 287, 464, 469, 474, 480], "ultim": 380, "un": [392, 406, 428, 488], "unambigu": 489, "unbehaun": 446, "unbin": [392, 393, 440], "unboundlocalerror": 380, "uncertaint": 398, "uncertainti": [52, 102, 105, 109, 110, 288, 290, 384, 397, 438, 453, 455, 475, 483, 491, 503, 576, 577, 579], "unchang": [102, 105, 109, 110, 115, 117, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 439], "unclear": [380, 390, 391, 397, 407], "uncom": [396, 493], "undefin": 581, "under": [72, 91, 134, 135, 143, 144, 380, 384, 389, 397, 406, 440, 441, 451, 456, 498, 502, 514, 580, 581], "underestim": 516, "underflow": 203, "underli": [87, 91, 201, 393, 453, 480, 486, 491, 504, 506, 515, 527, 530], "underscor": 380, "understand": [396, 417, 425, 426, 452, 455, 456, 457, 460, 467, 468, 473, 474, 478, 486, 487, 488, 493, 502, 503, 578], "undertak": 400, "unevenli": [136, 298], "unexpect": 495, "unfold": 577, "unfreez": [19, 20, 26, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 554], "unfreeze_al": [215, 217, 488], "unfrozen": 525, "unheard": 578, "uni": [408, 409], "uni_prior_stat_sum": 491, "unicod": [87, 91, 380], "unid": 67, "unidimension": 197, "unif": 425, "unifi": [87, 91, 384, 389, 394, 420, 423, 425, 426, 427, 428, 431, 440, 441, 577], "uniform": [161, 211, 278, 336, 380, 389, 391, 392, 402, 404, 408, 422, 423, 427, 431, 447, 452, 486, 491, 576], "uniform_filt": [128, 206], "uniformli": [393, 516], "uniformprior": [408, 447, 491], "uninstal": 379, "union": [86, 89, 102, 105, 201, 342, 394, 395, 406, 407, 423, 514], "uniqu": [87, 91, 100, 150, 192, 193, 194, 195, 196, 202, 204, 205, 206, 215, 217, 224, 232, 247, 263, 273, 373, 390, 391, 392, 393, 403, 406, 426, 447, 456, 481, 489, 495, 531, 575], "unique_id": 489, "unique_paramet": [215, 217], "uniquifi": [87, 91], "unit": [6, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 66, 83, 85, 87, 88, 91, 96, 101, 102, 105, 107, 109, 110, 111, 115, 116, 117, 118, 123, 125, 127, 129, 133, 141, 142, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 173, 176, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 279, 280, 289, 298, 305, 306, 307, 337, 351, 352, 353, 355, 364, 365, 366, 369, 370, 371, 375, 381, 389, 391, 394, 396, 398, 403, 404, 408, 420, 421, 423, 431, 433, 439, 440, 442, 443, 444, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 508, 510, 511, 512, 515, 516, 518, 520, 522, 523, 525, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577], "unit_string_format": [445, 450], "unitbas": 307, "uniti": [128, 195, 275, 443, 537], "unitless": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 232, 273], "unitsmap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "unitswarn": [450, 458, 460, 463, 465, 471, 474, 493], "univers": [193, 194, 196, 202, 205, 206, 577], "univsers": 20, "unknown": [101, 290, 459, 483, 579, 580], "unless": [93, 95, 126, 127, 130, 133, 169, 307, 379, 386, 405, 407, 484], "unlik": [87, 91, 286, 387, 398], "unmaintain": 421, "unmask": [87, 91], "unnam": [87, 91, 199], "unnecessari": [431, 442, 463], "unneed": 445, "unphys": 581, "unrealist": 380, "unrel": 582, "unreli": 493, "unsaf": 380, "unstabl": [380, 493], "unsupport": 397, "untar": 493, "until": [380, 383, 387, 394, 405, 438], "unus": [396, 423, 425], "unusu": 385, "unweight": [105, 110], "unzip": 493, "up": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 74, 101, 127, 129, 133, 154, 160, 162, 164, 201, 307, 380, 381, 384, 385, 387, 388, 389, 392, 394, 396, 397, 398, 400, 402, 406, 408, 410, 411, 412, 414, 416, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 435, 437, 438, 439, 440, 441, 447, 455, 456, 463, 466, 467, 491, 493, 494, 531, 578], "up8n5ef6": 477, "upcast": 307, "upcom": [388, 389], "updat": [15, 16, 84, 87, 90, 91, 103, 104, 108, 124, 200, 214, 216, 224, 247, 275, 286, 327, 347, 380, 383, 385, 386, 387, 388, 389, 392, 397, 402, 404, 406, 407, 409, 410, 412, 413, 420, 421, 422, 423, 424, 425, 426, 428, 430, 431, 432, 433, 434, 437, 438, 439, 440, 442, 445, 446, 447, 486, 489, 529, 530], "update_config": 15, "update_forward_ref": [16, 84, 90, 104, 124], "update_from_dict": [214, 216], "update_link_label": [224, 247], "update_parameters_from_t": [224, 247], "upgrad": [192, 379, 405, 413], "upload": [397, 409], "upon": [102, 105, 109, 110, 389, 460, 488, 493, 514], "upper": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 80, 101, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 143, 150, 198, 203, 211, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 287, 288, 290, 407, 416, 427, 431, 438, 439, 440, 446, 455, 459, 469, 472, 481, 482, 485, 502, 514, 516, 518], "upper_error": 125, "upsampl": [163, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 422, 442], "upsample_geom": 163, "upstream": [380, 383, 409], "upward": [288, 290], "url": 388, "us": [11, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 46, 47, 53, 56, 57, 59, 65, 69, 70, 71, 74, 75, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 107, 108, 109, 110, 113, 114, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 138, 139, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 280, 282, 287, 289, 291, 303, 305, 307, 315, 318, 319, 320, 327, 328, 331, 336, 337, 344, 347, 363, 364, 366, 367, 369, 370, 371, 373, 374, 375, 376, 377, 379, 381, 382, 383, 385, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 414, 415, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 468, 469, 471, 473, 474, 475, 477, 478, 479, 480, 482, 485, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 498, 500, 504, 507, 508, 518, 520, 521, 522, 524, 528, 529, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576, 577, 578, 579, 580, 582, 583], "usabl": 380, "usag": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 90, 104, 120, 124, 130, 132, 178, 191, 192, 201, 204, 331, 386, 390, 391, 393, 395, 399, 404, 424, 445, 446, 480, 485, 487, 488, 578], "use_cach": 248, "use_center_as_plot_label": 198, "use_enum_valu": [16, 84, 90, 104, 124], "use_evaluation_region": [224, 247], "use_fft": 206, "use_local_fil": [87, 91], "use_nullable_int": [87, 91], "use_region_cent": [173, 180, 183, 184, 186, 187, 431, 452], "useless": 493, "user": [15, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 82, 88, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 381, 383, 385, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 417, 424, 431, 432, 438, 439, 440, 442, 456, 459, 466, 467, 468, 481, 482, 484, 486, 487, 488, 489, 490, 498, 502, 515, 516, 517, 518, 523, 527, 530, 533, 539, 543, 564, 574, 575, 578], "userdataset": 392, "usernam": 383, "userwarn": [455, 457, 464, 465, 469, 494], "uses_quant": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "usr": 578, "usual": [29, 82, 83, 123, 141, 147, 148, 149, 161, 202, 315, 380, 381, 383, 385, 386, 387, 388, 394, 395, 400, 406, 410, 445, 450, 451, 452, 453, 455, 457, 458, 460, 461, 465, 467, 468, 471, 472, 473, 474, 477, 478, 479, 481, 487, 490, 495, 503, 506, 514, 518, 520, 521, 522, 524, 527, 531, 536, 575, 577, 578, 579], "ut1": 582, "utc": [86, 88, 104, 124, 361, 467, 472, 473, 477, 486, 489, 565, 566, 567, 568, 569, 570, 571, 572, 573, 582], "utf": [87, 91], "utf8": [16, 84, 90, 104, 124], "util": [6, 96, 104, 111, 115, 116, 117, 124, 125, 127, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 152, 182, 183, 184, 185, 186, 187, 188, 189, 190, 285, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 380, 389, 391, 392, 393, 394, 404, 419, 422, 423, 424, 425, 432, 433, 436, 437, 438, 439, 440, 441, 445, 446, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 507, 518, 577], "utilis": [142, 286, 381, 412, 414, 450, 455, 459, 466, 478, 482, 486, 490, 495, 503, 515, 518, 525], "v": [26, 31, 32, 37, 87, 91, 154, 160, 162, 163, 164, 166, 175, 182, 200, 274, 286, 311, 383, 388, 395, 396, 407, 408, 409, 410, 433, 450, 472, 479, 490, 502], "v0": [95, 387, 388, 391, 392, 394, 397, 399, 400, 405, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 440, 441, 442, 467, 468, 484, 488, 493], "v1": [13, 380, 387, 389, 391, 396, 397, 398, 399, 405, 406, 409, 425, 426, 427, 433, 438, 442, 443, 444, 445, 446, 447, 469, 494, 550], "v15": 447, "v2": [406, 407, 431, 439, 446, 463], "v3": [16, 84, 90, 104, 124, 423, 463], "v_0": [37, 49], "v_glat": 314, "v_glon": 314, "va": 535, "vagu": 385, "vain": 383, "val": [87, 91, 193, 194, 196, 202, 205, 206, 215, 217, 486, 530], "valfmt": 369, "valid": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 106, 123, 124, 127, 135, 144, 165, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 307, 325, 379, 380, 389, 393, 396, 397, 406, 425, 433, 442, 452, 455, 477, 483, 485, 486, 489, 494, 516, 518, 523, 577], "valid_hdu_class": [82, 87], "valid_hdu_typ": 87, "valid_interv": 477, "valid_tim": 477, "validate_al": 407, "validate_assign": [16, 84, 90, 104, 124, 407], "validate_default": [16, 84, 90, 104, 124], "validate_loc": 407, "validate_scalar": 90, "validate_zenith_angl": 407, "validationerror": [16, 84, 90, 104, 124, 407], "valle": 38, "valleespir": 508, "valu": [11, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 52, 83, 84, 86, 87, 88, 90, 91, 92, 95, 99, 100, 101, 102, 104, 105, 109, 110, 112, 113, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 141, 142, 143, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 164, 165, 166, 169, 173, 179, 180, 182, 183, 184, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 211, 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 286, 287, 288, 290, 291, 293, 294, 295, 298, 307, 311, 319, 320, 334, 337, 347, 351, 366, 369, 370, 371, 381, 383, 386, 391, 392, 394, 396, 398, 400, 403, 404, 407, 422, 425, 431, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490, 493, 494, 495, 496, 502, 503, 504, 506, 510, 511, 512, 516, 518, 522, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 579, 580, 581], "value_rang": 91, "value_scan": 287, "valueerror": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 72, 87, 91, 92, 100, 224, 247, 380, 394, 407], "values_equ": [87, 91], "values_err": 475, "values_scal": [147, 148, 149, 202, 206, 239, 271, 275, 276, 319, 443, 445, 468, 484], "vanilla": [87, 91], "var": [296, 412, 414], "vari": [68, 103, 108, 130, 161, 211, 319, 347, 392, 394, 395, 405, 425, 428, 449, 451, 460, 465, 466, 468, 476, 477, 485, 489, 491, 494, 498], "variability_amplitud": 478, "variability_amplitude_100": 478, "variability_amplitude_error": 478, "variability_amplitude_signific": 478, "variability_estim": [449, 473, 476, 478], "variabl": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 90, 91, 104, 124, 136, 137, 206, 288, 290, 293, 294, 295, 296, 298, 303, 318, 345, 380, 381, 383, 393, 395, 396, 410, 412, 414, 420, 421, 437, 438, 439, 445, 446, 447, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 468, 469, 472, 473, 474, 475, 476, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 523, 578, 579, 580], "varianc": [96, 138, 139, 295, 296, 306, 395, 446, 490, 525], "variant": 410, "variat": [137, 240, 295, 386, 396, 450, 478, 484, 485, 528, 580], "varieti": [391, 576], "variou": [120, 126, 127, 130, 131, 133, 142, 380, 386, 390, 392, 395, 404, 407, 410, 412, 431, 432, 446, 451, 453, 456, 459, 464, 466, 472, 482, 483, 502, 514, 518, 576, 582], "vasco": 447, "vast": [397, 433], "vaughan": [296, 478], "vaughan2003": 296, "ve": [380, 381, 383, 578], "vector": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 486, 522, 530], "vega": 440, "vel": 475, "vel_di": [45, 508], "vela": [66, 419, 453, 475, 504], "veloc": [31, 32, 37, 45, 49, 311, 314], "ver": 486, "verbos": [11, 82, 381, 403, 578, 580], "veri": [63, 87, 91, 141, 211, 370, 379, 380, 381, 382, 385, 386, 391, 393, 394, 395, 396, 397, 398, 399, 400, 403, 404, 407, 410, 441, 450, 451, 458, 478, 480, 482, 483, 486, 491, 494, 504, 514, 518, 531, 540, 541, 575, 577, 578, 579], "verif": [100, 224, 247, 343, 346, 464, 494], "verifi": [215, 217, 237, 286, 380, 393, 480, 518], "verifywarn": 518, "verita": [97, 412, 417, 494], "versa": 192, "version": [11, 78, 85, 87, 91, 125, 181, 379, 381, 383, 384, 387, 388, 389, 390, 394, 397, 400, 406, 407, 408, 410, 411, 412, 413, 415, 417, 419, 420, 421, 422, 424, 425, 430, 432, 433, 435, 438, 439, 440, 442, 443, 445, 446, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 516, 578], "versu": [147, 153, 286, 288, 290, 493, 512], "vert": 254, "vertex": 394, "vhe": [452, 506], "via": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 83, 91, 103, 108, 194, 199, 209, 379, 381, 383, 388, 392, 394, 395, 396, 397, 398, 399, 401, 403, 406, 407, 408, 409, 410, 412, 413, 420, 428, 436, 438, 439, 440, 444, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 518, 522, 527, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 578, 582], "viabil": 407, "vice": 192, "victor": 435, "view": [83, 87, 91, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 170, 193, 194, 196, 200, 202, 205, 206, 232, 309, 313, 367, 380, 394, 421, 426, 431, 433, 440, 441, 455, 457, 461, 463, 467, 477, 481, 484, 485, 487, 493, 494, 518, 520, 521, 522, 523, 524, 525, 527, 577], "vika": 431, "vila": 447, "vin\u00edciu": 438, "viridi": [457, 479], "virtual": [383, 410, 412, 413, 414, 578], "visibl": [87, 91, 370, 371, 388, 431, 450, 467, 495, 503, 504, 577], "vision": 385, "visit": 468, "visual": [6, 194, 206, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 394, 426, 427, 445, 446, 447, 455, 457, 461, 463, 465, 468, 483, 484, 490, 496, 503, 504, 518, 527, 532, 535, 576], "visualis": [377, 392, 394, 401, 427, 442, 457, 484, 489, 491, 493, 518], "vline": [512, 535, 536], "vmax": [102, 105, 109, 110, 370, 371, 460, 463, 465, 471, 481, 486, 487, 494, 495, 502, 503, 527], "vmin": [102, 105, 109, 110, 370, 371, 459, 463, 471, 481, 486, 487, 494, 495, 502, 503, 527], "volum": [27, 197, 201, 204], "vorokh": [436, 437], "voruganti": [438, 439], "vstack": [83, 86, 393], "vuillaum": [406, 439], "vx": [311, 314, 405], "vy": [311, 314], "vz": [311, 314], "w": [26, 31, 49, 86, 190, 203, 304, 381, 405, 459, 461, 469, 479, 485, 489, 491, 527, 579, 581], "w7bypl7d": 477, "wa": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 84, 85, 87, 90, 91, 93, 94, 102, 104, 118, 124, 126, 127, 130, 133, 169, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 373, 380, 383, 385, 386, 387, 388, 389, 390, 393, 394, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 410, 420, 423, 424, 425, 426, 427, 428, 435, 439, 440, 441, 442, 443, 444, 445, 451, 453, 455, 461, 463, 465, 469, 485, 491, 493, 494, 495, 496, 504, 578], "wagner": 478, "wai": [33, 38, 83, 87, 91, 198, 289, 331, 337, 379, 380, 381, 383, 385, 386, 387, 388, 390, 391, 392, 394, 395, 396, 397, 400, 401, 404, 406, 412, 413, 414, 416, 419, 423, 439, 440, 453, 455, 457, 460, 463, 478, 480, 481, 482, 483, 485, 486, 487, 488, 490, 493, 494, 495, 496, 498, 508, 515, 517, 518, 522, 531, 576, 578, 580], "wait": [380, 409, 410], "wall": [83, 88], "want": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 90, 104, 107, 124, 150, 176, 201, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 382, 383, 385, 386, 387, 390, 394, 395, 396, 398, 399, 400, 410, 411, 412, 413, 414, 416, 417, 420, 440, 452, 455, 456, 457, 458, 460, 467, 468, 471, 472, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 502, 503, 504, 522, 575, 578, 579, 580, 581, 582], "ward": 305, "warn": [11, 16, 26, 82, 84, 87, 90, 91, 104, 124, 194, 214, 215, 216, 217, 271, 272, 273, 275, 366, 405, 410, 422, 439, 444, 445, 446, 447, 450, 458, 459, 460, 463, 464, 465, 468, 471, 474, 475, 493, 494, 518, 542, 550, 578], "warn_miss": 87, "warn_with_traceback": 380, "wasn": [387, 440], "watch": [494, 582], "water": [412, 495], "watson": 421, "wavelength": 399, "wavelet": [419, 437], "wc": [13, 16, 83, 102, 105, 109, 127, 168, 176, 177, 181, 192, 193, 194, 196, 201, 202, 204, 205, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 340, 375, 380, 386, 394, 399, 421, 422, 423, 425, 431, 439, 440, 444, 446, 455, 456, 459, 460, 461, 463, 465, 469, 472, 475, 479, 481, 484, 485, 487, 488, 489, 494, 502, 503, 504, 527, 530, 535, 536, 537, 542], "wcda": [57, 70], "wcs_geom": [201, 224, 247, 486, 531], "wcs_geom_3d": 486, "wcs_geom_cel": 486, "wcs_map": [205, 206, 373], "wcs_tile": [192, 194], "wcsax": [102, 105, 109, 110, 194, 201, 202, 206, 224, 247, 375, 377, 463, 486, 504, 534, 538, 539, 540], "wcsconfig": 16, "wcsgeom": [23, 83, 102, 105, 109, 110, 111, 114, 116, 122, 123, 133, 152, 161, 163, 173, 186, 187, 191, 192, 201, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 381, 386, 394, 421, 424, 425, 426, 431, 444, 446, 447, 455, 459, 460, 465, 467, 468, 469, 471, 475, 479, 481, 482, 484, 485, 486, 487, 489, 494, 495, 503, 504, 514, 516, 525, 527, 528, 531, 534, 536, 537, 538, 539], "wcslib": 380, "wcsmap": [193, 194, 196, 206, 442], "wcsndmap": [102, 105, 111, 116, 118, 133, 141, 161, 163, 166, 168, 170, 175, 176, 177, 178, 181, 186, 187, 192, 193, 194, 196, 202, 204, 205, 207, 208, 224, 247, 263, 271, 367, 373, 375, 386, 424, 425, 426, 428, 431, 433, 440, 442, 445, 446, 459, 460, 469, 479, 481, 485, 486, 494, 504, 514, 516, 524, 527], "wcsprm": 542, "wcsshape": 486, "we": [13, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 65, 83, 87, 88, 89, 91, 95, 101, 133, 175, 201, 204, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 280, 355, 380, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 397, 398, 399, 400, 401, 402, 403, 406, 407, 409, 410, 411, 412, 413, 414, 416, 419, 420, 421, 422, 427, 431, 433, 438, 439, 440, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 500, 502, 503, 504, 515, 522, 523, 525, 527, 530, 541, 544, 554, 575, 578, 579, 580, 581, 582], "weak": [399, 482, 491], "weaker": 286, "weakli": 487, "web": [87, 91, 388, 406, 410, 416, 417, 431, 439, 447, 480], "webpag": [382, 388, 400, 406, 409, 439, 442], "websit": 447, "wedg": 394, "week": [383, 388, 398, 400, 405, 409], "weekli": [386, 389, 393, 394, 472], "wegen": [439, 440], "weigh": [163, 166, 491], "weight": [67, 105, 110, 151, 152, 158, 161, 163, 166, 192, 193, 194, 196, 201, 202, 204, 205, 206, 233, 256, 273, 278, 408, 441, 445, 466, 491, 514, 530], "weighted_chi2_paramet": 466, "weighted_kernel": 161, "welcom": [385, 394, 494], "well": [11, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 67, 83, 87, 91, 105, 110, 115, 117, 122, 123, 131, 192, 196, 198, 202, 204, 214, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 370, 371, 379, 380, 381, 382, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 413, 416, 417, 420, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 439, 440, 441, 445, 446, 451, 452, 458, 461, 466, 468, 472, 474, 477, 481, 482, 483, 484, 485, 486, 487, 489, 493, 494, 498, 502, 503, 504, 514, 515, 516, 527, 530, 531, 575, 576, 578, 580], "went": 420, "were": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 137, 294, 380, 385, 386, 387, 388, 393, 395, 396, 397, 398, 399, 400, 401, 403, 405, 408, 410, 420, 423, 424, 425, 426, 427, 428, 431, 434, 439, 440, 443, 464, 475, 477, 487, 491, 493, 581], "wg": 409, "wggsrvve": 485, "what": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 280, 337, 381, 386, 394, 397, 399, 400, 407, 410, 418, 469, 479, 480, 482, 483, 493, 494, 498, 503, 506, 514, 531, 563, 578, 579, 582], "whatev": [394, 396, 397, 578], "wheel": [397, 447], "when": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 53, 83, 84, 86, 87, 88, 89, 90, 91, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 122, 123, 124, 125, 140, 151, 152, 158, 163, 165, 166, 176, 179, 193, 194, 196, 198, 200, 202, 205, 206, 211, 212, 218, 219, 222, 224, 226, 228, 229, 230, 233, 235, 239, 241, 242, 244, 247, 248, 250, 252, 253, 254, 256, 259, 264, 266, 267, 268, 269, 272, 275, 276, 278, 319, 379, 380, 381, 383, 385, 386, 387, 390, 392, 394, 395, 397, 400, 405, 406, 407, 408, 409, 412, 413, 414, 425, 433, 434, 439, 441, 444, 445, 446, 451, 457, 461, 465, 468, 469, 472, 473, 475, 480, 483, 485, 486, 489, 490, 493, 494, 514, 516, 518, 523, 525, 529, 530, 577, 579, 580, 581, 582], "whenev": [87, 91], "where": [11, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 69, 83, 84, 87, 88, 90, 91, 104, 123, 124, 125, 128, 133, 150, 151, 152, 158, 163, 166, 168, 179, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 207, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 291, 294, 297, 299, 307, 344, 381, 383, 385, 387, 388, 389, 390, 391, 392, 393, 394, 396, 398, 399, 400, 401, 402, 403, 404, 407, 408, 410, 412, 414, 416, 422, 434, 440, 450, 455, 460, 467, 468, 480, 485, 486, 487, 489, 491, 493, 494, 495, 504, 506, 514, 515, 518, 523, 530, 535, 536, 537, 540, 541, 544, 577, 578, 579, 580, 581, 582], "wherea": [386, 394, 397, 578], "whether": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 86, 87, 88, 90, 91, 100, 102, 104, 105, 107, 109, 110, 123, 124, 125, 126, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 179, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 218, 219, 222, 224, 226, 228, 229, 230, 235, 239, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 275, 276, 289, 307, 316, 343, 346, 348, 349, 377, 385, 387, 394, 397, 399, 400, 407, 445, 458, 471, 482, 485, 486, 504, 530, 579, 580], "which": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 43, 56, 57, 59, 67, 70, 72, 77, 80, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 100, 101, 102, 104, 105, 107, 109, 110, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 137, 141, 142, 143, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 173, 174, 179, 180, 190, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 209, 211, 218, 219, 220, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 275, 276, 280, 286, 288, 289, 290, 294, 295, 296, 298, 303, 305, 319, 329, 339, 340, 358, 367, 369, 374, 376, 379, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 408, 409, 410, 411, 412, 414, 415, 417, 421, 422, 423, 425, 426, 427, 428, 431, 434, 440, 442, 445, 447, 450, 451, 452, 455, 458, 459, 460, 461, 463, 466, 467, 468, 469, 472, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 508, 509, 514, 515, 516, 518, 520, 521, 522, 524, 525, 527, 529, 530, 531, 532, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 575, 576, 577, 578, 579, 580, 581], "whichev": [192, 193, 194], "while": [87, 91, 105, 193, 194, 196, 198, 202, 205, 206, 380, 383, 385, 386, 387, 389, 392, 393, 395, 399, 401, 402, 404, 405, 406, 409, 410, 412, 450, 455, 457, 460, 468, 474, 475, 481, 482, 484, 485, 486, 488, 489, 514, 516, 518, 529, 531, 578], "whilst": [381, 490, 498], "whippl": 97, "whirlwind": 498, "white": [295, 369, 370, 465, 475, 483, 488, 506, 531], "whitespac": 325, "who": [406, 479, 506], "whole": [95, 118, 170, 173, 180, 183, 184, 186, 187, 192, 193, 194, 196, 205, 206, 248, 279, 288, 290, 380, 386, 392, 395, 406, 452, 455, 463, 468, 472, 475, 481, 489, 494, 496, 575], "whose": [406, 410, 468, 524, 536], "why": [380, 381, 385, 387, 394, 483, 531], "wide": [387, 406, 407, 421, 440, 453, 464, 577], "wider": [473, 487, 525], "widget": [193, 194, 196, 202, 205, 206, 463, 471, 486, 502, 503], "width": [16, 27, 68, 83, 87, 91, 102, 105, 109, 110, 111, 112, 113, 115, 116, 117, 118, 128, 133, 150, 151, 152, 155, 158, 161, 163, 166, 168, 173, 178, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 221, 224, 225, 234, 236, 237, 247, 249, 260, 261, 263, 265, 271, 273, 275, 370, 371, 396, 403, 441, 456, 457, 459, 460, 461, 463, 465, 466, 467, 468, 469, 471, 472, 475, 479, 480, 481, 484, 485, 486, 487, 489, 494, 495, 502, 503, 504, 525, 527, 528, 529, 530, 531, 535, 536, 537, 539, 540, 541], "width_err": 480, "width_error": 68, "width_min": 201, "width_pix": [192, 193, 194], "widthconfig": 16, "wiki": [34, 83, 88, 431, 496], "wikipedia": [34, 83, 88, 336, 394, 398], "wilei": [135, 144], "wilk": [286, 516, 580], "willing": 383, "wind": [50, 461, 466, 489, 509], "window": [112, 113, 379, 380, 387, 397, 410, 411, 412, 414, 420, 436, 440, 459, 480, 577, 578, 580], "wise": [19, 20, 26, 87, 91, 141, 142, 194, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 408, 433, 447, 461, 463, 514], "wish": [201, 383, 398, 466, 483], "with_bbox": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "with_bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "with_units_from_data": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "withdraw": [390, 391, 392, 395, 402, 404], "withdrawn": [384, 385, 390, 391, 392, 395, 402, 404], "within": [126, 129, 141, 192, 206, 223, 224, 225, 231, 236, 237, 238, 239, 240, 247, 255, 260, 262, 263, 274, 277, 379, 380, 381, 385, 389, 394, 396, 397, 398, 399, 400, 403, 405, 406, 408, 409, 410, 411, 412, 414, 434, 437, 439, 443, 445, 447, 456, 457, 463, 466, 472, 473, 474, 477, 480, 482, 484, 485, 486, 489, 490, 494, 498, 504, 514, 517, 518, 577], "without": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 130, 153, 191, 192, 197, 201, 204, 377, 380, 383, 385, 388, 390, 394, 395, 396, 397, 399, 404, 410, 421, 422, 426, 447, 456, 459, 463, 464, 477, 479, 485, 486, 487, 502, 518, 529, 530, 531, 573, 578, 580], "without_units_for_data": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "wl": [26, 479], "wo": 475, "wobbl": [95, 474, 493], "wobbleregionfind": 433, "wobbleregionsfind": 457, "wolfram": [334, 335], "women": 436, "won": [118, 122, 126, 130, 133, 352, 405, 463, 486, 493, 581], "wong": [423, 447], "wood": [387, 437, 439, 440], "word": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 518], "work": [11, 13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 100, 125, 203, 344, 379, 380, 381, 383, 385, 387, 388, 389, 390, 391, 392, 394, 395, 396, 397, 398, 399, 400, 402, 405, 406, 409, 410, 411, 412, 413, 415, 416, 417, 419, 420, 421, 422, 423, 425, 426, 432, 435, 436, 437, 438, 439, 440, 441, 442, 447, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 518, 528, 530, 542, 544, 550, 566, 572, 573, 578], "workaround": [397, 447], "workflow": [383, 388, 389, 396, 401, 405, 410, 425, 447, 456, 461, 498, 502, 503, 519], "workshop": 389, "workspac": 383, "world": [83, 204, 224, 247, 380, 386, 465, 504, 530], "worst": 383, "worth": [380, 506], "would": [16, 84, 87, 90, 91, 95, 104, 124, 193, 194, 196, 202, 205, 206, 380, 383, 386, 387, 388, 391, 392, 394, 395, 396, 397, 398, 399, 400, 401, 404, 406, 407, 422, 431, 453, 455, 458, 459, 471, 483, 486, 487, 489, 491, 494, 531], "wouldn": 394, "wrap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 198, 259, 315, 394, 424, 447], "wrap_at": 391, "wrap_coord": 198, "wrapper": [56, 248, 259, 319, 394, 395, 422, 425, 506, 518], "write": [11, 15, 16, 26, 82, 86, 87, 88, 91, 100, 101, 102, 105, 107, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 193, 194, 196, 200, 202, 205, 206, 212, 224, 239, 247, 271, 272, 273, 274, 275, 349, 358, 381, 383, 389, 390, 391, 392, 393, 394, 396, 397, 399, 400, 402, 403, 404, 406, 407, 408, 410, 416, 419, 425, 428, 433, 435, 438, 439, 440, 441, 446, 447, 450, 455, 463, 464, 467, 469, 484, 488, 489, 493, 494, 500, 502, 503, 518, 523, 579, 581], "write_arf": 107, "write_bkg": 107, "write_covari": [15, 100, 212, 224, 247], "write_dataset": 15, "write_ds9": 489, "write_model": 15, "write_pha": 107, "write_rmf": 107, "writeabl": 408, "writer": [87, 91, 400, 407], "writeto": [86, 147, 148, 149, 153, 154, 155, 157, 160, 162, 164, 165, 467], "written": [88, 100, 101, 102, 105, 107, 109, 110, 123, 125, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206, 208, 380, 381, 383, 385, 389, 390, 400, 406, 408, 443, 450, 468, 488, 491, 506, 514, 515, 518, 531, 577], "wrong": [380, 429, 443, 444, 445], "wrote": 406, "wrt": [83, 163, 166, 380, 398, 474, 573], "wstat": [105, 110, 300, 301, 392, 419, 437, 438, 451, 455, 456, 458, 461, 465, 475, 481, 491, 514, 577], "wstatcountsstatist": [475, 580], "wt": [26, 479], "wun": 423, "www": [26, 67, 87, 91, 135, 144, 400, 493, 518], "wyatt": [419, 577], "x": [19, 20, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 46, 67, 68, 87, 91, 102, 109, 128, 135, 141, 142, 144, 148, 198, 202, 203, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 289, 295, 296, 299, 310, 311, 312, 314, 318, 320, 325, 334, 369, 372, 373, 380, 381, 385, 387, 388, 389, 394, 405, 409, 412, 414, 453, 458, 459, 465, 468, 475, 477, 478, 480, 483, 484, 486, 491, 494, 504, 512, 518, 535, 536, 578, 580], "x27": [482, 484], "x6bsrp7x": 477, "x86_64": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "x_": 128, "x_0": [193, 194, 196, 202, 205, 206], "x_1": 319, "x_2": 319, "x_3": 319, "x_bkg": 475, "x_edg": 129, "x_high": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "x_i": [193, 194, 196, 202, 205, 206], "x_j": 128, "x_low": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "x_max": [128, 332, 334, 469], "x_min": [128, 332, 334, 469], "x_n": [193, 194, 196, 202, 205, 206], "x_r_0": 237, "x_ref": [128, 469], "x_sigma": 234, "x_stddev": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "x_valu": [211, 483], "xadgtk69": 463, "xarg": 380, "xaxi": [482, 518], "xerr": [450, 477, 491], "xf": 493, "xfail": 380, "xlabel": [381, 445, 461, 474, 477, 491, 494, 510, 511, 512, 535, 572], "xlim": [367, 463, 491, 494, 512], "xmax": [17, 18, 21, 22, 24, 25, 27, 202, 408], "xmin": [17, 18, 21, 22, 24, 25, 27, 202, 408], "xml": [389, 390, 391, 424, 438, 440, 493, 506], "xmltodict": [432, 493], "xp2y2u": 451, "xref": 128, "xspec": [226, 276, 304, 438, 451, 579], "xunit": [457, 544], "xviii": 400, "xx": [391, 406], "xxx": [87, 91, 385, 406], "xxx_by_coord": 486, "xxxx": 518, "xy": [455, 465, 469, 535], "xy_posit": [33, 34, 38], "xytext": 535, "xyz": 409, "y": [19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 46, 68, 87, 91, 141, 142, 148, 198, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 310, 311, 312, 314, 318, 320, 372, 380, 394, 405, 412, 414, 445, 450, 459, 465, 468, 477, 483, 491, 512, 518], "y_high": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "y_low": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "y_stddev": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "y_valu": [211, 483], "yaein6qz": 485, "yaml": [11, 15, 16, 20, 26, 84, 90, 99, 100, 101, 102, 104, 105, 109, 110, 123, 124, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 343, 346, 348, 349, 379, 388, 389, 391, 392, 393, 396, 397, 402, 407, 408, 409, 410, 411, 423, 424, 425, 428, 433, 442, 446, 447, 450, 452, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 503, 504, 517, 575, 576, 577, 578], "yaml_str": [224, 247, 456], "yaxi": [453, 482, 518], "ye": 410, "year": [45, 61, 65, 78, 380, 385, 387, 388, 390, 397, 400, 401, 405, 407, 410, 437, 439, 440, 464, 466, 480, 493, 510, 511, 512, 513], "yearli": [413, 438], "yellow": 370, "yerr": [475, 477], "yet": [89, 379, 380, 383, 385, 387, 394, 397, 400, 401, 447, 448, 453, 456, 502, 582], "yield": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 88, 92, 193, 194, 196, 202, 205, 206, 344, 387, 393, 394, 399, 401, 403, 408, 487, 579, 580, 581], "yk04": [45, 48], "yk04b": 48, "ylabel": [381, 474, 477, 491, 494, 510, 511, 512, 535, 572], "ylim": [367, 451, 461, 491, 494, 510, 512, 551, 560, 561, 562], "ymax": [535, 536], "ymin": [535, 536], "yml": [383, 397, 409, 410, 411, 412, 414, 439, 447], "you": [16, 19, 20, 26, 67, 82, 83, 84, 87, 90, 91, 94, 101, 104, 107, 124, 125, 141, 148, 150, 153, 176, 193, 194, 196, 202, 205, 206, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 286, 379, 380, 381, 382, 383, 385, 387, 390, 394, 397, 398, 409, 410, 411, 412, 413, 414, 415, 416, 417, 420, 421, 422, 431, 439, 440, 441, 447, 451, 452, 453, 455, 456, 457, 458, 460, 461, 463, 465, 467, 468, 471, 473, 474, 475, 477, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 514, 515, 518, 521, 525, 529, 552, 575, 578, 579, 580, 581, 582], "your": [16, 19, 20, 26, 84, 90, 99, 104, 124, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 379, 380, 381, 383, 385, 387, 409, 410, 411, 412, 413, 414, 416, 417, 420, 421, 422, 425, 426, 431, 440, 441, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 513, 518, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 577, 580], "yourself": [578, 579], "yr": [45, 52, 53, 508, 510, 511, 512], "yscale": [461, 570], "yt": 380, "yu": [423, 447], "yunit": [455, 457, 479, 480, 494, 555], "yusifovkucuk2004": [28, 29, 30, 35, 36, 40, 48], "yusifovkucuk2004b": [28, 29, 30, 35, 36, 39, 48], "yve": 439, "ywyrwakr": 477, "yy": 406, "yyyi": 406, "z": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 46, 87, 91, 310, 311, 314, 405, 406, 412, 414, 479, 508, 544], "z_0": 29, "z_high": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "z_low": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "zabalza": 435, "zanin": [439, 440], "zd": 83, "zen": 490, "zen_pnt": 490, "zenith": [450, 464, 490, 493, 494, 495, 523], "zenith_angl": [83, 407, 494, 504], "zenodo": [406, 433, 493], "zero": [52, 53, 67, 87, 91, 100, 102, 105, 109, 110, 133, 141, 150, 151, 152, 155, 158, 163, 179, 193, 194, 196, 202, 205, 206, 251, 273, 275, 319, 325, 337, 380, 424, 427, 442, 447, 480, 485, 486, 491, 581], "zhao": [27, 446], "zhen": [135, 144], "zip": [395, 408, 409, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 512, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "zl": [26, 479], "znfx72b3": 477, "zone": 475, "zsh": 381, "zt": [26, 479], "z\u00e9": 438, "\u00e0": 437, "\u0261\u00e6m\u0259pa\u026a": 518, "\u03b3": [137, 506, 577], "\u03c3": 466}, "titles": ["analysis - High level interface", "astro - Astrophysics", "catalog - Source catalogs", "data - DL3 data and observations", "datasets - Reduced datasets", "estimators - High level estimators", "API reference", "irf - Instrument response functions", "makers - Data reduction", "maps - Sky maps", "modeling - Models and fitting", "scripts - Command line tools", "stats - Statistics", "utils - Utilities", "visualization - Plotting features", "Analysis", "AnalysisConfig", "BurkertProfile", "DMProfile", "DarkMatterAnnihilationSpectralModel", "DarkMatterDecaySpectralModel", "EinastoProfile", "IsothermalProfile", "JFactory", "MooreProfile", "NFWProfile", "PrimaryFlux", "ZhaoProfile", "CaseBattacharya1998", "Exponential", "FaucherKaspi2006", "FaucherKaspi2006VelocityBimodal", "FaucherKaspi2006VelocityMaxwellian", "FaucherSpiral", "LogSpiral", "Lorimer2006", "Paczynski1990", "Paczynski1990Velocity", "ValleeSpiral", "YusifovKucuk2004", "YusifovKucuk2004B", "add_observed_parameters", "add_pulsar_parameters", "add_pwn_parameters", "add_snr_parameters", "make_base_catalog_galactic", "make_catalog_random_positions_cube", "make_catalog_random_positions_sphere", "radial_distributions", "velocity_distributions", "PWN", "Pulsar", "SNR", "SNRTrueloveMcKee", "SimplePulsar", "CATALOG_REGISTRY", "SourceCatalog", "SourceCatalog1LHAASO", "SourceCatalog2FHL", "SourceCatalog2HWC", "SourceCatalog2PC", "SourceCatalog3FGL", "SourceCatalog3FHL", "SourceCatalog3HWC", "SourceCatalog3PC", "SourceCatalog4FGL", "SourceCatalogGammaCat", "SourceCatalogHGPS", "SourceCatalogLargeScaleHGPS", "SourceCatalogObject", "SourceCatalogObject1LHAASO", "SourceCatalogObject2FHL", "SourceCatalogObject2HWC", "SourceCatalogObject2PC", "SourceCatalogObject3FGL", "SourceCatalogObject3FHL", "SourceCatalogObject3HWC", "SourceCatalogObject3PC", "SourceCatalogObject4FGL", "SourceCatalogObjectGammaCat", "SourceCatalogObjectHGPS", "SourceCatalogObjectHGPSComponent", "DataStore", "EventList", "EventListMetaData", "FixedPointingInfo", "GTI", "HDUIndexTable", "Observation", "ObservationFilter", "ObservationMetaData", "ObservationTable", "Observations", "ObservationsEventsSampler", "PointingInfo", "PointingMode", "get_irfs_features", "observatory_locations", "DATASET_REGISTRY", "Dataset", "Datasets", "FluxPointsDataset", "MapDataset", "MapDatasetEventSampler", "MapDatasetMetaData", "MapDatasetOnOff", "OGIPDatasetReader", "OGIPDatasetWriter", "ObservationEventSampler", "SpectrumDataset", "SpectrumDatasetOnOff", "apply_edisp", "create_empty_map_dataset_from_irfs", "create_map_dataset_from_observation", "create_map_dataset_geoms", "split_dataset", "apply_edisp", "split_dataset", "ASmoothMapEstimator", "ESTIMATOR_REGISTRY", "EnergyDependentMorphologyEstimator", "Estimator", "ExcessMapEstimator", "FluxMaps", "FluxMetaData", "FluxPoints", "FluxPointsEstimator", "FluxProfileEstimator", "ImageProfile", "ImageProfileEstimator", "LightCurveEstimator", "ParameterEstimator", "SensitivityEstimator", "TSMapEstimator", "combine_flux_maps", "combine_significance_maps", "compute_lightcurve_discrete_correlation", "compute_lightcurve_doublingtime", "compute_lightcurve_fpp", "compute_lightcurve_fvar", "estimate_exposure_reco_energy", "find_peaks", "find_peaks_in_flux_map", "get_combined_flux_maps", "get_combined_significance_maps", "get_rebinned_axis", "resample_energy_edges", "Background2D", "Background3D", "BackgroundIRF", "EDispKernel", "EDispKernelMap", "EDispMap", "EffectiveAreaTable2D", "EnergyDependentMultiGaussPSF", "EnergyDispersion2D", "FoVAlignment", "IRF", "IRFMap", "IRF_REGISTRY", "PSF3D", "PSFKernel", "PSFKing", "PSFMap", "ParametricPSF", "RadMax2D", "RecoPSFMap", "load_irf_dict_from_file", "AdaptiveRingBackgroundMaker", "DatasetsMaker", "FoVBackgroundMaker", "MAKER_REGISTRY", "Maker", "MapDatasetMaker", "PhaseBackgroundMaker", "ReflectedRegionsBackgroundMaker", "ReflectedRegionsFinder", "RegionsFinder", "RingBackgroundMaker", "SafeMaskMaker", "SpectrumDatasetMaker", "WobbleRegionsFinder", "make_counts_rad_max", "make_edisp_kernel_map", "make_edisp_map", "make_effective_livetime_map", "make_map_background_irf", "make_map_exposure_true_energy", "make_observation_time_map", "make_psf_map", "make_theta_squared_table", "Geom", "HpxGeom", "HpxMap", "HpxNDMap", "LabelMapAxis", "Map", "MapAxes", "MapAxis", "MapCoord", "Maps", "RegionGeom", "RegionNDMap", "TimeMapAxis", "WcsGeom", "WcsMap", "WcsNDMap", "containment_radius", "containment_region", "Covariance", "CovarianceResult", "Fit", "FitResult", "OptimizeResult", "Parameter", "Parameters", "PriorParameter", "PriorParameters", "BrokenPowerLawSpectralModel", "CompoundSpectralModel", "ConstantFluxSpatialModel", "ConstantSpatialModel", "ConstantSpectralModel", "ConstantTemporalModel", "DatasetModels", "DiskSpatialModel", "EBLAbsorptionNormSpectralModel", "EBL_DATA_BUILTIN", "ExpCutoffPowerLaw3FGLSpectralModel", "ExpCutoffPowerLawNormSpectralModel", "ExpCutoffPowerLawSpectralModel", "ExpDecayTemporalModel", "FoVBackgroundModel", "GaussianPrior", "GaussianSpatialModel", "GaussianSpectralModel", "GaussianTemporalModel", "GeneralizedGaussianSpatialModel", "GeneralizedGaussianTemporalModel", "LightCurveTemplateTemporalModel", "LinearTemporalModel", "LogParabolaNormSpectralModel", "LogParabolaSpectralModel", "MODEL_REGISTRY", "MeyerCrabSpectralModel", "Model", "ModelBase", "Models", "NaimaSpectralModel", "PiecewiseNormSpatialModel", "PiecewiseNormSpectralModel", "PointSpatialModel", "PowerLaw2SpectralModel", "PowerLawNormSpectralModel", "PowerLawSpectralModel", "PowerLawTemporalModel", "Prior", "SPATIAL_MODEL_REGISTRY", "SPECTRAL_MODEL_REGISTRY", "ScaleSpectralModel", "Shell2SpatialModel", "ShellSpatialModel", "SineTemporalModel", "SkyModel", "SmoothBrokenPowerLawSpectralModel", "SpatialModel", "SpectralModel", "SuperExpCutoffPowerLaw3FGLSpectralModel", "SuperExpCutoffPowerLaw4FGLDR3SpectralModel", "SuperExpCutoffPowerLaw4FGLSpectralModel", "TEMPORAL_MODEL_REGISTRY", "TemplateNDSpatialModel", "TemplateNDSpectralModel", "TemplateNPredModel", "TemplatePhaseCurveTemporalModel", "TemplateSpatialModel", "TemplateSpectralModel", "TemporalModel", "UniformPrior", "create_cosmic_ray_spectral_model", "create_crab_spectral_model", "create_fermi_isotropic_diffuse_model", "integrate_spectrum", "read_hermes_cube", "scale_plot_flux", "read_hermes_cube", "select_nested_models", "stat_profile_ul_scipy", "CashCountsStatistic", "TimmerKonig_lightcurve_simulator", "WStatCountsStatistic", "cash", "cash_sum_cython", "compute_chisq", "compute_flux_doubling", "compute_fpp", "compute_fvar", "cstat", "discrete_correlation", "f_cash_root_cython", "get_wstat_gof_terms", "get_wstat_mu_bkg", "norm_bounds_cython", "structure_function", "wstat", "hierarchical_clustering", "standard_scaler", "D_SUN_TO_GALACTIC_CENTER", "cartesian", "fov_to_sky", "galactic", "motion_since_birth", "polar", "sky_to_fov", "velocity_glon_glat", "HDULocation", "LazyFitsData", "earth_location_from_dict", "trapz_loglog", "ScaledRegularGridInterpolator", "interpolate_profile", "interpolation_scale", "BACKEND_DEFAULT", "METHOD_DEFAULT", "METHOD_KWARGS_DEFAULT", "N_JOBS_DEFAULT", "POOL_KWARGS_DEFAULT", "multiprocessing_manager", "run_multiprocessing", "InverseCDFSampler", "draw", "get_random_state", "normalize", "pdf", "sample_powerlaw", "sample_sphere", "sample_sphere_distance", "sample_times", "compound_region_to_regions", "make_concentric_annulus_sky_regions", "make_orthogonal_rectangle_sky_regions", "region_to_frame", "regions_to_compound_region", "from_yaml", "get_images_paths", "make_path", "read_yaml", "recursive_merge_dicts", "to_yaml", "write_yaml", "hstack_columns", "table_row_to_dict", "table_standardise_units_copy", "table_standardise_units_inplace", "Checker", "assert_quantity_allclose", "assert_skycoord_allclose", "assert_time_allclose", "mpl_plot_check", "requires_data", "requires_dependency", "absolute_time", "time_ref_from_dict", "time_ref_to_dict", "time_relative_to_ref", "standardise_unit", "unit_from_fits_image_hdu", "MapPanelPlotter", "add_colorbar", "annotate_heatmap", "colormap_hess", "colormap_milagro", "plot_contour_line", "plot_distribution", "plot_heatmap", "plot_map_rgb", "plot_npred_signal", "plot_spectrum_datasets_off_regions", "plot_theta_squared_table", "Dependencies", "Developer How To", "Documentation How To", "Developer guide", "How to contribute to Gammapy", "PIGs", "PIG 1 - PIG purpose and guidelines", "PIG 2 - Organization of low level analysis code", "PIG 3 - Plan for dropping Python 2.7 support", "PIG 4 - Setup for tutorial notebooks and data", "PIG 5 - Gammapy 1.0 roadmap", "PIG 6 - CTA observation handling", "PIG 7 - Models", "PIG 8 - Datasets", "PIG 9 - Event sampling", "PIG 10 - Regions", "PIG 11 - Light curves", "PIG 12 - High level interface", "PIG 13 - Gammapy dependencies and distribution", "PIG 14 - Uncertainty estimation", "PIG 16 - Gammapy package structure", "PIG 18 - Documentation", "PIG 19 - Gammapy package structure follow up", "PIG 20 - Global Model API", "PIG 21 - Models improvements", "PIG 22 - Unified flux estimators API", "PIG 23 - Gammapy release cycle and version numbering", "PIG 24 - Authorship policy", "PIG 25 - Metadata container for Gammapy", "PIG 26 - Model Priors API", "How to make a Gammapy release", "Project setup", "Virtual Environments", "Getting started", "Installation", "Recommended Setup", "Troubleshooting", "Using Gammapy", "Gammapy", "Release notes", "0.1 (Aug 25, 2014)", "0.10 (Jan 28, 2019)", "0.11 (Mar 29, 2019)", "0.12 (May 30, 2019)", "0.13 (Jul 26, 2019)", "0.14 (Sep 30, 2019)", "0.15 (Dec 3, 2019)", "0.16 (Feb 1, 2020)", "0.17 (Apr 1, 2020)", "0.18 (Nov 4th, 2020)", "0.18.1 (Nov 6th, 2020)", "0.18.2 (Nov 19th, 2020)", "0.19 (Nov 22nd, 2021)", "0.2 (Apr 13, 2015)", "0.20 (May 12th, 2022)", "0.20.1 (June 16th, 2022)", "0.3 (Aug 13, 2015)", "0.4 (Apr 20, 2016)", "0.5 (Nov 22, 2016)", "0.6 (Apr 28, 2017)", "0.7 (Feb 28, 2018)", "0.8 (Sep 23, 2018)", "0.9 (Nov 29, 2018)", "1.0 (November 10th, 2022)", "1.0.1 (March 14th, 2023)", "1.0.2 (December 6th, 2023)", "1.1 (June 13th 2023)", "1.2 (February 29th 2024)", "1.3 (November 26th, 2024)", "2.0 (unreleased)", "Computation times", "Point source sensitivity", "Account for spectral absorption due to the EBL", "Spectral analysis of extended sources", "Flux point fitting", "Computation times", "Spectral analysis", "Spectral analysis with the HLI", "Spectral analysis with energy-dependent directional cuts", "1D spectrum simulation", "Source detection and significance maps", "2D map fitting", "Ring background map", "Computation times", "3D detailed analysis", "Multi instrument joint 3D and 1D analysis", "Basic image exploration and fitting", "Morphological energy dependence estimation", "Event sampling", "Sample a source with energy-dependent temporal evolution", "Flux Profile Estimation", "Computation times", "3D map simulation", "Light curves", "Light curves for flares", "Simulating and fitting a time varying source", "Pulsar analysis", "Computation times", "Time resolved spectroscopy estimator", "Estimation of time variability in a lightcurve", "Dark matter spatial and spectral models", "Source catalogs", "Datasets - Reduced data, IRFs, models", "Estimators", "Fitting", "Using Gammapy IRFs", "Makers - Data reduction", "Maps", "Mask maps", "Modelling", "Models", "Observational clustering", "Priors", "Computation times", "CTAO with Gammapy", "Fermi-LAT with Gammapy", "HAWC with Gammapy", "H.E.S.S. with Gammapy", "Computation times", "Tutorials", "Computation times", "Survey Map Script", "Computation times", "High level interface", "Low level API", "Data structures", "Computation times", "Dark matter", "Astrophysics", "Astrophysical source population models", "Astrophysical source models", "Pulsar Source Models", "Pulsar Wind Nebula Source Models", "Supernova Remnant Models", "Source catalogs", "Datasets (DL4)", "Data access and selection (DL3)", "Estimators (DL4 to DL5, and DL6)", "High Level Analysis Interface", "How To", "User guide", "Effective area", "Background", "Energy Dispersion", "Instrument Response Functions (DL3)", "Point Spread Function", "FoV background", "Data reduction (DL3 to DL4)", "Reflected regions background", "Ring background", "HEALPix-based maps", "Sky maps (DL4)", "RegionGeom and RegionNDMap", "Model gallery", "Computation times", "Constant spatial model", "Disk spatial model", "Gaussian spatial model", "Generalized gaussian spatial model", "Piecewise norm spatial model", "Point spatial model", "Shell spatial model", "Shell2 spatial model", "Template spatial model", "Computation times", "EBL absorption spectral model", "Broken power law spectral model", "Compound spectral model", "Constant spectral model", "Exponential cutoff power law spectral model", "Exponential cutoff power law spectral model used for 3FGL", "Exponential cutoff power law norm spectral model", "Gaussian spectral model", "Log parabola spectral model", "Log parabola spectral norm model", "Naima spectral model", "Piecewise norm spectral model", "Power law spectral model", "Power law 2 spectral model", "Power law norm spectral model", "Smooth broken power law spectral model", "Super exponential cutoff power law model used for 3FGL", "Super Exponential Cutoff Power Law Model used for 4FGL-DR3", "Super Exponential Cutoff Power Law Model used for 4FGL-DR1 (and DR2)", "Template spectral model", "Computation times", "Constant temporal model", "ExpDecay temporal model", "Gaussian temporal model", "Generalized Gaussian temporal model", "Linear temporal model", "PowerLaw temporal model", "Sine temporal model", "Phase curve temporal model", "Light curve temporal model", "Computation times", "Modeling and Fitting (DL4 to DL5)", "Gammapy analysis workflow and package structure", "Glossary and references", "Command line tools", "Fit statistics", "Statistical utility functions", "Derivation of the WStat formula", "Utility functions", "Visualization"], "titleterms": {"": [420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 456, 468, 496, 502], "0": [389, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 448], "1": [385, 389, 408, 418, 419, 426, 427, 429, 434, 442, 443, 444, 445, 446, 447, 491], "10": [394, 418, 420], "10th": 442, "11": [395, 418, 421], "12": [396, 418, 422], "12th": 433, "13": [397, 418, 423, 432, 435], "13th": 445, "14": [398, 418, 424], "14th": 443, "15": [418, 425], "16": [399, 418, 426], "16th": 434, "17": [418, 427], "18": [400, 418, 428, 429, 430], "19": [401, 418, 431], "19th": 430, "1d": [456, 458, 464, 472, 473, 498], "1dc": 493, "2": [386, 387, 408, 418, 430, 432, 444, 446, 448, 491, 557], "20": [402, 418, 433, 434, 436], "2014": 419, "2015": [432, 435], "2016": [436, 437], "2017": 438, "2018": [439, 440, 441], "2019": [420, 421, 422, 423, 424, 425], "2020": [426, 427, 428, 429, 430], "2021": 431, "2022": [433, 434, 442], "2023": [443, 444, 445], "2024": [446, 447], "21": 403, "2155": 482, "22": [404, 437], "22nd": 431, "23": [405, 440], "24": 406, "25": [407, 419], "26": [408, 423], "26th": 447, "28": [420, 438, 439], "29": [421, 441], "29th": 446, "2d": [460, 498], "3": [387, 408, 418, 425, 435, 447], "30": [422, 424], "304": 482, "32": 380, "3955": 408, "3d": [463, 464, 471, 472, 498], "3fgl": [549, 560], "3fhl": 464, "4": [388, 418, 436], "4122": 408, "4fgl": [561, 562], "4th": 428, "5": [389, 418, 437], "6": [390, 418, 438], "64": 380, "6th": [429, 444], "7": [387, 391, 418, 439], "8": [392, 418, 440], "9": [393, 418, 441], "A": [455, 482], "As": 524, "In": 381, "ON": [452, 457, 464], "On": 458, "The": [386, 410, 464, 466, 482, 483, 491, 515, 527], "To": [380, 381, 400, 518], "about": 491, "abov": 466, "absolute_tim": 361, "absorpt": [403, 451, 544], "abstract": [385, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "accept": 383, "access": [459, 481, 482, 486, 495, 515], "accessor": 530, "account": 451, "action": [380, 400], "ad": 486, "adapt": 459, "adaptiveringbackgroundmak": 168, "add": [391, 488], "add_colorbar": 368, "add_observed_paramet": 41, "add_pulsar_paramet": 42, "add_pwn_paramet": 43, "add_snr_paramet": 44, "addit": [403, 408, 524, 576], "aeff_2d": 520, "against": 457, "aim": 488, "algorithm": 477, "alia": 403, "all": 473, "along": 407, "altern": [388, 391, 393, 394, 395, 396, 397, 398, 400, 401, 404, 407], "amplitud": [408, 491], "an": [380, 450, 467, 468, 481, 487], "anaconda": 413, "analysi": [0, 11, 15, 386, 389, 450, 452, 455, 456, 457, 458, 463, 464, 465, 472, 475, 498, 502, 514, 517, 576], "analysisconfig": 16, "angl": [520, 521, 522, 524], "angular": 531, "annihil": 479, "annotate_heatmap": 369, "api": [6, 380, 381, 402, 404, 407, 408, 442, 445, 446, 447, 482, 498, 503], "apply_edisp": [111, 116], "approach": [395, 452, 453, 456, 458, 459, 460, 461, 464, 467, 468, 469, 471, 472, 473, 474, 477, 478, 483, 487, 488, 490, 502, 503], "apr": [427, 432, 436, 438], "arbitrari": 407, "area": [484, 493, 520], "argument": [380, 394], "arm": 508, "asmoothmapestim": 118, "assert": 380, "assert_quantity_allclos": 355, "assert_skycoord_allclos": 356, "assert_time_allclos": 357, "assess": [463, 483], "assign": [473, 488], "astro": [1, 506, 509], "astronomi": 395, "astrophys": [1, 507, 508, 509], "astropi": [380, 405], "asymmetr": 484, "attribut": [380, 381, 391], "aug": [419, 435], "author": 406, "authorship": 406, "avail": 480, "ax": [486, 531], "axi": [380, 523], "backend_default": 322, "background": [391, 395, 399, 402, 408, 461, 466, 467, 485, 488, 493, 494, 502, 521, 525, 526, 527, 528, 579], "background2d": 147, "background3d": 148, "backgroundirf": 149, "backgroundirfmodel": 391, "backgroundmodel": 391, "backport": 380, "base": [404, 407, 529], "basic": [465, 486], "bayesian": 478, "between": 402, "bin": [395, 450, 466, 531], "binder": 410, "bit": 380, "bkg_2d": 521, "bkg_3d": 521, "block": 478, "boundari": 487, "branch": 409, "break": 380, "broken": [381, 545, 559], "brokenpowerlawspectralmodel": 218, "bsd": 380, "bug": [433, 442, 445, 446, 447], "bugfix": 409, "build": [381, 383, 410, 472, 473], "built": 575, "bullet": 381, "bundl": 380, "burkertprofil": 17, "butterfli": 503, "call": 391, "candid": [409, 459], "caplog": 380, "cartesian": 308, "case": [386, 390, 408, 581], "casebattacharya1998": 28, "cash": [291, 579, 580], "cash_sum_cython": 292, "cashcountsstatist": 288, "catalog": [2, 480, 487, 488, 504, 513], "catalog_registri": 55, "caveat": 579, "cell": 380, "certif": 383, "cff": 406, "chain": [455, 457], "chang": [380, 401, 442, 445, 446, 447], "changelog": 400, "character": 478, "check": [11, 380, 381, 415, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "checker": 354, "chi": 466, "choos": 381, "citat": 406, "class": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 380, 381, 390, 391, 404, 407, 503, 524, 580], "clean": 399, "cli": 578, "click": 380, "clobber": 380, "clumpi": 506, "cluster": [13, 490], "code": [380, 381, 386, 389, 410], "codemeta": 406, "collect": 406, "colormap": 583, "colormap_hess": 370, "colormap_milagro": 371, "combin": [488, 515], "combine_flux_map": 134, "combine_significance_map": 135, "command": [11, 380, 578], "common": 482, "compar": [457, 472], "compound": [489, 546], "compound_region_to_region": 338, "compoundspectralmodel": 219, "comput": [449, 450, 454, 455, 456, 461, 462, 465, 470, 476, 483, 492, 497, 499, 501, 503, 505, 533, 543, 564, 574], "compute_chisq": 293, "compute_flux_doubl": 294, "compute_fpp": 295, "compute_fvar": 296, "compute_lightcurve_discrete_correl": 136, "compute_lightcurve_doublingtim": 137, "compute_lightcurve_fpp": 138, "compute_lightcurve_fvar": 139, "conda": 411, "confer": 406, "confid": 483, "config": [11, 460, 461, 578], "configur": [456, 463, 469, 472, 482, 502, 576], "constant": [534, 547, 565], "constantfluxspatialmodel": 220, "constantspatialmodel": 221, "constantspectralmodel": 222, "constanttemporalmodel": 223, "contain": 407, "containment_radiu": 207, "containment_region": 208, "content": [481, 531], "context": [452, 453, 455, 456, 457, 458, 459, 460, 461, 464, 466, 467, 469, 471, 472, 473, 474, 477, 478, 487, 490, 491, 502, 503], "contigu": 486, "continu": 410, "contour": 483, "contribut": [383, 406, 488], "contributor": [406, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "conveni": 392, "convent": 380, "convers": [380, 482], "convert": 380, "coordin": [13, 380, 391, 521, 531], "correct": 381, "correl": 461, "count": [482, 488, 494, 514, 580], "covari": [209, 483], "covarianceresult": 210, "creat": [452, 455, 460, 461, 468, 481, 482, 484, 486, 487, 503, 531], "create_cosmic_ray_spectral_model": 279, "create_crab_spectral_model": 280, "create_empty_map_dataset_from_irf": 112, "create_fermi_isotropic_diffuse_model": 281, "create_map_dataset_from_observ": 113, "create_map_dataset_geom": 114, "creation": [452, 456, 473], "cstat": 297, "cta": [390, 493], "ctao": 493, "cube": [386, 486, 498], "cumul": 452, "current": 405, "curv": [395, 472, 473, 474, 482, 572, 573], "custom": [489, 491, 575], "cut": [453, 457], "cutoff": [548, 549, 550, 560, 561, 562], "cutout": 486, "cycl": 405, "cython": [405, 410], "d_sun_to_galactic_cent": 307, "dark": [479, 506], "darkmatt": [1, 506], "darkmatterannihilationspectralmodel": 19, "darkmatterdecayspectralmodel": 20, "data": [3, 8, 380, 386, 388, 389, 395, 407, 410, 451, 452, 455, 456, 457, 463, 464, 466, 469, 472, 473, 475, 477, 481, 485, 486, 495, 498, 502, 503, 504, 515, 526, 578, 579], "dataflow": 407, "dataset": [4, 11, 99, 100, 380, 389, 392, 401, 402, 407, 450, 452, 456, 457, 460, 461, 463, 464, 468, 472, 473, 474, 481, 482, 483, 485, 487, 488, 491, 495, 502, 503, 514], "dataset_registri": 98, "datasetmodel": 224, "datasetsmak": 169, "datastor": [82, 493, 503], "dco": [383, 406], "deal": 381, "dec": 425, "decai": 479, "decemb": 444, "decis": [385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "default": 391, "defin": [450, 452, 455, 457, 465, 467, 468, 472, 473, 487, 503, 531], "definit": [406, 472, 526], "depend": [379, 397, 403, 433, 457, 466, 468, 489], "deprec": [380, 405], "deriv": 581, "detail": [387, 463], "detect": [401, 459, 465, 523], "detector": 521, "develop": [380, 382, 383, 387], "diagram": 390, "differ": [464, 486, 582], "diffus": 494, "dilat": 487, "direct": 457, "discrete_correl": 298, "discuss": 395, "disk": [456, 468, 502, 503, 535], "diskspatialmodel": 225, "dispers": [484, 493, 494, 522], "dissolv": 399, "distribut": [397, 496, 508], "dl3": [3, 464, 496, 515, 523, 526], "dl4": [484, 514, 516, 526, 530, 575], "dl5": [516, 575], "dl6": 516, "dmprofil": 18, "do": 380, "doc": 410, "docstr": 381, "document": [381, 383, 389, 400, 446, 447], "doubl": 478, "download": [11, 410], "downsampl": 531, "dr1": [496, 562], "dr2": 562, "dr3": 561, "draw": 330, "driven": 578, "drop": 387, "due": 451, "durat": 485, "e": 496, "each": 466, "earli": 383, "earth_location_from_dict": 317, "ebl": [451, 544], "ebl_data_builtin": 227, "eblabsorptionnormspectralmodel": 226, "edg": 516, "edisp": 484, "edisp_2d": 522, "edispkernel": 150, "edispkernelmap": 151, "edispmap": 152, "effect": [484, 485, 493, 520], "effectiveareatable2d": 153, "einastoprofil": 21, "elaps": 582, "empti": 481, "encourag": 491, "end": 380, "energi": [403, 450, 457, 466, 468, 484, 487, 489, 493, 494, 516, 520, 521, 522, 524], "energydependentmorphologyestim": 120, "energydependentmultigausspsf": 154, "energydispersion2d": 155, "environ": 411, "eros": 487, "error": [483, 580], "estim": [5, 121, 398, 401, 404, 407, 456, 459, 466, 469, 472, 477, 478, 482, 485, 516, 526, 527, 580], "estimate_exposure_reco_energi": 140, "estimator_registri": 119, "evalu": [391, 392, 393], "event": [389, 393, 467, 468, 475, 486, 493, 494, 496, 504, 515, 523], "eventlist": 83, "eventlistmetadata": 84, "evolut": 468, "exampl": [410, 491, 514, 516, 517, 525, 526, 527, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 579], "excess": [404, 452, 461, 478, 580], "excessmapestim": 122, "exclus": [455, 456, 461, 487, 502], "execut": 578, "exemplari": 408, "exercis": [450, 453, 455, 458, 463, 465, 467, 468, 474, 477, 493, 494, 495, 496, 504], "exist": 386, "expcutoffpowerlaw3fglspectralmodel": 228, "expcutoffpowerlawnormspectralmodel": 229, "expcutoffpowerlawspectralmodel": 230, "expdecai": 566, "expdecaytemporalmodel": 231, "expect": 523, "explor": [452, 456, 465, 498], "exponenti": [29, 453, 548, 549, 550, 560, 561, 562], "expos": 391, "exposur": [484, 494], "extend": [452, 467], "extens": [381, 451], "extern": 380, "extra": 410, "extract": [461, 472, 473, 474], "extrapol": [380, 563], "f_cash_root_cython": 299, "factor": 479, "factori": 486, "factoris": 523, "faucherkaspi2006": 30, "faucherkaspi2006velocitybimod": 31, "faucherkaspi2006velocitymaxwellian": 32, "faucherspir": 33, "favor": 408, "featur": [14, 405, 409, 442, 445, 446, 447, 482], "feb": [426, 439], "februari": 446, "fermi": [464, 494], "fermist": 506, "file": [381, 406, 456, 460, 461, 464, 493, 502, 515, 531], "fill": [486, 531], "filter": 473, "final": [385, 409, 456, 581], "find_peak": 141, "find_peaks_in_flux_map": 142, "finder": 527, "first": [409, 456], "fit": [10, 13, 211, 389, 395, 451, 452, 453, 455, 456, 457, 460, 463, 464, 465, 471, 474, 483, 487, 491, 494, 502, 503, 531, 575, 579, 580, 581], "fitresult": 212, "fix": [380, 433, 442, 445, 446, 447], "fixedpointinginfo": 85, "fixtur": 380, "flare": 473, "float": 380, "flux": [404, 408, 450, 451, 453, 455, 456, 464, 469, 479, 480, 482, 502, 503, 504, 516], "fluxestim": 404, "fluxmap": [123, 404, 482], "fluxmetadata": 124, "fluxpoint": [125, 482], "fluxpointscollect": 404, "fluxpointsdataset": [101, 392, 481], "fluxpointsestim": [126, 516], "fluxprofileestim": 127, "fold": 391, "folder": 410, "follow": 401, "format": [380, 381, 582], "formula": 581, "forward": 391, "found": 578, "fov": [485, 525], "fov_to_ski": 309, "fovalign": 156, "fovbackgroundmak": [170, 525], "fovbackgroundmodel": 232, "fraction": 478, "freez": [405, 409, 488], "from": [380, 473, 486, 487, 488, 531], "from_yaml": 343, "fulli": 482, "function": [1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 380, 381, 493, 520, 521, 522, 523, 524, 580, 582], "further": [395, 451, 579], "galact": [310, 494], "galactocentr": 508, "galleri": [380, 381, 532], "gamlik": 506, "gamma": [395, 479], "gammapi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 380, 383, 386, 389, 397, 399, 400, 401, 405, 406, 407, 409, 410, 416, 417, 484, 493, 494, 495, 496, 506, 509, 513, 514, 515, 516, 517, 523, 525, 526, 527, 530, 575, 576, 582], "gaussian": [536, 537, 551, 567, 568], "gaussianprior": 233, "gaussianspatialmodel": 234, "gaussianspectralmodel": 235, "gaussiantemporalmodel": 236, "gener": [380, 386, 390, 395, 406, 407, 516, 537, 568], "generalist": 404, "generalizedgaussianspatialmodel": 237, "generalizedgaussiantemporalmodel": 238, "geom": 191, "geometri": [452, 465, 472, 473, 486, 487, 502, 503, 529, 531], "get": [383, 400, 412, 451, 460, 461, 486, 507, 508, 509, 515, 530], "get_combined_flux_map": 143, "get_combined_significance_map": 144, "get_images_path": 344, "get_irfs_featur": 96, "get_random_st": 331, "get_rebinned_axi": 145, "get_wstat_gof_term": 300, "get_wstat_mu_bkg": 301, "github": 380, "given": 488, "global": 402, "glossari": 577, "good": 581, "gpl": 380, "group": 490, "gti": [86, 515], "guid": [382, 519], "guidelin": [381, 385, 386, 400], "h": 496, "halv": 478, "handl": [380, 389, 390, 391, 402, 406, 485, 582], "have": [388, 390, 395, 396, 404], "hawc": [464, 495], "hduindext": 87, "hduloc": 315, "healpix": 529, "help": 415, "helper": 392, "hess": 464, "hgp": 480, "hierarch": 490, "hierarchi": 407, "hierarchical_clust": 305, "high": [0, 5, 389, 396, 502, 517], "hli": 456, "how": [380, 381, 383, 400, 409, 486, 518], "hpxgeom": 192, "hpxmap": 193, "hpxndmap": 194, "hstack_column": 350, "i": [380, 383, 385, 469], "idea": 390, "imag": [381, 386, 394, 399, 459, 465, 486, 498], "imageprofil": 128, "imageprofileestim": 129, "implement": [390, 391, 400, 406, 408, 489, 491], "import": [380, 471], "improv": [391, 403, 433, 442, 445, 446, 447], "inbuilt": 484, "includ": [381, 491], "index": [486, 491, 515], "info": [11, 380], "inform": [406, 480, 491, 522], "infrastructur": 447, "input": [380, 407, 459], "inspect": 503, "instal": [400, 412, 413, 415], "instrument": [7, 464, 523], "integr": [13, 410, 450], "integrate_spectrum": 282, "interact": 402, "interest": 466, "interfac": [0, 389, 391, 396, 502, 517, 530], "intern": 482, "interpol": [13, 380, 486], "interpolate_profil": 320, "interpolation_scal": 321, "interv": 473, "intrins": 451, "introduc": [391, 399, 401, 403, 404, 469], "introduct": [391, 394, 395, 397, 398, 400, 404, 406, 407, 450, 455, 457, 465, 475, 479, 480, 481, 485, 486, 493, 494, 495, 496, 498, 504, 506, 508, 509, 579], "inversecdfsampl": 329, "ipython": 416, "irf": [7, 157, 389, 407, 450, 481, 484, 493, 523], "irf_registri": 159, "irfmap": 158, "isothermalprofil": 22, "isotrop": 494, "issu": [415, 447], "iter": 486, "j": 479, "jan": 420, "jfactori": 23, "joint": [463, 464, 514], "json": 406, "jul": 423, "june": [434, 445], "jupyt": [380, 412, 414, 416], "kei": 482, "kernel": 484, "known": 447, "labelmapaxi": [195, 486], "lat": [464, 494], "latest": 493, "law": [453, 545, 548, 549, 550, 556, 557, 558, 559, 560, 561, 562], "lazi": 392, "lazyfitsdata": 316, "lc": 472, "let": 468, "level": [0, 5, 386, 389, 396, 502, 503, 517], "li": 475, "licens": 380, "light": [395, 472, 473, 474, 482, 573], "lightcurv": [395, 467, 474, 478, 480], "lightcurveestim": [130, 516], "lightcurvetemplatetemporalmodel": 239, "like": [467, 482], "likelihood": 581, "limit": 390, "line": [11, 380, 578], "linear": 569, "lineartemporalmodel": 240, "link": 381, "list": [381, 391, 392, 393, 394, 395, 396, 397, 467, 473, 480, 486, 487, 488, 489, 504, 515], "literatur": 457, "livetim": 485, "load": [392, 450, 451, 453, 455, 457, 480, 482, 488, 495], "load_irf_dict_from_fil": 167, "locat": 380, "log": [11, 380, 453, 552, 553], "logparabolanormspectralmodel": 241, "logparabolaspectralmodel": 242, "logspir": 34, "long": 406, "loop": [452, 485, 503], "lorimer2006": 35, "low": [386, 503], "lt": 405, "ma": 475, "mai": [422, 433], "maintain": [387, 406], "mainten": 389, "major": 409, "make": [380, 383, 409, 465, 468, 475, 503], "make_base_catalog_galact": 45, "make_catalog_random_positions_cub": 46, "make_catalog_random_positions_spher": 47, "make_concentric_annulus_sky_region": 339, "make_counts_rad_max": 182, "make_edisp_kernel_map": 183, "make_edisp_map": 184, "make_effective_livetime_map": 185, "make_map_background_irf": 186, "make_map_exposure_true_energi": 187, "make_observation_time_map": 188, "make_orthogonal_rectangle_sky_region": 340, "make_path": 345, "make_psf_map": 189, "make_theta_squared_t": 190, "maker": [8, 172, 401, 407, 452, 473, 485, 502, 503, 525, 526, 527], "maker_registri": 171, "mamba": 413, "manag": [389, 413], "manual": [487, 490], "map": [9, 196, 200, 386, 389, 390, 459, 460, 461, 464, 465, 471, 475, 479, 484, 486, 487, 488, 500, 504, 516, 529, 530, 531], "mapax": 197, "mapaxi": 198, "mapcoord": [199, 530], "mapdataset": [102, 392, 463, 467, 481, 495, 514], "mapdataseteventsampl": [103, 393], "mapdatasetmak": [173, 526], "mapdatasetmetadata": 104, "mapdatasetonoff": [105, 392], "mappanelplott": 367, "mar": 421, "march": 443, "mask": [394, 455, 456, 461, 481, 487, 502], "materi": 406, "matter": [479, 506], "measur": 579, "meet": 389, "messag": 380, "met": 582, "metadata": [406, 407], "method": [381, 392, 393, 408, 478, 486, 516, 530], "method_default": 323, "method_kwargs_default": 324, "meyercrabspectralmodel": 244, "miniconda": 413, "minor": 401, "mission": 582, "model": [10, 245, 247, 389, 391, 399, 402, 403, 407, 408, 451, 452, 455, 456, 457, 460, 463, 464, 465, 467, 468, 472, 473, 474, 477, 479, 480, 481, 483, 488, 489, 491, 493, 502, 503, 504, 508, 509, 510, 511, 512, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 579], "model_registri": 243, "modelbas": 246, "modif": 487, "modifi": [380, 486, 489], "modul": [4, 5, 8, 10, 13], "mooreprofil": 24, "morpholog": 466, "morphologi": 489, "motion_since_birth": 311, "motiv": 408, "mpl_plot_check": 358, "multi": 464, "multipl": [467, 488, 491, 514], "multiprocessing_manag": 327, "n_jobs_default": 325, "naima": 554, "naimaspectralmodel": 248, "name": [380, 391, 523], "nebula": 511, "new": [380, 391, 395, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 473], "next": [453, 455, 456, 459, 465, 472, 493, 495, 496, 502, 504], "nfwprofil": 25, "night": 472, "non": [380, 486, 531], "norm": [403, 489, 538, 550, 553, 555, 558], "norm_bounds_cython": 302, "normal": [332, 502], "notat": 580, "note": [380, 418, 455, 482, 579], "notebook": [11, 380, 388, 416], "nov": [428, 429, 430, 431, 437, 441], "novemb": [442, 447], "now": 395, "nuisanc": 408, "number": [380, 405, 523], "numpi": 405, "o": 469, "object": [380, 381, 390, 402, 460, 461, 467, 468, 480, 482, 490], "observ": [3, 88, 92, 389, 390, 451, 455, 456, 465, 467, 468, 472, 473, 485, 490, 502, 503], "observationeventsampl": 108, "observationfilt": 89, "observationmetadata": 90, "observationseventssampl": 93, "observationt": 91, "observatory_loc": 97, "obtain": [450, 466, 474, 490], "off": [453, 455, 458, 464], "offset": [520, 521, 522, 524], "ogipdatasetread": 106, "ogipdatasetwrit": 107, "old": 410, "one": 482, "onto": 486, "open": 475, "oper": [486, 487], "optimizeresult": 213, "option": [379, 397, 483], "org": 410, "organ": [386, 395], "origin": [380, 383], "other": [380, 381, 390, 410, 413, 506], "outlin": 408, "outlook": [392, 393, 394, 396, 397, 399, 400, 401, 404], "output": 380, "over": 475, "overview": [400, 412, 466, 493, 495, 525, 527, 528], "overwrit": 380, "own": 578, "packag": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 399, 401, 410, 413, 433, 498, 506, 507, 576], "paczynski1990": 36, "paczynski1990veloc": 37, "panel": 583, "paper": 389, "parabola": [453, 552, 553], "parallel": [13, 392], "paramet": [214, 215, 391, 403, 408, 456, 466, 483, 488, 489, 502], "parameterestim": 131, "parametr": 391, "parametricpsf": 164, "pdf": 333, "perform": [393, 452, 493, 503], "person": 406, "perspect": 387, "phase": [475, 572], "phasebackgroundmak": 174, "phasogram": 475, "piecewis": [538, 555], "piecewisenormspatialmodel": 249, "piecewisenormspectralmodel": 250, "pig": [384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "pip": 413, "pixel": [380, 394, 487], "pk": 482, "plan": 387, "plot": [14, 380, 451, 455, 456, 465, 466, 469, 486, 488, 503, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 583], "plot_contour_lin": 372, "plot_distribut": 373, "plot_heatmap": 374, "plot_map_rgb": 375, "plot_npred_sign": 376, "plot_spectrum_datasets_off_region": 377, "plot_theta_squared_t": 378, "png": 381, "point": [381, 408, 450, 451, 453, 455, 456, 464, 465, 467, 478, 480, 482, 493, 502, 503, 504, 516, 524, 539], "pointinginfo": 94, "pointingmod": 95, "pointspatialmodel": 251, "poisson": 579, "polar": 312, "polici": 406, "pool_kwargs_default": 326, "popul": [1, 508], "posit": [408, 491, 522], "possibl": 406, "post": 409, "power": [453, 545, 548, 549, 550, 556, 557, 558, 559, 560, 561, 562], "powerlaw": [453, 570], "powerlaw2spectralmodel": 252, "powerlawnormspectralmodel": 253, "powerlawspectralmodel": 254, "powerlawtemporalmodel": 255, "precis": 393, "predict": 514, "prepar": [395, 405, 450, 452, 468, 503], "prerequisit": [452, 453, 455, 456, 457, 458, 460, 464, 466, 467, 468, 469, 471, 472, 473, 474, 478, 483, 487, 488, 491, 502, 503], "pretti": 480, "primaryflux": 26, "print": 480, "prior": [256, 408, 491], "priorparamet": [216, 217], "produc": 495, "product": [479, 484], "profil": [451, 469, 479, 581], "project": [389, 410], "propag": 407, "propos": [388, 390, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 404, 407, 452, 453, 456, 458, 459, 460, 461, 464, 467, 468, 469, 471, 472, 473, 474, 477, 478, 483, 487, 488, 490, 502, 503], "psf": [484, 494, 524], "psf3d": 160, "psf_tabl": 524, "psfkernel": 161, "psfking": 162, "psfmap": [163, 484], "public": 406, "pull": [380, 383, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "pulsar": [51, 475, 510, 511], "purpos": 385, "pwn": 50, "pydant": 407, "python": [380, 381, 387, 405, 416], "qualiti": [389, 410, 455, 457, 463, 483], "quantiti": [482, 490, 516], "radial": 521, "radial_distribut": 48, "radmax2d": 165, "rai": [395, 479], "random": [13, 380], "rang": [485, 526], "read": [459, 464, 468, 469, 486, 487, 488, 531], "read_hermes_cub": [283, 285], "read_yaml": 346, "recommend": [412, 414], "reconstruct": 521, "recopsfmap": 166, "recursive_merge_dict": 347, "redshift": 451, "reduc": [4, 460, 461, 481, 502, 503], "reduct": [8, 389, 395, 452, 455, 456, 457, 463, 472, 473, 477, 485, 495, 502, 503, 526, 578], "refer": [6, 400, 577, 578, 579], "reflect": [485, 527], "reflectedregionsbackgroundmak": [175, 527], "reflectedregionsfind": 176, "region": [13, 391, 394, 450, 452, 455, 457, 485, 487, 488, 527, 531], "region_to_fram": 341, "regiongeom": [201, 531], "regionndmap": [202, 531], "regions_to_compound_region": 342, "regionsfind": 177, "relat": 531, "releas": [380, 389, 405, 406, 409, 410, 418], "remark": 385, "remnant": 512, "remov": [380, 488], "renam": 380, "repositori": 410, "repr": 380, "represent": [403, 482, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "request": [380, 383, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "requir": [379, 380, 397, 407], "requires_data": 359, "requires_depend": 360, "resampl": 481, "resample_energy_edg": 146, "residu": [455, 457, 463, 503], "resolv": [401, 475, 477], "respons": [7, 523], "restructur": 400, "result": [395, 404, 450, 452, 456, 459, 466, 469, 472, 477, 482, 581], "return": [380, 381], "review": 385, "ring": [461, 485, 528], "ringbackgroundmak": 178, "rmf": 522, "road": 390, "roadmap": 389, "rotat": 394, "rst": 381, "run": [11, 383, 455, 456, 457, 466, 468, 469, 472, 502, 578], "run_multiprocess": 328, "safe": [485, 526], "safemaskmak": 179, "sampl": [393, 467, 468], "sample_powerlaw": 334, "sample_spher": 335, "sample_sphere_dist": 336, "sample_tim": 337, "sampler": 468, "save": [456, 502, 503], "scale": 582, "scale_plot_flux": 284, "scaledregulargridinterpol": 319, "scalespectralmodel": 259, "scenario": 390, "schedul": 405, "scheme": [391, 406], "script": [11, 13, 380, 416, 498, 500], "section": 400, "sed": 516, "select": [452, 456, 465, 472, 473, 477, 480, 488, 502, 503, 515], "select_nested_model": 286, "sensit": 450, "sensitivityestim": 132, "sep": [424, 440], "serial": [392, 407, 464], "serialis": [408, 456, 469, 484, 488, 489, 494, 514], "seril": 391, "set": [383, 456, 486, 502], "setup": [388, 410, 412, 414, 415, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "sever": 380, "share": 489, "shell": 540, "shell2": 541, "shell2spatialmodel": 260, "shellspatialmodel": 261, "shorter": 403, "should": 380, "show": [465, 466, 490], "signal": 466, "signific": [452, 459, 461, 487, 580], "simplepulsar": 54, "simplifi": 403, "simul": [389, 392, 457, 458, 467, 468, 471, 474], "sine": 571, "sinetemporalmodel": 262, "singl": [381, 458], "size": 531, "skip": 380, "sky": [9, 391, 394, 465, 467, 487, 522, 530], "sky_to_fov": 313, "skycoord": 530, "skymodel": [263, 489], "slice": 486, "small": 383, "smooth": [459, 559], "smoothbrokenpowerlawspectralmodel": 264, "snr": 52, "snrtruelovemcke": 53, "solut": 407, "some": [380, 390, 487], "sourc": [1, 2, 450, 452, 455, 459, 465, 466, 467, 468, 474, 480, 487, 491, 493, 504, 508, 509, 510, 511, 513], "sourcecatalog": 56, "sourcecatalog1lhaaso": 57, "sourcecatalog2fhl": 58, "sourcecatalog2hwc": 59, "sourcecatalog2pc": 60, "sourcecatalog3fgl": 61, "sourcecatalog3fhl": 62, "sourcecatalog3hwc": 63, "sourcecatalog3pc": 64, "sourcecatalog4fgl": 65, "sourcecataloggammacat": 66, "sourcecataloghgp": 67, "sourcecataloglargescalehgp": 68, "sourcecatalogobject": 69, "sourcecatalogobject1lhaaso": 70, "sourcecatalogobject2fhl": 71, "sourcecatalogobject2hwc": 72, "sourcecatalogobject2pc": 73, "sourcecatalogobject3fgl": 74, "sourcecatalogobject3fhl": 75, "sourcecatalogobject3hwc": 76, "sourcecatalogobject3pc": 77, "sourcecatalogobject4fgl": 78, "sourcecatalogobjectgammacat": 79, "sourcecatalogobjecthgp": 80, "sourcecatalogobjecthgpscompon": 81, "sourceirfmodel": 391, "sourcemodel": 391, "spatial": [391, 403, 465, 479, 486, 489, 508, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542], "spatial_model_registri": 257, "spatialirfmodel": 391, "spatialmodel": 265, "special": 581, "specif": [391, 400, 480, 482], "spectra": 479, "spectral": [403, 408, 451, 452, 453, 455, 456, 457, 464, 465, 479, 489, 498, 504, 532, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 563], "spectral_model_registri": 258, "spectralirfmodel": 391, "spectralmodel": 266, "spectroscopi": 477, "spectrum": [451, 455, 457, 458, 465, 475, 485, 503], "spectrumdataset": [109, 392, 481, 514], "spectrumdatasetmak": [180, 526], "spectrumdatasetonoff": [110, 392], "sphinx": [380, 381], "spiral": 508, "split_dataset": [115, 117], "spread": [493, 524], "squar": [466, 496], "stack": [455, 461, 463, 514], "standard_scal": 306, "standardise_unit": 365, "start": [400, 412, 507, 508, 509, 515, 530], "stat": [12, 451], "stat_contour": 483, "stat_profile_ul_scipi": 287, "stat_surfac": 483, "statist": [12, 455, 487, 579, 580], "statu": [385, 390, 399, 405], "step": [456, 493, 495, 496, 576], "store": [395, 456, 522], "str": 380, "structur": [399, 401, 433, 504, 576], "structure_funct": 303, "studi": 395, "style": 386, "sub": [486, 507], "subclass": 408, "subpackag": 386, "subset": 480, "suggest": 406, "summari": [419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 463, 494], "super": [560, 561, 562], "superexpcutoffpowerlaw3fglspectralmodel": 267, "superexpcutoffpowerlaw4fgldr3spectralmodel": 268, "superexpcutoffpowerlaw4fglspectralmodel": 269, "supernova": 512, "support": [380, 387, 405, 406, 408, 484, 514], "survei": [500, 583], "symmetr": 521, "systemat": 408, "t": [459, 580], "tabl": [13, 466, 480, 482, 495, 515], "table_row_to_dict": 351, "table_standardise_units_copi": 352, "table_standardise_units_inplac": 353, "tag": 403, "target": 455, "task": [391, 392, 393, 394, 395, 396, 397], "templat": [467, 542, 563], "templatendspatialmodel": 271, "templatendspectralmodel": 272, "templatenpredmodel": 273, "templatephasecurvetemporalmodel": 274, "templatespatialmodel": 275, "templatespectralmodel": 276, "tempor": [468, 474, 489, 532, 565, 566, 567, 568, 569, 570, 571, 572, 573], "temporal_model_registri": 270, "temporalmodel": 277, "term": 406, "terminologi": 390, "test": [13, 380, 383, 466, 475], "text": 380, "theta": 496, "thi": 383, "through": 482, "thumbnail": 381, "time": [13, 389, 395, 449, 454, 462, 467, 470, 473, 474, 476, 477, 478, 492, 497, 498, 499, 501, 505, 533, 543, 564, 574, 582], "time_ref_from_dict": 362, "time_ref_to_dict": 363, "time_relative_to_ref": 364, "timemapaxi": [203, 486], "timmerkonig_lightcurve_simul": 289, "to_yaml": 348, "tool": [11, 380, 578], "tooltip": 381, "touch": 383, "trapz_loglog": 318, "troubleshoot": [415, 578], "true": [520, 522, 524], "tsmapestim": 133, "tutori": [381, 388, 400, 412, 466, 493, 495, 498], "two": 488, "type": [380, 407, 514, 516], "uncertainti": 398, "underli": [473, 531], "unfold": 408, "unfreez": 488, "unif": 404, "unifi": [391, 404], "uniformprior": 278, "unit": [13, 380], "unit_from_fits_image_hdu": 366, "unix": 380, "unreleas": 448, "up": [383, 399, 401], "upsampl": 531, "us": [380, 390, 408, 413, 416, 456, 466, 467, 472, 481, 483, 484, 486, 502, 503, 506, 509, 513, 514, 515, 516, 517, 523, 525, 526, 527, 530, 549, 560, 561, 562, 575], "user": [387, 519], "util": [4, 5, 8, 10, 13, 399, 576, 580, 582], "valid": 407, "valleespir": 38, "valu": [380, 408, 466, 486, 491], "vari": 474, "variabl": [1, 2, 3, 4, 5, 7, 8, 10, 13, 467, 478], "varianc": 478, "variou": 490, "veloc": 508, "velocity_distribut": 49, "velocity_glon_glat": 314, "venv": 411, "version": [380, 405, 409, 418, 471], "virtual": 411, "visual": [14, 401, 486, 531, 583], "visualis": [459, 477, 482], "volum": 531, "warn": 380, "wc": [486, 531], "wcsgeom": 204, "wcsmap": 205, "wcsndmap": 206, "we": [388, 395, 396, 404, 495], "webpag": 410, "what": [380, 383, 385, 388, 390, 395, 396, 404, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 453, 455, 456, 459, 465, 472, 502, 504], "where": 380, "which": 380, "wind": 511, "wise": 472, "without": 491, "wobbleregionsfind": 181, "work": 515, "workflow": [11, 576], "write": [380, 385, 456, 468, 486, 487, 515, 531, 578], "write_yaml": 349, "wstat": [304, 579, 580, 581], "wstatcountsstatist": 290, "yaml": [403, 456, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "your": [415, 456, 578], "yusifovkucuk2004": 39, "yusifovkucuk2004b": 40, "zhaoprofil": 27}}) \ No newline at end of file +Search.setIndex({"alltitles": {"0.1 (Aug 25, 2014)": [[419, null]], "0.10 (Jan 28, 2019)": [[420, null]], "0.11 (Mar 29, 2019)": [[421, null]], "0.12 (May 30, 2019)": [[422, null]], "0.13 (Jul 26, 2019)": [[423, null]], "0.14 (Sep 30, 2019)": [[424, null]], "0.15 (Dec 3, 2019)": [[425, null]], "0.16 (Feb 1, 2020)": [[426, null]], "0.17 (Apr 1, 2020)": [[427, null]], "0.18 (Nov 4th, 2020)": [[428, null]], "0.18.1 (Nov 6th, 2020)": [[429, null]], "0.18.2 (Nov 19th, 2020)": [[430, null]], "0.19 (Nov 22nd, 2021)": [[431, null]], "0.2 (Apr 13, 2015)": [[432, null]], "0.20 (May 12th, 2022)": [[433, null]], "0.20.1 (June 16th, 2022)": [[434, null]], "0.3 (Aug 13, 2015)": [[435, null]], "0.4 (Apr 20, 2016)": [[436, null]], "0.5 (Nov 22, 2016)": [[437, null]], "0.6 (Apr 28, 2017)": [[438, null]], "0.7 (Feb 28, 2018)": [[439, null]], "0.8 (Sep 23, 2018)": [[440, null]], "0.9 (Nov 29, 2018)": [[441, null]], "1.0 (November 10th, 2022)": [[442, null]], "1.0.1 (March 14th, 2023)": [[443, null]], "1.0.2 (December 6th, 2023)": [[444, null]], "1.1 (June 13th 2023)": [[445, null]], "1.2 (February 29th 2024)": [[446, null]], "1.3 (November 26th, 2024)": [[447, null]], "1D Spectral": [[498, "d-spectral"]], "1D spectrum simulation": [[458, null]], "2.0 (unreleased)": [[448, null]], "2D Image": [[498, "d-image"]], "2D map fitting": [[460, null]], "3D Cube": [[498, "d-cube"]], "3D detailed analysis": [[463, null]], "3D map simulation": [[471, null]], "A fully configured Flux Points Estimation": [[482, "a-fully-configured-flux-points-estimation"]], "A note on statistics": [[455, "a-note-on-statistics"]], "A note on the internal representation": [[482, "a-note-on-the-internal-representation"]], "API Links": [[381, "api-links"]], "API changes": [[442, "api-changes"], [445, "api-changes"], [446, "api-changes"], [447, "api-changes"]], "API reference": [[6, null]], "ASmoothMapEstimator": [[118, null]], "Abstract": [[385, "abstract"], [386, "abstract"], [387, "abstract"], [388, "abstract"], [389, "abstract"], [390, "abstract"], [392, "abstract"], [393, "abstract"], [394, "abstract"], [395, "abstract"], [396, "abstract"], [397, "abstract"], [398, "abstract"], [399, "abstract"], [400, "abstract"], [401, "abstract"], [402, "abstract"], [403, "abstract"], [404, "abstract"], [405, "abstract"], [406, "abstract"], [407, "abstract"], [408, "abstract"]], "Acceptation of the Developer Certificate of Origin (DCO)": [[383, "acceptation-of-the-developer-certificate-of-origin-dco"]], "Accessing Data": [[486, "accessing-data"]], "Accessing and visualising results": [[459, "accessing-and-visualising-results"]], "Accessing and visualising the results": [[482, "accessing-and-visualising-the-results"]], "Accessing contents of a dataset": [[481, "accessing-contents-of-a-dataset"]], "Accessor methods": [[530, "accessor-methods"]], "Account for spectral absorption due to the EBL": [[451, null]], "Adaptive smoothing": [[459, "adaptive-smoothing"]], "AdaptiveRingBackgroundMaker": [[168, null]], "Add a model on multiple datasets": [[488, "add-a-model-on-multiple-datasets"]], "Add new parametric models": [[391, "add-new-parametric-models"]], "Adding Non-Spatial Axes": [[486, "adding-non-spatial-axes"]], "Adding Non-contiguous axes": [[486, "adding-non-contiguous-axes"]], "Additional Models": [[403, "additional-models"]], "Additional PSF classes": [[524, "additional-psf-classes"]], "Additional utilities": [[576, "additional-utilities"]], "Aim": [[488, "aim"]], "Alternative": [[404, "alternative"]], "Alternatives": [[388, "alternatives"], [391, "alternatives"], [394, "alternatives"], [396, "alternatives"], [397, "alternatives"], [398, "alternatives"], [400, "alternatives"], [401, "alternatives"], [407, "alternatives"]], "Alternatives / Outlook": [[393, "alternatives-outlook"]], "Analysis": [[15, null]], "Analysis configuration": [[456, "analysis-configuration"], [463, "analysis-configuration"], [472, "analysis-configuration"], [502, "analysis-configuration"]], "Analysis steps": [[576, "analysis-steps"]], "Analysis workflow": [[576, "analysis-workflow"]], "AnalysisConfig": [[16, null]], "As a function of of true energy and offset angle (PSF_TABLE)": [[524, "as-a-function-of-of-true-energy-and-offset-angle-gadf-psf-table"]], "Assert convention": [[380, "assert-convention"]], "Assign to model to all datasets": [[473, "assign-to-model-to-all-datasets"]], "Assigning background models to datasets": [[488, "assigning-background-models-to-datasets"]], "Astrophysical source models": [[509, null]], "Astrophysical source population models": [[508, null]], "Astrophysics": [[507, null]], "Authorship policy": [[406, "authorship-policy"]], "BACKEND_DEFAULT": [[322, null]], "BSD or GPL license?": [[380, "bsd-or-gpl-license"]], "Background": [[493, "background"], [521, null]], "Background / What we have now": [[395, "background-what-we-have-now"]], "Background Model Handling": [[402, "background-model-handling"]], "Background estimation": [[485, "background-estimation"], [526, "background-estimation"]], "Background2D": [[147, null]], "Background3D": [[148, null]], "BackgroundIRF": [[149, null]], "BackgroundIRFModel": [[391, "backgroundirfmodel"]], "BackgroundModel": [[391, "backgroundmodel"]], "Basic image exploration and fitting": [[465, null]], "Basic operators": [[486, "basic-operators"]], "Bayesian blocks": [[478, "bayesian-blocks"]], "Bin volume and angular size": [[531, "bin-volume-and-angular-size"]], "Boundary mask": [[487, "boundary-mask"]], "Broken power law spectral model": [[545, null]], "BrokenPowerLawSpectralModel": [[218, null]], "Bug fixes and improvements": [[433, "bug-fixes-and-improvements"], [442, "bug-fixes-and-improvements"], [445, "bug-fixes-and-improvements"], [446, "bug-fixes-and-improvements"], [447, "bug-fixes-and-improvements"]], "Build": [[410, "build"]], "Building 1D datasets from the new observations": [[473, "building-1d-datasets-from-the-new-observations"]], "Building the 1D analysis configuration": [[472, "building-the-1d-analysis-configuration"]], "Building the 3D analysis configuration": [[472, "building-the-3d-analysis-configuration"]], "Built-in models": [[575, "built-in-models"]], "Bundled gammapy.extern code": [[380, "bundled-gammapy-extern-code"]], "BurkertProfile": [[17, null]], "CATALOG_REGISTRY": [[55, null]], "CITATION.cff": [[406, "citation-cff"]], "CLUMPY": [[506, "clumpy"]], "CTA 1DC": [[493, "cta-1dc"]], "CTAO with Gammapy": [[493, null]], "Caplog fixture": [[380, "caplog-fixture"]], "Case 1: Background systematics as a nuisance parameter #3955": [[408, "case-1-background-systematics-as-a-nuisance-parameter-3955"]], "Case 2: Favoring positive values for flux amplitudes": [[408, "case-2-favoring-positive-values-for-flux-amplitudes"]], "Case 3: Support unfolding methods for spectral flux points #4122": [[408, "case-3-support-unfolding-methods-for-spectral-flux-points-4122"]], "CaseBattacharya1998": [[28, null]], "Cash : Poisson data with background model": [[579, "cash-poisson-data-with-background-model"]], "Cash counts statistic": [[580, "cash-counts-statistic"]], "CashCountsStatistic": [[288, null]], "Catalog table": [[480, "catalog-table"]], "Caveat": [[579, "caveat"]], "Changelog": [[400, "changelog"]], "Check Python code": [[381, "check-python-code"]], "Check broken links": [[381, "check-broken-links"]], "Check setup": [[450, "check-setup"], [452, "check-setup"], [455, "check-setup"], [456, "check-setup"], [457, "check-setup"], [458, "check-setup"], [459, "check-setup"], [460, "check-setup"], [461, "check-setup"], [463, "check-setup"], [464, "check-setup"], [465, "check-setup"], [466, "check-setup"], [467, "check-setup"], [468, "check-setup"], [469, "check-setup"], [472, "check-setup"], [473, "check-setup"], [474, "check-setup"], [475, "check-setup"], [479, "check-setup"], [480, "check-setup"], [481, "check-setup"], [483, "check-setup"], [485, "check-setup"], [486, "check-setup"], [487, "check-setup"], [488, "check-setup"], [489, "check-setup"], [491, "check-setup"], [493, "check-setup"], [494, "check-setup"], [495, "check-setup"], [496, "check-setup"], [502, "check-setup"], [503, "check-setup"], [504, "check-setup"]], "Check the dataset we produced": [[495, "check-the-dataset-we-produced"]], "Check your setup": [[415, "check-your-setup"]], "Checker": [[354, null]], "Choose a thumbnail and tooltip for the tutorial gallery": [[381, "choose-a-thumbnail-and-tooltip-for-the-tutorial-gallery"]], "Citation scheme": [[406, "citation-scheme"]], "Class attributes": [[381, "class-attributes"]], "Classes": [[0, "classes"], [1, "classes"], [1, "id1"], [1, "id2"], [2, "classes"], [3, "classes"], [4, "classes"], [5, "classes"], [7, "classes"], [8, "classes"], [9, "classes"], [10, "classes"], [10, "id2"], [12, "classes"], [13, "classes"], [13, "id5"], [13, "id7"], [13, "id10"], [13, "id15"], [14, "classes"]], "Clean up gammapy.utils": [[399, "clean-up-gammapy-utils"]], "Clobber or overwrite?": [[380, "clobber-or-overwrite"]], "Code in RST files": [[381, "code-in-rst-files"]], "Code in docstrings in Python files": [[381, "code-in-docstrings-in-python-files"]], "Code quality": [[410, "code-quality"]], "Collection of the personal information of authors": [[406, "collection-of-the-personal-information-of-authors"]], "Colormaps": [[583, "colormaps"]], "Combining event lists and GTIs": [[515, "combining-event-lists-and-gtis"]], "Combining two Models": [[488, "combining-two-models"]], "Command line tools": [[578, null]], "Command line tools using click": [[380, "command-line-tools-using-click"]], "Command not found": [[578, "command-not-found"]], "Common API": [[482, "common-api"]], "Compare against the literature": [[457, "compare-against-the-literature"]], "Compare results": [[472, "compare-results"]], "Compound Spectral Model": [[489, "compound-spectral-model"]], "Compound spectral model": [[546, null]], "CompoundSpectralModel": [[219, null]], "Computation times": [[449, null], [454, null], [462, null], [470, null], [476, null], [492, null], [497, null], [499, null], [501, null], [505, null], [533, null], [543, null], [564, null], [574, null]], "Compute Flux Points": [[455, "compute-flux-points"]], "Compute correlated significance and correlated excess maps": [[461, "compute-correlated-significance-and-correlated-excess-maps"]], "Compute images": [[465, "compute-images"]], "Compute sensitivity": [[450, "compute-sensitivity"]], "Computing contours using stat_contour": [[483, "computing-contours-using-stat-contour"]], "Computing contours using stat_surface": [[483, "computing-contours-using-stat-surface"]], "Computing flux points": [[503, "computing-flux-points"]], "Conda Environments": [[411, "conda-environments"]], "Confidence contours": [[483, "confidence-contours"]], "Configurable analysis": [[576, "configurable-analysis"]], "Configuration": [[469, "configuration"]], "Configuration for stacked and joint analysis": [[463, "configuration-for-stacked-and-joint-analysis"]], "Configuration of the analysis": [[456, "configuration-of-the-analysis"]], "Constant spatial model": [[534, null]], "Constant spectral model": [[547, null]], "Constant temporal model": [[565, null]], "ConstantFluxSpatialModel": [[220, null]], "ConstantSpatialModel": [[221, null]], "ConstantSpectralModel": [[222, null]], "ConstantTemporalModel": [[223, null]], "Context": [[452, "context"], [453, "context"], [455, "context"], [456, "context"], [457, "context"], [458, "context"], [459, "context"], [460, "context"], [461, "context"], [464, "context"], [466, "context"], [467, "context"], [469, "context"], [471, "context"], [472, "context"], [473, "context"], [474, "context"], [477, "context"], [478, "context"], [487, "context"], [490, "context"], [491, "context"], [502, "context"], [503, "context"]], "Continuous integration": [[410, "continuous-integration"]], "Contribution in conferences": [[406, "contribution-in-conferences"]], "Contributors": [[419, "contributors"], [420, "contributors"], [421, "contributors"], [422, "contributors"], [423, "contributors"], [424, "contributors"], [425, "contributors"], [426, "contributors"], [427, "contributors"], [428, "contributors"], [431, "contributors"], [432, "contributors"], [433, "contributors"], [434, "contributors"], [435, "contributors"], [436, "contributors"], [437, "contributors"], [438, "contributors"], [439, "contributors"], [440, "contributors"], [441, "contributors"], [442, "contributors"], [443, "contributors"], [444, "contributors"], [445, "contributors"], [446, "contributors"], [447, "contributors"]], "Convert a jupyter notebook to python script in the sphinx-gallery format": [[380, "convert-a-jupyter-notebook-to-python-script-in-the-sphinx-gallery-format"]], "Coordinate and axis names": [[380, "coordinate-and-axis-names"]], "Coordinates defined by the RegionGeom": [[531, "coordinates-defined-by-the-regiongeom"]], "Correct format for bullet point list": [[381, "correct-format-for-bullet-point-list"]], "Counts": [[494, "counts"]], "Counts and fit statistics": [[580, "counts-and-fit-statistics"]], "Counts statistics classes": [[580, "counts-statistics-classes"]], "Covariance": [[209, null]], "Covariance and parameters errors": [[483, "covariance-and-parameters-errors"]], "CovarianceResult": [[210, null]], "Create DL4 product - PSFMap": [[484, "create-dl4-product-psfmap"]], "Create a FluxMaps object through one of the estimators.": [[482, "create-a-fluxmaps-object-through-one-of-the-estimators"]], "Create a mask in energy": [[487, "create-a-mask-in-energy"]], "Create a stacked dataset": [[461, "create-a-stacked-dataset"]], "Create edisp kernel map": [[484, "create-edisp-kernel-map"]], "Create exclusion mask": [[455, "create-exclusion-mask"], [461, "create-exclusion-mask"]], "Create exposure map": [[484, "create-exposure-map"]], "Create the energy-dependent temporal model": [[468, "create-the-energy-dependent-temporal-model"]], "Create the maker classes to be used": [[503, "create-the-maker-classes-to-be-used"]], "Create the makers": [[452, "create-the-makers"]], "Create the mask from a catalog of sources": [[487, "create-the-mask-from-a-catalog-of-sources"]], "Create the mask from a list of regions": [[487, "create-the-mask-from-a-list-of-regions"]], "Create the mask from statistically significant pixels in a dataset": [[487, "create-the-mask-from-statistically-significant-pixels-in-a-dataset"]], "Create the mask map": [[487, "create-the-mask-map"]], "Create the temporal model and write it to disk": [[468, "create-the-temporal-model-and-write-it-to-disk"]], "Creating WCS Maps": [[486, "creating-wcs-maps"]], "Creating a RegionGeom": [[531, "creating-a-regiongeom"]], "Creating a RegionNDMap": [[531, "creating-a-regionndmap"]], "Creating a mask for fitting": [[487, "creating-a-mask-for-fitting"]], "Creating a mask manually": [[487, "creating-a-mask-manually"]], "Creating an empty dataset": [[481, "creating-an-empty-dataset"]], "Creating an exclusion mask": [[487, "creating-an-exclusion-mask"]], "Creating from a Map Geometry": [[486, "creating-from-a-map-geometry"]], "Creating the config file": [[460, "creating-the-config-file"], [461, "creating-the-config-file"]], "Creation of the Flux points": [[456, "creation-of-the-flux-points"]], "Creation of the data reduction makers": [[473, "creation-of-the-data-reduction-makers"]], "Creation of the datasets": [[473, "creation-of-the-datasets"]], "Creation of the model": [[456, "creation-of-the-model"]], "Cube plotting": [[486, "cube-plotting"]], "Cumulative excess and significance": [[452, "cumulative-excess-and-significance"]], "Current status": [[405, "current-status"]], "Custom models": [[575, "custom-models"]], "Cutouts": [[486, "cutouts"]], "Cython": [[410, "cython"]], "DATASET_REGISTRY": [[98, null]], "DCO implementation": [[406, "dco-implementation"]], "DL3 DR1": [[496, "dl3-dr1"]], "DMProfile": [[18, null]], "D_SUN_TO_GALACTIC_CENTER": [[307, null]], "Dark matter": [[506, null]], "Dark matter spatial and spectral models": [[479, null]], "DarkMatterAnnihilationSpectralModel": [[19, null]], "DarkMatterDecaySpectralModel": [[20, null]], "Data Fitting": [[395, "data-fitting"]], "Data access and selection (DL3)": [[515, null]], "Data analysis": [[498, "data-analysis"]], "Data analysis subpackages in gammapy": [[386, "data-analysis-subpackages-in-gammapy"]], "Data and Observation handling": [[389, "data-and-observation-handling"]], "Data and models files": [[464, "data-and-models-files"]], "Data exploration": [[498, "data-exploration"]], "Data reduction": [[395, "data-reduction"], [463, "data-reduction"], [463, "id1"], [477, "data-reduction"], [502, "data-reduction"], [503, "data-reduction"]], "Data reduction (DL3 to DL4)": [[526, null]], "Data reduction into a MapDataset": [[495, "data-reduction-into-a-mapdataset"]], "Data reduction loop": [[485, "data-reduction-loop"]], "Data selection": [[477, "data-selection"]], "Data structures": [[504, null]], "DataStore": [[82, null]], "Dataset": [[99, null], [392, "dataset"], [485, "dataset"]], "Dataset helper / convenience methods": [[392, "dataset-helper-convenience-methods"]], "Dataset serialization": [[392, "dataset-serialization"]], "Dataset simulations": [[457, "dataset-simulations"]], "Dataset specific quantities (\u201ccounts like\u201d)": [[482, "dataset-specific-quantities-counts-like"]], "DatasetModels": [[224, null]], "Datasets": [[100, null], [389, "datasets"], [392, "datasets"], [407, "datasets"], [481, "datasets"]], "Datasets (DL4)": [[514, null]], "Datasets - Reduced data, IRFs, models": [[481, null]], "Datasets serialization": [[464, "datasets-serialization"]], "DatasetsMaker": [[169, null]], "Datastore": [[493, "datastore"]], "Dealing with links": [[381, "dealing-with-links"]], "Decision": [[385, "decision"], [386, "decision"], [387, "decision"], [388, "decision"], [389, "decision"], [390, "decision"], [391, "decision"], [392, "decision"], [393, "decision"], [394, "decision"], [395, "decision"], [396, "decision"], [397, "decision"], [398, "decision"], [399, "decision"], [400, "decision"], [401, "decision"], [402, "decision"], [403, "decision"], [404, "decision"], [405, "decision"], [406, "decision"], [407, "decision"], [408, "decision"]], "Define Target Region": [[455, "define-target-region"]], "Define an Observation": [[467, "define-an-observation"]], "Define an observation and make a dataset": [[468, "define-an-observation-and-make-a-dataset"]], "Define analysis region and energy binning": [[450, "define-analysis-region-and-energy-binning"]], "Define map geometry": [[465, "define-map-geometry"]], "Define the MapDataset": [[467, "define-the-mapdataset"]], "Define the ON region": [[457, "define-the-on-region"]], "Define the Sky model: a point-like source": [[467, "define-the-sky-model-a-point-like-source"]], "Define the geometries": [[452, "define-the-geometries"]], "Define the geometry": [[487, "define-the-geometry"]], "Define the model": [[503, "define-the-model"]], "Define the model to be used": [[472, "define-the-model-to-be-used"], [472, "id3"]], "Define the simulation source model": [[468, "define-the-simulation-source-model"]], "Define time intervals": [[473, "define-time-intervals"]], "Define underlying model": [[473, "define-underlying-model"]], "Defining the datastore and selecting observations": [[503, "defining-the-datastore-and-selecting-observations"]], "Defining the geometry": [[473, "defining-the-geometry"]], "Definition of a Contributor": [[406, "definition-of-a-contributor"]], "Definition of the Maintainer": [[406, "definition-of-the-maintainer"]], "Definition of the data selection": [[472, "definition-of-the-data-selection"], [472, "id1"]], "Definition of the dataset geometry": [[472, "definition-of-the-dataset-geometry"], [472, "id2"]], "Dependencies": [[379, null], [397, "dependencies"]], "Deprecating a function or a class": [[380, "deprecating-a-function-or-a-class"]], "Deprecation": [[405, "deprecation"]], "Derivation of the WStat formula": [[581, null]], "Detailed plan": [[387, "detailed-plan"]], "Developer How To": [[380, null]], "Developer guide": [[382, null]], "Discussion / Alternatives": [[395, "discussion-alternatives"]], "Disk spatial model": [[535, null]], "DiskSpatialModel": [[225, null]], "Dissolve gammapy.background": [[399, "dissolve-gammapy-background"]], "Dissolve gammapy.image": [[399, "dissolve-gammapy-image"]], "Distributions": [[397, "distributions"], [397, "id1"]], "Documentation": [[389, "documentation"], [446, "documentation"]], "Documentation How To": [[381, null]], "Documentation building": [[381, "documentation-building"]], "Documentation guidelines": [[381, "documentation-guidelines"]], "Documentation improvements": [[447, "documentation-improvements"]], "Download": [[410, "download"]], "EBL absorption spectral model": [[544, null]], "EBLAbsorptionNormSpectralModel": [[226, null]], "EBL_DATA_BUILTIN": [[227, null]], "EDispKernel": [[150, null]], "EDispKernelMap": [[151, null]], "EDispMap": [[152, null]], "ESTIMATOR_REGISTRY": [[119, null]], "Effective Area": [[484, "effective-area"]], "Effective area": [[493, "effective-area"], [520, null]], "EffectiveAreaTable2D": [[153, null]], "EinastoProfile": [[21, null]], "Energy Dependent Spatial Models": [[403, "energy-dependent-spatial-models"]], "Energy Dispersion": [[484, "energy-dispersion"], [494, "energy-dispersion"], [522, null]], "Energy dispersion": [[493, "energy-dispersion"]], "Energy edges": [[516, "energy-edges"]], "EnergyDependentMorphologyEstimator": [[120, null]], "EnergyDependentMultiGaussPSF": [[154, null]], "EnergyDispersion2D": [[155, null]], "Estimating TS": [[580, "estimating-ts"]], "Estimation of time variability in a lightcurve": [[478, null]], "Estimator": [[121, null]], "Estimators": [[407, "estimators"], [482, null]], "Estimators (DL4 to DL5, and DL6)": [[516, null]], "Event Simulation": [[389, "event-simulation"]], "Event lists": [[504, "event-lists"]], "Event sampling": [[467, null]], "EventList": [[83, null]], "EventListMetaData": [[84, null]], "Events": [[493, "events"], [494, "events"]], "Example": [[579, "example"], [579, "id2"]], "Example 1: Including Prior Information about the Sources Index": [[491, "example-1-including-prior-information-about-the-sources-index"]], "Example 2: Encouraging Positive Amplitude Values": [[491, "example-2-encouraging-positive-amplitude-values"]], "Example of extrapolation": [[563, "example-of-extrapolation"]], "Example plot": [[534, "example-plot"], [535, "example-plot"], [536, "example-plot"], [537, "example-plot"], [538, "example-plot"], [539, "example-plot"], [540, "example-plot"], [541, "example-plot"], [542, "example-plot"], [544, "example-plot"], [545, "example-plot"], [546, "example-plot"], [547, "example-plot"], [548, "example-plot"], [549, "example-plot"], [550, "example-plot"], [551, "example-plot"], [552, "example-plot"], [553, "example-plot"], [554, "example-plot"], [555, "example-plot"], [556, "example-plot"], [557, "example-plot"], [558, "example-plot"], [559, "example-plot"], [560, "example-plot"], [561, "example-plot"], [562, "example-plot"], [563, "example-plot"], [565, "example-plot"], [566, "example-plot"], [567, "example-plot"], [568, "example-plot"], [569, "example-plot"], [570, "example-plot"], [571, "example-plot"]], "Examples using FluxPointsEstimator": [[516, "examples-using-fluxpointsestimator"]], "Examples using LightCurveEstimator": [[516, "examples-using-lightcurveestimator"]], "Examples using MapDataset": [[514, "examples-using-mapdataset"]], "Examples using MapDatasetMaker": [[526, "examples-using-mapdatasetmaker"]], "Examples using SpectrumDataset": [[514, "examples-using-spectrumdataset"]], "Examples using SpectrumDatasetMaker": [[526, "examples-using-spectrumdatasetmaker"]], "Examples using gammapy.analysis.Analysis": [[517, "examples-using-gammapy-analysis-analysis"]], "Examples using gammapy.makers.FoVBackgroundMaker": [[525, "examples-using-gammapy-makers-fovbackgroundmaker"]], "Examples using gammapy.makers.ReflectedRegionsBackgroundMaker": [[527, "examples-using-gammapy-makers-reflectedregionsbackgroundmaker"]], "Excess and Significance": [[580, "excess-and-significance"], [580, "id2"]], "Excess errors": [[580, "excess-errors"], [580, "id4"]], "Excess estimators": [[404, "excess-estimators"]], "ExcessMapEstimator": [[122, null]], "Exclusion masks": [[487, "exclusion-masks"]], "Execution": [[578, "execution"]], "Exemplary additional prior subclasses:": [[408, "exemplary-additional-prior-subclasses"]], "Exercises": [[450, "exercises"], [453, "exercises"], [455, "exercises"], [458, "exercises"], [463, "exercises"], [465, "exercises"], [467, "exercises"], [468, "exercises"], [474, "exercises"], [477, "exercises"], [493, "exercises"], [494, "exercises"], [495, "exercises"], [496, "exercises"], [504, "exercises"], [504, "id1"], [504, "id2"], [504, "id3"]], "Existing code": [[386, "existing-code"]], "ExpCutoffPowerLaw3FGLSpectralModel": [[228, null]], "ExpCutoffPowerLawNormSpectralModel": [[229, null]], "ExpCutoffPowerLawSpectralModel": [[230, null]], "ExpDecay temporal model": [[566, null]], "ExpDecayTemporalModel": [[231, null]], "Expected number of detected events": [[523, "expected-number-of-detected-events"]], "Exploration of the fit results": [[456, "exploration-of-the-fit-results"]], "Explore the fit results": [[452, "explore-the-fit-results"]], "Explore the results": [[452, "explore-the-results"]], "Exponential": [[29, null]], "Exponential Cut-Off Powerlaw Fit": [[453, "exponential-cut-off-powerlaw-fit"]], "Exponential cutoff power law norm spectral model": [[550, null]], "Exponential cutoff power law spectral model": [[548, null]], "Exponential cutoff power law spectral model used for 3FGL": [[549, null]], "Expose model parameters as attributes": [[391, "expose-model-parameters-as-attributes"]], "Exposure": [[494, "exposure"]], "Extended source using a template": [[467, "extended-source-using-a-template"]], "Extract the light curve": [[473, "extract-the-light-curve"]], "Extract the lightcurve": [[474, "extract-the-lightcurve"]], "Extracting the light curve": [[472, "extracting-the-light-curve"]], "Extracting the ring background": [[461, "extracting-the-ring-background"]], "Factorisation of the IRFs": [[523, "factorisation-of-the-irfs"]], "FaucherKaspi2006": [[30, null]], "FaucherKaspi2006VelocityBimodal": [[31, null]], "FaucherKaspi2006VelocityMaxwellian": [[32, null]], "FaucherSpiral": [[33, null]], "Feature Freeze and Branching": [[409, "feature-freeze-and-branching"]], "Fermi-LAT 3FHL: map dataset for 3D analysis": [[464, "fermi-lat-3fhl-map-dataset-for-3d-analysis"]], "Fermi-LAT with Gammapy": [[494, null]], "FermiST": [[506, "fermist"]], "Files": [[493, "files"]], "Filling a RegionNDMap": [[531, "filling-a-regionndmap"]], "Filling maps from event lists": [[486, "filling-maps-from-event-lists"]], "Filling maps from interpolation": [[486, "filling-maps-from-interpolation"]], "Filter the observations list in time intervals": [[473, "filter-the-observations-list-in-time-intervals"]], "Final remarks": [[385, "final-remarks"]], "Final result": [[581, "final-result"]], "Fit": [[211, null], [471, "fit"], [494, "fit"]], "Fit quality and model residuals": [[455, "fit-quality-and-model-residuals"], [457, "fit-quality-and-model-residuals"]], "Fit quality assessment": [[483, "fit-quality-assessment"]], "Fit quality assessment and model residuals for a MapDataset": [[463, "fit-quality-assessment-and-model-residuals-for-a-mapdataset"]], "Fit quality assessment and model residuals for a joint Datasets": [[463, "fit-quality-assessment-and-model-residuals-for-a-joint-datasets"]], "Fit spectrum": [[455, "fit-spectrum"], [457, "fit-spectrum"]], "Fit statistics": [[579, null]], "Fit the datasets": [[474, "fit-the-datasets"]], "Fit the model": [[503, "fit-the-model"]], "FitResult": [[212, null]], "Fitting": [[389, "fitting"], [483, null]], "Fitting Multiple Datasets with and without the Prior": [[491, "fitting-multiple-datasets-with-and-without-the-prior"]], "Fitting a Dataset with and without the Prior": [[491, "fitting-a-dataset-with-and-without-the-prior"]], "Fitting options": [[483, "fitting-options"]], "Fitting temporal models": [[474, "fitting-temporal-models"]], "Fitting the obtained light curve": [[474, "fitting-the-obtained-light-curve"]], "Fix non-Unix line endings": [[380, "fix-non-unix-line-endings"]], "FixedPointingInfo": [[85, null]], "Float data type: 32 bit or 64 bit?": [[380, "float-data-type-32-bit-or-64-bit"]], "Flux Points Estimation": [[482, "flux-points-estimation"]], "Flux Profile Estimation": [[469, null]], "Flux maps": [[516, "flux-maps"]], "Flux maps for annihilation": [[479, "flux-maps-for-annihilation"]], "Flux maps for decay": [[479, "flux-maps-for-decay"]], "Flux point fitting": [[453, null]], "Flux points": [[480, "flux-points"], [502, "flux-points"], [516, "flux-points"]], "Flux quantities": [[516, "flux-quantities"]], "FluxMaps": [[123, null]], "FluxMetaData": [[124, null]], "FluxPoints": [[125, null]], "FluxPointsDataset": [[101, null], [392, "fluxpointsdataset"], [481, "fluxpointsdataset"]], "FluxPointsEstimator": [[126, null]], "FluxProfileEstimator": [[127, null]], "FoV background": [[485, "fov-background"], [525, null]], "FoVAlignment": [[156, null]], "FoVBackgroundMaker": [[170, null]], "FoVBackgroundModel": [[232, null]], "Fractional excess variance, point-to-point fractional variance and doubling/halving time": [[478, "fractional-excess-variance-point-to-point-fractional-variance-and-doubling-halving-time"]], "Freezing and unfreezing model parameters": [[488, "freezing-and-unfreezing-model-parameters"]], "Functions": [[1, "functions"], [3, "functions"], [4, "functions"], [4, "id1"], [5, "functions"], [7, "functions"], [8, "functions"], [9, "functions"], [10, "functions"], [10, "id1"], [10, "id3"], [12, "functions"], [13, "functions"], [13, "id1"], [13, "id2"], [13, "id3"], [13, "id4"], [13, "id6"], [13, "id8"], [13, "id9"], [13, "id12"], [13, "id13"], [13, "id14"], [13, "id16"], [13, "id17"], [14, "functions"]], "Functions or class methods that return a single object": [[381, "functions-or-class-methods-that-return-a-single-object"]], "Functions returning several values": [[380, "functions-returning-several-values"]], "Further extensions": [[451, "further-extensions"]], "Further references": [[579, "further-references"]], "GTI": [[86, null]], "Galactic diffuse background": [[494, "galactic-diffuse-background"]], "Galactocentric spatial distributions": [[508, "galactocentric-spatial-distributions"]], "Gamma-ray spectra at production": [[479, "gamma-ray-spectra-at-production"]], "Gammapy": [[417, null]], "Gammapy Binder": [[410, "id1"]], "Gammapy analysis workflow and package structure": [[576, null]], "Gammapy overview": [[400, "gammapy-overview"]], "Gammapy repository": [[410, "gammapy-repository"]], "Gammapy webpages": [[410, "gammapy-webpages"]], "Gaussian spatial model": [[536, null]], "Gaussian spectral model": [[551, null]], "Gaussian temporal model": [[567, null]], "GaussianPrior": [[233, null]], "GaussianSpatialModel": [[234, null]], "GaussianSpectralModel": [[235, null]], "GaussianTemporalModel": [[236, null]], "General Gammapy publications": [[406, "general-gammapy-publications"]], "General code style guidelines": [[386, "general-code-style-guidelines"]], "General conventions": [[380, "general-conventions"]], "General idea and class diagram": [[390, "general-idea-and-class-diagram"]], "General method": [[516, "general-method"]], "General organization of the new approach": [[395, "general-organization-of-the-new-approach"]], "Generalist estimators": [[404, "generalist-estimators"]], "Generalized Gaussian temporal model": [[568, null]], "Generalized gaussian spatial model": [[537, null]], "GeneralizedGaussianSpatialModel": [[237, null]], "GeneralizedGaussianTemporalModel": [[238, null]], "Generating log messages": [[380, "generating-log-messages"]], "Geom": [[191, null]], "Get a fit stat profile for the redshift": [[451, "get-a-fit-stat-profile-for-the-redshift"]], "Get in touch early": [[383, "get-in-touch-early"]], "Get set up": [[383, "get-set-up"]], "Get the flux points": [[451, "get-the-flux-points"]], "Getting started": [[400, "getting-started"], [412, null], [507, "getting-started"], [508, "getting-started"], [509, "getting-started"]], "Getting started section restructuring": [[400, "getting-started-section-restructuring"]], "Getting started with data": [[515, "getting-started-with-data"]], "Getting started with maps": [[530, "getting-started-with-maps"]], "Getting the reduced dataset": [[460, "getting-the-reduced-dataset"], [461, "getting-the-reduced-dataset"]], "Global Model Handling": [[402, "global-model-handling"]], "Glossary": [[577, "glossary"]], "Glossary and references": [[577, null]], "Goodness of fit": [[581, "goodness-of-fit"]], "Guidelines and specific actions": [[400, "guidelines-and-specific-actions"]], "H.E.S.S. with Gammapy": [[496, null]], "HAWC data access and reduction": [[495, "hawc-data-access-and-reduction"]], "HAWC with Gammapy": [[495, null]], "HAWC: 1D dataset for flux point fitting": [[464, "hawc-1d-dataset-for-flux-point-fitting"]], "HDUIndexTable": [[87, null]], "HDULocation": [[315, null]], "HEALPix geometry": [[529, "healpix-geometry"]], "HEALPix-based maps": [[529, null]], "HESS-DL3: 1D ON/OFF dataset for spectral fitting": [[464, "hess-dl3-1d-on-off-dataset-for-spectral-fitting"]], "Handling of conference material": [[406, "handling-of-conference-material"]], "Help!?": [[415, "help"]], "Hierarchical clustering of observations": [[490, "hierarchical-clustering-of-observations"]], "Hierarchy": [[407, "hierarchy"]], "High Level Analysis Interface": [[517, null]], "High level interface": [[389, "high-level-interface"], [502, null]], "How To": [[400, "how-to"], [518, null]], "How to contribute to Gammapy": [[383, null]], "How to get data values": [[486, "how-to-get-data-values"]], "How to handle API breaking changes?": [[380, "how-to-handle-api-breaking-changes"]], "How to make a Gammapy release": [[409, null]], "How to make a pull request": [[380, "how-to-make-a-pull-request"]], "How to set data values": [[486, "how-to-set-data-values"]], "How to use logging": [[380, "how-to-use-logging"]], "How to use random numbers": [[380, "how-to-use-random-numbers"]], "How to write code": [[380, "how-to-write-code"]], "How to write tests": [[380, "how-to-write-tests"]], "HpxGeom": [[192, null]], "HpxMap": [[193, null]], "HpxNDMap": [[194, null]], "IPython": [[416, "id3"]], "IRF": [[157, null], [407, "irf"]], "IRF axis naming": [[523, "irf-axis-naming"]], "IRFMap": [[158, null]], "IRF_REGISTRY": [[159, null]], "IRFs": [[389, "irfs"], [493, "irfs"]], "Image Plotting": [[486, "image-plotting"]], "ImageProfile": [[128, null]], "ImageProfileEstimator": [[129, null]], "Images and masks": [[394, "images-and-masks"]], "Implement default parameters": [[391, "implement-default-parameters"]], "Implement evaluation region specifications": [[391, "implement-evaluation-region-specifications"]], "Implement sky coordinate handling": [[391, "implement-sky-coordinate-handling"]], "Implementation": [[400, "implementation"], [408, "implementation"]], "Implementation Outline": [[408, "implementation-outline"]], "Implementation road map": [[390, "implementation-road-map"]], "Implementing a custom model": [[489, "implementing-a-custom-model"]], "Implementing a custom prior": [[491, "implementing-a-custom-prior"]], "Imports and versions": [[471, "imports-and-versions"]], "Improve SourceModels class": [[391, "improve-sourcemodels-class"]], "Improve and implement model serilization": [[391, "improve-and-implement-model-serilization"]], "Improve spatial models": [[391, "improve-spatial-models"]], "In the RST files": [[381, "in-the-rst-files"]], "Inbuilt Gammapy IRFs": [[484, "inbuilt-gammapy-irfs"]], "Include png files as images": [[381, "include-png-files-as-images"]], "Indexing and Slicing Sub-Maps": [[486, "indexing-and-slicing-sub-maps"]], "Infrastructure": [[447, "infrastructure"]], "Inspect the reduced dataset": [[503, "inspect-the-reduced-dataset"]], "Inspecting residuals": [[503, "inspecting-residuals"]], "Install issues": [[415, "install-issues"]], "Installation": [[400, "installation"], [412, "installation"], [413, null]], "Instrument Response Functions (DL3)": [[523, null]], "Interaction Between Models and Dataset Objects": [[402, "interaction-between-models-and-dataset-objects"]], "Interface with MapCoord and SkyCoord": [[530, "interface-with-mapcoord-and-skycoord"]], "Interpolating onto a different geometry": [[486, "interpolating-onto-a-different-geometry"]], "Interpolation and extrapolation": [[380, "interpolation-and-extrapolation"]], "Introduce Shorter YAML Alias Tags": [[403, "introduce-shorter-yaml-alias-tags"]], "Introduce a FluxEstimate base class": [[404, "introduce-a-fluxestimate-base-class"]], "Introduce a FluxMap API": [[404, "introduce-a-fluxmap-api"]], "Introduce a FluxPointsCollection API": [[404, "introduce-a-fluxpointscollection-api"]], "Introduce gammapy.datasets": [[401, "introduce-gammapy-datasets"]], "Introduce gammapy.estimators": [[401, "introduce-gammapy-estimators"]], "Introduce gammapy.makers": [[401, "introduce-gammapy-makers"]], "Introduce gammapy.modeling": [[399, "introduce-gammapy-modeling"]], "Introduce gammapy.visualization": [[401, "introduce-gammapy-visualization"]], "Introduce naming scheme for models": [[391, "introduce-naming-scheme-for-models"]], "Introduction": [[391, "introduction"], [394, "introduction"], [395, "introduction"], [397, "introduction"], [398, "introduction"], [400, "introduction"], [404, "introduction"], [406, "introduction"], [407, "introduction"], [450, "introduction"], [455, "introduction"], [457, "introduction"], [465, "introduction"], [475, "introduction"], [479, "introduction"], [480, "introduction"], [481, "introduction"], [485, "introduction"], [486, "introduction"], [493, "introduction"], [494, "introduction"], [495, "introduction"], [496, "introduction"], [498, "introduction"], [504, "introduction"], [506, "introduction"], [508, "introduction"], [509, "introduction"], [579, "introduction"]], "Introduction of background models": [[391, "introduction-of-background-models"]], "Introduction of model name attributes": [[391, "introduction-of-model-name-attributes"]], "Introduction of \u201cforward folded\u201d models": [[391, "introduction-of-forward-folded-models"]], "InverseCDFSampler": [[329, null]], "IsothermalProfile": [[22, null]], "Isotropic diffuse background": [[494, "isotropic-diffuse-background"]], "Iterating by image": [[486, "iterating-by-image"]], "J Factors": [[479, "j-factors"]], "JFactory": [[23, null]], "Joint Analysis": [[514, "joint-analysis"]], "Joint analysis": [[463, "joint-analysis"], [464, "joint-analysis"]], "Jupyter": [[412, "id2"], [414, "jupyter"]], "Jupyter notebooks": [[416, "jupyter-notebooks"]], "Key Features": [[482, "key-features"]], "Known issues": [[447, "known-issues"]], "LabelMapAxis": [[195, null], [486, "labelmapaxis"]], "Latest CTAO performance files": [[493, "latest-ctao-performance-files"]], "Lazy loading of Datasets": [[392, "lazy-loading-of-datasets"]], "LazyFitsData": [[316, null]], "Let\u2019s simulate the model": [[468, "let-s-simulate-the-model"]], "Light Curve Fitting": [[395, "light-curve-fitting"]], "Light Curve estimation by observation": [[472, "light-curve-estimation-by-observation"]], "Light curve temporal model": [[573, null]], "Light curves": [[472, null]], "Light curves for flares": [[473, null]], "LightCurveEstimator": [[130, null]], "LightCurveTemplateTemporalModel": [[239, null]], "Lightcurve": [[395, "lightcurve"]], "Lightcurves": [[480, "lightcurves"]], "Lightcurves in gamma-ray astronomy": [[395, "lightcurves-in-gamma-ray-astronomy"]], "Limitations": [[390, "limitations"]], "Linear temporal model": [[569, null]], "LinearTemporalModel": [[240, null]], "Links to documentation": [[381, "links-to-documentation"]], "Links to other tutorials": [[381, "links-to-other-tutorials"]], "List available catalogs": [[480, "list-available-catalogs"]], "Load Data": [[455, "load-data"]], "Load IRFs and prepare dataset": [[450, "load-irfs-and-prepare-dataset"]], "Load catalogs": [[480, "load-catalogs"]], "Load data": [[457, "load-data"]], "Load spectral points": [[453, "load-spectral-points"]], "Load the data": [[451, "load-the-data"]], "Load the light curve for the PKS 2155-304 as a FluxPoints object.": [[482, "load-the-light-curve-for-the-pks-2155-304-as-a-fluxpoints-object"]], "Load the tables": [[495, "load-the-tables"]], "Loading models from a catalog": [[488, "loading-models-from-a-catalog"]], "Locate origin of warnings": [[380, "locate-origin-of-warnings"]], "Log parabola spectral model": [[552, null]], "Log parabola spectral norm model": [[553, null]], "Log-Parabola Fit": [[453, "log-parabola-fit"]], "LogParabolaNormSpectralModel": [[241, null]], "LogParabolaSpectralModel": [[242, null]], "LogSpiral": [[34, null]], "Long Term Support releases": [[406, "long-term-support-releases"]], "Lorimer2006": [[35, null]], "Low level API": [[503, null]], "Low level map and cube analysis": [[386, "low-level-map-and-cube-analysis"]], "MAKER_REGISTRY": [[171, null]], "METHOD_DEFAULT": [[323, null]], "METHOD_KWARGS_DEFAULT": [[324, null]], "MODEL_REGISTRY": [[243, null]], "Maintainer and developer perspective": [[387, "maintainer-and-developer-perspective"]], "Maintenance and Code Quality": [[389, "maintenance-and-code-quality"]], "Make a Bugfix release": [[409, "make-a-bugfix-release"]], "Make a Li&Ma test over the events": [[475, "make-a-li-ma-test-over-the-events"]], "Make sky images": [[465, "make-sky-images"]], "Make small pull requests": [[383, "make-small-pull-requests"]], "Maker": [[172, null]], "Makers": [[407, "makers"]], "Makers - Data reduction": [[485, null]], "Making a butterfly plot": [[503, "making-a-butterfly-plot"]], "Making a pull request that requires backport": [[380, "making-a-pull-request-that-requires-backport"]], "Making a pull request which skips GitHub Actions": [[380, "making-a-pull-request-which-skips-github-actions"]], "Making a pull request with new or modified datasets": [[380, "making-a-pull-request-with-new-or-modified-datasets"]], "Manual grouping of observations": [[490, "manual-grouping-of-observations"]], "Map": [[196, null]], "Map Analysis / Data Reduction": [[389, "map-analysis-data-reduction"]], "MapAxes": [[197, null]], "MapAxis": [[198, null]], "MapCoord": [[199, null], [530, "mapcoord"]], "MapDataset": [[102, null], [392, "mapdataset"], [481, "mapdataset"]], "MapDatasetEventSampler": [[103, null], [393, "mapdataseteventsampler"]], "MapDatasetMaker": [[173, null]], "MapDatasetMetaData": [[104, null]], "MapDatasetOnOff": [[105, null], [392, "mapdatasetonoff"]], "MapPanelPlotter": [[367, null]], "Maps": [[200, null], [389, "maps"], [486, null], [504, "maps"]], "Maps operations": [[486, "maps-operations"]], "Mask dilation and erosion": [[487, "mask-dilation-and-erosion"]], "Mask maps": [[487, null]], "Mask modifications": [[487, "mask-modifications"]], "Mask some sky regions": [[487, "mask-some-sky-regions"]], "Masks for fitting": [[487, "masks-for-fitting"]], "Masks operations": [[487, "masks-operations"]], "Meetings": [[389, "meetings"]], "Metadata API": [[407, "metadata-api"]], "Metadata files": [[406, "metadata-files"]], "Metadata generation and propagation along the dataflow": [[407, "metadata-generation-and-propagation-along-the-dataflow"]], "Methods to characterize variability": [[478, "methods-to-characterize-variability"]], "MeyerCrabSpectralModel": [[244, null]], "Minor changes": [[401, "minor-changes"]], "Mission elapsed times (MET)": [[582, "mission-elapsed-times-met"]], "Model": [[245, null]], "Model and dataset": [[483, "model-and-dataset"], [491, "model-and-dataset"]], "Model fit": [[465, "model-fit"]], "Model fitting": [[456, "model-fitting"], [502, "model-fitting"]], "Model gallery": [[532, null]], "Model lists and serialisation": [[489, "model-lists-and-serialisation"]], "Model the observed spectrum": [[451, "model-the-observed-spectrum"]], "ModelBase": [[246, null]], "Modeling": [[389, "modeling"], [407, "modeling"], [477, "modeling"]], "Modeling and Fitting (DL4 to DL5)": [[575, null]], "Modeling and fitting": [[463, "modeling-and-fitting"]], "Modelling": [[460, "modelling"], [488, null]], "Models": [[247, null], [489, null]], "Models with energy dependent morphology": [[489, "models-with-energy-dependent-morphology"]], "Models with shared parameter": [[489, "models-with-shared-parameter"]], "Modifying Data": [[486, "modifying-data"]], "Modifying model parameters": [[489, "modifying-model-parameters"]], "MooreProfile": [[24, null]], "Morphological energy dependence estimation": [[466, null]], "Motivation": [[408, "motivation"]], "Multi instrument joint 3D and 1D analysis": [[464, null]], "NFWProfile": [[25, null]], "N_JOBS_DEFAULT": [[325, null]], "Naima spectral model": [[554, null]], "NaimaSpectralModel": [[248, null]], "New features": [[442, "new-features"], [445, "new-features"], [446, "new-features"], [447, "new-features"]], "Next steps": [[493, "next-steps"], [495, "next-steps"], [496, "next-steps"]], "Night-wise LC estimation": [[472, "night-wise-lc-estimation"]], "Norm Spectral Models": [[489, "norm-spectral-models"]], "Notations": [[580, "notations"]], "Notes": [[579, "notes"]], "OGIPDatasetReader": [[106, null]], "OGIPDatasetWriter": [[107, null]], "Object text repr, str and info": [[380, "object-text-repr-str-and-info"]], "Objective": [[460, "objective"], [461, "objective"], [467, "objective"], [468, "objective"], [490, "objective"]], "Objectives": [[390, "objectives"]], "Observation": [[88, null]], "Observation duration and effective livetime": [[485, "observation-duration-and-effective-livetime"]], "Observation selection": [[456, "observation-selection"], [502, "observation-selection"]], "ObservationEventSampler": [[108, null]], "ObservationFilter": [[89, null]], "ObservationMetaData": [[90, null]], "ObservationTable": [[91, null]], "Observational clustering": [[490, null]], "Observations": [[92, null]], "ObservationsEventsSampler": [[93, null]], "Obtain the data to use": [[466, "obtain-the-data-to-use"]], "Obtain the observations": [[490, "obtain-the-observations"]], "Obtaining an integral flux sensitivity": [[450, "obtaining-an-integral-flux-sensitivity"]], "Old example data": [[410, "old-example-data"]], "On-Off analysis": [[458, "on-off-analysis"]], "Opening the data": [[475, "opening-the-data"]], "OptimizeResult": [[213, null]], "Optional dependencies": [[379, "optional-dependencies"], [397, "optional-dependencies"]], "Other folders": [[410, "other-folders"]], "Other packages": [[506, "other-packages"]], "Other repositories": [[410, "other-repositories"]], "Others": [[380, "others"], [410, "others"]], "Outlook": [[392, "outlook"], [394, "outlook"], [396, "outlook"], [397, "outlook"], [399, "outlook"], [400, "outlook"], [401, "outlook"], [404, "outlook"]], "Output in Jupyter notebook cells": [[380, "output-in-jupyter-notebook-cells"]], "Overview": [[525, "overview"], [527, "overview"], [528, "overview"]], "PIG 1 - PIG purpose and guidelines": [[385, null]], "PIG 10 - Regions": [[394, null]], "PIG 11 - Light curves": [[395, null]], "PIG 12 - High level interface": [[396, null]], "PIG 13 - Gammapy dependencies and distribution": [[397, null]], "PIG 14 - Uncertainty estimation": [[398, null]], "PIG 16 - Gammapy package structure": [[399, null]], "PIG 18 - Documentation": [[400, null]], "PIG 19 - Gammapy package structure follow up": [[401, null]], "PIG 2 - Organization of low level analysis code": [[386, null]], "PIG 20 - Global Model API": [[402, null]], "PIG 21 - Models improvements": [[403, null]], "PIG 22 - Unified flux estimators API": [[404, null]], "PIG 23 - Gammapy release cycle and version numbering": [[405, null]], "PIG 24 - Authorship policy": [[406, null]], "PIG 25 - Metadata container for Gammapy": [[407, null]], "PIG 26 - Model Priors API": [[408, null]], "PIG 3 - Plan for dropping Python 2.7 support": [[387, null]], "PIG 4 - Setup for tutorial notebooks and data": [[388, null]], "PIG 5 - Gammapy 1.0 roadmap": [[389, null]], "PIG 6 - CTA observation handling": [[390, null]], "PIG 7 - Models": [[391, null]], "PIG 8 - Datasets": [[392, null]], "PIG 9 - Event sampling": [[393, null]], "PIG review": [[385, "pig-review"]], "PIG status": [[385, "pig-status"]], "PIGs": [[384, null]], "POOL_KWARGS_DEFAULT": [[326, null]], "PSF": [[484, "psf"], [494, "psf"]], "PSF3D": [[160, null]], "PSFKernel": [[161, null]], "PSFKing": [[162, null]], "PSFMap": [[163, null]], "PWN": [[50, null]], "Package / API": [[498, "package-api"]], "Package and docs": [[410, "package-and-docs"]], "Package structure and dependencies": [[433, "package-structure-and-dependencies"]], "Paczynski1990": [[36, null]], "Paczynski1990Velocity": [[37, null]], "Papers": [[389, "papers"]], "Parallel evaluation of datasets": [[392, "parallel-evaluation-of-datasets"]], "Parameter": [[214, null]], "ParameterEstimator": [[131, null]], "Parameters": [[215, null]], "ParametricPSF": [[164, null]], "Perform spectral model fitting": [[452, "perform-spectral-model-fitting"]], "Perform the data reduction loop": [[503, "perform-the-data-reduction-loop"]], "Perform the data reduction loop.": [[452, "perform-the-data-reduction-loop"]], "Performance and precision evaluation": [[393, "performance-and-precision-evaluation"]], "Phase curve temporal model": [[572, null]], "Phase-resolved map": [[475, "phase-resolved-map"]], "Phase-resolved spectrum": [[475, "phase-resolved-spectrum"]], "PhaseBackgroundMaker": [[174, null]], "Phasogram": [[475, "phasogram"]], "Piecewise norm spectral model": [[555, null]], "Piecewise norm spatial model": [[538, null]], "PiecewiseNormSpatialModel": [[249, null]], "PiecewiseNormSpectralModel": [[250, null]], "Pixel coordinate convention": [[380, "pixel-coordinate-convention"]], "Plot": [[465, "plot"]], "Plot off regions": [[455, "plot-off-regions"]], "Plot the fitted spectrum": [[503, "plot-the-fitted-spectrum"]], "Plot the observed and intrinsic fluxes": [[451, "plot-the-observed-and-intrinsic-fluxes"]], "Plotting Results": [[469, "plotting-results"]], "Plotting a RegionGeom": [[531, "plotting-a-regiongeom"]], "Plotting models on a (counts) map": [[488, "plotting-models-on-a-counts-map"]], "Plotting the final results of the 1D Analysis": [[456, "plotting-the-final-results-of-the-1d-analysis"]], "Plotting the map content": [[531, "plotting-the-map-content"]], "Plotting the results": [[466, "plotting-the-results"]], "Plotting the underlying region": [[531, "plotting-the-underlying-region"]], "Point Spread Function": [[524, null]], "Point source sensitivity": [[450, null]], "Point spatial model": [[539, null]], "Point spread function": [[493, "point-spread-function"]], "PointSpatialModel": [[251, null]], "PointingInfo": [[94, null]], "PointingMode": [[95, null]], "Possible implementations": [[406, "possible-implementations"]], "Post release": [[409, "post-release"]], "Power Law Fit": [[453, "power-law-fit"]], "Power law 2 spectral model": [[557, null]], "Power law norm spectral model": [[558, null]], "Power law spectral model": [[556, null]], "PowerLaw temporal model": [[570, null]], "PowerLaw2SpectralModel": [[252, null]], "PowerLawNormSpectralModel": [[253, null]], "PowerLawSpectralModel": [[254, null]], "PowerLawTemporalModel": [[255, null]], "Predicted counts": [[514, "predicted-counts"]], "Prepare and run the event sampler": [[468, "prepare-and-run-the-event-sampler"]], "Prepare the datasets creation": [[452, "prepare-the-datasets-creation"]], "Preparing reduced datasets geometry": [[503, "preparing-reduced-datasets-geometry"]], "Prerequisites": [[452, "prerequisites"], [453, "prerequisites"], [455, "prerequisites"], [456, "prerequisites"], [457, "prerequisites"], [458, "prerequisites"], [460, "prerequisites"], [464, "prerequisites"], [466, "prerequisites"], [467, "prerequisites"], [468, "prerequisites"], [469, "prerequisites"], [471, "prerequisites"], [472, "prerequisites"], [473, "prerequisites"], [474, "prerequisites"], [478, "prerequisites"], [483, "prerequisites"], [487, "prerequisites"], [488, "prerequisites"], [491, "prerequisites"], [502, "prerequisites"], [503, "prerequisites"]], "Pretty-print source information": [[480, "pretty-print-source-information"]], "PrimaryFlux": [[26, null]], "Prior": [[256, null]], "PriorParameter": [[216, null]], "PriorParameters": [[217, null]], "Priors": [[491, null]], "Profile Estimation": [[469, "profile-estimation"]], "Profile Likelihood": [[581, "profile-likelihood"]], "Profiles": [[479, "profiles"]], "Project Management": [[389, "project-management"]], "Project setup": [[410, null]], "Projects": [[389, "projects"]], "Proposal": [[388, "proposal"], [390, "proposal"], [391, "proposal"], [392, "proposal"], [393, "proposal"], [394, "proposal"], [395, "proposal"], [396, "proposal"], [398, "proposal"], [399, "proposal"], [400, "proposal"], [401, "proposal"], [402, "proposal"], [403, "proposal"]], "Proposal of API for flux estimate results": [[404, "proposal-of-api-for-flux-estimate-results"]], "Proposed Approach": [[469, "proposed-approach"]], "Proposed approach": [[452, "proposed-approach"], [453, "proposed-approach"], [456, "proposed-approach"], [458, "proposed-approach"], [459, "proposed-approach"], [460, "proposed-approach"], [461, "proposed-approach"], [464, "proposed-approach"], [467, "proposed-approach"], [468, "proposed-approach"], [471, "proposed-approach"], [472, "proposed-approach"], [473, "proposed-approach"], [474, "proposed-approach"], [477, "proposed-approach"], [478, "proposed-approach"], [483, "proposed-approach"], [487, "proposed-approach"], [488, "proposed-approach"], [490, "proposed-approach"], [502, "proposed-approach"], [503, "proposed-approach"]], "Proposed class diagram": [[390, "proposed-class-diagram"]], "Proposed metadata classes": [[407, "proposed-metadata-classes"]], "Proposed solution": [[407, "proposed-solution"]], "Pull Requests": [[433, "pull-requests"], [434, "pull-requests"], [442, "pull-requests"], [443, "pull-requests"], [444, "pull-requests"], [445, "pull-requests"], [446, "pull-requests"], [447, "pull-requests"]], "Pull requests": [[419, "pull-requests"], [420, "pull-requests"], [421, "pull-requests"], [422, "pull-requests"], [423, "pull-requests"], [424, "pull-requests"], [425, "pull-requests"], [426, "pull-requests"], [427, "pull-requests"], [428, "pull-requests"], [429, "pull-requests"], [430, "pull-requests"], [431, "pull-requests"], [432, "pull-requests"], [435, "pull-requests"], [436, "pull-requests"], [437, "pull-requests"], [438, "pull-requests"], [439, "pull-requests"], [440, "pull-requests"], [441, "pull-requests"]], "Pulsar": [[51, null]], "Pulsar Source Models": [[510, null]], "Pulsar Wind Nebula Source Models": [[511, null]], "Pulsar analysis": [[475, null]], "Python": [[416, "id2"]], "Python scripts": [[416, "python-scripts"]], "Python version support": [[380, "python-version-support"]], "RadMax2D": [[165, null]], "Read and Introduce Data": [[469, "read-and-introduce-data"]], "Read in input images": [[459, "read-in-input-images"]], "Read the datasets": [[488, "read-the-datasets"]], "Read the energy-dependent model": [[468, "read-the-energy-dependent-model"]], "Reading Maps": [[486, "reading-maps"]], "Reading and Writing": [[486, "reading-and-writing"]], "Reading and writing masks": [[487, "reading-and-writing-masks"]], "Reading different datasets": [[464, "reading-different-datasets"]], "RecoPSFMap": [[166, null]], "Recommended Setup": [[412, "recommended-setup"], [414, null]], "Reference": [[400, "reference"], [578, "reference"]], "References": [[577, "publications"]], "Reflected regions background": [[485, "reflected-regions-background"], [527, null]], "ReflectedRegionsBackgroundMaker": [[175, null]], "ReflectedRegionsFinder": [[176, null]], "Region arguments": [[394, "region-arguments"]], "RegionGeom": [[201, null], [531, "regiongeom"]], "RegionGeom and RegionNDMap": [[531, null]], "RegionGeom and coordinates": [[531, "regiongeom-and-coordinates"]], "RegionNDMap": [[202, null], [531, "regionndmap"]], "RegionsFinder": [[177, null]], "Relation to WCS geometries": [[531, "relation-to-wcs-geometries"]], "Release notes": [[380, "release-notes"], [418, null]], "Release preparation, feature freeze": [[405, "release-preparation-feature-freeze"]], "Release scheduling and LTS": [[405, "release-scheduling-and-lts"]], "Releases": [[389, "releases"], [406, "releases"], [410, "releases"]], "Releasing the final version of the major release": [[409, "releasing-the-final-version-of-the-major-release"]], "Releasing the first major release candidate": [[409, "releasing-the-first-major-release-candidate"]], "Removing a model from a dataset": [[488, "removing-a-model-from-a-dataset"]], "Removing an attribute": [[380, "removing-an-attribute"]], "Renaming an argument": [[380, "renaming-an-argument"]], "Required dependencies": [[379, "required-dependencies"], [397, "required-dependencies"]], "Requirements": [[407, "requirements"]], "Resampling datasets": [[481, "resampling-datasets"]], "Resolve gammapy.detect": [[401, "resolve-gammapy-detect"]], "Results": [[450, "results"]], "Results exploration": [[456, "results-exploration"]], "Ring background": [[485, "ring-background"], [528, null]], "Ring background map": [[461, null]], "RingBackgroundMaker": [[178, null]], "Rotated regions": [[394, "rotated-regions"]], "Run Estimation": [[469, "run-estimation"]], "Run Estimator": [[466, "run-estimator"]], "Run data reduction chain": [[455, "run-data-reduction-chain"], [457, "run-data-reduction-chain"]], "Run the 1D data reduction": [[472, "run-the-1d-data-reduction"]], "Run the 3D data reduction": [[472, "run-the-3d-data-reduction"]], "Running config driven data reduction": [[578, "running-config-driven-data-reduction"]], "Running tests & building Documentation": [[383, "running-tests-building-documentation"]], "Running the Data Reduction": [[456, "running-the-data-reduction"]], "Running the analysis": [[502, "running-the-analysis"]], "Running the estimation": [[456, "running-the-estimation"]], "Running the first step of the analysis: the Data Reduction": [[456, "running-the-first-step-of-the-analysis-the-data-reduction"]], "Running the fit": [[456, "running-the-fit"]], "Running the light curve extraction in 1D": [[472, "running-the-light-curve-extraction-in-1d"]], "SED types": [[516, "sed-types"]], "SNR": [[52, null]], "SNRTrueloveMcKee": [[53, null]], "SPATIAL_MODEL_REGISTRY": [[257, null]], "SPECTRAL_MODEL_REGISTRY": [[258, null]], "Safe data range definition": [[526, "safe-data-range-definition"]], "Safe data range handling": [[485, "safe-data-range-handling"]], "SafeMaskMaker": [[179, null]], "Sample a source with energy-dependent temporal evolution": [[468, null]], "Sampling methods": [[393, "sampling-methods"]], "Sampling the source and background events": [[467, "sampling-the-source-and-background-events"]], "Save dataset to disk": [[456, "save-dataset-to-disk"], [502, "save-dataset-to-disk"], [503, "save-dataset-to-disk"]], "ScaleSpectralModel": [[259, null]], "ScaledRegularGridInterpolator": [[319, null]], "Scripts": [[498, "scripts"]], "Select a catalog subset": [[480, "select-a-catalog-subset"]], "Select a source": [[480, "select-a-source"]], "Select observations": [[465, "select-observations"]], "Select the ON region": [[452, "select-the-on-region"]], "Select the data": [[452, "select-the-data"], [473, "select-the-data"]], "Selecting models contributing to a given region": [[488, "selecting-models-contributing-to-a-given-region"]], "Selecting models from a list": [[488, "selecting-models-from-a-list"]], "SensitivityEstimator": [[132, null]], "Serialisation": [[408, "serialisation"], [484, "serialisation"], [484, "id1"], [484, "id2"], [494, "serialisation"]], "Serialisation and I/O": [[469, "serialisation-and-i-o"]], "Serialisation of datasets": [[514, "serialisation-of-datasets"]], "Serialisation of the fit result": [[456, "serialisation-of-the-fit-result"]], "Serialisation of the results": [[456, "serialisation-of-the-results"]], "Serialising models": [[488, "serialising-models"]], "Serialization": [[407, "serialization"]], "Setting fitting parameters": [[456, "setting-fitting-parameters"]], "Setting modeling and fitting parameters": [[502, "setting-modeling-and-fitting-parameters"]], "Setting the background normalization maker": [[502, "setting-the-background-normalization-maker"]], "Setting the data to use": [[502, "setting-the-data-to-use"]], "Setting the exclusion mask": [[456, "setting-the-exclusion-mask"], [502, "setting-the-exclusion-mask"]], "Setting the reduced datasets geometry": [[502, "setting-the-reduced-datasets-geometry"]], "Setup": [[450, "setup"], [451, "setup"], [452, "setup"], [453, "setup"], [455, "setup"], [456, "setup"], [457, "setup"], [458, "setup"], [459, "setup"], [460, "setup"], [461, "setup"], [465, "setup"], [466, "setup"], [467, "setup"], [468, "setup"], [469, "setup"], [472, "setup"], [473, "setup"], [474, "setup"], [477, "setup"], [478, "setup"], [479, "setup"], [481, "setup"], [485, "setup"], [486, "setup"], [487, "setup"], [488, "setup"], [489, "setup"], [493, "setup"], [494, "setup"], [502, "setup"], [503, "setup"], [504, "setup"]], "Shell spatial model": [[540, null]], "Shell2 spatial model": [[541, null]], "Shell2SpatialModel": [[260, null]], "ShellSpatialModel": [[261, null]], "Show images": [[465, "show-images"]], "Show the results tables": [[466, "show-the-results-tables"]], "Show various observation quantities": [[490, "show-various-observation-quantities"]], "SimplePulsar": [[54, null]], "Simplify YAML Parameter Representation": [[403, "simplify-yaml-parameter-representation"]], "Simplify YAML Representation": [[403, "simplify-yaml-representation"]], "Simulate multiple event lists": [[467, "simulate-multiple-event-lists"]], "Simulating a light curve": [[474, "simulating-a-light-curve"]], "Simulating and fitting a time varying source": [[474, null]], "Simulation": [[471, "simulation"]], "Simulation of MapDataset and SpectrumDataset": [[392, "simulation-of-mapdataset-and-spectrumdataset"]], "Simulation of a single spectrum": [[458, "simulation-of-a-single-spectrum"]], "Sine temporal model": [[571, null]], "SineTemporalModel": [[262, null]], "Skip unit tests for some Astropy versions": [[380, "skip-unit-tests-for-some-astropy-versions"]], "Sky and pixel regions": [[394, "sky-and-pixel-regions"]], "Sky maps (DL4)": [[530, null]], "SkyModel": [[263, null], [489, "skymodel"]], "Smooth broken power law spectral model": [[559, null]], "SmoothBrokenPowerLawSpectralModel": [[264, null]], "Some terminology": [[390, "some-terminology"]], "Source Detection": [[465, "source-detection"]], "Source candidates": [[459, "source-candidates"]], "Source catalogs": [[480, null], [504, "source-catalogs"], [513, null]], "Source detection and significance maps": [[459, null]], "Source information": [[480, "source-information"]], "Source models": [[480, "source-models"], [493, "source-models"]], "Source object": [[480, "source-object"]], "Source statistic": [[455, "source-statistic"]], "SourceCatalog": [[56, null]], "SourceCatalog1LHAASO": [[57, null]], "SourceCatalog2FHL": [[58, null]], "SourceCatalog2HWC": [[59, null]], "SourceCatalog2PC": [[60, null]], "SourceCatalog3FGL": [[61, null]], "SourceCatalog3FHL": [[62, null]], "SourceCatalog3HWC": [[63, null]], "SourceCatalog3PC": [[64, null]], "SourceCatalog4FGL": [[65, null]], "SourceCatalogGammaCat": [[66, null]], "SourceCatalogHGPS": [[67, null]], "SourceCatalogLargeScaleHGPS": [[68, null]], "SourceCatalogObject": [[69, null]], "SourceCatalogObject1LHAASO": [[70, null]], "SourceCatalogObject2FHL": [[71, null]], "SourceCatalogObject2HWC": [[72, null]], "SourceCatalogObject2PC": [[73, null]], "SourceCatalogObject3FGL": [[74, null]], "SourceCatalogObject3FHL": [[75, null]], "SourceCatalogObject3HWC": [[76, null]], "SourceCatalogObject3PC": [[77, null]], "SourceCatalogObject4FGL": [[78, null]], "SourceCatalogObjectGammaCat": [[79, null]], "SourceCatalogObjectHGPS": [[80, null]], "SourceCatalogObjectHGPSComponent": [[81, null]], "SourceIRFModel": [[391, "sourceirfmodel"]], "Spatial analysis": [[465, "spatial-analysis"]], "Spatial models": [[489, "spatial-models"], [532, "spatial-models"]], "SpatialIRFModel": [[391, "spatialirfmodel"]], "SpatialModel": [[265, null]], "Special cases": [[581, "special-cases"]], "Specificities of the HGPS catalog": [[480, "specificities-of-the-hgps-catalog"]], "Spectral Absorption Model": [[403, "spectral-absorption-model"]], "Spectral Norm Models": [[403, "spectral-norm-models"]], "Spectral analysis": [[455, null]], "Spectral analysis of extended sources": [[452, null]], "Spectral analysis with energy-dependent directional cuts": [[457, null]], "Spectral analysis with the HLI": [[456, null]], "Spectral models": [[489, "spectral-models"], [532, "spectral-models"]], "Spectral models and flux points": [[504, "spectral-models-and-flux-points"]], "Spectral points": [[465, "spectral-points"]], "SpectralIRFModel": [[391, "spectralirfmodel"]], "SpectralModel": [[266, null]], "Spectrum": [[465, "spectrum"]], "Spectrum dataset": [[485, "spectrum-dataset"]], "SpectrumDataset": [[109, null], [392, "spectrumdataset"], [481, "spectrumdataset"]], "SpectrumDatasetMaker": [[180, null]], "SpectrumDatasetOnOff": [[110, null], [392, "spectrumdatasetonoff"]], "Sphinx gallery extension": [[381, "sphinx-gallery-extension"]], "Spiral arm models": [[508, "spiral-arm-models"]], "Stack observations": [[455, "stack-observations"]], "Stacked analysis": [[463, "stacked-analysis"]], "Stacking Multiple Datasets": [[514, "stacking-multiple-datasets"]], "Statistical utility functions": [[580, null]], "Status": [[390, "status"], [399, "status"]], "Storing the energy dispersion information as a function of sky position": [[522, "storing-the-energy-dispersion-information-as-a-function-of-sky-position"]], "Storing the results and further studies": [[395, "storing-the-results-and-further-studies"]], "Sub-packages": [[507, "sub-packages"]], "Suggestions": [[406, "suggestions"]], "Summary": [[419, "summary"], [420, "summary"], [421, "summary"], [422, "summary"], [423, "summary"], [424, "summary"], [425, "summary"], [426, "summary"], [427, "summary"], [428, "summary"], [429, "summary"], [430, "summary"], [431, "summary"], [432, "summary"], [433, "summary"], [434, "summary"], [435, "summary"], [436, "summary"], [437, "summary"], [438, "summary"], [439, "summary"], [440, "summary"], [441, "summary"], [442, "summary"], [443, "summary"], [444, "summary"], [445, "summary"], [446, "summary"], [447, "summary"], [463, "summary"], [494, "summary"]], "Super Exponential Cutoff Power Law Model used for 4FGL-DR1 (and DR2)": [[562, null]], "Super Exponential Cutoff Power Law Model used for 4FGL-DR3": [[561, null]], "Super exponential cutoff power law model used for 3FGL": [[560, null]], "SuperExpCutoffPowerLaw3FGLSpectralModel": [[267, null]], "SuperExpCutoffPowerLaw4FGLDR3SpectralModel": [[268, null]], "SuperExpCutoffPowerLaw4FGLSpectralModel": [[269, null]], "Supernova Remnant Models": [[512, null]], "Support for Asymmetric IRFs": [[484, "support-for-asymmetric-irfs"]], "Support of python Cython, numpy and astropy versions": [[405, "support-of-python-cython-numpy-and-astropy-versions"]], "Survey Map Script": [[500, null]], "Survey panel plots": [[583, "survey-panel-plots"]], "TEMPORAL_MODEL_REGISTRY": [[270, null]], "TS map estimation": [[459, "ts-map-estimation"]], "TSMapEstimator": [[133, null]], "Table conversion": [[482, "table-conversion"]], "Task List": [[392, "task-list"]], "Task list": [[391, "task-list"], [393, "task-list"], [394, "task-list"], [395, "task-list"], [396, "task-list"], [397, "task-list"]], "Template spatial model": [[542, null]], "Template spectral model": [[563, null]], "TemplateNDSpatialModel": [[271, null]], "TemplateNDSpectralModel": [[272, null]], "TemplateNPredModel": [[273, null]], "TemplatePhaseCurveTemporalModel": [[274, null]], "TemplateSpatialModel": [[275, null]], "TemplateSpectralModel": [[276, null]], "Temporal models": [[489, "temporal-models"], [532, "temporal-models"]], "TemporalModel": [[277, null]], "Testing of plotting functions": [[380, "testing-of-plotting-functions"]], "The case of image and cube analysis": [[386, "the-case-of-image-and-cube-analysis"]], "The chi-squared value for each parameter of interest": [[466, "the-chi-squared-value-for-each-parameter-of-interest"]], "The gammapy-data repository": [[410, "the-gammapy-data-repository"]], "The gammapy-extra repository": [[410, "the-gammapy-extra-repository"]], "The index tables": [[515, "the-index-tables"]], "The reflected region finder": [[527, "the-reflected-region-finder"]], "The results for testing energy dependence": [[466, "the-results-for-testing-energy-dependence"]], "The results of the source signal above the background in each energy bin": [[466, "the-results-of-the-source-signal-above-the-background-in-each-energy-bin"]], "The setup": [[464, "the-setup"], [482, "the-setup"], [483, "the-setup"], [491, "the-setup"]], "Theta squared event distribution": [[496, "theta-squared-event-distribution"]], "Time": [[498, "time"]], "Time bin preparation": [[395, "time-bin-preparation"]], "Time bins": [[395, "time-bins"]], "Time differences": [[582, "time-differences"]], "Time format and scale": [[582, "time-format-and-scale"]], "Time handling in Gammapy": [[582, "time-handling-in-gammapy"]], "Time resolved spectroscopy algorithm": [[477, "time-resolved-spectroscopy-algorithm"]], "Time resolved spectroscopy estimator": [[477, null]], "Time variable source using a lightcurve": [[467, "time-variable-source-using-a-lightcurve"]], "TimeMapAxis": [[203, null], [486, "timemapaxis"]], "Timing Analysis": [[389, "timing-analysis"]], "TimmerKonig_lightcurve_simulator": [[289, null]], "Troubleshooting": [[415, null], [578, "troubleshooting"]], "Tutorial overview": [[466, "tutorial-overview"], [493, "tutorial-overview"], [495, "tutorial-overview"]], "Tutorials": [[400, "tutorials"], [498, null]], "Tutorials Overview": [[412, "tutorials-overview"]], "Type validation": [[407, "type-validation"]], "Types of supported datasets": [[514, "types-of-supported-datasets"]], "Unification of flux estimators?": [[404, "unification-of-flux-estimators"]], "UniformPrior": [[278, null]], "Unify calling interface for models": [[391, "unify-calling-interface-for-models"]], "Upsampling and downsampling non-spatial axes": [[531, "upsampling-and-downsampling-non-spatial-axes"]], "Use cases": [[408, "use-cases"]], "Use cases / scenarios": [[390, "use-cases-scenarios"]], "User guide": [[519, null]], "User perspective": [[387, "user-perspective"]], "Using Anaconda / Miniconda": [[413, "using-anaconda-miniconda"]], "Using Factory Methods": [[486, "using-factory-methods"]], "Using Gammapy": [[416, null]], "Using Gammapy IRFs": [[484, null]], "Using Mamba": [[413, "using-mamba"]], "Using YAML configuration files": [[502, "using-yaml-configuration-files"]], "Using YAML configuration files for setting/writing the Data Reduction parameters": [[456, "using-yaml-configuration-files-for-setting-writing-the-data-reduction-parameters"]], "Using data stored into your computer": [[456, "using-data-stored-into-your-computer"]], "Using gammapy.analysis": [[517, "using-gammapy-analysis"]], "Using gammapy.astro.darkmatter": [[506, "using-gammapy-astro-darkmatter"]], "Using gammapy.astro.source": [[509, "using-gammapy-astro-source"]], "Using gammapy.catalog": [[513, "using-gammapy-catalog"]], "Using gammapy.data": [[515, "using-gammapy-data"]], "Using gammapy.datasets": [[514, "using-gammapy-datasets"]], "Using gammapy.estimators": [[516, "using-gammapy-estimators"]], "Using gammapy.irf": [[523, "using-gammapy-irf"]], "Using gammapy.makers": [[526, "using-gammapy-makers"]], "Using gammapy.maps": [[530, "using-gammapy-maps"]], "Using gammapy.modeling": [[575, "using-gammapy-modeling"]], "Using masks": [[481, "using-masks"]], "Using other package managers": [[413, "using-other-package-managers"]], "Using pip": [[413, "using-pip"]], "Using regions": [[527, "using-regions"]], "Using the reflected background estimator": [[527, "using-the-reflected-background-estimator"]], "Utility functions": [[582, null]], "ValleeSpiral": [[38, null]], "Variables": [[1, "variables"], [2, "variables"], [3, "variables"], [4, "variables"], [5, "variables"], [7, "variables"], [8, "variables"], [10, "variables"], [13, "variables"], [13, "id11"]], "Velocity distributions": [[508, "velocity-distributions"]], "Venv Environments": [[411, "venv-environments"]], "Version 0.1": [[418, "version-0-1"]], "Version 0.10": [[418, "version-0-10"]], "Version 0.11": [[418, "version-0-11"]], "Version 0.12": [[418, "version-0-12"]], "Version 0.13": [[418, "version-0-13"]], "Version 0.14": [[418, "version-0-14"]], "Version 0.15": [[418, "version-0-15"]], "Version 0.16": [[418, "version-0-16"]], "Version 0.17": [[418, "version-0-17"]], "Version 0.18": [[418, "version-0-18"]], "Version 0.19": [[418, "version-0-19"]], "Version 0.2": [[418, "version-0-2"]], "Version 0.20": [[418, "version-0-20"]], "Version 0.20.1": [[418, "version-0-20-1"]], "Version 0.3": [[418, "version-0-3"]], "Version 0.4": [[418, "version-0-4"]], "Version 0.5": [[418, "version-0-5"]], "Version 0.6": [[418, "version-0-6"]], "Version 0.7": [[418, "version-0-7"]], "Version 0.8": [[418, "version-0-8"]], "Version 0.9": [[418, "version-0-9"]], "Version 1.0": [[418, "version-1-0"]], "Version 1.0.1": [[418, "version-1-0-1"]], "Version 1.0.2": [[418, "version-1-0-2"]], "Version 1.1": [[418, "version-1-1"]], "Version 1.2": [[418, "version-1-2"]], "Version 1.3": [[418, "version-1-3"]], "Version numbering": [[405, "version-numbering"]], "Virtual Environments": [[411, null]], "Visualing a RegionNDMap": [[531, "visualing-a-regionndmap"]], "Visualising the results": [[477, "visualising-the-results"]], "Visualization": [[583, null]], "Visualizing and Plotting": [[486, "visualizing-and-plotting"]], "WStat : Poisson data with background measurement": [[579, "wstat-poisson-data-with-background-measurement"]], "WStat counts statistic": [[580, "wstat-counts-statistic"]], "WStatCountsStatistic": [[290, null]], "WcsGeom": [[204, null]], "WcsMap": [[205, null]], "WcsNDMap": [[206, null]], "What checks and conversions should I do for inputs?": [[380, "what-checks-and-conversions-should-i-do-for-inputs"]], "What is a PIG?": [[385, "what-is-a-pig"]], "What is this?": [[383, "what-is-this"]], "What next?": [[453, "what-next"], [455, "what-next"], [459, "what-next"], [465, "what-next"], [472, "what-next"], [504, "what-next"]], "What others have": [[390, "what-others-have"]], "What we have": [[388, "what-we-have"], [396, "what-we-have"], [404, "what-we-have"]], "What\u2019s new?": [[420, "what-s-new"], [421, "what-s-new"], [422, "what-s-new"], [423, "what-s-new"], [424, "what-s-new"], [425, "what-s-new"], [426, "what-s-new"], [427, "what-s-new"], [428, "what-s-new"], [429, "what-s-new"], [430, "what-s-new"], [431, "what-s-new"], [433, "what-s-new"], [434, "what-s-new"], [436, "what-s-new"], [437, "what-s-new"], [438, "what-s-new"], [439, "what-s-new"], [440, "what-s-new"], [441, "what-s-new"]], "What\u2019s next": [[502, "whats-next"]], "What\u2019s next?": [[456, "whats-next"]], "Where should I import from?": [[380, "where-should-i-import-from"]], "WobbleRegionsFinder": [[181, null]], "Working with event lists": [[515, "working-with-event-lists"]], "Write your own CLI": [[578, "write-your-own-cli"]], "Writing Maps": [[486, "writing-maps"]], "Writing a PIG": [[385, "writing-a-pig"]], "Writing and reading a RegionNDMap to/from a FITS file": [[531, "writing-and-reading-a-regionndmap-to-from-a-fits-file"]], "Writing event lists and GTIs to file": [[515, "writing-event-lists-and-gtis-to-file"]], "YAML representation": [[534, "yaml-representation"], [535, "yaml-representation"], [536, "yaml-representation"], [537, "yaml-representation"], [538, "yaml-representation"], [539, "yaml-representation"], [540, "yaml-representation"], [541, "yaml-representation"], [542, "yaml-representation"], [544, "yaml-representation"], [545, "yaml-representation"], [546, "yaml-representation"], [547, "yaml-representation"], [548, "yaml-representation"], [549, "yaml-representation"], [550, "yaml-representation"], [551, "yaml-representation"], [552, "yaml-representation"], [553, "yaml-representation"], [554, "yaml-representation"], [555, "yaml-representation"], [556, "yaml-representation"], [557, "yaml-representation"], [558, "yaml-representation"], [559, "yaml-representation"], [560, "yaml-representation"], [561, "yaml-representation"], [562, "yaml-representation"], [563, "yaml-representation"], [565, "yaml-representation"], [566, "yaml-representation"], [567, "yaml-representation"], [568, "yaml-representation"], [569, "yaml-representation"], [570, "yaml-representation"], [571, "yaml-representation"], [572, "yaml-representation"], [573, "yaml-representation"]], "YusifovKucuk2004": [[39, null]], "YusifovKucuk2004B": [[40, null]], "ZhaoProfile": [[27, null]], "absolute_time": [[361, null]], "add_colorbar": [[368, null]], "add_observed_parameters": [[41, null]], "add_pulsar_parameters": [[42, null]], "add_pwn_parameters": [[43, null]], "add_snr_parameters": [[44, null]], "analysis": [[11, "gammapy-analysis"]], "analysis - High level interface": [[0, null]], "annotate_heatmap": [[369, null]], "apply_edisp": [[111, null], [116, null]], "arbitrary type input and validation": [[407, "arbitrary-type-input-and-validation"]], "as a function of of true energy and offset angle (EDISP_2D)": [[522, "as-a-function-of-of-true-energy-and-offset-angle-gadf-edisp-2d"]], "as a function of reconstructed energy and detector coordinates (BKG_3D)": [[521, "as-a-function-of-reconstructed-energy-and-detector-coordinates-gadf-bkg-3d"]], "as a function of reconstructed energy and offset angle, radially symmetric (BKG_2D)": [[521, "as-a-function-of-reconstructed-energy-and-offset-angle-radially-symmetric-gadf-bkg-2d"]], "as a function of true energy (RMF)": [[522, "as-a-function-of-true-energy-gadf-ogip-rmf"]], "as a function of true energy and offset angle (AEFF_2D)": [[520, "as-a-function-of-true-energy-and-offset-angle-gadf-aeff-2d"]], "assert_quantity_allclose": [[355, null]], "assert_skycoord_allclose": [[356, null]], "assert_time_allclose": [[357, null]], "astro - Astrophysics": [[1, null]], "cartesian": [[308, null]], "cash": [[291, null]], "cash_sum_cython": [[292, null]], "catalog - Source catalogs": [[2, null]], "check": [[11, "gammapy-check"]], "codemeta.json": [[406, "codemeta-json"]], "colormap_hess": [[370, null]], "colormap_milagro": [[371, null]], "combine_flux_maps": [[134, null]], "combine_significance_maps": [[135, null]], "compound_region_to_regions": [[338, null]], "compute_chisq": [[293, null]], "compute_flux_doubling": [[294, null]], "compute_fpp": [[295, null]], "compute_fvar": [[296, null]], "compute_lightcurve_discrete_correlation": [[136, null]], "compute_lightcurve_doublingtime": [[137, null]], "compute_lightcurve_fpp": [[138, null]], "compute_lightcurve_fvar": [[139, null]], "config": [[11, "gammapy-analysis-config"], [11, "gammapy-workflow-config"]], "containment_radius": [[207, null]], "containment_region": [[208, null]], "create_cosmic_ray_spectral_model": [[279, null]], "create_crab_spectral_model": [[280, null]], "create_empty_map_dataset_from_irfs": [[112, null]], "create_fermi_isotropic_diffuse_model": [[281, null]], "create_map_dataset_from_observation": [[113, null]], "create_map_dataset_geoms": [[114, null]], "cstat": [[297, null]], "data": [[407, "data"]], "data - DL3 data and observations": [[3, null]], "datasets": [[11, "gammapy-download-datasets"]], "datasets - Reduced datasets": [[4, null]], "discrete_correlation": [[298, null]], "docs.gammapy.org": [[410, "docs-gammapy-org"]], "download": [[11, "gammapy-download"]], "draw": [[330, null]], "earth_location_from_dict": [[317, null]], "estimate_exposure_reco_energy": [[140, null]], "estimators - High level estimators": [[5, null]], "f_cash_root_cython": [[299, null]], "find_peaks": [[141, null]], "find_peaks_in_flux_map": [[142, null]], "fov_to_sky": [[309, null]], "from_yaml": [[343, null]], "galactic": [[310, null]], "gamLike": [[506, "gamlike"]], "gammapy": [[11, "gammapy"]], "gammapy.analysis Package": [[0, "module-gammapy.analysis"]], "gammapy.astro.darkmatter Package": [[1, "module-gammapy.astro.darkmatter"]], "gammapy.astro.population Package": [[1, "module-gammapy.astro.population"]], "gammapy.astro.source Package": [[1, "module-gammapy.astro.source"]], "gammapy.catalog Package": [[2, "module-gammapy.catalog"]], "gammapy.data Package": [[3, "module-gammapy.data"]], "gammapy.datasets Package": [[4, "module-gammapy.datasets"]], "gammapy.datasets.utils Module": [[4, "module-gammapy.datasets.utils"]], "gammapy.estimators Package": [[5, "module-gammapy.estimators"]], "gammapy.estimators.utils Module": [[5, "module-gammapy.estimators.utils"]], "gammapy.irf Package": [[7, "module-gammapy.irf"]], "gammapy.makers Package": [[8, "module-gammapy.makers"]], "gammapy.makers.utils Module": [[8, "module-gammapy.makers.utils"]], "gammapy.maps Package": [[9, "module-gammapy.maps"]], "gammapy.modeling Package": [[10, "module-gammapy.modeling"]], "gammapy.modeling.models Package": [[10, "module-gammapy.modeling.models"]], "gammapy.modeling.models.utils Module": [[10, "module-gammapy.modeling.models.utils"]], "gammapy.org": [[410, "gammapy-org"]], "gammapy.stats Package": [[12, "module-gammapy.stats"]], "gammapy.utils.cluster Module": [[13, "module-gammapy.utils.cluster"]], "gammapy.utils.coordinates Package": [[13, "module-gammapy.utils.coordinates"]], "gammapy.utils.fits Module": [[13, "module-gammapy.utils.fits"]], "gammapy.utils.integrate Module": [[13, "module-gammapy.utils.integrate"]], "gammapy.utils.interpolation Module": [[13, "module-gammapy.utils.interpolation"]], "gammapy.utils.parallel Module": [[13, "module-gammapy.utils.parallel"]], "gammapy.utils.random Package": [[13, "module-gammapy.utils.random"]], "gammapy.utils.regions Module": [[13, "module-gammapy.utils.regions"]], "gammapy.utils.scripts Module": [[13, "module-gammapy.utils.scripts"]], "gammapy.utils.table Module": [[13, "module-gammapy.utils.table"]], "gammapy.utils.testing Module": [[13, "module-gammapy.utils.testing"]], "gammapy.utils.time Module": [[13, "module-gammapy.utils.time"]], "gammapy.utils.units Module": [[13, "module-gammapy.utils.units"]], "gammapy.visualization Package": [[14, "module-gammapy.visualization"]], "get_combined_flux_maps": [[143, null]], "get_combined_significance_maps": [[144, null]], "get_images_paths": [[344, null]], "get_irfs_features": [[96, null]], "get_random_state": [[331, null]], "get_rebinned_axis": [[145, null]], "get_wstat_gof_terms": [[300, null]], "get_wstat_mu_bkg": [[301, null]], "hierarchical_clustering": [[305, null]], "hstack_columns": [[350, null]], "info": [[11, "gammapy-info"]], "integrate_spectrum": [[282, null]], "interpolate_profile": [[320, null]], "interpolation_scale": [[321, null]], "irf - Instrument response functions": [[7, null]], "load_irf_dict_from_file": [[167, null]], "logging": [[11, "gammapy-check-logging"]], "make_base_catalog_galactic": [[45, null]], "make_catalog_random_positions_cube": [[46, null]], "make_catalog_random_positions_sphere": [[47, null]], "make_concentric_annulus_sky_regions": [[339, null]], "make_counts_rad_max": [[182, null]], "make_edisp_kernel_map": [[183, null]], "make_edisp_map": [[184, null]], "make_effective_livetime_map": [[185, null]], "make_map_background_irf": [[186, null]], "make_map_exposure_true_energy": [[187, null]], "make_observation_time_map": [[188, null]], "make_orthogonal_rectangle_sky_regions": [[340, null]], "make_path": [[345, null]], "make_psf_map": [[189, null]], "make_theta_squared_table": [[190, null]], "makers - Data reduction": [[8, null]], "maps - Sky maps": [[9, null]], "modeling - Models and fitting": [[10, null]], "motion_since_birth": [[311, null]], "mpl_plot_check": [[358, null]], "multiprocessing_manager": [[327, null]], "norm_bounds_cython": [[302, null]], "normalize": [[332, null]], "notebooks": [[11, "gammapy-download-notebooks"]], "observatory_locations": [[97, null]], "pdf": [[333, null]], "plot_contour_line": [[372, null]], "plot_distribution": [[373, null]], "plot_heatmap": [[374, null]], "plot_map_rgb": [[375, null]], "plot_npred_signal": [[376, null]], "plot_spectrum_datasets_off_regions": [[377, null]], "plot_theta_squared_table": [[378, null]], "polar": [[312, null]], "pydantic": [[407, "pydantic"]], "radial_distributions": [[48, null]], "read_hermes_cube": [[283, null], [285, null]], "read_yaml": [[346, null]], "recursive_merge_dicts": [[347, null]], "region_to_frame": [[341, null]], "regions_to_compound_region": [[342, null]], "requires_data": [[359, null]], "requires_dependency": [[360, null]], "resample_energy_edges": [[146, null]], "run": [[11, "gammapy-analysis-run"], [11, "gammapy-workflow-run"]], "run_multiprocessing": [[328, null]], "sample_powerlaw": [[334, null]], "sample_sphere": [[335, null]], "sample_sphere_distance": [[336, null]], "sample_times": [[337, null]], "scale_plot_flux": [[284, null]], "scripts - Command line tools": [[11, null]], "select_nested_models": [[286, null]], "sky_to_fov": [[313, null]], "split_dataset": [[115, null], [117, null]], "standard_scaler": [[306, null]], "standardise_unit": [[365, null]], "stat_profile_ul_scipy": [[287, null]], "stats - Statistics": [[12, null]], "structure_function": [[303, null]], "table_row_to_dict": [[351, null]], "table_standardise_units_copy": [[352, null]], "table_standardise_units_inplace": [[353, null]], "the base class": [[407, "the-base-class"]], "time_ref_from_dict": [[362, null]], "time_ref_to_dict": [[363, null]], "time_relative_to_ref": [[364, null]], "to_yaml": [[348, null]], "trapz_loglog": [[318, null]], "unit_from_fits_image_hdu": [[366, null]], "utils - Utilities": [[13, null]], "velocity_distributions": [[49, null]], "velocity_glon_glat": [[314, null]], "visualization - Plotting features": [[14, null]], "workflow": [[11, "gammapy-workflow"]], "write_yaml": [[349, null]], "wstat": [[304, null]]}, "docnames": ["api-reference/analysis", "api-reference/astro", "api-reference/catalog", "api-reference/data", "api-reference/datasets", "api-reference/estimators", "api-reference/index", "api-reference/irf", "api-reference/makers", "api-reference/maps", "api-reference/modeling", "api-reference/scripts", "api-reference/stats", "api-reference/utils", "api-reference/visualization", "api/gammapy.analysis.Analysis", "api/gammapy.analysis.AnalysisConfig", "api/gammapy.astro.darkmatter.BurkertProfile", "api/gammapy.astro.darkmatter.DMProfile", "api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel", "api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel", "api/gammapy.astro.darkmatter.EinastoProfile", "api/gammapy.astro.darkmatter.IsothermalProfile", "api/gammapy.astro.darkmatter.JFactory", "api/gammapy.astro.darkmatter.MooreProfile", "api/gammapy.astro.darkmatter.NFWProfile", "api/gammapy.astro.darkmatter.PrimaryFlux", "api/gammapy.astro.darkmatter.ZhaoProfile", "api/gammapy.astro.population.CaseBattacharya1998", "api/gammapy.astro.population.Exponential", "api/gammapy.astro.population.FaucherKaspi2006", "api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal", "api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian", "api/gammapy.astro.population.FaucherSpiral", "api/gammapy.astro.population.LogSpiral", "api/gammapy.astro.population.Lorimer2006", "api/gammapy.astro.population.Paczynski1990", "api/gammapy.astro.population.Paczynski1990Velocity", "api/gammapy.astro.population.ValleeSpiral", "api/gammapy.astro.population.YusifovKucuk2004", "api/gammapy.astro.population.YusifovKucuk2004B", "api/gammapy.astro.population.add_observed_parameters", "api/gammapy.astro.population.add_pulsar_parameters", "api/gammapy.astro.population.add_pwn_parameters", "api/gammapy.astro.population.add_snr_parameters", "api/gammapy.astro.population.make_base_catalog_galactic", "api/gammapy.astro.population.make_catalog_random_positions_cube", "api/gammapy.astro.population.make_catalog_random_positions_sphere", "api/gammapy.astro.population.radial_distributions", "api/gammapy.astro.population.velocity_distributions", "api/gammapy.astro.source.PWN", "api/gammapy.astro.source.Pulsar", "api/gammapy.astro.source.SNR", "api/gammapy.astro.source.SNRTrueloveMcKee", "api/gammapy.astro.source.SimplePulsar", "api/gammapy.catalog.CATALOG_REGISTRY", "api/gammapy.catalog.SourceCatalog", "api/gammapy.catalog.SourceCatalog1LHAASO", "api/gammapy.catalog.SourceCatalog2FHL", "api/gammapy.catalog.SourceCatalog2HWC", "api/gammapy.catalog.SourceCatalog2PC", "api/gammapy.catalog.SourceCatalog3FGL", "api/gammapy.catalog.SourceCatalog3FHL", "api/gammapy.catalog.SourceCatalog3HWC", "api/gammapy.catalog.SourceCatalog3PC", "api/gammapy.catalog.SourceCatalog4FGL", "api/gammapy.catalog.SourceCatalogGammaCat", "api/gammapy.catalog.SourceCatalogHGPS", "api/gammapy.catalog.SourceCatalogLargeScaleHGPS", "api/gammapy.catalog.SourceCatalogObject", "api/gammapy.catalog.SourceCatalogObject1LHAASO", "api/gammapy.catalog.SourceCatalogObject2FHL", "api/gammapy.catalog.SourceCatalogObject2HWC", "api/gammapy.catalog.SourceCatalogObject2PC", "api/gammapy.catalog.SourceCatalogObject3FGL", "api/gammapy.catalog.SourceCatalogObject3FHL", "api/gammapy.catalog.SourceCatalogObject3HWC", "api/gammapy.catalog.SourceCatalogObject3PC", "api/gammapy.catalog.SourceCatalogObject4FGL", "api/gammapy.catalog.SourceCatalogObjectGammaCat", "api/gammapy.catalog.SourceCatalogObjectHGPS", "api/gammapy.catalog.SourceCatalogObjectHGPSComponent", "api/gammapy.data.DataStore", "api/gammapy.data.EventList", "api/gammapy.data.EventListMetaData", "api/gammapy.data.FixedPointingInfo", "api/gammapy.data.GTI", "api/gammapy.data.HDUIndexTable", "api/gammapy.data.Observation", "api/gammapy.data.ObservationFilter", "api/gammapy.data.ObservationMetaData", "api/gammapy.data.ObservationTable", "api/gammapy.data.Observations", "api/gammapy.data.ObservationsEventsSampler", "api/gammapy.data.PointingInfo", "api/gammapy.data.PointingMode", "api/gammapy.data.get_irfs_features", "api/gammapy.data.observatory_locations", "api/gammapy.datasets.DATASET_REGISTRY", "api/gammapy.datasets.Dataset", "api/gammapy.datasets.Datasets", "api/gammapy.datasets.FluxPointsDataset", "api/gammapy.datasets.MapDataset", "api/gammapy.datasets.MapDatasetEventSampler", "api/gammapy.datasets.MapDatasetMetaData", "api/gammapy.datasets.MapDatasetOnOff", "api/gammapy.datasets.OGIPDatasetReader", "api/gammapy.datasets.OGIPDatasetWriter", "api/gammapy.datasets.ObservationEventSampler", "api/gammapy.datasets.SpectrumDataset", "api/gammapy.datasets.SpectrumDatasetOnOff", "api/gammapy.datasets.apply_edisp", "api/gammapy.datasets.create_empty_map_dataset_from_irfs", "api/gammapy.datasets.create_map_dataset_from_observation", "api/gammapy.datasets.create_map_dataset_geoms", "api/gammapy.datasets.split_dataset", "api/gammapy.datasets.utils.apply_edisp", "api/gammapy.datasets.utils.split_dataset", "api/gammapy.estimators.ASmoothMapEstimator", "api/gammapy.estimators.ESTIMATOR_REGISTRY", "api/gammapy.estimators.EnergyDependentMorphologyEstimator", "api/gammapy.estimators.Estimator", "api/gammapy.estimators.ExcessMapEstimator", "api/gammapy.estimators.FluxMaps", "api/gammapy.estimators.FluxMetaData", "api/gammapy.estimators.FluxPoints", "api/gammapy.estimators.FluxPointsEstimator", "api/gammapy.estimators.FluxProfileEstimator", "api/gammapy.estimators.ImageProfile", "api/gammapy.estimators.ImageProfileEstimator", "api/gammapy.estimators.LightCurveEstimator", "api/gammapy.estimators.ParameterEstimator", "api/gammapy.estimators.SensitivityEstimator", "api/gammapy.estimators.TSMapEstimator", "api/gammapy.estimators.utils.combine_flux_maps", "api/gammapy.estimators.utils.combine_significance_maps", "api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation", "api/gammapy.estimators.utils.compute_lightcurve_doublingtime", "api/gammapy.estimators.utils.compute_lightcurve_fpp", "api/gammapy.estimators.utils.compute_lightcurve_fvar", "api/gammapy.estimators.utils.estimate_exposure_reco_energy", "api/gammapy.estimators.utils.find_peaks", "api/gammapy.estimators.utils.find_peaks_in_flux_map", "api/gammapy.estimators.utils.get_combined_flux_maps", "api/gammapy.estimators.utils.get_combined_significance_maps", "api/gammapy.estimators.utils.get_rebinned_axis", "api/gammapy.estimators.utils.resample_energy_edges", "api/gammapy.irf.Background2D", "api/gammapy.irf.Background3D", "api/gammapy.irf.BackgroundIRF", "api/gammapy.irf.EDispKernel", "api/gammapy.irf.EDispKernelMap", "api/gammapy.irf.EDispMap", "api/gammapy.irf.EffectiveAreaTable2D", "api/gammapy.irf.EnergyDependentMultiGaussPSF", "api/gammapy.irf.EnergyDispersion2D", "api/gammapy.irf.FoVAlignment", "api/gammapy.irf.IRF", "api/gammapy.irf.IRFMap", "api/gammapy.irf.IRF_REGISTRY", "api/gammapy.irf.PSF3D", "api/gammapy.irf.PSFKernel", "api/gammapy.irf.PSFKing", "api/gammapy.irf.PSFMap", "api/gammapy.irf.ParametricPSF", "api/gammapy.irf.RadMax2D", "api/gammapy.irf.RecoPSFMap", "api/gammapy.irf.load_irf_dict_from_file", "api/gammapy.makers.AdaptiveRingBackgroundMaker", "api/gammapy.makers.DatasetsMaker", "api/gammapy.makers.FoVBackgroundMaker", "api/gammapy.makers.MAKER_REGISTRY", "api/gammapy.makers.Maker", "api/gammapy.makers.MapDatasetMaker", "api/gammapy.makers.PhaseBackgroundMaker", "api/gammapy.makers.ReflectedRegionsBackgroundMaker", "api/gammapy.makers.ReflectedRegionsFinder", "api/gammapy.makers.RegionsFinder", "api/gammapy.makers.RingBackgroundMaker", "api/gammapy.makers.SafeMaskMaker", "api/gammapy.makers.SpectrumDatasetMaker", "api/gammapy.makers.WobbleRegionsFinder", "api/gammapy.makers.utils.make_counts_rad_max", "api/gammapy.makers.utils.make_edisp_kernel_map", "api/gammapy.makers.utils.make_edisp_map", "api/gammapy.makers.utils.make_effective_livetime_map", "api/gammapy.makers.utils.make_map_background_irf", "api/gammapy.makers.utils.make_map_exposure_true_energy", "api/gammapy.makers.utils.make_observation_time_map", "api/gammapy.makers.utils.make_psf_map", "api/gammapy.makers.utils.make_theta_squared_table", "api/gammapy.maps.Geom", "api/gammapy.maps.HpxGeom", "api/gammapy.maps.HpxMap", "api/gammapy.maps.HpxNDMap", "api/gammapy.maps.LabelMapAxis", "api/gammapy.maps.Map", "api/gammapy.maps.MapAxes", "api/gammapy.maps.MapAxis", "api/gammapy.maps.MapCoord", "api/gammapy.maps.Maps", "api/gammapy.maps.RegionGeom", "api/gammapy.maps.RegionNDMap", "api/gammapy.maps.TimeMapAxis", "api/gammapy.maps.WcsGeom", "api/gammapy.maps.WcsMap", "api/gammapy.maps.WcsNDMap", "api/gammapy.maps.containment_radius", "api/gammapy.maps.containment_region", "api/gammapy.modeling.Covariance", "api/gammapy.modeling.CovarianceResult", "api/gammapy.modeling.Fit", "api/gammapy.modeling.FitResult", "api/gammapy.modeling.OptimizeResult", "api/gammapy.modeling.Parameter", "api/gammapy.modeling.Parameters", "api/gammapy.modeling.PriorParameter", "api/gammapy.modeling.PriorParameters", "api/gammapy.modeling.models.BrokenPowerLawSpectralModel", "api/gammapy.modeling.models.CompoundSpectralModel", "api/gammapy.modeling.models.ConstantFluxSpatialModel", "api/gammapy.modeling.models.ConstantSpatialModel", "api/gammapy.modeling.models.ConstantSpectralModel", "api/gammapy.modeling.models.ConstantTemporalModel", "api/gammapy.modeling.models.DatasetModels", "api/gammapy.modeling.models.DiskSpatialModel", "api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel", "api/gammapy.modeling.models.EBL_DATA_BUILTIN", "api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel", "api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel", "api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel", "api/gammapy.modeling.models.ExpDecayTemporalModel", "api/gammapy.modeling.models.FoVBackgroundModel", "api/gammapy.modeling.models.GaussianPrior", "api/gammapy.modeling.models.GaussianSpatialModel", "api/gammapy.modeling.models.GaussianSpectralModel", "api/gammapy.modeling.models.GaussianTemporalModel", "api/gammapy.modeling.models.GeneralizedGaussianSpatialModel", "api/gammapy.modeling.models.GeneralizedGaussianTemporalModel", "api/gammapy.modeling.models.LightCurveTemplateTemporalModel", "api/gammapy.modeling.models.LinearTemporalModel", "api/gammapy.modeling.models.LogParabolaNormSpectralModel", "api/gammapy.modeling.models.LogParabolaSpectralModel", "api/gammapy.modeling.models.MODEL_REGISTRY", "api/gammapy.modeling.models.MeyerCrabSpectralModel", "api/gammapy.modeling.models.Model", "api/gammapy.modeling.models.ModelBase", "api/gammapy.modeling.models.Models", "api/gammapy.modeling.models.NaimaSpectralModel", "api/gammapy.modeling.models.PiecewiseNormSpatialModel", "api/gammapy.modeling.models.PiecewiseNormSpectralModel", "api/gammapy.modeling.models.PointSpatialModel", "api/gammapy.modeling.models.PowerLaw2SpectralModel", "api/gammapy.modeling.models.PowerLawNormSpectralModel", "api/gammapy.modeling.models.PowerLawSpectralModel", "api/gammapy.modeling.models.PowerLawTemporalModel", "api/gammapy.modeling.models.Prior", "api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY", "api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY", "api/gammapy.modeling.models.ScaleSpectralModel", "api/gammapy.modeling.models.Shell2SpatialModel", "api/gammapy.modeling.models.ShellSpatialModel", "api/gammapy.modeling.models.SineTemporalModel", "api/gammapy.modeling.models.SkyModel", "api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel", "api/gammapy.modeling.models.SpatialModel", "api/gammapy.modeling.models.SpectralModel", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel", "api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY", "api/gammapy.modeling.models.TemplateNDSpatialModel", "api/gammapy.modeling.models.TemplateNDSpectralModel", "api/gammapy.modeling.models.TemplateNPredModel", "api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel", "api/gammapy.modeling.models.TemplateSpatialModel", "api/gammapy.modeling.models.TemplateSpectralModel", "api/gammapy.modeling.models.TemporalModel", "api/gammapy.modeling.models.UniformPrior", "api/gammapy.modeling.models.create_cosmic_ray_spectral_model", "api/gammapy.modeling.models.create_crab_spectral_model", "api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model", "api/gammapy.modeling.models.integrate_spectrum", "api/gammapy.modeling.models.read_hermes_cube", "api/gammapy.modeling.models.scale_plot_flux", "api/gammapy.modeling.models.utils.read_hermes_cube", "api/gammapy.modeling.select_nested_models", "api/gammapy.modeling.stat_profile_ul_scipy", "api/gammapy.stats.CashCountsStatistic", "api/gammapy.stats.TimmerKonig_lightcurve_simulator", "api/gammapy.stats.WStatCountsStatistic", "api/gammapy.stats.cash", "api/gammapy.stats.cash_sum_cython", "api/gammapy.stats.compute_chisq", "api/gammapy.stats.compute_flux_doubling", "api/gammapy.stats.compute_fpp", "api/gammapy.stats.compute_fvar", "api/gammapy.stats.cstat", "api/gammapy.stats.discrete_correlation", "api/gammapy.stats.f_cash_root_cython", "api/gammapy.stats.get_wstat_gof_terms", "api/gammapy.stats.get_wstat_mu_bkg", "api/gammapy.stats.norm_bounds_cython", "api/gammapy.stats.structure_function", "api/gammapy.stats.wstat", "api/gammapy.utils.cluster.hierarchical_clustering", "api/gammapy.utils.cluster.standard_scaler", "api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER", "api/gammapy.utils.coordinates.cartesian", "api/gammapy.utils.coordinates.fov_to_sky", "api/gammapy.utils.coordinates.galactic", "api/gammapy.utils.coordinates.motion_since_birth", "api/gammapy.utils.coordinates.polar", "api/gammapy.utils.coordinates.sky_to_fov", "api/gammapy.utils.coordinates.velocity_glon_glat", "api/gammapy.utils.fits.HDULocation", "api/gammapy.utils.fits.LazyFitsData", "api/gammapy.utils.fits.earth_location_from_dict", "api/gammapy.utils.integrate.trapz_loglog", "api/gammapy.utils.interpolation.ScaledRegularGridInterpolator", "api/gammapy.utils.interpolation.interpolate_profile", "api/gammapy.utils.interpolation.interpolation_scale", "api/gammapy.utils.parallel.BACKEND_DEFAULT", "api/gammapy.utils.parallel.METHOD_DEFAULT", "api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT", "api/gammapy.utils.parallel.N_JOBS_DEFAULT", "api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT", "api/gammapy.utils.parallel.multiprocessing_manager", "api/gammapy.utils.parallel.run_multiprocessing", "api/gammapy.utils.random.InverseCDFSampler", "api/gammapy.utils.random.draw", "api/gammapy.utils.random.get_random_state", "api/gammapy.utils.random.normalize", "api/gammapy.utils.random.pdf", "api/gammapy.utils.random.sample_powerlaw", "api/gammapy.utils.random.sample_sphere", "api/gammapy.utils.random.sample_sphere_distance", "api/gammapy.utils.random.sample_times", "api/gammapy.utils.regions.compound_region_to_regions", "api/gammapy.utils.regions.make_concentric_annulus_sky_regions", "api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions", "api/gammapy.utils.regions.region_to_frame", "api/gammapy.utils.regions.regions_to_compound_region", "api/gammapy.utils.scripts.from_yaml", "api/gammapy.utils.scripts.get_images_paths", "api/gammapy.utils.scripts.make_path", "api/gammapy.utils.scripts.read_yaml", "api/gammapy.utils.scripts.recursive_merge_dicts", "api/gammapy.utils.scripts.to_yaml", "api/gammapy.utils.scripts.write_yaml", "api/gammapy.utils.table.hstack_columns", "api/gammapy.utils.table.table_row_to_dict", "api/gammapy.utils.table.table_standardise_units_copy", "api/gammapy.utils.table.table_standardise_units_inplace", "api/gammapy.utils.testing.Checker", "api/gammapy.utils.testing.assert_quantity_allclose", "api/gammapy.utils.testing.assert_skycoord_allclose", "api/gammapy.utils.testing.assert_time_allclose", "api/gammapy.utils.testing.mpl_plot_check", "api/gammapy.utils.testing.requires_data", "api/gammapy.utils.testing.requires_dependency", "api/gammapy.utils.time.absolute_time", "api/gammapy.utils.time.time_ref_from_dict", "api/gammapy.utils.time.time_ref_to_dict", "api/gammapy.utils.time.time_relative_to_ref", "api/gammapy.utils.units.standardise_unit", "api/gammapy.utils.units.unit_from_fits_image_hdu", "api/gammapy.visualization.MapPanelPlotter", "api/gammapy.visualization.add_colorbar", "api/gammapy.visualization.annotate_heatmap", "api/gammapy.visualization.colormap_hess", "api/gammapy.visualization.colormap_milagro", "api/gammapy.visualization.plot_contour_line", "api/gammapy.visualization.plot_distribution", "api/gammapy.visualization.plot_heatmap", "api/gammapy.visualization.plot_map_rgb", "api/gammapy.visualization.plot_npred_signal", "api/gammapy.visualization.plot_spectrum_datasets_off_regions", "api/gammapy.visualization.plot_theta_squared_table", "development/dependencies", "development/dev_howto", "development/doc_howto", "development/index", "development/intro", "development/pigs/index", "development/pigs/pig-001", "development/pigs/pig-002", "development/pigs/pig-003", "development/pigs/pig-004", "development/pigs/pig-005", "development/pigs/pig-006", "development/pigs/pig-007", "development/pigs/pig-008", "development/pigs/pig-009", "development/pigs/pig-010", "development/pigs/pig-011", "development/pigs/pig-012", "development/pigs/pig-013", "development/pigs/pig-014", "development/pigs/pig-016", "development/pigs/pig-018", "development/pigs/pig-019", "development/pigs/pig-020", "development/pigs/pig-021", "development/pigs/pig-022", "development/pigs/pig-023", "development/pigs/pig-024", "development/pigs/pig-025", "development/pigs/pig-026", "development/release", "development/setup", "getting-started/environments", "getting-started/index", "getting-started/install", "getting-started/quickstart", "getting-started/troubleshooting", "getting-started/usage", "index", "release-notes/index", "release-notes/v0.1", "release-notes/v0.10", "release-notes/v0.11", "release-notes/v0.12", "release-notes/v0.13", "release-notes/v0.14", "release-notes/v0.15", "release-notes/v0.16", "release-notes/v0.17", "release-notes/v0.18", "release-notes/v0.18.1", "release-notes/v0.18.2", "release-notes/v0.19", "release-notes/v0.2", "release-notes/v0.20", "release-notes/v0.20.1", "release-notes/v0.3", "release-notes/v0.4", "release-notes/v0.5", "release-notes/v0.6", "release-notes/v0.7", "release-notes/v0.8", "release-notes/v0.9", "release-notes/v1.0", "release-notes/v1.0.1", "release-notes/v1.0.2", "release-notes/v1.1", "release-notes/v1.2", "release-notes/v1.3", "release-notes/v2.0", "sg_execution_times", "tutorials/analysis-1d/cta_sensitivity", "tutorials/analysis-1d/ebl", "tutorials/analysis-1d/extended_source_spectral_analysis", "tutorials/analysis-1d/sed_fitting", "tutorials/analysis-1d/sg_execution_times", "tutorials/analysis-1d/spectral_analysis", "tutorials/analysis-1d/spectral_analysis_hli", "tutorials/analysis-1d/spectral_analysis_rad_max", "tutorials/analysis-1d/spectrum_simulation", "tutorials/analysis-2d/detect", "tutorials/analysis-2d/modeling_2D", "tutorials/analysis-2d/ring_background", "tutorials/analysis-2d/sg_execution_times", "tutorials/analysis-3d/analysis_3d", "tutorials/analysis-3d/analysis_mwl", "tutorials/analysis-3d/cta_data_analysis", "tutorials/analysis-3d/energy_dependent_estimation", "tutorials/analysis-3d/event_sampling", "tutorials/analysis-3d/event_sampling_nrg_depend_models", "tutorials/analysis-3d/flux_profiles", "tutorials/analysis-3d/sg_execution_times", "tutorials/analysis-3d/simulate_3d", "tutorials/analysis-time/light_curve", "tutorials/analysis-time/light_curve_flare", "tutorials/analysis-time/light_curve_simulation", "tutorials/analysis-time/pulsar_analysis", "tutorials/analysis-time/sg_execution_times", "tutorials/analysis-time/time_resolved_spectroscopy", "tutorials/analysis-time/variability_estimation", "tutorials/api/astro_dark_matter", "tutorials/api/catalog", "tutorials/api/datasets", "tutorials/api/estimators", "tutorials/api/fitting", "tutorials/api/irfs", "tutorials/api/makers", "tutorials/api/maps", "tutorials/api/mask_maps", "tutorials/api/model_management", "tutorials/api/models", "tutorials/api/observation_clustering", "tutorials/api/priors", "tutorials/api/sg_execution_times", "tutorials/data/cta", "tutorials/data/fermi_lat", "tutorials/data/hawc", "tutorials/data/hess", "tutorials/data/sg_execution_times", "tutorials/index", "tutorials/scripts/sg_execution_times", "tutorials/scripts/survey_map", "tutorials/sg_execution_times", "tutorials/starting/analysis_1", "tutorials/starting/analysis_2", "tutorials/starting/overview", "tutorials/starting/sg_execution_times", "user-guide/astro/darkmatter/index", "user-guide/astro/index", "user-guide/astro/population/index", "user-guide/astro/source/index", "user-guide/astro/source/pulsar", "user-guide/astro/source/pwn", "user-guide/astro/source/snr", "user-guide/catalog", "user-guide/datasets/index", "user-guide/dl3", "user-guide/estimators", "user-guide/hli", "user-guide/howto", "user-guide/index", "user-guide/irf/aeff", "user-guide/irf/bkg", "user-guide/irf/edisp", "user-guide/irf/index", "user-guide/irf/psf", "user-guide/makers/fov", "user-guide/makers/index", "user-guide/makers/reflected", "user-guide/makers/ring", "user-guide/maps/hpxmap", "user-guide/maps/index", "user-guide/maps/regionmap", "user-guide/model-gallery/index", "user-guide/model-gallery/sg_execution_times", "user-guide/model-gallery/spatial/plot_constant", "user-guide/model-gallery/spatial/plot_disk", "user-guide/model-gallery/spatial/plot_gauss", "user-guide/model-gallery/spatial/plot_gen_gauss", "user-guide/model-gallery/spatial/plot_piecewise_norm_spatial", "user-guide/model-gallery/spatial/plot_point", "user-guide/model-gallery/spatial/plot_shell", "user-guide/model-gallery/spatial/plot_shell2", "user-guide/model-gallery/spatial/plot_template", "user-guide/model-gallery/spatial/sg_execution_times", "user-guide/model-gallery/spectral/plot_absorbed", "user-guide/model-gallery/spectral/plot_broken_powerlaw", "user-guide/model-gallery/spectral/plot_compound", "user-guide/model-gallery/spectral/plot_constant_spectral", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral", "user-guide/model-gallery/spectral/plot_gauss_spectral", "user-guide/model-gallery/spectral/plot_logparabola", "user-guide/model-gallery/spectral/plot_logparabola_norm_spectral", "user-guide/model-gallery/spectral/plot_naima", "user-guide/model-gallery/spectral/plot_piecewise_norm_spectral", "user-guide/model-gallery/spectral/plot_powerlaw", "user-guide/model-gallery/spectral/plot_powerlaw2", "user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral", "user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1", "user-guide/model-gallery/spectral/plot_template_spectral", "user-guide/model-gallery/spectral/sg_execution_times", "user-guide/model-gallery/temporal/plot_constant_temporal", "user-guide/model-gallery/temporal/plot_expdecay_temporal", "user-guide/model-gallery/temporal/plot_gaussian_temporal", "user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal", "user-guide/model-gallery/temporal/plot_linear_temporal", "user-guide/model-gallery/temporal/plot_powerlaw_temporal", "user-guide/model-gallery/temporal/plot_sine_temporal", "user-guide/model-gallery/temporal/plot_template_phase_temporal", "user-guide/model-gallery/temporal/plot_template_temporal", "user-guide/model-gallery/temporal/sg_execution_times", "user-guide/modeling", "user-guide/package", "user-guide/references", "user-guide/scripts/index", "user-guide/stats/fit_statistics", "user-guide/stats/index", "user-guide/stats/wstat_derivation", "user-guide/utils", "user-guide/visualization/index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["api-reference/analysis.rst", "api-reference/astro.rst", "api-reference/catalog.rst", "api-reference/data.rst", "api-reference/datasets.rst", "api-reference/estimators.rst", "api-reference/index.rst", "api-reference/irf.rst", "api-reference/makers.rst", "api-reference/maps.rst", "api-reference/modeling.rst", "api-reference/scripts.rst", "api-reference/stats.rst", "api-reference/utils.rst", "api-reference/visualization.rst", "api/gammapy.analysis.Analysis.rst", "api/gammapy.analysis.AnalysisConfig.rst", "api/gammapy.astro.darkmatter.BurkertProfile.rst", "api/gammapy.astro.darkmatter.DMProfile.rst", "api/gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.rst", "api/gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.rst", "api/gammapy.astro.darkmatter.EinastoProfile.rst", "api/gammapy.astro.darkmatter.IsothermalProfile.rst", "api/gammapy.astro.darkmatter.JFactory.rst", "api/gammapy.astro.darkmatter.MooreProfile.rst", "api/gammapy.astro.darkmatter.NFWProfile.rst", "api/gammapy.astro.darkmatter.PrimaryFlux.rst", "api/gammapy.astro.darkmatter.ZhaoProfile.rst", "api/gammapy.astro.population.CaseBattacharya1998.rst", "api/gammapy.astro.population.Exponential.rst", "api/gammapy.astro.population.FaucherKaspi2006.rst", "api/gammapy.astro.population.FaucherKaspi2006VelocityBimodal.rst", "api/gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.rst", "api/gammapy.astro.population.FaucherSpiral.rst", "api/gammapy.astro.population.LogSpiral.rst", "api/gammapy.astro.population.Lorimer2006.rst", "api/gammapy.astro.population.Paczynski1990.rst", "api/gammapy.astro.population.Paczynski1990Velocity.rst", "api/gammapy.astro.population.ValleeSpiral.rst", "api/gammapy.astro.population.YusifovKucuk2004.rst", "api/gammapy.astro.population.YusifovKucuk2004B.rst", "api/gammapy.astro.population.add_observed_parameters.rst", "api/gammapy.astro.population.add_pulsar_parameters.rst", "api/gammapy.astro.population.add_pwn_parameters.rst", "api/gammapy.astro.population.add_snr_parameters.rst", "api/gammapy.astro.population.make_base_catalog_galactic.rst", "api/gammapy.astro.population.make_catalog_random_positions_cube.rst", "api/gammapy.astro.population.make_catalog_random_positions_sphere.rst", "api/gammapy.astro.population.radial_distributions.rst", "api/gammapy.astro.population.velocity_distributions.rst", "api/gammapy.astro.source.PWN.rst", "api/gammapy.astro.source.Pulsar.rst", "api/gammapy.astro.source.SNR.rst", "api/gammapy.astro.source.SNRTrueloveMcKee.rst", "api/gammapy.astro.source.SimplePulsar.rst", "api/gammapy.catalog.CATALOG_REGISTRY.rst", "api/gammapy.catalog.SourceCatalog.rst", "api/gammapy.catalog.SourceCatalog1LHAASO.rst", "api/gammapy.catalog.SourceCatalog2FHL.rst", "api/gammapy.catalog.SourceCatalog2HWC.rst", "api/gammapy.catalog.SourceCatalog2PC.rst", "api/gammapy.catalog.SourceCatalog3FGL.rst", "api/gammapy.catalog.SourceCatalog3FHL.rst", "api/gammapy.catalog.SourceCatalog3HWC.rst", "api/gammapy.catalog.SourceCatalog3PC.rst", "api/gammapy.catalog.SourceCatalog4FGL.rst", "api/gammapy.catalog.SourceCatalogGammaCat.rst", "api/gammapy.catalog.SourceCatalogHGPS.rst", "api/gammapy.catalog.SourceCatalogLargeScaleHGPS.rst", "api/gammapy.catalog.SourceCatalogObject.rst", "api/gammapy.catalog.SourceCatalogObject1LHAASO.rst", "api/gammapy.catalog.SourceCatalogObject2FHL.rst", "api/gammapy.catalog.SourceCatalogObject2HWC.rst", "api/gammapy.catalog.SourceCatalogObject2PC.rst", "api/gammapy.catalog.SourceCatalogObject3FGL.rst", "api/gammapy.catalog.SourceCatalogObject3FHL.rst", "api/gammapy.catalog.SourceCatalogObject3HWC.rst", "api/gammapy.catalog.SourceCatalogObject3PC.rst", "api/gammapy.catalog.SourceCatalogObject4FGL.rst", "api/gammapy.catalog.SourceCatalogObjectGammaCat.rst", "api/gammapy.catalog.SourceCatalogObjectHGPS.rst", "api/gammapy.catalog.SourceCatalogObjectHGPSComponent.rst", "api/gammapy.data.DataStore.rst", "api/gammapy.data.EventList.rst", "api/gammapy.data.EventListMetaData.rst", "api/gammapy.data.FixedPointingInfo.rst", "api/gammapy.data.GTI.rst", "api/gammapy.data.HDUIndexTable.rst", "api/gammapy.data.Observation.rst", "api/gammapy.data.ObservationFilter.rst", "api/gammapy.data.ObservationMetaData.rst", "api/gammapy.data.ObservationTable.rst", "api/gammapy.data.Observations.rst", "api/gammapy.data.ObservationsEventsSampler.rst", "api/gammapy.data.PointingInfo.rst", "api/gammapy.data.PointingMode.rst", "api/gammapy.data.get_irfs_features.rst", "api/gammapy.data.observatory_locations.rst", "api/gammapy.datasets.DATASET_REGISTRY.rst", "api/gammapy.datasets.Dataset.rst", "api/gammapy.datasets.Datasets.rst", "api/gammapy.datasets.FluxPointsDataset.rst", "api/gammapy.datasets.MapDataset.rst", "api/gammapy.datasets.MapDatasetEventSampler.rst", "api/gammapy.datasets.MapDatasetMetaData.rst", "api/gammapy.datasets.MapDatasetOnOff.rst", "api/gammapy.datasets.OGIPDatasetReader.rst", "api/gammapy.datasets.OGIPDatasetWriter.rst", "api/gammapy.datasets.ObservationEventSampler.rst", "api/gammapy.datasets.SpectrumDataset.rst", "api/gammapy.datasets.SpectrumDatasetOnOff.rst", "api/gammapy.datasets.apply_edisp.rst", "api/gammapy.datasets.create_empty_map_dataset_from_irfs.rst", "api/gammapy.datasets.create_map_dataset_from_observation.rst", "api/gammapy.datasets.create_map_dataset_geoms.rst", "api/gammapy.datasets.split_dataset.rst", "api/gammapy.datasets.utils.apply_edisp.rst", "api/gammapy.datasets.utils.split_dataset.rst", "api/gammapy.estimators.ASmoothMapEstimator.rst", "api/gammapy.estimators.ESTIMATOR_REGISTRY.rst", "api/gammapy.estimators.EnergyDependentMorphologyEstimator.rst", "api/gammapy.estimators.Estimator.rst", "api/gammapy.estimators.ExcessMapEstimator.rst", "api/gammapy.estimators.FluxMaps.rst", "api/gammapy.estimators.FluxMetaData.rst", "api/gammapy.estimators.FluxPoints.rst", "api/gammapy.estimators.FluxPointsEstimator.rst", "api/gammapy.estimators.FluxProfileEstimator.rst", "api/gammapy.estimators.ImageProfile.rst", "api/gammapy.estimators.ImageProfileEstimator.rst", "api/gammapy.estimators.LightCurveEstimator.rst", "api/gammapy.estimators.ParameterEstimator.rst", "api/gammapy.estimators.SensitivityEstimator.rst", "api/gammapy.estimators.TSMapEstimator.rst", "api/gammapy.estimators.utils.combine_flux_maps.rst", "api/gammapy.estimators.utils.combine_significance_maps.rst", "api/gammapy.estimators.utils.compute_lightcurve_discrete_correlation.rst", "api/gammapy.estimators.utils.compute_lightcurve_doublingtime.rst", "api/gammapy.estimators.utils.compute_lightcurve_fpp.rst", "api/gammapy.estimators.utils.compute_lightcurve_fvar.rst", "api/gammapy.estimators.utils.estimate_exposure_reco_energy.rst", "api/gammapy.estimators.utils.find_peaks.rst", "api/gammapy.estimators.utils.find_peaks_in_flux_map.rst", "api/gammapy.estimators.utils.get_combined_flux_maps.rst", "api/gammapy.estimators.utils.get_combined_significance_maps.rst", "api/gammapy.estimators.utils.get_rebinned_axis.rst", "api/gammapy.estimators.utils.resample_energy_edges.rst", "api/gammapy.irf.Background2D.rst", "api/gammapy.irf.Background3D.rst", "api/gammapy.irf.BackgroundIRF.rst", "api/gammapy.irf.EDispKernel.rst", "api/gammapy.irf.EDispKernelMap.rst", "api/gammapy.irf.EDispMap.rst", "api/gammapy.irf.EffectiveAreaTable2D.rst", "api/gammapy.irf.EnergyDependentMultiGaussPSF.rst", "api/gammapy.irf.EnergyDispersion2D.rst", "api/gammapy.irf.FoVAlignment.rst", "api/gammapy.irf.IRF.rst", "api/gammapy.irf.IRFMap.rst", "api/gammapy.irf.IRF_REGISTRY.rst", "api/gammapy.irf.PSF3D.rst", "api/gammapy.irf.PSFKernel.rst", "api/gammapy.irf.PSFKing.rst", "api/gammapy.irf.PSFMap.rst", "api/gammapy.irf.ParametricPSF.rst", "api/gammapy.irf.RadMax2D.rst", "api/gammapy.irf.RecoPSFMap.rst", "api/gammapy.irf.load_irf_dict_from_file.rst", "api/gammapy.makers.AdaptiveRingBackgroundMaker.rst", "api/gammapy.makers.DatasetsMaker.rst", "api/gammapy.makers.FoVBackgroundMaker.rst", "api/gammapy.makers.MAKER_REGISTRY.rst", "api/gammapy.makers.Maker.rst", "api/gammapy.makers.MapDatasetMaker.rst", "api/gammapy.makers.PhaseBackgroundMaker.rst", "api/gammapy.makers.ReflectedRegionsBackgroundMaker.rst", "api/gammapy.makers.ReflectedRegionsFinder.rst", "api/gammapy.makers.RegionsFinder.rst", "api/gammapy.makers.RingBackgroundMaker.rst", "api/gammapy.makers.SafeMaskMaker.rst", "api/gammapy.makers.SpectrumDatasetMaker.rst", "api/gammapy.makers.WobbleRegionsFinder.rst", "api/gammapy.makers.utils.make_counts_rad_max.rst", "api/gammapy.makers.utils.make_edisp_kernel_map.rst", "api/gammapy.makers.utils.make_edisp_map.rst", "api/gammapy.makers.utils.make_effective_livetime_map.rst", "api/gammapy.makers.utils.make_map_background_irf.rst", "api/gammapy.makers.utils.make_map_exposure_true_energy.rst", "api/gammapy.makers.utils.make_observation_time_map.rst", "api/gammapy.makers.utils.make_psf_map.rst", "api/gammapy.makers.utils.make_theta_squared_table.rst", "api/gammapy.maps.Geom.rst", "api/gammapy.maps.HpxGeom.rst", "api/gammapy.maps.HpxMap.rst", "api/gammapy.maps.HpxNDMap.rst", "api/gammapy.maps.LabelMapAxis.rst", "api/gammapy.maps.Map.rst", "api/gammapy.maps.MapAxes.rst", "api/gammapy.maps.MapAxis.rst", "api/gammapy.maps.MapCoord.rst", "api/gammapy.maps.Maps.rst", "api/gammapy.maps.RegionGeom.rst", "api/gammapy.maps.RegionNDMap.rst", "api/gammapy.maps.TimeMapAxis.rst", "api/gammapy.maps.WcsGeom.rst", "api/gammapy.maps.WcsMap.rst", "api/gammapy.maps.WcsNDMap.rst", "api/gammapy.maps.containment_radius.rst", "api/gammapy.maps.containment_region.rst", "api/gammapy.modeling.Covariance.rst", "api/gammapy.modeling.CovarianceResult.rst", "api/gammapy.modeling.Fit.rst", "api/gammapy.modeling.FitResult.rst", "api/gammapy.modeling.OptimizeResult.rst", "api/gammapy.modeling.Parameter.rst", "api/gammapy.modeling.Parameters.rst", "api/gammapy.modeling.PriorParameter.rst", "api/gammapy.modeling.PriorParameters.rst", "api/gammapy.modeling.models.BrokenPowerLawSpectralModel.rst", "api/gammapy.modeling.models.CompoundSpectralModel.rst", "api/gammapy.modeling.models.ConstantFluxSpatialModel.rst", "api/gammapy.modeling.models.ConstantSpatialModel.rst", "api/gammapy.modeling.models.ConstantSpectralModel.rst", "api/gammapy.modeling.models.ConstantTemporalModel.rst", "api/gammapy.modeling.models.DatasetModels.rst", "api/gammapy.modeling.models.DiskSpatialModel.rst", "api/gammapy.modeling.models.EBLAbsorptionNormSpectralModel.rst", "api/gammapy.modeling.models.EBL_DATA_BUILTIN.rst", "api/gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.rst", "api/gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.rst", "api/gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.rst", "api/gammapy.modeling.models.ExpDecayTemporalModel.rst", "api/gammapy.modeling.models.FoVBackgroundModel.rst", "api/gammapy.modeling.models.GaussianPrior.rst", "api/gammapy.modeling.models.GaussianSpatialModel.rst", "api/gammapy.modeling.models.GaussianSpectralModel.rst", "api/gammapy.modeling.models.GaussianTemporalModel.rst", "api/gammapy.modeling.models.GeneralizedGaussianSpatialModel.rst", "api/gammapy.modeling.models.GeneralizedGaussianTemporalModel.rst", "api/gammapy.modeling.models.LightCurveTemplateTemporalModel.rst", "api/gammapy.modeling.models.LinearTemporalModel.rst", "api/gammapy.modeling.models.LogParabolaNormSpectralModel.rst", "api/gammapy.modeling.models.LogParabolaSpectralModel.rst", "api/gammapy.modeling.models.MODEL_REGISTRY.rst", "api/gammapy.modeling.models.MeyerCrabSpectralModel.rst", "api/gammapy.modeling.models.Model.rst", "api/gammapy.modeling.models.ModelBase.rst", "api/gammapy.modeling.models.Models.rst", "api/gammapy.modeling.models.NaimaSpectralModel.rst", "api/gammapy.modeling.models.PiecewiseNormSpatialModel.rst", "api/gammapy.modeling.models.PiecewiseNormSpectralModel.rst", "api/gammapy.modeling.models.PointSpatialModel.rst", "api/gammapy.modeling.models.PowerLaw2SpectralModel.rst", "api/gammapy.modeling.models.PowerLawNormSpectralModel.rst", "api/gammapy.modeling.models.PowerLawSpectralModel.rst", "api/gammapy.modeling.models.PowerLawTemporalModel.rst", "api/gammapy.modeling.models.Prior.rst", "api/gammapy.modeling.models.SPATIAL_MODEL_REGISTRY.rst", "api/gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY.rst", "api/gammapy.modeling.models.ScaleSpectralModel.rst", "api/gammapy.modeling.models.Shell2SpatialModel.rst", "api/gammapy.modeling.models.ShellSpatialModel.rst", "api/gammapy.modeling.models.SineTemporalModel.rst", "api/gammapy.modeling.models.SkyModel.rst", "api/gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.rst", "api/gammapy.modeling.models.SpatialModel.rst", "api/gammapy.modeling.models.SpectralModel.rst", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.rst", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.rst", "api/gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.rst", "api/gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY.rst", "api/gammapy.modeling.models.TemplateNDSpatialModel.rst", "api/gammapy.modeling.models.TemplateNDSpectralModel.rst", "api/gammapy.modeling.models.TemplateNPredModel.rst", "api/gammapy.modeling.models.TemplatePhaseCurveTemporalModel.rst", "api/gammapy.modeling.models.TemplateSpatialModel.rst", "api/gammapy.modeling.models.TemplateSpectralModel.rst", "api/gammapy.modeling.models.TemporalModel.rst", "api/gammapy.modeling.models.UniformPrior.rst", "api/gammapy.modeling.models.create_cosmic_ray_spectral_model.rst", "api/gammapy.modeling.models.create_crab_spectral_model.rst", "api/gammapy.modeling.models.create_fermi_isotropic_diffuse_model.rst", "api/gammapy.modeling.models.integrate_spectrum.rst", "api/gammapy.modeling.models.read_hermes_cube.rst", "api/gammapy.modeling.models.scale_plot_flux.rst", "api/gammapy.modeling.models.utils.read_hermes_cube.rst", "api/gammapy.modeling.select_nested_models.rst", "api/gammapy.modeling.stat_profile_ul_scipy.rst", "api/gammapy.stats.CashCountsStatistic.rst", "api/gammapy.stats.TimmerKonig_lightcurve_simulator.rst", "api/gammapy.stats.WStatCountsStatistic.rst", "api/gammapy.stats.cash.rst", "api/gammapy.stats.cash_sum_cython.rst", "api/gammapy.stats.compute_chisq.rst", "api/gammapy.stats.compute_flux_doubling.rst", "api/gammapy.stats.compute_fpp.rst", "api/gammapy.stats.compute_fvar.rst", "api/gammapy.stats.cstat.rst", "api/gammapy.stats.discrete_correlation.rst", "api/gammapy.stats.f_cash_root_cython.rst", "api/gammapy.stats.get_wstat_gof_terms.rst", "api/gammapy.stats.get_wstat_mu_bkg.rst", "api/gammapy.stats.norm_bounds_cython.rst", "api/gammapy.stats.structure_function.rst", "api/gammapy.stats.wstat.rst", "api/gammapy.utils.cluster.hierarchical_clustering.rst", "api/gammapy.utils.cluster.standard_scaler.rst", "api/gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER.rst", "api/gammapy.utils.coordinates.cartesian.rst", "api/gammapy.utils.coordinates.fov_to_sky.rst", "api/gammapy.utils.coordinates.galactic.rst", "api/gammapy.utils.coordinates.motion_since_birth.rst", "api/gammapy.utils.coordinates.polar.rst", "api/gammapy.utils.coordinates.sky_to_fov.rst", "api/gammapy.utils.coordinates.velocity_glon_glat.rst", "api/gammapy.utils.fits.HDULocation.rst", "api/gammapy.utils.fits.LazyFitsData.rst", "api/gammapy.utils.fits.earth_location_from_dict.rst", "api/gammapy.utils.integrate.trapz_loglog.rst", "api/gammapy.utils.interpolation.ScaledRegularGridInterpolator.rst", "api/gammapy.utils.interpolation.interpolate_profile.rst", "api/gammapy.utils.interpolation.interpolation_scale.rst", "api/gammapy.utils.parallel.BACKEND_DEFAULT.rst", "api/gammapy.utils.parallel.METHOD_DEFAULT.rst", "api/gammapy.utils.parallel.METHOD_KWARGS_DEFAULT.rst", "api/gammapy.utils.parallel.N_JOBS_DEFAULT.rst", "api/gammapy.utils.parallel.POOL_KWARGS_DEFAULT.rst", "api/gammapy.utils.parallel.multiprocessing_manager.rst", "api/gammapy.utils.parallel.run_multiprocessing.rst", "api/gammapy.utils.random.InverseCDFSampler.rst", "api/gammapy.utils.random.draw.rst", "api/gammapy.utils.random.get_random_state.rst", "api/gammapy.utils.random.normalize.rst", "api/gammapy.utils.random.pdf.rst", "api/gammapy.utils.random.sample_powerlaw.rst", "api/gammapy.utils.random.sample_sphere.rst", "api/gammapy.utils.random.sample_sphere_distance.rst", "api/gammapy.utils.random.sample_times.rst", "api/gammapy.utils.regions.compound_region_to_regions.rst", "api/gammapy.utils.regions.make_concentric_annulus_sky_regions.rst", "api/gammapy.utils.regions.make_orthogonal_rectangle_sky_regions.rst", "api/gammapy.utils.regions.region_to_frame.rst", "api/gammapy.utils.regions.regions_to_compound_region.rst", "api/gammapy.utils.scripts.from_yaml.rst", "api/gammapy.utils.scripts.get_images_paths.rst", "api/gammapy.utils.scripts.make_path.rst", "api/gammapy.utils.scripts.read_yaml.rst", "api/gammapy.utils.scripts.recursive_merge_dicts.rst", "api/gammapy.utils.scripts.to_yaml.rst", "api/gammapy.utils.scripts.write_yaml.rst", "api/gammapy.utils.table.hstack_columns.rst", "api/gammapy.utils.table.table_row_to_dict.rst", "api/gammapy.utils.table.table_standardise_units_copy.rst", "api/gammapy.utils.table.table_standardise_units_inplace.rst", "api/gammapy.utils.testing.Checker.rst", "api/gammapy.utils.testing.assert_quantity_allclose.rst", "api/gammapy.utils.testing.assert_skycoord_allclose.rst", "api/gammapy.utils.testing.assert_time_allclose.rst", "api/gammapy.utils.testing.mpl_plot_check.rst", "api/gammapy.utils.testing.requires_data.rst", "api/gammapy.utils.testing.requires_dependency.rst", "api/gammapy.utils.time.absolute_time.rst", "api/gammapy.utils.time.time_ref_from_dict.rst", "api/gammapy.utils.time.time_ref_to_dict.rst", "api/gammapy.utils.time.time_relative_to_ref.rst", "api/gammapy.utils.units.standardise_unit.rst", "api/gammapy.utils.units.unit_from_fits_image_hdu.rst", "api/gammapy.visualization.MapPanelPlotter.rst", "api/gammapy.visualization.add_colorbar.rst", "api/gammapy.visualization.annotate_heatmap.rst", "api/gammapy.visualization.colormap_hess.rst", "api/gammapy.visualization.colormap_milagro.rst", "api/gammapy.visualization.plot_contour_line.rst", "api/gammapy.visualization.plot_distribution.rst", "api/gammapy.visualization.plot_heatmap.rst", "api/gammapy.visualization.plot_map_rgb.rst", "api/gammapy.visualization.plot_npred_signal.rst", "api/gammapy.visualization.plot_spectrum_datasets_off_regions.rst", "api/gammapy.visualization.plot_theta_squared_table.rst", "development/dependencies.rst", "development/dev_howto.rst", "development/doc_howto.rst", "development/index.rst", "development/intro.rst", "development/pigs/index.rst", "development/pigs/pig-001.rst", "development/pigs/pig-002.rst", "development/pigs/pig-003.rst", "development/pigs/pig-004.rst", "development/pigs/pig-005.rst", "development/pigs/pig-006.rst", "development/pigs/pig-007.rst", "development/pigs/pig-008.rst", "development/pigs/pig-009.rst", "development/pigs/pig-010.rst", "development/pigs/pig-011.rst", "development/pigs/pig-012.rst", "development/pigs/pig-013.rst", "development/pigs/pig-014.rst", "development/pigs/pig-016.rst", "development/pigs/pig-018.rst", "development/pigs/pig-019.rst", "development/pigs/pig-020.rst", "development/pigs/pig-021.rst", "development/pigs/pig-022.rst", "development/pigs/pig-023.rst", "development/pigs/pig-024.rst", "development/pigs/pig-025.rst", "development/pigs/pig-026.rst", "development/release.rst", "development/setup.rst", "getting-started/environments.rst", "getting-started/index.rst", "getting-started/install.rst", "getting-started/quickstart.rst", "getting-started/troubleshooting.rst", "getting-started/usage.rst", "index.rst", "release-notes/index.rst", "release-notes/v0.1.rst", "release-notes/v0.10.rst", "release-notes/v0.11.rst", "release-notes/v0.12.rst", "release-notes/v0.13.rst", "release-notes/v0.14.rst", "release-notes/v0.15.rst", "release-notes/v0.16.rst", "release-notes/v0.17.rst", "release-notes/v0.18.rst", "release-notes/v0.18.1.rst", "release-notes/v0.18.2.rst", "release-notes/v0.19.rst", "release-notes/v0.2.rst", "release-notes/v0.20.rst", "release-notes/v0.20.1.rst", "release-notes/v0.3.rst", "release-notes/v0.4.rst", "release-notes/v0.5.rst", "release-notes/v0.6.rst", "release-notes/v0.7.rst", "release-notes/v0.8.rst", "release-notes/v0.9.rst", "release-notes/v1.0.rst", "release-notes/v1.0.1.rst", "release-notes/v1.0.2.rst", "release-notes/v1.1.rst", "release-notes/v1.2.rst", "release-notes/v1.3.rst", "release-notes/v2.0.rst", "sg_execution_times.rst", "tutorials/analysis-1d/cta_sensitivity.rst", "tutorials/analysis-1d/ebl.rst", "tutorials/analysis-1d/extended_source_spectral_analysis.rst", "tutorials/analysis-1d/sed_fitting.rst", "tutorials/analysis-1d/sg_execution_times.rst", "tutorials/analysis-1d/spectral_analysis.rst", "tutorials/analysis-1d/spectral_analysis_hli.rst", "tutorials/analysis-1d/spectral_analysis_rad_max.rst", "tutorials/analysis-1d/spectrum_simulation.rst", "tutorials/analysis-2d/detect.rst", "tutorials/analysis-2d/modeling_2D.rst", "tutorials/analysis-2d/ring_background.rst", "tutorials/analysis-2d/sg_execution_times.rst", "tutorials/analysis-3d/analysis_3d.rst", "tutorials/analysis-3d/analysis_mwl.rst", "tutorials/analysis-3d/cta_data_analysis.rst", "tutorials/analysis-3d/energy_dependent_estimation.rst", "tutorials/analysis-3d/event_sampling.rst", "tutorials/analysis-3d/event_sampling_nrg_depend_models.rst", "tutorials/analysis-3d/flux_profiles.rst", "tutorials/analysis-3d/sg_execution_times.rst", "tutorials/analysis-3d/simulate_3d.rst", "tutorials/analysis-time/light_curve.rst", "tutorials/analysis-time/light_curve_flare.rst", "tutorials/analysis-time/light_curve_simulation.rst", "tutorials/analysis-time/pulsar_analysis.rst", "tutorials/analysis-time/sg_execution_times.rst", "tutorials/analysis-time/time_resolved_spectroscopy.rst", "tutorials/analysis-time/variability_estimation.rst", "tutorials/api/astro_dark_matter.rst", "tutorials/api/catalog.rst", "tutorials/api/datasets.rst", "tutorials/api/estimators.rst", "tutorials/api/fitting.rst", "tutorials/api/irfs.rst", "tutorials/api/makers.rst", "tutorials/api/maps.rst", "tutorials/api/mask_maps.rst", "tutorials/api/model_management.rst", "tutorials/api/models.rst", "tutorials/api/observation_clustering.rst", "tutorials/api/priors.rst", "tutorials/api/sg_execution_times.rst", "tutorials/data/cta.rst", "tutorials/data/fermi_lat.rst", "tutorials/data/hawc.rst", "tutorials/data/hess.rst", "tutorials/data/sg_execution_times.rst", "tutorials/index.rst", "tutorials/scripts/sg_execution_times.rst", "tutorials/scripts/survey_map.rst", "tutorials/sg_execution_times.rst", "tutorials/starting/analysis_1.rst", "tutorials/starting/analysis_2.rst", "tutorials/starting/overview.rst", "tutorials/starting/sg_execution_times.rst", "user-guide/astro/darkmatter/index.rst", "user-guide/astro/index.rst", "user-guide/astro/population/index.rst", "user-guide/astro/source/index.rst", "user-guide/astro/source/pulsar.rst", "user-guide/astro/source/pwn.rst", "user-guide/astro/source/snr.rst", "user-guide/catalog.rst", "user-guide/datasets/index.rst", "user-guide/dl3.rst", "user-guide/estimators.rst", "user-guide/hli.rst", "user-guide/howto.rst", "user-guide/index.rst", "user-guide/irf/aeff.rst", "user-guide/irf/bkg.rst", "user-guide/irf/edisp.rst", "user-guide/irf/index.rst", "user-guide/irf/psf.rst", "user-guide/makers/fov.rst", "user-guide/makers/index.rst", "user-guide/makers/reflected.rst", "user-guide/makers/ring.rst", "user-guide/maps/hpxmap.rst", "user-guide/maps/index.rst", "user-guide/maps/regionmap.rst", "user-guide/model-gallery/index.rst", "user-guide/model-gallery/sg_execution_times.rst", "user-guide/model-gallery/spatial/plot_constant.rst", "user-guide/model-gallery/spatial/plot_disk.rst", "user-guide/model-gallery/spatial/plot_gauss.rst", "user-guide/model-gallery/spatial/plot_gen_gauss.rst", "user-guide/model-gallery/spatial/plot_piecewise_norm_spatial.rst", "user-guide/model-gallery/spatial/plot_point.rst", "user-guide/model-gallery/spatial/plot_shell.rst", "user-guide/model-gallery/spatial/plot_shell2.rst", "user-guide/model-gallery/spatial/plot_template.rst", "user-guide/model-gallery/spatial/sg_execution_times.rst", "user-guide/model-gallery/spectral/plot_absorbed.rst", "user-guide/model-gallery/spectral/plot_broken_powerlaw.rst", "user-guide/model-gallery/spectral/plot_compound.rst", "user-guide/model-gallery/spectral/plot_constant_spectral.rst", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw.rst", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_3fgl.rst", "user-guide/model-gallery/spectral/plot_exp_cutoff_powerlaw_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_gauss_spectral.rst", "user-guide/model-gallery/spectral/plot_logparabola.rst", "user-guide/model-gallery/spectral/plot_logparabola_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_naima.rst", "user-guide/model-gallery/spectral/plot_piecewise_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_powerlaw.rst", "user-guide/model-gallery/spectral/plot_powerlaw2.rst", "user-guide/model-gallery/spectral/plot_powerlaw_norm_spectral.rst", "user-guide/model-gallery/spectral/plot_smooth_broken_powerlaw.rst", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_3fgl.rst", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl.rst", "user-guide/model-gallery/spectral/plot_super_exp_cutoff_powerlaw_4fgl_dr1.rst", "user-guide/model-gallery/spectral/plot_template_spectral.rst", "user-guide/model-gallery/spectral/sg_execution_times.rst", "user-guide/model-gallery/temporal/plot_constant_temporal.rst", "user-guide/model-gallery/temporal/plot_expdecay_temporal.rst", "user-guide/model-gallery/temporal/plot_gaussian_temporal.rst", "user-guide/model-gallery/temporal/plot_generalized_gaussian_temporal.rst", "user-guide/model-gallery/temporal/plot_linear_temporal.rst", "user-guide/model-gallery/temporal/plot_powerlaw_temporal.rst", "user-guide/model-gallery/temporal/plot_sine_temporal.rst", "user-guide/model-gallery/temporal/plot_template_phase_temporal.rst", "user-guide/model-gallery/temporal/plot_template_temporal.rst", "user-guide/model-gallery/temporal/sg_execution_times.rst", "user-guide/modeling.rst", "user-guide/package.rst", "user-guide/references.rst", "user-guide/scripts/index.rst", "user-guide/stats/fit_statistics.rst", "user-guide/stats/index.rst", "user-guide/stats/wstat_derivation.rst", "user-guide/utils.rst", "user-guide/visualization/index.rst"], "indexentries": {"--dependencies": [[11, "cmdoption-gammapy-info-dependencies", false]], "--envvar": [[11, "cmdoption-gammapy-info-envvar", false]], "--filename": [[11, "cmdoption-gammapy-analysis-config-filename", false], [11, "cmdoption-gammapy-analysis-run-filename", false], [11, "cmdoption-gammapy-workflow-config-filename", false], [11, "cmdoption-gammapy-workflow-run-filename", false]], "--ignore-warnings": [[11, "cmdoption-gammapy-ignore-warnings", false]], "--log-level": [[11, "cmdoption-gammapy-log-level", false]], "--no-dependencies": [[11, "cmdoption-gammapy-info-dependencies", false]], "--no-envvar": [[11, "cmdoption-gammapy-info-envvar", false]], "--no-system": [[11, "cmdoption-gammapy-info-system", false]], "--no-version": [[11, "cmdoption-gammapy-info-version", false]], "--out": [[11, "cmdoption-gammapy-analysis-run-out", false], [11, "cmdoption-gammapy-download-datasets-out", false], [11, "cmdoption-gammapy-download-notebooks-out", false]], "--overwrite": [[11, "cmdoption-gammapy-analysis-config-overwrite", false], [11, "cmdoption-gammapy-analysis-run-overwrite", false], [11, "cmdoption-gammapy-workflow-config-overwrite", false]], "--release": [[11, "cmdoption-gammapy-download-datasets-release", false], [11, "cmdoption-gammapy-download-notebooks-release", false]], "--system": [[11, "cmdoption-gammapy-info-system", false]], "--version": [[11, "cmdoption-gammapy-info-version", false], [11, "cmdoption-gammapy-version", false]], "1d analysis": [[577, "term-1D-Analysis", true]], "3d analysis": [[577, "term-3D-Analysis", true]], "__call__() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.__call__", false]], "__call__() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.__call__", false]], "__call__() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.__call__", false]], "__call__() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.__call__", false]], "__call__() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.__call__", false]], "__call__() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.__call__", false]], "__call__() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.__call__", false]], "__call__() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.__call__", false]], "__call__() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.__call__", false]], "__call__() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.__call__", false]], "__call__() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.__call__", false]], "__call__() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.__call__", false]], "__call__() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.__call__", false]], "__call__() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.__call__", false]], "__call__() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.__call__", false]], "__call__() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.__call__", false]], "__call__() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.__call__", false]], "__call__() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.__call__", false]], "__call__() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.__call__", false]], "__call__() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.__call__", false]], "__call__() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.__call__", false]], "__call__() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.__call__", false]], "__call__() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.__call__", false]], "__call__() (gammapy.utils.interpolation.scaledregulargridinterpolator method)": [[319, "gammapy.utils.interpolation.ScaledRegularGridInterpolator.__call__", false]], "a (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.a", false]], "a (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.a", false]], "absolute_time() (in module gammapy.utils.time)": [[361, "gammapy.utils.time.absolute_time", false]], "acceptance_off (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.acceptance_off", false]], "acceptance_off (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.acceptance_off", false]], "acceptance_on (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.acceptance_on", false]], "acceptance_on (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.acceptance_on", false]], "adaptiveringbackgroundmaker (class in gammapy.makers)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker", false]], "add_colorbar() (in module gammapy.visualization)": [[368, "gammapy.visualization.add_colorbar", false]], "add_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_column", false]], "add_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_column", false]], "add_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_columns", false]], "add_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_columns", false]], "add_index() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_index", false]], "add_index() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_index", false]], "add_observed_parameters() (in module gammapy.astro.population)": [[41, "gammapy.astro.population.add_observed_parameters", false]], "add_pulsar_parameters() (in module gammapy.astro.population)": [[42, "gammapy.astro.population.add_pulsar_parameters", false]], "add_pwn_parameters() (in module gammapy.astro.population)": [[43, "gammapy.astro.population.add_pwn_parameters", false]], "add_row() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.add_row", false]], "add_row() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.add_row", false]], "add_snr_parameters() (in module gammapy.astro.population)": [[44, "gammapy.astro.population.add_snr_parameters", false]], "aeff": [[577, "term-Aeff", true]], "aeff (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.aeff", false]], "all_quantities() (gammapy.estimators.fluxmaps static method)": [[123, "gammapy.estimators.FluxMaps.all_quantities", false]], "all_quantities() (gammapy.estimators.fluxpoints static method)": [[125, "gammapy.estimators.FluxPoints.all_quantities", false]], "allowed_channels (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.allowed_channels", false]], "alpha (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.alpha", false]], "alpha (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.alpha", false]], "alpha (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.alpha", false]], "alpha (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.alpha", false]], "alpha (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.alpha", false]], "alpha (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.alpha", false]], "alpha (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.alpha", false]], "alpha (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.alpha", false]], "alpha_norm (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.alpha_norm", false]], "altaz (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.altaz", false]], "altaz (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.altaz", false]], "altaz (gammapy.irf.fovalignment attribute)": [[156, "gammapy.irf.FoVAlignment.ALTAZ", false]], "altaz_frame (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.altaz_frame", false]], "altaz_frame (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.altaz_frame", false]], "altaz_from_table (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.altaz_from_table", false]], "altaz_from_table (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.altaz_from_table", false]], "altaz_interpolate() (gammapy.data.pointinginfo method)": [[94, "gammapy.data.PointingInfo.altaz_interpolate", false]], "amp (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.amp", false]], "amplitude (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.amplitude", false]], "amplitude (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.amplitude", false]], "amplitude (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.amplitude", false]], "amplitude (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.amplitude", false]], "amplitude (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.amplitude", false]], "amplitude (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.amplitude", false]], "amplitude (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.amplitude", false]], "amplitude (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.amplitude", false]], "amplitude (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.amplitude", false]], "amplitude (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.amplitude", false]], "amplitude (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.amplitude", false]], "amplitude (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.amplitude", false]], "analysis (class in gammapy.analysis)": [[15, "gammapy.analysis.Analysis", false]], "analysisconfig (class in gammapy.analysis)": [[16, "gammapy.analysis.AnalysisConfig", false]], "annotate_heatmap() (in module gammapy.visualization)": [[369, "gammapy.visualization.annotate_heatmap", false]], "append() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.append", false]], "append() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.append", false]], "append() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.append", false]], "apply_edisp() (in module gammapy.datasets)": [[111, "gammapy.datasets.apply_edisp", false]], "apply_edisp() (in module gammapy.datasets.utils)": [[116, "gammapy.datasets.utils.apply_edisp", false]], "apply_mask() (gammapy.maps.mapcoord method)": [[199, "gammapy.maps.MapCoord.apply_mask", false]], "argsort() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.argsort", false]], "argsort() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.argsort", false]], "as_array() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.as_array", false]], "as_array() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.as_array", false]], "as_energy_true (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.as_energy_true", false]], "as_energy_true (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.as_energy_true", false]], "as_energy_true (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.as_energy_true", false]], "as_energy_true (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.as_energy_true", false]], "as_plot_center (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_center", false]], "as_plot_center (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_center", false]], "as_plot_center (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_center", false]], "as_plot_edges (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_edges", false]], "as_plot_edges (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_edges", false]], "as_plot_edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_edges", false]], "as_plot_labels (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_labels", false]], "as_plot_labels (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_labels", false]], "as_plot_labels (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_labels", false]], "as_plot_scale (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_scale", false]], "as_plot_xerr (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.as_plot_xerr", false]], "as_plot_xerr (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.as_plot_xerr", false]], "as_plot_xerr (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.as_plot_xerr", false]], "asmoothmapestimator (class in gammapy.estimators)": [[118, "gammapy.estimators.ASmoothMapEstimator", false]], "assert_name() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.assert_name", false]], "assert_name() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.assert_name", false]], "assert_name() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.assert_name", false]], "assert_names() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.assert_names", false]], "assert_quantity_allclose() (in module gammapy.utils.testing)": [[355, "gammapy.utils.testing.assert_quantity_allclose", false]], "assert_skycoord_allclose() (in module gammapy.utils.testing)": [[356, "gammapy.utils.testing.assert_skycoord_allclose", false]], "assert_time_allclose() (in module gammapy.utils.testing)": [[357, "gammapy.utils.testing.assert_time_allclose", false]], "asso (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.asso", false]], "asso (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.asso", false]], "asso (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.asso", false]], "asso (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.asso", false]], "asso (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.asso", false]], "autoscale() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.autoscale", false]], "autoscale() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.autoscale", false]], "autoscale() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.autoscale", false]], "autoscale() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.autoscale", false]], "available_hdus (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.available_hdus", false]], "available_irfs (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.available_irfs", false]], "available_methods (gammapy.makers.fovbackgroundmaker attribute)": [[170, "gammapy.makers.FoVBackgroundMaker.available_methods", false]], "available_methods (gammapy.makers.safemaskmaker attribute)": [[179, "gammapy.makers.SafeMaskMaker.available_methods", false]], "available_quantities (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.available_quantities", false]], "available_quantities (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.available_quantities", false]], "available_selection (gammapy.makers.mapdatasetmaker attribute)": [[173, "gammapy.makers.MapDatasetMaker.available_selection", false]], "available_selection (gammapy.makers.spectrumdatasetmaker attribute)": [[180, "gammapy.makers.SpectrumDatasetMaker.available_selection", false]], "available_stat_type (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.available_stat_type", false]], "axes (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.axes", false]], "axes (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.axes", false]], "axes (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.axes", false]], "axes (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.axes", false]], "axes (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.axes", false]], "axes (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.axes", false]], "axes (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.axes", false]], "axes (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.axes", false]], "axes (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.axes", false]], "axes (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.axes", false]], "axes (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.axes", false]], "axes (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.axes", false]], "axes (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.axes", false]], "axes (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.axes", false]], "axes (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.axes", false]], "axes_names (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.axes_names", false]], "axes_names (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.axes_names", false]], "axes_names (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.axes_names", false]], "axis_names (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.axis_names", false]], "b (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.B", false]], "b (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.b", false]], "b (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.b", false]], "backend (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.backend", false]], "backend (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.backend", false]], "backend (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.backend", false]], "backend_default (in module gammapy.utils.parallel)": [[322, "gammapy.utils.parallel.BACKEND_DEFAULT", false]], "background (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.background", false]], "background (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.background", false]], "background (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.background", false]], "background (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.background", false]], "background2d (class in gammapy.irf)": [[147, "gammapy.irf.Background2D", false]], "background3d (class in gammapy.irf)": [[148, "gammapy.irf.Background3D", false]], "background_model (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.background_model", false]], "background_model (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.background_model", false]], "background_model (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.background_model", false]], "background_model (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.background_model", false]], "backgroundirf (class in gammapy.irf)": [[149, "gammapy.irf.BackgroundIRF", false]], "bar_radius (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.bar_radius", false]], "base_dir (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.base_dir", false]], "bbox_with_units (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.bbox_with_units", false]], "bbox_with_units (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.bbox_with_units", false]], "beta (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.beta", false]], "beta (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.beta", false]], "beta (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.beta", false]], "beta (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.beta", false]], "beta (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.beta", false]], "bin_volume() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.bin_volume", false]], "bin_volume() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.bin_volume", false]], "bin_volume() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.bin_volume", false]], "bin_width (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.bin_width", false]], "bin_width (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.bin_width", false]], "bin_width (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.bin_width", false]], "binary_dilate() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.binary_dilate", false]], "binary_erode() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.binary_erode", false]], "binary_structure() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.binary_structure", false]], "binsz_wcs (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.binsz_wcs", false]], "bkg": [[577, "term-Bkg", true]], "bkg (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.bkg", false]], "boundary_mask() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.boundary_mask", false]], "bounding_box (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.bounding_box", false]], "bounding_box (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.bounding_box", false]], "bounding_box (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.bounding_box", false]], "bounding_box (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.bounding_box", false]], "bounding_box (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.bounding_box", false]], "bounding_box (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.bounding_box", false]], "bounding_box (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.bounding_box", false]], "bounding_box (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.bounding_box", false]], "bounding_box (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.bounding_box", false]], "bounding_box (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.bounding_box", false]], "bounds (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.bounds", false]], "bounds (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.bounds", false]], "bounds (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.bounds", false]], "bounds (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.bounds", false]], "bounds (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.bounds", false]], "bounds (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.bounds", false]], "bounds (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.bounds", false]], "bounds (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.bounds", false]], "bounds (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.bounds", false]], "bounds (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.bounds", false]], "bounds (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.bounds", false]], "bounds (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.bounds", false]], "broadcasted (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.broadcasted", false]], "brokenpowerlawspectralmodel (class in gammapy.modeling.models)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel", false]], "burkertprofile (class in gammapy.astro.darkmatter)": [[17, "gammapy.astro.darkmatter.BurkertProfile", false]], "c (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.C", false]], "callback() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.callback", false]], "cartesian() (in module gammapy.utils.coordinates)": [[308, "gammapy.utils.coordinates.cartesian", false]], "casebattacharya1998 (class in gammapy.astro.population)": [[28, "gammapy.astro.population.CaseBattacharya1998", false]], "cash": [[577, "term-Cash", true]], "cash() (in module gammapy.stats)": [[291, "gammapy.stats.cash", false]], "cash_sum_cython() (in module gammapy.stats)": [[292, "gammapy.stats.cash_sum_cython", false]], "cashcountsstatistic (class in gammapy.stats)": [[288, "gammapy.stats.CashCountsStatistic", false]], "catalog_registry (in module gammapy.catalog)": [[55, "gammapy.catalog.CATALOG_REGISTRY", false]], "center (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.center", false]], "center (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.center", false]], "center (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.center", false]], "center_coord (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.center_coord", false]], "center_coord (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.center_coord", false]], "center_coord (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.center_coord", false]], "center_coord (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.center_coord", false]], "center_coord (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.center_coord", false]], "center_pix (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.center_pix", false]], "center_pix (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.center_pix", false]], "center_pix (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.center_pix", false]], "center_pix (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.center_pix", false]], "center_skydir (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.center_skydir", false]], "center_skydir (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.center_skydir", false]], "center_skydir (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.center_skydir", false]], "center_skydir (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.center_skydir", false]], "channel (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.channel", false]], "channel_registry (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.channel_registry", false]], "check() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.check", false]], "check() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.check", false]], "check() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.check", false]], "check_limits() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.check_limits", false]], "check_limits() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.check_limits", false]], "check_limits() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.check_limits", false]], "check_limits() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.check_limits", false]], "checker (class in gammapy.utils.testing)": [[354, "gammapy.utils.testing.Checker", false]], "clear() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.clear", false]], "clear() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.clear", false]], "clear() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.clear", false]], "clear() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.clear", false]], "coadd() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.coadd", false]], "coadd() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.coadd", false]], "coadd() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.coadd", false]], "coadd() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.coadd", false]], "coadd() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.coadd", false]], "coadd() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.coadd", false]], "coefficients (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.coefficients", false]], "coerce_units() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.coerce_units", false]], "coerce_units() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.coerce_units", false]], "coerce_units() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.coerce_units", false]], "coerce_units() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.coerce_units", false]], "coerce_units() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.coerce_units", false]], "coerce_units() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.coerce_units", false]], "coerce_units() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.coerce_units", false]], "coerce_units() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.coerce_units", false]], "coerce_units() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.coerce_units", false]], "coerce_units() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.coerce_units", false]], "col_fit_deriv (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.col_fit_deriv", false]], "col_fit_deriv (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.col_fit_deriv", false]], "colnames (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.colnames", false]], "colnames (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.colnames", false]], "colormap_hess() (in module gammapy.visualization)": [[370, "gammapy.visualization.colormap_hess", false]], "colormap_milagro() (in module gammapy.visualization)": [[371, "gammapy.visualization.colormap_milagro", false]], "columnclass (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.ColumnClass", false]], "columnclass (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.ColumnClass", false]], "combine_flux_maps() (in module gammapy.estimators.utils)": [[134, "gammapy.estimators.utils.combine_flux_maps", false]], "combine_significance_maps() (in module gammapy.estimators.utils)": [[135, "gammapy.estimators.utils.combine_significance_maps", false]], "components_models() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.components_models", false]], "compound_region_to_regions() (in module gammapy.utils.regions)": [[338, "gammapy.utils.regions.compound_region_to_regions", false]], "compoundspectralmodel (class in gammapy.modeling.models)": [[219, "gammapy.modeling.models.CompoundSpectralModel", false]], "compute_chisq() (in module gammapy.stats)": [[293, "gammapy.stats.compute_chisq", false]], "compute_differential_jfactor() (gammapy.astro.darkmatter.jfactory method)": [[23, "gammapy.astro.darkmatter.JFactory.compute_differential_jfactor", false]], "compute_errn() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.compute_errn", false]], "compute_errn() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.compute_errn", false]], "compute_errp() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.compute_errp", false]], "compute_errp() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.compute_errp", false]], "compute_flux_doubling() (in module gammapy.stats)": [[294, "gammapy.stats.compute_flux_doubling", false]], "compute_fpp() (in module gammapy.stats)": [[295, "gammapy.stats.compute_fpp", false]], "compute_fvar() (in module gammapy.stats)": [[296, "gammapy.stats.compute_fvar", false]], "compute_jfactor() (gammapy.astro.darkmatter.jfactory method)": [[23, "gammapy.astro.darkmatter.JFactory.compute_jfactor", false]], "compute_lightcurve_discrete_correlation() (in module gammapy.estimators.utils)": [[136, "gammapy.estimators.utils.compute_lightcurve_discrete_correlation", false]], "compute_lightcurve_doublingtime() (in module gammapy.estimators.utils)": [[137, "gammapy.estimators.utils.compute_lightcurve_doublingtime", false]], "compute_lightcurve_fpp() (in module gammapy.estimators.utils)": [[138, "gammapy.estimators.utils.compute_lightcurve_fpp", false]], "compute_lightcurve_fvar() (in module gammapy.estimators.utils)": [[139, "gammapy.estimators.utils.compute_lightcurve_fvar", false]], "compute_upper_limit() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.compute_upper_limit", false]], "compute_upper_limit() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.compute_upper_limit", false]], "concatenate() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.concatenate", false]], "concatenate() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.concatenate", false]], "conf_max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.conf_max", false]], "conf_max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.conf_max", false]], "conf_min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.conf_min", false]], "conf_min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.conf_min", false]], "confidence() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.confidence", false]], "config (gammapy.analysis.analysis attribute)": [[15, "gammapy.analysis.Analysis.config", false]], "config_parameters (gammapy.estimators.asmoothmapestimator attribute)": [[118, "gammapy.estimators.ASmoothMapEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.energydependentmorphologyestimator attribute)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.estimator attribute)": [[121, "gammapy.estimators.Estimator.config_parameters", false]], "config_parameters (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.imageprofileestimator attribute)": [[129, "gammapy.estimators.ImageProfileEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.parameterestimator attribute)": [[131, "gammapy.estimators.ParameterEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.sensitivityestimator attribute)": [[132, "gammapy.estimators.SensitivityEstimator.config_parameters", false]], "config_parameters (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.config_parameters", false]], "const (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.const", false]], "constantfluxspatialmodel (class in gammapy.modeling.models)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel", false]], "constantspatialmodel (class in gammapy.modeling.models)": [[221, "gammapy.modeling.models.ConstantSpatialModel", false]], "constantspectralmodel (class in gammapy.modeling.models)": [[222, "gammapy.modeling.models.ConstantSpectralModel", false]], "constanttemporalmodel (class in gammapy.modeling.models)": [[223, "gammapy.modeling.models.ConstantTemporalModel", false]], "construct() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.construct", false]], "construct() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.construct", false]], "construct() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.construct", false]], "construct() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.construct", false]], "construct() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.construct", false]], "containment() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.containment", false]], "containment() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.containment", false]], "containment() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.containment", false]], "containment() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.containment", false]], "containment() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.containment", false]], "containment() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.containment", false]], "containment_radius() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.containment_radius", false]], "containment_radius() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.containment_radius", false]], "containment_radius() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.containment_radius", false]], "containment_radius() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.containment_radius", false]], "containment_radius() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.containment_radius", false]], "containment_radius() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.containment_radius", false]], "containment_radius() (in module gammapy.maps)": [[207, "gammapy.maps.containment_radius", false]], "containment_radius_map() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.containment_radius_map", false]], "containment_radius_map() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.containment_radius_map", false]], "containment_region() (in module gammapy.maps)": [[208, "gammapy.maps.containment_region", false]], "contains() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.contains", false]], "contains() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.contains", false]], "contains() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.contains", false]], "contains() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.contains", false]], "contains_pix() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.contains_pix", false]], "contains_pix() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.contains_pix", false]], "contains_pix() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.contains_pix", false]], "contains_pix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.contains_pix", false]], "contains_wcs_pix() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.contains_wcs_pix", false]], "contributes() (gammapy.modeling.models.fovbackgroundmodel static method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.contributes", false]], "contributes() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.contributes", false]], "contributes_to_stat (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.contributes_to_stat", false]], "convert_bytestring_to_unicode() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.convert_bytestring_to_unicode", false]], "convert_bytestring_to_unicode() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.convert_bytestring_to_unicode", false]], "convert_unicode_to_bytestring() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.convert_unicode_to_bytestring", false]], "convert_unicode_to_bytestring() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.convert_unicode_to_bytestring", false]], "convolve() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.convolve", false]], "convolve() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.convolve", false]], "convolve_full() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.convolve_full", false]], "convolve_wcs() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.convolve_wcs", false]], "coord_to_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.coord_to_idx", false]], "coord_to_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.coord_to_idx", false]], "coord_to_pix() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.coord_to_pix", false]], "coord_to_pix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.coord_to_pix", false]], "coords (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.coords", false]], "copy() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.copy", false]], "copy() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.copy", false]], "copy() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.copy", false]], "copy() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.copy", false]], "copy() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.copy", false]], "copy() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.copy", false]], "copy() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.copy", false]], "copy() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.copy", false]], "copy() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.copy", false]], "copy() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.copy", false]], "copy() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.copy", false]], "copy() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.copy", false]], "copy() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.copy", false]], "copy() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.copy", false]], "copy() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.copy", false]], "copy() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.copy", false]], "copy() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.copy", false]], "copy() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.copy", false]], "copy() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.copy", false]], "copy() (gammapy.data.observationfilter method)": [[89, "gammapy.data.ObservationFilter.copy", false]], "copy() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.copy", false]], "copy() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.copy", false]], "copy() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.copy", false]], "copy() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.copy", false]], "copy() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.copy", false]], "copy() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.copy", false]], "copy() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.copy", false]], "copy() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.copy", false]], "copy() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.copy", false]], "copy() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.copy", false]], "copy() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.copy", false]], "copy() (gammapy.estimators.energydependentmorphologyestimator method)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.copy", false]], "copy() (gammapy.estimators.estimator method)": [[121, "gammapy.estimators.Estimator.copy", false]], "copy() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.copy", false]], "copy() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.copy", false]], "copy() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.copy", false]], "copy() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.copy", false]], "copy() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.copy", false]], "copy() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.copy", false]], "copy() (gammapy.estimators.imageprofileestimator method)": [[129, "gammapy.estimators.ImageProfileEstimator.copy", false]], "copy() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.copy", false]], "copy() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.copy", false]], "copy() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.copy", false]], "copy() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.copy", false]], "copy() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.copy", false]], "copy() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.copy", false]], "copy() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.copy", false]], "copy() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.copy", false]], "copy() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.copy", false]], "copy() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.copy", false]], "copy() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.copy", false]], "copy() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.copy", false]], "copy() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.copy", false]], "copy() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.copy", false]], "copy() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.copy", false]], "copy() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.copy", false]], "copy() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.copy", false]], "copy() (gammapy.maps.mapcoord method)": [[199, "gammapy.maps.MapCoord.copy", false]], "copy() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.copy", false]], "copy() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.copy", false]], "copy() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.copy", false]], "copy() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.copy", false]], "copy() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.copy", false]], "copy() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.copy", false]], "copy() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.copy", false]], "copy() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.copy", false]], "copy() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.copy", false]], "copy() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.copy", false]], "copy() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.copy", false]], "copy() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.copy", false]], "copy() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.copy", false]], "copy() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.copy", false]], "copy() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.copy", false]], "copy() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.copy", false]], "copy() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.copy", false]], "copy() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.copy", false]], "copy() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.copy", false]], "copy() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.copy", false]], "copy() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.copy", false]], "copy() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.copy", false]], "copy() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.copy", false]], "copy() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.copy", false]], "copy() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.copy", false]], "copy() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.copy", false]], "copy() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.copy", false]], "copy() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.copy", false]], "copy() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.copy", false]], "copy() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.copy", false]], "copy() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.copy", false]], "copy() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.copy", false]], "copy() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.copy", false]], "copy() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.copy", false]], "copy() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.copy", false]], "copy() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.copy", false]], "copy() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.copy", false]], "copy() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.copy", false]], "copy() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.copy", false]], "copy() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.copy", false]], "copy() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.copy", false]], "copy() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.copy", false]], "copy() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.copy", false]], "copy() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.copy", false]], "copy() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.copy", false]], "copy() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.copy", false]], "copy() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.copy", false]], "copy() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.copy", false]], "copy() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.copy", false]], "copy() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.copy", false]], "copy() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.copy", false]], "copy() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.copy", false]], "copy() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.copy", false]], "copy() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.copy", false]], "copy() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.copy", false]], "copy() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.copy", false]], "copy() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.copy", false]], "copy_obs() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.copy_obs", false]], "correlation (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.correlation", false]], "correlation_radius (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.correlation_radius", false]], "count() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.count", false]], "count() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.count", false]], "count() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.count", false]], "count() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.count", false]], "count() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.count", false]], "count() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.count", false]], "count() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.count", false]], "counts (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.counts", false]], "counts (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.counts", false]], "counts (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.counts", false]], "counts (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.counts", false]], "counts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.counts", false]], "counts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.counts", false]], "cov_matrix (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.cov_matrix", false]], "cov_matrix (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.cov_matrix", false]], "cov_matrix (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.cov_matrix", false]], "cov_matrix (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.cov_matrix", false]], "cov_matrix (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.cov_matrix", false]], "cov_matrix (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.cov_matrix", false]], "cov_matrix (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.cov_matrix", false]], "cov_matrix (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.cov_matrix", false]], "cov_matrix (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.cov_matrix", false]], "cov_matrix (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.cov_matrix", false]], "covariance (class in gammapy.modeling)": [[209, "gammapy.modeling.Covariance", false]], "covariance (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.covariance", false]], "covariance (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.covariance", false]], "covariance (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.covariance", false]], "covariance (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.covariance", false]], "covariance (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.covariance", false]], "covariance (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.covariance", false]], "covariance (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.covariance", false]], "covariance (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.covariance", false]], "covariance (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.covariance", false]], "covariance (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.covariance", false]], "covariance (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.covariance", false]], "covariance (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.covariance", false]], "covariance (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.covariance", false]], "covariance (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.covariance", false]], "covariance (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.covariance", false]], "covariance (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.covariance", false]], "covariance (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.covariance", false]], "covariance (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.covariance", false]], "covariance (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.covariance", false]], "covariance (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.covariance", false]], "covariance (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.covariance", false]], "covariance() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.covariance", false]], "covariance_result (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.covariance_result", false]], "covarianceresult (class in gammapy.modeling)": [[210, "gammapy.modeling.CovarianceResult", false]], "create() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.create", false]], "create() (gammapy.data.observation class method)": [[88, "gammapy.data.Observation.create", false]], "create() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.create", false]], "create() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.create", false]], "create() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.create", false]], "create() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.create", false]], "create() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.create", false]], "create() (gammapy.maps.hpxmap class method)": [[193, "gammapy.maps.HpxMap.create", false]], "create() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.create", false]], "create() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.create", false]], "create() (gammapy.maps.mapcoord class method)": [[199, "gammapy.maps.MapCoord.create", false]], "create() (gammapy.maps.regiongeom class method)": [[201, "gammapy.maps.RegionGeom.create", false]], "create() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.create", false]], "create() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.create", false]], "create() (gammapy.maps.wcsmap class method)": [[205, "gammapy.maps.WcsMap.create", false]], "create() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.create", false]], "create() (gammapy.modeling.models.model static method)": [[245, "gammapy.modeling.models.Model.create", false]], "create() (gammapy.modeling.models.skymodel class method)": [[263, "gammapy.modeling.models.SkyModel.create", false]], "create_cosmic_ray_spectral_model() (in module gammapy.modeling.models)": [[279, "gammapy.modeling.models.create_cosmic_ray_spectral_model", false]], "create_crab_spectral_model() (in module gammapy.modeling.models)": [[280, "gammapy.modeling.models.create_crab_spectral_model", false]], "create_empty_map_dataset_from_irfs() (in module gammapy.datasets)": [[112, "gammapy.datasets.create_empty_map_dataset_from_irfs", false]], "create_fermi_isotropic_diffuse_model() (in module gammapy.modeling.models)": [[281, "gammapy.modeling.models.create_fermi_isotropic_diffuse_model", false]], "create_map_dataset_from_observation() (in module gammapy.datasets)": [[113, "gammapy.datasets.create_map_dataset_from_observation", false]], "create_map_dataset_geoms() (in module gammapy.datasets)": [[114, "gammapy.datasets.create_map_dataset_geoms", false]], "crop() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.crop", false]], "crop() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.crop", false]], "crop() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.crop", false]], "crop() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.crop", false]], "crop() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.crop", false]], "crop() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.crop", false]], "crop() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.crop", false]], "crop() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.crop", false]], "crop() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.crop", false]], "crop() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.crop", false]], "cstat() (in module gammapy.stats)": [[297, "gammapy.stats.cstat", false]], "cumsum() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.cumsum", false]], "cumsum() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.cumsum", false]], "cumsum() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.cumsum", false]], "cumsum() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.cumsum", false]], "cumsum() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.cumsum", false]], "cumsum() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.cumsum", false]], "cumsum() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.cumsum", false]], "cumsum() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.cumsum", false]], "cumsum() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.cumsum", false]], "cumsum() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.cumsum", false]], "cumsum() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.cumsum", false]], "cumsum() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.cumsum", false]], "cumsum() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.cumsum", false]], "cumsum() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.cumsum", false]], "cumsum() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.cumsum", false]], "cumsum() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.cumsum", false]], "cumsum() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.cumsum", false]], "cumsum() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.cumsum", false]], "cutout() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.cutout", false]], "cutout() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.cutout", false]], "cutout() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.cutout", false]], "cutout() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.cutout", false]], "cutout() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.cutout", false]], "cutout() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.cutout", false]], "cutout() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.cutout", false]], "cutout() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.cutout", false]], "cutout() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.cutout", false]], "cutout() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.cutout", false]], "cutout() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.cutout", false]], "cutout() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.cutout", false]], "cutout() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.cutout", false]], "cutout() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.cutout", false]], "cutout() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.cutout", false]], "cutout_and_mask_region() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.cutout_and_mask_region", false]], "cutout_slices() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.cutout_slices", false]], "d_sun_to_galactic_center (in module gammapy.utils.coordinates)": [[307, "gammapy.utils.coordinates.D_SUN_TO_GALACTIC_CENTER", false]], "darkmatterannihilationspectralmodel (class in gammapy.astro.darkmatter)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel", false]], "darkmatterdecayspectralmodel (class in gammapy.astro.darkmatter)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel", false]], "data (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.data", false]], "data (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.data", false]], "data (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.data", false]], "data (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.data", false]], "data (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.data", false]], "data (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.data", false]], "data (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.data", false]], "data (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.data", false]], "data (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.data", false]], "data (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.data", false]], "data (gammapy.irf.psfkernel attribute)": [[161, "gammapy.irf.PSFKernel.data", false]], "data (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.data", false]], "data (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.data", false]], "data (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.data", false]], "data (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.data", false]], "data (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.data", false]], "data (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.data", false]], "data (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.data", false]], "data (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.data", false]], "data (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.data", false]], "data_nbytes() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.data_nbytes", false]], "data_nbytes() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.data_nbytes", false]], "data_nbytes() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.data_nbytes", false]], "data_nbytes() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.data_nbytes", false]], "data_shape (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.data_shape", false]], "data_shape (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.data_shape", false]], "data_shape (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.data_shape", false]], "data_shape (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.data_shape", false]], "data_shape (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.data_shape", false]], "data_shape (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.data_shape", false]], "data_shape (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.data_shape", false]], "data_shape (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.data_shape", false]], "data_shape() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.data_shape", false]], "data_shape_axes (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.data_shape_axes", false]], "data_shape_axes (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.data_shape_axes", false]], "data_shape_axes (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.data_shape_axes", false]], "data_shape_image (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.data_shape_image", false]], "dataset": [[577, "term-Dataset", true]], "dataset (class in gammapy.datasets)": [[99, "gammapy.datasets.Dataset", false]], "dataset_registry (in module gammapy.datasets)": [[98, "gammapy.datasets.DATASET_REGISTRY", false]], "datasetmodels (class in gammapy.modeling.models)": [[224, "gammapy.modeling.models.DatasetModels", false]], "datasets (class in gammapy.datasets)": [[100, "gammapy.datasets.Datasets", false]], "datasetsmaker (class in gammapy.makers)": [[169, "gammapy.makers.DatasetsMaker", false]], "datastore (class in gammapy.data)": [[82, "gammapy.data.DataStore", false]], "deepcopy() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.deepcopy", false]], "deepcopy() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.deepcopy", false]], "deepcopy() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.deepcopy", false]], "deepcopy() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.deepcopy", false]], "deepcopy() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.deepcopy", false]], "deepcopy() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.deepcopy", false]], "deepcopy() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.deepcopy", false]], "deepcopy() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.deepcopy", false]], "deepcopy() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.deepcopy", false]], "deepcopy() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.deepcopy", false]], "default_alpha (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.DEFAULT_ALPHA", false]], "default_alpha (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_ALPHA", false]], "default_beta (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_BETA", false]], "default_gamma (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_GAMMA", false]], "default_hdu_table (gammapy.data.datastore attribute)": [[82, "gammapy.data.DataStore.DEFAULT_HDU_TABLE", false]], "default_interp_kwargs (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.default_interp_kwargs", false]], "default_interp_kwargs (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.default_interp_kwargs", false]], "default_obs_table (gammapy.data.datastore attribute)": [[82, "gammapy.data.DataStore.DEFAULT_OBS_TABLE", false]], "default_parameters (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.default_parameters", false]], "default_parameters (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.default_parameters", false]], "default_parameters (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.default_parameters", false]], "default_parameters (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.default_parameters", false]], "default_parameters (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.default_parameters", false]], "default_parameters (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.default_parameters", false]], "default_scale_radius (gammapy.astro.darkmatter.burkertprofile attribute)": [[17, "gammapy.astro.darkmatter.BurkertProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.isothermalprofile attribute)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.mooreprofile attribute)": [[24, "gammapy.astro.darkmatter.MooreProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.nfwprofile attribute)": [[25, "gammapy.astro.darkmatter.NFWProfile.DEFAULT_SCALE_RADIUS", false]], "default_scale_radius (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DEFAULT_SCALE_RADIUS", false]], "default_unit (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.default_unit", false]], "default_unit (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.default_unit", false]], "default_unit (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.default_unit", false]], "default_unit (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.default_unit", false]], "default_unit (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.default_unit", false]], "default_unit (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.default_unit", false]], "delete_interval() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.delete_interval", false]], "description (gammapy.catalog.sourcecatalog1lhaaso attribute)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.description", false]], "description (gammapy.catalog.sourcecatalog2fhl attribute)": [[58, "gammapy.catalog.SourceCatalog2FHL.description", false]], "description (gammapy.catalog.sourcecatalog2hwc attribute)": [[59, "gammapy.catalog.SourceCatalog2HWC.description", false]], "description (gammapy.catalog.sourcecatalog2pc attribute)": [[60, "gammapy.catalog.SourceCatalog2PC.description", false]], "description (gammapy.catalog.sourcecatalog3fgl attribute)": [[61, "gammapy.catalog.SourceCatalog3FGL.description", false]], "description (gammapy.catalog.sourcecatalog3fhl attribute)": [[62, "gammapy.catalog.SourceCatalog3FHL.description", false]], "description (gammapy.catalog.sourcecatalog3hwc attribute)": [[63, "gammapy.catalog.SourceCatalog3HWC.description", false]], "description (gammapy.catalog.sourcecatalog3pc attribute)": [[64, "gammapy.catalog.SourceCatalog3PC.description", false]], "description (gammapy.catalog.sourcecatalog4fgl attribute)": [[65, "gammapy.catalog.SourceCatalog4FGL.description", false]], "description (gammapy.catalog.sourcecataloggammacat attribute)": [[66, "gammapy.catalog.SourceCatalogGammaCat.description", false]], "description (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.description", false]], "description() (gammapy.catalog.sourcecatalog class method)": [[56, "gammapy.catalog.SourceCatalog.description", false]], "dict() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.dict", false]], "dict() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.dict", false]], "dict() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.dict", false]], "dict() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.dict", false]], "dict() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.dict", false]], "discrete_correlation() (in module gammapy.stats)": [[298, "gammapy.stats.discrete_correlation", false]], "diskspatialmodel (class in gammapy.modeling.models)": [[225, "gammapy.modeling.models.DiskSpatialModel", false]], "distance_gc (gammapy.astro.darkmatter.burkertprofile attribute)": [[17, "gammapy.astro.darkmatter.BurkertProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.dmprofile attribute)": [[18, "gammapy.astro.darkmatter.DMProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.isothermalprofile attribute)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.mooreprofile attribute)": [[24, "gammapy.astro.darkmatter.MooreProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.nfwprofile attribute)": [[25, "gammapy.astro.darkmatter.NFWProfile.DISTANCE_GC", false]], "distance_gc (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.DISTANCE_GC", false]], "dl3": [[577, "term-DL3", true]], "dl4": [[577, "term-DL4", true]], "dl5": [[577, "term-DL5", true]], "dl6": [[577, "term-DL6", true]], "dmprofile (class in gammapy.astro.darkmatter)": [[18, "gammapy.astro.darkmatter.DMProfile", false]], "dnde (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde", false]], "dnde (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde", false]], "dnde_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_err", false]], "dnde_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_err", false]], "dnde_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_errn", false]], "dnde_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_errn", false]], "dnde_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_errp", false]], "dnde_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_errp", false]], "dnde_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_ref", false]], "dnde_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_ref", false]], "dnde_scan_values (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_scan_values", false]], "dnde_scan_values (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_scan_values", false]], "dnde_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.dnde_ul", false]], "dnde_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.dnde_ul", false]], "dot() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.dot", false]], "dot() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.dot", false]], "dot() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.dot", false]], "dot() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.dot", false]], "dot() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.dot", false]], "dot() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.dot", false]], "downsample() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.downsample", false]], "downsample() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.downsample", false]], "downsample() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.downsample", false]], "downsample() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.downsample", false]], "downsample() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.downsample", false]], "downsample() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.downsample", false]], "downsample() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.downsample", false]], "downsample() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.downsample", false]], "downsample() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.downsample", false]], "downsample() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.downsample", false]], "downsample() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.downsample", false]], "downsample() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.downsample", false]], "downsample() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.downsample", false]], "downsample() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.downsample", false]], "downsample() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.downsample", false]], "downsample() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.downsample", false]], "downsample() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.downsample", false]], "downsample() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.downsample", false]], "downsample() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.downsample", false]], "downsample() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.downsample", false]], "downsample() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.downsample", false]], "downsample() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.downsample", false]], "downsample() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.downsample", false]], "draw() (in module gammapy.utils.random)": [[330, "gammapy.utils.random.draw", false]], "drift (gammapy.data.pointingmode attribute)": [[95, "gammapy.data.PointingMode.DRIFT", false]], "drop() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.drop", false]], "drop() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.drop", false]], "drop() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.drop", false]], "drop() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.drop", false]], "drop() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.drop", false]], "dtype (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.dtype", false]], "dtype (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.dtype", false]], "duration (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.duration", false]], "e (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.e", false]], "e (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.e", false]], "e (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.e", false]], "e2dnde (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde", false]], "e2dnde (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde", false]], "e2dnde_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_err", false]], "e2dnde_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_err", false]], "e2dnde_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_errn", false]], "e2dnde_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_errn", false]], "e2dnde_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_errp", false]], "e2dnde_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_errp", false]], "e2dnde_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_ref", false]], "e2dnde_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_ref", false]], "e2dnde_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.e2dnde_ul", false]], "e2dnde_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.e2dnde_ul", false]], "e_peak (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.e_peak", false]], "e_peak (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.e_peak", false]], "earth_location_from_dict() (in module gammapy.utils.fits)": [[317, "gammapy.utils.fits.earth_location_from_dict", false]], "ebl_data_builtin (in module gammapy.modeling.models)": [[227, "gammapy.modeling.models.EBL_DATA_BUILTIN", false]], "eblabsorptionnormspectralmodel (class in gammapy.modeling.models)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel", false]], "ebreak (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.ebreak", false]], "ebreak (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.ebreak", false]], "ecut (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.ecut", false]], "ecut (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.ecut", false]], "edge_width (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.edge_width", false]], "edges (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.edges", false]], "edges (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.edges", false]], "edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.edges", false]], "edges_max (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.edges_max", false]], "edges_max (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.edges_max", false]], "edges_max (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.edges_max", false]], "edges_min (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.edges_min", false]], "edges_min (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.edges_min", false]], "edges_min (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.edges_min", false]], "edisp": [[577, "term-EDisp", true]], "edisp (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.edisp", false]], "edisp (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.edisp", false]], "edisp (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.edisp", false]], "edisp (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.edisp", false]], "edisp (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.edisp", false]], "edisp_map (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.edisp_map", false]], "edisp_map (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.edisp_map", false]], "edispkernel (class in gammapy.irf)": [[150, "gammapy.irf.EDispKernel", false]], "edispkernelmap (class in gammapy.irf)": [[151, "gammapy.irf.EDispKernelMap", false]], "edispmap (class in gammapy.irf)": [[152, "gammapy.irf.EDispMap", false]], "effectiveareatable2d (class in gammapy.irf)": [[153, "gammapy.irf.EffectiveAreaTable2D", false]], "eflux (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux", false]], "eflux (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux", false]], "eflux_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_err", false]], "eflux_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_err", false]], "eflux_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_errn", false]], "eflux_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_errn", false]], "eflux_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_errp", false]], "eflux_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_errp", false]], "eflux_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_ref", false]], "eflux_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_ref", false]], "eflux_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.eflux_ul", false]], "eflux_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.eflux_ul", false]], "einastoprofile (class in gammapy.astro.darkmatter)": [[21, "gammapy.astro.darkmatter.EinastoProfile", false]], "emax (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.emax", false]], "emin (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.emin", false]], "energy (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.energy", false]], "energy (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.energy", false]], "energy_axes_are_aligned (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.energy_axes_are_aligned", false]], "energy_axis (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_axis", false]], "energy_axis (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_axis", false]], "energy_center (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.energy_center", false]], "energy_flux() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.energy_flux", false]], "energy_flux() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.energy_flux", false]], "energy_flux() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.energy_flux", false]], "energy_flux() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.energy_flux", false]], "energy_flux() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.energy_flux", false]], "energy_flux_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.energy_flux_error", false]], "energy_flux_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.energy_flux_error", false]], "energy_integrated() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.energy_integrated", false]], "energy_mask() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.energy_mask", false]], "energy_mask() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.energy_mask", false]], "energy_mask() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.energy_mask", false]], "energy_mask() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.energy_mask", false]], "energy_max (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_max", false]], "energy_max (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_max", false]], "energy_min (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_min", false]], "energy_min (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_min", false]], "energy_name (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.energy_name", false]], "energy_name (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.energy_name", false]], "energy_range (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.energy_range", false]], "energy_range (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.energy_range", false]], "energy_range (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.energy_range", false]], "energy_range (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.energy_range", false]], "energy_range (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range", false]], "energy_range (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range", false]], "energy_range (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range", false]], "energy_range (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range", false]], "energy_range_fit (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range_fit", false]], "energy_range_fit (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range_fit", false]], "energy_range_fit (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range_fit", false]], "energy_range_fit (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range_fit", false]], "energy_range_safe (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range_safe", false]], "energy_range_safe (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range_safe", false]], "energy_range_safe (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range_safe", false]], "energy_range_safe (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range_safe", false]], "energy_range_total (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.energy_range_total", false]], "energy_range_total (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.energy_range_total", false]], "energy_range_total (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.energy_range_total", false]], "energy_range_total (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.energy_range_total", false]], "energy_ranges (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.energy_ranges", false]], "energy_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.energy_ref", false]], "energy_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.energy_ref", false]], "energydependentmorphologyestimator (class in gammapy.estimators)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator", false]], "energydependentmultigausspsf (class in gammapy.irf)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF", false]], "energydispersion2d (class in gammapy.irf)": [[155, "gammapy.irf.EnergyDispersion2D", false]], "eqcons (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.eqcons", false]], "eqcons (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.eqcons", false]], "eqcons (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.eqcons", false]], "eqcons (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.eqcons", false]], "eqcons (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.eqcons", false]], "eqcons (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.eqcons", false]], "eqcons (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.eqcons", false]], "eqcons (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.eqcons", false]], "eqcons (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.eqcons", false]], "eqcons (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.eqcons", false]], "error (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.error", false]], "error (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.error", false]], "error (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.error", false]], "error (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.error", false]], "error_callback() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.error_callback", false]], "estimate_best_fit() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_best_fit", false]], "estimate_best_fit() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_best_fit", false]], "estimate_best_fit() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_best_fit", false]], "estimate_best_fit() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_best_fit", false]], "estimate_counts() (gammapy.estimators.fluxpointsestimator static method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_counts", false]], "estimate_counts() (gammapy.estimators.fluxprofileestimator static method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_counts", false]], "estimate_counts() (gammapy.estimators.lightcurveestimator static method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_counts", false]], "estimate_counts() (gammapy.estimators.parameterestimator static method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_counts", false]], "estimate_energy_dependence() (gammapy.estimators.energydependentmorphologyestimator method)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.estimate_energy_dependence", false]], "estimate_errn_errp() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_errn_errp", false]], "estimate_errn_errp() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_errn_errp", false]], "estimate_errn_errp() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_errn_errp", false]], "estimate_errn_errp() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_errn_errp", false]], "estimate_excess_map() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_excess_map", false]], "estimate_exposure_reco_energy() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_exposure_reco_energy", false]], "estimate_exposure_reco_energy() (in module gammapy.estimators.utils)": [[140, "gammapy.estimators.utils.estimate_exposure_reco_energy", false]], "estimate_fit_input_maps() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_fit_input_maps", false]], "estimate_flux_default() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_flux_default", false]], "estimate_flux_map() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_flux_map", false]], "estimate_flux_point() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_flux_point", false]], "estimate_flux_point() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_flux_point", false]], "estimate_flux_point() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_flux_point", false]], "estimate_kernel() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_kernel", false]], "estimate_kernel() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_kernel", false]], "estimate_maps() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.estimate_maps", false]], "estimate_mask_default() (gammapy.estimators.excessmapestimator static method)": [[122, "gammapy.estimators.ExcessMapEstimator.estimate_mask_default", false]], "estimate_mask_default() (gammapy.estimators.tsmapestimator static method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_mask_default", false]], "estimate_min_e2dnde() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.estimate_min_e2dnde", false]], "estimate_min_excess() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.estimate_min_excess", false]], "estimate_npred() (gammapy.estimators.fluxpointsestimator static method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_npred", false]], "estimate_npred() (gammapy.estimators.fluxprofileestimator static method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_npred", false]], "estimate_npred() (gammapy.estimators.lightcurveestimator static method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_npred", false]], "estimate_npred() (gammapy.estimators.parameterestimator static method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_npred", false]], "estimate_npred_excess() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_npred_excess", false]], "estimate_npred_excess() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_npred_excess", false]], "estimate_npred_excess() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_npred_excess", false]], "estimate_pad_width() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.estimate_pad_width", false]], "estimate_scan() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_scan", false]], "estimate_scan() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_scan", false]], "estimate_scan() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_scan", false]], "estimate_scan() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_scan", false]], "estimate_time_bin_flux() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_time_bin_flux", false]], "estimate_ts() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_ts", false]], "estimate_ts() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_ts", false]], "estimate_ts() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_ts", false]], "estimate_ts() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_ts", false]], "estimate_ul() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.estimate_ul", false]], "estimate_ul() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.estimate_ul", false]], "estimate_ul() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.estimate_ul", false]], "estimate_ul() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.estimate_ul", false]], "estimator": [[577, "term-Estimator", true]], "estimator (class in gammapy.estimators)": [[121, "gammapy.estimators.Estimator", false]], "estimator_registry (in module gammapy.estimators)": [[119, "gammapy.estimators.ESTIMATOR_REGISTRY", false]], "eta (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.eta", false]], "eta (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.eta", false]], "eta (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.eta", false]], "evaluate() (gammapy.astro.darkmatter.burkertprofile static method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.einastoprofile static method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.isothermalprofile static method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.mooreprofile static method)": [[24, "gammapy.astro.darkmatter.MooreProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.nfwprofile static method)": [[25, "gammapy.astro.darkmatter.NFWProfile.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.evaluate", false]], "evaluate() (gammapy.astro.darkmatter.zhaoprofile static method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.evaluate", false]], "evaluate() (gammapy.astro.population.casebattacharya1998 static method)": [[28, "gammapy.astro.population.CaseBattacharya1998.evaluate", false]], "evaluate() (gammapy.astro.population.exponential static method)": [[29, "gammapy.astro.population.Exponential.evaluate", false]], "evaluate() (gammapy.astro.population.faucherkaspi2006 static method)": [[30, "gammapy.astro.population.FaucherKaspi2006.evaluate", false]], "evaluate() (gammapy.astro.population.faucherkaspi2006velocitybimodal static method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.evaluate", false]], "evaluate() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian static method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.evaluate", false]], "evaluate() (gammapy.astro.population.lorimer2006 static method)": [[35, "gammapy.astro.population.Lorimer2006.evaluate", false]], "evaluate() (gammapy.astro.population.paczynski1990 static method)": [[36, "gammapy.astro.population.Paczynski1990.evaluate", false]], "evaluate() (gammapy.astro.population.paczynski1990velocity static method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.evaluate", false]], "evaluate() (gammapy.astro.population.yusifovkucuk2004 static method)": [[39, "gammapy.astro.population.YusifovKucuk2004.evaluate", false]], "evaluate() (gammapy.astro.population.yusifovkucuk2004b static method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.evaluate", false]], "evaluate() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.evaluate", false]], "evaluate() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.evaluate", false]], "evaluate() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.evaluate", false]], "evaluate() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.evaluate", false]], "evaluate() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.evaluate", false]], "evaluate() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.evaluate", false]], "evaluate() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate", false]], "evaluate() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.evaluate", false]], "evaluate() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.evaluate", false]], "evaluate() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate", false]], "evaluate() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.evaluate", false]], "evaluate() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.evaluate", false]], "evaluate() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.evaluate", false]], "evaluate() (gammapy.modeling.models.brokenpowerlawspectralmodel static method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constantfluxspatialmodel static method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constantspatialmodel static method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constantspectralmodel static method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.constanttemporalmodel static method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.diskspatialmodel static method)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel static method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel static method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expcutoffpowerlawspectralmodel static method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.expdecaytemporalmodel static method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussianprior static method)": [[233, "gammapy.modeling.models.GaussianPrior.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussianspatialmodel static method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussianspectralmodel static method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.gaussiantemporalmodel static method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.generalizedgaussianspatialmodel static method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.generalizedgaussiantemporalmodel static method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.lineartemporalmodel static method)": [[240, "gammapy.modeling.models.LinearTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.logparabolanormspectralmodel static method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.logparabolaspectralmodel static method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.meyercrabspectralmodel static method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlaw2spectralmodel static method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlawnormspectralmodel static method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlawspectralmodel static method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.powerlawtemporalmodel static method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.shell2spatialmodel static method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.shellspatialmodel static method)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.sinetemporalmodel static method)": [[262, "gammapy.modeling.models.SineTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.evaluate", false]], "evaluate() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel static method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel static method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel static method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel static method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluate", false]], "evaluate() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.evaluate", false]], "evaluate() (gammapy.modeling.models.uniformprior static method)": [[278, "gammapy.modeling.models.UniformPrior.evaluate", false]], "evaluate_containment() (gammapy.irf.energydependentmultigausspsf static method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate_containment", false]], "evaluate_containment() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate_containment", false]], "evaluate_containment() (gammapy.irf.psfking static method)": [[162, "gammapy.irf.PSFKing.evaluate_containment", false]], "evaluate_direct() (gammapy.irf.energydependentmultigausspsf static method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate_direct", false]], "evaluate_direct() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate_direct", false]], "evaluate_direct() (gammapy.irf.psfking static method)": [[162, "gammapy.irf.PSFKing.evaluate_direct", false]], "evaluate_energy_flux() (gammapy.modeling.models.powerlawnormspectralmodel static method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate_energy_flux", false]], "evaluate_energy_flux() (gammapy.modeling.models.powerlawspectralmodel static method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate_energy_flux", false]], "evaluate_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.evaluate_error", false]], "evaluate_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.evaluate_error", false]], "evaluate_geom() (gammapy.modeling.models.constantfluxspatialmodel static method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluate_geom", false]], "evaluate_geom() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluate_geom", false]], "evaluate_integral() (gammapy.modeling.models.powerlaw2spectralmodel static method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.evaluate_integral", false]], "evaluate_integral() (gammapy.modeling.models.powerlawnormspectralmodel static method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.evaluate_integral", false]], "evaluate_integral() (gammapy.modeling.models.powerlawspectralmodel static method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.evaluate_integral", false]], "evaluate_parameters() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.evaluate_parameters", false]], "evaluate_parameters() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.evaluate_parameters", false]], "evaluate_parameters() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.evaluate_parameters", false]], "evaluation_bin_size_min (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluation_bin_size_min", false]], "evaluation_bin_size_min (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluation_bin_size_min", false]], "evaluation_radius (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.evaluation_radius", false]], "evaluation_radius (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluation_radius", false]], "evaluation_region (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.evaluation_region", false]], "evaluation_region (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.evaluation_region", false]], "evaluators (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.evaluators", false]], "evaluators (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.evaluators", false]], "evaluators (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.evaluators", false]], "evaluators (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.evaluators", false]], "event_det_coords() (gammapy.datasets.mapdataseteventsampler static method)": [[103, "gammapy.datasets.MapDatasetEventSampler.event_det_coords", false]], "event_det_coords() (gammapy.datasets.observationeventsampler static method)": [[108, "gammapy.datasets.ObservationEventSampler.event_det_coords", false]], "event_filter_types (gammapy.data.observationfilter attribute)": [[89, "gammapy.data.ObservationFilter.EVENT_FILTER_TYPES", false]], "event_list_meta() (gammapy.datasets.mapdataseteventsampler static method)": [[103, "gammapy.datasets.MapDatasetEventSampler.event_list_meta", false]], "event_list_meta() (gammapy.datasets.observationeventsampler static method)": [[108, "gammapy.datasets.ObservationEventSampler.event_list_meta", false]], "eventlist (class in gammapy.data)": [[83, "gammapy.data.EventList", false]], "eventlistmetadata (class in gammapy.data)": [[84, "gammapy.data.EventListMetaData", false]], "events (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.events", false]], "evolved (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.evolved", false]], "evolved (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.evolved", false]], "evolved (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.evolved", false]], "evolved (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.evolved", false]], "evolved (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.evolved", false]], "evolved (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.evolved", false]], "evolved (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.evolved", false]], "excess (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.excess", false]], "excess (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.excess", false]], "excess (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.excess", false]], "excess (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.excess", false]], "excessmapestimator (class in gammapy.estimators)": [[122, "gammapy.estimators.ExcessMapEstimator", false]], "expand_map() (gammapy.estimators.lightcurveestimator static method)": [[130, "gammapy.estimators.LightCurveEstimator.expand_map", false]], "expcutoffpowerlaw3fglspectralmodel (class in gammapy.modeling.models)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel", false]], "expcutoffpowerlawnormspectralmodel (class in gammapy.modeling.models)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel", false]], "expcutoffpowerlawspectralmodel (class in gammapy.modeling.models)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel", false]], "expdecaytemporalmodel (class in gammapy.modeling.models)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel", false]], "expfactor (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.expfactor", false]], "expfactor (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.expfactor", false]], "exponential (class in gammapy.astro.population)": [[29, "gammapy.astro.population.Exponential", false]], "exposure (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.exposure", false]], "exposure (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.exposure", false]], "exposure (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.exposure", false]], "exposure (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.exposure", false]], "extend() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.extend", false]], "extend() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.extend", false]], "extend() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.extend", false]], "f0 (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.f0", false]], "f1 (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.f1", false]], "f2 (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.f2", false]], "f_cash_root_cython() (in module gammapy.stats)": [[299, "gammapy.stats.f_cash_root_cython", false]], "factor (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.factor", false]], "factor (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.factor", false]], "factor_max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.factor_max", false]], "factor_max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.factor_max", false]], "factor_min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.factor_min", false]], "factor_min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.factor_min", false]], "fake() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.fake", false]], "fake() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.fake", false]], "fake() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.fake", false]], "fake() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.fake", false]], "faucherkaspi2006 (class in gammapy.astro.population)": [[30, "gammapy.astro.population.FaucherKaspi2006", false]], "faucherkaspi2006velocitybimodal (class in gammapy.astro.population)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal", false]], "faucherkaspi2006velocitymaxwellian (class in gammapy.astro.population)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian", false]], "faucherspiral (class in gammapy.astro.population)": [[33, "gammapy.astro.population.FaucherSpiral", false]], "field() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.field", false]], "field() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.field", false]], "fill_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_by_coord", false]], "fill_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_by_coord", false]], "fill_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_by_idx", false]], "fill_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_by_idx", false]], "fill_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_by_pix", false]], "fill_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_by_pix", false]], "fill_events() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.fill_events", false]], "fill_events() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.fill_events", false]], "fill_events() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.fill_events", false]], "fill_events() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.fill_events", false]], "fill_events() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.fill_events", false]], "fill_events() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.fill_events", false]], "filled() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.filled", false]], "filled() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.filled", false]], "filter_events() (gammapy.data.observationfilter method)": [[89, "gammapy.data.ObservationFilter.filter_events", false]], "filter_gti() (gammapy.data.observationfilter method)": [[89, "gammapy.data.ObservationFilter.filter_gti", false]], "filter_success_nan (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.filter_success_nan", false]], "filter_success_nan (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.filter_success_nan", false]], "find_peaks() (in module gammapy.estimators.utils)": [[141, "gammapy.estimators.utils.find_peaks", false]], "find_peaks_in_flux_map() (in module gammapy.estimators.utils)": [[142, "gammapy.estimators.utils.find_peaks_in_flux_map", false]], "fit (class in gammapy.modeling)": [[211, "gammapy.modeling.Fit", false]], "fit_deriv (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.fit_deriv", false]], "fit_deriv (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.fit_deriv", false]], "fit_deriv (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.fit_deriv", false]], "fit_deriv (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.fit_deriv", false]], "fit_deriv (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.fit_deriv", false]], "fit_deriv (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.fit_deriv", false]], "fit_deriv (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.fit_deriv", false]], "fit_deriv (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.fit_deriv", false]], "fit_deriv (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.fit_deriv", false]], "fit_deriv (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.fit_deriv", false]], "fitresult (class in gammapy.modeling)": [[212, "gammapy.modeling.FitResult", false]], "fittable (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.fittable", false]], "fittable (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.fittable", false]], "fittable (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.fittable", false]], "fittable (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.fittable", false]], "fittable (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.fittable", false]], "fittable (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.fittable", false]], "fittable (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.fittable", false]], "fittable (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.fittable", false]], "fittable (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.fittable", false]], "fittable (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.fittable", false]], "fixed (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.fixed", false]], "fixed (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.fixed", false]], "fixed (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.fixed", false]], "fixed (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.fixed", false]], "fixed (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.fixed", false]], "fixed (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.fixed", false]], "fixed (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.fixed", false]], "fixed (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.fixed", false]], "fixed (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.fixed", false]], "fixed (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.fixed", false]], "fixed_altaz (gammapy.data.fixedpointinginfo attribute)": [[85, "gammapy.data.FixedPointingInfo.fixed_altaz", false]], "fixed_icrs (gammapy.data.fixedpointinginfo attribute)": [[85, "gammapy.data.FixedPointingInfo.fixed_icrs", false]], "fixedpointinginfo (class in gammapy.data)": [[85, "gammapy.data.FixedPointingInfo", false]], "flat (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.flat", false]], "flux (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux", false]], "flux (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux", false]], "flux_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_err", false]], "flux_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_err", false]], "flux_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_errn", false]], "flux_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_errn", false]], "flux_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_errp", false]], "flux_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_errp", false]], "flux_points (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.flux_points", false]], "flux_points (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.flux_points", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.flux_points_meta", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.flux_points_meta", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.flux_points_meta", false]], "flux_points_meta (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.flux_points_meta", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.flux_points_table", false]], "flux_points_table (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.flux_points_table", false]], "flux_pred() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.flux_pred", false]], "flux_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_ref", false]], "flux_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_ref", false]], "flux_sensitivity (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_sensitivity", false]], "flux_sensitivity (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_sensitivity", false]], "flux_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.flux_ul", false]], "flux_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.flux_ul", false]], "fluxmaps (class in gammapy.estimators)": [[123, "gammapy.estimators.FluxMaps", false]], "fluxmetadata (class in gammapy.estimators)": [[124, "gammapy.estimators.FluxMetaData", false]], "fluxpoints (class in gammapy.estimators)": [[125, "gammapy.estimators.FluxPoints", false]], "fluxpointsdataset (class in gammapy.datasets)": [[101, "gammapy.datasets.FluxPointsDataset", false]], "fluxpointsestimator (class in gammapy.estimators)": [[126, "gammapy.estimators.FluxPointsEstimator", false]], "fluxprofileestimator (class in gammapy.estimators)": [[127, "gammapy.estimators.FluxProfileEstimator", false]], "footprint (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.footprint", false]], "footprint_rectangle_sky_region (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.footprint_rectangle_sky_region", false]], "format_plot_xaxis() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.format_plot_xaxis", false]], "format_plot_xaxis() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.format_plot_xaxis", false]], "format_plot_xaxis() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.format_plot_xaxis", false]], "format_plot_yaxis() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.format_plot_yaxis", false]], "fov": [[577, "term-FoV", true]], "fov background": [[577, "term-FoV-Background", true]], "fov_alignment (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.fov_alignment", false]], "fov_alignment (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.fov_alignment", false]], "fov_alignment (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.fov_alignment", false]], "fov_alignment (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.fov_alignment", false]], "fov_alignment (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.fov_alignment", false]], "fov_alignment (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.fov_alignment", false]], "fov_alignment (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.fov_alignment", false]], "fov_alignment (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.fov_alignment", false]], "fov_alignment (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.fov_alignment", false]], "fov_alignment (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.fov_alignment", false]], "fov_alignment (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.fov_alignment", false]], "fov_alignment (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.fov_alignment", false]], "fov_to_sky() (in module gammapy.utils.coordinates)": [[309, "gammapy.utils.coordinates.fov_to_sky", false]], "fovalignment (class in gammapy.irf)": [[156, "gammapy.irf.FoVAlignment", false]], "fovbackgroundmaker (class in gammapy.makers)": [[170, "gammapy.makers.FoVBackgroundMaker", false]], "fovbackgroundmodel (class in gammapy.modeling.models)": [[232, "gammapy.modeling.models.FoVBackgroundModel", false]], "frame (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.frame", false]], "frame (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.frame", false]], "frame (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.frame", false]], "frame (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.frame", false]], "frame (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.frame", false]], "frame (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.frame", false]], "frame (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.frame", false]], "free_parameters (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.free_parameters", false]], "free_parameters (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.free_parameters", false]], "freeze() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.freeze", false]], "freeze() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.freeze", false]], "freeze() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.freeze", false]], "freeze() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.freeze", false]], "freeze() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.freeze", false]], "freeze() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.freeze", false]], "freeze() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.freeze", false]], "freeze() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.freeze", false]], "freeze() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.freeze", false]], "freeze() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.freeze", false]], "freeze() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.freeze", false]], "freeze() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.freeze", false]], "freeze() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.freeze", false]], "freeze() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.freeze", false]], "freeze() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.freeze", false]], "freeze_all() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.freeze_all", false]], "freeze_all() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.freeze_all", false]], "from_aligned() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.from_aligned", false]], "from_bounds() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_bounds", false]], "from_default() (gammapy.maps.mapaxes class method)": [[197, "gammapy.maps.MapAxes.from_default", false]], "from_diagonal_response() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_diagonal_response", false]], "from_diagonal_response() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_diagonal_response", false]], "from_diagonal_response() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.from_diagonal_response", false]], "from_dict() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel class method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.from_dict", false]], "from_dict() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel class method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.from_dict", false]], "from_dict() (gammapy.astro.darkmatter.primaryflux class method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.from_dict", false]], "from_dict() (gammapy.datasets.fluxpointsdataset class method)": [[101, "gammapy.datasets.FluxPointsDataset.from_dict", false]], "from_dict() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.from_dict", false]], "from_dict() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_dict", false]], "from_dict() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.from_dict", false]], "from_dict() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_dict", false]], "from_dict() (gammapy.modeling.models.brokenpowerlawspectralmodel class method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.compoundspectralmodel class method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constantfluxspatialmodel class method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constantspatialmodel class method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constantspectralmodel class method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.constanttemporalmodel class method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.datasetmodels class method)": [[224, "gammapy.modeling.models.DatasetModels.from_dict", false]], "from_dict() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel class method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel class method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expcutoffpowerlawspectralmodel class method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.expdecaytemporalmodel class method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.fovbackgroundmodel class method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussianprior class method)": [[233, "gammapy.modeling.models.GaussianPrior.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussianspatialmodel class method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussianspectralmodel class method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.gaussiantemporalmodel class method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.generalizedgaussianspatialmodel class method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.generalizedgaussiantemporalmodel class method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.lineartemporalmodel class method)": [[240, "gammapy.modeling.models.LinearTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.logparabolanormspectralmodel class method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.logparabolaspectralmodel class method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.meyercrabspectralmodel class method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.model static method)": [[245, "gammapy.modeling.models.Model.from_dict", false]], "from_dict() (gammapy.modeling.models.modelbase class method)": [[246, "gammapy.modeling.models.ModelBase.from_dict", false]], "from_dict() (gammapy.modeling.models.models class method)": [[247, "gammapy.modeling.models.Models.from_dict", false]], "from_dict() (gammapy.modeling.models.naimaspectralmodel class method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.piecewisenormspatialmodel class method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.piecewisenormspectralmodel class method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.pointspatialmodel class method)": [[251, "gammapy.modeling.models.PointSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlaw2spectralmodel class method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlawnormspectralmodel class method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlawspectralmodel class method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.powerlawtemporalmodel class method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.prior class method)": [[256, "gammapy.modeling.models.Prior.from_dict", false]], "from_dict() (gammapy.modeling.models.scalespectralmodel class method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.shell2spatialmodel class method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.shellspatialmodel class method)": [[261, "gammapy.modeling.models.ShellSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.sinetemporalmodel class method)": [[262, "gammapy.modeling.models.SineTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.skymodel class method)": [[263, "gammapy.modeling.models.SkyModel.from_dict", false]], "from_dict() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel class method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.spatialmodel class method)": [[265, "gammapy.modeling.models.SpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.spectralmodel class method)": [[266, "gammapy.modeling.models.SpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel class method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel class method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel class method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatendspatialmodel class method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatendspectralmodel class method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatenpredmodel class method)": [[273, "gammapy.modeling.models.TemplateNPredModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatephasecurvetemporalmodel class method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.from_dict", false]], "from_dict() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.from_dict", false]], "from_dict() (gammapy.modeling.models.temporalmodel class method)": [[277, "gammapy.modeling.models.TemporalModel.from_dict", false]], "from_dict() (gammapy.modeling.models.uniformprior class method)": [[278, "gammapy.modeling.models.UniformPrior.from_dict", false]], "from_dict() (gammapy.modeling.parameters class method)": [[215, "gammapy.modeling.Parameters.from_dict", false]], "from_dict() (gammapy.modeling.priorparameters class method)": [[217, "gammapy.modeling.PriorParameters.from_dict", false]], "from_dir() (gammapy.data.datastore class method)": [[82, "gammapy.data.DataStore.from_dir", false]], "from_edges() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_edges", false]], "from_edisp_kernel() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_edisp_kernel", false]], "from_energy_bounds() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_energy_bounds", false]], "from_energy_edges() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_energy_edges", false]], "from_events_files() (gammapy.data.datastore class method)": [[82, "gammapy.data.DataStore.from_events_files", false]], "from_factor_matrix() (gammapy.modeling.covariance class method)": [[209, "gammapy.modeling.Covariance.from_factor_matrix", false]], "from_file() (gammapy.data.datastore class method)": [[82, "gammapy.data.DataStore.from_file", false]], "from_fits_header() (gammapy.data.fixedpointinginfo class method)": [[85, "gammapy.data.FixedPointingInfo.from_fits_header", false]], "from_gauss() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_gauss", false]], "from_gauss() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_gauss", false]], "from_gauss() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.from_gauss", false]], "from_gauss() (gammapy.irf.psfkernel class method)": [[161, "gammapy.irf.PSFKernel.from_gauss", false]], "from_gauss() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.from_gauss", false]], "from_gauss() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.from_gauss", false]], "from_geom() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_geom", false]], "from_geom() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.from_geom", false]], "from_geom() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.from_geom", false]], "from_geom() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.from_geom", false]], "from_geom() (gammapy.maps.hpxmap static method)": [[193, "gammapy.maps.HpxMap.from_geom", false]], "from_geom() (gammapy.maps.hpxndmap static method)": [[194, "gammapy.maps.HpxNDMap.from_geom", false]], "from_geom() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.from_geom", false]], "from_geom() (gammapy.maps.maps class method)": [[200, "gammapy.maps.Maps.from_geom", false]], "from_geom() (gammapy.maps.regionndmap static method)": [[202, "gammapy.maps.RegionNDMap.from_geom", false]], "from_geom() (gammapy.maps.wcsmap static method)": [[205, "gammapy.maps.WcsMap.from_geom", false]], "from_geom() (gammapy.maps.wcsndmap static method)": [[206, "gammapy.maps.WcsNDMap.from_geom", false]], "from_geoms() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.from_geoms", false]], "from_geoms() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_geoms", false]], "from_geoms() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.from_geoms", false]], "from_geoms() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_geoms", false]], "from_gti() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_gti", false]], "from_gti_bounds() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_gti_bounds", false]], "from_hdu() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.from_hdu", false]], "from_hdu() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_hdu", false]], "from_hdu() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.from_hdu", false]], "from_hdulist() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.from_hdulist", false]], "from_hdulist() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_hdulist", false]], "from_hdulist() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.from_hdulist", false]], "from_hdulist() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_hdulist", false]], "from_hdulist() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.from_hdulist", false]], "from_hdulist() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_hdulist", false]], "from_hdulist() (gammapy.irf.background2d class method)": [[147, "gammapy.irf.Background2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.background3d class method)": [[148, "gammapy.irf.Background3D.from_hdulist", false]], "from_hdulist() (gammapy.irf.backgroundirf class method)": [[149, "gammapy.irf.BackgroundIRF.from_hdulist", false]], "from_hdulist() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_hdulist", false]], "from_hdulist() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.energydependentmultigausspsf class method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.from_hdulist", false]], "from_hdulist() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.irf class method)": [[157, "gammapy.irf.IRF.from_hdulist", false]], "from_hdulist() (gammapy.irf.irfmap class method)": [[158, "gammapy.irf.IRFMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.parametricpsf class method)": [[164, "gammapy.irf.ParametricPSF.from_hdulist", false]], "from_hdulist() (gammapy.irf.psf3d class method)": [[160, "gammapy.irf.PSF3D.from_hdulist", false]], "from_hdulist() (gammapy.irf.psfking class method)": [[162, "gammapy.irf.PSFKing.from_hdulist", false]], "from_hdulist() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.from_hdulist", false]], "from_hdulist() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.from_hdulist", false]], "from_hdulist() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.geom class method)": [[191, "gammapy.maps.Geom.from_hdulist", false]], "from_hdulist() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.from_hdulist", false]], "from_hdulist() (gammapy.maps.hpxmap class method)": [[193, "gammapy.maps.HpxMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.from_hdulist", false]], "from_hdulist() (gammapy.maps.maps class method)": [[200, "gammapy.maps.Maps.from_hdulist", false]], "from_hdulist() (gammapy.maps.regiongeom class method)": [[201, "gammapy.maps.RegionGeom.from_hdulist", false]], "from_hdulist() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.from_hdulist", false]], "from_hdulist() (gammapy.maps.wcsmap class method)": [[205, "gammapy.maps.WcsMap.from_hdulist", false]], "from_hdulist() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.from_hdulist", false]], "from_header() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.from_header", false]], "from_header() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.from_header", false]], "from_header() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.from_header", false]], "from_header() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.from_header", false]], "from_header() (gammapy.maps.hpxgeom class method)": [[192, "gammapy.maps.HpxGeom.from_header", false]], "from_header() (gammapy.maps.wcsgeom class method)": [[204, "gammapy.maps.WcsGeom.from_header", false]], "from_irf() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.from_irf", false]], "from_log10() (gammapy.modeling.models.logparabolanormspectralmodel class method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.from_log10", false]], "from_log10() (gammapy.modeling.models.logparabolaspectralmodel class method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.from_log10", false]], "from_map_dataset() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.from_map_dataset", false]], "from_map_dataset() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_map_dataset", false]], "from_maps() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.from_maps", false]], "from_maps() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_maps", false]], "from_nodes() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_nodes", false]], "from_orm() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.from_orm", false]], "from_orm() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.from_orm", false]], "from_orm() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.from_orm", false]], "from_orm() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.from_orm", false]], "from_orm() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.from_orm", false]], "from_pandas() (gammapy.data.hduindextable class method)": [[87, "gammapy.data.HDUIndexTable.from_pandas", false]], "from_pandas() (gammapy.data.observationtable class method)": [[91, "gammapy.data.ObservationTable.from_pandas", false]], "from_parameters() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel class method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.from_parameters", false]], "from_parameters() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel class method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.from_parameters", false]], "from_parameters() (gammapy.astro.darkmatter.primaryflux class method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.from_parameters", false]], "from_parameters() (gammapy.modeling.models.brokenpowerlawspectralmodel class method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.compoundspectralmodel class method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constantfluxspatialmodel class method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constantspatialmodel class method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constantspectralmodel class method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.constanttemporalmodel class method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel class method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel class method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expcutoffpowerlawspectralmodel class method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.expdecaytemporalmodel class method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.fovbackgroundmodel class method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussianprior class method)": [[233, "gammapy.modeling.models.GaussianPrior.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussianspatialmodel class method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussianspectralmodel class method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.gaussiantemporalmodel class method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.generalizedgaussianspatialmodel class method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.generalizedgaussiantemporalmodel class method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.lineartemporalmodel class method)": [[240, "gammapy.modeling.models.LinearTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.logparabolanormspectralmodel class method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.logparabolaspectralmodel class method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.meyercrabspectralmodel class method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.modelbase class method)": [[246, "gammapy.modeling.models.ModelBase.from_parameters", false]], "from_parameters() (gammapy.modeling.models.naimaspectralmodel class method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.piecewisenormspatialmodel class method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.piecewisenormspectralmodel class method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.pointspatialmodel class method)": [[251, "gammapy.modeling.models.PointSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlaw2spectralmodel class method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlawnormspectralmodel class method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlawspectralmodel class method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.powerlawtemporalmodel class method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.prior class method)": [[256, "gammapy.modeling.models.Prior.from_parameters", false]], "from_parameters() (gammapy.modeling.models.scalespectralmodel class method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.shell2spatialmodel class method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.shellspatialmodel class method)": [[261, "gammapy.modeling.models.ShellSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.sinetemporalmodel class method)": [[262, "gammapy.modeling.models.SineTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.skymodel class method)": [[263, "gammapy.modeling.models.SkyModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel class method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.spatialmodel class method)": [[265, "gammapy.modeling.models.SpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.spectralmodel class method)": [[266, "gammapy.modeling.models.SpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel class method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel class method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel class method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatendspatialmodel class method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatendspectralmodel class method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatenpredmodel class method)": [[273, "gammapy.modeling.models.TemplateNPredModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatephasecurvetemporalmodel class method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.temporalmodel class method)": [[277, "gammapy.modeling.models.TemporalModel.from_parameters", false]], "from_parameters() (gammapy.modeling.models.uniformprior class method)": [[278, "gammapy.modeling.models.UniformPrior.from_parameters", false]], "from_parametrization() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.from_parametrization", false]], "from_position() (gammapy.modeling.models.constantfluxspatialmodel class method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.constantspatialmodel class method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.gaussianspatialmodel class method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.generalizedgaussianspatialmodel class method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.piecewisenormspatialmodel class method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.pointspatialmodel class method)": [[251, "gammapy.modeling.models.PointSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.shell2spatialmodel class method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.shellspatialmodel class method)": [[261, "gammapy.modeling.models.ShellSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.spatialmodel class method)": [[265, "gammapy.modeling.models.SpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.templatendspatialmodel class method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.from_position", false]], "from_position() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.from_position", false]], "from_region() (gammapy.modeling.models.diskspatialmodel class method)": [[225, "gammapy.modeling.models.DiskSpatialModel.from_region", false]], "from_region_map() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.from_region_map", false]], "from_regions() (gammapy.maps.regiongeom class method)": [[201, "gammapy.maps.RegionGeom.from_regions", false]], "from_spatial_model() (gammapy.irf.psfkernel class method)": [[161, "gammapy.irf.PSFKernel.from_spatial_model", false]], "from_spectrum_dataset() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.from_spectrum_dataset", false]], "from_stack() (gammapy.data.eventlist class method)": [[83, "gammapy.data.EventList.from_stack", false]], "from_stack() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.from_stack", false]], "from_stack() (gammapy.data.observations class method)": [[92, "gammapy.data.Observations.from_stack", false]], "from_stack() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.from_stack", false]], "from_stack() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_stack", false]], "from_stack() (gammapy.maps.hpxmap class method)": [[193, "gammapy.maps.HpxMap.from_stack", false]], "from_stack() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_stack", false]], "from_stack() (gammapy.maps.labelmapaxis class method)": [[195, "gammapy.maps.LabelMapAxis.from_stack", false]], "from_stack() (gammapy.maps.map class method)": [[196, "gammapy.maps.Map.from_stack", false]], "from_stack() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_stack", false]], "from_stack() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.from_stack", false]], "from_stack() (gammapy.maps.wcsmap class method)": [[205, "gammapy.maps.WcsMap.from_stack", false]], "from_stack() (gammapy.maps.wcsndmap class method)": [[206, "gammapy.maps.WcsNDMap.from_stack", false]], "from_stack() (gammapy.modeling.covariance class method)": [[209, "gammapy.modeling.Covariance.from_stack", false]], "from_stack() (gammapy.modeling.parameters class method)": [[215, "gammapy.modeling.Parameters.from_stack", false]], "from_stack() (gammapy.modeling.priorparameters class method)": [[217, "gammapy.modeling.PriorParameters.from_stack", false]], "from_table() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.from_table", false]], "from_table() (gammapy.irf.background2d class method)": [[147, "gammapy.irf.Background2D.from_table", false]], "from_table() (gammapy.irf.background3d class method)": [[148, "gammapy.irf.Background3D.from_table", false]], "from_table() (gammapy.irf.backgroundirf class method)": [[149, "gammapy.irf.BackgroundIRF.from_table", false]], "from_table() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.from_table", false]], "from_table() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.from_table", false]], "from_table() (gammapy.irf.energydependentmultigausspsf class method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.from_table", false]], "from_table() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.from_table", false]], "from_table() (gammapy.irf.irf class method)": [[157, "gammapy.irf.IRF.from_table", false]], "from_table() (gammapy.irf.parametricpsf class method)": [[164, "gammapy.irf.ParametricPSF.from_table", false]], "from_table() (gammapy.irf.psf3d class method)": [[160, "gammapy.irf.PSF3D.from_table", false]], "from_table() (gammapy.irf.psfking class method)": [[162, "gammapy.irf.PSFKing.from_table", false]], "from_table() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.from_table", false]], "from_table() (gammapy.maps.labelmapaxis class method)": [[195, "gammapy.maps.LabelMapAxis.from_table", false]], "from_table() (gammapy.maps.mapaxes class method)": [[197, "gammapy.maps.MapAxes.from_table", false]], "from_table() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_table", false]], "from_table() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.from_table", false]], "from_table() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_table", false]], "from_table() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.from_table", false]], "from_table_hdu() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.from_table_hdu", false]], "from_table_hdu() (gammapy.maps.mapaxes class method)": [[197, "gammapy.maps.MapAxes.from_table_hdu", false]], "from_table_hdu() (gammapy.maps.mapaxis class method)": [[198, "gammapy.maps.MapAxis.from_table_hdu", false]], "from_time_bounds() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_time_bounds", false]], "from_time_edges() (gammapy.maps.timemapaxis class method)": [[203, "gammapy.maps.TimeMapAxis.from_time_edges", false]], "from_time_intervals() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.from_time_intervals", false]], "from_wcs_tiles() (gammapy.maps.hpxndmap class method)": [[194, "gammapy.maps.HpxNDMap.from_wcs_tiles", false]], "from_yaml() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.from_yaml", false]], "from_yaml() (gammapy.modeling.models.datasetmodels class method)": [[224, "gammapy.modeling.models.DatasetModels.from_yaml", false]], "from_yaml() (gammapy.modeling.models.models class method)": [[247, "gammapy.modeling.models.Models.from_yaml", false]], "from_yaml() (in module gammapy.utils.scripts)": [[343, "gammapy.utils.scripts.from_yaml", false]], "frozen (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.frozen", false]], "frozen (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.frozen", false]], "frozen (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.frozen", false]], "frozen (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.frozen", false]], "frozen (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.frozen", false]], "frozen (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.frozen", false]], "frozen (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.frozen", false]], "frozen (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.frozen", false]], "frozen (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.frozen", false]], "frozen (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.frozen", false]], "frozen (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.frozen", false]], "frozen (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.frozen", false]], "frozen (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.frozen", false]], "frozen (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.frozen", false]], "frozen (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.frozen", false]], "frozen (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.frozen", false]], "frozen (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.frozen", false]], "frozen (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.frozen", false]], "frozen (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.frozen", false]], "frozen (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.frozen", false]], "frozen (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.frozen", false]], "frozen (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.frozen", false]], "frozen (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.frozen", false]], "gadf": [[577, "term-GADF", true]], "galactic (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.galactic", false]], "galactic() (in module gammapy.utils.coordinates)": [[310, "gammapy.utils.coordinates.galactic", false]], "galactic_median (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.galactic_median", false]], "gammapy command line option": [[11, "cmdoption-gammapy-ignore-warnings", false], [11, "cmdoption-gammapy-log-level", false], [11, "cmdoption-gammapy-version", false]], "gammapy-analysis-config command line option": [[11, "cmdoption-gammapy-analysis-config-filename", false], [11, "cmdoption-gammapy-analysis-config-overwrite", false]], "gammapy-analysis-run command line option": [[11, "cmdoption-gammapy-analysis-run-filename", false], [11, "cmdoption-gammapy-analysis-run-out", false], [11, "cmdoption-gammapy-analysis-run-overwrite", false]], "gammapy-download-datasets command line option": [[11, "cmdoption-gammapy-download-datasets-out", false], [11, "cmdoption-gammapy-download-datasets-release", false]], "gammapy-download-notebooks command line option": [[11, "cmdoption-gammapy-download-notebooks-out", false], [11, "cmdoption-gammapy-download-notebooks-release", false]], "gammapy-info command line option": [[11, "cmdoption-gammapy-info-dependencies", false], [11, "cmdoption-gammapy-info-envvar", false], [11, "cmdoption-gammapy-info-system", false], [11, "cmdoption-gammapy-info-version", false]], "gammapy-workflow-config command line option": [[11, "cmdoption-gammapy-workflow-config-filename", false], [11, "cmdoption-gammapy-workflow-config-overwrite", false]], "gammapy-workflow-run command line option": [[11, "cmdoption-gammapy-workflow-run-filename", false]], "gammapy.analysis": [[0, "module-gammapy.analysis", false]], "gammapy.astro.darkmatter": [[1, "module-gammapy.astro.darkmatter", false]], "gammapy.astro.population": [[1, "module-gammapy.astro.population", false]], "gammapy.astro.source": [[1, "module-gammapy.astro.source", false]], "gammapy.catalog": [[2, "module-gammapy.catalog", false]], "gammapy.data": [[3, "module-gammapy.data", false]], "gammapy.datasets": [[4, "module-gammapy.datasets", false]], "gammapy.datasets.utils": [[4, "module-gammapy.datasets.utils", false]], "gammapy.estimators": [[5, "module-gammapy.estimators", false]], "gammapy.estimators.utils": [[5, "module-gammapy.estimators.utils", false]], "gammapy.irf": [[7, "module-gammapy.irf", false]], "gammapy.makers": [[8, "module-gammapy.makers", false]], "gammapy.makers.utils": [[8, "module-gammapy.makers.utils", false]], "gammapy.maps": [[9, "module-gammapy.maps", false]], "gammapy.modeling": [[10, "module-gammapy.modeling", false]], "gammapy.modeling.models": [[10, "module-gammapy.modeling.models", false]], "gammapy.modeling.models.utils": [[10, "module-gammapy.modeling.models.utils", false]], "gammapy.stats": [[12, "module-gammapy.stats", false]], "gammapy.utils.cluster": [[13, "module-gammapy.utils.cluster", false]], "gammapy.utils.coordinates": [[13, "module-gammapy.utils.coordinates", false]], "gammapy.utils.fits": [[13, "module-gammapy.utils.fits", false]], "gammapy.utils.integrate": [[13, "module-gammapy.utils.integrate", false]], "gammapy.utils.interpolation": [[13, "module-gammapy.utils.interpolation", false]], "gammapy.utils.parallel": [[13, "module-gammapy.utils.parallel", false]], "gammapy.utils.random": [[13, "module-gammapy.utils.random", false]], "gammapy.utils.regions": [[13, "module-gammapy.utils.regions", false]], "gammapy.utils.scripts": [[13, "module-gammapy.utils.scripts", false]], "gammapy.utils.table": [[13, "module-gammapy.utils.table", false]], "gammapy.utils.testing": [[13, "module-gammapy.utils.testing", false]], "gammapy.utils.time": [[13, "module-gammapy.utils.time", false]], "gammapy.utils.units": [[13, "module-gammapy.utils.units", false]], "gammapy.visualization": [[14, "module-gammapy.visualization", false]], "gaussian_component() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.gaussian_component", false]], "gaussianprior (class in gammapy.modeling.models)": [[233, "gammapy.modeling.models.GaussianPrior", false]], "gaussianspatialmodel (class in gammapy.modeling.models)": [[234, "gammapy.modeling.models.GaussianSpatialModel", false]], "gaussianspectralmodel (class in gammapy.modeling.models)": [[235, "gammapy.modeling.models.GaussianSpectralModel", false]], "gaussiantemporalmodel (class in gammapy.modeling.models)": [[236, "gammapy.modeling.models.GaussianTemporalModel", false]], "generalizedgaussianspatialmodel (class in gammapy.modeling.models)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel", false]], "generalizedgaussiantemporalmodel (class in gammapy.modeling.models)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel", false]], "geom (class in gammapy.maps)": [[191, "gammapy.maps.Geom", false]], "geom (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.geom", false]], "geom (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.geom", false]], "geom (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.geom", false]], "geom (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.geom", false]], "geom (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.geom", false]], "geom (gammapy.maps.maps attribute)": [[200, "gammapy.maps.Maps.geom", false]], "geom (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.geom", false]], "geom (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.geom", false]], "geom (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.geom", false]], "geoms (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.geoms", false]], "geoms (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.geoms", false]], "geoms (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.geoms", false]], "geoms (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.geoms", false]], "get() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.get", false]], "get_altaz() (gammapy.data.fixedpointinginfo method)": [[85, "gammapy.data.FixedPointingInfo.get_altaz", false]], "get_altaz() (gammapy.data.pointinginfo method)": [[94, "gammapy.data.PointingInfo.get_altaz", false]], "get_bias() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_bias", false]], "get_bias_energy() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_bias_energy", false]], "get_bounding_box() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.get_bounding_box", false]], "get_bounding_box() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.get_bounding_box", false]], "get_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_by_coord", false]], "get_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_by_coord", false]], "get_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_by_coord", false]], "get_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_by_idx", false]], "get_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_by_idx", false]], "get_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_by_idx", false]], "get_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_by_pix", false]], "get_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_by_pix", false]], "get_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_by_pix", false]], "get_combined_flux_maps() (in module gammapy.estimators.utils)": [[143, "gammapy.estimators.utils.get_combined_flux_maps", false]], "get_combined_significance_maps() (in module gammapy.estimators.utils)": [[144, "gammapy.estimators.utils.get_combined_significance_maps", false]], "get_coord() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.get_coord", false]], "get_coord() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.get_coord", false]], "get_coord() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.get_coord", false]], "get_coord() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.get_coord", false]], "get_coord() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.get_coord", false]], "get_datasets() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_datasets", false]], "get_edisp_kernel() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.get_edisp_kernel", false]], "get_edisp_kernel() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.get_edisp_kernel", false]], "get_excess_map() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_excess_map", false]], "get_filenames() (gammapy.datasets.ogipdatasetreader method)": [[106, "gammapy.datasets.OGIPDatasetReader.get_filenames", false]], "get_filenames() (gammapy.datasets.ogipdatasetwriter static method)": [[107, "gammapy.datasets.OGIPDatasetWriter.get_filenames", false]], "get_flux_points() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_flux_points", false]], "get_flux_points() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.get_flux_points", false]], "get_flux_points() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.get_flux_points", false]], "get_hdu() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.get_hdu", false]], "get_icrs() (gammapy.data.fixedpointinginfo method)": [[85, "gammapy.data.FixedPointingInfo.get_icrs", false]], "get_icrs() (gammapy.data.pointinginfo method)": [[94, "gammapy.data.PointingInfo.get_icrs", false]], "get_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.get_idx", false]], "get_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.get_idx", false]], "get_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.get_idx", false]], "get_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.get_idx", false]], "get_image_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_image_by_coord", false]], "get_image_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_image_by_coord", false]], "get_image_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_image_by_idx", false]], "get_image_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_image_by_idx", false]], "get_image_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_image_by_pix", false]], "get_image_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_image_by_pix", false]], "get_images_paths() (in module gammapy.utils.scripts)": [[344, "gammapy.utils.scripts.get_images_paths", false]], "get_index_list() (gammapy.maps.hpxgeom static method)": [[192, "gammapy.maps.HpxGeom.get_index_list", false]], "get_irfs_features() (in module gammapy.data)": [[96, "gammapy.data.get_irfs_features", false]], "get_kernels() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.get_kernels", false]], "get_light_curve() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_light_curve", false]], "get_mean() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_mean", false]], "get_observations() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.get_observations", false]], "get_observations() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.get_observations", false]], "get_ogip_meta() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.get_ogip_meta", false]], "get_pix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.get_pix", false]], "get_pointing_altaz() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.get_pointing_altaz", false]], "get_pointing_icrs() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.get_pointing_icrs", false]], "get_psf_kernel() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.get_psf_kernel", false]], "get_psf_kernel() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.get_psf_kernel", false]], "get_random_state() (in module gammapy.utils.random)": [[331, "gammapy.utils.random.get_random_state", false]], "get_rebinned_axis() (in module gammapy.estimators.utils)": [[145, "gammapy.estimators.utils.get_rebinned_axis", false]], "get_resolution() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.get_resolution", false]], "get_scale_model() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.get_scale_model", false]], "get_scale_model() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.get_scale_model", false]], "get_scale_model() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.get_scale_model", false]], "get_scales() (gammapy.estimators.asmoothmapestimator static method)": [[118, "gammapy.estimators.ASmoothMapEstimator.get_scales", false]], "get_spectrum() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.get_spectrum", false]], "get_spectrum() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.get_spectrum", false]], "get_spectrum() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.get_spectrum", false]], "get_subcovariance() (gammapy.modeling.covariance method)": [[209, "gammapy.modeling.Covariance.get_subcovariance", false]], "get_valid_path() (gammapy.datasets.ogipdatasetreader method)": [[106, "gammapy.datasets.OGIPDatasetReader.get_valid_path", false]], "get_wcs_coord_and_weights() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.get_wcs_coord_and_weights", false]], "get_wstat_gof_terms() (in module gammapy.stats)": [[300, "gammapy.stats.get_wstat_gof_terms", false]], "get_wstat_mu_bkg() (in module gammapy.stats)": [[301, "gammapy.stats.get_wstat_mu_bkg", false]], "global_to_local() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.global_to_local", false]], "group_by() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.group_by", false]], "group_by() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.group_by", false]], "group_by_label() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.group_by_label", false]], "group_table() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.group_table", false]], "group_table() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.group_table", false]], "group_table() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.group_table", false]], "groups (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.groups", false]], "groups (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.groups", false]], "gti": [[577, "term-GTI", true]], "gti (class in gammapy.data)": [[86, "gammapy.data.GTI", false]], "gti (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.gti", false]], "gti (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.gti", false]], "gti (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.gti", false]], "gti (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.gti", false]], "gti (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.gti", false]], "gti (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.gti", false]], "gti (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.gti", false]], "has_any_ts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_any_ts", false]], "has_any_ts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_any_ts", false]], "has_energy_axis (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.has_energy_axis", false]], "has_energy_axis (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.has_energy_axis", false]], "has_energy_axis (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.has_energy_axis", false]], "has_energy_axis (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.has_energy_axis", false]], "has_inverse() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.has_inverse", false]], "has_inverse() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.has_inverse", false]], "has_inverse() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.has_inverse", false]], "has_inverse() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.has_inverse", false]], "has_inverse() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.has_inverse", false]], "has_inverse() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.has_inverse", false]], "has_inverse() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.has_inverse", false]], "has_inverse() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.has_inverse", false]], "has_inverse() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.has_inverse", false]], "has_inverse() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.has_inverse", false]], "has_masked_columns (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.has_masked_columns", false]], "has_masked_columns (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.has_masked_columns", false]], "has_masked_values (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.has_masked_values", false]], "has_masked_values (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.has_masked_values", false]], "has_mixin_columns (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.has_mixin_columns", false]], "has_mixin_columns (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.has_mixin_columns", false]], "has_offset_axis (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.has_offset_axis", false]], "has_offset_axis (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.has_offset_axis", false]], "has_offset_axis (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.has_offset_axis", false]], "has_offset_axis (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.has_offset_axis", false]], "has_offset_axis (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.has_offset_axis", false]], "has_single_spatial_bin (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.has_single_spatial_bin", false]], "has_single_spatial_bin (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.has_single_spatial_bin", false]], "has_stat_profiles (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_stat_profiles", false]], "has_stat_profiles (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_stat_profiles", false]], "has_success (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_success", false]], "has_success (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_success", false]], "has_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.has_ul", false]], "has_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.has_ul", false]], "has_user_bounding_box (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.has_user_bounding_box", false]], "has_user_bounding_box (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.has_user_bounding_box", false]], "has_user_inverse (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.has_user_inverse", false]], "has_user_inverse (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.has_user_inverse", false]], "hdu_class_unique (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.hdu_class_unique", false]], "hdu_location() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.hdu_location", false]], "hdu_type_unique (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.hdu_type_unique", false]], "hduindextable (class in gammapy.data)": [[87, "gammapy.data.HDUIndexTable", false]], "hdulocation (class in gammapy.utils.fits)": [[315, "gammapy.utils.fits.HDULocation", false]], "hierarchical_clustering() (in module gammapy.utils.cluster)": [[305, "gammapy.utils.cluster.hierarchical_clustering", false]], "hli": [[577, "term-HLI", true]], "hpxgeom (class in gammapy.maps)": [[192, "gammapy.maps.HpxGeom", false]], "hpxmap (class in gammapy.maps)": [[193, "gammapy.maps.HpxMap", false]], "hpxndmap (class in gammapy.maps)": [[194, "gammapy.maps.HpxNDMap", false]], "hstack_columns() (in module gammapy.utils.table)": [[350, "gammapy.utils.table.hstack_columns", false]], "ids (gammapy.data.observations attribute)": [[92, "gammapy.data.Observations.ids", false]], "iloc (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.iloc", false]], "iloc (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.iloc", false]], "imageprofile (class in gammapy.estimators)": [[128, "gammapy.estimators.ImageProfile", false]], "imageprofileestimator (class in gammapy.estimators)": [[129, "gammapy.estimators.ImageProfileEstimator", false]], "in_memory_generator() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.in_memory_generator", false]], "include_ssc (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.include_ssc", false]], "index (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.index", false]], "index (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.index", false]], "index (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.index", false]], "index (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.index", false]], "index (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.index", false]], "index() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.index", false]], "index() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.index", false]], "index() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.index", false]], "index() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.index", false]], "index() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.index", false]], "index() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.index", false]], "index() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.index", false]], "index1 (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.index1", false]], "index1 (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.index1", false]], "index2 (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.index2", false]], "index2 (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.index2", false]], "index_1 (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.index_1", false]], "index_1 (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.index_1", false]], "index_1 (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.index_1", false]], "index_2 (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.index_2", false]], "index_2 (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.index_2", false]], "index_2 (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.index_2", false]], "index_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.index_column", false]], "index_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.index_column", false]], "index_data() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.index_data", false]], "index_mode() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.index_mode", false]], "index_mode() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.index_mode", false]], "indices (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.indices", false]], "indices (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.indices", false]], "ineqcons (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.ineqcons", false]], "ineqcons (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.ineqcons", false]], "ineqcons (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.ineqcons", false]], "ineqcons (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.ineqcons", false]], "ineqcons (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.ineqcons", false]], "ineqcons (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.ineqcons", false]], "ineqcons (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.ineqcons", false]], "ineqcons (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.ineqcons", false]], "ineqcons (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.ineqcons", false]], "ineqcons (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.ineqcons", false]], "info (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.info", false]], "info (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.info", false]], "info() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.info", false]], "info() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.info", false]], "info() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.info", false]], "info() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.info", false]], "info() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.info", false]], "info() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.info", false]], "info() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.info", false]], "info() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.info", false]], "info() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.info", false]], "info() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.info", false]], "info() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.info", false]], "info() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.info", false]], "info() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.info", false]], "info() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.info", false]], "info() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.info", false]], "info() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.info", false]], "info_dict() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.info_dict", false]], "info_dict() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.info_dict", false]], "info_dict() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.info_dict", false]], "info_dict() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.info_dict", false]], "info_dict() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.info_dict", false]], "info_dict() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.info_dict", false]], "info_table() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.info_table", false]], "input_shape() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_shape", false]], "input_shape() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.input_shape", false]], "input_shape() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_shape", false]], "input_shape() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_shape", false]], "input_shape() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_shape", false]], "input_shape() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.input_shape", false]], "input_shape() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.input_shape", false]], "input_shape() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_shape", false]], "input_shape() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_shape", false]], "input_shape() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_shape", false]], "input_units (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units", false]], "input_units (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units", false]], "input_units (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units", false]], "input_units (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units", false]], "input_units (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units", false]], "input_units (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units", false]], "input_units (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units", false]], "input_units (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units", false]], "input_units (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units", false]], "input_units (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units", false]], "input_units_allow_dimensionless (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units_allow_dimensionless", false]], "input_units_allow_dimensionless (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units_allow_dimensionless", false]], "input_units_equivalencies (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units_equivalencies", false]], "input_units_equivalencies (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units_equivalencies", false]], "input_units_strict (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.input_units_strict", false]], "input_units_strict (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.input_units_strict", false]], "input_units_strict (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.input_units_strict", false]], "input_units_strict (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.input_units_strict", false]], "input_units_strict (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.input_units_strict", false]], "input_units_strict (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.input_units_strict", false]], "input_units_strict (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.input_units_strict", false]], "input_units_strict (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.input_units_strict", false]], "input_units_strict (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.input_units_strict", false]], "input_units_strict (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.input_units_strict", false]], "inputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.inputs", false]], "inputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.inputs", false]], "inputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.inputs", false]], "inputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.inputs", false]], "inputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.inputs", false]], "inputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.inputs", false]], "inputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.inputs", false]], "inputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.inputs", false]], "inputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.inputs", false]], "inputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.inputs", false]], "insert() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.insert", false]], "insert() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.insert", false]], "insert() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.insert", false]], "insert_row() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.insert_row", false]], "insert_row() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.insert_row", false]], "integral() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.integral", false]], "integral() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.integral", false]], "integral() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.integral", false]], "integral() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.integral", false]], "integral() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.integral", false]], "integral() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.integral", false]], "integral() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.integral", false]], "integral() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.integral", false]], "integral() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.integral", false]], "integral() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.integral", false]], "integral() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.integral", false]], "integral() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.integral", false]], "integral() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.integral", false]], "integral() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.integral", false]], "integral() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.integral", false]], "integral() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.integral", false]], "integral() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.integral", false]], "integral() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.integral", false]], "integral() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.integral", false]], "integral() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.integral", false]], "integral() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.integral", false]], "integral() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.integral", false]], "integral() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.integral", false]], "integral() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.integral", false]], "integral() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.integral", false]], "integral() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.integral", false]], "integral() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.integral", false]], "integral() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.integral", false]], "integral() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.integral", false]], "integral() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.integral", false]], "integral() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.integral", false]], "integral() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.integral", false]], "integral() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.integral", false]], "integral() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.integral", false]], "integral() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.integral", false]], "integral() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.integral", false]], "integral() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.integral", false]], "integral() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.integral", false]], "integral() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.integral", false]], "integral() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.integral", false]], "integral() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.integral", false]], "integral() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.integral", false]], "integral() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.integral", false]], "integral() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.integral", false]], "integral() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.integral", false]], "integral() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.integral", false]], "integral() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.integral", false]], "integral() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.integral", false]], "integral() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.integral", false]], "integral() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.integral", false]], "integral() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.integral", false]], "integral() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.integral", false]], "integral_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.integral_error", false]], "integral_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.integral_error", false]], "integral_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.integral_error", false]], "integral_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.integral_error", false]], "integral_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.integral_error", false]], "integrate_geom() (gammapy.modeling.models.constantfluxspatialmodel static method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.integrate_geom", false]], "integrate_geom() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.integrate_geom", false]], "integrate_log_log() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.integrate_log_log", false]], "integrate_log_log() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.integrate_log_log", false]], "integrate_spectrum() (in module gammapy.modeling.models)": [[282, "gammapy.modeling.models.integrate_spectrum", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.integrate_spectrum_separation", false]], "integrate_spectrum_separation() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.integrate_spectrum_separation", false]], "interp (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.interp", false]], "interp (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.interp", false]], "interp_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.interp_by_coord", false]], "interp_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.interp_by_coord", false]], "interp_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.interp_by_pix", false]], "interp_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.interp_by_pix", false]], "interp_missing_data() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.interp_missing_data", false]], "interp_missing_data() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.interp_missing_data", false]], "interp_to_geom() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.interp_to_geom", false]], "interp_to_geom() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.interp_to_geom", false]], "interp_weights() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.interp_weights", false]], "interpolate_profile() (in module gammapy.utils.interpolation)": [[320, "gammapy.utils.interpolation.interpolate_profile", false]], "interpolation_scale() (in module gammapy.utils.interpolation)": [[321, "gammapy.utils.interpolation.interpolation_scale", false]], "inverse (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.inverse", false]], "inverse (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.inverse", false]], "inverse (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.inverse", false]], "inverse (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.inverse", false]], "inverse (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.inverse", false]], "inverse (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.inverse", false]], "inverse (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.inverse", false]], "inverse (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.inverse", false]], "inverse (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.inverse", false]], "inverse (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.inverse", false]], "inverse() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.inverse", false]], "inverse() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.inverse", false]], "inverse() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.inverse", false]], "inverse() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.inverse", false]], "inverse() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.inverse", false]], "inverse_all() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.inverse_all", false]], "inverse_all() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.inverse_all", false]], "inverse_all() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.inverse_all", false]], "inverse_all() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.inverse_all", false]], "inverse_all() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.inverse_all", false]], "inversecdfsampler (class in gammapy.utils.random)": [[329, "gammapy.utils.random.InverseCDFSampler", false]], "ipix (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.ipix", false]], "irf": [[577, "term-IRF", true]], "irf (class in gammapy.irf)": [[157, "gammapy.irf.IRF", false]], "irf_registry (in module gammapy.irf)": [[159, "gammapy.irf.IRF_REGISTRY", false]], "irfmap (class in gammapy.irf)": [[158, "gammapy.irf.IRFMap", false]], "is_aligned() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.is_aligned", false]], "is_aligned() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.is_aligned", false]], "is_aligned() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.is_aligned", false]], "is_aligned() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.is_aligned", false]], "is_all_point_sky_regions (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_all_point_sky_regions", false]], "is_all_same_energy_shape (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.is_all_same_energy_shape", false]], "is_all_same_shape (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.is_all_same_shape", false]], "is_all_same_type (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.is_all_same_type", false]], "is_allclose() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.is_allclose", false]], "is_allclose() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.is_allclose", false]], "is_allclose() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.is_allclose", false]], "is_allclose() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.is_allclose", false]], "is_allclose() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.is_allclose", false]], "is_allclose() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.is_allclose", false]], "is_allclose() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.is_allclose", false]], "is_allclose() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.is_allclose", false]], "is_allclose() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.is_allclose", false]], "is_allclose() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.is_allclose", false]], "is_allclose() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.is_allclose", false]], "is_allclose() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.is_allclose", false]], "is_allclose() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.is_allclose", false]], "is_allclose() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.is_allclose", false]], "is_allclose() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.is_allclose", false]], "is_allclose() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.is_allclose", false]], "is_allclose() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.is_allclose", false]], "is_allclose() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.is_allclose", false]], "is_allclose() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.is_allclose", false]], "is_allclose() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.is_allclose", false]], "is_allclose() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.is_allclose", false]], "is_allclose() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.is_allclose", false]], "is_allclose() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.is_allclose", false]], "is_allclose() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.is_allclose", false]], "is_allclose() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.is_allclose", false]], "is_allsky (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.is_allsky", false]], "is_allsky (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_allsky", false]], "is_allsky (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_allsky", false]], "is_allsky (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_allsky", false]], "is_contiguous (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.is_contiguous", false]], "is_convertible_to_flux_sed_type (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.is_convertible_to_flux_sed_type", false]], "is_convertible_to_flux_sed_type (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.is_convertible_to_flux_sed_type", false]], "is_energy_axis (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.is_energy_axis", false]], "is_energy_dependent (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.is_energy_dependent", false]], "is_energy_dependent (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.is_energy_dependent", false]], "is_fixed_rad_max (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.is_fixed_rad_max", false]], "is_flat (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.is_flat", false]], "is_flat (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_flat", false]], "is_flat (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.is_flat", false]], "is_flat (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_flat", false]], "is_flat (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_flat", false]], "is_hpx (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_hpx", false]], "is_hpx (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_hpx", false]], "is_hpx (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_hpx", false]], "is_image (gammapy.maps.geom attribute)": [[191, "gammapy.maps.Geom.is_image", false]], "is_image (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_image", false]], "is_image (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_image", false]], "is_image (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_image", false]], "is_mask (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.is_mask", false]], "is_mask (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.is_mask", false]], "is_mask (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.is_mask", false]], "is_mask (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.is_mask", false]], "is_mask (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.is_mask", false]], "is_mask (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.is_mask", false]], "is_norm_spectral_model (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.is_norm_spectral_model", false]], "is_norm_spectral_model (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.is_norm_spectral_model", false]], "is_pointed_observation (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.is_pointed_observation", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.is_pointlike", false]], "is_pointlike (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.is_pointlike", false]], "is_pointlike (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.is_pointlike", false]], "is_pointlike (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.is_pointlike", false]], "is_pointlike (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.is_pointlike", false]], "is_pointlike (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.is_pointlike", false]], "is_pointlike (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.is_pointlike", false]], "is_pointlike (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.is_pointlike", false]], "is_pointlike (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.is_pointlike", false]], "is_pointlike (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.is_pointlike", false]], "is_pointlike (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.is_pointlike", false]], "is_pointlike (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.is_pointlike", false]], "is_pointlike (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.is_pointlike", false]], "is_pointlike (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.is_pointlike", false]], "is_region (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_region", false]], "is_region (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_region", false]], "is_region (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_region", false]], "is_regular (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.is_regular", false]], "is_regular (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.is_regular", false]], "is_regular (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.is_regular", false]], "is_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.is_ul", false]], "is_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.is_ul", false]], "is_unidimensional (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.is_unidimensional", false]], "isothermalprofile (class in gammapy.astro.darkmatter)": [[22, "gammapy.astro.darkmatter.IsothermalProfile", false]], "items() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.items", false]], "items() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.items", false]], "items() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.items", false]], "iter_by_axis() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.iter_by_axis", false]], "iter_by_axis() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_axis", false]], "iter_by_axis() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_axis", false]], "iter_by_axis_data() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_axis_data", false]], "iter_by_edges (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.iter_by_edges", false]], "iter_by_edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.iter_by_edges", false]], "iter_by_image() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_image", false]], "iter_by_image() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_image", false]], "iter_by_image() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_image", false]], "iter_by_image_data() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_image_data", false]], "iter_by_image_data() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_image_data", false]], "iter_by_image_index() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.iter_by_image_index", false]], "iter_by_image_index() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.iter_by_image_index", false]], "iter_with_reshape (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.iter_with_reshape", false]], "itercols() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.itercols", false]], "itercols() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.itercols", false]], "iterrows() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.iterrows", false]], "iterrows() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.iterrows", false]], "jfactory (class in gammapy.astro.darkmatter)": [[23, "gammapy.astro.darkmatter.JFactory", false]], "joint analysis": [[577, "term-Joint-Analysis", true]], "json() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.json", false]], "json() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.json", false]], "json() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.json", false]], "json() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.json", false]], "json() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.json", false]], "k (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.k", false]], "keep_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.keep_columns", false]], "keep_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.keep_columns", false]], "kernel() (gammapy.makers.ringbackgroundmaker method)": [[178, "gammapy.makers.RingBackgroundMaker.kernel", false]], "kernels() (gammapy.makers.adaptiveringbackgroundmaker method)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.kernels", false]], "keys() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.keys", false]], "keys() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.keys", false]], "keys() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.keys", false]], "labelmapaxis (class in gammapy.maps)": [[195, "gammapy.maps.LabelMapAxis", false]], "lambda_ (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.lambda_", false]], "lambda_ (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.lambda_", false]], "large_scale_component (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.large_scale_component", false]], "lat (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.lat", false]], "lat_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.lat_0", false]], "lat_0 (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.lat_0", false]], "lazyfitsdata (class in gammapy.utils.fits)": [[316, "gammapy.utils.fits.LazyFitsData", false]], "lifetime_age_of_universe (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.LIFETIME_AGE_OF_UNIVERSE", false]], "lightcurve (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.lightcurve", false]], "lightcurve (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.lightcurve", false]], "lightcurve() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.lightcurve", false]], "lightcurve() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.lightcurve", false]], "lightcurveestimator (class in gammapy.estimators)": [[130, "gammapy.estimators.LightCurveEstimator", false]], "lightcurvetemplatetemporalmodel (class in gammapy.modeling.models)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel", false]], "linear (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.linear", false]], "linear (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.linear", false]], "linear (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.linear", false]], "linear (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.linear", false]], "linear (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.linear", false]], "linear (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.linear", false]], "linear (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.linear", false]], "linear (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.linear", false]], "linear (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.linear", false]], "linear (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.linear", false]], "lineartemporalmodel (class in gammapy.modeling.models)": [[240, "gammapy.modeling.models.LinearTemporalModel", false]], "livetime_fraction (gammapy.data.observationfilter attribute)": [[89, "gammapy.data.ObservationFilter.livetime_fraction", false]], "load() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.load", false]], "load_irf_dict_from_file() (in module gammapy.irf)": [[167, "gammapy.irf.load_irf_dict_from_file", false]], "loc (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.loc", false]], "loc (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.loc", false]], "loc_indices (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.loc_indices", false]], "loc_indices (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.loc_indices", false]], "local_density (gammapy.astro.darkmatter.burkertprofile attribute)": [[17, "gammapy.astro.darkmatter.BurkertProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.dmprofile attribute)": [[18, "gammapy.astro.darkmatter.DMProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.einastoprofile attribute)": [[21, "gammapy.astro.darkmatter.EinastoProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.isothermalprofile attribute)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.mooreprofile attribute)": [[24, "gammapy.astro.darkmatter.MooreProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.nfwprofile attribute)": [[25, "gammapy.astro.darkmatter.NFWProfile.LOCAL_DENSITY", false]], "local_density (gammapy.astro.darkmatter.zhaoprofile attribute)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.LOCAL_DENSITY", false]], "local_to_global() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.local_to_global", false]], "location (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.location", false]], "location_info() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.location_info", false]], "logparabolanormspectralmodel (class in gammapy.modeling.models)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel", false]], "logparabolaspectralmodel (class in gammapy.modeling.models)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel", false]], "logspiral (class in gammapy.astro.population)": [[34, "gammapy.astro.population.LogSpiral", false]], "lon (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.lon", false]], "lon_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.lon_0", false]], "lon_0 (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.lon_0", false]], "lorimer2006 (class in gammapy.astro.population)": [[35, "gammapy.astro.population.Lorimer2006", false]], "luminosity_spindown (gammapy.astro.source.simplepulsar attribute)": [[54, "gammapy.astro.source.SimplePulsar.luminosity_spindown", false]], "luminosity_spindown() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.luminosity_spindown", false]], "luminosity_tev() (gammapy.astro.source.snr method)": [[52, "gammapy.astro.source.SNR.luminosity_tev", false]], "luminosity_tev() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.luminosity_tev", false]], "m (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.m", false]], "magnetic_field (gammapy.astro.source.simplepulsar attribute)": [[54, "gammapy.astro.source.SimplePulsar.magnetic_field", false]], "magnetic_field() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.magnetic_field", false]], "magnetic_field() (gammapy.astro.source.pwn method)": [[50, "gammapy.astro.source.PWN.magnetic_field", false]], "make_background() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_background", false]], "make_background() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_background", false]], "make_background_fit() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_background_fit", false]], "make_background_scale() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_background_scale", false]], "make_base_catalog_galactic() (in module gammapy.astro.population)": [[45, "gammapy.astro.population.make_base_catalog_galactic", false]], "make_catalog_random_positions_cube() (in module gammapy.astro.population)": [[46, "gammapy.astro.population.make_catalog_random_positions_cube", false]], "make_catalog_random_positions_sphere() (in module gammapy.astro.population)": [[47, "gammapy.astro.population.make_catalog_random_positions_sphere", false]], "make_concentric_annulus_sky_regions() (in module gammapy.utils.regions)": [[339, "gammapy.utils.regions.make_concentric_annulus_sky_regions", false]], "make_counts() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_counts", false]], "make_counts() (gammapy.makers.phasebackgroundmaker method)": [[174, "gammapy.makers.PhaseBackgroundMaker.make_counts", false]], "make_counts() (gammapy.makers.spectrumdatasetmaker static method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_counts", false]], "make_counts_off() (gammapy.makers.phasebackgroundmaker method)": [[174, "gammapy.makers.PhaseBackgroundMaker.make_counts_off", false]], "make_counts_off() (gammapy.makers.reflectedregionsbackgroundmaker method)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker.make_counts_off", false]], "make_counts_rad_max() (in module gammapy.makers.utils)": [[182, "gammapy.makers.utils.make_counts_rad_max", false]], "make_cubes() (gammapy.makers.adaptiveringbackgroundmaker method)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.make_cubes", false]], "make_dataset() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.make_dataset", false]], "make_default_fov_background_model() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_default_fov_background_model", false]], "make_edisp() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_edisp", false]], "make_edisp() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_edisp", false]], "make_edisp_kernel() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_edisp_kernel", false]], "make_edisp_kernel() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_edisp_kernel", false]], "make_edisp_kernel_map() (in module gammapy.makers.utils)": [[183, "gammapy.makers.utils.make_edisp_kernel_map", false]], "make_edisp_map() (in module gammapy.makers.utils)": [[184, "gammapy.makers.utils.make_edisp_map", false]], "make_effective_livetime_map() (in module gammapy.makers.utils)": [[185, "gammapy.makers.utils.make_effective_livetime_map", false]], "make_exclusion_mask() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.make_exclusion_mask", false]], "make_exposure() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_exposure", false]], "make_exposure() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_exposure", false]], "make_exposure_irf() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_exposure_irf", false]], "make_exposure_irf() (gammapy.makers.spectrumdatasetmaker static method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_exposure_irf", false]], "make_map_background_irf() (in module gammapy.makers.utils)": [[186, "gammapy.makers.utils.make_map_background_irf", false]], "make_map_exposure_true_energy() (in module gammapy.makers.utils)": [[187, "gammapy.makers.utils.make_map_exposure_true_energy", false]], "make_maps_off() (gammapy.makers.ringbackgroundmaker method)": [[178, "gammapy.makers.RingBackgroundMaker.make_maps_off", false]], "make_mask_bkg_invalid() (gammapy.makers.safemaskmaker static method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_bkg_invalid", false]], "make_mask_energy_aeff_default() (gammapy.makers.safemaskmaker static method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_aeff_default", false]], "make_mask_energy_aeff_max() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_aeff_max", false]], "make_mask_energy_bkg_peak() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_bkg_peak", false]], "make_mask_energy_edisp_bias() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_energy_edisp_bias", false]], "make_mask_offset_max() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.make_mask_offset_max", false]], "make_meta_table() (gammapy.makers.mapdatasetmaker static method)": [[173, "gammapy.makers.MapDatasetMaker.make_meta_table", false]], "make_meta_table() (gammapy.makers.spectrumdatasetmaker static method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_meta_table", false]], "make_observation_time_map() (in module gammapy.makers.utils)": [[188, "gammapy.makers.utils.make_observation_time_map", false]], "make_orthogonal_rectangle_sky_regions() (in module gammapy.utils.regions)": [[340, "gammapy.utils.regions.make_orthogonal_rectangle_sky_regions", false]], "make_path() (in module gammapy.utils.scripts)": [[345, "gammapy.utils.scripts.make_path", false]], "make_psf() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.make_psf", false]], "make_psf() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.make_psf", false]], "make_psf_map() (in module gammapy.makers.utils)": [[189, "gammapy.makers.utils.make_psf_map", false]], "make_theta_squared_table() (in module gammapy.makers.utils)": [[190, "gammapy.makers.utils.make_theta_squared_table", false]], "maker": [[577, "term-Maker", true]], "maker (class in gammapy.makers)": [[172, "gammapy.makers.Maker", false]], "maker_registry (in module gammapy.makers)": [[171, "gammapy.makers.MAKER_REGISTRY", false]], "map (class in gammapy.maps)": [[196, "gammapy.maps.Map", false]], "map (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.map", false]], "map (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.map", false]], "map (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.map", false]], "map (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.map", false]], "map (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.map", false]], "map_center (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.map_center", false]], "map_coord() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.map_coord", false]], "mapaxes (class in gammapy.maps)": [[197, "gammapy.maps.MapAxes", false]], "mapaxis (class in gammapy.maps)": [[198, "gammapy.maps.MapAxis", false]], "mapcoord (class in gammapy.maps)": [[199, "gammapy.maps.MapCoord", false]], "mapdataset (class in gammapy.datasets)": [[102, "gammapy.datasets.MapDataset", false]], "mapdataseteventsampler (class in gammapy.datasets)": [[103, "gammapy.datasets.MapDatasetEventSampler", false]], "mapdatasetmaker (class in gammapy.makers)": [[173, "gammapy.makers.MapDatasetMaker", false]], "mapdatasetmetadata (class in gammapy.datasets)": [[104, "gammapy.datasets.MapDatasetMetaData", false]], "mapdatasetonoff (class in gammapy.datasets)": [[105, "gammapy.datasets.MapDatasetOnOff", false]], "mappanelplotter (class in gammapy.visualization)": [[367, "gammapy.visualization.MapPanelPlotter", false]], "maps (class in gammapy.maps)": [[200, "gammapy.maps.Maps", false]], "mask (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.mask", false]], "mask (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.mask", false]], "mask (gammapy.datasets.dataset attribute)": [[99, "gammapy.datasets.Dataset.mask", false]], "mask (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.mask", false]], "mask (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask", false]], "mask (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask", false]], "mask (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask", false]], "mask (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask", false]], "mask_contains_region() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.mask_contains_region", false]], "mask_fit (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_fit", false]], "mask_fit (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_fit", false]], "mask_fit (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_fit", false]], "mask_fit (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_fit", false]], "mask_fit_image (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_fit_image", false]], "mask_fit_image (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_fit_image", false]], "mask_fit_image (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_fit_image", false]], "mask_fit_image (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_fit_image", false]], "mask_image (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_image", false]], "mask_image (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_image", false]], "mask_image (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_image", false]], "mask_image (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_image", false]], "mask_nearest_position() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.mask_nearest_position", false]], "mask_nearest_position() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.mask_nearest_position", false]], "mask_safe (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.mask_safe", false]], "mask_safe (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe", false]], "mask_safe (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe", false]], "mask_safe (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe", false]], "mask_safe (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe", false]], "mask_safe_edisp (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe_edisp", false]], "mask_safe_edisp (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe_edisp", false]], "mask_safe_edisp (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe_edisp", false]], "mask_safe_edisp (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe_edisp", false]], "mask_safe_image (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe_image", false]], "mask_safe_image (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe_image", false]], "mask_safe_image (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe_image", false]], "mask_safe_image (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe_image", false]], "mask_safe_image (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.mask_safe_image", false]], "mask_safe_image (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.mask_safe_image", false]], "mask_safe_psf (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.mask_safe_psf", false]], "mask_safe_psf (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.mask_safe_psf", false]], "mask_safe_psf (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.mask_safe_psf", false]], "mask_safe_psf (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.mask_safe_psf", false]], "mask_valid (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.mask_valid", false]], "masked (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.masked", false]], "masked (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.masked", false]], "match_by_name (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.match_by_name", false]], "matrix (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.matrix", false]], "max (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.max", false]], "max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.max", false]], "max (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.max", false]], "max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.max", false]], "max (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.max", false]], "mcmc": [[577, "term-MCMC", true]], "mdm (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.mDM", false]], "mean (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.mean", false]], "message (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.message", false]], "message (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.message", false]], "message (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.message", false]], "met": [[577, "term-MET", true]], "met_start (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.met_start", false]], "met_stop (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.met_stop", false]], "meta (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.meta", false]], "meta (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.meta", false]], "meta (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.meta", false]], "meta (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.meta", false]], "meta (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.meta", false]], "meta (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.meta", false]], "meta (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.meta", false]], "meta (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.meta", false]], "meta (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.meta", false]], "meta (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.meta", false]], "meta (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.meta", false]], "meta (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.meta", false]], "meta (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.meta", false]], "meta (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.meta", false]], "meta (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.meta", false]], "meta (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.meta", false]], "meta (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.meta", false]], "meta (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.meta", false]], "meta (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.meta", false]], "meta (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.meta", false]], "meta (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.meta", false]], "meta (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.meta", false]], "meta (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.meta", false]], "meta_table (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.meta_table", false]], "meta_table (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.meta_table", false]], "meta_table (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.meta_table", false]], "meta_table (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.meta_table", false]], "meta_table (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.meta_table", false]], "method (gammapy.makers.fovbackgroundmaker attribute)": [[170, "gammapy.makers.FoVBackgroundMaker.method", false]], "method (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.method", false]], "method (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.method", false]], "method (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.method", false]], "method_default (in module gammapy.utils.parallel)": [[323, "gammapy.utils.parallel.METHOD_DEFAULT", false]], "method_kwargs_default (in module gammapy.utils.parallel)": [[324, "gammapy.utils.parallel.METHOD_KWARGS_DEFAULT", false]], "meyercrabspectralmodel (class in gammapy.modeling.models)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel", false]], "min (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.min", false]], "min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.min", false]], "min (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.min", false]], "min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.min", false]], "min (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.min", false]], "minuit (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.minuit", false]], "minuit (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.minuit", false]], "mode (gammapy.data.fixedpointinginfo attribute)": [[85, "gammapy.data.FixedPointingInfo.mode", false]], "model (class in gammapy.modeling.models)": [[245, "gammapy.modeling.models.Model", false]], "model_computed_fields (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_computed_fields", false]], "model_computed_fields (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_computed_fields", false]], "model_computed_fields (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_computed_fields", false]], "model_computed_fields (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_computed_fields", false]], "model_computed_fields (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_computed_fields", false]], "model_config (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_config", false]], "model_config (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_config", false]], "model_config (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_config", false]], "model_config (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_config", false]], "model_config (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_config", false]], "model_constraints (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.model_constraints", false]], "model_constraints (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.model_constraints", false]], "model_constraints (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.model_constraints", false]], "model_constraints (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.model_constraints", false]], "model_constraints (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.model_constraints", false]], "model_constraints (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.model_constraints", false]], "model_constraints (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.model_constraints", false]], "model_constraints (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.model_constraints", false]], "model_constraints (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.model_constraints", false]], "model_constraints (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.model_constraints", false]], "model_construct() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_construct", false]], "model_construct() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_construct", false]], "model_construct() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_construct", false]], "model_construct() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_construct", false]], "model_construct() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_construct", false]], "model_copy() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_copy", false]], "model_copy() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_copy", false]], "model_copy() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_copy", false]], "model_copy() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_copy", false]], "model_copy() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_copy", false]], "model_dump() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_dump", false]], "model_dump() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_dump", false]], "model_dump() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_dump", false]], "model_dump() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_dump", false]], "model_dump() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_dump", false]], "model_dump_json() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_dump_json", false]], "model_dump_json() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_dump_json", false]], "model_dump_json() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_dump_json", false]], "model_dump_json() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_dump_json", false]], "model_dump_json() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_dump_json", false]], "model_extra (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_extra", false]], "model_extra (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_extra", false]], "model_extra (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_extra", false]], "model_extra (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_extra", false]], "model_extra (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_extra", false]], "model_fields (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_fields", false]], "model_fields (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_fields", false]], "model_fields (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_fields", false]], "model_fields (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_fields", false]], "model_fields (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_fields", false]], "model_fields_set (gammapy.analysis.analysisconfig attribute)": [[16, "gammapy.analysis.AnalysisConfig.model_fields_set", false]], "model_fields_set (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.model_fields_set", false]], "model_fields_set (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.model_fields_set", false]], "model_fields_set (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.model_fields_set", false]], "model_fields_set (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.model_fields_set", false]], "model_json_schema() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_json_schema", false]], "model_json_schema() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_json_schema", false]], "model_json_schema() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_json_schema", false]], "model_json_schema() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_json_schema", false]], "model_json_schema() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_json_schema", false]], "model_parametrized_name() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_parametrized_name", false]], "model_parametrized_name() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_parametrized_name", false]], "model_parametrized_name() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_parametrized_name", false]], "model_parametrized_name() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_parametrized_name", false]], "model_parametrized_name() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_parametrized_name", false]], "model_post_init() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.model_post_init", false]], "model_post_init() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.model_post_init", false]], "model_post_init() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.model_post_init", false]], "model_post_init() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_post_init", false]], "model_post_init() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.model_post_init", false]], "model_rebuild() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_rebuild", false]], "model_rebuild() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_rebuild", false]], "model_rebuild() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_rebuild", false]], "model_rebuild() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_rebuild", false]], "model_rebuild() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_rebuild", false]], "model_registry (in module gammapy.modeling.models)": [[243, "gammapy.modeling.models.MODEL_REGISTRY", false]], "model_set_axis (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.model_set_axis", false]], "model_set_axis (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.model_set_axis", false]], "model_set_axis (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.model_set_axis", false]], "model_set_axis (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.model_set_axis", false]], "model_set_axis (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.model_set_axis", false]], "model_set_axis (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.model_set_axis", false]], "model_set_axis (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.model_set_axis", false]], "model_set_axis (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.model_set_axis", false]], "model_set_axis (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.model_set_axis", false]], "model_set_axis (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.model_set_axis", false]], "model_validate() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_validate", false]], "model_validate() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_validate", false]], "model_validate() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_validate", false]], "model_validate() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_validate", false]], "model_validate() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_validate", false]], "model_validate_json() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_validate_json", false]], "model_validate_json() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_validate_json", false]], "model_validate_json() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_validate_json", false]], "model_validate_json() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_validate_json", false]], "model_validate_json() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_validate_json", false]], "model_validate_strings() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.model_validate_strings", false]], "model_validate_strings() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.model_validate_strings", false]], "model_validate_strings() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.model_validate_strings", false]], "model_validate_strings() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.model_validate_strings", false]], "model_validate_strings() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.model_validate_strings", false]], "modelbase (class in gammapy.modeling.models)": [[246, "gammapy.modeling.models.ModelBase", false]], "models (class in gammapy.modeling.models)": [[247, "gammapy.modeling.models.Models", false]], "models (gammapy.analysis.analysis attribute)": [[15, "gammapy.analysis.Analysis.models", false]], "models (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.models", false]], "models (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.models", false]], "models (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.models", false]], "models (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.models", false]], "models (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.models", false]], "models (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.models", false]], "models (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.models", false]], "models (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.models", false]], "module": [[0, "module-gammapy.analysis", false], [1, "module-gammapy.astro.darkmatter", false], [1, "module-gammapy.astro.population", false], [1, "module-gammapy.astro.source", false], [2, "module-gammapy.catalog", false], [3, "module-gammapy.data", false], [4, "module-gammapy.datasets", false], [4, "module-gammapy.datasets.utils", false], [5, "module-gammapy.estimators", false], [5, "module-gammapy.estimators.utils", false], [7, "module-gammapy.irf", false], [8, "module-gammapy.makers", false], [8, "module-gammapy.makers.utils", false], [9, "module-gammapy.maps", false], [10, "module-gammapy.modeling", false], [10, "module-gammapy.modeling.models", false], [10, "module-gammapy.modeling.models.utils", false], [12, "module-gammapy.stats", false], [13, "module-gammapy.utils.cluster", false], [13, "module-gammapy.utils.coordinates", false], [13, "module-gammapy.utils.fits", false], [13, "module-gammapy.utils.integrate", false], [13, "module-gammapy.utils.interpolation", false], [13, "module-gammapy.utils.parallel", false], [13, "module-gammapy.utils.random", false], [13, "module-gammapy.utils.regions", false], [13, "module-gammapy.utils.scripts", false], [13, "module-gammapy.utils.table", false], [13, "module-gammapy.utils.testing", false], [13, "module-gammapy.utils.time", false], [13, "module-gammapy.utils.units", false], [14, "module-gammapy.visualization", false]], "mooreprofile (class in gammapy.astro.darkmatter)": [[24, "gammapy.astro.darkmatter.MooreProfile", false]], "more() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.more", false]], "more() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.more", false]], "motion_since_birth() (in module gammapy.utils.coordinates)": [[311, "gammapy.utils.coordinates.motion_since_birth", false]], "mpl_plot_check() (in module gammapy.utils.testing)": [[358, "gammapy.utils.testing.mpl_plot_check", false]], "mu (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.mu", false]], "multiprocessing_manager (class in gammapy.utils.parallel)": [[327, "gammapy.utils.parallel.multiprocessing_manager", false]], "n_bkg (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.n_bkg", false]], "n_bkg (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.n_bkg", false]], "n_dof (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.n_dof", false]], "n_dof (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.n_dof", false]], "n_inputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.n_inputs", false]], "n_inputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.n_inputs", false]], "n_inputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.n_inputs", false]], "n_inputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.n_inputs", false]], "n_inputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.n_inputs", false]], "n_inputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.n_inputs", false]], "n_inputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.n_inputs", false]], "n_inputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.n_inputs", false]], "n_inputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.n_inputs", false]], "n_inputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.n_inputs", false]], "n_jobs (gammapy.data.observationseventssampler attribute)": [[93, "gammapy.data.ObservationsEventsSampler.n_jobs", false]], "n_jobs (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.n_jobs", false]], "n_jobs (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.n_jobs", false]], "n_jobs (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.n_jobs", false]], "n_jobs (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.n_jobs", false]], "n_jobs (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.n_jobs", false]], "n_jobs_default (in module gammapy.utils.parallel)": [[325, "gammapy.utils.parallel.N_JOBS_DEFAULT", false]], "n_models (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.n_models", false]], "n_models (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.n_models", false]], "n_outputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.n_outputs", false]], "n_outputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.n_outputs", false]], "n_outputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.n_outputs", false]], "n_outputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.n_outputs", false]], "n_outputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.n_outputs", false]], "n_outputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.n_outputs", false]], "n_outputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.n_outputs", false]], "n_outputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.n_outputs", false]], "n_outputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.n_outputs", false]], "n_outputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.n_outputs", false]], "n_sig (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.n_sig", false]], "n_sig (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.n_sig", false]], "n_sig_matching_significance() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.n_sig_matching_significance", false]], "n_sig_matching_significance() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.n_sig_matching_significance", false]], "n_sigma (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.n_sigma", false]], "n_sigma (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.n_sigma", false]], "n_sigma_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.n_sigma_ul", false]], "n_sigma_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.n_sigma_ul", false]], "n_submodels (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.n_submodels", false]], "n_submodels (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.n_submodels", false]], "n_submodels (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.n_submodels", false]], "n_submodels (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.n_submodels", false]], "n_submodels (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.n_submodels", false]], "n_submodels (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.n_submodels", false]], "n_submodels (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.n_submodels", false]], "n_submodels (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.n_submodels", false]], "n_submodels (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.n_submodels", false]], "n_submodels (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.n_submodels", false]], "naimaspectralmodel (class in gammapy.modeling.models)": [[248, "gammapy.modeling.models.NaimaSpectralModel", false]], "name (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.name", false]], "name (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.name", false]], "name (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.name", false]], "name (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.name", false]], "name (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.name", false]], "name (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.name", false]], "name (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.name", false]], "name (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.name", false]], "name (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.name", false]], "name (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.name", false]], "name (gammapy.catalog.sourcecatalogobject attribute)": [[69, "gammapy.catalog.SourceCatalogObject.name", false]], "name (gammapy.catalog.sourcecatalogobject1lhaaso attribute)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.name", false]], "name (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.name", false]], "name (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.name", false]], "name (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.name", false]], "name (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.name", false]], "name (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.name", false]], "name (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.name", false]], "name (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.name", false]], "name (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.name", false]], "name (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.name", false]], "name (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.name", false]], "name (gammapy.catalog.sourcecatalogobjecthgpscomponent attribute)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.name", false]], "name (gammapy.datasets.dataset attribute)": [[99, "gammapy.datasets.Dataset.name", false]], "name (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.name", false]], "name (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.name", false]], "name (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.name", false]], "name (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.name", false]], "name (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.name", false]], "name (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.name", false]], "name (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.name", false]], "name (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.name", false]], "name (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.name", false]], "name (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.name", false]], "name (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.name", false]], "name (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.name", false]], "name (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.name", false]], "names (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.names", false]], "names (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.names", false]], "names (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.names", false]], "names (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.names", false]], "names (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.names", false]], "names (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.names", false]], "nbin (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.nbin", false]], "nbin (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.nbin", false]], "nbin (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.nbin", false]], "nbin_per_decade (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.nbin_per_decade", false]], "ndim (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.ndim", false]], "ndim (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.ndim", false]], "ndim (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.ndim", false]], "nest (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.nest", false]], "nfev (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.nfev", false]], "nfev (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.nfev", false]], "nfwprofile (class in gammapy.astro.darkmatter)": [[25, "gammapy.astro.darkmatter.NFWProfile", false]], "niter (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.niter", false]], "niter (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.niter", false]], "node_type (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.node_type", false]], "node_type (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.node_type", false]], "node_type (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.node_type", false]], "norm (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm", false]], "norm (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm", false]], "norm (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.norm", false]], "norm (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.norm", false]], "norm (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.norm", false]], "norm (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.norm", false]], "norm (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.norm", false]], "norm_bounds_cython() (in module gammapy.stats)": [[302, "gammapy.stats.norm_bounds_cython", false]], "norm_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_err", false]], "norm_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_err", false]], "norm_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_errn", false]], "norm_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_errn", false]], "norm_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_errp", false]], "norm_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_errp", false]], "norm_sensitivity (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_sensitivity", false]], "norm_sensitivity (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_sensitivity", false]], "norm_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.norm_ul", false]], "norm_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.norm_ul", false]], "normalize() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.normalize", false]], "normalize() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.normalize", false]], "normalize() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.normalize", false]], "normalize() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.normalize", false]], "normalize() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.normalize", false]], "normalize() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.normalize", false]], "normalize() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.normalize", false]], "normalize() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.normalize", false]], "normalize() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.normalize", false]], "normalize() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.normalize", false]], "normalize() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.normalize", false]], "normalize() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.normalize", false]], "normalize() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.normalize", false]], "normalize() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.normalize", false]], "normalize() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.normalize", false]], "normalize() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.normalize", false]], "normalize() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.normalize", false]], "normalize() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.normalize", false]], "normalize() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.normalize", false]], "normalize() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.normalize", false]], "normalize() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.normalize", false]], "normalize() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.normalize", false]], "normalize() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.normalize", false]], "normalize() (in module gammapy.utils.random)": [[332, "gammapy.utils.random.normalize", false]], "norms (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.norms", false]], "norms (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.norms", false]], "npix (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.npix", false]], "npix (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.npix", false]], "npix (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.npix", false]], "npix_max (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.npix_max", false]], "npred (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred", false]], "npred (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred", false]], "npred() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.npred", false]], "npred() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred", false]], "npred() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.npred", false]], "npred() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred", false]], "npred_background (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_background", false]], "npred_background (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_background", false]], "npred_background() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.npred_background", false]], "npred_background() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred_background", false]], "npred_background() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.npred_background", false]], "npred_background() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred_background", false]], "npred_excess (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess", false]], "npred_excess (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess", false]], "npred_excess_err (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_err", false]], "npred_excess_err (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_err", false]], "npred_excess_errn (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_errn", false]], "npred_excess_errn (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_errn", false]], "npred_excess_errp (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_errp", false]], "npred_excess_errp (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_errp", false]], "npred_excess_ref (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_ref", false]], "npred_excess_ref (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_ref", false]], "npred_excess_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.npred_excess_ul", false]], "npred_excess_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.npred_excess_ul", false]], "npred_off() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred_off", false]], "npred_off() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred_off", false]], "npred_signal() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.npred_signal", false]], "npred_signal() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.npred_signal", false]], "npred_signal() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.npred_signal", false]], "npred_signal() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.npred_signal", false]], "nside (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.nside", false]], "obs() (gammapy.data.datastore method)": [[82, "gammapy.data.DataStore.obs", false]], "obs_id_unique (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.obs_id_unique", false]], "obs_ids (gammapy.data.datastore attribute)": [[82, "gammapy.data.DataStore.obs_ids", false]], "observation (class in gammapy.data)": [[88, "gammapy.data.Observation", false]], "observation_dead_time_fraction (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_dead_time_fraction", false]], "observation_dead_time_fraction (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observation_dead_time_fraction", false]], "observation_live_time_duration (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_live_time_duration", false]], "observation_live_time_duration (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observation_live_time_duration", false]], "observation_time_duration (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_time_duration", false]], "observation_time_duration (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observation_time_duration", false]], "observation_time_start (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_time_start", false]], "observation_time_stop (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observation_time_stop", false]], "observationeventsampler (class in gammapy.datasets)": [[108, "gammapy.datasets.ObservationEventSampler", false]], "observationfilter (class in gammapy.data)": [[89, "gammapy.data.ObservationFilter", false]], "observationmetadata (class in gammapy.data)": [[90, "gammapy.data.ObservationMetaData", false]], "observations (class in gammapy.data)": [[92, "gammapy.data.Observations", false]], "observationseventssampler (class in gammapy.data)": [[93, "gammapy.data.ObservationsEventsSampler", false]], "observationtable (class in gammapy.data)": [[91, "gammapy.data.ObservationTable", false]], "observatory_earth_location (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.observatory_earth_location", false]], "observatory_earth_location (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.observatory_earth_location", false]], "observatory_locations (in module gammapy.data)": [[97, "gammapy.data.observatory_locations", false]], "offset (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.offset", false]], "offset_from_median (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.offset_from_median", false]], "offset_max (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.offset_max", false]], "ogipdatasetreader (class in gammapy.datasets)": [[106, "gammapy.datasets.OGIPDatasetReader", false]], "ogipdatasetwriter (class in gammapy.datasets)": [[107, "gammapy.datasets.OGIPDatasetWriter", false]], "omega (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.omega", false]], "optimize() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.optimize", false]], "optimize_result (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.optimize_result", false]], "optimizeresult (class in gammapy.modeling)": [[213, "gammapy.modeling.OptimizeResult", false]], "order (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.order", false]], "ordering (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.ordering", false]], "output_units() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.output_units", false]], "output_units() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.output_units", false]], "output_units() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.output_units", false]], "output_units() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.output_units", false]], "output_units() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.output_units", false]], "output_units() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.output_units", false]], "output_units() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.output_units", false]], "output_units() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.output_units", false]], "output_units() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.output_units", false]], "output_units() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.output_units", false]], "outputs (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.outputs", false]], "outputs (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.outputs", false]], "outputs (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.outputs", false]], "outputs (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.outputs", false]], "outputs (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.outputs", false]], "outputs (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.outputs", false]], "outputs (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.outputs", false]], "outputs (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.outputs", false]], "outputs (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.outputs", false]], "outputs (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.outputs", false]], "p (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.p", false]], "p_value (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.p_value", false]], "p_value (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.p_value", false]], "paczynski1990 (class in gammapy.astro.population)": [[36, "gammapy.astro.population.Paczynski1990", false]], "paczynski1990velocity (class in gammapy.astro.population)": [[37, "gammapy.astro.population.Paczynski1990Velocity", false]], "pad() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.pad", false]], "pad() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.pad", false]], "pad() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.pad", false]], "pad() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.pad", false]], "pad() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.pad", false]], "pad() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.pad", false]], "pad() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.pad", false]], "pad() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.pad", false]], "pad() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.pad", false]], "pad() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.pad", false]], "pad() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.pad", false]], "pad() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.pad", false]], "pad() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.pad", false]], "pad() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.pad", false]], "pad() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.pad", false]], "pad() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.pad", false]], "pad() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.pad", false]], "pad() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.pad", false]], "pad() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.pad", false]], "pad() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.pad", false]], "pad() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.pad", false]], "pad() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.pad", false]], "pad() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.pad", false]], "pad() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.pad", false]], "pad() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.pad", false]], "pad() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.pad", false]], "pad() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.pad", false]], "pad() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.pad", false]], "pad() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.pad", false]], "parallel_backend (gammapy.data.observationseventssampler attribute)": [[93, "gammapy.data.ObservationsEventsSampler.parallel_backend", false]], "parallel_backend (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.parallel_backend", false]], "parallel_backend (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.parallel_backend", false]], "parallel_backend (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.parallel_backend", false]], "parallel_backend (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.parallel_backend", false]], "parallel_backend (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.parallel_backend", false]], "param_names (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.param_names", false]], "param_names (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.param_names", false]], "param_names (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.param_names", false]], "param_names (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.param_names", false]], "param_names (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.param_names", false]], "param_names (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.param_names", false]], "param_names (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.param_names", false]], "param_names (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.param_names", false]], "param_names (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.param_names", false]], "param_names (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.param_names", false]], "param_sets (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.param_sets", false]], "param_sets (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.param_sets", false]], "param_sets (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.param_sets", false]], "param_sets (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.param_sets", false]], "param_sets (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.param_sets", false]], "param_sets (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.param_sets", false]], "param_sets (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.param_sets", false]], "param_sets (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.param_sets", false]], "param_sets (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.param_sets", false]], "param_sets (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.param_sets", false]], "parameter (class in gammapy.modeling)": [[214, "gammapy.modeling.Parameter", false]], "parameter_constraints (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.parameter_constraints", false]], "parameter_constraints (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.parameter_constraints", false]], "parameterestimator (class in gammapy.estimators)": [[131, "gammapy.estimators.ParameterEstimator", false]], "parameters (class in gammapy.modeling)": [[215, "gammapy.modeling.Parameters", false]], "parameters (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.parameters", false]], "parameters (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.parameters", false]], "parameters (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.parameters", false]], "parameters (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.parameters", false]], "parameters (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.parameters", false]], "parameters (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.parameters", false]], "parameters (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.parameters", false]], "parameters (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.parameters", false]], "parameters (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.parameters", false]], "parameters (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.parameters", false]], "parameters (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.parameters", false]], "parameters (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.parameters", false]], "parameters (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.parameters", false]], "parameters (gammapy.datasets.datasets attribute)": [[100, "gammapy.datasets.Datasets.parameters", false]], "parameters (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.parameters", false]], "parameters (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.parameters", false]], "parameters (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.parameters", false]], "parameters (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.parameters", false]], "parameters (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.parameters", false]], "parameters (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.parameters", false]], "parameters (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.parameters", false]], "parameters (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.parameters", false]], "parameters (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.parameters", false]], "parameters (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.parameters", false]], "parameters (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.parameters", false]], "parameters (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.parameters", false]], "parameters (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.parameters", false]], "parameters (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.parameters", false]], "parameters (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.parameters", false]], "parameters (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.parameters", false]], "parameters (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.parameters", false]], "parameters (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.parameters", false]], "parameters (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.parameters", false]], "parameters (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.parameters", false]], "parameters_unique_names (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.parameters_unique_names", false]], "parameters_unique_names (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.parameters_unique_names", false]], "parametricpsf (class in gammapy.irf)": [[164, "gammapy.irf.ParametricPSF", false]], "parse_file() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.parse_file", false]], "parse_file() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.parse_file", false]], "parse_file() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.parse_file", false]], "parse_file() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.parse_file", false]], "parse_file() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.parse_file", false]], "parse_obj() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.parse_obj", false]], "parse_obj() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.parse_obj", false]], "parse_obj() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.parse_obj", false]], "parse_obj() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.parse_obj", false]], "parse_obj() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.parse_obj", false]], "parse_raw() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.parse_raw", false]], "parse_raw() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.parse_raw", false]], "parse_raw() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.parse_raw", false]], "parse_raw() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.parse_raw", false]], "parse_raw() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.parse_raw", false]], "particle_distribution (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.particle_distribution", false]], "path() (gammapy.utils.fits.hdulocation method)": [[315, "gammapy.utils.fits.HDULocation.path", false]], "pdf() (in module gammapy.utils.random)": [[333, "gammapy.utils.random.pdf", false]], "pdf_in_safe_range() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.pdf_in_safe_range", false]], "pdf_matrix (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.pdf_matrix", false]], "peak_brightness() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_brightness", false]], "peak_brightness_error() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_brightness_error", false]], "peak_latitude() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_latitude", false]], "peak_latitude_error() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.peak_latitude_error", false]], "peek() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.peek", false]], "peek() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.peek", false]], "peek() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.peek", false]], "peek() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.peek", false]], "peek() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.peek", false]], "peek() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.peek", false]], "peek() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.peek", false]], "peek() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.peek", false]], "peek() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.peek", false]], "peek() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.peek", false]], "peek() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.peek", false]], "peek() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.peek", false]], "peek() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.peek", false]], "peek() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.peek", false]], "peek() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.peek", false]], "peek() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.peek", false]], "peek() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.peek", false]], "peek() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.peek", false]], "peek() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.peek", false]], "peek() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.peek", false]], "peek() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.peek", false]], "period() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.period", false]], "period_dot() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.period_dot", false]], "pformat() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pformat", false]], "pformat() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pformat", false]], "pformat_all() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pformat_all", false]], "pformat_all() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pformat_all", false]], "phasebackgroundmaker (class in gammapy.makers)": [[174, "gammapy.makers.PhaseBackgroundMaker", false]], "phi (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.phi", false]], "phi (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.phi", false]], "phi (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.phi", false]], "phi (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.phi", false]], "phi_0 (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.phi_0", false]], "phi_0 (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.phi_0", false]], "phi_ref (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.phi_ref", false]], "piecewisenormspatialmodel (class in gammapy.modeling.models)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel", false]], "piecewisenormspectralmodel (class in gammapy.modeling.models)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel", false]], "pivot_energy (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.pivot_energy", false]], "pivot_energy (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.pivot_energy", false]], "pivot_energy (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.pivot_energy", false]], "pix_to_coord() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.pix_to_coord", false]], "pix_to_coord() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.pix_to_coord", false]], "pix_to_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.timemapaxis static method)": [[203, "gammapy.maps.TimeMapAxis.pix_to_idx", false]], "pix_to_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.pix_to_idx", false]], "pixel_area (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.pixel_area", false]], "pixel_scales (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.pixel_scales", false]], "pixel_scales (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.pixel_scales", false]], "plot() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.plot", false]], "plot() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.plot", false]], "plot() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.plot", false]], "plot() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.plot", false]], "plot() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.plot", false]], "plot() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot", false]], "plot() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.plot", false]], "plot() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot", false]], "plot() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot", false]], "plot() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot", false]], "plot() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.plot", false]], "plot() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot", false]], "plot() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot", false]], "plot() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.plot", false]], "plot() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.plot", false]], "plot() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot", false]], "plot() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.plot", false]], "plot() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot", false]], "plot() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.plot", false]], "plot() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.plot", false]], "plot() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot", false]], "plot() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.plot", false]], "plot() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.plot", false]], "plot() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.plot", false]], "plot() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.plot", false]], "plot() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.plot", false]], "plot() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.plot", false]], "plot() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot", false]], "plot() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot", false]], "plot() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.plot", false]], "plot() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.plot", false]], "plot() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.plot", false]], "plot() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.plot", false]], "plot() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot", false]], "plot() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot", false]], "plot() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.plot", false]], "plot() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.plot", false]], "plot() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot", false]], "plot() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.plot", false]], "plot() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.plot", false]], "plot() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.plot", false]], "plot() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.plot", false]], "plot() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot", false]], "plot() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.plot", false]], "plot() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.plot", false]], "plot() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot", false]], "plot() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.plot", false]], "plot() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.plot", false]], "plot() (gammapy.visualization.mappanelplotter method)": [[367, "gammapy.visualization.MapPanelPlotter.plot", false]], "plot_at_energy() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_at_energy", false]], "plot_at_energy() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.plot_at_energy", false]], "plot_bias() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.plot_bias", false]], "plot_bias() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.plot_bias", false]], "plot_containment_radius() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.plot_containment_radius", false]], "plot_containment_radius() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.plot_containment_radius", false]], "plot_containment_radius() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.plot_containment_radius", false]], "plot_containment_radius() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.plot_containment_radius", false]], "plot_containment_radius_vs_energy() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.plot_containment_radius_vs_energy", false]], "plot_containment_radius_vs_energy() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.plot_containment_radius_vs_energy", false]], "plot_contour_line() (in module gammapy.visualization)": [[372, "gammapy.visualization.plot_contour_line", false]], "plot_correlation() (gammapy.modeling.covariance method)": [[209, "gammapy.modeling.Covariance.plot_correlation", false]], "plot_counts() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_counts", false]], "plot_counts() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_counts", false]], "plot_distribution() (in module gammapy.visualization)": [[373, "gammapy.visualization.plot_distribution", false]], "plot_energy() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_energy", false]], "plot_energy_dependence() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_energy_dependence", false]], "plot_energy_dependence() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.plot_energy_dependence", false]], "plot_energy_offset() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_energy_offset", false]], "plot_err() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.plot_err", false]], "plot_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.plot_error", false]], "plot_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.plot_error", false]], "plot_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.plot_error", false]], "plot_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_error", false]], "plot_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.plot_error", false]], "plot_excess() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_excess", false]], "plot_excess() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_excess", false]], "plot_fit() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.plot_fit", false]], "plot_fit() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_fit", false]], "plot_fit() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_fit", false]], "plot_grid() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.plot_grid", false]], "plot_grid() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot_grid", false]], "plot_grid() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.plot_grid", false]], "plot_grid() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_grid", false]], "plot_grid() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.plot_grid", false]], "plot_grid() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot_grid", false]], "plot_grid() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_grid", false]], "plot_grid() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_grid", false]], "plot_heatmap() (in module gammapy.visualization)": [[374, "gammapy.visualization.plot_heatmap", false]], "plot_hist() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_hist", false]], "plot_image() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_image", false]], "plot_interactive() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.plot_interactive", false]], "plot_interactive() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.plot_interactive", false]], "plot_interactive() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_interactive", false]], "plot_interactive() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_interactive", false]], "plot_kernel() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.plot_kernel", false]], "plot_map_rgb() (in module gammapy.visualization)": [[375, "gammapy.visualization.plot_map_rgb", false]], "plot_mask() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.plot_mask", false]], "plot_mask() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_mask", false]], "plot_mask() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.plot_mask", false]], "plot_masks() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_masks", false]], "plot_masks() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_masks", false]], "plot_matrix() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.plot_matrix", false]], "plot_migration() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.plot_migration", false]], "plot_npred_signal() (in module gammapy.visualization)": [[376, "gammapy.visualization.plot_npred_signal", false]], "plot_offset2_distribution() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_offset2_distribution", false]], "plot_offset_dependence() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_offset_dependence", false]], "plot_offset_dependence() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.plot_offset_dependence", false]], "plot_panel() (gammapy.visualization.mappanelplotter method)": [[367, "gammapy.visualization.MapPanelPlotter.plot_panel", false]], "plot_phasogram() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.plot_phasogram", false]], "plot_position_error() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.plot_position_error", false]], "plot_position_error() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.plot_position_error", false]], "plot_positions() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.plot_positions", false]], "plot_positions() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.plot_positions", false]], "plot_psf_vs_rad() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.plot_psf_vs_rad", false]], "plot_psf_vs_rad() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.plot_psf_vs_rad", false]], "plot_rad_max_vs_energy() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.plot_rad_max_vs_energy", false]], "plot_region() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.plot_region", false]], "plot_region() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.plot_region", false]], "plot_regions() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.plot_regions", false]], "plot_regions() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.plot_regions", false]], "plot_residuals() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.plot_residuals", false]], "plot_residuals() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.plot_residuals", false]], "plot_residuals() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.plot_residuals", false]], "plot_residuals() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_residuals", false]], "plot_residuals() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_residuals", false]], "plot_residuals_spatial() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.plot_residuals_spatial", false]], "plot_residuals_spatial() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.plot_residuals_spatial", false]], "plot_residuals_spatial() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_residuals_spatial", false]], "plot_residuals_spatial() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_residuals_spatial", false]], "plot_residuals_spectral() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.plot_residuals_spectral", false]], "plot_residuals_spectral() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.plot_residuals_spectral", false]], "plot_residuals_spectral() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.plot_residuals_spectral", false]], "plot_residuals_spectral() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.plot_residuals_spectral", false]], "plot_spectrum() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.plot_spectrum", false]], "plot_spectrum() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.plot_spectrum", false]], "plot_spectrum_datasets_off_regions() (in module gammapy.visualization)": [[377, "gammapy.visualization.plot_spectrum_datasets_off_regions", false]], "plot_theta_squared_table() (in module gammapy.visualization)": [[378, "gammapy.visualization.plot_theta_squared_table", false]], "plot_time() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.plot_time", false]], "plot_ts_profiles() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.plot_ts_profiles", false]], "pointing (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.pointing", false]], "pointing (gammapy.data.pointingmode attribute)": [[95, "gammapy.data.PointingMode.POINTING", false]], "pointing_galactic (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pointing_galactic", false]], "pointing_radec (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.pointing_radec", false]], "pointing_radec (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pointing_radec", false]], "pointinginfo (class in gammapy.data)": [[94, "gammapy.data.PointingInfo", false]], "pointingmode (class in gammapy.data)": [[95, "gammapy.data.PointingMode", false]], "pointspatialmodel (class in gammapy.modeling.models)": [[251, "gammapy.modeling.models.PointSpatialModel", false]], "polar() (in module gammapy.utils.coordinates)": [[312, "gammapy.utils.coordinates.polar", false]], "pool_kwargs_default (in module gammapy.utils.parallel)": [[326, "gammapy.utils.parallel.POOL_KWARGS_DEFAULT", false]], "pop() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.pop", false]], "pop() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.pop", false]], "pop() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.pop", false]], "pop() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.pop", false]], "popitem() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.popitem", false]], "position (gammapy.catalog.sourcecatalogobject attribute)": [[69, "gammapy.catalog.SourceCatalogObject.position", false]], "position (gammapy.catalog.sourcecatalogobject1lhaaso attribute)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.position", false]], "position (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.position", false]], "position (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.position", false]], "position (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.position", false]], "position (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.position", false]], "position (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.position", false]], "position (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.position", false]], "position (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.position", false]], "position (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.position", false]], "position (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.position", false]], "position (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.position", false]], "position (gammapy.catalog.sourcecatalogobjecthgpscomponent attribute)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.position", false]], "position (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.position", false]], "position (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.position", false]], "position (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.position", false]], "position (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.position", false]], "position (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.position", false]], "position (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.position", false]], "position (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.position", false]], "position (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.position", false]], "position (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.position", false]], "position (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.position", false]], "position (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.position", false]], "position (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.position", false]], "position (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.position", false]], "position (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.position", false]], "position_error (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.position_error", false]], "position_error (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.position_error", false]], "position_error (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.position_error", false]], "position_error (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.position_error", false]], "position_lonlat (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.position_lonlat", false]], "position_lonlat (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.position_lonlat", false]], "positions (gammapy.catalog.sourcecatalog attribute)": [[56, "gammapy.catalog.SourceCatalog.positions", false]], "positions (gammapy.catalog.sourcecatalog1lhaaso attribute)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.positions", false]], "positions (gammapy.catalog.sourcecatalog2fhl attribute)": [[58, "gammapy.catalog.SourceCatalog2FHL.positions", false]], "positions (gammapy.catalog.sourcecatalog2hwc attribute)": [[59, "gammapy.catalog.SourceCatalog2HWC.positions", false]], "positions (gammapy.catalog.sourcecatalog2pc attribute)": [[60, "gammapy.catalog.SourceCatalog2PC.positions", false]], "positions (gammapy.catalog.sourcecatalog3fgl attribute)": [[61, "gammapy.catalog.SourceCatalog3FGL.positions", false]], "positions (gammapy.catalog.sourcecatalog3fhl attribute)": [[62, "gammapy.catalog.SourceCatalog3FHL.positions", false]], "positions (gammapy.catalog.sourcecatalog3hwc attribute)": [[63, "gammapy.catalog.SourceCatalog3HWC.positions", false]], "positions (gammapy.catalog.sourcecatalog3pc attribute)": [[64, "gammapy.catalog.SourceCatalog3PC.positions", false]], "positions (gammapy.catalog.sourcecatalog4fgl attribute)": [[65, "gammapy.catalog.SourceCatalog4FGL.positions", false]], "positions (gammapy.catalog.sourcecataloggammacat attribute)": [[66, "gammapy.catalog.SourceCatalogGammaCat.positions", false]], "positions (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.positions", false]], "positions (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.positions", false]], "positions (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.positions", false]], "powerlaw2spectralmodel (class in gammapy.modeling.models)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel", false]], "powerlawnormspectralmodel (class in gammapy.modeling.models)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel", false]], "powerlawspectralmodel (class in gammapy.modeling.models)": [[254, "gammapy.modeling.models.PowerLawSpectralModel", false]], "powerlawtemporalmodel (class in gammapy.modeling.models)": [[255, "gammapy.modeling.models.PowerLawTemporalModel", false]], "pprint() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pprint", false]], "pprint() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pprint", false]], "pprint_all() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.pprint_all", false]], "pprint_all() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.pprint_all", false]], "pprint_exclude_names (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.pprint_exclude_names", false]], "pprint_exclude_names (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pprint_exclude_names", false]], "pprint_include_names (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.pprint_include_names", false]], "pprint_include_names (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.pprint_include_names", false]], "prepare_inputs() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.prepare_inputs", false]], "prepare_inputs() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.prepare_inputs", false]], "prepare_outputs() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.prepare_outputs", false]], "prepare_outputs() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.prepare_outputs", false]], "primary_axis (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.primary_axis", false]], "primaryflux (class in gammapy.astro.darkmatter)": [[26, "gammapy.astro.darkmatter.PrimaryFlux", false]], "prior (class in gammapy.modeling.models)": [[256, "gammapy.modeling.models.Prior", false]], "prior (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.prior", false]], "prior (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.prior", false]], "prior (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.prior", false]], "prior (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.prior", false]], "prior_stat_sum() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.prior_stat_sum", false]], "prior_stat_sum() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.prior_stat_sum", false]], "prior_stat_sum() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.prior_stat_sum", false]], "prior_stat_sum() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.prior_stat_sum", false]], "priorparameter (class in gammapy.modeling)": [[216, "gammapy.modeling.PriorParameter", false]], "priorparameters (class in gammapy.modeling)": [[217, "gammapy.modeling.PriorParameters", false]], "profile (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.profile", false]], "profile_err (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.profile_err", false]], "projected_distance_axis (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.projected_distance_axis", false]], "projection (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.projection", false]], "projection (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.projection", false]], "projection (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.projection", false]], "psf": [[577, "term-PSF", true]], "psf (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.psf", false]], "psf (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.psf", false]], "psf (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.psf", false]], "psf (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.psf", false]], "psf (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.psf", false]], "psf3d (class in gammapy.irf)": [[160, "gammapy.irf.PSF3D", false]], "psf_kernel_map (gammapy.irf.psfkernel attribute)": [[161, "gammapy.irf.PSFKernel.psf_kernel_map", false]], "psf_map (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.psf_map", false]], "psf_map (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.psf_map", false]], "psfkernel (class in gammapy.irf)": [[161, "gammapy.irf.PSFKernel", false]], "psfking (class in gammapy.irf)": [[162, "gammapy.irf.PSFKing", false]], "psfmap (class in gammapy.irf)": [[163, "gammapy.irf.PSFMap", false]], "pulsar (class in gammapy.astro.source)": [[51, "gammapy.astro.source.Pulsar", false]], "pwn (class in gammapy.astro.source)": [[50, "gammapy.astro.source.PWN", false]], "quantity (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.quantity", false]], "quantity (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.quantity", false]], "quantity (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.quantity", false]], "quantity (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.quantity", false]], "quantity (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.quantity", false]], "quantity (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.quantity", false]], "quantity (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.quantity", false]], "quantity (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.quantity", false]], "quantity (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.quantity", false]], "quantity (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.quantity", false]], "quantity (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.quantity", false]], "quantity (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.quantity", false]], "quantity (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.quantity", false]], "quantity (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.quantity", false]], "quantity (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.quantity", false]], "quantity (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.quantity", false]], "quantity (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.quantity", false]], "quantity (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.quantity", false]], "quantity (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.quantity", false]], "quantity (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.quantity", false]], "r_0 (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.r_0", false]], "r_0 (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.r_0", false]], "r_0 (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.r_0", false]], "r_0 (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.r_0", false]], "r_0 (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.r_0", false]], "r_0 (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.r_0", false]], "r_1 (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.r_1", false]], "r_exp (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.r_exp", false]], "r_in (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.r_in", false]], "r_sun (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.r_sun", false]], "rad_max (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.rad_max", false]], "radec (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.radec", false]], "radec (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.radec", false]], "radec (gammapy.irf.fovalignment attribute)": [[156, "gammapy.irf.FoVAlignment.RADEC", false]], "radial_distributions (in module gammapy.astro.population)": [[48, "gammapy.astro.population.radial_distributions", false]], "radius (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.radius", false]], "radius() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.radius", false]], "radius() (gammapy.astro.population.logspiral method)": [[34, "gammapy.astro.population.LogSpiral.radius", false]], "radius() (gammapy.astro.population.valleespiral method)": [[38, "gammapy.astro.population.ValleeSpiral.radius", false]], "radius() (gammapy.astro.source.pwn method)": [[50, "gammapy.astro.source.PWN.radius", false]], "radius() (gammapy.astro.source.snr method)": [[52, "gammapy.astro.source.SNR.radius", false]], "radius() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.radius", false]], "radius_inner() (gammapy.astro.source.snr method)": [[52, "gammapy.astro.source.SNR.radius_inner", false]], "radius_inner() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.radius_inner", false]], "radius_reverse_shock() (gammapy.astro.source.snrtruelovemckee method)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.radius_reverse_shock", false]], "radmax2d (class in gammapy.irf)": [[165, "gammapy.irf.RadMax2D", false]], "read() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.read", false]], "read() (gammapy.data.eventlist class method)": [[83, "gammapy.data.EventList.read", false]], "read() (gammapy.data.fixedpointinginfo class method)": [[85, "gammapy.data.FixedPointingInfo.read", false]], "read() (gammapy.data.gti class method)": [[86, "gammapy.data.GTI.read", false]], "read() (gammapy.data.hduindextable class method)": [[87, "gammapy.data.HDUIndexTable.read", false]], "read() (gammapy.data.observation class method)": [[88, "gammapy.data.Observation.read", false]], "read() (gammapy.data.observationtable class method)": [[91, "gammapy.data.ObservationTable.read", false]], "read() (gammapy.data.pointinginfo class method)": [[94, "gammapy.data.PointingInfo.read", false]], "read() (gammapy.datasets.datasets class method)": [[100, "gammapy.datasets.Datasets.read", false]], "read() (gammapy.datasets.fluxpointsdataset class method)": [[101, "gammapy.datasets.FluxPointsDataset.read", false]], "read() (gammapy.datasets.mapdataset class method)": [[102, "gammapy.datasets.MapDataset.read", false]], "read() (gammapy.datasets.mapdatasetonoff class method)": [[105, "gammapy.datasets.MapDatasetOnOff.read", false]], "read() (gammapy.datasets.ogipdatasetreader method)": [[106, "gammapy.datasets.OGIPDatasetReader.read", false]], "read() (gammapy.datasets.spectrumdataset class method)": [[109, "gammapy.datasets.SpectrumDataset.read", false]], "read() (gammapy.datasets.spectrumdatasetonoff class method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.read", false]], "read() (gammapy.estimators.fluxmaps class method)": [[123, "gammapy.estimators.FluxMaps.read", false]], "read() (gammapy.estimators.fluxpoints class method)": [[125, "gammapy.estimators.FluxPoints.read", false]], "read() (gammapy.irf.background2d class method)": [[147, "gammapy.irf.Background2D.read", false]], "read() (gammapy.irf.background3d class method)": [[148, "gammapy.irf.Background3D.read", false]], "read() (gammapy.irf.backgroundirf class method)": [[149, "gammapy.irf.BackgroundIRF.read", false]], "read() (gammapy.irf.edispkernel class method)": [[150, "gammapy.irf.EDispKernel.read", false]], "read() (gammapy.irf.edispkernelmap class method)": [[151, "gammapy.irf.EDispKernelMap.read", false]], "read() (gammapy.irf.edispmap class method)": [[152, "gammapy.irf.EDispMap.read", false]], "read() (gammapy.irf.effectiveareatable2d class method)": [[153, "gammapy.irf.EffectiveAreaTable2D.read", false]], "read() (gammapy.irf.energydependentmultigausspsf class method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.read", false]], "read() (gammapy.irf.energydispersion2d class method)": [[155, "gammapy.irf.EnergyDispersion2D.read", false]], "read() (gammapy.irf.irf class method)": [[157, "gammapy.irf.IRF.read", false]], "read() (gammapy.irf.irfmap class method)": [[158, "gammapy.irf.IRFMap.read", false]], "read() (gammapy.irf.parametricpsf class method)": [[164, "gammapy.irf.ParametricPSF.read", false]], "read() (gammapy.irf.psf3d class method)": [[160, "gammapy.irf.PSF3D.read", false]], "read() (gammapy.irf.psfkernel class method)": [[161, "gammapy.irf.PSFKernel.read", false]], "read() (gammapy.irf.psfking class method)": [[162, "gammapy.irf.PSFKing.read", false]], "read() (gammapy.irf.psfmap class method)": [[163, "gammapy.irf.PSFMap.read", false]], "read() (gammapy.irf.radmax2d class method)": [[165, "gammapy.irf.RadMax2D.read", false]], "read() (gammapy.irf.recopsfmap class method)": [[166, "gammapy.irf.RecoPSFMap.read", false]], "read() (gammapy.maps.hpxmap static method)": [[193, "gammapy.maps.HpxMap.read", false]], "read() (gammapy.maps.hpxndmap static method)": [[194, "gammapy.maps.HpxNDMap.read", false]], "read() (gammapy.maps.map static method)": [[196, "gammapy.maps.Map.read", false]], "read() (gammapy.maps.maps class method)": [[200, "gammapy.maps.Maps.read", false]], "read() (gammapy.maps.regionndmap class method)": [[202, "gammapy.maps.RegionNDMap.read", false]], "read() (gammapy.maps.wcsmap static method)": [[205, "gammapy.maps.WcsMap.read", false]], "read() (gammapy.maps.wcsndmap static method)": [[206, "gammapy.maps.WcsNDMap.read", false]], "read() (gammapy.modeling.models.datasetmodels class method)": [[224, "gammapy.modeling.models.DatasetModels.read", false]], "read() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.read", false]], "read() (gammapy.modeling.models.lightcurvetemplatetemporalmodel class method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.read", false]], "read() (gammapy.modeling.models.models class method)": [[247, "gammapy.modeling.models.Models.read", false]], "read() (gammapy.modeling.models.templatephasecurvetemporalmodel class method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.read", false]], "read() (gammapy.modeling.models.templatespatialmodel class method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.read", false]], "read_arf() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_arf", false]], "read_bkg() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_bkg", false]], "read_builtin() (gammapy.modeling.models.eblabsorptionnormspectralmodel class method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.read_builtin", false]], "read_covariance() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.read_covariance", false]], "read_covariance() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.read_covariance", false]], "read_datasets() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.read_datasets", false]], "read_hermes_cube() (in module gammapy.modeling.models)": [[283, "gammapy.modeling.models.read_hermes_cube", false]], "read_hermes_cube() (in module gammapy.modeling.models.utils)": [[285, "gammapy.modeling.models.utils.read_hermes_cube", false]], "read_models() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.read_models", false]], "read_pha() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_pha", false]], "read_rmf() (gammapy.datasets.ogipdatasetreader static method)": [[106, "gammapy.datasets.OGIPDatasetReader.read_rmf", false]], "read_xspec_model() (gammapy.modeling.models.templatespectralmodel class method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.read_xspec_model", false]], "read_yaml() (in module gammapy.utils.scripts)": [[346, "gammapy.utils.scripts.read_yaml", false]], "reassign() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.reassign", false]], "reassign() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.reassign", false]], "reassign() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.reassign", false]], "reassign() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.reassign", false]], "reassign() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.reassign", false]], "reassign() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.reassign", false]], "reassign() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.reassign", false]], "reassign() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.reassign", false]], "reassign() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.reassign", false]], "reassign() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.reassign", false]], "reassign() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.reassign", false]], "reassign() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.reassign", false]], "reassign() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.reassign", false]], "reassign() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.reassign", false]], "reassign() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.reassign", false]], "reco energy": [[577, "term-Reco-Energy", true]], "recompute_ul() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.recompute_ul", false]], "recopsfmap (class in gammapy.irf)": [[166, "gammapy.irf.RecoPSFMap", false]], "recursive_merge_dicts() (in module gammapy.utils.scripts)": [[347, "gammapy.utils.scripts.recursive_merge_dicts", false]], "redshift (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.redshift", false]], "reduce() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reduce", false]], "reduce() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reduce", false]], "reduce() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reduce", false]], "reduce() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reduce", false]], "reduce() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reduce", false]], "reduce() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reduce", false]], "reduce_over_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reduce_over_axes", false]], "reduce_over_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reduce_over_axes", false]], "reference (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.reference", false]], "reference (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.reference", false]], "reference (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.reference", false]], "reference (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.reference", false]], "reference (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.reference", false]], "reference (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.reference", false]], "reference (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.reference", false]], "reference (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.reference", false]], "reference (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.reference", false]], "reference (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.reference", false]], "reference (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.reference", false]], "reference_fluxes() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.reference_fluxes", false]], "reference_fluxes() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.reference_fluxes", false]], "reference_model (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.reference_model", false]], "reference_model (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.reference_model", false]], "reference_model_default (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.reference_model_default", false]], "reference_model_default (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.reference_model_default", false]], "reference_spectral_model (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.reference_spectral_model", false]], "reference_spectral_model (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.reference_spectral_model", false]], "reference_time (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.reference_time", false]], "reference_time (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.reference_time", false]], "reference_time (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.reference_time", false]], "reflected background": [[577, "term-Reflected-Background", true]], "reflectedregionsbackgroundmaker (class in gammapy.makers)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker", false]], "reflectedregionsfinder (class in gammapy.makers)": [[176, "gammapy.makers.ReflectedRegionsFinder", false]], "region (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.region", false]], "region (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.region", false]], "region_mask() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.region_mask", false]], "region_mask() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.region_mask", false]], "region_to_frame() (in module gammapy.utils.regions)": [[341, "gammapy.utils.regions.region_to_frame", false]], "region_weights() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.region_weights", false]], "regiongeom (class in gammapy.maps)": [[201, "gammapy.maps.RegionGeom", false]], "regionndmap (class in gammapy.maps)": [[202, "gammapy.maps.RegionNDMap", false]], "regions_to_compound_region() (in module gammapy.utils.regions)": [[342, "gammapy.utils.regions.regions_to_compound_region", false]], "regionsfinder (class in gammapy.makers)": [[177, "gammapy.makers.RegionsFinder", false]], "remove() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.remove", false]], "remove() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.remove", false]], "remove() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.remove", false]], "remove_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_column", false]], "remove_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_column", false]], "remove_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_columns", false]], "remove_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_columns", false]], "remove_indices() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_indices", false]], "remove_indices() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_indices", false]], "remove_row() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_row", false]], "remove_row() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_row", false]], "remove_rows() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.remove_rows", false]], "remove_rows() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.remove_rows", false]], "rename() (gammapy.astro.population.casebattacharya1998 class method)": [[28, "gammapy.astro.population.CaseBattacharya1998.rename", false]], "rename() (gammapy.astro.population.exponential class method)": [[29, "gammapy.astro.population.Exponential.rename", false]], "rename() (gammapy.astro.population.faucherkaspi2006 class method)": [[30, "gammapy.astro.population.FaucherKaspi2006.rename", false]], "rename() (gammapy.astro.population.faucherkaspi2006velocitybimodal class method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.rename", false]], "rename() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian class method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.rename", false]], "rename() (gammapy.astro.population.lorimer2006 class method)": [[35, "gammapy.astro.population.Lorimer2006.rename", false]], "rename() (gammapy.astro.population.paczynski1990 class method)": [[36, "gammapy.astro.population.Paczynski1990.rename", false]], "rename() (gammapy.astro.population.paczynski1990velocity class method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.rename", false]], "rename() (gammapy.astro.population.yusifovkucuk2004 class method)": [[39, "gammapy.astro.population.YusifovKucuk2004.rename", false]], "rename() (gammapy.astro.population.yusifovkucuk2004b class method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.rename", false]], "rename() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.rename", false]], "rename_axes() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.rename_axes", false]], "rename_axes() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.rename_axes", false]], "rename_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.rename_axes", false]], "rename_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.rename_axes", false]], "rename_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.rename_axes", false]], "rename_axes() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.rename_axes", false]], "rename_axes() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.rename_axes", false]], "rename_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.rename_axes", false]], "rename_axes() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.rename_axes", false]], "rename_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.rename_axes", false]], "rename_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.rename_axes", false]], "rename_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.rename_column", false]], "rename_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.rename_column", false]], "rename_columns() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.rename_columns", false]], "rename_columns() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.rename_columns", false]], "render() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.render", false]], "render() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.render", false]], "render() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.render", false]], "render() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.render", false]], "render() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.render", false]], "render() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.render", false]], "render() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.render", false]], "render() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.render", false]], "render() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.render", false]], "render() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.render", false]], "reorder_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reorder_axes", false]], "reorder_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reorder_axes", false]], "reorder_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reorder_axes", false]], "replace() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.replace", false]], "replace_axis() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.replace_axis", false]], "replace_axis() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.replace_axis", false]], "replace_axis() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.replace_axis", false]], "replace_axis() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.replace_axis", false]], "replace_column() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.replace_column", false]], "replace_column() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.replace_column", false]], "reproject_by_image() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reproject_by_image", false]], "reproject_by_image() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reproject_by_image", false]], "reproject_to_geom() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.reproject_to_geom", false]], "reproject_to_geom() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.reproject_to_geom", false]], "required_axes (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.required_axes", false]], "required_axes (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.required_axes", false]], "required_axes (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.required_axes", false]], "required_axes (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.required_axes", false]], "required_axes (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.required_axes", false]], "required_axes (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.required_axes", false]], "required_axes (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.required_axes", false]], "required_axes (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.required_axes", false]], "required_axes (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.required_axes", false]], "required_axes (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.required_axes", false]], "required_axes (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.required_axes", false]], "required_axes (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.required_axes", false]], "required_axes (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.required_axes", false]], "required_axes (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.required_axes", false]], "required_axes (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.required_axes", false]], "required_axes (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.required_axes", false]], "required_axes (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.required_axes", false]], "required_parameters (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.required_parameters", false]], "required_parameters (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.required_parameters", false]], "required_parameters (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.required_parameters", false]], "requires_data() (in module gammapy.utils.testing)": [[359, "gammapy.utils.testing.requires_data", false]], "requires_dependency() (in module gammapy.utils.testing)": [[360, "gammapy.utils.testing.requires_dependency", false]], "resample() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.resample", false]], "resample() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.resample", false]], "resample() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.resample", false]], "resample() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.resample", false]], "resample() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.resample", false]], "resample() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.resample", false]], "resample() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.resample", false]], "resample() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.resample", false]], "resample_axis() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.resample_axis", false]], "resample_axis() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.resample_axis", false]], "resample_axis() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.resample_axis", false]], "resample_axis() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.resample_axis", false]], "resample_axis() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.resample_axis", false]], "resample_axis() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.resample_axis", false]], "resample_axis() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.resample_axis", false]], "resample_axis() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.resample_axis", false]], "resample_axis() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.resample_axis", false]], "resample_axis() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.resample_axis", false]], "resample_axis() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.resample_axis", false]], "resample_energy_axis() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.resample_energy_axis", false]], "resample_energy_axis() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.resample_energy_axis", false]], "resample_energy_axis() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.resample_energy_axis", false]], "resample_energy_axis() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.resample_energy_axis", false]], "resample_energy_axis() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.resample_energy_axis", false]], "resample_energy_edges() (in module gammapy.estimators.utils)": [[146, "gammapy.estimators.utils.resample_energy_edges", false]], "reset_data_cache() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.reset_data_cache", false]], "reset_data_cache() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.reset_data_cache", false]], "reset_data_cache() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.reset_data_cache", false]], "reset_data_cache() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.reset_data_cache", false]], "reset_to_default() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.reset_to_default", false]], "residuals() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.residuals", false]], "residuals() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.residuals", false]], "residuals() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.residuals", false]], "residuals() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.residuals", false]], "residuals() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.residuals", false]], "restore_status() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.restore_status", false]], "restore_status() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.restore_status", false]], "restore_status() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.restore_status", false]], "restore_status() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.restore_status", false]], "return_units (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.return_units", false]], "return_units (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.return_units", false]], "return_units (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.return_units", false]], "return_units (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.return_units", false]], "return_units (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.return_units", false]], "return_units (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.return_units", false]], "return_units (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.return_units", false]], "return_units (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.return_units", false]], "return_units (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.return_units", false]], "return_units (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.return_units", false]], "reverse (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.reverse", false]], "reverse() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.reverse", false]], "reverse() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.reverse", false]], "reverse() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.reverse", false]], "reverse() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.reverse", false]], "reverse() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.reverse", false]], "reverse_lon_radec (gammapy.irf.fovalignment attribute)": [[156, "gammapy.irf.FoVAlignment.REVERSE_LON_RADEC", false]], "ring background": [[577, "term-Ring-Background", true]], "ringbackgroundmaker (class in gammapy.makers)": [[178, "gammapy.makers.RingBackgroundMaker", false]], "roi": [[577, "term-RoI", true]], "round() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.round", false]], "round() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.round", false]], "round() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.round", false]], "row_idx() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.row_idx", false]], "row_index (gammapy.catalog.sourcecatalogobject attribute)": [[69, "gammapy.catalog.SourceCatalogObject.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject1lhaaso attribute)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject2fhl attribute)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject2hwc attribute)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject2pc attribute)": [[73, "gammapy.catalog.SourceCatalogObject2PC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3fgl attribute)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3fhl attribute)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3hwc attribute)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject3pc attribute)": [[77, "gammapy.catalog.SourceCatalogObject3PC.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobject4fgl attribute)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobjectgammacat attribute)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobjecthgps attribute)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.row_index", false]], "row_index (gammapy.catalog.sourcecatalogobjecthgpscomponent attribute)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog method)": [[56, "gammapy.catalog.SourceCatalog.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog1lhaaso method)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog2fhl method)": [[58, "gammapy.catalog.SourceCatalog2FHL.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog2hwc method)": [[59, "gammapy.catalog.SourceCatalog2HWC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog2pc method)": [[60, "gammapy.catalog.SourceCatalog2PC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3fgl method)": [[61, "gammapy.catalog.SourceCatalog3FGL.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3fhl method)": [[62, "gammapy.catalog.SourceCatalog3FHL.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3hwc method)": [[63, "gammapy.catalog.SourceCatalog3HWC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog3pc method)": [[64, "gammapy.catalog.SourceCatalog3PC.row_index", false]], "row_index() (gammapy.catalog.sourcecatalog4fgl method)": [[65, "gammapy.catalog.SourceCatalog4FGL.row_index", false]], "row_index() (gammapy.catalog.sourcecataloggammacat method)": [[66, "gammapy.catalog.SourceCatalogGammaCat.row_index", false]], "row_index() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.row_index", false]], "run() (gammapy.data.observationseventssampler method)": [[93, "gammapy.data.ObservationsEventsSampler.run", false]], "run() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.run", false]], "run() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.run", false]], "run() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.run", false]], "run() (gammapy.estimators.energydependentmorphologyestimator method)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.run", false]], "run() (gammapy.estimators.estimator method)": [[121, "gammapy.estimators.Estimator.run", false]], "run() (gammapy.estimators.excessmapestimator method)": [[122, "gammapy.estimators.ExcessMapEstimator.run", false]], "run() (gammapy.estimators.fluxpointsestimator method)": [[126, "gammapy.estimators.FluxPointsEstimator.run", false]], "run() (gammapy.estimators.fluxprofileestimator method)": [[127, "gammapy.estimators.FluxProfileEstimator.run", false]], "run() (gammapy.estimators.imageprofileestimator method)": [[129, "gammapy.estimators.ImageProfileEstimator.run", false]], "run() (gammapy.estimators.lightcurveestimator method)": [[130, "gammapy.estimators.LightCurveEstimator.run", false]], "run() (gammapy.estimators.parameterestimator method)": [[131, "gammapy.estimators.ParameterEstimator.run", false]], "run() (gammapy.estimators.sensitivityestimator method)": [[132, "gammapy.estimators.SensitivityEstimator.run", false]], "run() (gammapy.estimators.tsmapestimator method)": [[133, "gammapy.estimators.TSMapEstimator.run", false]], "run() (gammapy.makers.adaptiveringbackgroundmaker method)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.run", false]], "run() (gammapy.makers.datasetsmaker method)": [[169, "gammapy.makers.DatasetsMaker.run", false]], "run() (gammapy.makers.fovbackgroundmaker method)": [[170, "gammapy.makers.FoVBackgroundMaker.run", false]], "run() (gammapy.makers.maker method)": [[172, "gammapy.makers.Maker.run", false]], "run() (gammapy.makers.mapdatasetmaker method)": [[173, "gammapy.makers.MapDatasetMaker.run", false]], "run() (gammapy.makers.phasebackgroundmaker method)": [[174, "gammapy.makers.PhaseBackgroundMaker.run", false]], "run() (gammapy.makers.reflectedregionsbackgroundmaker method)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker.run", false]], "run() (gammapy.makers.reflectedregionsfinder method)": [[176, "gammapy.makers.ReflectedRegionsFinder.run", false]], "run() (gammapy.makers.regionsfinder method)": [[177, "gammapy.makers.RegionsFinder.run", false]], "run() (gammapy.makers.ringbackgroundmaker method)": [[178, "gammapy.makers.RingBackgroundMaker.run", false]], "run() (gammapy.makers.safemaskmaker method)": [[179, "gammapy.makers.SafeMaskMaker.run", false]], "run() (gammapy.makers.spectrumdatasetmaker method)": [[180, "gammapy.makers.SpectrumDatasetMaker.run", false]], "run() (gammapy.makers.wobbleregionsfinder method)": [[181, "gammapy.makers.WobbleRegionsFinder.run", false]], "run() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.run", false]], "run() (gammapy.utils.testing.checker method)": [[354, "gammapy.utils.testing.Checker.run", false]], "run_fit() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.run_fit", false]], "run_multiprocessing() (in module gammapy.utils.parallel)": [[328, "gammapy.utils.parallel.run_multiprocessing", false]], "safe_mask_maker (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.safe_mask_maker", false]], "safemaskmaker (class in gammapy.makers)": [[179, "gammapy.makers.SafeMaskMaker", false]], "sample() (gammapy.utils.random.inversecdfsampler method)": [[329, "gammapy.utils.random.InverseCDFSampler.sample", false]], "sample_axis() (gammapy.utils.random.inversecdfsampler method)": [[329, "gammapy.utils.random.InverseCDFSampler.sample_axis", false]], "sample_background() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_background", false]], "sample_background() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_background", false]], "sample_coord() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.sample_coord", false]], "sample_coord() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.sample_coord", false]], "sample_coord() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.sample_coord", false]], "sample_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.sample_coord", false]], "sample_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.sample_coord", false]], "sample_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.sample_coord", false]], "sample_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.sample_coord", false]], "sample_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.sample_coord", false]], "sample_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.sample_coord", false]], "sample_edisp() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_edisp", false]], "sample_edisp() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_edisp", false]], "sample_powerlaw() (in module gammapy.utils.random)": [[334, "gammapy.utils.random.sample_powerlaw", false]], "sample_psf() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_psf", false]], "sample_psf() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_psf", false]], "sample_sources() (gammapy.datasets.mapdataseteventsampler method)": [[103, "gammapy.datasets.MapDatasetEventSampler.sample_sources", false]], "sample_sources() (gammapy.datasets.observationeventsampler method)": [[108, "gammapy.datasets.ObservationEventSampler.sample_sources", false]], "sample_sphere() (in module gammapy.utils.random)": [[335, "gammapy.utils.random.sample_sphere", false]], "sample_sphere_distance() (in module gammapy.utils.random)": [[336, "gammapy.utils.random.sample_sphere_distance", false]], "sample_time() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.sample_time", false]], "sample_time() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.sample_time", false]], "sample_times() (in module gammapy.utils.random)": [[337, "gammapy.utils.random.sample_times", false]], "scale (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.scale", false]], "scale (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.scale", false]], "scale (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scale", false]], "scale (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scale", false]], "scale_method (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scale_method", false]], "scale_method (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scale_method", false]], "scale_plot_flux() (in module gammapy.modeling.models)": [[284, "gammapy.modeling.models.scale_plot_flux", false]], "scale_to_local_density() (gammapy.astro.darkmatter.burkertprofile method)": [[17, "gammapy.astro.darkmatter.BurkertProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.dmprofile method)": [[18, "gammapy.astro.darkmatter.DMProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.einastoprofile method)": [[21, "gammapy.astro.darkmatter.EinastoProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.isothermalprofile method)": [[22, "gammapy.astro.darkmatter.IsothermalProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.mooreprofile method)": [[24, "gammapy.astro.darkmatter.MooreProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.nfwprofile method)": [[25, "gammapy.astro.darkmatter.NFWProfile.scale_to_local_density", false]], "scale_to_local_density() (gammapy.astro.darkmatter.zhaoprofile method)": [[27, "gammapy.astro.darkmatter.ZhaoProfile.scale_to_local_density", false]], "scaledregulargridinterpolator (class in gammapy.utils.interpolation)": [[319, "gammapy.utils.interpolation.ScaledRegularGridInterpolator", false]], "scalespectralmodel (class in gammapy.modeling.models)": [[259, "gammapy.modeling.models.ScaleSpectralModel", false]], "scan_max (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_max", false]], "scan_max (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_max", false]], "scan_min (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_min", false]], "scan_min (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_min", false]], "scan_n_sigma (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_n_sigma", false]], "scan_n_sigma (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_n_sigma", false]], "scan_values (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.scan_values", false]], "scan_values (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.scan_values", false]], "schema() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.schema", false]], "schema() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.schema", false]], "schema() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.schema", false]], "schema() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.schema", false]], "schema() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.schema", false]], "schema_json() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.schema_json", false]], "schema_json() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.schema_json", false]], "schema_json() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.schema_json", false]], "schema_json() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.schema_json", false]], "schema_json() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.schema_json", false]], "scipy_mvn (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.scipy_mvn", false]], "sed": [[577, "term-SED", true]], "sed_type_init (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sed_type_init", false]], "sed_type_init (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sed_type_init", false]], "sed_type_plot_default (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sed_type_plot_default", false]], "sed_type_plot_default (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sed_type_plot_default", false]], "sedov_taylor_begin (gammapy.astro.source.snr attribute)": [[52, "gammapy.astro.source.SNR.sedov_taylor_begin", false]], "sedov_taylor_begin (gammapy.astro.source.snrtruelovemckee attribute)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.sedov_taylor_begin", false]], "sedov_taylor_end (gammapy.astro.source.snr attribute)": [[52, "gammapy.astro.source.SNR.sedov_taylor_end", false]], "sedov_taylor_end (gammapy.astro.source.snrtruelovemckee attribute)": [[53, "gammapy.astro.source.SNRTrueloveMcKee.sedov_taylor_end", false]], "select() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select", false]], "select() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select", false]], "select() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.select", false]], "select() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.select", false]], "select_energy() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_energy", false]], "select_from_geom() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select_from_geom", false]], "select_from_geom() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select_from_geom", false]], "select_mask() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_mask", false]], "select_mask() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select_mask", false]], "select_mask() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select_mask", false]], "select_nested_models() (in module gammapy.modeling)": [[286, "gammapy.modeling.select_nested_models", false]], "select_obs_id() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_obs_id", false]], "select_observations() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_observations", false]], "select_offset() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_offset", false]], "select_parameter() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_parameter", false]], "select_rad_max() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_rad_max", false]], "select_range() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_range", false]], "select_region() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_region", false]], "select_region() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.select_region", false]], "select_region() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.select_region", false]], "select_row_subset() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_row_subset", false]], "select_sky_circle() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_sky_circle", false]], "select_time() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.select_time", false]], "select_time() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.select_time", false]], "select_time() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.select_time", false]], "select_time() (gammapy.data.observations method)": [[92, "gammapy.data.Observations.select_time", false]], "select_time() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.select_time", false]], "select_time_range() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.select_time_range", false]], "selection_all (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.selection_all", false]], "selection_all() (gammapy.estimators.asmoothmapestimator method)": [[118, "gammapy.estimators.ASmoothMapEstimator.selection_all", false]], "selection_mask() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.selection_mask", false]], "selection_mask() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.selection_mask", false]], "selection_optional (gammapy.estimators.asmoothmapestimator attribute)": [[118, "gammapy.estimators.ASmoothMapEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.energydependentmorphologyestimator attribute)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.estimator attribute)": [[121, "gammapy.estimators.Estimator.selection_optional", false]], "selection_optional (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.imageprofileestimator attribute)": [[129, "gammapy.estimators.ImageProfileEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.parameterestimator attribute)": [[131, "gammapy.estimators.ParameterEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.sensitivityestimator attribute)": [[132, "gammapy.estimators.SensitivityEstimator.selection_optional", false]], "selection_optional (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.selection_optional", false]], "sensitivityestimator (class in gammapy.estimators)": [[132, "gammapy.estimators.SensitivityEstimator", false]], "separable (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.separable", false]], "separable (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.separable", false]], "separable (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.separable", false]], "separable (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.separable", false]], "separable (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.separable", false]], "separable (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.separable", false]], "separable (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.separable", false]], "separable (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.separable", false]], "separable (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.separable", false]], "separable (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.separable", false]], "separation() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.separation", false]], "separation() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.separation", false]], "separation() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.separation", false]], "set_by_coord() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.set_by_coord", false]], "set_by_coord() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.set_by_coord", false]], "set_by_coord() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.set_by_coord", false]], "set_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.set_by_idx", false]], "set_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.set_by_idx", false]], "set_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.set_by_idx", false]], "set_by_pix() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.set_by_pix", false]], "set_by_pix() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.set_by_pix", false]], "set_by_pix() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.set_by_pix", false]], "set_logging() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.set_logging", false]], "set_models() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.set_models", false]], "set_parameter_factors() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.set_parameter_factors", false]], "set_parameter_factors() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.set_parameter_factors", false]], "set_parameters_bounds() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.set_parameters_bounds", false]], "set_parameters_bounds() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.set_parameters_bounds", false]], "set_prior() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.set_prior", false]], "set_slice_args() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.set_slice_args", false]], "set_slice_args() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.set_slice_args", false]], "set_subcovariance() (gammapy.modeling.covariance method)": [[209, "gammapy.modeling.Covariance.set_subcovariance", false]], "setdefault() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.setdefault", false]], "shape (gammapy.maps.mapaxes attribute)": [[197, "gammapy.maps.MapAxes.shape", false]], "shape (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.shape", false]], "shape (gammapy.modeling.covariance attribute)": [[209, "gammapy.modeling.Covariance.shape", false]], "shape_axes (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.shape_axes", false]], "shape_axes (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.shape_axes", false]], "shell2spatialmodel (class in gammapy.modeling.models)": [[260, "gammapy.modeling.models.Shell2SpatialModel", false]], "shellspatialmodel (class in gammapy.modeling.models)": [[261, "gammapy.modeling.models.ShellSpatialModel", false]], "show_in_browser() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.show_in_browser", false]], "show_in_browser() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.show_in_browser", false]], "show_in_notebook() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.show_in_notebook", false]], "show_in_notebook() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.show_in_notebook", false]], "sigma (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.sigma", false]], "sigma (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.sigma", false]], "sigma (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.sigma", false]], "sigma (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.sigma", false]], "sigma (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.sigma", false]], "sigma (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.sigma", false]], "sigma_1 (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sigma_1", false]], "sigma_2 (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sigma_2", false]], "simplepulsar (class in gammapy.astro.source)": [[54, "gammapy.astro.source.SimplePulsar", false]], "simulate_observation() (gammapy.data.observationseventssampler method)": [[93, "gammapy.data.ObservationsEventsSampler.simulate_observation", false]], "sinetemporalmodel (class in gammapy.modeling.models)": [[262, "gammapy.modeling.models.SineTemporalModel", false]], "size (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.size", false]], "sky_model() (gammapy.catalog.sourcecatalogobject1lhaaso method)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.sky_model", false]], "sky_model() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.sky_model", false]], "sky_to_fov() (in module gammapy.utils.coordinates)": [[313, "gammapy.utils.coordinates.sky_to_fov", false]], "skycoord (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.skycoord", false]], "skymodel (class in gammapy.modeling.models)": [[263, "gammapy.modeling.models.SkyModel", false]], "slice() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.slice", false]], "slice() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.slice", false]], "slice() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.slice", false]], "slice_by_coord() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_coord", false]], "slice_by_coord() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_coord", false]], "slice_by_energy() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.slice_by_energy", false]], "slice_by_energy() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.slice_by_energy", false]], "slice_by_energy() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_energy", false]], "slice_by_energy() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_energy", false]], "slice_by_energy() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.slice_by_energy", false]], "slice_by_idx() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.slice_by_idx", false]], "slice_by_idx() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.slice_by_idx", false]], "slice_by_idx() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.slice_by_idx", false]], "slice_by_idx() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.slice_by_idx", false]], "slice_by_idx() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_idx", false]], "slice_by_idx() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.slice_by_idx", false]], "slice_by_idx() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.slice_by_idx", false]], "slice_by_idx() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.slice_by_idx", false]], "slice_by_time() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.slice_by_time", false]], "slice_by_time() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.slice_by_time", false]], "smooth() (gammapy.estimators.imageprofile method)": [[128, "gammapy.estimators.ImageProfile.smooth", false]], "smooth() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.smooth", false]], "smooth() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.smooth", false]], "smoothbrokenpowerlawspectralmodel (class in gammapy.modeling.models)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel", false]], "snr (class in gammapy.astro.source)": [[52, "gammapy.astro.source.SNR", false]], "snrtruelovemckee (class in gammapy.astro.source)": [[53, "gammapy.astro.source.SNRTrueloveMcKee", false]], "solid_angle() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.solid_angle", false]], "solid_angle() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.solid_angle", false]], "solid_angle() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.solid_angle", false]], "solid_angle() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.solid_angle", false]], "sort() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.sort", false]], "sort() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.sort", false]], "source_name() (gammapy.catalog.sourcecatalog method)": [[56, "gammapy.catalog.SourceCatalog.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog1lhaaso method)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog2fhl method)": [[58, "gammapy.catalog.SourceCatalog2FHL.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog2hwc method)": [[59, "gammapy.catalog.SourceCatalog2HWC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog2pc method)": [[60, "gammapy.catalog.SourceCatalog2PC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3fgl method)": [[61, "gammapy.catalog.SourceCatalog3FGL.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3fhl method)": [[62, "gammapy.catalog.SourceCatalog3FHL.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3hwc method)": [[63, "gammapy.catalog.SourceCatalog3HWC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog3pc method)": [[64, "gammapy.catalog.SourceCatalog3PC.source_name", false]], "source_name() (gammapy.catalog.sourcecatalog4fgl method)": [[65, "gammapy.catalog.SourceCatalog4FGL.source_name", false]], "source_name() (gammapy.catalog.sourcecataloggammacat method)": [[66, "gammapy.catalog.SourceCatalogGammaCat.source_name", false]], "source_name() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.source_name", false]], "sourcecatalog (class in gammapy.catalog)": [[56, "gammapy.catalog.SourceCatalog", false]], "sourcecatalog1lhaaso (class in gammapy.catalog)": [[57, "gammapy.catalog.SourceCatalog1LHAASO", false]], "sourcecatalog2fhl (class in gammapy.catalog)": [[58, "gammapy.catalog.SourceCatalog2FHL", false]], "sourcecatalog2hwc (class in gammapy.catalog)": [[59, "gammapy.catalog.SourceCatalog2HWC", false]], "sourcecatalog2pc (class in gammapy.catalog)": [[60, "gammapy.catalog.SourceCatalog2PC", false]], "sourcecatalog3fgl (class in gammapy.catalog)": [[61, "gammapy.catalog.SourceCatalog3FGL", false]], "sourcecatalog3fhl (class in gammapy.catalog)": [[62, "gammapy.catalog.SourceCatalog3FHL", false]], "sourcecatalog3hwc (class in gammapy.catalog)": [[63, "gammapy.catalog.SourceCatalog3HWC", false]], "sourcecatalog3pc (class in gammapy.catalog)": [[64, "gammapy.catalog.SourceCatalog3PC", false]], "sourcecatalog4fgl (class in gammapy.catalog)": [[65, "gammapy.catalog.SourceCatalog4FGL", false]], "sourcecataloggammacat (class in gammapy.catalog)": [[66, "gammapy.catalog.SourceCatalogGammaCat", false]], "sourcecataloghgps (class in gammapy.catalog)": [[67, "gammapy.catalog.SourceCatalogHGPS", false]], "sourcecataloglargescalehgps (class in gammapy.catalog)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS", false]], "sourcecatalogobject (class in gammapy.catalog)": [[69, "gammapy.catalog.SourceCatalogObject", false]], "sourcecatalogobject1lhaaso (class in gammapy.catalog)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO", false]], "sourcecatalogobject2fhl (class in gammapy.catalog)": [[71, "gammapy.catalog.SourceCatalogObject2FHL", false]], "sourcecatalogobject2hwc (class in gammapy.catalog)": [[72, "gammapy.catalog.SourceCatalogObject2HWC", false]], "sourcecatalogobject2pc (class in gammapy.catalog)": [[73, "gammapy.catalog.SourceCatalogObject2PC", false]], "sourcecatalogobject3fgl (class in gammapy.catalog)": [[74, "gammapy.catalog.SourceCatalogObject3FGL", false]], "sourcecatalogobject3fhl (class in gammapy.catalog)": [[75, "gammapy.catalog.SourceCatalogObject3FHL", false]], "sourcecatalogobject3hwc (class in gammapy.catalog)": [[76, "gammapy.catalog.SourceCatalogObject3HWC", false]], "sourcecatalogobject3pc (class in gammapy.catalog)": [[77, "gammapy.catalog.SourceCatalogObject3PC", false]], "sourcecatalogobject4fgl (class in gammapy.catalog)": [[78, "gammapy.catalog.SourceCatalogObject4FGL", false]], "sourcecatalogobjectgammacat (class in gammapy.catalog)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat", false]], "sourcecatalogobjecthgps (class in gammapy.catalog)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS", false]], "sourcecatalogobjecthgpscomponent (class in gammapy.catalog)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent", false]], "spatial_model (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.spatial_model", false]], "spatial_model (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject1lhaaso method)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.spatial_model", false]], "spatial_model() (gammapy.catalog.sourcecatalogobjecthgpscomponent method)": [[81, "gammapy.catalog.SourceCatalogObjectHGPSComponent.spatial_model", false]], "spatial_model_registry (in module gammapy.modeling.models)": [[257, "gammapy.modeling.models.SPATIAL_MODEL_REGISTRY", false]], "spatialmodel (class in gammapy.modeling.models)": [[265, "gammapy.modeling.models.SpatialModel", false]], "spectral_index() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.spectral_index", false]], "spectral_index() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.spectral_index", false]], "spectral_index() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.spectral_index", false]], "spectral_index() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.spectral_index", false]], "spectral_index() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.spectral_index", false]], "spectral_index_error() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.spectral_index_error", false]], "spectral_index_error() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.spectral_index_error", false]], "spectral_model (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.spectral_model", false]], "spectral_model (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.spectral_model", false]], "spectral_model (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject1lhaaso method)": [[70, "gammapy.catalog.SourceCatalogObject1LHAASO.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject2fhl method)": [[71, "gammapy.catalog.SourceCatalogObject2FHL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject2hwc method)": [[72, "gammapy.catalog.SourceCatalogObject2HWC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject2pc method)": [[73, "gammapy.catalog.SourceCatalogObject2PC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3fgl method)": [[74, "gammapy.catalog.SourceCatalogObject3FGL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3fhl method)": [[75, "gammapy.catalog.SourceCatalogObject3FHL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3hwc method)": [[76, "gammapy.catalog.SourceCatalogObject3HWC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject3pc method)": [[77, "gammapy.catalog.SourceCatalogObject3PC.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobject4fgl method)": [[78, "gammapy.catalog.SourceCatalogObject4FGL.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobjectgammacat method)": [[79, "gammapy.catalog.SourceCatalogObjectGammaCat.spectral_model", false]], "spectral_model() (gammapy.catalog.sourcecatalogobjecthgps method)": [[80, "gammapy.catalog.SourceCatalogObjectHGPS.spectral_model", false]], "spectral_model_registry (in module gammapy.modeling.models)": [[258, "gammapy.modeling.models.SPECTRAL_MODEL_REGISTRY", false]], "spectralmodel (class in gammapy.modeling.models)": [[266, "gammapy.modeling.models.SpectralModel", false]], "spectrumdataset (class in gammapy.datasets)": [[109, "gammapy.datasets.SpectrumDataset", false]], "spectrumdatasetmaker (class in gammapy.makers)": [[180, "gammapy.makers.SpectrumDatasetMaker", false]], "spectrumdatasetonoff (class in gammapy.datasets)": [[110, "gammapy.datasets.SpectrumDatasetOnOff", false]], "spiralarms (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.spiralarms", false]], "spiralarms (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.spiralarms", false]], "split_by_axis() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.split_by_axis", false]], "split_by_axis() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.split_by_axis", false]], "split_by_axis() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.split_by_axis", false]], "split_dataset() (in module gammapy.datasets)": [[115, "gammapy.datasets.split_dataset", false]], "split_dataset() (in module gammapy.datasets.utils)": [[117, "gammapy.datasets.utils.split_dataset", false]], "sqrt_ts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sqrt_ts", false]], "sqrt_ts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sqrt_ts", false]], "sqrt_ts (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.sqrt_ts", false]], "sqrt_ts (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.sqrt_ts", false]], "sqrt_ts_threshold_ul (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.sqrt_ts_threshold_ul", false]], "sqrt_ts_threshold_ul (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.sqrt_ts_threshold_ul", false]], "squash() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.squash", false]], "squash() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.squash", false]], "squash() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.squash", false]], "squash() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.squash", false]], "squash() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.squash", false]], "squash() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.squash", false]], "squash() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.squash", false]], "squash() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.squash", false]], "ssc_model (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.ssc_model", false]], "stack() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.stack", false]], "stack() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.stack", false]], "stack() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.stack", false]], "stack() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.stack", false]], "stack() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.stack", false]], "stack() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.stack", false]], "stack() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stack", false]], "stack() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.stack", false]], "stack() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.stack", false]], "stack() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.stack", false]], "stack() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.stack", false]], "stack() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.stack", false]], "stack() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.stack", false]], "stack() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.stack", false]], "stack() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.stack", false]], "stack() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.stack", false]], "stack_reduce() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.stack_reduce", false]], "standard_broadcasting (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.standard_broadcasting", false]], "standard_broadcasting (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.standard_broadcasting", false]], "standard_scaler() (in module gammapy.utils.cluster)": [[306, "gammapy.utils.cluster.standard_scaler", false]], "standardise_unit() (in module gammapy.utils.units)": [[365, "gammapy.utils.units.standardise_unit", false]], "stat (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.stat", false]], "stat (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.stat", false]], "stat_array() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.stat_array", false]], "stat_array() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.stat_array", false]], "stat_array() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.stat_array", false]], "stat_array() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.stat_array", false]], "stat_array() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.stat_array", false]], "stat_array() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stat_array", false]], "stat_contour() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.stat_contour", false]], "stat_max (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.stat_max", false]], "stat_max (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.stat_max", false]], "stat_null (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.stat_null", false]], "stat_null (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.stat_null", false]], "stat_null (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.stat_null", false]], "stat_null (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.stat_null", false]], "stat_profile() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.stat_profile", false]], "stat_profile_ul_scipy() (in module gammapy.modeling)": [[287, "gammapy.modeling.stat_profile_ul_scipy", false]], "stat_scan (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.stat_scan", false]], "stat_scan (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.stat_scan", false]], "stat_sum() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.stat_sum", false]], "stat_sum() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.stat_sum", false]], "stat_sum() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.stat_sum", false]], "stat_sum() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.stat_sum", false]], "stat_sum() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.stat_sum", false]], "stat_sum() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.stat_sum", false]], "stat_sum() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stat_sum", false]], "stat_surface() (gammapy.modeling.fit method)": [[211, "gammapy.modeling.Fit.stat_surface", false]], "stat_type (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.stat_type", false]], "stat_type (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.stat_type", false]], "stat_type (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.stat_type", false]], "stat_type (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.stat_type", false]], "stat_type (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.stat_type", false]], "stds (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.stds", false]], "stds (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.stds", false]], "stds (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.stds", false]], "stds (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.stds", false]], "stds (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.stds", false]], "stds (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.stds", false]], "stds (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.stds", false]], "stds (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.stds", false]], "stds (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.stds", false]], "stds (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.stds", false]], "strip_units_from_tree() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.strip_units_from_tree", false]], "strip_units_from_tree() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.strip_units_from_tree", false]], "structure_function() (in module gammapy.stats)": [[303, "gammapy.stats.structure_function", false]], "success (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.success", false]], "success (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.success", false]], "success (gammapy.modeling.covarianceresult attribute)": [[210, "gammapy.modeling.CovarianceResult.success", false]], "success (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.success", false]], "success (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.success", false]], "sum() (gammapy.stats.cashcountsstatistic method)": [[288, "gammapy.stats.CashCountsStatistic.sum", false]], "sum() (gammapy.stats.wstatcountsstatistic method)": [[290, "gammapy.stats.WStatCountsStatistic.sum", false]], "sum_of_implicit_terms() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.sum_of_implicit_terms", false]], "sum_of_implicit_terms() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.sum_of_implicit_terms", false]], "sum_over_axes() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.sum_over_axes", false]], "sum_over_axes() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.sum_over_axes", false]], "summary() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.summary", false]], "summary() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.summary", false]], "superexpcutoffpowerlaw3fglspectralmodel (class in gammapy.modeling.models)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel", false]], "superexpcutoffpowerlaw4fgldr3spectralmodel (class in gammapy.modeling.models)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel", false]], "superexpcutoffpowerlaw4fglspectralmodel (class in gammapy.modeling.models)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel", false]], "sync_constraints (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.sync_constraints", false]], "sync_constraints (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.sync_constraints", false]], "sync_constraints (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.sync_constraints", false]], "sync_constraints (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.sync_constraints", false]], "sync_constraints (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.sync_constraints", false]], "sync_constraints (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.sync_constraints", false]], "sync_constraints (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.sync_constraints", false]], "sync_constraints (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.sync_constraints", false]], "sync_constraints (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.sync_constraints", false]], "sync_constraints (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.sync_constraints", false]], "t0 (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.t0", false]], "t0 (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.t0", false]], "t_decay (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.t_decay", false]], "t_ref (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.t_ref", false]], "t_ref (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.t_ref", false]], "t_rise (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.t_rise", false]], "table_associations (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_associations", false]], "table_components (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_components", false]], "table_filename (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.table_filename", false]], "table_identifications (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_identifications", false]], "table_large_scale_component (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.table_large_scale_component", false]], "table_row_to_dict() (in module gammapy.utils.table)": [[351, "gammapy.utils.table.table_row_to_dict", false]], "table_standardise_units_copy() (in module gammapy.utils.table)": [[352, "gammapy.utils.table.table_standardise_units_copy", false]], "table_standardise_units_inplace() (in module gammapy.utils.table)": [[353, "gammapy.utils.table.table_standardise_units_inplace", false]], "tag (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.tag", false]], "tag (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.tag", false]], "tag (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.tag", false]], "tag (gammapy.catalog.sourcecatalog attribute)": [[56, "gammapy.catalog.SourceCatalog.tag", false]], "tag (gammapy.catalog.sourcecatalog1lhaaso attribute)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.tag", false]], "tag (gammapy.catalog.sourcecatalog2fhl attribute)": [[58, "gammapy.catalog.SourceCatalog2FHL.tag", false]], "tag (gammapy.catalog.sourcecatalog2hwc attribute)": [[59, "gammapy.catalog.SourceCatalog2HWC.tag", false]], "tag (gammapy.catalog.sourcecatalog2pc attribute)": [[60, "gammapy.catalog.SourceCatalog2PC.tag", false]], "tag (gammapy.catalog.sourcecatalog3fgl attribute)": [[61, "gammapy.catalog.SourceCatalog3FGL.tag", false]], "tag (gammapy.catalog.sourcecatalog3fhl attribute)": [[62, "gammapy.catalog.SourceCatalog3FHL.tag", false]], "tag (gammapy.catalog.sourcecatalog3hwc attribute)": [[63, "gammapy.catalog.SourceCatalog3HWC.tag", false]], "tag (gammapy.catalog.sourcecatalog3pc attribute)": [[64, "gammapy.catalog.SourceCatalog3PC.tag", false]], "tag (gammapy.catalog.sourcecatalog4fgl attribute)": [[65, "gammapy.catalog.SourceCatalog4FGL.tag", false]], "tag (gammapy.catalog.sourcecataloggammacat attribute)": [[66, "gammapy.catalog.SourceCatalogGammaCat.tag", false]], "tag (gammapy.catalog.sourcecataloghgps attribute)": [[67, "gammapy.catalog.SourceCatalogHGPS.tag", false]], "tag (gammapy.data.eventlistmetadata attribute)": [[84, "gammapy.data.EventListMetaData.tag", false]], "tag (gammapy.data.observationmetadata attribute)": [[90, "gammapy.data.ObservationMetaData.tag", false]], "tag (gammapy.datasets.dataset attribute)": [[99, "gammapy.datasets.Dataset.tag", false]], "tag (gammapy.datasets.fluxpointsdataset attribute)": [[101, "gammapy.datasets.FluxPointsDataset.tag", false]], "tag (gammapy.datasets.mapdataset attribute)": [[102, "gammapy.datasets.MapDataset.tag", false]], "tag (gammapy.datasets.mapdatasetmetadata attribute)": [[104, "gammapy.datasets.MapDatasetMetaData.tag", false]], "tag (gammapy.datasets.mapdatasetonoff attribute)": [[105, "gammapy.datasets.MapDatasetOnOff.tag", false]], "tag (gammapy.datasets.ogipdatasetreader attribute)": [[106, "gammapy.datasets.OGIPDatasetReader.tag", false]], "tag (gammapy.datasets.ogipdatasetwriter attribute)": [[107, "gammapy.datasets.OGIPDatasetWriter.tag", false]], "tag (gammapy.datasets.spectrumdataset attribute)": [[109, "gammapy.datasets.SpectrumDataset.tag", false]], "tag (gammapy.datasets.spectrumdatasetonoff attribute)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.tag", false]], "tag (gammapy.estimators.asmoothmapestimator attribute)": [[118, "gammapy.estimators.ASmoothMapEstimator.tag", false]], "tag (gammapy.estimators.energydependentmorphologyestimator attribute)": [[120, "gammapy.estimators.EnergyDependentMorphologyEstimator.tag", false]], "tag (gammapy.estimators.estimator attribute)": [[121, "gammapy.estimators.Estimator.tag", false]], "tag (gammapy.estimators.excessmapestimator attribute)": [[122, "gammapy.estimators.ExcessMapEstimator.tag", false]], "tag (gammapy.estimators.fluxmetadata attribute)": [[124, "gammapy.estimators.FluxMetaData.tag", false]], "tag (gammapy.estimators.fluxpointsestimator attribute)": [[126, "gammapy.estimators.FluxPointsEstimator.tag", false]], "tag (gammapy.estimators.fluxprofileestimator attribute)": [[127, "gammapy.estimators.FluxProfileEstimator.tag", false]], "tag (gammapy.estimators.imageprofileestimator attribute)": [[129, "gammapy.estimators.ImageProfileEstimator.tag", false]], "tag (gammapy.estimators.lightcurveestimator attribute)": [[130, "gammapy.estimators.LightCurveEstimator.tag", false]], "tag (gammapy.estimators.parameterestimator attribute)": [[131, "gammapy.estimators.ParameterEstimator.tag", false]], "tag (gammapy.estimators.sensitivityestimator attribute)": [[132, "gammapy.estimators.SensitivityEstimator.tag", false]], "tag (gammapy.estimators.tsmapestimator attribute)": [[133, "gammapy.estimators.TSMapEstimator.tag", false]], "tag (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.tag", false]], "tag (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.tag", false]], "tag (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.tag", false]], "tag (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.tag", false]], "tag (gammapy.irf.edispkernelmap attribute)": [[151, "gammapy.irf.EDispKernelMap.tag", false]], "tag (gammapy.irf.edispmap attribute)": [[152, "gammapy.irf.EDispMap.tag", false]], "tag (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.tag", false]], "tag (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.tag", false]], "tag (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.tag", false]], "tag (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.tag", false]], "tag (gammapy.irf.irfmap attribute)": [[158, "gammapy.irf.IRFMap.tag", false]], "tag (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.tag", false]], "tag (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.tag", false]], "tag (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.tag", false]], "tag (gammapy.irf.psfmap attribute)": [[163, "gammapy.irf.PSFMap.tag", false]], "tag (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.tag", false]], "tag (gammapy.irf.recopsfmap attribute)": [[166, "gammapy.irf.RecoPSFMap.tag", false]], "tag (gammapy.makers.adaptiveringbackgroundmaker attribute)": [[168, "gammapy.makers.AdaptiveRingBackgroundMaker.tag", false]], "tag (gammapy.makers.datasetsmaker attribute)": [[169, "gammapy.makers.DatasetsMaker.tag", false]], "tag (gammapy.makers.fovbackgroundmaker attribute)": [[170, "gammapy.makers.FoVBackgroundMaker.tag", false]], "tag (gammapy.makers.maker attribute)": [[172, "gammapy.makers.Maker.tag", false]], "tag (gammapy.makers.mapdatasetmaker attribute)": [[173, "gammapy.makers.MapDatasetMaker.tag", false]], "tag (gammapy.makers.phasebackgroundmaker attribute)": [[174, "gammapy.makers.PhaseBackgroundMaker.tag", false]], "tag (gammapy.makers.reflectedregionsbackgroundmaker attribute)": [[175, "gammapy.makers.ReflectedRegionsBackgroundMaker.tag", false]], "tag (gammapy.makers.ringbackgroundmaker attribute)": [[178, "gammapy.makers.RingBackgroundMaker.tag", false]], "tag (gammapy.makers.safemaskmaker attribute)": [[179, "gammapy.makers.SafeMaskMaker.tag", false]], "tag (gammapy.makers.spectrumdatasetmaker attribute)": [[180, "gammapy.makers.SpectrumDatasetMaker.tag", false]], "tag (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.tag", false]], "tag (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.tag", false]], "tag (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.tag", false]], "tag (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.tag", false]], "tag (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.tag", false]], "tag (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.tag", false]], "tag (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.tag", false]], "tag (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.tag", false]], "tag (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.tag", false]], "tag (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.tag", false]], "tag (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.tag", false]], "tag (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.tag", false]], "tag (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.tag", false]], "tag (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.tag", false]], "tag (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.tag", false]], "tag (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.tag", false]], "tag (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.tag", false]], "tag (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.tag", false]], "tag (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.tag", false]], "tag (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.tag", false]], "tag (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.tag", false]], "tag (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.tag", false]], "tag (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.tag", false]], "tag (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.tag", false]], "tag (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.tag", false]], "tag (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.tag", false]], "tag (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.tag", false]], "tag (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.tag", false]], "tag (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.tag", false]], "tag (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.tag", false]], "tag (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.tag", false]], "tag (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.tag", false]], "tag (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.tag", false]], "tag (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.tag", false]], "tag (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.tag", false]], "tag (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.tag", false]], "tag (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.tag", false]], "tag (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.tag", false]], "tag (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.tag", false]], "tag (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.tag", false]], "tag (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.tag", false]], "tag (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.tag", false]], "tag (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.tag", false]], "tag (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.tag", false]], "tag (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.tag", false]], "tag (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.tag", false]], "target_radec (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.target_radec", false]], "tau (gammapy.astro.source.simplepulsar attribute)": [[54, "gammapy.astro.source.SimplePulsar.tau", false]], "tau() (gammapy.astro.source.pulsar method)": [[51, "gammapy.astro.source.Pulsar.tau", false]], "templatendspatialmodel (class in gammapy.modeling.models)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel", false]], "templatendspectralmodel (class in gammapy.modeling.models)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel", false]], "templatenpredmodel (class in gammapy.modeling.models)": [[273, "gammapy.modeling.models.TemplateNPredModel", false]], "templatephasecurvetemporalmodel (class in gammapy.modeling.models)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel", false]], "templatespatialmodel (class in gammapy.modeling.models)": [[275, "gammapy.modeling.models.TemplateSpatialModel", false]], "templatespectralmodel (class in gammapy.modeling.models)": [[276, "gammapy.modeling.models.TemplateSpectralModel", false]], "temporal_model (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.temporal_model", false]], "temporal_model_registry (in module gammapy.modeling.models)": [[270, "gammapy.modeling.models.TEMPORAL_MODEL_REGISTRY", false]], "temporalmodel (class in gammapy.modeling.models)": [[277, "gammapy.modeling.models.TemporalModel", false]], "thermal_relic_cross_section (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.THERMAL_RELIC_CROSS_SECTION", false]], "theta (gammapy.maps.mapcoord attribute)": [[199, "gammapy.maps.MapCoord.theta", false]], "theta() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.theta", false]], "theta() (gammapy.astro.population.logspiral method)": [[34, "gammapy.astro.population.LogSpiral.theta", false]], "theta() (gammapy.astro.population.valleespiral method)": [[38, "gammapy.astro.population.ValleeSpiral.theta", false]], "theta_0 (gammapy.astro.population.faucherspiral attribute)": [[33, "gammapy.astro.population.FaucherSpiral.theta_0", false]], "theta_0 (gammapy.astro.population.valleespiral attribute)": [[38, "gammapy.astro.population.ValleeSpiral.theta_0", false]], "tied (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.tied", false]], "tied (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.tied", false]], "tied (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.tied", false]], "tied (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.tied", false]], "tied (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.tied", false]], "tied (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.tied", false]], "tied (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.tied", false]], "tied (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.tied", false]], "tied (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.tied", false]], "tied (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.tied", false]], "tilt (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.tilt", false]], "time (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.time", false]], "time (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.time", false]], "time_bounds (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_bounds", false]], "time_delta (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_delta", false]], "time_delta (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_delta", false]], "time_edges (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_edges", false]], "time_format (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_format", false]], "time_intervals (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_intervals", false]], "time_max (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_max", false]], "time_mid (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_mid", false]], "time_min (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.time_min", false]], "time_ref (gammapy.data.eventlist attribute)": [[83, "gammapy.data.EventList.time_ref", false]], "time_ref (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_ref", false]], "time_ref (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.time_ref", false]], "time_ref (gammapy.data.pointinginfo attribute)": [[94, "gammapy.data.PointingInfo.time_ref", false]], "time_ref_from_dict() (in module gammapy.utils.time)": [[362, "gammapy.utils.time.time_ref_from_dict", false]], "time_ref_to_dict() (in module gammapy.utils.time)": [[363, "gammapy.utils.time.time_ref_to_dict", false]], "time_relative_to_ref() (in module gammapy.utils.time)": [[364, "gammapy.utils.time.time_relative_to_ref", false]], "time_start (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_start", false]], "time_start (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.time_start", false]], "time_stop (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_stop", false]], "time_stop (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.time_stop", false]], "time_sum (gammapy.data.gti attribute)": [[86, "gammapy.data.GTI.time_sum", false]], "time_sum() (gammapy.modeling.models.constanttemporalmodel static method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.expdecaytemporalmodel static method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.gaussiantemporalmodel static method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.generalizedgaussiantemporalmodel static method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.lightcurvetemplatetemporalmodel static method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.lineartemporalmodel static method)": [[240, "gammapy.modeling.models.LinearTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.powerlawtemporalmodel static method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.sinetemporalmodel static method)": [[262, "gammapy.modeling.models.SineTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.templatephasecurvetemporalmodel static method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.time_sum", false]], "time_sum() (gammapy.modeling.models.temporalmodel static method)": [[277, "gammapy.modeling.models.TemporalModel.time_sum", false]], "timemapaxis (class in gammapy.maps)": [[203, "gammapy.maps.TimeMapAxis", false]], "timmerkonig_lightcurve_simulator() (in module gammapy.stats)": [[289, "gammapy.stats.TimmerKonig_lightcurve_simulator", false]], "tmid (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.tmid", false]], "to_2d() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_2d", false]], "to_3d() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_3d", false]], "to_bands_hdu() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.to_bands_hdu", false]], "to_bands_hdu() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_bands_hdu", false]], "to_bands_hdu() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_bands_hdu", false]], "to_bands_hdu() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_bands_hdu", false]], "to_binsz() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_binsz", false]], "to_binsz() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_binsz", false]], "to_binsz() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_binsz", false]], "to_binsz_wcs() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_binsz_wcs", false]], "to_contiguous() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_contiguous", false]], "to_counts_hdulist() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.to_counts_hdulist", false]], "to_cube() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.to_cube", false]], "to_cube() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_cube", false]], "to_cube() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_cube", false]], "to_cube() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_cube", false]], "to_cube() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.to_cube", false]], "to_cube() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_cube", false]], "to_cube() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_cube", false]], "to_cube() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_cube", false]], "to_cube() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_cube", false]], "to_cube() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_cube", false]], "to_dict() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.to_dict", false]], "to_dict() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.to_dict", false]], "to_dict() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.to_dict", false]], "to_dict() (gammapy.datasets.dataset method)": [[99, "gammapy.datasets.Dataset.to_dict", false]], "to_dict() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.to_dict", false]], "to_dict() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_dict", false]], "to_dict() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_dict", false]], "to_dict() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_dict", false]], "to_dict() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_dict", false]], "to_dict() (gammapy.modeling.covarianceresult method)": [[210, "gammapy.modeling.CovarianceResult.to_dict", false]], "to_dict() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_dict", false]], "to_dict() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.to_dict", false]], "to_dict() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_dict", false]], "to_dict() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.to_dict", false]], "to_dict() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.to_dict", false]], "to_dict() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.to_dict", false]], "to_dict() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.to_dict", false]], "to_dict() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.to_dict", false]], "to_dict() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.to_dict", false]], "to_dict() (gammapy.modeling.optimizeresult method)": [[213, "gammapy.modeling.OptimizeResult.to_dict", false]], "to_dict() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.to_dict", false]], "to_dict() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.to_dict", false]], "to_dict() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.to_dict", false]], "to_dict() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.to_dict", false]], "to_edisp_kernel() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_edisp_kernel", false]], "to_edisp_kernel_map() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.to_edisp_kernel_map", false]], "to_even_npix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_even_npix", false]], "to_fits_header() (gammapy.data.fixedpointinginfo method)": [[85, "gammapy.data.FixedPointingInfo.to_fits_header", false]], "to_frame() (gammapy.maps.mapcoord method)": [[199, "gammapy.maps.MapCoord.to_frame", false]], "to_gti() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_gti", false]], "to_hdu() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_hdu", false]], "to_hdu() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_hdu", false]], "to_hdu() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_hdu", false]], "to_hdu() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_hdu", false]], "to_hdulist() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_hdulist", false]], "to_hdulist() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_hdulist", false]], "to_hdulist() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_hdulist", false]], "to_hdulist() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_hdulist", false]], "to_hdulist() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.to_hdulist", false]], "to_hdulist() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.to_hdulist", false]], "to_hdulist() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_hdulist", false]], "to_hdulist() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_hdulist", false]], "to_hdulist() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_hdulist", false]], "to_hdulist() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_hdulist", false]], "to_hdulist() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_hdulist", false]], "to_hdulist() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_hdulist", false]], "to_hdulist() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_hdulist", false]], "to_hdulist() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_hdulist", false]], "to_hdulist() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.to_hdulist", false]], "to_hdulist() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_hdulist", false]], "to_hdulist() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.to_hdulist", false]], "to_hdulist() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_hdulist", false]], "to_hdulist() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_hdulist", false]], "to_hdulist() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_hdulist", false]], "to_header() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.to_header", false]], "to_header() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.to_header", false]], "to_header() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.to_header", false]], "to_header() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.to_header", false]], "to_header() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_header", false]], "to_header() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.to_header", false]], "to_header() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.to_header", false]], "to_header() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_header", false]], "to_header() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_header", false]], "to_header() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_header", false]], "to_image() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_image", false]], "to_image() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_image", false]], "to_image() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_image", false]], "to_image() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_image", false]], "to_image() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_image", false]], "to_image() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.to_image", false]], "to_image() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.to_image", false]], "to_image() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.to_image", false]], "to_image() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.to_image", false]], "to_image() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.to_image", false]], "to_image() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_image", false]], "to_image() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_image", false]], "to_image() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_image", false]], "to_map_dataset() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_map_dataset", false]], "to_map_dataset() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_map_dataset", false]], "to_maps() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.to_maps", false]], "to_maps() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.to_maps", false]], "to_masked() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_masked", false]], "to_masked() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_masked", false]], "to_masked() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_masked", false]], "to_masked() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_masked", false]], "to_models() (gammapy.catalog.sourcecatalog method)": [[56, "gammapy.catalog.SourceCatalog.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog1lhaaso method)": [[57, "gammapy.catalog.SourceCatalog1LHAASO.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog2fhl method)": [[58, "gammapy.catalog.SourceCatalog2FHL.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog2hwc method)": [[59, "gammapy.catalog.SourceCatalog2HWC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog2pc method)": [[60, "gammapy.catalog.SourceCatalog2PC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3fgl method)": [[61, "gammapy.catalog.SourceCatalog3FGL.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3fhl method)": [[62, "gammapy.catalog.SourceCatalog3FHL.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3hwc method)": [[63, "gammapy.catalog.SourceCatalog3HWC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog3pc method)": [[64, "gammapy.catalog.SourceCatalog3PC.to_models", false]], "to_models() (gammapy.catalog.sourcecatalog4fgl method)": [[65, "gammapy.catalog.SourceCatalog4FGL.to_models", false]], "to_models() (gammapy.catalog.sourcecataloggammacat method)": [[66, "gammapy.catalog.SourceCatalogGammaCat.to_models", false]], "to_models() (gammapy.catalog.sourcecataloghgps method)": [[67, "gammapy.catalog.SourceCatalogHGPS.to_models", false]], "to_node_type() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_node_type", false]], "to_nside() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_nside", false]], "to_nside() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_nside", false]], "to_odd_npix() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.to_odd_npix", false]], "to_pandas() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.to_pandas", false]], "to_pandas() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.to_pandas", false]], "to_parameters_table() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_parameters_table", false]], "to_parameters_table() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_parameters_table", false]], "to_psf3d() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_psf3d", false]], "to_psf3d() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_psf3d", false]], "to_psf3d() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_psf3d", false]], "to_region() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.to_region", false]], "to_region() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.to_region", false]], "to_region_map_dataset() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_region_map_dataset", false]], "to_region_map_dataset() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_region_map_dataset", false]], "to_region_map_dataset() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_region_map_dataset", false]], "to_region_map_dataset() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_region_map_dataset", false]], "to_region_nd_map() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_region_nd_map", false]], "to_region_nd_map() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_region_nd_map", false]], "to_region_nd_map_histogram() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_region_nd_map_histogram", false]], "to_regions() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_regions", false]], "to_regions() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_regions", false]], "to_spectrum_dataset() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.to_spectrum_dataset", false]], "to_spectrum_dataset() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.to_spectrum_dataset", false]], "to_spectrum_dataset() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.to_spectrum_dataset", false]], "to_spectrum_dataset() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.to_spectrum_dataset", false]], "to_spectrum_datasets() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.to_spectrum_datasets", false]], "to_swapped() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_swapped", false]], "to_swapped() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_swapped", false]], "to_swapped() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_swapped", false]], "to_table() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.to_table", false]], "to_table() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_table", false]], "to_table() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_table", false]], "to_table() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_table", false]], "to_table() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_table", false]], "to_table() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_table", false]], "to_table() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_table", false]], "to_table() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_table", false]], "to_table() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_table", false]], "to_table() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_table", false]], "to_table() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_table", false]], "to_table() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_table", false]], "to_table() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_table", false]], "to_table() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.to_table", false]], "to_table() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_table", false]], "to_table() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_table", false]], "to_table() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.to_table", false]], "to_table() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.to_table", false]], "to_table() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.to_table", false]], "to_table() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.to_table", false]], "to_table_hdu() (gammapy.data.eventlist method)": [[83, "gammapy.data.EventList.to_table_hdu", false]], "to_table_hdu() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_table_hdu", false]], "to_table_hdu() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_table_hdu", false]], "to_table_hdu() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.to_table_hdu", false]], "to_table_hdu() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.to_table_hdu", false]], "to_template_sky_model() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_template_sky_model", false]], "to_template_sky_model() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_template_sky_model", false]], "to_template_spectral_model() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_template_spectral_model", false]], "to_template_spectral_model() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_template_spectral_model", false]], "to_unit() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.to_unit", false]], "to_unit() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.to_unit", false]], "to_unit() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.to_unit", false]], "to_unit() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.to_unit", false]], "to_unit() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.to_unit", false]], "to_unit() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.to_unit", false]], "to_unit() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.to_unit", false]], "to_unit() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.to_unit", false]], "to_unit() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.to_unit", false]], "to_unit() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.to_unit", false]], "to_unit() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.to_unit", false]], "to_unit() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.to_unit", false]], "to_unit() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_unit", false]], "to_unit() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_unit", false]], "to_unit() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.to_unit", false]], "to_unit() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.to_unit", false]], "to_unit() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.to_unit", false]], "to_unit() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.to_unit", false]], "to_wcs() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.to_wcs", false]], "to_wcs() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_wcs", false]], "to_wcs_geom() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_wcs_geom", false]], "to_wcs_geom() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.to_wcs_geom", false]], "to_wcs_tiles() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.to_wcs_tiles", false]], "to_wcs_tiles() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.to_wcs_tiles", false]], "to_yaml() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.to_yaml", false]], "to_yaml() (gammapy.data.eventlistmetadata method)": [[84, "gammapy.data.EventListMetaData.to_yaml", false]], "to_yaml() (gammapy.data.observationmetadata method)": [[90, "gammapy.data.ObservationMetaData.to_yaml", false]], "to_yaml() (gammapy.datasets.mapdatasetmetadata method)": [[104, "gammapy.datasets.MapDatasetMetaData.to_yaml", false]], "to_yaml() (gammapy.estimators.fluxmetadata method)": [[124, "gammapy.estimators.FluxMetaData.to_yaml", false]], "to_yaml() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.to_yaml", false]], "to_yaml() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.to_yaml", false]], "to_yaml() (in module gammapy.utils.scripts)": [[348, "gammapy.utils.scripts.to_yaml", false]], "total_stat (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.total_stat", false]], "total_stat (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.total_stat", false]], "trace (gammapy.modeling.fitresult attribute)": [[212, "gammapy.modeling.FitResult.trace", false]], "trace (gammapy.modeling.optimizeresult attribute)": [[213, "gammapy.modeling.OptimizeResult.trace", false]], "trapz_loglog() (in module gammapy.utils.integrate)": [[318, "gammapy.utils.integrate.trapz_loglog", false]], "ts (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.ts", false]], "ts (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.ts", false]], "ts (gammapy.stats.cashcountsstatistic attribute)": [[288, "gammapy.stats.CashCountsStatistic.ts", false]], "ts (gammapy.stats.wstatcountsstatistic attribute)": [[290, "gammapy.stats.WStatCountsStatistic.ts", false]], "ts_scan (gammapy.estimators.fluxmaps attribute)": [[123, "gammapy.estimators.FluxMaps.ts_scan", false]], "ts_scan (gammapy.estimators.fluxpoints attribute)": [[125, "gammapy.estimators.FluxPoints.ts_scan", false]], "tsmapestimator (class in gammapy.estimators)": [[133, "gammapy.estimators.TSMapEstimator", false]], "tstart (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.tstart", false]], "tstop (gammapy.data.observation attribute)": [[88, "gammapy.data.Observation.tstop", false]], "type (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel attribute)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.type", false]], "type (gammapy.astro.darkmatter.darkmatterdecayspectralmodel attribute)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.type", false]], "type (gammapy.astro.darkmatter.primaryflux attribute)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.type", false]], "type (gammapy.modeling.models.brokenpowerlawspectralmodel attribute)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.compoundspectralmodel attribute)": [[219, "gammapy.modeling.models.CompoundSpectralModel.type", false]], "type (gammapy.modeling.models.constantfluxspatialmodel attribute)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.type", false]], "type (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.type", false]], "type (gammapy.modeling.models.constantspectralmodel attribute)": [[222, "gammapy.modeling.models.ConstantSpectralModel.type", false]], "type (gammapy.modeling.models.constanttemporalmodel attribute)": [[223, "gammapy.modeling.models.ConstantTemporalModel.type", false]], "type (gammapy.modeling.models.diskspatialmodel attribute)": [[225, "gammapy.modeling.models.DiskSpatialModel.type", false]], "type (gammapy.modeling.models.eblabsorptionnormspectralmodel attribute)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.type", false]], "type (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel attribute)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.type", false]], "type (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel attribute)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.type", false]], "type (gammapy.modeling.models.expcutoffpowerlawspectralmodel attribute)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.expdecaytemporalmodel attribute)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.type", false]], "type (gammapy.modeling.models.fovbackgroundmodel attribute)": [[232, "gammapy.modeling.models.FoVBackgroundModel.type", false]], "type (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.type", false]], "type (gammapy.modeling.models.gaussianspatialmodel attribute)": [[234, "gammapy.modeling.models.GaussianSpatialModel.type", false]], "type (gammapy.modeling.models.gaussianspectralmodel attribute)": [[235, "gammapy.modeling.models.GaussianSpectralModel.type", false]], "type (gammapy.modeling.models.gaussiantemporalmodel attribute)": [[236, "gammapy.modeling.models.GaussianTemporalModel.type", false]], "type (gammapy.modeling.models.generalizedgaussianspatialmodel attribute)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.type", false]], "type (gammapy.modeling.models.generalizedgaussiantemporalmodel attribute)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.type", false]], "type (gammapy.modeling.models.lightcurvetemplatetemporalmodel attribute)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.type", false]], "type (gammapy.modeling.models.lineartemporalmodel attribute)": [[240, "gammapy.modeling.models.LinearTemporalModel.type", false]], "type (gammapy.modeling.models.logparabolanormspectralmodel attribute)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.type", false]], "type (gammapy.modeling.models.logparabolaspectralmodel attribute)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.type", false]], "type (gammapy.modeling.models.meyercrabspectralmodel attribute)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.type", false]], "type (gammapy.modeling.models.modelbase attribute)": [[246, "gammapy.modeling.models.ModelBase.type", false]], "type (gammapy.modeling.models.naimaspectralmodel attribute)": [[248, "gammapy.modeling.models.NaimaSpectralModel.type", false]], "type (gammapy.modeling.models.piecewisenormspatialmodel attribute)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.type", false]], "type (gammapy.modeling.models.piecewisenormspectralmodel attribute)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.type", false]], "type (gammapy.modeling.models.pointspatialmodel attribute)": [[251, "gammapy.modeling.models.PointSpatialModel.type", false]], "type (gammapy.modeling.models.powerlaw2spectralmodel attribute)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.type", false]], "type (gammapy.modeling.models.powerlawnormspectralmodel attribute)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.type", false]], "type (gammapy.modeling.models.powerlawspectralmodel attribute)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.powerlawtemporalmodel attribute)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.type", false]], "type (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.type", false]], "type (gammapy.modeling.models.scalespectralmodel attribute)": [[259, "gammapy.modeling.models.ScaleSpectralModel.type", false]], "type (gammapy.modeling.models.shell2spatialmodel attribute)": [[260, "gammapy.modeling.models.Shell2SpatialModel.type", false]], "type (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.type", false]], "type (gammapy.modeling.models.sinetemporalmodel attribute)": [[262, "gammapy.modeling.models.SineTemporalModel.type", false]], "type (gammapy.modeling.models.skymodel attribute)": [[263, "gammapy.modeling.models.SkyModel.type", false]], "type (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel attribute)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.type", false]], "type (gammapy.modeling.models.spatialmodel attribute)": [[265, "gammapy.modeling.models.SpatialModel.type", false]], "type (gammapy.modeling.models.spectralmodel attribute)": [[266, "gammapy.modeling.models.SpectralModel.type", false]], "type (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel attribute)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.type", false]], "type (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel attribute)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.type", false]], "type (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel attribute)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.type", false]], "type (gammapy.modeling.models.templatendspatialmodel attribute)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.type", false]], "type (gammapy.modeling.models.templatendspectralmodel attribute)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.type", false]], "type (gammapy.modeling.models.templatenpredmodel attribute)": [[273, "gammapy.modeling.models.TemplateNPredModel.type", false]], "type (gammapy.modeling.models.templatephasecurvetemporalmodel attribute)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.type", false]], "type (gammapy.modeling.models.templatespatialmodel attribute)": [[275, "gammapy.modeling.models.TemplateSpatialModel.type", false]], "type (gammapy.modeling.models.templatespectralmodel attribute)": [[276, "gammapy.modeling.models.TemplateSpectralModel.type", false]], "type (gammapy.modeling.models.temporalmodel attribute)": [[277, "gammapy.modeling.models.TemporalModel.type", false]], "type (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.type", false]], "type (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.type", false]], "type (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.type", false]], "types (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.types", false]], "types (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.types", false]], "unfreeze() (gammapy.astro.darkmatter.darkmatterannihilationspectralmodel method)": [[19, "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel.unfreeze", false]], "unfreeze() (gammapy.astro.darkmatter.darkmatterdecayspectralmodel method)": [[20, "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel.unfreeze", false]], "unfreeze() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.unfreeze", false]], "unfreeze() (gammapy.modeling.models.brokenpowerlawspectralmodel method)": [[218, "gammapy.modeling.models.BrokenPowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.compoundspectralmodel method)": [[219, "gammapy.modeling.models.CompoundSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constantfluxspatialmodel method)": [[220, "gammapy.modeling.models.ConstantFluxSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constantspatialmodel method)": [[221, "gammapy.modeling.models.ConstantSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constantspectralmodel method)": [[222, "gammapy.modeling.models.ConstantSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.constanttemporalmodel method)": [[223, "gammapy.modeling.models.ConstantTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.unfreeze", false]], "unfreeze() (gammapy.modeling.models.diskspatialmodel method)": [[225, "gammapy.modeling.models.DiskSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.eblabsorptionnormspectralmodel method)": [[226, "gammapy.modeling.models.EBLAbsorptionNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expcutoffpowerlaw3fglspectralmodel method)": [[228, "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expcutoffpowerlawnormspectralmodel method)": [[229, "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expcutoffpowerlawspectralmodel method)": [[230, "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.expdecaytemporalmodel method)": [[231, "gammapy.modeling.models.ExpDecayTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.fovbackgroundmodel method)": [[232, "gammapy.modeling.models.FoVBackgroundModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussianprior method)": [[233, "gammapy.modeling.models.GaussianPrior.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussianspatialmodel method)": [[234, "gammapy.modeling.models.GaussianSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussianspectralmodel method)": [[235, "gammapy.modeling.models.GaussianSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.gaussiantemporalmodel method)": [[236, "gammapy.modeling.models.GaussianTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.generalizedgaussianspatialmodel method)": [[237, "gammapy.modeling.models.GeneralizedGaussianSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.generalizedgaussiantemporalmodel method)": [[238, "gammapy.modeling.models.GeneralizedGaussianTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.lineartemporalmodel method)": [[240, "gammapy.modeling.models.LinearTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.logparabolanormspectralmodel method)": [[241, "gammapy.modeling.models.LogParabolaNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.logparabolaspectralmodel method)": [[242, "gammapy.modeling.models.LogParabolaSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.meyercrabspectralmodel method)": [[244, "gammapy.modeling.models.MeyerCrabSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.modelbase method)": [[246, "gammapy.modeling.models.ModelBase.unfreeze", false]], "unfreeze() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.unfreeze", false]], "unfreeze() (gammapy.modeling.models.naimaspectralmodel method)": [[248, "gammapy.modeling.models.NaimaSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.piecewisenormspatialmodel method)": [[249, "gammapy.modeling.models.PiecewiseNormSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.piecewisenormspectralmodel method)": [[250, "gammapy.modeling.models.PiecewiseNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.pointspatialmodel method)": [[251, "gammapy.modeling.models.PointSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlaw2spectralmodel method)": [[252, "gammapy.modeling.models.PowerLaw2SpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlawnormspectralmodel method)": [[253, "gammapy.modeling.models.PowerLawNormSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlawspectralmodel method)": [[254, "gammapy.modeling.models.PowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.powerlawtemporalmodel method)": [[255, "gammapy.modeling.models.PowerLawTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.prior method)": [[256, "gammapy.modeling.models.Prior.unfreeze", false]], "unfreeze() (gammapy.modeling.models.scalespectralmodel method)": [[259, "gammapy.modeling.models.ScaleSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.shell2spatialmodel method)": [[260, "gammapy.modeling.models.Shell2SpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.shellspatialmodel method)": [[261, "gammapy.modeling.models.ShellSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.sinetemporalmodel method)": [[262, "gammapy.modeling.models.SineTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.skymodel method)": [[263, "gammapy.modeling.models.SkyModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.smoothbrokenpowerlawspectralmodel method)": [[264, "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.spatialmodel method)": [[265, "gammapy.modeling.models.SpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.spectralmodel method)": [[266, "gammapy.modeling.models.SpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.superexpcutoffpowerlaw3fglspectralmodel method)": [[267, "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fgldr3spectralmodel method)": [[268, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.superexpcutoffpowerlaw4fglspectralmodel method)": [[269, "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.templatespectralmodel method)": [[276, "gammapy.modeling.models.TemplateSpectralModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.temporalmodel method)": [[277, "gammapy.modeling.models.TemporalModel.unfreeze", false]], "unfreeze() (gammapy.modeling.models.uniformprior method)": [[278, "gammapy.modeling.models.UniformPrior.unfreeze", false]], "unfreeze_all() (gammapy.modeling.parameters method)": [[215, "gammapy.modeling.Parameters.unfreeze_all", false]], "unfreeze_all() (gammapy.modeling.priorparameters method)": [[217, "gammapy.modeling.PriorParameters.unfreeze_all", false]], "uniformprior (class in gammapy.modeling.models)": [[278, "gammapy.modeling.models.UniformPrior", false]], "union() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.union", false]], "union() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.union", false]], "unique_parameters (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.unique_parameters", false]], "unique_parameters (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.unique_parameters", false]], "unit (gammapy.irf.background2d attribute)": [[147, "gammapy.irf.Background2D.unit", false]], "unit (gammapy.irf.background3d attribute)": [[148, "gammapy.irf.Background3D.unit", false]], "unit (gammapy.irf.backgroundirf attribute)": [[149, "gammapy.irf.BackgroundIRF.unit", false]], "unit (gammapy.irf.edispkernel attribute)": [[150, "gammapy.irf.EDispKernel.unit", false]], "unit (gammapy.irf.effectiveareatable2d attribute)": [[153, "gammapy.irf.EffectiveAreaTable2D.unit", false]], "unit (gammapy.irf.energydependentmultigausspsf attribute)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.unit", false]], "unit (gammapy.irf.energydispersion2d attribute)": [[155, "gammapy.irf.EnergyDispersion2D.unit", false]], "unit (gammapy.irf.irf attribute)": [[157, "gammapy.irf.IRF.unit", false]], "unit (gammapy.irf.parametricpsf attribute)": [[164, "gammapy.irf.ParametricPSF.unit", false]], "unit (gammapy.irf.psf3d attribute)": [[160, "gammapy.irf.PSF3D.unit", false]], "unit (gammapy.irf.psfking attribute)": [[162, "gammapy.irf.PSFKing.unit", false]], "unit (gammapy.irf.radmax2d attribute)": [[165, "gammapy.irf.RadMax2D.unit", false]], "unit (gammapy.maps.hpxmap attribute)": [[193, "gammapy.maps.HpxMap.unit", false]], "unit (gammapy.maps.hpxndmap attribute)": [[194, "gammapy.maps.HpxNDMap.unit", false]], "unit (gammapy.maps.labelmapaxis attribute)": [[195, "gammapy.maps.LabelMapAxis.unit", false]], "unit (gammapy.maps.map attribute)": [[196, "gammapy.maps.Map.unit", false]], "unit (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.unit", false]], "unit (gammapy.maps.regionndmap attribute)": [[202, "gammapy.maps.RegionNDMap.unit", false]], "unit (gammapy.maps.timemapaxis attribute)": [[203, "gammapy.maps.TimeMapAxis.unit", false]], "unit (gammapy.maps.wcsmap attribute)": [[205, "gammapy.maps.WcsMap.unit", false]], "unit (gammapy.maps.wcsndmap attribute)": [[206, "gammapy.maps.WcsNDMap.unit", false]], "unit (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.unit", false]], "unit (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.unit", false]], "unit_from_fits_image_hdu() (in module gammapy.utils.units)": [[366, "gammapy.utils.units.unit_from_fits_image_hdu", false]], "update() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.update", false]], "update() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.update", false]], "update() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.update", false]], "update() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.update", false]], "update_config() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.update_config", false]], "update_forward_refs() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.update_forward_refs", false]], "update_forward_refs() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.update_forward_refs", false]], "update_forward_refs() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.update_forward_refs", false]], "update_forward_refs() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.update_forward_refs", false]], "update_forward_refs() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.update_forward_refs", false]], "update_from_dict() (gammapy.modeling.parameter method)": [[214, "gammapy.modeling.Parameter.update_from_dict", false]], "update_from_dict() (gammapy.modeling.priorparameter method)": [[216, "gammapy.modeling.PriorParameter.update_from_dict", false]], "update_link_label() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.update_link_label", false]], "update_link_label() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.update_link_label", false]], "update_parameters_from_table() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.update_parameters_from_table", false]], "update_parameters_from_table() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.update_parameters_from_table", false]], "upsample() (gammapy.maps.geom method)": [[191, "gammapy.maps.Geom.upsample", false]], "upsample() (gammapy.maps.hpxgeom method)": [[192, "gammapy.maps.HpxGeom.upsample", false]], "upsample() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.upsample", false]], "upsample() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.upsample", false]], "upsample() (gammapy.maps.labelmapaxis method)": [[195, "gammapy.maps.LabelMapAxis.upsample", false]], "upsample() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.upsample", false]], "upsample() (gammapy.maps.mapaxes method)": [[197, "gammapy.maps.MapAxes.upsample", false]], "upsample() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.upsample", false]], "upsample() (gammapy.maps.regiongeom method)": [[201, "gammapy.maps.RegionGeom.upsample", false]], "upsample() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.upsample", false]], "upsample() (gammapy.maps.timemapaxis method)": [[203, "gammapy.maps.TimeMapAxis.upsample", false]], "upsample() (gammapy.maps.wcsgeom method)": [[204, "gammapy.maps.WcsGeom.upsample", false]], "upsample() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.upsample", false]], "upsample() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.upsample", false]], "use_center_as_plot_labels (gammapy.maps.mapaxis attribute)": [[198, "gammapy.maps.MapAxis.use_center_as_plot_labels", false]], "uses_quantity (gammapy.astro.population.casebattacharya1998 attribute)": [[28, "gammapy.astro.population.CaseBattacharya1998.uses_quantity", false]], "uses_quantity (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.uses_quantity", false]], "uses_quantity (gammapy.astro.population.faucherkaspi2006 attribute)": [[30, "gammapy.astro.population.FaucherKaspi2006.uses_quantity", false]], "uses_quantity (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.uses_quantity", false]], "uses_quantity (gammapy.astro.population.faucherkaspi2006velocitymaxwellian attribute)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.uses_quantity", false]], "uses_quantity (gammapy.astro.population.lorimer2006 attribute)": [[35, "gammapy.astro.population.Lorimer2006.uses_quantity", false]], "uses_quantity (gammapy.astro.population.paczynski1990 attribute)": [[36, "gammapy.astro.population.Paczynski1990.uses_quantity", false]], "uses_quantity (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.uses_quantity", false]], "uses_quantity (gammapy.astro.population.yusifovkucuk2004 attribute)": [[39, "gammapy.astro.population.YusifovKucuk2004.uses_quantity", false]], "uses_quantity (gammapy.astro.population.yusifovkucuk2004b attribute)": [[40, "gammapy.astro.population.YusifovKucuk2004B.uses_quantity", false]], "v_0 (gammapy.astro.population.paczynski1990velocity attribute)": [[37, "gammapy.astro.population.Paczynski1990Velocity.v_0", false]], "valid_hdu_class (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.VALID_HDU_CLASS", false]], "valid_hdu_type (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.VALID_HDU_TYPE", false]], "validate() (gammapy.analysis.analysisconfig class method)": [[16, "gammapy.analysis.AnalysisConfig.validate", false]], "validate() (gammapy.data.eventlistmetadata class method)": [[84, "gammapy.data.EventListMetaData.validate", false]], "validate() (gammapy.data.observationmetadata class method)": [[90, "gammapy.data.ObservationMetaData.validate", false]], "validate() (gammapy.datasets.mapdatasetmetadata class method)": [[104, "gammapy.datasets.MapDatasetMetaData.validate", false]], "validate() (gammapy.estimators.fluxmetadata class method)": [[124, "gammapy.estimators.FluxMetaData.validate", false]], "valleespiral (class in gammapy.astro.population)": [[38, "gammapy.astro.population.ValleeSpiral", false]], "value (gammapy.modeling.models.constantspatialmodel attribute)": [[221, "gammapy.modeling.models.ConstantSpatialModel.value", false]], "value (gammapy.modeling.parameter attribute)": [[214, "gammapy.modeling.Parameter.value", false]], "value (gammapy.modeling.parameters attribute)": [[215, "gammapy.modeling.Parameters.value", false]], "value (gammapy.modeling.priorparameter attribute)": [[216, "gammapy.modeling.PriorParameter.value", false]], "value (gammapy.modeling.priorparameters attribute)": [[217, "gammapy.modeling.PriorParameters.value", false]], "values() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.values", false]], "values() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.values", false]], "values() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.values", false]], "values_equal() (gammapy.data.hduindextable method)": [[87, "gammapy.data.HDUIndexTable.values_equal", false]], "values_equal() (gammapy.data.observationtable method)": [[91, "gammapy.data.ObservationTable.values_equal", false]], "velocity_distributions (in module gammapy.astro.population)": [[49, "gammapy.astro.population.velocity_distributions", false]], "velocity_glon_glat() (in module gammapy.utils.coordinates)": [[314, "gammapy.utils.coordinates.velocity_glon_glat", false]], "w (gammapy.astro.population.faucherkaspi2006velocitybimodal attribute)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.w", false]], "wcs (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.wcs", false]], "wcs (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.wcs", false]], "wcs_geom (gammapy.modeling.models.datasetmodels attribute)": [[224, "gammapy.modeling.models.DatasetModels.wcs_geom", false]], "wcs_geom (gammapy.modeling.models.models attribute)": [[247, "gammapy.modeling.models.Models.wcs_geom", false]], "wcsgeom (class in gammapy.maps)": [[204, "gammapy.maps.WcsGeom", false]], "wcsmap (class in gammapy.maps)": [[205, "gammapy.maps.WcsMap", false]], "wcsndmap (class in gammapy.maps)": [[206, "gammapy.maps.WcsNDMap", false]], "weight (gammapy.modeling.models.gaussianprior attribute)": [[233, "gammapy.modeling.models.GaussianPrior.weight", false]], "weight (gammapy.modeling.models.prior attribute)": [[256, "gammapy.modeling.models.Prior.weight", false]], "weight (gammapy.modeling.models.uniformprior attribute)": [[278, "gammapy.modeling.models.UniformPrior.weight", false]], "width (gammapy.maps.hpxgeom attribute)": [[192, "gammapy.maps.HpxGeom.width", false]], "width (gammapy.maps.regiongeom attribute)": [[201, "gammapy.maps.RegionGeom.width", false]], "width (gammapy.maps.wcsgeom attribute)": [[204, "gammapy.maps.WcsGeom.width", false]], "width (gammapy.modeling.models.shellspatialmodel attribute)": [[261, "gammapy.modeling.models.ShellSpatialModel.width", false]], "width() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.width", false]], "width_error() (gammapy.catalog.sourcecataloglargescalehgps method)": [[68, "gammapy.catalog.SourceCatalogLargeScaleHGPS.width_error", false]], "with_units_from_data() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.with_units_from_data", false]], "with_units_from_data() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.with_units_from_data", false]], "without_units_for_data() (gammapy.astro.population.casebattacharya1998 method)": [[28, "gammapy.astro.population.CaseBattacharya1998.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.exponential method)": [[29, "gammapy.astro.population.Exponential.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.faucherkaspi2006 method)": [[30, "gammapy.astro.population.FaucherKaspi2006.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.faucherkaspi2006velocitybimodal method)": [[31, "gammapy.astro.population.FaucherKaspi2006VelocityBimodal.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.faucherkaspi2006velocitymaxwellian method)": [[32, "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.lorimer2006 method)": [[35, "gammapy.astro.population.Lorimer2006.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.paczynski1990 method)": [[36, "gammapy.astro.population.Paczynski1990.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.paczynski1990velocity method)": [[37, "gammapy.astro.population.Paczynski1990Velocity.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.yusifovkucuk2004 method)": [[39, "gammapy.astro.population.YusifovKucuk2004.without_units_for_data", false]], "without_units_for_data() (gammapy.astro.population.yusifovkucuk2004b method)": [[40, "gammapy.astro.population.YusifovKucuk2004B.without_units_for_data", false]], "wobbleregionsfinder (class in gammapy.makers)": [[181, "gammapy.makers.WobbleRegionsFinder", false]], "wrap_coord() (gammapy.maps.mapaxis method)": [[198, "gammapy.maps.MapAxis.wrap_coord", false]], "write (gammapy.data.hduindextable attribute)": [[87, "gammapy.data.HDUIndexTable.write", false]], "write (gammapy.data.observationtable attribute)": [[91, "gammapy.data.ObservationTable.write", false]], "write() (gammapy.analysis.analysisconfig method)": [[16, "gammapy.analysis.AnalysisConfig.write", false]], "write() (gammapy.astro.darkmatter.primaryflux method)": [[26, "gammapy.astro.darkmatter.PrimaryFlux.write", false]], "write() (gammapy.data.gti method)": [[86, "gammapy.data.GTI.write", false]], "write() (gammapy.data.observation method)": [[88, "gammapy.data.Observation.write", false]], "write() (gammapy.datasets.datasets method)": [[100, "gammapy.datasets.Datasets.write", false]], "write() (gammapy.datasets.fluxpointsdataset method)": [[101, "gammapy.datasets.FluxPointsDataset.write", false]], "write() (gammapy.datasets.mapdataset method)": [[102, "gammapy.datasets.MapDataset.write", false]], "write() (gammapy.datasets.mapdatasetonoff method)": [[105, "gammapy.datasets.MapDatasetOnOff.write", false]], "write() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write", false]], "write() (gammapy.datasets.spectrumdataset method)": [[109, "gammapy.datasets.SpectrumDataset.write", false]], "write() (gammapy.datasets.spectrumdatasetonoff method)": [[110, "gammapy.datasets.SpectrumDatasetOnOff.write", false]], "write() (gammapy.estimators.fluxmaps method)": [[123, "gammapy.estimators.FluxMaps.write", false]], "write() (gammapy.estimators.fluxpoints method)": [[125, "gammapy.estimators.FluxPoints.write", false]], "write() (gammapy.irf.background2d method)": [[147, "gammapy.irf.Background2D.write", false]], "write() (gammapy.irf.background3d method)": [[148, "gammapy.irf.Background3D.write", false]], "write() (gammapy.irf.backgroundirf method)": [[149, "gammapy.irf.BackgroundIRF.write", false]], "write() (gammapy.irf.edispkernel method)": [[150, "gammapy.irf.EDispKernel.write", false]], "write() (gammapy.irf.edispkernelmap method)": [[151, "gammapy.irf.EDispKernelMap.write", false]], "write() (gammapy.irf.edispmap method)": [[152, "gammapy.irf.EDispMap.write", false]], "write() (gammapy.irf.effectiveareatable2d method)": [[153, "gammapy.irf.EffectiveAreaTable2D.write", false]], "write() (gammapy.irf.energydependentmultigausspsf method)": [[154, "gammapy.irf.EnergyDependentMultiGaussPSF.write", false]], "write() (gammapy.irf.energydispersion2d method)": [[155, "gammapy.irf.EnergyDispersion2D.write", false]], "write() (gammapy.irf.irf method)": [[157, "gammapy.irf.IRF.write", false]], "write() (gammapy.irf.irfmap method)": [[158, "gammapy.irf.IRFMap.write", false]], "write() (gammapy.irf.parametricpsf method)": [[164, "gammapy.irf.ParametricPSF.write", false]], "write() (gammapy.irf.psf3d method)": [[160, "gammapy.irf.PSF3D.write", false]], "write() (gammapy.irf.psfkernel method)": [[161, "gammapy.irf.PSFKernel.write", false]], "write() (gammapy.irf.psfking method)": [[162, "gammapy.irf.PSFKing.write", false]], "write() (gammapy.irf.psfmap method)": [[163, "gammapy.irf.PSFMap.write", false]], "write() (gammapy.irf.radmax2d method)": [[165, "gammapy.irf.RadMax2D.write", false]], "write() (gammapy.irf.recopsfmap method)": [[166, "gammapy.irf.RecoPSFMap.write", false]], "write() (gammapy.maps.hpxmap method)": [[193, "gammapy.maps.HpxMap.write", false]], "write() (gammapy.maps.hpxndmap method)": [[194, "gammapy.maps.HpxNDMap.write", false]], "write() (gammapy.maps.map method)": [[196, "gammapy.maps.Map.write", false]], "write() (gammapy.maps.maps method)": [[200, "gammapy.maps.Maps.write", false]], "write() (gammapy.maps.regionndmap method)": [[202, "gammapy.maps.RegionNDMap.write", false]], "write() (gammapy.maps.wcsmap method)": [[205, "gammapy.maps.WcsMap.write", false]], "write() (gammapy.maps.wcsndmap method)": [[206, "gammapy.maps.WcsNDMap.write", false]], "write() (gammapy.modeling.fitresult method)": [[212, "gammapy.modeling.FitResult.write", false]], "write() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.write", false]], "write() (gammapy.modeling.models.lightcurvetemplatetemporalmodel method)": [[239, "gammapy.modeling.models.LightCurveTemplateTemporalModel.write", false]], "write() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.write", false]], "write() (gammapy.modeling.models.templatendspatialmodel method)": [[271, "gammapy.modeling.models.TemplateNDSpatialModel.write", false]], "write() (gammapy.modeling.models.templatendspectralmodel method)": [[272, "gammapy.modeling.models.TemplateNDSpectralModel.write", false]], "write() (gammapy.modeling.models.templatenpredmodel method)": [[273, "gammapy.modeling.models.TemplateNPredModel.write", false]], "write() (gammapy.modeling.models.templatephasecurvetemporalmodel method)": [[274, "gammapy.modeling.models.TemplatePhaseCurveTemporalModel.write", false]], "write() (gammapy.modeling.models.templatespatialmodel method)": [[275, "gammapy.modeling.models.TemplateSpatialModel.write", false]], "write_arf() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_arf", false]], "write_bkg() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_bkg", false]], "write_covariance() (gammapy.modeling.models.datasetmodels method)": [[224, "gammapy.modeling.models.DatasetModels.write_covariance", false]], "write_covariance() (gammapy.modeling.models.models method)": [[247, "gammapy.modeling.models.Models.write_covariance", false]], "write_datasets() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.write_datasets", false]], "write_models() (gammapy.analysis.analysis method)": [[15, "gammapy.analysis.Analysis.write_models", false]], "write_pha() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_pha", false]], "write_rmf() (gammapy.datasets.ogipdatasetwriter method)": [[107, "gammapy.datasets.OGIPDatasetWriter.write_rmf", false]], "write_yaml() (in module gammapy.utils.scripts)": [[349, "gammapy.utils.scripts.write_yaml", false]], "wstat() (in module gammapy.stats)": [[304, "gammapy.stats.wstat", false]], "wstatcountsstatistic (class in gammapy.stats)": [[290, "gammapy.stats.WStatCountsStatistic", false]], "x_max (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.x_max", false]], "x_min (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.x_min", false]], "x_ref (gammapy.estimators.imageprofile attribute)": [[128, "gammapy.estimators.ImageProfile.x_ref", false]], "xy_position() (gammapy.astro.population.faucherspiral method)": [[33, "gammapy.astro.population.FaucherSpiral.xy_position", false]], "xy_position() (gammapy.astro.population.logspiral method)": [[34, "gammapy.astro.population.LogSpiral.xy_position", false]], "xy_position() (gammapy.astro.population.valleespiral method)": [[38, "gammapy.astro.population.ValleeSpiral.xy_position", false]], "yusifovkucuk2004 (class in gammapy.astro.population)": [[39, "gammapy.astro.population.YusifovKucuk2004", false]], "yusifovkucuk2004b (class in gammapy.astro.population)": [[40, "gammapy.astro.population.YusifovKucuk2004B", false]], "z_0 (gammapy.astro.population.exponential attribute)": [[29, "gammapy.astro.population.Exponential.z_0", false]], "zhaoprofile (class in gammapy.astro.darkmatter)": [[27, "gammapy.astro.darkmatter.ZhaoProfile", false]]}, "objects": {"gammapy": [[0, 0, 0, "-", "analysis"], [2, 0, 0, "-", "catalog"], [3, 0, 0, "-", "data"], [4, 0, 0, "-", "datasets"], [5, 0, 0, "-", "estimators"], [7, 0, 0, "-", "irf"], [8, 0, 0, "-", "makers"], [9, 0, 0, "-", "maps"], [10, 0, 0, "-", "modeling"], [12, 0, 0, "-", "stats"], [14, 0, 0, "-", "visualization"], [11, 6, 1, "cmdoption-gammapy-ignore-warnings", "--ignore-warnings"], [11, 6, 1, "cmdoption-gammapy-log-level", "--log-level"], [11, 6, 1, "cmdoption-gammapy-version", "--version"]], "gammapy-analysis-config": [[11, 6, 1, "cmdoption-gammapy-analysis-config-filename", "--filename"], [11, 6, 1, "cmdoption-gammapy-analysis-config-overwrite", "--overwrite"]], "gammapy-analysis-run": [[11, 6, 1, "cmdoption-gammapy-analysis-run-filename", "--filename"], [11, 6, 1, "cmdoption-gammapy-analysis-run-out", "--out"], [11, 6, 1, "cmdoption-gammapy-analysis-run-overwrite", "--overwrite"]], "gammapy-download-datasets": [[11, 6, 1, "cmdoption-gammapy-download-datasets-out", "--out"], [11, 6, 1, "cmdoption-gammapy-download-datasets-release", "--release"]], "gammapy-download-notebooks": [[11, 6, 1, "cmdoption-gammapy-download-notebooks-out", "--out"], [11, 6, 1, "cmdoption-gammapy-download-notebooks-release", "--release"]], "gammapy-info": [[11, 6, 1, "cmdoption-gammapy-info-dependencies", "--dependencies"], [11, 6, 1, "cmdoption-gammapy-info-envvar", "--envvar"], [11, 6, 1, "cmdoption-gammapy-info-dependencies", "--no-dependencies"], [11, 6, 1, "cmdoption-gammapy-info-envvar", "--no-envvar"], [11, 6, 1, "cmdoption-gammapy-info-system", "--no-system"], [11, 6, 1, "cmdoption-gammapy-info-version", "--no-version"], [11, 6, 1, "cmdoption-gammapy-info-system", "--system"], [11, 6, 1, "cmdoption-gammapy-info-version", "--version"]], "gammapy-workflow-config": [[11, 6, 1, "cmdoption-gammapy-workflow-config-filename", "--filename"], [11, 6, 1, "cmdoption-gammapy-workflow-config-overwrite", "--overwrite"]], "gammapy-workflow-run": [[11, 6, 1, "cmdoption-gammapy-workflow-run-filename", "--filename"]], "gammapy.analysis": [[15, 1, 1, "", "Analysis"], [16, 1, 1, "", "AnalysisConfig"]], "gammapy.analysis.Analysis": [[15, 2, 1, "", "config"], [15, 3, 1, "", "get_datasets"], [15, 3, 1, "", "get_excess_map"], [15, 3, 1, "", "get_flux_points"], [15, 3, 1, "", "get_light_curve"], [15, 3, 1, "", "get_observations"], [15, 2, 1, "", "models"], [15, 3, 1, "", "read_datasets"], [15, 3, 1, "", "read_models"], [15, 3, 1, "", "run_fit"], [15, 3, 1, "", "set_models"], [15, 3, 1, "", "update_config"], [15, 3, 1, "", "write_datasets"], [15, 3, 1, "", "write_models"]], "gammapy.analysis.AnalysisConfig": [[16, 3, 1, "", "construct"], [16, 3, 1, "", "copy"], [16, 3, 1, "", "dict"], [16, 3, 1, "", "from_orm"], [16, 3, 1, "", "from_yaml"], [16, 3, 1, "", "json"], [16, 2, 1, "", "model_computed_fields"], [16, 2, 1, "", "model_config"], [16, 3, 1, "", "model_construct"], [16, 3, 1, "", "model_copy"], [16, 3, 1, "", "model_dump"], [16, 3, 1, "", "model_dump_json"], [16, 2, 1, "", "model_extra"], [16, 2, 1, "", "model_fields"], [16, 2, 1, "", "model_fields_set"], [16, 3, 1, "", "model_json_schema"], [16, 3, 1, "", "model_parametrized_name"], [16, 3, 1, "", "model_post_init"], [16, 3, 1, "", "model_rebuild"], [16, 3, 1, "", "model_validate"], [16, 3, 1, "", "model_validate_json"], [16, 3, 1, "", "model_validate_strings"], [16, 3, 1, "", "parse_file"], [16, 3, 1, "", "parse_obj"], [16, 3, 1, "", "parse_raw"], [16, 3, 1, "", "read"], [16, 3, 1, "", "schema"], [16, 3, 1, "", "schema_json"], [16, 3, 1, "", "set_logging"], [16, 3, 1, "", "to_yaml"], [16, 3, 1, "", "update"], [16, 3, 1, "", "update_forward_refs"], [16, 3, 1, "", "validate"], [16, 3, 1, "", "write"]], "gammapy.astro": [[1, 0, 0, "-", "darkmatter"], [1, 0, 0, "-", "population"], [1, 0, 0, "-", "source"]], "gammapy.astro.darkmatter": [[17, 1, 1, "", "BurkertProfile"], [18, 1, 1, "", "DMProfile"], [19, 1, 1, "", "DarkMatterAnnihilationSpectralModel"], [20, 1, 1, "", "DarkMatterDecaySpectralModel"], [21, 1, 1, "", "EinastoProfile"], [22, 1, 1, "", "IsothermalProfile"], [23, 1, 1, "", "JFactory"], [24, 1, 1, "", "MooreProfile"], [25, 1, 1, "", "NFWProfile"], [26, 1, 1, "", "PrimaryFlux"], [27, 1, 1, "", "ZhaoProfile"]], "gammapy.astro.darkmatter.BurkertProfile": [[17, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [17, 2, 1, "", "DISTANCE_GC"], [17, 2, 1, "", "LOCAL_DENSITY"], [17, 3, 1, "", "__call__"], [17, 3, 1, "", "evaluate"], [17, 3, 1, "", "integral"], [17, 3, 1, "", "integrate_spectrum_separation"], [17, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.DMProfile": [[18, 2, 1, "", "DISTANCE_GC"], [18, 2, 1, "", "LOCAL_DENSITY"], [18, 3, 1, "", "__call__"], [18, 3, 1, "", "integral"], [18, 3, 1, "", "integrate_spectrum_separation"], [18, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.DarkMatterAnnihilationSpectralModel": [[19, 2, 1, "", "THERMAL_RELIC_CROSS_SECTION"], [19, 3, 1, "", "__call__"], [19, 3, 1, "", "copy"], [19, 2, 1, "", "covariance"], [19, 2, 1, "", "default_parameters"], [19, 3, 1, "", "energy_flux"], [19, 3, 1, "", "energy_flux_error"], [19, 3, 1, "", "evaluate"], [19, 3, 1, "", "evaluate_error"], [19, 3, 1, "", "freeze"], [19, 3, 1, "", "from_dict"], [19, 3, 1, "", "from_parameters"], [19, 2, 1, "", "frozen"], [19, 3, 1, "", "integral"], [19, 3, 1, "", "integral_error"], [19, 3, 1, "", "inverse"], [19, 3, 1, "", "inverse_all"], [19, 2, 1, "", "is_norm_spectral_model"], [19, 2, 1, "", "parameters"], [19, 2, 1, "", "parameters_unique_names"], [19, 2, 1, "", "pivot_energy"], [19, 3, 1, "", "plot"], [19, 3, 1, "", "plot_error"], [19, 3, 1, "", "reassign"], [19, 3, 1, "", "reference_fluxes"], [19, 2, 1, "", "scale"], [19, 3, 1, "", "spectral_index"], [19, 3, 1, "", "spectral_index_error"], [19, 2, 1, "", "tag"], [19, 3, 1, "", "to_dict"], [19, 2, 1, "", "type"], [19, 3, 1, "", "unfreeze"]], "gammapy.astro.darkmatter.DarkMatterDecaySpectralModel": [[20, 2, 1, "", "LIFETIME_AGE_OF_UNIVERSE"], [20, 3, 1, "", "__call__"], [20, 3, 1, "", "copy"], [20, 2, 1, "", "covariance"], [20, 2, 1, "", "default_parameters"], [20, 3, 1, "", "energy_flux"], [20, 3, 1, "", "energy_flux_error"], [20, 3, 1, "", "evaluate"], [20, 3, 1, "", "evaluate_error"], [20, 3, 1, "", "freeze"], [20, 3, 1, "", "from_dict"], [20, 3, 1, "", "from_parameters"], [20, 2, 1, "", "frozen"], [20, 3, 1, "", "integral"], [20, 3, 1, "", "integral_error"], [20, 3, 1, "", "inverse"], [20, 3, 1, "", "inverse_all"], [20, 2, 1, "", "is_norm_spectral_model"], [20, 2, 1, "", "parameters"], [20, 2, 1, "", "parameters_unique_names"], [20, 2, 1, "", "pivot_energy"], [20, 3, 1, "", "plot"], [20, 3, 1, "", "plot_error"], [20, 3, 1, "", "reassign"], [20, 3, 1, "", "reference_fluxes"], [20, 2, 1, "", "scale"], [20, 3, 1, "", "spectral_index"], [20, 3, 1, "", "spectral_index_error"], [20, 2, 1, "", "tag"], [20, 3, 1, "", "to_dict"], [20, 2, 1, "", "type"], [20, 3, 1, "", "unfreeze"]], "gammapy.astro.darkmatter.EinastoProfile": [[21, 2, 1, "", "DEFAULT_ALPHA"], [21, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [21, 2, 1, "", "DISTANCE_GC"], [21, 2, 1, "", "LOCAL_DENSITY"], [21, 3, 1, "", "__call__"], [21, 3, 1, "", "evaluate"], [21, 3, 1, "", "integral"], [21, 3, 1, "", "integrate_spectrum_separation"], [21, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.IsothermalProfile": [[22, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [22, 2, 1, "", "DISTANCE_GC"], [22, 2, 1, "", "LOCAL_DENSITY"], [22, 3, 1, "", "__call__"], [22, 3, 1, "", "evaluate"], [22, 3, 1, "", "integral"], [22, 3, 1, "", "integrate_spectrum_separation"], [22, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.JFactory": [[23, 3, 1, "", "compute_differential_jfactor"], [23, 3, 1, "", "compute_jfactor"]], "gammapy.astro.darkmatter.MooreProfile": [[24, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [24, 2, 1, "", "DISTANCE_GC"], [24, 2, 1, "", "LOCAL_DENSITY"], [24, 3, 1, "", "__call__"], [24, 3, 1, "", "evaluate"], [24, 3, 1, "", "integral"], [24, 3, 1, "", "integrate_spectrum_separation"], [24, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.NFWProfile": [[25, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [25, 2, 1, "", "DISTANCE_GC"], [25, 2, 1, "", "LOCAL_DENSITY"], [25, 3, 1, "", "__call__"], [25, 3, 1, "", "evaluate"], [25, 3, 1, "", "integral"], [25, 3, 1, "", "integrate_spectrum_separation"], [25, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.darkmatter.PrimaryFlux": [[26, 3, 1, "", "__call__"], [26, 2, 1, "", "allowed_channels"], [26, 2, 1, "", "channel"], [26, 2, 1, "", "channel_registry"], [26, 3, 1, "", "copy"], [26, 2, 1, "", "covariance"], [26, 2, 1, "", "default_parameters"], [26, 3, 1, "", "energy_flux"], [26, 3, 1, "", "energy_flux_error"], [26, 3, 1, "", "evaluate"], [26, 3, 1, "", "evaluate_error"], [26, 3, 1, "", "freeze"], [26, 3, 1, "", "from_dict"], [26, 3, 1, "", "from_parameters"], [26, 2, 1, "", "frozen"], [26, 3, 1, "", "integral"], [26, 3, 1, "", "integral_error"], [26, 3, 1, "", "inverse"], [26, 3, 1, "", "inverse_all"], [26, 2, 1, "", "is_norm_spectral_model"], [26, 2, 1, "", "mDM"], [26, 2, 1, "", "map"], [26, 2, 1, "", "parameters"], [26, 2, 1, "", "parameters_unique_names"], [26, 2, 1, "", "pivot_energy"], [26, 3, 1, "", "plot"], [26, 3, 1, "", "plot_error"], [26, 3, 1, "", "reassign"], [26, 3, 1, "", "reference_fluxes"], [26, 3, 1, "", "spectral_index"], [26, 3, 1, "", "spectral_index_error"], [26, 2, 1, "", "table_filename"], [26, 2, 1, "", "tag"], [26, 3, 1, "", "to_dict"], [26, 2, 1, "", "type"], [26, 3, 1, "", "unfreeze"], [26, 3, 1, "", "write"]], "gammapy.astro.darkmatter.ZhaoProfile": [[27, 2, 1, "", "DEFAULT_ALPHA"], [27, 2, 1, "", "DEFAULT_BETA"], [27, 2, 1, "", "DEFAULT_GAMMA"], [27, 2, 1, "", "DEFAULT_SCALE_RADIUS"], [27, 2, 1, "", "DISTANCE_GC"], [27, 2, 1, "", "LOCAL_DENSITY"], [27, 3, 1, "", "__call__"], [27, 3, 1, "", "evaluate"], [27, 3, 1, "", "integral"], [27, 3, 1, "", "integrate_spectrum_separation"], [27, 3, 1, "", "scale_to_local_density"]], "gammapy.astro.population": [[28, 1, 1, "", "CaseBattacharya1998"], [29, 1, 1, "", "Exponential"], [30, 1, 1, "", "FaucherKaspi2006"], [31, 1, 1, "", "FaucherKaspi2006VelocityBimodal"], [32, 1, 1, "", "FaucherKaspi2006VelocityMaxwellian"], [33, 1, 1, "", "FaucherSpiral"], [34, 1, 1, "", "LogSpiral"], [35, 1, 1, "", "Lorimer2006"], [36, 1, 1, "", "Paczynski1990"], [37, 1, 1, "", "Paczynski1990Velocity"], [38, 1, 1, "", "ValleeSpiral"], [39, 1, 1, "", "YusifovKucuk2004"], [40, 1, 1, "", "YusifovKucuk2004B"], [41, 4, 1, "", "add_observed_parameters"], [42, 4, 1, "", "add_pulsar_parameters"], [43, 4, 1, "", "add_pwn_parameters"], [44, 4, 1, "", "add_snr_parameters"], [45, 4, 1, "", "make_base_catalog_galactic"], [46, 4, 1, "", "make_catalog_random_positions_cube"], [47, 4, 1, "", "make_catalog_random_positions_sphere"], [48, 5, 1, "", "radial_distributions"], [49, 5, 1, "", "velocity_distributions"]], "gammapy.astro.population.CaseBattacharya1998": [[28, 3, 1, "", "__call__"], [28, 2, 1, "", "alpha"], [28, 2, 1, "", "amplitude"], [28, 2, 1, "", "bbox_with_units"], [28, 2, 1, "", "beta"], [28, 2, 1, "", "bounding_box"], [28, 2, 1, "", "bounds"], [28, 3, 1, "", "coerce_units"], [28, 2, 1, "", "col_fit_deriv"], [28, 3, 1, "", "copy"], [28, 2, 1, "", "cov_matrix"], [28, 3, 1, "", "deepcopy"], [28, 2, 1, "", "eqcons"], [28, 3, 1, "", "evaluate"], [28, 2, 1, "", "evolved"], [28, 2, 1, "", "fit_deriv"], [28, 2, 1, "", "fittable"], [28, 2, 1, "", "fixed"], [28, 3, 1, "", "get_bounding_box"], [28, 3, 1, "", "has_inverse"], [28, 2, 1, "", "has_user_bounding_box"], [28, 2, 1, "", "has_user_inverse"], [28, 2, 1, "", "ineqcons"], [28, 3, 1, "", "input_shape"], [28, 2, 1, "", "input_units"], [28, 2, 1, "", "input_units_allow_dimensionless"], [28, 2, 1, "", "input_units_equivalencies"], [28, 2, 1, "", "input_units_strict"], [28, 2, 1, "", "inputs"], [28, 2, 1, "", "inverse"], [28, 2, 1, "", "linear"], [28, 2, 1, "", "meta"], [28, 2, 1, "", "model_constraints"], [28, 2, 1, "", "model_set_axis"], [28, 2, 1, "", "n_inputs"], [28, 2, 1, "", "n_outputs"], [28, 2, 1, "", "n_submodels"], [28, 2, 1, "", "name"], [28, 3, 1, "", "output_units"], [28, 2, 1, "", "outputs"], [28, 2, 1, "", "param_names"], [28, 2, 1, "", "param_sets"], [28, 2, 1, "", "parameter_constraints"], [28, 2, 1, "", "parameters"], [28, 3, 1, "", "prepare_inputs"], [28, 3, 1, "", "prepare_outputs"], [28, 3, 1, "", "rename"], [28, 3, 1, "", "render"], [28, 2, 1, "", "return_units"], [28, 2, 1, "", "separable"], [28, 3, 1, "", "set_slice_args"], [28, 2, 1, "", "standard_broadcasting"], [28, 2, 1, "", "stds"], [28, 3, 1, "", "strip_units_from_tree"], [28, 3, 1, "", "sum_of_implicit_terms"], [28, 2, 1, "", "sync_constraints"], [28, 2, 1, "", "tied"], [28, 2, 1, "", "uses_quantity"], [28, 3, 1, "", "with_units_from_data"], [28, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.Exponential": [[29, 3, 1, "", "__call__"], [29, 2, 1, "", "amplitude"], [29, 2, 1, "", "bbox_with_units"], [29, 2, 1, "", "bounding_box"], [29, 2, 1, "", "bounds"], [29, 3, 1, "", "coerce_units"], [29, 2, 1, "", "col_fit_deriv"], [29, 3, 1, "", "copy"], [29, 2, 1, "", "cov_matrix"], [29, 3, 1, "", "deepcopy"], [29, 2, 1, "", "eqcons"], [29, 3, 1, "", "evaluate"], [29, 2, 1, "", "evolved"], [29, 2, 1, "", "fit_deriv"], [29, 2, 1, "", "fittable"], [29, 2, 1, "", "fixed"], [29, 3, 1, "", "get_bounding_box"], [29, 3, 1, "", "has_inverse"], [29, 2, 1, "", "has_user_bounding_box"], [29, 2, 1, "", "has_user_inverse"], [29, 2, 1, "", "ineqcons"], [29, 3, 1, "", "input_shape"], [29, 2, 1, "", "input_units"], [29, 2, 1, "", "input_units_allow_dimensionless"], [29, 2, 1, "", "input_units_equivalencies"], [29, 2, 1, "", "input_units_strict"], [29, 2, 1, "", "inputs"], [29, 2, 1, "", "inverse"], [29, 2, 1, "", "linear"], [29, 2, 1, "", "meta"], [29, 2, 1, "", "model_constraints"], [29, 2, 1, "", "model_set_axis"], [29, 2, 1, "", "n_inputs"], [29, 2, 1, "", "n_outputs"], [29, 2, 1, "", "n_submodels"], [29, 2, 1, "", "name"], [29, 3, 1, "", "output_units"], [29, 2, 1, "", "outputs"], [29, 2, 1, "", "param_names"], [29, 2, 1, "", "param_sets"], [29, 2, 1, "", "parameter_constraints"], [29, 2, 1, "", "parameters"], [29, 3, 1, "", "prepare_inputs"], [29, 3, 1, "", "prepare_outputs"], [29, 3, 1, "", "rename"], [29, 3, 1, "", "render"], [29, 2, 1, "", "return_units"], [29, 2, 1, "", "separable"], [29, 3, 1, "", "set_slice_args"], [29, 2, 1, "", "standard_broadcasting"], [29, 2, 1, "", "stds"], [29, 3, 1, "", "strip_units_from_tree"], [29, 3, 1, "", "sum_of_implicit_terms"], [29, 2, 1, "", "sync_constraints"], [29, 2, 1, "", "tied"], [29, 2, 1, "", "uses_quantity"], [29, 3, 1, "", "with_units_from_data"], [29, 3, 1, "", "without_units_for_data"], [29, 2, 1, "", "z_0"]], "gammapy.astro.population.FaucherKaspi2006": [[30, 3, 1, "", "__call__"], [30, 2, 1, "", "amplitude"], [30, 2, 1, "", "bbox_with_units"], [30, 2, 1, "", "bounding_box"], [30, 2, 1, "", "bounds"], [30, 3, 1, "", "coerce_units"], [30, 2, 1, "", "col_fit_deriv"], [30, 3, 1, "", "copy"], [30, 2, 1, "", "cov_matrix"], [30, 3, 1, "", "deepcopy"], [30, 2, 1, "", "eqcons"], [30, 3, 1, "", "evaluate"], [30, 2, 1, "", "evolved"], [30, 2, 1, "", "fit_deriv"], [30, 2, 1, "", "fittable"], [30, 2, 1, "", "fixed"], [30, 3, 1, "", "get_bounding_box"], [30, 3, 1, "", "has_inverse"], [30, 2, 1, "", "has_user_bounding_box"], [30, 2, 1, "", "has_user_inverse"], [30, 2, 1, "", "ineqcons"], [30, 3, 1, "", "input_shape"], [30, 2, 1, "", "input_units"], [30, 2, 1, "", "input_units_allow_dimensionless"], [30, 2, 1, "", "input_units_equivalencies"], [30, 2, 1, "", "input_units_strict"], [30, 2, 1, "", "inputs"], [30, 2, 1, "", "inverse"], [30, 2, 1, "", "linear"], [30, 2, 1, "", "meta"], [30, 2, 1, "", "model_constraints"], [30, 2, 1, "", "model_set_axis"], [30, 2, 1, "", "n_inputs"], [30, 2, 1, "", "n_outputs"], [30, 2, 1, "", "n_submodels"], [30, 2, 1, "", "name"], [30, 3, 1, "", "output_units"], [30, 2, 1, "", "outputs"], [30, 2, 1, "", "param_names"], [30, 2, 1, "", "param_sets"], [30, 2, 1, "", "parameter_constraints"], [30, 2, 1, "", "parameters"], [30, 3, 1, "", "prepare_inputs"], [30, 3, 1, "", "prepare_outputs"], [30, 2, 1, "", "r_0"], [30, 3, 1, "", "rename"], [30, 3, 1, "", "render"], [30, 2, 1, "", "return_units"], [30, 2, 1, "", "separable"], [30, 3, 1, "", "set_slice_args"], [30, 2, 1, "", "sigma"], [30, 2, 1, "", "standard_broadcasting"], [30, 2, 1, "", "stds"], [30, 3, 1, "", "strip_units_from_tree"], [30, 3, 1, "", "sum_of_implicit_terms"], [30, 2, 1, "", "sync_constraints"], [30, 2, 1, "", "tied"], [30, 2, 1, "", "uses_quantity"], [30, 3, 1, "", "with_units_from_data"], [30, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.FaucherKaspi2006VelocityBimodal": [[31, 3, 1, "", "__call__"], [31, 2, 1, "", "amplitude"], [31, 2, 1, "", "bbox_with_units"], [31, 2, 1, "", "bounding_box"], [31, 2, 1, "", "bounds"], [31, 3, 1, "", "coerce_units"], [31, 2, 1, "", "col_fit_deriv"], [31, 3, 1, "", "copy"], [31, 2, 1, "", "cov_matrix"], [31, 3, 1, "", "deepcopy"], [31, 2, 1, "", "eqcons"], [31, 3, 1, "", "evaluate"], [31, 2, 1, "", "fit_deriv"], [31, 2, 1, "", "fittable"], [31, 2, 1, "", "fixed"], [31, 3, 1, "", "get_bounding_box"], [31, 3, 1, "", "has_inverse"], [31, 2, 1, "", "has_user_bounding_box"], [31, 2, 1, "", "has_user_inverse"], [31, 2, 1, "", "ineqcons"], [31, 3, 1, "", "input_shape"], [31, 2, 1, "", "input_units"], [31, 2, 1, "", "input_units_allow_dimensionless"], [31, 2, 1, "", "input_units_equivalencies"], [31, 2, 1, "", "input_units_strict"], [31, 2, 1, "", "inputs"], [31, 2, 1, "", "inverse"], [31, 2, 1, "", "linear"], [31, 2, 1, "", "meta"], [31, 2, 1, "", "model_constraints"], [31, 2, 1, "", "model_set_axis"], [31, 2, 1, "", "n_inputs"], [31, 2, 1, "", "n_outputs"], [31, 2, 1, "", "n_submodels"], [31, 2, 1, "", "name"], [31, 3, 1, "", "output_units"], [31, 2, 1, "", "outputs"], [31, 2, 1, "", "param_names"], [31, 2, 1, "", "param_sets"], [31, 2, 1, "", "parameter_constraints"], [31, 2, 1, "", "parameters"], [31, 3, 1, "", "prepare_inputs"], [31, 3, 1, "", "prepare_outputs"], [31, 3, 1, "", "rename"], [31, 3, 1, "", "render"], [31, 2, 1, "", "return_units"], [31, 2, 1, "", "separable"], [31, 3, 1, "", "set_slice_args"], [31, 2, 1, "", "sigma_1"], [31, 2, 1, "", "sigma_2"], [31, 2, 1, "", "standard_broadcasting"], [31, 2, 1, "", "stds"], [31, 3, 1, "", "strip_units_from_tree"], [31, 3, 1, "", "sum_of_implicit_terms"], [31, 2, 1, "", "sync_constraints"], [31, 2, 1, "", "tied"], [31, 2, 1, "", "uses_quantity"], [31, 2, 1, "", "w"], [31, 3, 1, "", "with_units_from_data"], [31, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.FaucherKaspi2006VelocityMaxwellian": [[32, 3, 1, "", "__call__"], [32, 2, 1, "", "amplitude"], [32, 2, 1, "", "bbox_with_units"], [32, 2, 1, "", "bounding_box"], [32, 2, 1, "", "bounds"], [32, 3, 1, "", "coerce_units"], [32, 2, 1, "", "col_fit_deriv"], [32, 3, 1, "", "copy"], [32, 2, 1, "", "cov_matrix"], [32, 3, 1, "", "deepcopy"], [32, 2, 1, "", "eqcons"], [32, 3, 1, "", "evaluate"], [32, 2, 1, "", "fit_deriv"], [32, 2, 1, "", "fittable"], [32, 2, 1, "", "fixed"], [32, 3, 1, "", "get_bounding_box"], [32, 3, 1, "", "has_inverse"], [32, 2, 1, "", "has_user_bounding_box"], [32, 2, 1, "", "has_user_inverse"], [32, 2, 1, "", "ineqcons"], [32, 3, 1, "", "input_shape"], [32, 2, 1, "", "input_units"], [32, 2, 1, "", "input_units_allow_dimensionless"], [32, 2, 1, "", "input_units_equivalencies"], [32, 2, 1, "", "input_units_strict"], [32, 2, 1, "", "inputs"], [32, 2, 1, "", "inverse"], [32, 2, 1, "", "linear"], [32, 2, 1, "", "meta"], [32, 2, 1, "", "model_constraints"], [32, 2, 1, "", "model_set_axis"], [32, 2, 1, "", "n_inputs"], [32, 2, 1, "", "n_outputs"], [32, 2, 1, "", "n_submodels"], [32, 2, 1, "", "name"], [32, 3, 1, "", "output_units"], [32, 2, 1, "", "outputs"], [32, 2, 1, "", "param_names"], [32, 2, 1, "", "param_sets"], [32, 2, 1, "", "parameter_constraints"], [32, 2, 1, "", "parameters"], [32, 3, 1, "", "prepare_inputs"], [32, 3, 1, "", "prepare_outputs"], [32, 3, 1, "", "rename"], [32, 3, 1, "", "render"], [32, 2, 1, "", "return_units"], [32, 2, 1, "", "separable"], [32, 3, 1, "", "set_slice_args"], [32, 2, 1, "", "sigma"], [32, 2, 1, "", "standard_broadcasting"], [32, 2, 1, "", "stds"], [32, 3, 1, "", "strip_units_from_tree"], [32, 3, 1, "", "sum_of_implicit_terms"], [32, 2, 1, "", "sync_constraints"], [32, 2, 1, "", "tied"], [32, 2, 1, "", "uses_quantity"], [32, 3, 1, "", "with_units_from_data"], [32, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.FaucherSpiral": [[33, 3, 1, "", "__call__"], [33, 2, 1, "", "k"], [33, 2, 1, "", "r_0"], [33, 3, 1, "", "radius"], [33, 2, 1, "", "spiralarms"], [33, 3, 1, "", "theta"], [33, 2, 1, "", "theta_0"], [33, 3, 1, "", "xy_position"]], "gammapy.astro.population.LogSpiral": [[34, 3, 1, "", "radius"], [34, 3, 1, "", "theta"], [34, 3, 1, "", "xy_position"]], "gammapy.astro.population.Lorimer2006": [[35, 2, 1, "", "B"], [35, 2, 1, "", "C"], [35, 3, 1, "", "__call__"], [35, 2, 1, "", "amplitude"], [35, 2, 1, "", "bbox_with_units"], [35, 2, 1, "", "bounding_box"], [35, 2, 1, "", "bounds"], [35, 3, 1, "", "coerce_units"], [35, 2, 1, "", "col_fit_deriv"], [35, 3, 1, "", "copy"], [35, 2, 1, "", "cov_matrix"], [35, 3, 1, "", "deepcopy"], [35, 2, 1, "", "eqcons"], [35, 3, 1, "", "evaluate"], [35, 2, 1, "", "evolved"], [35, 2, 1, "", "fit_deriv"], [35, 2, 1, "", "fittable"], [35, 2, 1, "", "fixed"], [35, 3, 1, "", "get_bounding_box"], [35, 3, 1, "", "has_inverse"], [35, 2, 1, "", "has_user_bounding_box"], [35, 2, 1, "", "has_user_inverse"], [35, 2, 1, "", "ineqcons"], [35, 3, 1, "", "input_shape"], [35, 2, 1, "", "input_units"], [35, 2, 1, "", "input_units_allow_dimensionless"], [35, 2, 1, "", "input_units_equivalencies"], [35, 2, 1, "", "input_units_strict"], [35, 2, 1, "", "inputs"], [35, 2, 1, "", "inverse"], [35, 2, 1, "", "linear"], [35, 2, 1, "", "meta"], [35, 2, 1, "", "model_constraints"], [35, 2, 1, "", "model_set_axis"], [35, 2, 1, "", "n_inputs"], [35, 2, 1, "", "n_outputs"], [35, 2, 1, "", "n_submodels"], [35, 2, 1, "", "name"], [35, 3, 1, "", "output_units"], [35, 2, 1, "", "outputs"], [35, 2, 1, "", "param_names"], [35, 2, 1, "", "param_sets"], [35, 2, 1, "", "parameter_constraints"], [35, 2, 1, "", "parameters"], [35, 3, 1, "", "prepare_inputs"], [35, 3, 1, "", "prepare_outputs"], [35, 3, 1, "", "rename"], [35, 3, 1, "", "render"], [35, 2, 1, "", "return_units"], [35, 2, 1, "", "separable"], [35, 3, 1, "", "set_slice_args"], [35, 2, 1, "", "standard_broadcasting"], [35, 2, 1, "", "stds"], [35, 3, 1, "", "strip_units_from_tree"], [35, 3, 1, "", "sum_of_implicit_terms"], [35, 2, 1, "", "sync_constraints"], [35, 2, 1, "", "tied"], [35, 2, 1, "", "uses_quantity"], [35, 3, 1, "", "with_units_from_data"], [35, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.Paczynski1990": [[36, 3, 1, "", "__call__"], [36, 2, 1, "", "amplitude"], [36, 2, 1, "", "bbox_with_units"], [36, 2, 1, "", "bounding_box"], [36, 2, 1, "", "bounds"], [36, 3, 1, "", "coerce_units"], [36, 2, 1, "", "col_fit_deriv"], [36, 3, 1, "", "copy"], [36, 2, 1, "", "cov_matrix"], [36, 3, 1, "", "deepcopy"], [36, 2, 1, "", "eqcons"], [36, 3, 1, "", "evaluate"], [36, 2, 1, "", "evolved"], [36, 2, 1, "", "fit_deriv"], [36, 2, 1, "", "fittable"], [36, 2, 1, "", "fixed"], [36, 3, 1, "", "get_bounding_box"], [36, 3, 1, "", "has_inverse"], [36, 2, 1, "", "has_user_bounding_box"], [36, 2, 1, "", "has_user_inverse"], [36, 2, 1, "", "ineqcons"], [36, 3, 1, "", "input_shape"], [36, 2, 1, "", "input_units"], [36, 2, 1, "", "input_units_allow_dimensionless"], [36, 2, 1, "", "input_units_equivalencies"], [36, 2, 1, "", "input_units_strict"], [36, 2, 1, "", "inputs"], [36, 2, 1, "", "inverse"], [36, 2, 1, "", "linear"], [36, 2, 1, "", "meta"], [36, 2, 1, "", "model_constraints"], [36, 2, 1, "", "model_set_axis"], [36, 2, 1, "", "n_inputs"], [36, 2, 1, "", "n_outputs"], [36, 2, 1, "", "n_submodels"], [36, 2, 1, "", "name"], [36, 3, 1, "", "output_units"], [36, 2, 1, "", "outputs"], [36, 2, 1, "", "param_names"], [36, 2, 1, "", "param_sets"], [36, 2, 1, "", "parameter_constraints"], [36, 2, 1, "", "parameters"], [36, 3, 1, "", "prepare_inputs"], [36, 3, 1, "", "prepare_outputs"], [36, 2, 1, "", "r_exp"], [36, 3, 1, "", "rename"], [36, 3, 1, "", "render"], [36, 2, 1, "", "return_units"], [36, 2, 1, "", "separable"], [36, 3, 1, "", "set_slice_args"], [36, 2, 1, "", "standard_broadcasting"], [36, 2, 1, "", "stds"], [36, 3, 1, "", "strip_units_from_tree"], [36, 3, 1, "", "sum_of_implicit_terms"], [36, 2, 1, "", "sync_constraints"], [36, 2, 1, "", "tied"], [36, 2, 1, "", "uses_quantity"], [36, 3, 1, "", "with_units_from_data"], [36, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.Paczynski1990Velocity": [[37, 3, 1, "", "__call__"], [37, 2, 1, "", "amplitude"], [37, 2, 1, "", "bbox_with_units"], [37, 2, 1, "", "bounding_box"], [37, 2, 1, "", "bounds"], [37, 3, 1, "", "coerce_units"], [37, 2, 1, "", "col_fit_deriv"], [37, 3, 1, "", "copy"], [37, 2, 1, "", "cov_matrix"], [37, 3, 1, "", "deepcopy"], [37, 2, 1, "", "eqcons"], [37, 3, 1, "", "evaluate"], [37, 2, 1, "", "fit_deriv"], [37, 2, 1, "", "fittable"], [37, 2, 1, "", "fixed"], [37, 3, 1, "", "get_bounding_box"], [37, 3, 1, "", "has_inverse"], [37, 2, 1, "", "has_user_bounding_box"], [37, 2, 1, "", "has_user_inverse"], [37, 2, 1, "", "ineqcons"], [37, 3, 1, "", "input_shape"], [37, 2, 1, "", "input_units"], [37, 2, 1, "", "input_units_allow_dimensionless"], [37, 2, 1, "", "input_units_equivalencies"], [37, 2, 1, "", "input_units_strict"], [37, 2, 1, "", "inputs"], [37, 2, 1, "", "inverse"], [37, 2, 1, "", "linear"], [37, 2, 1, "", "meta"], [37, 2, 1, "", "model_constraints"], [37, 2, 1, "", "model_set_axis"], [37, 2, 1, "", "n_inputs"], [37, 2, 1, "", "n_outputs"], [37, 2, 1, "", "n_submodels"], [37, 2, 1, "", "name"], [37, 3, 1, "", "output_units"], [37, 2, 1, "", "outputs"], [37, 2, 1, "", "param_names"], [37, 2, 1, "", "param_sets"], [37, 2, 1, "", "parameter_constraints"], [37, 2, 1, "", "parameters"], [37, 3, 1, "", "prepare_inputs"], [37, 3, 1, "", "prepare_outputs"], [37, 3, 1, "", "rename"], [37, 3, 1, "", "render"], [37, 2, 1, "", "return_units"], [37, 2, 1, "", "separable"], [37, 3, 1, "", "set_slice_args"], [37, 2, 1, "", "standard_broadcasting"], [37, 2, 1, "", "stds"], [37, 3, 1, "", "strip_units_from_tree"], [37, 3, 1, "", "sum_of_implicit_terms"], [37, 2, 1, "", "sync_constraints"], [37, 2, 1, "", "tied"], [37, 2, 1, "", "uses_quantity"], [37, 2, 1, "", "v_0"], [37, 3, 1, "", "with_units_from_data"], [37, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.ValleeSpiral": [[38, 2, 1, "", "bar_radius"], [38, 2, 1, "", "m"], [38, 2, 1, "", "p"], [38, 2, 1, "", "r_0"], [38, 2, 1, "", "r_sun"], [38, 3, 1, "", "radius"], [38, 2, 1, "", "spiralarms"], [38, 3, 1, "", "theta"], [38, 2, 1, "", "theta_0"], [38, 3, 1, "", "xy_position"]], "gammapy.astro.population.YusifovKucuk2004": [[39, 3, 1, "", "__call__"], [39, 2, 1, "", "a"], [39, 2, 1, "", "amplitude"], [39, 2, 1, "", "b"], [39, 2, 1, "", "bbox_with_units"], [39, 2, 1, "", "bounding_box"], [39, 2, 1, "", "bounds"], [39, 3, 1, "", "coerce_units"], [39, 2, 1, "", "col_fit_deriv"], [39, 3, 1, "", "copy"], [39, 2, 1, "", "cov_matrix"], [39, 3, 1, "", "deepcopy"], [39, 2, 1, "", "eqcons"], [39, 3, 1, "", "evaluate"], [39, 2, 1, "", "evolved"], [39, 2, 1, "", "fit_deriv"], [39, 2, 1, "", "fittable"], [39, 2, 1, "", "fixed"], [39, 3, 1, "", "get_bounding_box"], [39, 3, 1, "", "has_inverse"], [39, 2, 1, "", "has_user_bounding_box"], [39, 2, 1, "", "has_user_inverse"], [39, 2, 1, "", "ineqcons"], [39, 3, 1, "", "input_shape"], [39, 2, 1, "", "input_units"], [39, 2, 1, "", "input_units_allow_dimensionless"], [39, 2, 1, "", "input_units_equivalencies"], [39, 2, 1, "", "input_units_strict"], [39, 2, 1, "", "inputs"], [39, 2, 1, "", "inverse"], [39, 2, 1, "", "linear"], [39, 2, 1, "", "meta"], [39, 2, 1, "", "model_constraints"], [39, 2, 1, "", "model_set_axis"], [39, 2, 1, "", "n_inputs"], [39, 2, 1, "", "n_outputs"], [39, 2, 1, "", "n_submodels"], [39, 2, 1, "", "name"], [39, 3, 1, "", "output_units"], [39, 2, 1, "", "outputs"], [39, 2, 1, "", "param_names"], [39, 2, 1, "", "param_sets"], [39, 2, 1, "", "parameter_constraints"], [39, 2, 1, "", "parameters"], [39, 3, 1, "", "prepare_inputs"], [39, 3, 1, "", "prepare_outputs"], [39, 2, 1, "", "r_1"], [39, 3, 1, "", "rename"], [39, 3, 1, "", "render"], [39, 2, 1, "", "return_units"], [39, 2, 1, "", "separable"], [39, 3, 1, "", "set_slice_args"], [39, 2, 1, "", "standard_broadcasting"], [39, 2, 1, "", "stds"], [39, 3, 1, "", "strip_units_from_tree"], [39, 3, 1, "", "sum_of_implicit_terms"], [39, 2, 1, "", "sync_constraints"], [39, 2, 1, "", "tied"], [39, 2, 1, "", "uses_quantity"], [39, 3, 1, "", "with_units_from_data"], [39, 3, 1, "", "without_units_for_data"]], "gammapy.astro.population.YusifovKucuk2004B": [[40, 3, 1, "", "__call__"], [40, 2, 1, "", "a"], [40, 2, 1, "", "amplitude"], [40, 2, 1, "", "b"], [40, 2, 1, "", "bbox_with_units"], [40, 2, 1, "", "bounding_box"], [40, 2, 1, "", "bounds"], [40, 3, 1, "", "coerce_units"], [40, 2, 1, "", "col_fit_deriv"], [40, 3, 1, "", "copy"], [40, 2, 1, "", "cov_matrix"], [40, 3, 1, "", "deepcopy"], [40, 2, 1, "", "eqcons"], [40, 3, 1, "", "evaluate"], [40, 2, 1, "", "evolved"], [40, 2, 1, "", "fit_deriv"], [40, 2, 1, "", "fittable"], [40, 2, 1, "", "fixed"], [40, 3, 1, "", "get_bounding_box"], [40, 3, 1, "", "has_inverse"], [40, 2, 1, "", "has_user_bounding_box"], [40, 2, 1, "", "has_user_inverse"], [40, 2, 1, "", "ineqcons"], [40, 3, 1, "", "input_shape"], [40, 2, 1, "", "input_units"], [40, 2, 1, "", "input_units_allow_dimensionless"], [40, 2, 1, "", "input_units_equivalencies"], [40, 2, 1, "", "input_units_strict"], [40, 2, 1, "", "inputs"], [40, 2, 1, "", "inverse"], [40, 2, 1, "", "linear"], [40, 2, 1, "", "meta"], [40, 2, 1, "", "model_constraints"], [40, 2, 1, "", "model_set_axis"], [40, 2, 1, "", "n_inputs"], [40, 2, 1, "", "n_outputs"], [40, 2, 1, "", "n_submodels"], [40, 2, 1, "", "name"], [40, 3, 1, "", "output_units"], [40, 2, 1, "", "outputs"], [40, 2, 1, "", "param_names"], [40, 2, 1, "", "param_sets"], [40, 2, 1, "", "parameter_constraints"], [40, 2, 1, "", "parameters"], [40, 3, 1, "", "prepare_inputs"], [40, 3, 1, "", "prepare_outputs"], [40, 3, 1, "", "rename"], [40, 3, 1, "", "render"], [40, 2, 1, "", "return_units"], [40, 2, 1, "", "separable"], [40, 3, 1, "", "set_slice_args"], [40, 2, 1, "", "standard_broadcasting"], [40, 2, 1, "", "stds"], [40, 3, 1, "", "strip_units_from_tree"], [40, 3, 1, "", "sum_of_implicit_terms"], [40, 2, 1, "", "sync_constraints"], [40, 2, 1, "", "tied"], [40, 2, 1, "", "uses_quantity"], [40, 3, 1, "", "with_units_from_data"], [40, 3, 1, "", "without_units_for_data"]], "gammapy.astro.source": [[50, 1, 1, "", "PWN"], [51, 1, 1, "", "Pulsar"], [52, 1, 1, "", "SNR"], [53, 1, 1, "", "SNRTrueloveMcKee"], [54, 1, 1, "", "SimplePulsar"]], "gammapy.astro.source.PWN": [[50, 3, 1, "", "magnetic_field"], [50, 3, 1, "", "radius"]], "gammapy.astro.source.Pulsar": [[51, 3, 1, "", "energy_integrated"], [51, 3, 1, "", "luminosity_spindown"], [51, 3, 1, "", "magnetic_field"], [51, 3, 1, "", "period"], [51, 3, 1, "", "period_dot"], [51, 3, 1, "", "tau"]], "gammapy.astro.source.SNR": [[52, 3, 1, "", "luminosity_tev"], [52, 3, 1, "", "radius"], [52, 3, 1, "", "radius_inner"], [52, 2, 1, "", "sedov_taylor_begin"], [52, 2, 1, "", "sedov_taylor_end"]], "gammapy.astro.source.SNRTrueloveMcKee": [[53, 3, 1, "", "luminosity_tev"], [53, 3, 1, "", "radius"], [53, 3, 1, "", "radius_inner"], [53, 3, 1, "", "radius_reverse_shock"], [53, 2, 1, "", "sedov_taylor_begin"], [53, 2, 1, "", "sedov_taylor_end"]], "gammapy.astro.source.SimplePulsar": [[54, 2, 1, "", "luminosity_spindown"], [54, 2, 1, "", "magnetic_field"], [54, 2, 1, "", "tau"]], "gammapy.catalog": [[55, 5, 1, "", "CATALOG_REGISTRY"], [56, 1, 1, "", "SourceCatalog"], [57, 1, 1, "", "SourceCatalog1LHAASO"], [58, 1, 1, "", "SourceCatalog2FHL"], [59, 1, 1, "", "SourceCatalog2HWC"], [60, 1, 1, "", "SourceCatalog2PC"], [61, 1, 1, "", "SourceCatalog3FGL"], [62, 1, 1, "", "SourceCatalog3FHL"], [63, 1, 1, "", "SourceCatalog3HWC"], [64, 1, 1, "", "SourceCatalog3PC"], [65, 1, 1, "", "SourceCatalog4FGL"], [66, 1, 1, "", "SourceCatalogGammaCat"], [67, 1, 1, "", "SourceCatalogHGPS"], [68, 1, 1, "", "SourceCatalogLargeScaleHGPS"], [69, 1, 1, "", "SourceCatalogObject"], [70, 1, 1, "", "SourceCatalogObject1LHAASO"], [71, 1, 1, "", "SourceCatalogObject2FHL"], [72, 1, 1, "", "SourceCatalogObject2HWC"], [73, 1, 1, "", "SourceCatalogObject2PC"], [74, 1, 1, "", "SourceCatalogObject3FGL"], [75, 1, 1, "", "SourceCatalogObject3FHL"], [76, 1, 1, "", "SourceCatalogObject3HWC"], [77, 1, 1, "", "SourceCatalogObject3PC"], [78, 1, 1, "", "SourceCatalogObject4FGL"], [79, 1, 1, "", "SourceCatalogObjectGammaCat"], [80, 1, 1, "", "SourceCatalogObjectHGPS"], [81, 1, 1, "", "SourceCatalogObjectHGPSComponent"]], "gammapy.catalog.SourceCatalog": [[56, 3, 1, "", "description"], [56, 2, 1, "", "positions"], [56, 3, 1, "", "row_index"], [56, 3, 1, "", "source_name"], [56, 2, 1, "", "tag"], [56, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog1LHAASO": [[57, 2, 1, "", "description"], [57, 2, 1, "", "positions"], [57, 3, 1, "", "row_index"], [57, 3, 1, "", "source_name"], [57, 2, 1, "", "tag"], [57, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog2FHL": [[58, 2, 1, "", "description"], [58, 2, 1, "", "positions"], [58, 3, 1, "", "row_index"], [58, 3, 1, "", "source_name"], [58, 2, 1, "", "tag"], [58, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog2HWC": [[59, 2, 1, "", "description"], [59, 2, 1, "", "positions"], [59, 3, 1, "", "row_index"], [59, 3, 1, "", "source_name"], [59, 2, 1, "", "tag"], [59, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog2PC": [[60, 2, 1, "", "description"], [60, 2, 1, "", "positions"], [60, 3, 1, "", "row_index"], [60, 3, 1, "", "source_name"], [60, 2, 1, "", "tag"], [60, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3FGL": [[61, 2, 1, "", "description"], [61, 2, 1, "", "positions"], [61, 3, 1, "", "row_index"], [61, 3, 1, "", "source_name"], [61, 2, 1, "", "tag"], [61, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3FHL": [[62, 2, 1, "", "description"], [62, 2, 1, "", "positions"], [62, 3, 1, "", "row_index"], [62, 3, 1, "", "source_name"], [62, 2, 1, "", "tag"], [62, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3HWC": [[63, 2, 1, "", "description"], [63, 2, 1, "", "positions"], [63, 3, 1, "", "row_index"], [63, 3, 1, "", "source_name"], [63, 2, 1, "", "tag"], [63, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog3PC": [[64, 2, 1, "", "description"], [64, 2, 1, "", "positions"], [64, 3, 1, "", "row_index"], [64, 3, 1, "", "source_name"], [64, 2, 1, "", "tag"], [64, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalog4FGL": [[65, 2, 1, "", "description"], [65, 2, 1, "", "positions"], [65, 3, 1, "", "row_index"], [65, 3, 1, "", "source_name"], [65, 2, 1, "", "tag"], [65, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalogGammaCat": [[66, 2, 1, "", "description"], [66, 2, 1, "", "positions"], [66, 3, 1, "", "row_index"], [66, 3, 1, "", "source_name"], [66, 2, 1, "", "tag"], [66, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalogHGPS": [[67, 2, 1, "", "description"], [67, 3, 1, "", "gaussian_component"], [67, 2, 1, "", "large_scale_component"], [67, 2, 1, "", "positions"], [67, 3, 1, "", "row_index"], [67, 3, 1, "", "source_name"], [67, 2, 1, "", "table_associations"], [67, 2, 1, "", "table_components"], [67, 2, 1, "", "table_identifications"], [67, 2, 1, "", "table_large_scale_component"], [67, 2, 1, "", "tag"], [67, 3, 1, "", "to_models"]], "gammapy.catalog.SourceCatalogLargeScaleHGPS": [[68, 3, 1, "", "evaluate"], [68, 3, 1, "", "peak_brightness"], [68, 3, 1, "", "peak_brightness_error"], [68, 3, 1, "", "peak_latitude"], [68, 3, 1, "", "peak_latitude_error"], [68, 3, 1, "", "width"], [68, 3, 1, "", "width_error"]], "gammapy.catalog.SourceCatalogObject": [[69, 2, 1, "", "name"], [69, 2, 1, "", "position"], [69, 2, 1, "", "row_index"]], "gammapy.catalog.SourceCatalogObject1LHAASO": [[70, 2, 1, "", "name"], [70, 2, 1, "", "position"], [70, 2, 1, "", "row_index"], [70, 3, 1, "", "sky_model"], [70, 3, 1, "", "spatial_model"], [70, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject2FHL": [[71, 2, 1, "", "asso"], [71, 2, 1, "", "energy_range"], [71, 2, 1, "", "flux_points"], [71, 2, 1, "", "flux_points_meta"], [71, 2, 1, "", "flux_points_table"], [71, 3, 1, "", "info"], [71, 2, 1, "", "is_pointlike"], [71, 2, 1, "", "name"], [71, 2, 1, "", "position"], [71, 2, 1, "", "row_index"], [71, 3, 1, "", "sky_model"], [71, 3, 1, "", "spatial_model"], [71, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject2HWC": [[72, 3, 1, "", "info"], [72, 2, 1, "", "n_models"], [72, 2, 1, "", "name"], [72, 2, 1, "", "position"], [72, 2, 1, "", "row_index"], [72, 3, 1, "", "sky_model"], [72, 3, 1, "", "spatial_model"], [72, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject2PC": [[73, 2, 1, "", "flux_points"], [73, 2, 1, "", "flux_points_table"], [73, 3, 1, "", "info"], [73, 2, 1, "", "lightcurve"], [73, 2, 1, "", "name"], [73, 2, 1, "", "position"], [73, 2, 1, "", "row_index"], [73, 3, 1, "", "sky_model"], [73, 3, 1, "", "spatial_model"], [73, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3FGL": [[74, 2, 1, "", "asso"], [74, 2, 1, "", "energy_range"], [74, 2, 1, "", "flux_points"], [74, 2, 1, "", "flux_points_meta"], [74, 2, 1, "", "flux_points_table"], [74, 3, 1, "", "info"], [74, 2, 1, "", "is_pointlike"], [74, 3, 1, "", "lightcurve"], [74, 2, 1, "", "name"], [74, 2, 1, "", "position"], [74, 2, 1, "", "row_index"], [74, 3, 1, "", "sky_model"], [74, 3, 1, "", "spatial_model"], [74, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3FHL": [[75, 2, 1, "", "asso"], [75, 2, 1, "", "energy_range"], [75, 2, 1, "", "flux_points"], [75, 2, 1, "", "flux_points_meta"], [75, 2, 1, "", "flux_points_table"], [75, 3, 1, "", "info"], [75, 2, 1, "", "is_pointlike"], [75, 2, 1, "", "name"], [75, 2, 1, "", "position"], [75, 2, 1, "", "row_index"], [75, 3, 1, "", "sky_model"], [75, 3, 1, "", "spatial_model"], [75, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3HWC": [[76, 3, 1, "", "info"], [76, 2, 1, "", "is_pointlike"], [76, 2, 1, "", "n_models"], [76, 2, 1, "", "name"], [76, 2, 1, "", "position"], [76, 2, 1, "", "row_index"], [76, 3, 1, "", "sky_model"], [76, 3, 1, "", "spatial_model"], [76, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject3PC": [[77, 2, 1, "", "asso"], [77, 2, 1, "", "flux_points"], [77, 2, 1, "", "flux_points_table"], [77, 3, 1, "", "info"], [77, 2, 1, "", "lightcurve"], [77, 2, 1, "", "name"], [77, 2, 1, "", "position"], [77, 2, 1, "", "row_index"], [77, 3, 1, "", "sky_model"], [77, 3, 1, "", "spatial_model"], [77, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObject4FGL": [[78, 2, 1, "", "asso"], [78, 2, 1, "", "flux_points"], [78, 2, 1, "", "flux_points_meta"], [78, 2, 1, "", "flux_points_table"], [78, 3, 1, "", "info"], [78, 2, 1, "", "is_pointlike"], [78, 3, 1, "", "lightcurve"], [78, 2, 1, "", "name"], [78, 2, 1, "", "position"], [78, 2, 1, "", "row_index"], [78, 3, 1, "", "sky_model"], [78, 3, 1, "", "spatial_model"], [78, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObjectGammaCat": [[79, 2, 1, "", "flux_points"], [79, 2, 1, "", "flux_points_table"], [79, 3, 1, "", "info"], [79, 2, 1, "", "name"], [79, 2, 1, "", "position"], [79, 2, 1, "", "row_index"], [79, 3, 1, "", "sky_model"], [79, 3, 1, "", "spatial_model"], [79, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObjectHGPS": [[80, 3, 1, "", "components_models"], [80, 2, 1, "", "energy_range"], [80, 2, 1, "", "flux_points"], [80, 2, 1, "", "flux_points_table"], [80, 3, 1, "", "info"], [80, 2, 1, "", "name"], [80, 2, 1, "", "position"], [80, 2, 1, "", "row_index"], [80, 3, 1, "", "sky_model"], [80, 3, 1, "", "spatial_model"], [80, 3, 1, "", "spectral_model"]], "gammapy.catalog.SourceCatalogObjectHGPSComponent": [[81, 2, 1, "", "name"], [81, 2, 1, "", "position"], [81, 2, 1, "", "row_index"], [81, 3, 1, "", "spatial_model"]], "gammapy.data": [[82, 1, 1, "", "DataStore"], [83, 1, 1, "", "EventList"], [84, 1, 1, "", "EventListMetaData"], [85, 1, 1, "", "FixedPointingInfo"], [86, 1, 1, "", "GTI"], [87, 1, 1, "", "HDUIndexTable"], [88, 1, 1, "", "Observation"], [89, 1, 1, "", "ObservationFilter"], [90, 1, 1, "", "ObservationMetaData"], [91, 1, 1, "", "ObservationTable"], [92, 1, 1, "", "Observations"], [93, 1, 1, "", "ObservationsEventsSampler"], [94, 1, 1, "", "PointingInfo"], [95, 1, 1, "", "PointingMode"], [96, 4, 1, "", "get_irfs_features"], [97, 5, 1, "", "observatory_locations"]], "gammapy.data.DataStore": [[82, 2, 1, "", "DEFAULT_HDU_TABLE"], [82, 2, 1, "", "DEFAULT_OBS_TABLE"], [82, 3, 1, "", "check"], [82, 3, 1, "", "copy_obs"], [82, 3, 1, "", "from_dir"], [82, 3, 1, "", "from_events_files"], [82, 3, 1, "", "from_file"], [82, 3, 1, "", "get_observations"], [82, 3, 1, "", "info"], [82, 3, 1, "", "obs"], [82, 2, 1, "", "obs_ids"]], "gammapy.data.EventList": [[83, 2, 1, "", "altaz"], [83, 2, 1, "", "altaz_frame"], [83, 2, 1, "", "altaz_from_table"], [83, 3, 1, "", "check"], [83, 3, 1, "", "copy"], [83, 2, 1, "", "energy"], [83, 3, 1, "", "from_stack"], [83, 2, 1, "", "galactic"], [83, 2, 1, "", "galactic_median"], [83, 2, 1, "", "is_pointed_observation"], [83, 3, 1, "", "map_coord"], [83, 2, 1, "", "observation_dead_time_fraction"], [83, 2, 1, "", "observation_live_time_duration"], [83, 2, 1, "", "observation_time_duration"], [83, 2, 1, "", "observation_time_start"], [83, 2, 1, "", "observation_time_stop"], [83, 2, 1, "", "observatory_earth_location"], [83, 2, 1, "", "offset"], [83, 2, 1, "", "offset_from_median"], [83, 3, 1, "", "peek"], [83, 3, 1, "", "plot_energy"], [83, 3, 1, "", "plot_energy_offset"], [83, 3, 1, "", "plot_image"], [83, 3, 1, "", "plot_offset2_distribution"], [83, 3, 1, "", "plot_time"], [83, 2, 1, "", "pointing_radec"], [83, 2, 1, "", "radec"], [83, 3, 1, "", "read"], [83, 3, 1, "", "select_energy"], [83, 3, 1, "", "select_mask"], [83, 3, 1, "", "select_offset"], [83, 3, 1, "", "select_parameter"], [83, 3, 1, "", "select_rad_max"], [83, 3, 1, "", "select_region"], [83, 3, 1, "", "select_row_subset"], [83, 3, 1, "", "select_time"], [83, 3, 1, "", "stack"], [83, 2, 1, "", "time"], [83, 2, 1, "", "time_ref"], [83, 3, 1, "", "to_table_hdu"]], "gammapy.data.EventListMetaData": [[84, 3, 1, "", "construct"], [84, 3, 1, "", "copy"], [84, 3, 1, "", "dict"], [84, 3, 1, "", "from_header"], [84, 3, 1, "", "from_orm"], [84, 3, 1, "", "json"], [84, 2, 1, "", "model_computed_fields"], [84, 2, 1, "", "model_config"], [84, 3, 1, "", "model_construct"], [84, 3, 1, "", "model_copy"], [84, 3, 1, "", "model_dump"], [84, 3, 1, "", "model_dump_json"], [84, 2, 1, "", "model_extra"], [84, 2, 1, "", "model_fields"], [84, 2, 1, "", "model_fields_set"], [84, 3, 1, "", "model_json_schema"], [84, 3, 1, "", "model_parametrized_name"], [84, 3, 1, "", "model_post_init"], [84, 3, 1, "", "model_rebuild"], [84, 3, 1, "", "model_validate"], [84, 3, 1, "", "model_validate_json"], [84, 3, 1, "", "model_validate_strings"], [84, 3, 1, "", "parse_file"], [84, 3, 1, "", "parse_obj"], [84, 3, 1, "", "parse_raw"], [84, 3, 1, "", "schema"], [84, 3, 1, "", "schema_json"], [84, 2, 1, "", "tag"], [84, 3, 1, "", "to_header"], [84, 3, 1, "", "to_yaml"], [84, 3, 1, "", "update_forward_refs"], [84, 3, 1, "", "validate"]], "gammapy.data.FixedPointingInfo": [[85, 2, 1, "", "fixed_altaz"], [85, 2, 1, "", "fixed_icrs"], [85, 3, 1, "", "from_fits_header"], [85, 3, 1, "", "get_altaz"], [85, 3, 1, "", "get_icrs"], [85, 2, 1, "", "mode"], [85, 3, 1, "", "read"], [85, 3, 1, "", "to_fits_header"]], "gammapy.data.GTI": [[86, 3, 1, "", "copy"], [86, 3, 1, "", "create"], [86, 3, 1, "", "delete_interval"], [86, 3, 1, "", "from_stack"], [86, 3, 1, "", "from_table_hdu"], [86, 3, 1, "", "from_time_intervals"], [86, 3, 1, "", "group_table"], [86, 2, 1, "", "met_start"], [86, 2, 1, "", "met_stop"], [86, 3, 1, "", "read"], [86, 3, 1, "", "select_time"], [86, 3, 1, "", "stack"], [86, 2, 1, "", "time_delta"], [86, 2, 1, "", "time_intervals"], [86, 2, 1, "", "time_ref"], [86, 2, 1, "", "time_start"], [86, 2, 1, "", "time_stop"], [86, 2, 1, "", "time_sum"], [86, 3, 1, "", "to_table_hdu"], [86, 3, 1, "", "union"], [86, 3, 1, "", "write"]], "gammapy.data.HDUIndexTable": [[87, 2, 1, "", "ColumnClass"], [87, 2, 1, "", "VALID_HDU_CLASS"], [87, 2, 1, "", "VALID_HDU_TYPE"], [87, 3, 1, "", "add_column"], [87, 3, 1, "", "add_columns"], [87, 3, 1, "", "add_index"], [87, 3, 1, "", "add_row"], [87, 3, 1, "", "argsort"], [87, 3, 1, "", "as_array"], [87, 2, 1, "", "base_dir"], [87, 2, 1, "", "colnames"], [87, 3, 1, "", "convert_bytestring_to_unicode"], [87, 3, 1, "", "convert_unicode_to_bytestring"], [87, 3, 1, "", "copy"], [87, 2, 1, "", "dtype"], [87, 3, 1, "", "field"], [87, 3, 1, "", "filled"], [87, 3, 1, "", "from_pandas"], [87, 3, 1, "", "group_by"], [87, 2, 1, "", "groups"], [87, 2, 1, "", "has_masked_columns"], [87, 2, 1, "", "has_masked_values"], [87, 2, 1, "", "has_mixin_columns"], [87, 2, 1, "", "hdu_class_unique"], [87, 3, 1, "", "hdu_location"], [87, 2, 1, "", "hdu_type_unique"], [87, 2, 1, "", "iloc"], [87, 3, 1, "", "index_column"], [87, 3, 1, "", "index_mode"], [87, 2, 1, "", "indices"], [87, 2, 1, "", "info"], [87, 3, 1, "", "insert_row"], [87, 3, 1, "", "items"], [87, 3, 1, "", "itercols"], [87, 3, 1, "", "iterrows"], [87, 3, 1, "", "keep_columns"], [87, 3, 1, "", "keys"], [87, 2, 1, "", "loc"], [87, 2, 1, "", "loc_indices"], [87, 3, 1, "", "location_info"], [87, 2, 1, "", "mask"], [87, 2, 1, "", "masked"], [87, 2, 1, "", "meta"], [87, 3, 1, "", "more"], [87, 2, 1, "", "obs_id_unique"], [87, 3, 1, "", "pformat"], [87, 3, 1, "", "pformat_all"], [87, 3, 1, "", "pprint"], [87, 3, 1, "", "pprint_all"], [87, 2, 1, "", "pprint_exclude_names"], [87, 2, 1, "", "pprint_include_names"], [87, 3, 1, "", "read"], [87, 3, 1, "", "remove_column"], [87, 3, 1, "", "remove_columns"], [87, 3, 1, "", "remove_indices"], [87, 3, 1, "", "remove_row"], [87, 3, 1, "", "remove_rows"], [87, 3, 1, "", "rename_column"], [87, 3, 1, "", "rename_columns"], [87, 3, 1, "", "replace_column"], [87, 3, 1, "", "reverse"], [87, 3, 1, "", "round"], [87, 3, 1, "", "row_idx"], [87, 3, 1, "", "show_in_browser"], [87, 3, 1, "", "show_in_notebook"], [87, 3, 1, "", "sort"], [87, 3, 1, "", "summary"], [87, 3, 1, "", "to_pandas"], [87, 3, 1, "", "update"], [87, 3, 1, "", "values"], [87, 3, 1, "", "values_equal"], [87, 2, 1, "", "write"]], "gammapy.data.Observation": [[88, 2, 1, "", "aeff"], [88, 2, 1, "", "available_hdus"], [88, 2, 1, "", "available_irfs"], [88, 2, 1, "", "bkg"], [88, 3, 1, "", "check"], [88, 3, 1, "", "copy"], [88, 3, 1, "", "create"], [88, 2, 1, "", "edisp"], [88, 2, 1, "", "events"], [88, 3, 1, "", "get_pointing_altaz"], [88, 3, 1, "", "get_pointing_icrs"], [88, 2, 1, "", "gti"], [88, 2, 1, "", "meta"], [88, 2, 1, "", "observation_dead_time_fraction"], [88, 2, 1, "", "observation_live_time_duration"], [88, 2, 1, "", "observation_time_duration"], [88, 2, 1, "", "observatory_earth_location"], [88, 3, 1, "", "peek"], [88, 2, 1, "", "pointing"], [88, 2, 1, "", "psf"], [88, 2, 1, "", "rad_max"], [88, 3, 1, "", "read"], [88, 3, 1, "", "select_time"], [88, 2, 1, "", "target_radec"], [88, 2, 1, "", "tmid"], [88, 2, 1, "", "tstart"], [88, 2, 1, "", "tstop"], [88, 3, 1, "", "write"]], "gammapy.data.ObservationFilter": [[89, 2, 1, "", "EVENT_FILTER_TYPES"], [89, 3, 1, "", "copy"], [89, 3, 1, "", "filter_events"], [89, 3, 1, "", "filter_gti"], [89, 2, 1, "", "livetime_fraction"]], "gammapy.data.ObservationMetaData": [[90, 3, 1, "", "construct"], [90, 3, 1, "", "copy"], [90, 3, 1, "", "dict"], [90, 3, 1, "", "from_header"], [90, 3, 1, "", "from_orm"], [90, 3, 1, "", "json"], [90, 2, 1, "", "model_computed_fields"], [90, 2, 1, "", "model_config"], [90, 3, 1, "", "model_construct"], [90, 3, 1, "", "model_copy"], [90, 3, 1, "", "model_dump"], [90, 3, 1, "", "model_dump_json"], [90, 2, 1, "", "model_extra"], [90, 2, 1, "", "model_fields"], [90, 2, 1, "", "model_fields_set"], [90, 3, 1, "", "model_json_schema"], [90, 3, 1, "", "model_parametrized_name"], [90, 3, 1, "", "model_post_init"], [90, 3, 1, "", "model_rebuild"], [90, 3, 1, "", "model_validate"], [90, 3, 1, "", "model_validate_json"], [90, 3, 1, "", "model_validate_strings"], [90, 3, 1, "", "parse_file"], [90, 3, 1, "", "parse_obj"], [90, 3, 1, "", "parse_raw"], [90, 3, 1, "", "schema"], [90, 3, 1, "", "schema_json"], [90, 2, 1, "", "tag"], [90, 3, 1, "", "to_header"], [90, 3, 1, "", "to_yaml"], [90, 3, 1, "", "update_forward_refs"], [90, 3, 1, "", "validate"]], "gammapy.data.ObservationTable": [[91, 2, 1, "", "ColumnClass"], [91, 3, 1, "", "add_column"], [91, 3, 1, "", "add_columns"], [91, 3, 1, "", "add_index"], [91, 3, 1, "", "add_row"], [91, 3, 1, "", "argsort"], [91, 3, 1, "", "as_array"], [91, 2, 1, "", "colnames"], [91, 3, 1, "", "convert_bytestring_to_unicode"], [91, 3, 1, "", "convert_unicode_to_bytestring"], [91, 3, 1, "", "copy"], [91, 2, 1, "", "dtype"], [91, 3, 1, "", "field"], [91, 3, 1, "", "filled"], [91, 3, 1, "", "from_pandas"], [91, 3, 1, "", "group_by"], [91, 2, 1, "", "groups"], [91, 2, 1, "", "has_masked_columns"], [91, 2, 1, "", "has_masked_values"], [91, 2, 1, "", "has_mixin_columns"], [91, 2, 1, "", "iloc"], [91, 3, 1, "", "index_column"], [91, 3, 1, "", "index_mode"], [91, 2, 1, "", "indices"], [91, 2, 1, "", "info"], [91, 3, 1, "", "insert_row"], [91, 3, 1, "", "items"], [91, 3, 1, "", "itercols"], [91, 3, 1, "", "iterrows"], [91, 3, 1, "", "keep_columns"], [91, 3, 1, "", "keys"], [91, 2, 1, "", "loc"], [91, 2, 1, "", "loc_indices"], [91, 2, 1, "", "mask"], [91, 2, 1, "", "masked"], [91, 2, 1, "", "meta"], [91, 3, 1, "", "more"], [91, 3, 1, "", "pformat"], [91, 3, 1, "", "pformat_all"], [91, 2, 1, "", "pointing_galactic"], [91, 2, 1, "", "pointing_radec"], [91, 3, 1, "", "pprint"], [91, 3, 1, "", "pprint_all"], [91, 2, 1, "", "pprint_exclude_names"], [91, 2, 1, "", "pprint_include_names"], [91, 3, 1, "", "read"], [91, 3, 1, "", "remove_column"], [91, 3, 1, "", "remove_columns"], [91, 3, 1, "", "remove_indices"], [91, 3, 1, "", "remove_row"], [91, 3, 1, "", "remove_rows"], [91, 3, 1, "", "rename_column"], [91, 3, 1, "", "rename_columns"], [91, 3, 1, "", "replace_column"], [91, 3, 1, "", "reverse"], [91, 3, 1, "", "round"], [91, 3, 1, "", "select_obs_id"], [91, 3, 1, "", "select_observations"], [91, 3, 1, "", "select_range"], [91, 3, 1, "", "select_sky_circle"], [91, 3, 1, "", "select_time_range"], [91, 3, 1, "", "show_in_browser"], [91, 3, 1, "", "show_in_notebook"], [91, 3, 1, "", "sort"], [91, 3, 1, "", "summary"], [91, 2, 1, "", "time_ref"], [91, 2, 1, "", "time_start"], [91, 2, 1, "", "time_stop"], [91, 3, 1, "", "to_pandas"], [91, 3, 1, "", "update"], [91, 3, 1, "", "values"], [91, 3, 1, "", "values_equal"], [91, 2, 1, "", "write"]], "gammapy.data.Observations": [[92, 3, 1, "", "append"], [92, 3, 1, "", "clear"], [92, 3, 1, "", "count"], [92, 3, 1, "", "extend"], [92, 3, 1, "", "from_stack"], [92, 3, 1, "", "group_by_label"], [92, 2, 1, "", "ids"], [92, 3, 1, "", "in_memory_generator"], [92, 3, 1, "", "index"], [92, 3, 1, "", "insert"], [92, 3, 1, "", "pop"], [92, 3, 1, "", "remove"], [92, 3, 1, "", "reverse"], [92, 3, 1, "", "select_time"]], "gammapy.data.ObservationsEventsSampler": [[93, 2, 1, "", "n_jobs"], [93, 2, 1, "", "parallel_backend"], [93, 3, 1, "", "run"], [93, 3, 1, "", "simulate_observation"]], "gammapy.data.PointingInfo": [[94, 2, 1, "", "altaz"], [94, 2, 1, "", "altaz_frame"], [94, 2, 1, "", "altaz_from_table"], [94, 3, 1, "", "altaz_interpolate"], [94, 2, 1, "", "duration"], [94, 3, 1, "", "get_altaz"], [94, 3, 1, "", "get_icrs"], [94, 2, 1, "", "location"], [94, 2, 1, "", "radec"], [94, 3, 1, "", "read"], [94, 2, 1, "", "time"], [94, 2, 1, "", "time_ref"]], "gammapy.data.PointingMode": [[95, 2, 1, "", "DRIFT"], [95, 2, 1, "", "POINTING"]], "gammapy.datasets": [[98, 5, 1, "", "DATASET_REGISTRY"], [99, 1, 1, "", "Dataset"], [100, 1, 1, "", "Datasets"], [101, 1, 1, "", "FluxPointsDataset"], [102, 1, 1, "", "MapDataset"], [103, 1, 1, "", "MapDatasetEventSampler"], [104, 1, 1, "", "MapDatasetMetaData"], [105, 1, 1, "", "MapDatasetOnOff"], [106, 1, 1, "", "OGIPDatasetReader"], [107, 1, 1, "", "OGIPDatasetWriter"], [108, 1, 1, "", "ObservationEventSampler"], [109, 1, 1, "", "SpectrumDataset"], [110, 1, 1, "", "SpectrumDatasetOnOff"], [111, 4, 1, "", "apply_edisp"], [112, 4, 1, "", "create_empty_map_dataset_from_irfs"], [113, 4, 1, "", "create_map_dataset_from_observation"], [114, 4, 1, "", "create_map_dataset_geoms"], [115, 4, 1, "", "split_dataset"], [4, 0, 0, "-", "utils"]], "gammapy.datasets.Dataset": [[99, 3, 1, "", "copy"], [99, 2, 1, "", "mask"], [99, 2, 1, "", "name"], [99, 3, 1, "", "stat_array"], [99, 3, 1, "", "stat_sum"], [99, 2, 1, "", "tag"], [99, 3, 1, "", "to_dict"]], "gammapy.datasets.Datasets": [[100, 3, 1, "", "append"], [100, 3, 1, "", "clear"], [100, 2, 1, "", "contributes_to_stat"], [100, 3, 1, "", "copy"], [100, 3, 1, "", "count"], [100, 2, 1, "", "energy_axes_are_aligned"], [100, 2, 1, "", "energy_ranges"], [100, 3, 1, "", "extend"], [100, 2, 1, "", "gti"], [100, 3, 1, "", "index"], [100, 3, 1, "", "info_table"], [100, 3, 1, "", "insert"], [100, 2, 1, "", "is_all_same_energy_shape"], [100, 2, 1, "", "is_all_same_shape"], [100, 2, 1, "", "is_all_same_type"], [100, 2, 1, "", "meta_table"], [100, 2, 1, "", "models"], [100, 2, 1, "", "names"], [100, 2, 1, "", "parameters"], [100, 3, 1, "", "pop"], [100, 3, 1, "", "read"], [100, 3, 1, "", "remove"], [100, 3, 1, "", "reverse"], [100, 3, 1, "", "select_time"], [100, 3, 1, "", "slice_by_energy"], [100, 3, 1, "", "stack_reduce"], [100, 3, 1, "", "stat_sum"], [100, 3, 1, "", "to_spectrum_datasets"], [100, 3, 1, "", "write"]], "gammapy.datasets.FluxPointsDataset": [[101, 2, 1, "", "available_stat_type"], [101, 3, 1, "", "copy"], [101, 3, 1, "", "data_shape"], [101, 3, 1, "", "flux_pred"], [101, 3, 1, "", "from_dict"], [101, 2, 1, "", "gti"], [101, 2, 1, "", "mask"], [101, 2, 1, "", "mask_safe"], [101, 2, 1, "", "mask_valid"], [101, 2, 1, "", "models"], [101, 2, 1, "", "name"], [101, 3, 1, "", "plot_fit"], [101, 3, 1, "", "plot_residuals"], [101, 3, 1, "", "plot_spectrum"], [101, 3, 1, "", "read"], [101, 3, 1, "", "residuals"], [101, 3, 1, "", "stat_array"], [101, 3, 1, "", "stat_sum"], [101, 2, 1, "", "stat_type"], [101, 2, 1, "", "tag"], [101, 3, 1, "", "to_dict"], [101, 3, 1, "", "write"]], "gammapy.datasets.MapDataset": [[102, 2, 1, "", "background"], [102, 2, 1, "", "background_model"], [102, 3, 1, "", "copy"], [102, 2, 1, "", "counts"], [102, 3, 1, "", "create"], [102, 3, 1, "", "cutout"], [102, 2, 1, "", "data_shape"], [102, 3, 1, "", "downsample"], [102, 2, 1, "", "edisp"], [102, 2, 1, "", "energy_range"], [102, 2, 1, "", "energy_range_fit"], [102, 2, 1, "", "energy_range_safe"], [102, 2, 1, "", "energy_range_total"], [102, 2, 1, "", "evaluators"], [102, 2, 1, "", "excess"], [102, 2, 1, "", "exposure"], [102, 3, 1, "", "fake"], [102, 3, 1, "", "from_dict"], [102, 3, 1, "", "from_geoms"], [102, 3, 1, "", "from_hdulist"], [102, 2, 1, "", "geoms"], [102, 2, 1, "", "gti"], [102, 3, 1, "", "info_dict"], [102, 2, 1, "", "mask"], [102, 2, 1, "", "mask_fit"], [102, 2, 1, "", "mask_fit_image"], [102, 2, 1, "", "mask_image"], [102, 2, 1, "", "mask_safe"], [102, 2, 1, "", "mask_safe_edisp"], [102, 2, 1, "", "mask_safe_image"], [102, 2, 1, "", "mask_safe_psf"], [102, 2, 1, "", "meta"], [102, 2, 1, "", "meta_table"], [102, 2, 1, "", "models"], [102, 2, 1, "", "name"], [102, 3, 1, "", "npred"], [102, 3, 1, "", "npred_background"], [102, 3, 1, "", "npred_signal"], [102, 3, 1, "", "pad"], [102, 3, 1, "", "peek"], [102, 3, 1, "", "plot_residuals"], [102, 3, 1, "", "plot_residuals_spatial"], [102, 3, 1, "", "plot_residuals_spectral"], [102, 2, 1, "", "psf"], [102, 3, 1, "", "read"], [102, 3, 1, "", "resample_energy_axis"], [102, 3, 1, "", "reset_data_cache"], [102, 3, 1, "", "residuals"], [102, 3, 1, "", "slice_by_energy"], [102, 3, 1, "", "slice_by_idx"], [102, 3, 1, "", "stack"], [102, 3, 1, "", "stat_array"], [102, 3, 1, "", "stat_sum"], [102, 2, 1, "", "stat_type"], [102, 2, 1, "", "tag"], [102, 3, 1, "", "to_dict"], [102, 3, 1, "", "to_hdulist"], [102, 3, 1, "", "to_image"], [102, 3, 1, "", "to_masked"], [102, 3, 1, "", "to_region_map_dataset"], [102, 3, 1, "", "to_spectrum_dataset"], [102, 3, 1, "", "write"]], "gammapy.datasets.MapDatasetEventSampler": [[103, 3, 1, "", "event_det_coords"], [103, 3, 1, "", "event_list_meta"], [103, 3, 1, "", "run"], [103, 3, 1, "", "sample_background"], [103, 3, 1, "", "sample_edisp"], [103, 3, 1, "", "sample_psf"], [103, 3, 1, "", "sample_sources"]], "gammapy.datasets.MapDatasetMetaData": [[104, 3, 1, "", "construct"], [104, 3, 1, "", "copy"], [104, 3, 1, "", "dict"], [104, 3, 1, "", "from_header"], [104, 3, 1, "", "from_orm"], [104, 3, 1, "", "json"], [104, 2, 1, "", "model_computed_fields"], [104, 2, 1, "", "model_config"], [104, 3, 1, "", "model_construct"], [104, 3, 1, "", "model_copy"], [104, 3, 1, "", "model_dump"], [104, 3, 1, "", "model_dump_json"], [104, 2, 1, "", "model_extra"], [104, 2, 1, "", "model_fields"], [104, 2, 1, "", "model_fields_set"], [104, 3, 1, "", "model_json_schema"], [104, 3, 1, "", "model_parametrized_name"], [104, 3, 1, "", "model_post_init"], [104, 3, 1, "", "model_rebuild"], [104, 3, 1, "", "model_validate"], [104, 3, 1, "", "model_validate_json"], [104, 3, 1, "", "model_validate_strings"], [104, 3, 1, "", "parse_file"], [104, 3, 1, "", "parse_obj"], [104, 3, 1, "", "parse_raw"], [104, 3, 1, "", "schema"], [104, 3, 1, "", "schema_json"], [104, 3, 1, "", "stack"], [104, 2, 1, "", "tag"], [104, 3, 1, "", "to_header"], [104, 3, 1, "", "to_yaml"], [104, 3, 1, "", "update_forward_refs"], [104, 3, 1, "", "validate"]], "gammapy.datasets.MapDatasetOnOff": [[105, 2, 1, "", "alpha"], [105, 2, 1, "", "background"], [105, 2, 1, "", "background_model"], [105, 3, 1, "", "copy"], [105, 2, 1, "", "counts"], [105, 3, 1, "", "create"], [105, 3, 1, "", "cutout"], [105, 2, 1, "", "data_shape"], [105, 3, 1, "", "downsample"], [105, 2, 1, "", "edisp"], [105, 2, 1, "", "energy_range"], [105, 2, 1, "", "energy_range_fit"], [105, 2, 1, "", "energy_range_safe"], [105, 2, 1, "", "energy_range_total"], [105, 2, 1, "", "evaluators"], [105, 2, 1, "", "excess"], [105, 2, 1, "", "exposure"], [105, 3, 1, "", "fake"], [105, 3, 1, "", "from_dict"], [105, 3, 1, "", "from_geoms"], [105, 3, 1, "", "from_hdulist"], [105, 3, 1, "", "from_map_dataset"], [105, 2, 1, "", "geoms"], [105, 2, 1, "", "gti"], [105, 3, 1, "", "info_dict"], [105, 2, 1, "", "mask"], [105, 2, 1, "", "mask_fit"], [105, 2, 1, "", "mask_fit_image"], [105, 2, 1, "", "mask_image"], [105, 2, 1, "", "mask_safe"], [105, 2, 1, "", "mask_safe_edisp"], [105, 2, 1, "", "mask_safe_image"], [105, 2, 1, "", "mask_safe_psf"], [105, 2, 1, "", "meta"], [105, 2, 1, "", "meta_table"], [105, 2, 1, "", "models"], [105, 2, 1, "", "name"], [105, 3, 1, "", "npred"], [105, 3, 1, "", "npred_background"], [105, 3, 1, "", "npred_off"], [105, 3, 1, "", "npred_signal"], [105, 3, 1, "", "pad"], [105, 3, 1, "", "peek"], [105, 3, 1, "", "plot_residuals"], [105, 3, 1, "", "plot_residuals_spatial"], [105, 3, 1, "", "plot_residuals_spectral"], [105, 2, 1, "", "psf"], [105, 3, 1, "", "read"], [105, 3, 1, "", "resample_energy_axis"], [105, 3, 1, "", "reset_data_cache"], [105, 3, 1, "", "residuals"], [105, 3, 1, "", "slice_by_energy"], [105, 3, 1, "", "slice_by_idx"], [105, 3, 1, "", "stack"], [105, 3, 1, "", "stat_array"], [105, 3, 1, "", "stat_sum"], [105, 2, 1, "", "stat_type"], [105, 2, 1, "", "tag"], [105, 3, 1, "", "to_dict"], [105, 3, 1, "", "to_hdulist"], [105, 3, 1, "", "to_image"], [105, 3, 1, "", "to_map_dataset"], [105, 3, 1, "", "to_masked"], [105, 3, 1, "", "to_region_map_dataset"], [105, 3, 1, "", "to_spectrum_dataset"], [105, 3, 1, "", "write"]], "gammapy.datasets.OGIPDatasetReader": [[106, 3, 1, "", "get_filenames"], [106, 3, 1, "", "get_valid_path"], [106, 3, 1, "", "read"], [106, 3, 1, "", "read_arf"], [106, 3, 1, "", "read_bkg"], [106, 3, 1, "", "read_pha"], [106, 3, 1, "", "read_rmf"], [106, 2, 1, "", "tag"]], "gammapy.datasets.OGIPDatasetWriter": [[107, 3, 1, "", "get_filenames"], [107, 3, 1, "", "get_ogip_meta"], [107, 2, 1, "", "tag"], [107, 3, 1, "", "to_counts_hdulist"], [107, 3, 1, "", "write"], [107, 3, 1, "", "write_arf"], [107, 3, 1, "", "write_bkg"], [107, 3, 1, "", "write_pha"], [107, 3, 1, "", "write_rmf"]], "gammapy.datasets.ObservationEventSampler": [[108, 3, 1, "", "event_det_coords"], [108, 3, 1, "", "event_list_meta"], [108, 3, 1, "", "run"], [108, 3, 1, "", "sample_background"], [108, 3, 1, "", "sample_edisp"], [108, 3, 1, "", "sample_psf"], [108, 3, 1, "", "sample_sources"]], "gammapy.datasets.SpectrumDataset": [[109, 2, 1, "", "background"], [109, 2, 1, "", "background_model"], [109, 3, 1, "", "copy"], [109, 2, 1, "", "counts"], [109, 3, 1, "", "create"], [109, 3, 1, "", "cutout"], [109, 2, 1, "", "data_shape"], [109, 3, 1, "", "downsample"], [109, 2, 1, "", "edisp"], [109, 2, 1, "", "energy_range"], [109, 2, 1, "", "energy_range_fit"], [109, 2, 1, "", "energy_range_safe"], [109, 2, 1, "", "energy_range_total"], [109, 2, 1, "", "evaluators"], [109, 2, 1, "", "excess"], [109, 2, 1, "", "exposure"], [109, 3, 1, "", "fake"], [109, 3, 1, "", "from_dict"], [109, 3, 1, "", "from_geoms"], [109, 3, 1, "", "from_hdulist"], [109, 2, 1, "", "geoms"], [109, 2, 1, "", "gti"], [109, 3, 1, "", "info_dict"], [109, 2, 1, "", "mask"], [109, 2, 1, "", "mask_fit"], [109, 2, 1, "", "mask_fit_image"], [109, 2, 1, "", "mask_image"], [109, 2, 1, "", "mask_safe"], [109, 2, 1, "", "mask_safe_edisp"], [109, 2, 1, "", "mask_safe_image"], [109, 2, 1, "", "mask_safe_psf"], [109, 2, 1, "", "meta"], [109, 2, 1, "", "meta_table"], [109, 2, 1, "", "models"], [109, 2, 1, "", "name"], [109, 3, 1, "", "npred"], [109, 3, 1, "", "npred_background"], [109, 3, 1, "", "npred_signal"], [109, 3, 1, "", "pad"], [109, 3, 1, "", "peek"], [109, 3, 1, "", "plot_counts"], [109, 3, 1, "", "plot_excess"], [109, 3, 1, "", "plot_fit"], [109, 3, 1, "", "plot_masks"], [109, 3, 1, "", "plot_residuals"], [109, 3, 1, "", "plot_residuals_spatial"], [109, 3, 1, "", "plot_residuals_spectral"], [109, 2, 1, "", "psf"], [109, 3, 1, "", "read"], [109, 3, 1, "", "resample_energy_axis"], [109, 3, 1, "", "reset_data_cache"], [109, 3, 1, "", "residuals"], [109, 3, 1, "", "slice_by_energy"], [109, 3, 1, "", "slice_by_idx"], [109, 3, 1, "", "stack"], [109, 3, 1, "", "stat_array"], [109, 3, 1, "", "stat_sum"], [109, 2, 1, "", "stat_type"], [109, 2, 1, "", "tag"], [109, 3, 1, "", "to_dict"], [109, 3, 1, "", "to_hdulist"], [109, 3, 1, "", "to_image"], [109, 3, 1, "", "to_masked"], [109, 3, 1, "", "to_region_map_dataset"], [109, 3, 1, "", "to_spectrum_dataset"], [109, 3, 1, "", "write"]], "gammapy.datasets.SpectrumDatasetOnOff": [[110, 2, 1, "", "alpha"], [110, 2, 1, "", "background"], [110, 2, 1, "", "background_model"], [110, 3, 1, "", "copy"], [110, 2, 1, "", "counts"], [110, 3, 1, "", "create"], [110, 3, 1, "", "cutout"], [110, 2, 1, "", "data_shape"], [110, 3, 1, "", "downsample"], [110, 2, 1, "", "edisp"], [110, 2, 1, "", "energy_range"], [110, 2, 1, "", "energy_range_fit"], [110, 2, 1, "", "energy_range_safe"], [110, 2, 1, "", "energy_range_total"], [110, 2, 1, "", "evaluators"], [110, 2, 1, "", "excess"], [110, 2, 1, "", "exposure"], [110, 3, 1, "", "fake"], [110, 3, 1, "", "from_dict"], [110, 3, 1, "", "from_geoms"], [110, 3, 1, "", "from_hdulist"], [110, 3, 1, "", "from_map_dataset"], [110, 3, 1, "", "from_spectrum_dataset"], [110, 2, 1, "", "geoms"], [110, 2, 1, "", "gti"], [110, 3, 1, "", "info_dict"], [110, 2, 1, "", "mask"], [110, 2, 1, "", "mask_fit"], [110, 2, 1, "", "mask_fit_image"], [110, 2, 1, "", "mask_image"], [110, 2, 1, "", "mask_safe"], [110, 2, 1, "", "mask_safe_edisp"], [110, 2, 1, "", "mask_safe_image"], [110, 2, 1, "", "mask_safe_psf"], [110, 2, 1, "", "meta"], [110, 2, 1, "", "meta_table"], [110, 2, 1, "", "models"], [110, 2, 1, "", "name"], [110, 3, 1, "", "npred"], [110, 3, 1, "", "npred_background"], [110, 3, 1, "", "npred_off"], [110, 3, 1, "", "npred_signal"], [110, 3, 1, "", "pad"], [110, 3, 1, "", "peek"], [110, 3, 1, "", "plot_counts"], [110, 3, 1, "", "plot_excess"], [110, 3, 1, "", "plot_fit"], [110, 3, 1, "", "plot_masks"], [110, 3, 1, "", "plot_residuals"], [110, 3, 1, "", "plot_residuals_spatial"], [110, 3, 1, "", "plot_residuals_spectral"], [110, 2, 1, "", "psf"], [110, 3, 1, "", "read"], [110, 3, 1, "", "resample_energy_axis"], [110, 3, 1, "", "reset_data_cache"], [110, 3, 1, "", "residuals"], [110, 3, 1, "", "slice_by_energy"], [110, 3, 1, "", "slice_by_idx"], [110, 3, 1, "", "stack"], [110, 3, 1, "", "stat_array"], [110, 3, 1, "", "stat_sum"], [110, 2, 1, "", "stat_type"], [110, 2, 1, "", "tag"], [110, 3, 1, "", "to_dict"], [110, 3, 1, "", "to_hdulist"], [110, 3, 1, "", "to_image"], [110, 3, 1, "", "to_map_dataset"], [110, 3, 1, "", "to_masked"], [110, 3, 1, "", "to_region_map_dataset"], [110, 3, 1, "", "to_spectrum_dataset"], [110, 3, 1, "", "write"]], "gammapy.datasets.utils": [[116, 4, 1, "", "apply_edisp"], [117, 4, 1, "", "split_dataset"]], "gammapy.estimators": [[118, 1, 1, "", "ASmoothMapEstimator"], [119, 5, 1, "", "ESTIMATOR_REGISTRY"], [120, 1, 1, "", "EnergyDependentMorphologyEstimator"], [121, 1, 1, "", "Estimator"], [122, 1, 1, "", "ExcessMapEstimator"], [123, 1, 1, "", "FluxMaps"], [124, 1, 1, "", "FluxMetaData"], [125, 1, 1, "", "FluxPoints"], [126, 1, 1, "", "FluxPointsEstimator"], [127, 1, 1, "", "FluxProfileEstimator"], [128, 1, 1, "", "ImageProfile"], [129, 1, 1, "", "ImageProfileEstimator"], [130, 1, 1, "", "LightCurveEstimator"], [131, 1, 1, "", "ParameterEstimator"], [132, 1, 1, "", "SensitivityEstimator"], [133, 1, 1, "", "TSMapEstimator"], [5, 0, 0, "-", "utils"]], "gammapy.estimators.ASmoothMapEstimator": [[118, 2, 1, "", "config_parameters"], [118, 3, 1, "", "copy"], [118, 3, 1, "", "estimate_maps"], [118, 3, 1, "", "get_kernels"], [118, 3, 1, "", "get_scales"], [118, 3, 1, "", "run"], [118, 3, 1, "", "selection_all"], [118, 2, 1, "", "selection_optional"], [118, 2, 1, "", "tag"]], "gammapy.estimators.EnergyDependentMorphologyEstimator": [[120, 2, 1, "", "config_parameters"], [120, 3, 1, "", "copy"], [120, 3, 1, "", "estimate_energy_dependence"], [120, 3, 1, "", "run"], [120, 2, 1, "", "selection_optional"], [120, 2, 1, "", "tag"]], "gammapy.estimators.Estimator": [[121, 2, 1, "", "config_parameters"], [121, 3, 1, "", "copy"], [121, 3, 1, "", "run"], [121, 2, 1, "", "selection_optional"], [121, 2, 1, "", "tag"]], "gammapy.estimators.ExcessMapEstimator": [[122, 2, 1, "", "config_parameters"], [122, 3, 1, "", "copy"], [122, 2, 1, "", "correlation_radius"], [122, 3, 1, "", "estimate_excess_map"], [122, 3, 1, "", "estimate_exposure_reco_energy"], [122, 3, 1, "", "estimate_kernel"], [122, 3, 1, "", "estimate_mask_default"], [122, 3, 1, "", "run"], [122, 2, 1, "", "selection_optional"], [122, 2, 1, "", "tag"]], "gammapy.estimators.FluxMaps": [[123, 2, 1, "", "acceptance_off"], [123, 2, 1, "", "acceptance_on"], [123, 3, 1, "", "all_quantities"], [123, 2, 1, "", "alpha"], [123, 2, 1, "", "available_quantities"], [123, 3, 1, "", "copy"], [123, 2, 1, "", "counts"], [123, 2, 1, "", "dnde"], [123, 2, 1, "", "dnde_err"], [123, 2, 1, "", "dnde_errn"], [123, 2, 1, "", "dnde_errp"], [123, 2, 1, "", "dnde_ref"], [123, 2, 1, "", "dnde_scan_values"], [123, 2, 1, "", "dnde_ul"], [123, 2, 1, "", "e2dnde"], [123, 2, 1, "", "e2dnde_err"], [123, 2, 1, "", "e2dnde_errn"], [123, 2, 1, "", "e2dnde_errp"], [123, 2, 1, "", "e2dnde_ref"], [123, 2, 1, "", "e2dnde_ul"], [123, 2, 1, "", "eflux"], [123, 2, 1, "", "eflux_err"], [123, 2, 1, "", "eflux_errn"], [123, 2, 1, "", "eflux_errp"], [123, 2, 1, "", "eflux_ref"], [123, 2, 1, "", "eflux_ul"], [123, 2, 1, "", "energy_axis"], [123, 2, 1, "", "energy_max"], [123, 2, 1, "", "energy_min"], [123, 2, 1, "", "energy_ref"], [123, 2, 1, "", "filter_success_nan"], [123, 2, 1, "", "flux"], [123, 2, 1, "", "flux_err"], [123, 2, 1, "", "flux_errn"], [123, 2, 1, "", "flux_errp"], [123, 2, 1, "", "flux_ref"], [123, 2, 1, "", "flux_sensitivity"], [123, 2, 1, "", "flux_ul"], [123, 3, 1, "", "from_hdulist"], [123, 3, 1, "", "from_maps"], [123, 3, 1, "", "from_stack"], [123, 2, 1, "", "geom"], [123, 3, 1, "", "get_flux_points"], [123, 2, 1, "", "has_any_ts"], [123, 2, 1, "", "has_stat_profiles"], [123, 2, 1, "", "has_success"], [123, 2, 1, "", "has_ul"], [123, 2, 1, "", "is_convertible_to_flux_sed_type"], [123, 2, 1, "", "is_ul"], [123, 3, 1, "", "iter_by_axis"], [123, 2, 1, "", "n_dof"], [123, 2, 1, "", "n_sigma"], [123, 2, 1, "", "n_sigma_ul"], [123, 2, 1, "", "niter"], [123, 2, 1, "", "norm"], [123, 2, 1, "", "norm_err"], [123, 2, 1, "", "norm_errn"], [123, 2, 1, "", "norm_errp"], [123, 2, 1, "", "norm_sensitivity"], [123, 2, 1, "", "norm_ul"], [123, 2, 1, "", "npred"], [123, 2, 1, "", "npred_background"], [123, 2, 1, "", "npred_excess"], [123, 2, 1, "", "npred_excess_err"], [123, 2, 1, "", "npred_excess_errn"], [123, 2, 1, "", "npred_excess_errp"], [123, 2, 1, "", "npred_excess_ref"], [123, 2, 1, "", "npred_excess_ul"], [123, 3, 1, "", "read"], [123, 2, 1, "", "reference_model"], [123, 2, 1, "", "reference_model_default"], [123, 2, 1, "", "reference_spectral_model"], [123, 2, 1, "", "sed_type_init"], [123, 2, 1, "", "sed_type_plot_default"], [123, 3, 1, "", "slice_by_coord"], [123, 3, 1, "", "slice_by_energy"], [123, 3, 1, "", "slice_by_idx"], [123, 3, 1, "", "slice_by_time"], [123, 2, 1, "", "sqrt_ts"], [123, 2, 1, "", "sqrt_ts_threshold_ul"], [123, 2, 1, "", "stat"], [123, 2, 1, "", "stat_null"], [123, 2, 1, "", "stat_scan"], [123, 2, 1, "", "success"], [123, 3, 1, "", "to_hdulist"], [123, 3, 1, "", "to_maps"], [123, 2, 1, "", "ts"], [123, 2, 1, "", "ts_scan"], [123, 3, 1, "", "write"]], "gammapy.estimators.FluxMetaData": [[124, 3, 1, "", "construct"], [124, 3, 1, "", "copy"], [124, 3, 1, "", "dict"], [124, 3, 1, "", "from_header"], [124, 3, 1, "", "from_orm"], [124, 3, 1, "", "json"], [124, 2, 1, "", "model_computed_fields"], [124, 2, 1, "", "model_config"], [124, 3, 1, "", "model_construct"], [124, 3, 1, "", "model_copy"], [124, 3, 1, "", "model_dump"], [124, 3, 1, "", "model_dump_json"], [124, 2, 1, "", "model_extra"], [124, 2, 1, "", "model_fields"], [124, 2, 1, "", "model_fields_set"], [124, 3, 1, "", "model_json_schema"], [124, 3, 1, "", "model_parametrized_name"], [124, 3, 1, "", "model_post_init"], [124, 3, 1, "", "model_rebuild"], [124, 3, 1, "", "model_validate"], [124, 3, 1, "", "model_validate_json"], [124, 3, 1, "", "model_validate_strings"], [124, 3, 1, "", "parse_file"], [124, 3, 1, "", "parse_obj"], [124, 3, 1, "", "parse_raw"], [124, 3, 1, "", "schema"], [124, 3, 1, "", "schema_json"], [124, 2, 1, "", "tag"], [124, 3, 1, "", "to_header"], [124, 3, 1, "", "to_yaml"], [124, 3, 1, "", "update_forward_refs"], [124, 3, 1, "", "validate"]], "gammapy.estimators.FluxPoints": [[125, 2, 1, "", "acceptance_off"], [125, 2, 1, "", "acceptance_on"], [125, 3, 1, "", "all_quantities"], [125, 2, 1, "", "alpha"], [125, 2, 1, "", "available_quantities"], [125, 3, 1, "", "copy"], [125, 2, 1, "", "counts"], [125, 2, 1, "", "dnde"], [125, 2, 1, "", "dnde_err"], [125, 2, 1, "", "dnde_errn"], [125, 2, 1, "", "dnde_errp"], [125, 2, 1, "", "dnde_ref"], [125, 2, 1, "", "dnde_scan_values"], [125, 2, 1, "", "dnde_ul"], [125, 2, 1, "", "e2dnde"], [125, 2, 1, "", "e2dnde_err"], [125, 2, 1, "", "e2dnde_errn"], [125, 2, 1, "", "e2dnde_errp"], [125, 2, 1, "", "e2dnde_ref"], [125, 2, 1, "", "e2dnde_ul"], [125, 2, 1, "", "eflux"], [125, 2, 1, "", "eflux_err"], [125, 2, 1, "", "eflux_errn"], [125, 2, 1, "", "eflux_errp"], [125, 2, 1, "", "eflux_ref"], [125, 2, 1, "", "eflux_ul"], [125, 2, 1, "", "energy_axis"], [125, 2, 1, "", "energy_max"], [125, 2, 1, "", "energy_min"], [125, 2, 1, "", "energy_ref"], [125, 2, 1, "", "filter_success_nan"], [125, 2, 1, "", "flux"], [125, 2, 1, "", "flux_err"], [125, 2, 1, "", "flux_errn"], [125, 2, 1, "", "flux_errp"], [125, 2, 1, "", "flux_ref"], [125, 2, 1, "", "flux_sensitivity"], [125, 2, 1, "", "flux_ul"], [125, 3, 1, "", "from_hdulist"], [125, 3, 1, "", "from_maps"], [125, 3, 1, "", "from_stack"], [125, 3, 1, "", "from_table"], [125, 2, 1, "", "geom"], [125, 3, 1, "", "get_flux_points"], [125, 2, 1, "", "has_any_ts"], [125, 2, 1, "", "has_stat_profiles"], [125, 2, 1, "", "has_success"], [125, 2, 1, "", "has_ul"], [125, 2, 1, "", "is_convertible_to_flux_sed_type"], [125, 2, 1, "", "is_ul"], [125, 3, 1, "", "iter_by_axis"], [125, 2, 1, "", "n_dof"], [125, 2, 1, "", "n_sigma"], [125, 2, 1, "", "n_sigma_ul"], [125, 2, 1, "", "niter"], [125, 2, 1, "", "norm"], [125, 2, 1, "", "norm_err"], [125, 2, 1, "", "norm_errn"], [125, 2, 1, "", "norm_errp"], [125, 2, 1, "", "norm_sensitivity"], [125, 2, 1, "", "norm_ul"], [125, 2, 1, "", "npred"], [125, 2, 1, "", "npred_background"], [125, 2, 1, "", "npred_excess"], [125, 2, 1, "", "npred_excess_err"], [125, 2, 1, "", "npred_excess_errn"], [125, 2, 1, "", "npred_excess_errp"], [125, 2, 1, "", "npred_excess_ref"], [125, 2, 1, "", "npred_excess_ul"], [125, 3, 1, "", "plot"], [125, 3, 1, "", "plot_ts_profiles"], [125, 3, 1, "", "read"], [125, 3, 1, "", "recompute_ul"], [125, 2, 1, "", "reference_model"], [125, 2, 1, "", "reference_model_default"], [125, 2, 1, "", "reference_spectral_model"], [125, 3, 1, "", "resample_axis"], [125, 2, 1, "", "sed_type_init"], [125, 2, 1, "", "sed_type_plot_default"], [125, 3, 1, "", "slice_by_coord"], [125, 3, 1, "", "slice_by_energy"], [125, 3, 1, "", "slice_by_idx"], [125, 3, 1, "", "slice_by_time"], [125, 2, 1, "", "sqrt_ts"], [125, 2, 1, "", "sqrt_ts_threshold_ul"], [125, 2, 1, "", "stat"], [125, 2, 1, "", "stat_null"], [125, 2, 1, "", "stat_scan"], [125, 2, 1, "", "success"], [125, 3, 1, "", "to_hdulist"], [125, 3, 1, "", "to_maps"], [125, 3, 1, "", "to_table"], [125, 2, 1, "", "ts"], [125, 2, 1, "", "ts_scan"], [125, 3, 1, "", "write"]], "gammapy.estimators.FluxPointsEstimator": [[126, 2, 1, "", "config_parameters"], [126, 3, 1, "", "copy"], [126, 3, 1, "", "estimate_best_fit"], [126, 3, 1, "", "estimate_counts"], [126, 3, 1, "", "estimate_errn_errp"], [126, 3, 1, "", "estimate_flux_point"], [126, 3, 1, "", "estimate_npred"], [126, 3, 1, "", "estimate_npred_excess"], [126, 3, 1, "", "estimate_scan"], [126, 3, 1, "", "estimate_ts"], [126, 3, 1, "", "estimate_ul"], [126, 3, 1, "", "get_scale_model"], [126, 2, 1, "", "n_jobs"], [126, 2, 1, "", "parallel_backend"], [126, 3, 1, "", "run"], [126, 2, 1, "", "selection_optional"], [126, 2, 1, "", "tag"]], "gammapy.estimators.FluxProfileEstimator": [[127, 2, 1, "", "config_parameters"], [127, 3, 1, "", "copy"], [127, 3, 1, "", "estimate_best_fit"], [127, 3, 1, "", "estimate_counts"], [127, 3, 1, "", "estimate_errn_errp"], [127, 3, 1, "", "estimate_flux_point"], [127, 3, 1, "", "estimate_npred"], [127, 3, 1, "", "estimate_npred_excess"], [127, 3, 1, "", "estimate_scan"], [127, 3, 1, "", "estimate_ts"], [127, 3, 1, "", "estimate_ul"], [127, 3, 1, "", "get_scale_model"], [127, 2, 1, "", "n_jobs"], [127, 2, 1, "", "parallel_backend"], [127, 2, 1, "", "projected_distance_axis"], [127, 3, 1, "", "run"], [127, 2, 1, "", "selection_optional"], [127, 2, 1, "", "tag"]], "gammapy.estimators.ImageProfile": [[128, 3, 1, "", "normalize"], [128, 3, 1, "", "peek"], [128, 3, 1, "", "plot"], [128, 3, 1, "", "plot_err"], [128, 2, 1, "", "profile"], [128, 2, 1, "", "profile_err"], [128, 3, 1, "", "smooth"], [128, 2, 1, "", "x_max"], [128, 2, 1, "", "x_min"], [128, 2, 1, "", "x_ref"]], "gammapy.estimators.ImageProfileEstimator": [[129, 2, 1, "", "config_parameters"], [129, 3, 1, "", "copy"], [129, 3, 1, "", "run"], [129, 2, 1, "", "selection_optional"], [129, 2, 1, "", "tag"]], "gammapy.estimators.LightCurveEstimator": [[130, 2, 1, "", "config_parameters"], [130, 3, 1, "", "copy"], [130, 3, 1, "", "estimate_best_fit"], [130, 3, 1, "", "estimate_counts"], [130, 3, 1, "", "estimate_errn_errp"], [130, 3, 1, "", "estimate_flux_point"], [130, 3, 1, "", "estimate_npred"], [130, 3, 1, "", "estimate_npred_excess"], [130, 3, 1, "", "estimate_scan"], [130, 3, 1, "", "estimate_time_bin_flux"], [130, 3, 1, "", "estimate_ts"], [130, 3, 1, "", "estimate_ul"], [130, 3, 1, "", "expand_map"], [130, 3, 1, "", "get_scale_model"], [130, 2, 1, "", "n_jobs"], [130, 2, 1, "", "parallel_backend"], [130, 3, 1, "", "run"], [130, 2, 1, "", "selection_optional"], [130, 2, 1, "", "tag"]], "gammapy.estimators.ParameterEstimator": [[131, 2, 1, "", "config_parameters"], [131, 3, 1, "", "copy"], [131, 3, 1, "", "estimate_best_fit"], [131, 3, 1, "", "estimate_counts"], [131, 3, 1, "", "estimate_errn_errp"], [131, 3, 1, "", "estimate_npred"], [131, 3, 1, "", "estimate_scan"], [131, 3, 1, "", "estimate_ts"], [131, 3, 1, "", "estimate_ul"], [131, 3, 1, "", "run"], [131, 2, 1, "", "selection_optional"], [131, 2, 1, "", "tag"]], "gammapy.estimators.SensitivityEstimator": [[132, 2, 1, "", "config_parameters"], [132, 3, 1, "", "copy"], [132, 3, 1, "", "estimate_min_e2dnde"], [132, 3, 1, "", "estimate_min_excess"], [132, 3, 1, "", "run"], [132, 2, 1, "", "selection_optional"], [132, 2, 1, "", "tag"]], "gammapy.estimators.TSMapEstimator": [[133, 2, 1, "", "config_parameters"], [133, 3, 1, "", "copy"], [133, 3, 1, "", "estimate_fit_input_maps"], [133, 3, 1, "", "estimate_flux_default"], [133, 3, 1, "", "estimate_flux_map"], [133, 3, 1, "", "estimate_kernel"], [133, 3, 1, "", "estimate_mask_default"], [133, 3, 1, "", "estimate_pad_width"], [133, 2, 1, "", "n_jobs"], [133, 2, 1, "", "parallel_backend"], [133, 3, 1, "", "run"], [133, 2, 1, "", "selection_all"], [133, 2, 1, "", "selection_optional"], [133, 2, 1, "", "tag"]], "gammapy.estimators.utils": [[134, 4, 1, "", "combine_flux_maps"], [135, 4, 1, "", "combine_significance_maps"], [136, 4, 1, "", "compute_lightcurve_discrete_correlation"], [137, 4, 1, "", "compute_lightcurve_doublingtime"], [138, 4, 1, "", "compute_lightcurve_fpp"], [139, 4, 1, "", "compute_lightcurve_fvar"], [140, 4, 1, "", "estimate_exposure_reco_energy"], [141, 4, 1, "", "find_peaks"], [142, 4, 1, "", "find_peaks_in_flux_map"], [143, 4, 1, "", "get_combined_flux_maps"], [144, 4, 1, "", "get_combined_significance_maps"], [145, 4, 1, "", "get_rebinned_axis"], [146, 4, 1, "", "resample_energy_edges"]], "gammapy.irf": [[147, 1, 1, "", "Background2D"], [148, 1, 1, "", "Background3D"], [149, 1, 1, "", "BackgroundIRF"], [150, 1, 1, "", "EDispKernel"], [151, 1, 1, "", "EDispKernelMap"], [152, 1, 1, "", "EDispMap"], [153, 1, 1, "", "EffectiveAreaTable2D"], [154, 1, 1, "", "EnergyDependentMultiGaussPSF"], [155, 1, 1, "", "EnergyDispersion2D"], [156, 1, 1, "", "FoVAlignment"], [157, 1, 1, "", "IRF"], [158, 1, 1, "", "IRFMap"], [159, 5, 1, "", "IRF_REGISTRY"], [160, 1, 1, "", "PSF3D"], [161, 1, 1, "", "PSFKernel"], [162, 1, 1, "", "PSFKing"], [163, 1, 1, "", "PSFMap"], [164, 1, 1, "", "ParametricPSF"], [165, 1, 1, "", "RadMax2D"], [166, 1, 1, "", "RecoPSFMap"], [167, 4, 1, "", "load_irf_dict_from_file"]], "gammapy.irf.Background2D": [[147, 2, 1, "", "axes"], [147, 3, 1, "", "cumsum"], [147, 2, 1, "", "data"], [147, 2, 1, "", "default_interp_kwargs"], [147, 2, 1, "", "default_unit"], [147, 3, 1, "", "evaluate"], [147, 2, 1, "", "fov_alignment"], [147, 3, 1, "", "from_hdulist"], [147, 3, 1, "", "from_table"], [147, 2, 1, "", "has_offset_axis"], [147, 3, 1, "", "integral"], [147, 3, 1, "", "integrate_log_log"], [147, 3, 1, "", "interp_missing_data"], [147, 3, 1, "", "is_allclose"], [147, 2, 1, "", "is_pointlike"], [147, 3, 1, "", "normalize"], [147, 3, 1, "", "pad"], [147, 3, 1, "", "peek"], [147, 3, 1, "", "plot"], [147, 3, 1, "", "plot_at_energy"], [147, 3, 1, "", "plot_energy_dependence"], [147, 3, 1, "", "plot_offset_dependence"], [147, 3, 1, "", "plot_spectrum"], [147, 2, 1, "", "quantity"], [147, 3, 1, "", "read"], [147, 2, 1, "", "required_axes"], [147, 3, 1, "", "slice_by_idx"], [147, 2, 1, "", "tag"], [147, 3, 1, "", "to_3d"], [147, 3, 1, "", "to_hdulist"], [147, 3, 1, "", "to_table"], [147, 3, 1, "", "to_table_hdu"], [147, 3, 1, "", "to_unit"], [147, 2, 1, "", "unit"], [147, 3, 1, "", "write"]], "gammapy.irf.Background3D": [[148, 2, 1, "", "axes"], [148, 3, 1, "", "cumsum"], [148, 2, 1, "", "data"], [148, 2, 1, "", "default_interp_kwargs"], [148, 2, 1, "", "default_unit"], [148, 3, 1, "", "evaluate"], [148, 2, 1, "", "fov_alignment"], [148, 3, 1, "", "from_hdulist"], [148, 3, 1, "", "from_table"], [148, 2, 1, "", "has_offset_axis"], [148, 3, 1, "", "integral"], [148, 3, 1, "", "integrate_log_log"], [148, 3, 1, "", "interp_missing_data"], [148, 3, 1, "", "is_allclose"], [148, 2, 1, "", "is_pointlike"], [148, 3, 1, "", "normalize"], [148, 3, 1, "", "pad"], [148, 3, 1, "", "peek"], [148, 3, 1, "", "plot_at_energy"], [148, 2, 1, "", "quantity"], [148, 3, 1, "", "read"], [148, 2, 1, "", "required_axes"], [148, 3, 1, "", "slice_by_idx"], [148, 2, 1, "", "tag"], [148, 3, 1, "", "to_2d"], [148, 3, 1, "", "to_hdulist"], [148, 3, 1, "", "to_table"], [148, 3, 1, "", "to_table_hdu"], [148, 3, 1, "", "to_unit"], [148, 2, 1, "", "unit"], [148, 3, 1, "", "write"]], "gammapy.irf.BackgroundIRF": [[149, 2, 1, "", "axes"], [149, 3, 1, "", "cumsum"], [149, 2, 1, "", "data"], [149, 2, 1, "", "default_interp_kwargs"], [149, 3, 1, "", "evaluate"], [149, 2, 1, "", "fov_alignment"], [149, 3, 1, "", "from_hdulist"], [149, 3, 1, "", "from_table"], [149, 2, 1, "", "has_offset_axis"], [149, 3, 1, "", "integral"], [149, 3, 1, "", "integrate_log_log"], [149, 3, 1, "", "interp_missing_data"], [149, 3, 1, "", "is_allclose"], [149, 2, 1, "", "is_pointlike"], [149, 3, 1, "", "normalize"], [149, 3, 1, "", "pad"], [149, 2, 1, "", "quantity"], [149, 3, 1, "", "read"], [149, 2, 1, "", "required_axes"], [149, 3, 1, "", "slice_by_idx"], [149, 2, 1, "", "tag"], [149, 3, 1, "", "to_hdulist"], [149, 3, 1, "", "to_table"], [149, 3, 1, "", "to_table_hdu"], [149, 3, 1, "", "to_unit"], [149, 2, 1, "", "unit"], [149, 3, 1, "", "write"]], "gammapy.irf.EDispKernel": [[150, 2, 1, "", "axes"], [150, 3, 1, "", "cumsum"], [150, 2, 1, "", "data"], [150, 2, 1, "", "default_interp_kwargs"], [150, 3, 1, "", "evaluate"], [150, 2, 1, "", "fov_alignment"], [150, 3, 1, "", "from_diagonal_response"], [150, 3, 1, "", "from_gauss"], [150, 3, 1, "", "from_hdulist"], [150, 3, 1, "", "from_table"], [150, 3, 1, "", "get_bias"], [150, 3, 1, "", "get_bias_energy"], [150, 3, 1, "", "get_mean"], [150, 3, 1, "", "get_resolution"], [150, 2, 1, "", "has_offset_axis"], [150, 3, 1, "", "integral"], [150, 3, 1, "", "integrate_log_log"], [150, 3, 1, "", "interp_missing_data"], [150, 3, 1, "", "is_allclose"], [150, 2, 1, "", "is_pointlike"], [150, 3, 1, "", "normalize"], [150, 3, 1, "", "pad"], [150, 3, 1, "", "pdf_in_safe_range"], [150, 2, 1, "", "pdf_matrix"], [150, 3, 1, "", "peek"], [150, 3, 1, "", "plot_bias"], [150, 3, 1, "", "plot_matrix"], [150, 2, 1, "", "quantity"], [150, 3, 1, "", "read"], [150, 2, 1, "", "required_axes"], [150, 3, 1, "", "slice_by_idx"], [150, 2, 1, "", "tag"], [150, 3, 1, "", "to_hdulist"], [150, 3, 1, "", "to_image"], [150, 3, 1, "", "to_table"], [150, 3, 1, "", "to_table_hdu"], [150, 3, 1, "", "to_unit"], [150, 2, 1, "", "unit"], [150, 3, 1, "", "write"]], "gammapy.irf.EDispKernelMap": [[151, 3, 1, "", "copy"], [151, 3, 1, "", "cutout"], [151, 3, 1, "", "downsample"], [151, 2, 1, "", "edisp_map"], [151, 3, 1, "", "from_diagonal_response"], [151, 3, 1, "", "from_edisp_kernel"], [151, 3, 1, "", "from_gauss"], [151, 3, 1, "", "from_geom"], [151, 3, 1, "", "from_hdulist"], [151, 3, 1, "", "get_edisp_kernel"], [151, 2, 1, "", "has_single_spatial_bin"], [151, 2, 1, "", "mask_safe_image"], [151, 3, 1, "", "peek"], [151, 3, 1, "", "read"], [151, 2, 1, "", "required_axes"], [151, 3, 1, "", "resample_energy_axis"], [151, 3, 1, "", "slice_by_idx"], [151, 3, 1, "", "stack"], [151, 2, 1, "", "tag"], [151, 3, 1, "", "to_hdulist"], [151, 3, 1, "", "to_image"], [151, 3, 1, "", "to_region_nd_map"], [151, 3, 1, "", "write"]], "gammapy.irf.EDispMap": [[152, 3, 1, "", "copy"], [152, 3, 1, "", "cutout"], [152, 3, 1, "", "downsample"], [152, 2, 1, "", "edisp_map"], [152, 3, 1, "", "from_diagonal_response"], [152, 3, 1, "", "from_geom"], [152, 3, 1, "", "from_hdulist"], [152, 3, 1, "", "get_edisp_kernel"], [152, 2, 1, "", "has_single_spatial_bin"], [152, 2, 1, "", "mask_safe_image"], [152, 3, 1, "", "normalize"], [152, 3, 1, "", "peek"], [152, 3, 1, "", "read"], [152, 2, 1, "", "required_axes"], [152, 3, 1, "", "sample_coord"], [152, 3, 1, "", "slice_by_idx"], [152, 3, 1, "", "stack"], [152, 2, 1, "", "tag"], [152, 3, 1, "", "to_edisp_kernel_map"], [152, 3, 1, "", "to_hdulist"], [152, 3, 1, "", "to_region_nd_map"], [152, 3, 1, "", "write"]], "gammapy.irf.EffectiveAreaTable2D": [[153, 2, 1, "", "axes"], [153, 3, 1, "", "cumsum"], [153, 2, 1, "", "data"], [153, 2, 1, "", "default_interp_kwargs"], [153, 2, 1, "", "default_unit"], [153, 3, 1, "", "evaluate"], [153, 2, 1, "", "fov_alignment"], [153, 3, 1, "", "from_hdulist"], [153, 3, 1, "", "from_parametrization"], [153, 3, 1, "", "from_table"], [153, 2, 1, "", "has_offset_axis"], [153, 3, 1, "", "integral"], [153, 3, 1, "", "integrate_log_log"], [153, 3, 1, "", "interp_missing_data"], [153, 3, 1, "", "is_allclose"], [153, 2, 1, "", "is_pointlike"], [153, 3, 1, "", "normalize"], [153, 3, 1, "", "pad"], [153, 3, 1, "", "peek"], [153, 3, 1, "", "plot"], [153, 3, 1, "", "plot_energy_dependence"], [153, 3, 1, "", "plot_offset_dependence"], [153, 2, 1, "", "quantity"], [153, 3, 1, "", "read"], [153, 2, 1, "", "required_axes"], [153, 3, 1, "", "slice_by_idx"], [153, 2, 1, "", "tag"], [153, 3, 1, "", "to_hdulist"], [153, 3, 1, "", "to_table"], [153, 3, 1, "", "to_table_hdu"], [153, 3, 1, "", "to_unit"], [153, 2, 1, "", "unit"], [153, 3, 1, "", "write"]], "gammapy.irf.EnergyDependentMultiGaussPSF": [[154, 2, 1, "", "axes"], [154, 3, 1, "", "containment"], [154, 3, 1, "", "containment_radius"], [154, 3, 1, "", "cumsum"], [154, 2, 1, "", "data"], [154, 2, 1, "", "default_interp_kwargs"], [154, 3, 1, "", "evaluate"], [154, 3, 1, "", "evaluate_containment"], [154, 3, 1, "", "evaluate_direct"], [154, 3, 1, "", "evaluate_parameters"], [154, 2, 1, "", "fov_alignment"], [154, 3, 1, "", "from_hdulist"], [154, 3, 1, "", "from_table"], [154, 2, 1, "", "has_offset_axis"], [154, 3, 1, "", "info"], [154, 3, 1, "", "integral"], [154, 3, 1, "", "integrate_log_log"], [154, 3, 1, "", "interp_missing_data"], [154, 3, 1, "", "is_allclose"], [154, 2, 1, "", "is_pointlike"], [154, 3, 1, "", "normalize"], [154, 3, 1, "", "pad"], [154, 3, 1, "", "peek"], [154, 3, 1, "", "plot_containment_radius"], [154, 3, 1, "", "plot_containment_radius_vs_energy"], [154, 3, 1, "", "plot_psf_vs_rad"], [154, 2, 1, "", "quantity"], [154, 3, 1, "", "read"], [154, 2, 1, "", "required_axes"], [154, 2, 1, "", "required_parameters"], [154, 3, 1, "", "slice_by_idx"], [154, 2, 1, "", "tag"], [154, 3, 1, "", "to_hdulist"], [154, 3, 1, "", "to_psf3d"], [154, 3, 1, "", "to_table"], [154, 3, 1, "", "to_table_hdu"], [154, 3, 1, "", "to_unit"], [154, 2, 1, "", "unit"], [154, 3, 1, "", "write"]], "gammapy.irf.EnergyDispersion2D": [[155, 2, 1, "", "axes"], [155, 3, 1, "", "cumsum"], [155, 2, 1, "", "data"], [155, 2, 1, "", "default_interp_kwargs"], [155, 2, 1, "", "default_unit"], [155, 3, 1, "", "evaluate"], [155, 2, 1, "", "fov_alignment"], [155, 3, 1, "", "from_gauss"], [155, 3, 1, "", "from_hdulist"], [155, 3, 1, "", "from_table"], [155, 2, 1, "", "has_offset_axis"], [155, 3, 1, "", "integral"], [155, 3, 1, "", "integrate_log_log"], [155, 3, 1, "", "interp_missing_data"], [155, 3, 1, "", "is_allclose"], [155, 2, 1, "", "is_pointlike"], [155, 3, 1, "", "normalize"], [155, 3, 1, "", "pad"], [155, 3, 1, "", "peek"], [155, 3, 1, "", "plot_bias"], [155, 3, 1, "", "plot_migration"], [155, 2, 1, "", "quantity"], [155, 3, 1, "", "read"], [155, 2, 1, "", "required_axes"], [155, 3, 1, "", "slice_by_idx"], [155, 2, 1, "", "tag"], [155, 3, 1, "", "to_edisp_kernel"], [155, 3, 1, "", "to_hdulist"], [155, 3, 1, "", "to_table"], [155, 3, 1, "", "to_table_hdu"], [155, 3, 1, "", "to_unit"], [155, 2, 1, "", "unit"], [155, 3, 1, "", "write"]], "gammapy.irf.FoVAlignment": [[156, 2, 1, "", "ALTAZ"], [156, 2, 1, "", "RADEC"], [156, 2, 1, "", "REVERSE_LON_RADEC"]], "gammapy.irf.IRF": [[157, 2, 1, "", "axes"], [157, 3, 1, "", "cumsum"], [157, 2, 1, "", "data"], [157, 2, 1, "", "default_interp_kwargs"], [157, 3, 1, "", "evaluate"], [157, 2, 1, "", "fov_alignment"], [157, 3, 1, "", "from_hdulist"], [157, 3, 1, "", "from_table"], [157, 2, 1, "", "has_offset_axis"], [157, 3, 1, "", "integral"], [157, 3, 1, "", "integrate_log_log"], [157, 3, 1, "", "interp_missing_data"], [157, 3, 1, "", "is_allclose"], [157, 2, 1, "", "is_pointlike"], [157, 3, 1, "", "normalize"], [157, 3, 1, "", "pad"], [157, 2, 1, "", "quantity"], [157, 3, 1, "", "read"], [157, 2, 1, "", "required_axes"], [157, 3, 1, "", "slice_by_idx"], [157, 2, 1, "", "tag"], [157, 3, 1, "", "to_hdulist"], [157, 3, 1, "", "to_table"], [157, 3, 1, "", "to_table_hdu"], [157, 3, 1, "", "to_unit"], [157, 2, 1, "", "unit"], [157, 3, 1, "", "write"]], "gammapy.irf.IRFMap": [[158, 3, 1, "", "copy"], [158, 3, 1, "", "cutout"], [158, 3, 1, "", "downsample"], [158, 3, 1, "", "from_hdulist"], [158, 2, 1, "", "has_single_spatial_bin"], [158, 2, 1, "", "mask_safe_image"], [158, 3, 1, "", "read"], [158, 2, 1, "", "required_axes"], [158, 3, 1, "", "slice_by_idx"], [158, 3, 1, "", "stack"], [158, 2, 1, "", "tag"], [158, 3, 1, "", "to_hdulist"], [158, 3, 1, "", "to_region_nd_map"], [158, 3, 1, "", "write"]], "gammapy.irf.PSF3D": [[160, 2, 1, "", "axes"], [160, 3, 1, "", "containment"], [160, 3, 1, "", "containment_radius"], [160, 3, 1, "", "cumsum"], [160, 2, 1, "", "data"], [160, 2, 1, "", "default_interp_kwargs"], [160, 2, 1, "", "default_unit"], [160, 3, 1, "", "evaluate"], [160, 2, 1, "", "fov_alignment"], [160, 3, 1, "", "from_hdulist"], [160, 3, 1, "", "from_table"], [160, 2, 1, "", "has_offset_axis"], [160, 3, 1, "", "info"], [160, 3, 1, "", "integral"], [160, 3, 1, "", "integrate_log_log"], [160, 3, 1, "", "interp_missing_data"], [160, 3, 1, "", "is_allclose"], [160, 2, 1, "", "is_pointlike"], [160, 3, 1, "", "normalize"], [160, 3, 1, "", "pad"], [160, 3, 1, "", "peek"], [160, 3, 1, "", "plot_containment_radius"], [160, 3, 1, "", "plot_containment_radius_vs_energy"], [160, 3, 1, "", "plot_psf_vs_rad"], [160, 2, 1, "", "quantity"], [160, 3, 1, "", "read"], [160, 2, 1, "", "required_axes"], [160, 3, 1, "", "slice_by_idx"], [160, 2, 1, "", "tag"], [160, 3, 1, "", "to_hdulist"], [160, 3, 1, "", "to_table"], [160, 3, 1, "", "to_table_hdu"], [160, 3, 1, "", "to_unit"], [160, 2, 1, "", "unit"], [160, 3, 1, "", "write"]], "gammapy.irf.PSFKernel": [[161, 2, 1, "", "data"], [161, 3, 1, "", "from_gauss"], [161, 3, 1, "", "from_spatial_model"], [161, 3, 1, "", "normalize"], [161, 3, 1, "", "peek"], [161, 3, 1, "", "plot_kernel"], [161, 2, 1, "", "psf_kernel_map"], [161, 3, 1, "", "read"], [161, 3, 1, "", "slice_by_idx"], [161, 3, 1, "", "to_image"], [161, 3, 1, "", "write"]], "gammapy.irf.PSFKing": [[162, 2, 1, "", "axes"], [162, 3, 1, "", "containment"], [162, 3, 1, "", "containment_radius"], [162, 3, 1, "", "cumsum"], [162, 2, 1, "", "data"], [162, 2, 1, "", "default_interp_kwargs"], [162, 3, 1, "", "evaluate"], [162, 3, 1, "", "evaluate_containment"], [162, 3, 1, "", "evaluate_direct"], [162, 3, 1, "", "evaluate_parameters"], [162, 2, 1, "", "fov_alignment"], [162, 3, 1, "", "from_hdulist"], [162, 3, 1, "", "from_table"], [162, 2, 1, "", "has_offset_axis"], [162, 3, 1, "", "info"], [162, 3, 1, "", "integral"], [162, 3, 1, "", "integrate_log_log"], [162, 3, 1, "", "interp_missing_data"], [162, 3, 1, "", "is_allclose"], [162, 2, 1, "", "is_pointlike"], [162, 3, 1, "", "normalize"], [162, 3, 1, "", "pad"], [162, 3, 1, "", "peek"], [162, 3, 1, "", "plot_containment_radius"], [162, 3, 1, "", "plot_containment_radius_vs_energy"], [162, 3, 1, "", "plot_psf_vs_rad"], [162, 2, 1, "", "quantity"], [162, 3, 1, "", "read"], [162, 2, 1, "", "required_axes"], [162, 2, 1, "", "required_parameters"], [162, 3, 1, "", "slice_by_idx"], [162, 2, 1, "", "tag"], [162, 3, 1, "", "to_hdulist"], [162, 3, 1, "", "to_psf3d"], [162, 3, 1, "", "to_table"], [162, 3, 1, "", "to_table_hdu"], [162, 3, 1, "", "to_unit"], [162, 2, 1, "", "unit"], [162, 3, 1, "", "write"]], "gammapy.irf.PSFMap": [[163, 3, 1, "", "containment"], [163, 3, 1, "", "containment_radius"], [163, 3, 1, "", "containment_radius_map"], [163, 3, 1, "", "copy"], [163, 3, 1, "", "cutout"], [163, 3, 1, "", "downsample"], [163, 2, 1, "", "energy_name"], [163, 3, 1, "", "from_gauss"], [163, 3, 1, "", "from_geom"], [163, 3, 1, "", "from_hdulist"], [163, 3, 1, "", "get_psf_kernel"], [163, 2, 1, "", "has_single_spatial_bin"], [163, 2, 1, "", "mask_safe_image"], [163, 3, 1, "", "normalize"], [163, 3, 1, "", "peek"], [163, 3, 1, "", "plot_containment_radius_vs_energy"], [163, 3, 1, "", "plot_psf_vs_rad"], [163, 2, 1, "", "psf_map"], [163, 3, 1, "", "read"], [163, 2, 1, "", "required_axes"], [163, 3, 1, "", "sample_coord"], [163, 3, 1, "", "slice_by_idx"], [163, 3, 1, "", "stack"], [163, 2, 1, "", "tag"], [163, 3, 1, "", "to_hdulist"], [163, 3, 1, "", "to_image"], [163, 3, 1, "", "to_region_nd_map"], [163, 3, 1, "", "write"]], "gammapy.irf.ParametricPSF": [[164, 2, 1, "", "axes"], [164, 3, 1, "", "containment"], [164, 3, 1, "", "containment_radius"], [164, 3, 1, "", "cumsum"], [164, 2, 1, "", "data"], [164, 2, 1, "", "default_interp_kwargs"], [164, 3, 1, "", "evaluate"], [164, 3, 1, "", "evaluate_containment"], [164, 3, 1, "", "evaluate_direct"], [164, 3, 1, "", "evaluate_parameters"], [164, 2, 1, "", "fov_alignment"], [164, 3, 1, "", "from_hdulist"], [164, 3, 1, "", "from_table"], [164, 2, 1, "", "has_offset_axis"], [164, 3, 1, "", "info"], [164, 3, 1, "", "integral"], [164, 3, 1, "", "integrate_log_log"], [164, 3, 1, "", "interp_missing_data"], [164, 3, 1, "", "is_allclose"], [164, 2, 1, "", "is_pointlike"], [164, 3, 1, "", "normalize"], [164, 3, 1, "", "pad"], [164, 3, 1, "", "peek"], [164, 3, 1, "", "plot_containment_radius"], [164, 3, 1, "", "plot_containment_radius_vs_energy"], [164, 3, 1, "", "plot_psf_vs_rad"], [164, 2, 1, "", "quantity"], [164, 3, 1, "", "read"], [164, 2, 1, "", "required_axes"], [164, 2, 1, "", "required_parameters"], [164, 3, 1, "", "slice_by_idx"], [164, 2, 1, "", "tag"], [164, 3, 1, "", "to_hdulist"], [164, 3, 1, "", "to_psf3d"], [164, 3, 1, "", "to_table"], [164, 3, 1, "", "to_table_hdu"], [164, 3, 1, "", "to_unit"], [164, 2, 1, "", "unit"], [164, 3, 1, "", "write"]], "gammapy.irf.RadMax2D": [[165, 2, 1, "", "axes"], [165, 3, 1, "", "cumsum"], [165, 2, 1, "", "data"], [165, 2, 1, "", "default_interp_kwargs"], [165, 2, 1, "", "default_unit"], [165, 3, 1, "", "evaluate"], [165, 2, 1, "", "fov_alignment"], [165, 3, 1, "", "from_hdulist"], [165, 3, 1, "", "from_irf"], [165, 3, 1, "", "from_table"], [165, 2, 1, "", "has_offset_axis"], [165, 3, 1, "", "integral"], [165, 3, 1, "", "integrate_log_log"], [165, 3, 1, "", "interp_missing_data"], [165, 3, 1, "", "is_allclose"], [165, 2, 1, "", "is_fixed_rad_max"], [165, 2, 1, "", "is_pointlike"], [165, 3, 1, "", "normalize"], [165, 3, 1, "", "pad"], [165, 3, 1, "", "plot_rad_max_vs_energy"], [165, 2, 1, "", "quantity"], [165, 3, 1, "", "read"], [165, 2, 1, "", "required_axes"], [165, 3, 1, "", "slice_by_idx"], [165, 2, 1, "", "tag"], [165, 3, 1, "", "to_hdulist"], [165, 3, 1, "", "to_table"], [165, 3, 1, "", "to_table_hdu"], [165, 3, 1, "", "to_unit"], [165, 2, 1, "", "unit"], [165, 3, 1, "", "write"]], "gammapy.irf.RecoPSFMap": [[166, 3, 1, "", "containment"], [166, 3, 1, "", "containment_radius"], [166, 3, 1, "", "containment_radius_map"], [166, 3, 1, "", "copy"], [166, 3, 1, "", "cutout"], [166, 3, 1, "", "downsample"], [166, 2, 1, "", "energy_name"], [166, 3, 1, "", "from_gauss"], [166, 3, 1, "", "from_geom"], [166, 3, 1, "", "from_hdulist"], [166, 3, 1, "", "get_psf_kernel"], [166, 2, 1, "", "has_single_spatial_bin"], [166, 2, 1, "", "mask_safe_image"], [166, 3, 1, "", "normalize"], [166, 3, 1, "", "peek"], [166, 3, 1, "", "plot_containment_radius_vs_energy"], [166, 3, 1, "", "plot_psf_vs_rad"], [166, 2, 1, "", "psf_map"], [166, 3, 1, "", "read"], [166, 2, 1, "", "required_axes"], [166, 3, 1, "", "sample_coord"], [166, 3, 1, "", "slice_by_idx"], [166, 3, 1, "", "stack"], [166, 2, 1, "", "tag"], [166, 3, 1, "", "to_hdulist"], [166, 3, 1, "", "to_image"], [166, 3, 1, "", "to_region_nd_map"], [166, 3, 1, "", "write"]], "gammapy.makers": [[168, 1, 1, "", "AdaptiveRingBackgroundMaker"], [169, 1, 1, "", "DatasetsMaker"], [170, 1, 1, "", "FoVBackgroundMaker"], [171, 5, 1, "", "MAKER_REGISTRY"], [172, 1, 1, "", "Maker"], [173, 1, 1, "", "MapDatasetMaker"], [174, 1, 1, "", "PhaseBackgroundMaker"], [175, 1, 1, "", "ReflectedRegionsBackgroundMaker"], [176, 1, 1, "", "ReflectedRegionsFinder"], [177, 1, 1, "", "RegionsFinder"], [178, 1, 1, "", "RingBackgroundMaker"], [179, 1, 1, "", "SafeMaskMaker"], [180, 1, 1, "", "SpectrumDatasetMaker"], [181, 1, 1, "", "WobbleRegionsFinder"], [8, 0, 0, "-", "utils"]], "gammapy.makers.AdaptiveRingBackgroundMaker": [[168, 3, 1, "", "kernels"], [168, 3, 1, "", "make_cubes"], [168, 3, 1, "", "run"], [168, 2, 1, "", "tag"]], "gammapy.makers.DatasetsMaker": [[169, 3, 1, "", "callback"], [169, 3, 1, "", "error_callback"], [169, 3, 1, "", "make_dataset"], [169, 2, 1, "", "n_jobs"], [169, 2, 1, "", "offset_max"], [169, 2, 1, "", "parallel_backend"], [169, 3, 1, "", "run"], [169, 2, 1, "", "safe_mask_maker"], [169, 2, 1, "", "tag"]], "gammapy.makers.FoVBackgroundMaker": [[170, 2, 1, "", "available_methods"], [170, 3, 1, "", "make_background_fit"], [170, 3, 1, "", "make_background_scale"], [170, 3, 1, "", "make_default_fov_background_model"], [170, 3, 1, "", "make_exclusion_mask"], [170, 2, 1, "", "method"], [170, 3, 1, "", "run"], [170, 2, 1, "", "tag"]], "gammapy.makers.Maker": [[172, 3, 1, "", "run"], [172, 2, 1, "", "tag"]], "gammapy.makers.MapDatasetMaker": [[173, 2, 1, "", "available_selection"], [173, 3, 1, "", "make_background"], [173, 3, 1, "", "make_counts"], [173, 3, 1, "", "make_edisp"], [173, 3, 1, "", "make_edisp_kernel"], [173, 3, 1, "", "make_exposure"], [173, 3, 1, "", "make_exposure_irf"], [173, 3, 1, "", "make_meta_table"], [173, 3, 1, "", "make_psf"], [173, 3, 1, "", "run"], [173, 2, 1, "", "tag"]], "gammapy.makers.PhaseBackgroundMaker": [[174, 3, 1, "", "make_counts"], [174, 3, 1, "", "make_counts_off"], [174, 3, 1, "", "run"], [174, 2, 1, "", "tag"]], "gammapy.makers.ReflectedRegionsBackgroundMaker": [[175, 3, 1, "", "make_counts_off"], [175, 3, 1, "", "run"], [175, 2, 1, "", "tag"]], "gammapy.makers.ReflectedRegionsFinder": [[176, 3, 1, "", "run"]], "gammapy.makers.RegionsFinder": [[177, 3, 1, "", "run"]], "gammapy.makers.RingBackgroundMaker": [[178, 3, 1, "", "kernel"], [178, 3, 1, "", "make_maps_off"], [178, 3, 1, "", "run"], [178, 2, 1, "", "tag"]], "gammapy.makers.SafeMaskMaker": [[179, 2, 1, "", "available_methods"], [179, 3, 1, "", "make_mask_bkg_invalid"], [179, 3, 1, "", "make_mask_energy_aeff_default"], [179, 3, 1, "", "make_mask_energy_aeff_max"], [179, 3, 1, "", "make_mask_energy_bkg_peak"], [179, 3, 1, "", "make_mask_energy_edisp_bias"], [179, 3, 1, "", "make_mask_offset_max"], [179, 3, 1, "", "run"], [179, 2, 1, "", "tag"]], "gammapy.makers.SpectrumDatasetMaker": [[180, 2, 1, "", "available_selection"], [180, 3, 1, "", "make_background"], [180, 3, 1, "", "make_counts"], [180, 3, 1, "", "make_edisp"], [180, 3, 1, "", "make_edisp_kernel"], [180, 3, 1, "", "make_exposure"], [180, 3, 1, "", "make_exposure_irf"], [180, 3, 1, "", "make_meta_table"], [180, 3, 1, "", "make_psf"], [180, 3, 1, "", "run"], [180, 2, 1, "", "tag"]], "gammapy.makers.WobbleRegionsFinder": [[181, 3, 1, "", "run"]], "gammapy.makers.utils": [[182, 4, 1, "", "make_counts_rad_max"], [183, 4, 1, "", "make_edisp_kernel_map"], [184, 4, 1, "", "make_edisp_map"], [185, 4, 1, "", "make_effective_livetime_map"], [186, 4, 1, "", "make_map_background_irf"], [187, 4, 1, "", "make_map_exposure_true_energy"], [188, 4, 1, "", "make_observation_time_map"], [189, 4, 1, "", "make_psf_map"], [190, 4, 1, "", "make_theta_squared_table"]], "gammapy.maps": [[191, 1, 1, "", "Geom"], [192, 1, 1, "", "HpxGeom"], [193, 1, 1, "", "HpxMap"], [194, 1, 1, "", "HpxNDMap"], [195, 1, 1, "", "LabelMapAxis"], [196, 1, 1, "", "Map"], [197, 1, 1, "", "MapAxes"], [198, 1, 1, "", "MapAxis"], [199, 1, 1, "", "MapCoord"], [200, 1, 1, "", "Maps"], [201, 1, 1, "", "RegionGeom"], [202, 1, 1, "", "RegionNDMap"], [203, 1, 1, "", "TimeMapAxis"], [204, 1, 1, "", "WcsGeom"], [205, 1, 1, "", "WcsMap"], [206, 1, 1, "", "WcsNDMap"], [207, 4, 1, "", "containment_radius"], [208, 4, 1, "", "containment_region"]], "gammapy.maps.Geom": [[191, 2, 1, "", "as_energy_true"], [191, 2, 1, "", "center_coord"], [191, 2, 1, "", "center_pix"], [191, 2, 1, "", "center_skydir"], [191, 3, 1, "", "contains"], [191, 3, 1, "", "contains_pix"], [191, 3, 1, "", "coord_to_idx"], [191, 3, 1, "", "coord_to_pix"], [191, 3, 1, "", "copy"], [191, 3, 1, "", "crop"], [191, 3, 1, "", "data_nbytes"], [191, 2, 1, "", "data_shape"], [191, 3, 1, "", "downsample"], [191, 3, 1, "", "drop"], [191, 3, 1, "", "energy_mask"], [191, 3, 1, "", "from_hdulist"], [191, 3, 1, "", "get_coord"], [191, 3, 1, "", "get_idx"], [191, 2, 1, "", "has_energy_axis"], [191, 2, 1, "", "is_allsky"], [191, 2, 1, "", "is_flat"], [191, 2, 1, "", "is_image"], [191, 3, 1, "", "pad"], [191, 3, 1, "", "pix_to_coord"], [191, 3, 1, "", "pix_to_idx"], [191, 3, 1, "", "rename_axes"], [191, 3, 1, "", "replace_axis"], [191, 3, 1, "", "resample_axis"], [191, 3, 1, "", "slice_by_idx"], [191, 3, 1, "", "solid_angle"], [191, 3, 1, "", "squash"], [191, 3, 1, "", "to_bands_hdu"], [191, 3, 1, "", "to_cube"], [191, 3, 1, "", "to_image"], [191, 3, 1, "", "upsample"]], "gammapy.maps.HpxGeom": [[192, 2, 1, "", "as_energy_true"], [192, 2, 1, "", "axes"], [192, 2, 1, "", "axes_names"], [192, 2, 1, "", "center_coord"], [192, 2, 1, "", "center_pix"], [192, 2, 1, "", "center_skydir"], [192, 3, 1, "", "contains"], [192, 3, 1, "", "contains_pix"], [192, 3, 1, "", "coord_to_idx"], [192, 3, 1, "", "coord_to_pix"], [192, 3, 1, "", "copy"], [192, 3, 1, "", "create"], [192, 3, 1, "", "crop"], [192, 3, 1, "", "cutout"], [192, 3, 1, "", "data_nbytes"], [192, 2, 1, "", "data_shape"], [192, 2, 1, "", "data_shape_axes"], [192, 3, 1, "", "downsample"], [192, 3, 1, "", "drop"], [192, 3, 1, "", "energy_mask"], [192, 2, 1, "", "frame"], [192, 3, 1, "", "from_hdu"], [192, 3, 1, "", "from_hdulist"], [192, 3, 1, "", "from_header"], [192, 3, 1, "", "get_coord"], [192, 3, 1, "", "get_idx"], [192, 3, 1, "", "get_index_list"], [192, 3, 1, "", "global_to_local"], [192, 2, 1, "", "has_energy_axis"], [192, 3, 1, "", "interp_weights"], [192, 2, 1, "", "ipix"], [192, 3, 1, "", "is_aligned"], [192, 3, 1, "", "is_allclose"], [192, 2, 1, "", "is_allsky"], [192, 2, 1, "", "is_flat"], [192, 2, 1, "", "is_hpx"], [192, 2, 1, "", "is_image"], [192, 2, 1, "", "is_region"], [192, 2, 1, "", "is_regular"], [192, 3, 1, "", "local_to_global"], [192, 2, 1, "", "ndim"], [192, 2, 1, "", "nest"], [192, 2, 1, "", "npix"], [192, 2, 1, "", "npix_max"], [192, 2, 1, "", "nside"], [192, 2, 1, "", "order"], [192, 2, 1, "", "ordering"], [192, 3, 1, "", "pad"], [192, 3, 1, "", "pix_to_coord"], [192, 3, 1, "", "pix_to_idx"], [192, 2, 1, "", "pixel_scales"], [192, 2, 1, "", "projection"], [192, 2, 1, "", "region"], [192, 3, 1, "", "region_mask"], [192, 3, 1, "", "rename_axes"], [192, 3, 1, "", "replace_axis"], [192, 3, 1, "", "resample_axis"], [192, 3, 1, "", "separation"], [192, 2, 1, "", "shape_axes"], [192, 3, 1, "", "slice_by_idx"], [192, 3, 1, "", "solid_angle"], [192, 3, 1, "", "squash"], [192, 3, 1, "", "to_bands_hdu"], [192, 3, 1, "", "to_binsz"], [192, 3, 1, "", "to_cube"], [192, 3, 1, "", "to_header"], [192, 3, 1, "", "to_image"], [192, 3, 1, "", "to_nside"], [192, 3, 1, "", "to_swapped"], [192, 3, 1, "", "to_wcs_geom"], [192, 3, 1, "", "to_wcs_tiles"], [192, 3, 1, "", "upsample"], [192, 2, 1, "", "width"]], "gammapy.maps.HpxMap": [[193, 3, 1, "", "coadd"], [193, 3, 1, "", "copy"], [193, 3, 1, "", "create"], [193, 3, 1, "", "crop"], [193, 3, 1, "", "cumsum"], [193, 2, 1, "", "data"], [193, 3, 1, "", "dot"], [193, 3, 1, "", "downsample"], [193, 3, 1, "", "fill_by_coord"], [193, 3, 1, "", "fill_by_idx"], [193, 3, 1, "", "fill_by_pix"], [193, 3, 1, "", "fill_events"], [193, 3, 1, "", "from_geom"], [193, 3, 1, "", "from_hdulist"], [193, 3, 1, "", "from_stack"], [193, 2, 1, "", "geom"], [193, 3, 1, "", "get_by_coord"], [193, 3, 1, "", "get_by_idx"], [193, 3, 1, "", "get_by_pix"], [193, 3, 1, "", "get_image_by_coord"], [193, 3, 1, "", "get_image_by_idx"], [193, 3, 1, "", "get_image_by_pix"], [193, 3, 1, "", "get_spectrum"], [193, 3, 1, "", "integral"], [193, 3, 1, "", "interp_by_coord"], [193, 3, 1, "", "interp_by_pix"], [193, 3, 1, "", "interp_to_geom"], [193, 3, 1, "", "is_allclose"], [193, 2, 1, "", "is_mask"], [193, 3, 1, "", "iter_by_axis"], [193, 3, 1, "", "iter_by_image"], [193, 3, 1, "", "iter_by_image_data"], [193, 3, 1, "", "iter_by_image_index"], [193, 3, 1, "", "mask_nearest_position"], [193, 2, 1, "", "meta"], [193, 3, 1, "", "normalize"], [193, 3, 1, "", "pad"], [193, 3, 1, "", "plot_grid"], [193, 3, 1, "", "plot_interactive"], [193, 2, 1, "", "quantity"], [193, 3, 1, "", "read"], [193, 3, 1, "", "reduce"], [193, 3, 1, "", "reduce_over_axes"], [193, 3, 1, "", "rename_axes"], [193, 3, 1, "", "reorder_axes"], [193, 3, 1, "", "reproject_by_image"], [193, 3, 1, "", "reproject_to_geom"], [193, 3, 1, "", "resample"], [193, 3, 1, "", "resample_axis"], [193, 3, 1, "", "sample_coord"], [193, 3, 1, "", "set_by_coord"], [193, 3, 1, "", "set_by_idx"], [193, 3, 1, "", "set_by_pix"], [193, 3, 1, "", "slice_by_idx"], [193, 3, 1, "", "split_by_axis"], [193, 3, 1, "", "sum_over_axes"], [193, 2, 1, "", "tag"], [193, 3, 1, "", "to_cube"], [193, 3, 1, "", "to_hdu"], [193, 3, 1, "", "to_hdulist"], [193, 3, 1, "", "to_swapped"], [193, 3, 1, "", "to_unit"], [193, 3, 1, "", "to_wcs"], [193, 2, 1, "", "unit"], [193, 3, 1, "", "upsample"], [193, 3, 1, "", "write"]], "gammapy.maps.HpxNDMap": [[194, 3, 1, "", "coadd"], [194, 3, 1, "", "convolve"], [194, 3, 1, "", "convolve_full"], [194, 3, 1, "", "convolve_wcs"], [194, 3, 1, "", "copy"], [194, 3, 1, "", "create"], [194, 3, 1, "", "crop"], [194, 3, 1, "", "cumsum"], [194, 3, 1, "", "cutout"], [194, 2, 1, "", "data"], [194, 3, 1, "", "dot"], [194, 3, 1, "", "downsample"], [194, 3, 1, "", "fill_by_coord"], [194, 3, 1, "", "fill_by_idx"], [194, 3, 1, "", "fill_by_pix"], [194, 3, 1, "", "fill_events"], [194, 3, 1, "", "from_geom"], [194, 3, 1, "", "from_hdu"], [194, 3, 1, "", "from_hdulist"], [194, 3, 1, "", "from_stack"], [194, 3, 1, "", "from_wcs_tiles"], [194, 2, 1, "", "geom"], [194, 3, 1, "", "get_by_coord"], [194, 3, 1, "", "get_by_idx"], [194, 3, 1, "", "get_by_pix"], [194, 3, 1, "", "get_image_by_coord"], [194, 3, 1, "", "get_image_by_idx"], [194, 3, 1, "", "get_image_by_pix"], [194, 3, 1, "", "get_spectrum"], [194, 3, 1, "", "integral"], [194, 3, 1, "", "interp_by_coord"], [194, 3, 1, "", "interp_by_pix"], [194, 3, 1, "", "interp_to_geom"], [194, 3, 1, "", "is_allclose"], [194, 2, 1, "", "is_mask"], [194, 3, 1, "", "iter_by_axis"], [194, 3, 1, "", "iter_by_image"], [194, 3, 1, "", "iter_by_image_data"], [194, 3, 1, "", "iter_by_image_index"], [194, 3, 1, "", "mask_nearest_position"], [194, 2, 1, "", "meta"], [194, 3, 1, "", "normalize"], [194, 3, 1, "", "pad"], [194, 3, 1, "", "plot"], [194, 3, 1, "", "plot_grid"], [194, 3, 1, "", "plot_interactive"], [194, 3, 1, "", "plot_mask"], [194, 2, 1, "", "quantity"], [194, 3, 1, "", "read"], [194, 3, 1, "", "reduce"], [194, 3, 1, "", "reduce_over_axes"], [194, 3, 1, "", "rename_axes"], [194, 3, 1, "", "reorder_axes"], [194, 3, 1, "", "reproject_by_image"], [194, 3, 1, "", "reproject_to_geom"], [194, 3, 1, "", "resample"], [194, 3, 1, "", "resample_axis"], [194, 3, 1, "", "sample_coord"], [194, 3, 1, "", "set_by_coord"], [194, 3, 1, "", "set_by_idx"], [194, 3, 1, "", "set_by_pix"], [194, 3, 1, "", "slice_by_idx"], [194, 3, 1, "", "smooth"], [194, 3, 1, "", "split_by_axis"], [194, 3, 1, "", "stack"], [194, 3, 1, "", "sum_over_axes"], [194, 2, 1, "", "tag"], [194, 3, 1, "", "to_cube"], [194, 3, 1, "", "to_hdu"], [194, 3, 1, "", "to_hdulist"], [194, 3, 1, "", "to_nside"], [194, 3, 1, "", "to_region_nd_map"], [194, 3, 1, "", "to_swapped"], [194, 3, 1, "", "to_unit"], [194, 3, 1, "", "to_wcs"], [194, 3, 1, "", "to_wcs_tiles"], [194, 2, 1, "", "unit"], [194, 3, 1, "", "upsample"], [194, 3, 1, "", "write"]], "gammapy.maps.LabelMapAxis": [[195, 2, 1, "", "as_plot_center"], [195, 2, 1, "", "as_plot_edges"], [195, 2, 1, "", "as_plot_labels"], [195, 2, 1, "", "as_plot_xerr"], [195, 3, 1, "", "assert_name"], [195, 2, 1, "", "bin_width"], [195, 2, 1, "", "center"], [195, 3, 1, "", "concatenate"], [195, 3, 1, "", "coord_to_idx"], [195, 3, 1, "", "coord_to_pix"], [195, 3, 1, "", "copy"], [195, 3, 1, "", "downsample"], [195, 2, 1, "", "edges"], [195, 2, 1, "", "edges_max"], [195, 2, 1, "", "edges_min"], [195, 3, 1, "", "format_plot_xaxis"], [195, 3, 1, "", "from_stack"], [195, 3, 1, "", "from_table"], [195, 3, 1, "", "is_allclose"], [195, 2, 1, "", "name"], [195, 2, 1, "", "nbin"], [195, 2, 1, "", "node_type"], [195, 3, 1, "", "pad"], [195, 3, 1, "", "pix_to_coord"], [195, 3, 1, "", "pix_to_idx"], [195, 3, 1, "", "resample"], [195, 3, 1, "", "slice"], [195, 3, 1, "", "squash"], [195, 3, 1, "", "to_header"], [195, 2, 1, "", "unit"], [195, 3, 1, "", "upsample"]], "gammapy.maps.Map": [[196, 3, 1, "", "coadd"], [196, 3, 1, "", "copy"], [196, 3, 1, "", "create"], [196, 3, 1, "", "crop"], [196, 3, 1, "", "cumsum"], [196, 2, 1, "", "data"], [196, 3, 1, "", "dot"], [196, 3, 1, "", "downsample"], [196, 3, 1, "", "fill_by_coord"], [196, 3, 1, "", "fill_by_idx"], [196, 3, 1, "", "fill_by_pix"], [196, 3, 1, "", "fill_events"], [196, 3, 1, "", "from_geom"], [196, 3, 1, "", "from_hdulist"], [196, 3, 1, "", "from_stack"], [196, 2, 1, "", "geom"], [196, 3, 1, "", "get_by_coord"], [196, 3, 1, "", "get_by_idx"], [196, 3, 1, "", "get_by_pix"], [196, 3, 1, "", "get_image_by_coord"], [196, 3, 1, "", "get_image_by_idx"], [196, 3, 1, "", "get_image_by_pix"], [196, 3, 1, "", "get_spectrum"], [196, 3, 1, "", "integral"], [196, 3, 1, "", "interp_by_coord"], [196, 3, 1, "", "interp_by_pix"], [196, 3, 1, "", "interp_to_geom"], [196, 3, 1, "", "is_allclose"], [196, 2, 1, "", "is_mask"], [196, 3, 1, "", "iter_by_axis"], [196, 3, 1, "", "iter_by_image"], [196, 3, 1, "", "iter_by_image_data"], [196, 3, 1, "", "iter_by_image_index"], [196, 3, 1, "", "mask_nearest_position"], [196, 2, 1, "", "meta"], [196, 3, 1, "", "normalize"], [196, 3, 1, "", "pad"], [196, 3, 1, "", "plot_grid"], [196, 3, 1, "", "plot_interactive"], [196, 2, 1, "", "quantity"], [196, 3, 1, "", "read"], [196, 3, 1, "", "reduce"], [196, 3, 1, "", "reduce_over_axes"], [196, 3, 1, "", "rename_axes"], [196, 3, 1, "", "reorder_axes"], [196, 3, 1, "", "reproject_by_image"], [196, 3, 1, "", "reproject_to_geom"], [196, 3, 1, "", "resample"], [196, 3, 1, "", "resample_axis"], [196, 3, 1, "", "sample_coord"], [196, 3, 1, "", "set_by_coord"], [196, 3, 1, "", "set_by_idx"], [196, 3, 1, "", "set_by_pix"], [196, 3, 1, "", "slice_by_idx"], [196, 3, 1, "", "split_by_axis"], [196, 3, 1, "", "sum_over_axes"], [196, 2, 1, "", "tag"], [196, 3, 1, "", "to_cube"], [196, 3, 1, "", "to_unit"], [196, 2, 1, "", "unit"], [196, 3, 1, "", "upsample"], [196, 3, 1, "", "write"]], "gammapy.maps.MapAxes": [[197, 3, 1, "", "assert_names"], [197, 3, 1, "", "bin_volume"], [197, 2, 1, "", "center_coord"], [197, 3, 1, "", "coord_to_idx"], [197, 3, 1, "", "coord_to_pix"], [197, 3, 1, "", "copy"], [197, 3, 1, "", "count"], [197, 3, 1, "", "downsample"], [197, 3, 1, "", "drop"], [197, 3, 1, "", "from_default"], [197, 3, 1, "", "from_table"], [197, 3, 1, "", "from_table_hdu"], [197, 3, 1, "", "get_coord"], [197, 3, 1, "", "index"], [197, 3, 1, "", "index_data"], [197, 3, 1, "", "is_allclose"], [197, 2, 1, "", "is_flat"], [197, 2, 1, "", "is_unidimensional"], [197, 2, 1, "", "iter_with_reshape"], [197, 2, 1, "", "names"], [197, 3, 1, "", "pad"], [197, 3, 1, "", "pix_to_coord"], [197, 3, 1, "", "pix_to_idx"], [197, 2, 1, "", "primary_axis"], [197, 3, 1, "", "rename_axes"], [197, 3, 1, "", "replace"], [197, 3, 1, "", "resample"], [197, 2, 1, "", "reverse"], [197, 2, 1, "", "shape"], [197, 3, 1, "", "slice_by_idx"], [197, 3, 1, "", "squash"], [197, 3, 1, "", "to_header"], [197, 3, 1, "", "to_table"], [197, 3, 1, "", "to_table_hdu"], [197, 3, 1, "", "upsample"]], "gammapy.maps.MapAxis": [[198, 2, 1, "", "as_plot_center"], [198, 2, 1, "", "as_plot_edges"], [198, 2, 1, "", "as_plot_labels"], [198, 2, 1, "", "as_plot_scale"], [198, 2, 1, "", "as_plot_xerr"], [198, 3, 1, "", "assert_name"], [198, 2, 1, "", "bin_width"], [198, 2, 1, "", "bounds"], [198, 2, 1, "", "center"], [198, 3, 1, "", "concatenate"], [198, 3, 1, "", "coord_to_idx"], [198, 3, 1, "", "coord_to_pix"], [198, 3, 1, "", "copy"], [198, 3, 1, "", "downsample"], [198, 2, 1, "", "edges"], [198, 2, 1, "", "edges_max"], [198, 2, 1, "", "edges_min"], [198, 3, 1, "", "format_plot_xaxis"], [198, 3, 1, "", "format_plot_yaxis"], [198, 3, 1, "", "from_bounds"], [198, 3, 1, "", "from_edges"], [198, 3, 1, "", "from_energy_bounds"], [198, 3, 1, "", "from_energy_edges"], [198, 3, 1, "", "from_nodes"], [198, 3, 1, "", "from_stack"], [198, 3, 1, "", "from_table"], [198, 3, 1, "", "from_table_hdu"], [198, 3, 1, "", "group_table"], [198, 2, 1, "", "interp"], [198, 3, 1, "", "is_aligned"], [198, 3, 1, "", "is_allclose"], [198, 2, 1, "", "is_energy_axis"], [198, 2, 1, "", "iter_by_edges"], [198, 2, 1, "", "name"], [198, 2, 1, "", "nbin"], [198, 2, 1, "", "nbin_per_decade"], [198, 2, 1, "", "node_type"], [198, 3, 1, "", "pad"], [198, 3, 1, "", "pix_to_coord"], [198, 3, 1, "", "pix_to_idx"], [198, 3, 1, "", "rename"], [198, 3, 1, "", "round"], [198, 3, 1, "", "slice"], [198, 3, 1, "", "squash"], [198, 3, 1, "", "to_header"], [198, 3, 1, "", "to_node_type"], [198, 3, 1, "", "to_table"], [198, 3, 1, "", "to_table_hdu"], [198, 2, 1, "", "unit"], [198, 3, 1, "", "upsample"], [198, 2, 1, "", "use_center_as_plot_labels"], [198, 3, 1, "", "wrap_coord"]], "gammapy.maps.MapCoord": [[199, 3, 1, "", "apply_mask"], [199, 2, 1, "", "axis_names"], [199, 2, 1, "", "broadcasted"], [199, 3, 1, "", "copy"], [199, 3, 1, "", "create"], [199, 2, 1, "", "flat"], [199, 2, 1, "", "frame"], [199, 2, 1, "", "lat"], [199, 2, 1, "", "lon"], [199, 2, 1, "", "match_by_name"], [199, 2, 1, "", "ndim"], [199, 2, 1, "", "phi"], [199, 2, 1, "", "shape"], [199, 2, 1, "", "size"], [199, 2, 1, "", "skycoord"], [199, 2, 1, "", "theta"], [199, 3, 1, "", "to_frame"]], "gammapy.maps.Maps": [[200, 3, 1, "", "clear"], [200, 3, 1, "", "from_geom"], [200, 3, 1, "", "from_hdulist"], [200, 2, 1, "", "geom"], [200, 3, 1, "", "get"], [200, 3, 1, "", "items"], [200, 3, 1, "", "keys"], [200, 3, 1, "", "pop"], [200, 3, 1, "", "popitem"], [200, 3, 1, "", "read"], [200, 3, 1, "", "setdefault"], [200, 3, 1, "", "to_hdulist"], [200, 3, 1, "", "update"], [200, 3, 1, "", "values"], [200, 3, 1, "", "write"]], "gammapy.maps.RegionGeom": [[201, 2, 1, "", "as_energy_true"], [201, 2, 1, "", "axes"], [201, 2, 1, "", "axes_names"], [201, 3, 1, "", "bin_volume"], [201, 2, 1, "", "binsz_wcs"], [201, 2, 1, "", "center_coord"], [201, 2, 1, "", "center_pix"], [201, 2, 1, "", "center_skydir"], [201, 3, 1, "", "contains"], [201, 3, 1, "", "contains_pix"], [201, 3, 1, "", "contains_wcs_pix"], [201, 3, 1, "", "coord_to_idx"], [201, 3, 1, "", "coord_to_pix"], [201, 3, 1, "", "copy"], [201, 3, 1, "", "create"], [201, 3, 1, "", "crop"], [201, 3, 1, "", "data_nbytes"], [201, 2, 1, "", "data_shape"], [201, 2, 1, "", "data_shape_axes"], [201, 3, 1, "", "downsample"], [201, 3, 1, "", "drop"], [201, 3, 1, "", "energy_mask"], [201, 2, 1, "", "frame"], [201, 3, 1, "", "from_hdulist"], [201, 3, 1, "", "from_regions"], [201, 3, 1, "", "get_coord"], [201, 3, 1, "", "get_idx"], [201, 3, 1, "", "get_wcs_coord_and_weights"], [201, 2, 1, "", "has_energy_axis"], [201, 2, 1, "", "is_all_point_sky_regions"], [201, 3, 1, "", "is_allclose"], [201, 2, 1, "", "is_allsky"], [201, 2, 1, "", "is_flat"], [201, 2, 1, "", "is_hpx"], [201, 2, 1, "", "is_image"], [201, 2, 1, "", "is_region"], [201, 2, 1, "", "is_regular"], [201, 2, 1, "", "npix"], [201, 3, 1, "", "pad"], [201, 3, 1, "", "pix_to_coord"], [201, 3, 1, "", "pix_to_idx"], [201, 3, 1, "", "plot_region"], [201, 2, 1, "", "projection"], [201, 2, 1, "", "region"], [201, 3, 1, "", "rename_axes"], [201, 3, 1, "", "replace_axis"], [201, 3, 1, "", "resample_axis"], [201, 3, 1, "", "separation"], [201, 3, 1, "", "slice_by_idx"], [201, 3, 1, "", "solid_angle"], [201, 3, 1, "", "squash"], [201, 3, 1, "", "to_bands_hdu"], [201, 3, 1, "", "to_binsz"], [201, 3, 1, "", "to_binsz_wcs"], [201, 3, 1, "", "to_cube"], [201, 3, 1, "", "to_hdulist"], [201, 3, 1, "", "to_image"], [201, 3, 1, "", "to_wcs_geom"], [201, 3, 1, "", "union"], [201, 3, 1, "", "upsample"], [201, 2, 1, "", "wcs"], [201, 2, 1, "", "width"]], "gammapy.maps.RegionNDMap": [[202, 3, 1, "", "coadd"], [202, 3, 1, "", "copy"], [202, 3, 1, "", "create"], [202, 3, 1, "", "crop"], [202, 3, 1, "", "cumsum"], [202, 3, 1, "", "cutout"], [202, 2, 1, "", "data"], [202, 3, 1, "", "dot"], [202, 3, 1, "", "downsample"], [202, 3, 1, "", "fill_by_coord"], [202, 3, 1, "", "fill_by_idx"], [202, 3, 1, "", "fill_by_pix"], [202, 3, 1, "", "fill_events"], [202, 3, 1, "", "from_geom"], [202, 3, 1, "", "from_hdulist"], [202, 3, 1, "", "from_stack"], [202, 3, 1, "", "from_table"], [202, 2, 1, "", "geom"], [202, 3, 1, "", "get_by_coord"], [202, 3, 1, "", "get_by_idx"], [202, 3, 1, "", "get_by_pix"], [202, 3, 1, "", "get_image_by_coord"], [202, 3, 1, "", "get_image_by_idx"], [202, 3, 1, "", "get_image_by_pix"], [202, 3, 1, "", "get_spectrum"], [202, 3, 1, "", "integral"], [202, 3, 1, "", "interp_by_coord"], [202, 3, 1, "", "interp_by_pix"], [202, 3, 1, "", "interp_to_geom"], [202, 3, 1, "", "is_allclose"], [202, 2, 1, "", "is_mask"], [202, 3, 1, "", "iter_by_axis"], [202, 3, 1, "", "iter_by_axis_data"], [202, 3, 1, "", "iter_by_image"], [202, 3, 1, "", "iter_by_image_data"], [202, 3, 1, "", "iter_by_image_index"], [202, 3, 1, "", "mask_nearest_position"], [202, 2, 1, "", "meta"], [202, 3, 1, "", "normalize"], [202, 3, 1, "", "pad"], [202, 3, 1, "", "plot"], [202, 3, 1, "", "plot_grid"], [202, 3, 1, "", "plot_hist"], [202, 3, 1, "", "plot_interactive"], [202, 3, 1, "", "plot_mask"], [202, 3, 1, "", "plot_region"], [202, 2, 1, "", "quantity"], [202, 3, 1, "", "read"], [202, 3, 1, "", "reduce"], [202, 3, 1, "", "reduce_over_axes"], [202, 3, 1, "", "rename_axes"], [202, 3, 1, "", "reorder_axes"], [202, 3, 1, "", "reproject_by_image"], [202, 3, 1, "", "reproject_to_geom"], [202, 3, 1, "", "resample"], [202, 3, 1, "", "resample_axis"], [202, 3, 1, "", "sample_coord"], [202, 3, 1, "", "set_by_coord"], [202, 3, 1, "", "set_by_idx"], [202, 3, 1, "", "set_by_pix"], [202, 3, 1, "", "slice_by_idx"], [202, 3, 1, "", "split_by_axis"], [202, 3, 1, "", "stack"], [202, 3, 1, "", "sum_over_axes"], [202, 2, 1, "", "tag"], [202, 3, 1, "", "to_cube"], [202, 3, 1, "", "to_hdulist"], [202, 3, 1, "", "to_region_nd_map"], [202, 3, 1, "", "to_table"], [202, 3, 1, "", "to_unit"], [202, 2, 1, "", "unit"], [202, 3, 1, "", "upsample"], [202, 3, 1, "", "write"]], "gammapy.maps.TimeMapAxis": [[203, 2, 1, "", "as_plot_center"], [203, 2, 1, "", "as_plot_edges"], [203, 2, 1, "", "as_plot_labels"], [203, 2, 1, "", "as_plot_xerr"], [203, 3, 1, "", "assert_name"], [203, 2, 1, "", "bin_width"], [203, 2, 1, "", "bounds"], [203, 2, 1, "", "center"], [203, 3, 1, "", "coord_to_idx"], [203, 3, 1, "", "coord_to_pix"], [203, 3, 1, "", "copy"], [203, 3, 1, "", "downsample"], [203, 2, 1, "", "edges"], [203, 2, 1, "", "edges_max"], [203, 2, 1, "", "edges_min"], [203, 3, 1, "", "format_plot_xaxis"], [203, 3, 1, "", "from_gti"], [203, 3, 1, "", "from_gti_bounds"], [203, 3, 1, "", "from_table"], [203, 3, 1, "", "from_time_bounds"], [203, 3, 1, "", "from_time_edges"], [203, 3, 1, "", "group_table"], [203, 2, 1, "", "interp"], [203, 3, 1, "", "is_aligned"], [203, 3, 1, "", "is_allclose"], [203, 2, 1, "", "is_contiguous"], [203, 2, 1, "", "iter_by_edges"], [203, 2, 1, "", "name"], [203, 2, 1, "", "nbin"], [203, 2, 1, "", "node_type"], [203, 3, 1, "", "pix_to_coord"], [203, 3, 1, "", "pix_to_idx"], [203, 2, 1, "", "reference_time"], [203, 3, 1, "", "slice"], [203, 3, 1, "", "squash"], [203, 2, 1, "", "time_bounds"], [203, 2, 1, "", "time_delta"], [203, 2, 1, "", "time_edges"], [203, 2, 1, "", "time_format"], [203, 2, 1, "", "time_max"], [203, 2, 1, "", "time_mid"], [203, 2, 1, "", "time_min"], [203, 3, 1, "", "to_contiguous"], [203, 3, 1, "", "to_gti"], [203, 3, 1, "", "to_header"], [203, 3, 1, "", "to_table"], [203, 2, 1, "", "unit"], [203, 3, 1, "", "upsample"]], "gammapy.maps.WcsGeom": [[204, 2, 1, "", "as_energy_true"], [204, 2, 1, "", "axes"], [204, 2, 1, "", "axes_names"], [204, 3, 1, "", "bin_volume"], [204, 3, 1, "", "binary_structure"], [204, 3, 1, "", "boundary_mask"], [204, 2, 1, "", "center_coord"], [204, 2, 1, "", "center_pix"], [204, 2, 1, "", "center_skydir"], [204, 3, 1, "", "contains"], [204, 3, 1, "", "contains_pix"], [204, 3, 1, "", "coord_to_idx"], [204, 3, 1, "", "coord_to_pix"], [204, 3, 1, "", "copy"], [204, 3, 1, "", "create"], [204, 3, 1, "", "crop"], [204, 3, 1, "", "cutout"], [204, 3, 1, "", "cutout_slices"], [204, 3, 1, "", "data_nbytes"], [204, 2, 1, "", "data_shape"], [204, 2, 1, "", "data_shape_axes"], [204, 2, 1, "", "data_shape_image"], [204, 3, 1, "", "downsample"], [204, 3, 1, "", "drop"], [204, 3, 1, "", "energy_mask"], [204, 2, 1, "", "footprint"], [204, 2, 1, "", "footprint_rectangle_sky_region"], [204, 2, 1, "", "frame"], [204, 3, 1, "", "from_aligned"], [204, 3, 1, "", "from_hdulist"], [204, 3, 1, "", "from_header"], [204, 3, 1, "", "get_coord"], [204, 3, 1, "", "get_idx"], [204, 3, 1, "", "get_pix"], [204, 2, 1, "", "has_energy_axis"], [204, 3, 1, "", "is_aligned"], [204, 3, 1, "", "is_allclose"], [204, 2, 1, "", "is_allsky"], [204, 2, 1, "", "is_flat"], [204, 2, 1, "", "is_hpx"], [204, 2, 1, "", "is_image"], [204, 2, 1, "", "is_region"], [204, 2, 1, "", "is_regular"], [204, 2, 1, "", "ndim"], [204, 2, 1, "", "npix"], [204, 3, 1, "", "pad"], [204, 3, 1, "", "pix_to_coord"], [204, 3, 1, "", "pix_to_idx"], [204, 2, 1, "", "pixel_area"], [204, 2, 1, "", "pixel_scales"], [204, 2, 1, "", "projection"], [204, 3, 1, "", "region_mask"], [204, 3, 1, "", "region_weights"], [204, 3, 1, "", "rename_axes"], [204, 3, 1, "", "replace_axis"], [204, 3, 1, "", "resample_axis"], [204, 3, 1, "", "separation"], [204, 2, 1, "", "shape_axes"], [204, 3, 1, "", "slice_by_idx"], [204, 3, 1, "", "solid_angle"], [204, 3, 1, "", "squash"], [204, 3, 1, "", "to_bands_hdu"], [204, 3, 1, "", "to_binsz"], [204, 3, 1, "", "to_cube"], [204, 3, 1, "", "to_even_npix"], [204, 3, 1, "", "to_header"], [204, 3, 1, "", "to_image"], [204, 3, 1, "", "to_odd_npix"], [204, 3, 1, "", "upsample"], [204, 2, 1, "", "wcs"], [204, 2, 1, "", "width"]], "gammapy.maps.WcsMap": [[205, 3, 1, "", "coadd"], [205, 3, 1, "", "copy"], [205, 3, 1, "", "create"], [205, 3, 1, "", "crop"], [205, 3, 1, "", "cumsum"], [205, 2, 1, "", "data"], [205, 3, 1, "", "dot"], [205, 3, 1, "", "downsample"], [205, 3, 1, "", "fill_by_coord"], [205, 3, 1, "", "fill_by_idx"], [205, 3, 1, "", "fill_by_pix"], [205, 3, 1, "", "fill_events"], [205, 3, 1, "", "from_geom"], [205, 3, 1, "", "from_hdulist"], [205, 3, 1, "", "from_stack"], [205, 2, 1, "", "geom"], [205, 3, 1, "", "get_by_coord"], [205, 3, 1, "", "get_by_idx"], [205, 3, 1, "", "get_by_pix"], [205, 3, 1, "", "get_image_by_coord"], [205, 3, 1, "", "get_image_by_idx"], [205, 3, 1, "", "get_image_by_pix"], [205, 3, 1, "", "get_spectrum"], [205, 3, 1, "", "integral"], [205, 3, 1, "", "interp_by_coord"], [205, 3, 1, "", "interp_by_pix"], [205, 3, 1, "", "interp_to_geom"], [205, 3, 1, "", "is_allclose"], [205, 2, 1, "", "is_mask"], [205, 3, 1, "", "iter_by_axis"], [205, 3, 1, "", "iter_by_image"], [205, 3, 1, "", "iter_by_image_data"], [205, 3, 1, "", "iter_by_image_index"], [205, 3, 1, "", "mask_nearest_position"], [205, 2, 1, "", "meta"], [205, 3, 1, "", "normalize"], [205, 3, 1, "", "pad"], [205, 3, 1, "", "plot_grid"], [205, 3, 1, "", "plot_interactive"], [205, 2, 1, "", "quantity"], [205, 3, 1, "", "read"], [205, 3, 1, "", "reduce"], [205, 3, 1, "", "reduce_over_axes"], [205, 3, 1, "", "rename_axes"], [205, 3, 1, "", "reorder_axes"], [205, 3, 1, "", "reproject_by_image"], [205, 3, 1, "", "reproject_to_geom"], [205, 3, 1, "", "resample"], [205, 3, 1, "", "resample_axis"], [205, 3, 1, "", "sample_coord"], [205, 3, 1, "", "set_by_coord"], [205, 3, 1, "", "set_by_idx"], [205, 3, 1, "", "set_by_pix"], [205, 3, 1, "", "slice_by_idx"], [205, 3, 1, "", "split_by_axis"], [205, 3, 1, "", "sum_over_axes"], [205, 2, 1, "", "tag"], [205, 3, 1, "", "to_cube"], [205, 3, 1, "", "to_hdu"], [205, 3, 1, "", "to_hdulist"], [205, 3, 1, "", "to_unit"], [205, 2, 1, "", "unit"], [205, 3, 1, "", "upsample"], [205, 3, 1, "", "write"]], "gammapy.maps.WcsNDMap": [[206, 3, 1, "", "binary_dilate"], [206, 3, 1, "", "binary_erode"], [206, 3, 1, "", "coadd"], [206, 3, 1, "", "convolve"], [206, 3, 1, "", "copy"], [206, 3, 1, "", "create"], [206, 3, 1, "", "crop"], [206, 3, 1, "", "cumsum"], [206, 3, 1, "", "cutout"], [206, 3, 1, "", "cutout_and_mask_region"], [206, 2, 1, "", "data"], [206, 3, 1, "", "dot"], [206, 3, 1, "", "downsample"], [206, 3, 1, "", "fill_by_coord"], [206, 3, 1, "", "fill_by_idx"], [206, 3, 1, "", "fill_by_pix"], [206, 3, 1, "", "fill_events"], [206, 3, 1, "", "from_geom"], [206, 3, 1, "", "from_hdu"], [206, 3, 1, "", "from_hdulist"], [206, 3, 1, "", "from_stack"], [206, 2, 1, "", "geom"], [206, 3, 1, "", "get_by_coord"], [206, 3, 1, "", "get_by_idx"], [206, 3, 1, "", "get_by_pix"], [206, 3, 1, "", "get_image_by_coord"], [206, 3, 1, "", "get_image_by_idx"], [206, 3, 1, "", "get_image_by_pix"], [206, 3, 1, "", "get_spectrum"], [206, 3, 1, "", "integral"], [206, 3, 1, "", "interp_by_coord"], [206, 3, 1, "", "interp_by_pix"], [206, 3, 1, "", "interp_to_geom"], [206, 3, 1, "", "is_allclose"], [206, 2, 1, "", "is_mask"], [206, 3, 1, "", "iter_by_axis"], [206, 3, 1, "", "iter_by_image"], [206, 3, 1, "", "iter_by_image_data"], [206, 3, 1, "", "iter_by_image_index"], [206, 3, 1, "", "mask_contains_region"], [206, 3, 1, "", "mask_nearest_position"], [206, 2, 1, "", "meta"], [206, 3, 1, "", "normalize"], [206, 3, 1, "", "pad"], [206, 3, 1, "", "plot"], [206, 3, 1, "", "plot_grid"], [206, 3, 1, "", "plot_interactive"], [206, 3, 1, "", "plot_mask"], [206, 2, 1, "", "quantity"], [206, 3, 1, "", "read"], [206, 3, 1, "", "reduce"], [206, 3, 1, "", "reduce_over_axes"], [206, 3, 1, "", "rename_axes"], [206, 3, 1, "", "reorder_axes"], [206, 3, 1, "", "reproject_by_image"], [206, 3, 1, "", "reproject_to_geom"], [206, 3, 1, "", "resample"], [206, 3, 1, "", "resample_axis"], [206, 3, 1, "", "sample_coord"], [206, 3, 1, "", "set_by_coord"], [206, 3, 1, "", "set_by_idx"], [206, 3, 1, "", "set_by_pix"], [206, 3, 1, "", "slice_by_idx"], [206, 3, 1, "", "smooth"], [206, 3, 1, "", "split_by_axis"], [206, 3, 1, "", "stack"], [206, 3, 1, "", "sum_over_axes"], [206, 2, 1, "", "tag"], [206, 3, 1, "", "to_cube"], [206, 3, 1, "", "to_hdu"], [206, 3, 1, "", "to_hdulist"], [206, 3, 1, "", "to_region_nd_map"], [206, 3, 1, "", "to_region_nd_map_histogram"], [206, 3, 1, "", "to_unit"], [206, 2, 1, "", "unit"], [206, 3, 1, "", "upsample"], [206, 3, 1, "", "write"]], "gammapy.modeling": [[209, 1, 1, "", "Covariance"], [210, 1, 1, "", "CovarianceResult"], [211, 1, 1, "", "Fit"], [212, 1, 1, "", "FitResult"], [213, 1, 1, "", "OptimizeResult"], [214, 1, 1, "", "Parameter"], [215, 1, 1, "", "Parameters"], [216, 1, 1, "", "PriorParameter"], [217, 1, 1, "", "PriorParameters"], [10, 0, 0, "-", "models"], [286, 4, 1, "", "select_nested_models"], [287, 4, 1, "", "stat_profile_ul_scipy"]], "gammapy.modeling.Covariance": [[209, 2, 1, "", "correlation"], [209, 2, 1, "", "data"], [209, 3, 1, "", "from_factor_matrix"], [209, 3, 1, "", "from_stack"], [209, 3, 1, "", "get_subcovariance"], [209, 3, 1, "", "plot_correlation"], [209, 2, 1, "", "scipy_mvn"], [209, 3, 1, "", "set_subcovariance"], [209, 2, 1, "", "shape"]], "gammapy.modeling.CovarianceResult": [[210, 2, 1, "", "backend"], [210, 2, 1, "", "matrix"], [210, 2, 1, "", "message"], [210, 2, 1, "", "method"], [210, 2, 1, "", "success"], [210, 3, 1, "", "to_dict"]], "gammapy.modeling.Fit": [[211, 3, 1, "", "confidence"], [211, 3, 1, "", "covariance"], [211, 3, 1, "", "optimize"], [211, 3, 1, "", "run"], [211, 3, 1, "", "stat_contour"], [211, 3, 1, "", "stat_profile"], [211, 3, 1, "", "stat_surface"]], "gammapy.modeling.FitResult": [[212, 2, 1, "", "backend"], [212, 2, 1, "", "covariance_result"], [212, 2, 1, "", "message"], [212, 2, 1, "", "method"], [212, 2, 1, "", "minuit"], [212, 2, 1, "", "models"], [212, 2, 1, "", "nfev"], [212, 2, 1, "", "optimize_result"], [212, 2, 1, "", "parameters"], [212, 2, 1, "", "success"], [212, 2, 1, "", "total_stat"], [212, 2, 1, "", "trace"], [212, 3, 1, "", "write"]], "gammapy.modeling.OptimizeResult": [[213, 2, 1, "", "backend"], [213, 2, 1, "", "message"], [213, 2, 1, "", "method"], [213, 2, 1, "", "minuit"], [213, 2, 1, "", "models"], [213, 2, 1, "", "nfev"], [213, 2, 1, "", "parameters"], [213, 2, 1, "", "success"], [213, 3, 1, "", "to_dict"], [213, 2, 1, "", "total_stat"], [213, 2, 1, "", "trace"]], "gammapy.modeling.Parameter": [[214, 3, 1, "", "autoscale"], [214, 3, 1, "", "check_limits"], [214, 2, 1, "", "conf_max"], [214, 2, 1, "", "conf_min"], [214, 3, 1, "", "copy"], [214, 2, 1, "", "error"], [214, 2, 1, "", "factor"], [214, 2, 1, "", "factor_max"], [214, 2, 1, "", "factor_min"], [214, 2, 1, "", "frozen"], [214, 2, 1, "", "max"], [214, 2, 1, "", "min"], [214, 2, 1, "", "name"], [214, 2, 1, "", "prior"], [214, 3, 1, "", "prior_stat_sum"], [214, 2, 1, "", "quantity"], [214, 2, 1, "", "scale"], [214, 2, 1, "", "scale_method"], [214, 2, 1, "", "scan_max"], [214, 2, 1, "", "scan_min"], [214, 2, 1, "", "scan_n_sigma"], [214, 2, 1, "", "scan_values"], [214, 3, 1, "", "to_dict"], [214, 2, 1, "", "type"], [214, 2, 1, "", "unit"], [214, 3, 1, "", "update_from_dict"], [214, 2, 1, "", "value"]], "gammapy.modeling.Parameters": [[215, 3, 1, "", "autoscale"], [215, 3, 1, "", "check_limits"], [215, 3, 1, "", "copy"], [215, 3, 1, "", "count"], [215, 2, 1, "", "free_parameters"], [215, 3, 1, "", "freeze_all"], [215, 3, 1, "", "from_dict"], [215, 3, 1, "", "from_stack"], [215, 3, 1, "", "index"], [215, 2, 1, "", "max"], [215, 2, 1, "", "min"], [215, 2, 1, "", "names"], [215, 2, 1, "", "prior"], [215, 3, 1, "", "prior_stat_sum"], [215, 3, 1, "", "restore_status"], [215, 3, 1, "", "select"], [215, 3, 1, "", "set_parameter_factors"], [215, 3, 1, "", "to_dict"], [215, 3, 1, "", "to_table"], [215, 2, 1, "", "types"], [215, 3, 1, "", "unfreeze_all"], [215, 2, 1, "", "unique_parameters"], [215, 2, 1, "", "value"]], "gammapy.modeling.PriorParameter": [[216, 3, 1, "", "autoscale"], [216, 3, 1, "", "check_limits"], [216, 2, 1, "", "conf_max"], [216, 2, 1, "", "conf_min"], [216, 3, 1, "", "copy"], [216, 2, 1, "", "error"], [216, 2, 1, "", "factor"], [216, 2, 1, "", "factor_max"], [216, 2, 1, "", "factor_min"], [216, 2, 1, "", "frozen"], [216, 2, 1, "", "max"], [216, 2, 1, "", "min"], [216, 2, 1, "", "name"], [216, 2, 1, "", "prior"], [216, 3, 1, "", "prior_stat_sum"], [216, 2, 1, "", "quantity"], [216, 2, 1, "", "scale"], [216, 2, 1, "", "scale_method"], [216, 2, 1, "", "scan_max"], [216, 2, 1, "", "scan_min"], [216, 2, 1, "", "scan_n_sigma"], [216, 2, 1, "", "scan_values"], [216, 3, 1, "", "to_dict"], [216, 2, 1, "", "type"], [216, 2, 1, "", "unit"], [216, 3, 1, "", "update_from_dict"], [216, 2, 1, "", "value"]], "gammapy.modeling.PriorParameters": [[217, 3, 1, "", "autoscale"], [217, 3, 1, "", "check_limits"], [217, 3, 1, "", "copy"], [217, 3, 1, "", "count"], [217, 2, 1, "", "free_parameters"], [217, 3, 1, "", "freeze_all"], [217, 3, 1, "", "from_dict"], [217, 3, 1, "", "from_stack"], [217, 3, 1, "", "index"], [217, 2, 1, "", "max"], [217, 2, 1, "", "min"], [217, 2, 1, "", "names"], [217, 2, 1, "", "prior"], [217, 3, 1, "", "prior_stat_sum"], [217, 3, 1, "", "restore_status"], [217, 3, 1, "", "select"], [217, 3, 1, "", "set_parameter_factors"], [217, 3, 1, "", "to_dict"], [217, 3, 1, "", "to_table"], [217, 2, 1, "", "types"], [217, 3, 1, "", "unfreeze_all"], [217, 2, 1, "", "unique_parameters"], [217, 2, 1, "", "value"]], "gammapy.modeling.models": [[218, 1, 1, "", "BrokenPowerLawSpectralModel"], [219, 1, 1, "", "CompoundSpectralModel"], [220, 1, 1, "", "ConstantFluxSpatialModel"], [221, 1, 1, "", "ConstantSpatialModel"], [222, 1, 1, "", "ConstantSpectralModel"], [223, 1, 1, "", "ConstantTemporalModel"], [224, 1, 1, "", "DatasetModels"], [225, 1, 1, "", "DiskSpatialModel"], [226, 1, 1, "", "EBLAbsorptionNormSpectralModel"], [227, 5, 1, "", "EBL_DATA_BUILTIN"], [228, 1, 1, "", "ExpCutoffPowerLaw3FGLSpectralModel"], [229, 1, 1, "", "ExpCutoffPowerLawNormSpectralModel"], [230, 1, 1, "", "ExpCutoffPowerLawSpectralModel"], [231, 1, 1, "", "ExpDecayTemporalModel"], [232, 1, 1, "", "FoVBackgroundModel"], [233, 1, 1, "", "GaussianPrior"], [234, 1, 1, "", "GaussianSpatialModel"], [235, 1, 1, "", "GaussianSpectralModel"], [236, 1, 1, "", "GaussianTemporalModel"], [237, 1, 1, "", "GeneralizedGaussianSpatialModel"], [238, 1, 1, "", "GeneralizedGaussianTemporalModel"], [239, 1, 1, "", "LightCurveTemplateTemporalModel"], [240, 1, 1, "", "LinearTemporalModel"], [241, 1, 1, "", "LogParabolaNormSpectralModel"], [242, 1, 1, "", "LogParabolaSpectralModel"], [243, 5, 1, "", "MODEL_REGISTRY"], [244, 1, 1, "", "MeyerCrabSpectralModel"], [245, 1, 1, "", "Model"], [246, 1, 1, "", "ModelBase"], [247, 1, 1, "", "Models"], [248, 1, 1, "", "NaimaSpectralModel"], [249, 1, 1, "", "PiecewiseNormSpatialModel"], [250, 1, 1, "", "PiecewiseNormSpectralModel"], [251, 1, 1, "", "PointSpatialModel"], [252, 1, 1, "", "PowerLaw2SpectralModel"], [253, 1, 1, "", "PowerLawNormSpectralModel"], [254, 1, 1, "", "PowerLawSpectralModel"], [255, 1, 1, "", "PowerLawTemporalModel"], [256, 1, 1, "", "Prior"], [257, 5, 1, "", "SPATIAL_MODEL_REGISTRY"], [258, 5, 1, "", "SPECTRAL_MODEL_REGISTRY"], [259, 1, 1, "", "ScaleSpectralModel"], [260, 1, 1, "", "Shell2SpatialModel"], [261, 1, 1, "", "ShellSpatialModel"], [262, 1, 1, "", "SineTemporalModel"], [263, 1, 1, "", "SkyModel"], [264, 1, 1, "", "SmoothBrokenPowerLawSpectralModel"], [265, 1, 1, "", "SpatialModel"], [266, 1, 1, "", "SpectralModel"], [267, 1, 1, "", "SuperExpCutoffPowerLaw3FGLSpectralModel"], [268, 1, 1, "", "SuperExpCutoffPowerLaw4FGLDR3SpectralModel"], [269, 1, 1, "", "SuperExpCutoffPowerLaw4FGLSpectralModel"], [270, 5, 1, "", "TEMPORAL_MODEL_REGISTRY"], [271, 1, 1, "", "TemplateNDSpatialModel"], [272, 1, 1, "", "TemplateNDSpectralModel"], [273, 1, 1, "", "TemplateNPredModel"], [274, 1, 1, "", "TemplatePhaseCurveTemporalModel"], [275, 1, 1, "", "TemplateSpatialModel"], [276, 1, 1, "", "TemplateSpectralModel"], [277, 1, 1, "", "TemporalModel"], [278, 1, 1, "", "UniformPrior"], [279, 4, 1, "", "create_cosmic_ray_spectral_model"], [280, 4, 1, "", "create_crab_spectral_model"], [281, 4, 1, "", "create_fermi_isotropic_diffuse_model"], [282, 4, 1, "", "integrate_spectrum"], [283, 4, 1, "", "read_hermes_cube"], [284, 4, 1, "", "scale_plot_flux"], [10, 0, 0, "-", "utils"]], "gammapy.modeling.models.BrokenPowerLawSpectralModel": [[218, 3, 1, "", "__call__"], [218, 2, 1, "", "amplitude"], [218, 3, 1, "", "copy"], [218, 2, 1, "", "covariance"], [218, 2, 1, "", "default_parameters"], [218, 2, 1, "", "ebreak"], [218, 3, 1, "", "energy_flux"], [218, 3, 1, "", "energy_flux_error"], [218, 3, 1, "", "evaluate"], [218, 3, 1, "", "evaluate_error"], [218, 3, 1, "", "freeze"], [218, 3, 1, "", "from_dict"], [218, 3, 1, "", "from_parameters"], [218, 2, 1, "", "frozen"], [218, 2, 1, "", "index1"], [218, 2, 1, "", "index2"], [218, 3, 1, "", "integral"], [218, 3, 1, "", "integral_error"], [218, 3, 1, "", "inverse"], [218, 3, 1, "", "inverse_all"], [218, 2, 1, "", "is_norm_spectral_model"], [218, 2, 1, "", "parameters"], [218, 2, 1, "", "parameters_unique_names"], [218, 2, 1, "", "pivot_energy"], [218, 3, 1, "", "plot"], [218, 3, 1, "", "plot_error"], [218, 3, 1, "", "reassign"], [218, 3, 1, "", "reference_fluxes"], [218, 3, 1, "", "spectral_index"], [218, 3, 1, "", "spectral_index_error"], [218, 2, 1, "", "tag"], [218, 3, 1, "", "to_dict"], [218, 2, 1, "", "type"], [218, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.CompoundSpectralModel": [[219, 3, 1, "", "__call__"], [219, 3, 1, "", "copy"], [219, 2, 1, "", "covariance"], [219, 2, 1, "", "default_parameters"], [219, 3, 1, "", "energy_flux"], [219, 3, 1, "", "energy_flux_error"], [219, 3, 1, "", "evaluate"], [219, 3, 1, "", "evaluate_error"], [219, 3, 1, "", "freeze"], [219, 3, 1, "", "from_dict"], [219, 3, 1, "", "from_parameters"], [219, 2, 1, "", "frozen"], [219, 3, 1, "", "integral"], [219, 3, 1, "", "integral_error"], [219, 3, 1, "", "inverse"], [219, 3, 1, "", "inverse_all"], [219, 2, 1, "", "is_norm_spectral_model"], [219, 2, 1, "", "parameters"], [219, 2, 1, "", "parameters_unique_names"], [219, 2, 1, "", "pivot_energy"], [219, 3, 1, "", "plot"], [219, 3, 1, "", "plot_error"], [219, 3, 1, "", "reassign"], [219, 3, 1, "", "reference_fluxes"], [219, 3, 1, "", "spectral_index"], [219, 3, 1, "", "spectral_index_error"], [219, 2, 1, "", "tag"], [219, 3, 1, "", "to_dict"], [219, 2, 1, "", "type"], [219, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ConstantFluxSpatialModel": [[220, 3, 1, "", "__call__"], [220, 3, 1, "", "copy"], [220, 2, 1, "", "covariance"], [220, 2, 1, "", "default_parameters"], [220, 3, 1, "", "evaluate"], [220, 3, 1, "", "evaluate_geom"], [220, 2, 1, "", "evaluation_bin_size_min"], [220, 2, 1, "", "evaluation_radius"], [220, 2, 1, "", "evaluation_region"], [220, 2, 1, "", "frame"], [220, 3, 1, "", "freeze"], [220, 3, 1, "", "from_dict"], [220, 3, 1, "", "from_parameters"], [220, 3, 1, "", "from_position"], [220, 2, 1, "", "frozen"], [220, 3, 1, "", "integrate_geom"], [220, 2, 1, "", "is_energy_dependent"], [220, 2, 1, "", "parameters"], [220, 2, 1, "", "parameters_unique_names"], [220, 2, 1, "", "phi_0"], [220, 3, 1, "", "plot"], [220, 3, 1, "", "plot_error"], [220, 3, 1, "", "plot_grid"], [220, 3, 1, "", "plot_interactive"], [220, 3, 1, "", "plot_position_error"], [220, 2, 1, "", "position"], [220, 2, 1, "", "position_error"], [220, 2, 1, "", "position_lonlat"], [220, 3, 1, "", "reassign"], [220, 2, 1, "", "tag"], [220, 3, 1, "", "to_dict"], [220, 3, 1, "", "to_region"], [220, 2, 1, "", "type"], [220, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ConstantSpatialModel": [[221, 3, 1, "", "__call__"], [221, 3, 1, "", "copy"], [221, 2, 1, "", "covariance"], [221, 2, 1, "", "default_parameters"], [221, 3, 1, "", "evaluate"], [221, 3, 1, "", "evaluate_geom"], [221, 2, 1, "", "evaluation_bin_size_min"], [221, 2, 1, "", "evaluation_radius"], [221, 2, 1, "", "evaluation_region"], [221, 2, 1, "", "frame"], [221, 3, 1, "", "freeze"], [221, 3, 1, "", "from_dict"], [221, 3, 1, "", "from_parameters"], [221, 3, 1, "", "from_position"], [221, 2, 1, "", "frozen"], [221, 3, 1, "", "integrate_geom"], [221, 2, 1, "", "is_energy_dependent"], [221, 2, 1, "", "parameters"], [221, 2, 1, "", "parameters_unique_names"], [221, 2, 1, "", "phi_0"], [221, 3, 1, "", "plot"], [221, 3, 1, "", "plot_error"], [221, 3, 1, "", "plot_grid"], [221, 3, 1, "", "plot_interactive"], [221, 3, 1, "", "plot_position_error"], [221, 2, 1, "", "position"], [221, 2, 1, "", "position_error"], [221, 2, 1, "", "position_lonlat"], [221, 3, 1, "", "reassign"], [221, 2, 1, "", "tag"], [221, 3, 1, "", "to_dict"], [221, 3, 1, "", "to_region"], [221, 2, 1, "", "type"], [221, 3, 1, "", "unfreeze"], [221, 2, 1, "", "value"]], "gammapy.modeling.models.ConstantSpectralModel": [[222, 3, 1, "", "__call__"], [222, 2, 1, "", "const"], [222, 3, 1, "", "copy"], [222, 2, 1, "", "covariance"], [222, 2, 1, "", "default_parameters"], [222, 3, 1, "", "energy_flux"], [222, 3, 1, "", "energy_flux_error"], [222, 3, 1, "", "evaluate"], [222, 3, 1, "", "evaluate_error"], [222, 3, 1, "", "freeze"], [222, 3, 1, "", "from_dict"], [222, 3, 1, "", "from_parameters"], [222, 2, 1, "", "frozen"], [222, 3, 1, "", "integral"], [222, 3, 1, "", "integral_error"], [222, 3, 1, "", "inverse"], [222, 3, 1, "", "inverse_all"], [222, 2, 1, "", "is_norm_spectral_model"], [222, 2, 1, "", "parameters"], [222, 2, 1, "", "parameters_unique_names"], [222, 2, 1, "", "pivot_energy"], [222, 3, 1, "", "plot"], [222, 3, 1, "", "plot_error"], [222, 3, 1, "", "reassign"], [222, 3, 1, "", "reference_fluxes"], [222, 3, 1, "", "spectral_index"], [222, 3, 1, "", "spectral_index_error"], [222, 2, 1, "", "tag"], [222, 3, 1, "", "to_dict"], [222, 2, 1, "", "type"], [222, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ConstantTemporalModel": [[223, 3, 1, "", "__call__"], [223, 3, 1, "", "copy"], [223, 2, 1, "", "covariance"], [223, 2, 1, "", "default_parameters"], [223, 3, 1, "", "evaluate"], [223, 3, 1, "", "freeze"], [223, 3, 1, "", "from_dict"], [223, 3, 1, "", "from_parameters"], [223, 2, 1, "", "frozen"], [223, 3, 1, "", "integral"], [223, 2, 1, "", "is_energy_dependent"], [223, 2, 1, "", "parameters"], [223, 2, 1, "", "parameters_unique_names"], [223, 3, 1, "", "plot"], [223, 3, 1, "", "reassign"], [223, 2, 1, "", "reference_time"], [223, 3, 1, "", "sample_time"], [223, 2, 1, "", "tag"], [223, 3, 1, "", "time_sum"], [223, 3, 1, "", "to_dict"], [223, 2, 1, "", "type"], [223, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.DatasetModels": [[224, 3, 1, "", "copy"], [224, 3, 1, "", "count"], [224, 2, 1, "", "covariance"], [224, 3, 1, "", "freeze"], [224, 3, 1, "", "from_dict"], [224, 3, 1, "", "from_yaml"], [224, 2, 1, "", "frozen"], [224, 3, 1, "", "index"], [224, 2, 1, "", "names"], [224, 2, 1, "", "parameters"], [224, 2, 1, "", "parameters_unique_names"], [224, 3, 1, "", "plot_positions"], [224, 3, 1, "", "plot_regions"], [224, 2, 1, "", "positions"], [224, 3, 1, "", "read"], [224, 3, 1, "", "read_covariance"], [224, 3, 1, "", "reassign"], [224, 3, 1, "", "restore_status"], [224, 3, 1, "", "select"], [224, 3, 1, "", "select_from_geom"], [224, 3, 1, "", "select_mask"], [224, 3, 1, "", "select_region"], [224, 3, 1, "", "selection_mask"], [224, 3, 1, "", "set_parameters_bounds"], [224, 3, 1, "", "to_dict"], [224, 3, 1, "", "to_parameters_table"], [224, 3, 1, "", "to_regions"], [224, 3, 1, "", "to_template_sky_model"], [224, 3, 1, "", "to_template_spectral_model"], [224, 3, 1, "", "to_yaml"], [224, 3, 1, "", "unfreeze"], [224, 3, 1, "", "update_link_label"], [224, 3, 1, "", "update_parameters_from_table"], [224, 2, 1, "", "wcs_geom"], [224, 3, 1, "", "write"], [224, 3, 1, "", "write_covariance"]], "gammapy.modeling.models.DiskSpatialModel": [[225, 3, 1, "", "__call__"], [225, 3, 1, "", "copy"], [225, 2, 1, "", "covariance"], [225, 2, 1, "", "default_parameters"], [225, 2, 1, "", "e"], [225, 2, 1, "", "edge_width"], [225, 3, 1, "", "evaluate"], [225, 3, 1, "", "evaluate_geom"], [225, 2, 1, "", "evaluation_bin_size_min"], [225, 2, 1, "", "evaluation_radius"], [225, 2, 1, "", "evaluation_region"], [225, 3, 1, "", "freeze"], [225, 3, 1, "", "from_dict"], [225, 3, 1, "", "from_parameters"], [225, 3, 1, "", "from_position"], [225, 3, 1, "", "from_region"], [225, 2, 1, "", "frozen"], [225, 3, 1, "", "integrate_geom"], [225, 2, 1, "", "is_energy_dependent"], [225, 2, 1, "", "lat_0"], [225, 2, 1, "", "lon_0"], [225, 2, 1, "", "parameters"], [225, 2, 1, "", "parameters_unique_names"], [225, 2, 1, "", "phi"], [225, 2, 1, "", "phi_0"], [225, 3, 1, "", "plot"], [225, 3, 1, "", "plot_error"], [225, 3, 1, "", "plot_grid"], [225, 3, 1, "", "plot_interactive"], [225, 3, 1, "", "plot_position_error"], [225, 2, 1, "", "position"], [225, 2, 1, "", "position_error"], [225, 2, 1, "", "position_lonlat"], [225, 2, 1, "", "r_0"], [225, 3, 1, "", "reassign"], [225, 2, 1, "", "tag"], [225, 3, 1, "", "to_dict"], [225, 3, 1, "", "to_region"], [225, 2, 1, "", "type"], [225, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.EBLAbsorptionNormSpectralModel": [[226, 3, 1, "", "__call__"], [226, 2, 1, "", "alpha_norm"], [226, 3, 1, "", "copy"], [226, 2, 1, "", "covariance"], [226, 2, 1, "", "default_parameters"], [226, 3, 1, "", "energy_flux"], [226, 3, 1, "", "energy_flux_error"], [226, 3, 1, "", "evaluate"], [226, 3, 1, "", "evaluate_error"], [226, 3, 1, "", "freeze"], [226, 3, 1, "", "from_dict"], [226, 3, 1, "", "from_parameters"], [226, 2, 1, "", "frozen"], [226, 3, 1, "", "integral"], [226, 3, 1, "", "integral_error"], [226, 3, 1, "", "inverse"], [226, 3, 1, "", "inverse_all"], [226, 2, 1, "", "is_norm_spectral_model"], [226, 2, 1, "", "parameters"], [226, 2, 1, "", "parameters_unique_names"], [226, 2, 1, "", "pivot_energy"], [226, 3, 1, "", "plot"], [226, 3, 1, "", "plot_error"], [226, 3, 1, "", "read"], [226, 3, 1, "", "read_builtin"], [226, 3, 1, "", "reassign"], [226, 2, 1, "", "redshift"], [226, 3, 1, "", "reference_fluxes"], [226, 3, 1, "", "spectral_index"], [226, 3, 1, "", "spectral_index_error"], [226, 2, 1, "", "tag"], [226, 3, 1, "", "to_dict"], [226, 2, 1, "", "type"], [226, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpCutoffPowerLaw3FGLSpectralModel": [[228, 3, 1, "", "__call__"], [228, 2, 1, "", "amplitude"], [228, 3, 1, "", "copy"], [228, 2, 1, "", "covariance"], [228, 2, 1, "", "default_parameters"], [228, 2, 1, "", "ecut"], [228, 3, 1, "", "energy_flux"], [228, 3, 1, "", "energy_flux_error"], [228, 3, 1, "", "evaluate"], [228, 3, 1, "", "evaluate_error"], [228, 3, 1, "", "freeze"], [228, 3, 1, "", "from_dict"], [228, 3, 1, "", "from_parameters"], [228, 2, 1, "", "frozen"], [228, 2, 1, "", "index"], [228, 3, 1, "", "integral"], [228, 3, 1, "", "integral_error"], [228, 3, 1, "", "inverse"], [228, 3, 1, "", "inverse_all"], [228, 2, 1, "", "is_norm_spectral_model"], [228, 2, 1, "", "parameters"], [228, 2, 1, "", "parameters_unique_names"], [228, 2, 1, "", "pivot_energy"], [228, 3, 1, "", "plot"], [228, 3, 1, "", "plot_error"], [228, 3, 1, "", "reassign"], [228, 2, 1, "", "reference"], [228, 3, 1, "", "reference_fluxes"], [228, 3, 1, "", "spectral_index"], [228, 3, 1, "", "spectral_index_error"], [228, 2, 1, "", "tag"], [228, 3, 1, "", "to_dict"], [228, 2, 1, "", "type"], [228, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpCutoffPowerLawNormSpectralModel": [[229, 3, 1, "", "__call__"], [229, 2, 1, "", "alpha"], [229, 3, 1, "", "copy"], [229, 2, 1, "", "covariance"], [229, 2, 1, "", "default_parameters"], [229, 3, 1, "", "energy_flux"], [229, 3, 1, "", "energy_flux_error"], [229, 3, 1, "", "evaluate"], [229, 3, 1, "", "evaluate_error"], [229, 3, 1, "", "freeze"], [229, 3, 1, "", "from_dict"], [229, 3, 1, "", "from_parameters"], [229, 2, 1, "", "frozen"], [229, 2, 1, "", "index"], [229, 3, 1, "", "integral"], [229, 3, 1, "", "integral_error"], [229, 3, 1, "", "inverse"], [229, 3, 1, "", "inverse_all"], [229, 2, 1, "", "is_norm_spectral_model"], [229, 2, 1, "", "lambda_"], [229, 2, 1, "", "norm"], [229, 2, 1, "", "parameters"], [229, 2, 1, "", "parameters_unique_names"], [229, 2, 1, "", "pivot_energy"], [229, 3, 1, "", "plot"], [229, 3, 1, "", "plot_error"], [229, 3, 1, "", "reassign"], [229, 2, 1, "", "reference"], [229, 3, 1, "", "reference_fluxes"], [229, 3, 1, "", "spectral_index"], [229, 3, 1, "", "spectral_index_error"], [229, 2, 1, "", "tag"], [229, 3, 1, "", "to_dict"], [229, 2, 1, "", "type"], [229, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpCutoffPowerLawSpectralModel": [[230, 3, 1, "", "__call__"], [230, 2, 1, "", "alpha"], [230, 2, 1, "", "amplitude"], [230, 3, 1, "", "copy"], [230, 2, 1, "", "covariance"], [230, 2, 1, "", "default_parameters"], [230, 2, 1, "", "e_peak"], [230, 3, 1, "", "energy_flux"], [230, 3, 1, "", "energy_flux_error"], [230, 3, 1, "", "evaluate"], [230, 3, 1, "", "evaluate_error"], [230, 3, 1, "", "freeze"], [230, 3, 1, "", "from_dict"], [230, 3, 1, "", "from_parameters"], [230, 2, 1, "", "frozen"], [230, 2, 1, "", "index"], [230, 3, 1, "", "integral"], [230, 3, 1, "", "integral_error"], [230, 3, 1, "", "inverse"], [230, 3, 1, "", "inverse_all"], [230, 2, 1, "", "is_norm_spectral_model"], [230, 2, 1, "", "lambda_"], [230, 2, 1, "", "parameters"], [230, 2, 1, "", "parameters_unique_names"], [230, 2, 1, "", "pivot_energy"], [230, 3, 1, "", "plot"], [230, 3, 1, "", "plot_error"], [230, 3, 1, "", "reassign"], [230, 2, 1, "", "reference"], [230, 3, 1, "", "reference_fluxes"], [230, 3, 1, "", "spectral_index"], [230, 3, 1, "", "spectral_index_error"], [230, 2, 1, "", "tag"], [230, 3, 1, "", "to_dict"], [230, 2, 1, "", "type"], [230, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ExpDecayTemporalModel": [[231, 3, 1, "", "__call__"], [231, 3, 1, "", "copy"], [231, 2, 1, "", "covariance"], [231, 2, 1, "", "default_parameters"], [231, 3, 1, "", "evaluate"], [231, 3, 1, "", "freeze"], [231, 3, 1, "", "from_dict"], [231, 3, 1, "", "from_parameters"], [231, 2, 1, "", "frozen"], [231, 3, 1, "", "integral"], [231, 2, 1, "", "is_energy_dependent"], [231, 2, 1, "", "parameters"], [231, 2, 1, "", "parameters_unique_names"], [231, 3, 1, "", "plot"], [231, 3, 1, "", "reassign"], [231, 2, 1, "", "reference_time"], [231, 3, 1, "", "sample_time"], [231, 2, 1, "", "t0"], [231, 2, 1, "", "t_ref"], [231, 2, 1, "", "tag"], [231, 3, 1, "", "time_sum"], [231, 3, 1, "", "to_dict"], [231, 2, 1, "", "type"], [231, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.FoVBackgroundModel": [[232, 3, 1, "", "contributes"], [232, 3, 1, "", "copy"], [232, 2, 1, "", "covariance"], [232, 2, 1, "", "default_parameters"], [232, 3, 1, "", "evaluate"], [232, 3, 1, "", "evaluate_geom"], [232, 3, 1, "", "freeze"], [232, 3, 1, "", "from_dict"], [232, 3, 1, "", "from_parameters"], [232, 2, 1, "", "frozen"], [232, 2, 1, "", "name"], [232, 2, 1, "", "parameters"], [232, 2, 1, "", "parameters_unique_names"], [232, 3, 1, "", "reassign"], [232, 3, 1, "", "reset_to_default"], [232, 2, 1, "", "spatial_model"], [232, 2, 1, "", "spectral_model"], [232, 2, 1, "", "tag"], [232, 3, 1, "", "to_dict"], [232, 2, 1, "", "type"], [232, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GaussianPrior": [[233, 3, 1, "", "__call__"], [233, 3, 1, "", "copy"], [233, 2, 1, "", "covariance"], [233, 2, 1, "", "default_parameters"], [233, 3, 1, "", "evaluate"], [233, 3, 1, "", "freeze"], [233, 3, 1, "", "from_dict"], [233, 3, 1, "", "from_parameters"], [233, 2, 1, "", "frozen"], [233, 2, 1, "", "mu"], [233, 2, 1, "", "parameters"], [233, 2, 1, "", "parameters_unique_names"], [233, 3, 1, "", "reassign"], [233, 2, 1, "", "sigma"], [233, 2, 1, "", "tag"], [233, 3, 1, "", "to_dict"], [233, 2, 1, "", "type"], [233, 3, 1, "", "unfreeze"], [233, 2, 1, "", "weight"]], "gammapy.modeling.models.GaussianSpatialModel": [[234, 3, 1, "", "__call__"], [234, 3, 1, "", "copy"], [234, 2, 1, "", "covariance"], [234, 2, 1, "", "default_parameters"], [234, 2, 1, "", "e"], [234, 3, 1, "", "evaluate"], [234, 3, 1, "", "evaluate_geom"], [234, 2, 1, "", "evaluation_bin_size_min"], [234, 2, 1, "", "evaluation_radius"], [234, 2, 1, "", "evaluation_region"], [234, 3, 1, "", "freeze"], [234, 3, 1, "", "from_dict"], [234, 3, 1, "", "from_parameters"], [234, 3, 1, "", "from_position"], [234, 2, 1, "", "frozen"], [234, 3, 1, "", "integrate_geom"], [234, 2, 1, "", "is_energy_dependent"], [234, 2, 1, "", "lat_0"], [234, 2, 1, "", "lon_0"], [234, 2, 1, "", "parameters"], [234, 2, 1, "", "parameters_unique_names"], [234, 2, 1, "", "phi"], [234, 2, 1, "", "phi_0"], [234, 3, 1, "", "plot"], [234, 3, 1, "", "plot_error"], [234, 3, 1, "", "plot_grid"], [234, 3, 1, "", "plot_interactive"], [234, 3, 1, "", "plot_position_error"], [234, 2, 1, "", "position"], [234, 2, 1, "", "position_error"], [234, 2, 1, "", "position_lonlat"], [234, 3, 1, "", "reassign"], [234, 2, 1, "", "sigma"], [234, 2, 1, "", "tag"], [234, 3, 1, "", "to_dict"], [234, 3, 1, "", "to_region"], [234, 2, 1, "", "type"], [234, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GaussianSpectralModel": [[235, 3, 1, "", "__call__"], [235, 2, 1, "", "amplitude"], [235, 3, 1, "", "copy"], [235, 2, 1, "", "covariance"], [235, 2, 1, "", "default_parameters"], [235, 3, 1, "", "energy_flux"], [235, 3, 1, "", "energy_flux_error"], [235, 3, 1, "", "evaluate"], [235, 3, 1, "", "evaluate_error"], [235, 3, 1, "", "freeze"], [235, 3, 1, "", "from_dict"], [235, 3, 1, "", "from_parameters"], [235, 2, 1, "", "frozen"], [235, 3, 1, "", "integral"], [235, 3, 1, "", "integral_error"], [235, 3, 1, "", "inverse"], [235, 3, 1, "", "inverse_all"], [235, 2, 1, "", "is_norm_spectral_model"], [235, 2, 1, "", "mean"], [235, 2, 1, "", "parameters"], [235, 2, 1, "", "parameters_unique_names"], [235, 2, 1, "", "pivot_energy"], [235, 3, 1, "", "plot"], [235, 3, 1, "", "plot_error"], [235, 3, 1, "", "reassign"], [235, 3, 1, "", "reference_fluxes"], [235, 2, 1, "", "sigma"], [235, 3, 1, "", "spectral_index"], [235, 3, 1, "", "spectral_index_error"], [235, 2, 1, "", "tag"], [235, 3, 1, "", "to_dict"], [235, 2, 1, "", "type"], [235, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GaussianTemporalModel": [[236, 3, 1, "", "__call__"], [236, 3, 1, "", "copy"], [236, 2, 1, "", "covariance"], [236, 2, 1, "", "default_parameters"], [236, 3, 1, "", "evaluate"], [236, 3, 1, "", "freeze"], [236, 3, 1, "", "from_dict"], [236, 3, 1, "", "from_parameters"], [236, 2, 1, "", "frozen"], [236, 3, 1, "", "integral"], [236, 2, 1, "", "is_energy_dependent"], [236, 2, 1, "", "parameters"], [236, 2, 1, "", "parameters_unique_names"], [236, 3, 1, "", "plot"], [236, 3, 1, "", "reassign"], [236, 2, 1, "", "reference_time"], [236, 3, 1, "", "sample_time"], [236, 2, 1, "", "sigma"], [236, 2, 1, "", "t_ref"], [236, 2, 1, "", "tag"], [236, 3, 1, "", "time_sum"], [236, 3, 1, "", "to_dict"], [236, 2, 1, "", "type"], [236, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GeneralizedGaussianSpatialModel": [[237, 3, 1, "", "__call__"], [237, 3, 1, "", "copy"], [237, 2, 1, "", "covariance"], [237, 2, 1, "", "default_parameters"], [237, 2, 1, "", "e"], [237, 2, 1, "", "eta"], [237, 3, 1, "", "evaluate"], [237, 3, 1, "", "evaluate_geom"], [237, 2, 1, "", "evaluation_bin_size_min"], [237, 2, 1, "", "evaluation_radius"], [237, 2, 1, "", "evaluation_region"], [237, 3, 1, "", "freeze"], [237, 3, 1, "", "from_dict"], [237, 3, 1, "", "from_parameters"], [237, 3, 1, "", "from_position"], [237, 2, 1, "", "frozen"], [237, 3, 1, "", "integrate_geom"], [237, 2, 1, "", "is_energy_dependent"], [237, 2, 1, "", "lat_0"], [237, 2, 1, "", "lon_0"], [237, 2, 1, "", "parameters"], [237, 2, 1, "", "parameters_unique_names"], [237, 2, 1, "", "phi"], [237, 2, 1, "", "phi_0"], [237, 3, 1, "", "plot"], [237, 3, 1, "", "plot_error"], [237, 3, 1, "", "plot_grid"], [237, 3, 1, "", "plot_interactive"], [237, 3, 1, "", "plot_position_error"], [237, 2, 1, "", "position"], [237, 2, 1, "", "position_error"], [237, 2, 1, "", "position_lonlat"], [237, 2, 1, "", "r_0"], [237, 3, 1, "", "reassign"], [237, 2, 1, "", "tag"], [237, 3, 1, "", "to_dict"], [237, 3, 1, "", "to_region"], [237, 2, 1, "", "type"], [237, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.GeneralizedGaussianTemporalModel": [[238, 3, 1, "", "__call__"], [238, 3, 1, "", "copy"], [238, 2, 1, "", "covariance"], [238, 2, 1, "", "default_parameters"], [238, 2, 1, "", "eta"], [238, 3, 1, "", "evaluate"], [238, 3, 1, "", "freeze"], [238, 3, 1, "", "from_dict"], [238, 3, 1, "", "from_parameters"], [238, 2, 1, "", "frozen"], [238, 3, 1, "", "integral"], [238, 2, 1, "", "is_energy_dependent"], [238, 2, 1, "", "parameters"], [238, 2, 1, "", "parameters_unique_names"], [238, 3, 1, "", "plot"], [238, 3, 1, "", "reassign"], [238, 2, 1, "", "reference_time"], [238, 3, 1, "", "sample_time"], [238, 2, 1, "", "t_decay"], [238, 2, 1, "", "t_ref"], [238, 2, 1, "", "t_rise"], [238, 2, 1, "", "tag"], [238, 3, 1, "", "time_sum"], [238, 3, 1, "", "to_dict"], [238, 2, 1, "", "type"], [238, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.LightCurveTemplateTemporalModel": [[239, 3, 1, "", "__call__"], [239, 3, 1, "", "copy"], [239, 2, 1, "", "covariance"], [239, 2, 1, "", "default_parameters"], [239, 3, 1, "", "evaluate"], [239, 3, 1, "", "freeze"], [239, 3, 1, "", "from_dict"], [239, 3, 1, "", "from_parameters"], [239, 3, 1, "", "from_table"], [239, 2, 1, "", "frozen"], [239, 3, 1, "", "integral"], [239, 2, 1, "", "is_energy_dependent"], [239, 2, 1, "", "parameters"], [239, 2, 1, "", "parameters_unique_names"], [239, 3, 1, "", "plot"], [239, 3, 1, "", "read"], [239, 3, 1, "", "reassign"], [239, 2, 1, "", "reference_time"], [239, 3, 1, "", "sample_time"], [239, 2, 1, "", "t_ref"], [239, 2, 1, "", "tag"], [239, 3, 1, "", "time_sum"], [239, 3, 1, "", "to_dict"], [239, 3, 1, "", "to_table"], [239, 2, 1, "", "type"], [239, 3, 1, "", "unfreeze"], [239, 3, 1, "", "write"]], "gammapy.modeling.models.LinearTemporalModel": [[240, 3, 1, "", "__call__"], [240, 2, 1, "", "alpha"], [240, 2, 1, "", "beta"], [240, 3, 1, "", "copy"], [240, 2, 1, "", "covariance"], [240, 2, 1, "", "default_parameters"], [240, 3, 1, "", "evaluate"], [240, 3, 1, "", "freeze"], [240, 3, 1, "", "from_dict"], [240, 3, 1, "", "from_parameters"], [240, 2, 1, "", "frozen"], [240, 3, 1, "", "integral"], [240, 2, 1, "", "is_energy_dependent"], [240, 2, 1, "", "parameters"], [240, 2, 1, "", "parameters_unique_names"], [240, 3, 1, "", "plot"], [240, 3, 1, "", "reassign"], [240, 2, 1, "", "reference_time"], [240, 3, 1, "", "sample_time"], [240, 2, 1, "", "t_ref"], [240, 2, 1, "", "tag"], [240, 3, 1, "", "time_sum"], [240, 3, 1, "", "to_dict"], [240, 2, 1, "", "type"], [240, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.LogParabolaNormSpectralModel": [[241, 3, 1, "", "__call__"], [241, 2, 1, "", "alpha"], [241, 2, 1, "", "beta"], [241, 3, 1, "", "copy"], [241, 2, 1, "", "covariance"], [241, 2, 1, "", "default_parameters"], [241, 3, 1, "", "energy_flux"], [241, 3, 1, "", "energy_flux_error"], [241, 3, 1, "", "evaluate"], [241, 3, 1, "", "evaluate_error"], [241, 3, 1, "", "freeze"], [241, 3, 1, "", "from_dict"], [241, 3, 1, "", "from_log10"], [241, 3, 1, "", "from_parameters"], [241, 2, 1, "", "frozen"], [241, 3, 1, "", "integral"], [241, 3, 1, "", "integral_error"], [241, 3, 1, "", "inverse"], [241, 3, 1, "", "inverse_all"], [241, 2, 1, "", "is_norm_spectral_model"], [241, 2, 1, "", "norm"], [241, 2, 1, "", "parameters"], [241, 2, 1, "", "parameters_unique_names"], [241, 2, 1, "", "pivot_energy"], [241, 3, 1, "", "plot"], [241, 3, 1, "", "plot_error"], [241, 3, 1, "", "reassign"], [241, 2, 1, "", "reference"], [241, 3, 1, "", "reference_fluxes"], [241, 3, 1, "", "spectral_index"], [241, 3, 1, "", "spectral_index_error"], [241, 2, 1, "", "tag"], [241, 3, 1, "", "to_dict"], [241, 2, 1, "", "type"], [241, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.LogParabolaSpectralModel": [[242, 3, 1, "", "__call__"], [242, 2, 1, "", "alpha"], [242, 2, 1, "", "amplitude"], [242, 2, 1, "", "beta"], [242, 3, 1, "", "copy"], [242, 2, 1, "", "covariance"], [242, 2, 1, "", "default_parameters"], [242, 2, 1, "", "e_peak"], [242, 3, 1, "", "energy_flux"], [242, 3, 1, "", "energy_flux_error"], [242, 3, 1, "", "evaluate"], [242, 3, 1, "", "evaluate_error"], [242, 3, 1, "", "freeze"], [242, 3, 1, "", "from_dict"], [242, 3, 1, "", "from_log10"], [242, 3, 1, "", "from_parameters"], [242, 2, 1, "", "frozen"], [242, 3, 1, "", "integral"], [242, 3, 1, "", "integral_error"], [242, 3, 1, "", "inverse"], [242, 3, 1, "", "inverse_all"], [242, 2, 1, "", "is_norm_spectral_model"], [242, 2, 1, "", "parameters"], [242, 2, 1, "", "parameters_unique_names"], [242, 2, 1, "", "pivot_energy"], [242, 3, 1, "", "plot"], [242, 3, 1, "", "plot_error"], [242, 3, 1, "", "reassign"], [242, 2, 1, "", "reference"], [242, 3, 1, "", "reference_fluxes"], [242, 3, 1, "", "spectral_index"], [242, 3, 1, "", "spectral_index_error"], [242, 2, 1, "", "tag"], [242, 3, 1, "", "to_dict"], [242, 2, 1, "", "type"], [242, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.MeyerCrabSpectralModel": [[244, 3, 1, "", "__call__"], [244, 2, 1, "", "coefficients"], [244, 3, 1, "", "copy"], [244, 2, 1, "", "covariance"], [244, 2, 1, "", "default_parameters"], [244, 3, 1, "", "energy_flux"], [244, 3, 1, "", "energy_flux_error"], [244, 3, 1, "", "evaluate"], [244, 3, 1, "", "evaluate_error"], [244, 3, 1, "", "freeze"], [244, 3, 1, "", "from_dict"], [244, 3, 1, "", "from_parameters"], [244, 2, 1, "", "frozen"], [244, 3, 1, "", "integral"], [244, 3, 1, "", "integral_error"], [244, 3, 1, "", "inverse"], [244, 3, 1, "", "inverse_all"], [244, 2, 1, "", "is_norm_spectral_model"], [244, 2, 1, "", "norm"], [244, 2, 1, "", "parameters"], [244, 2, 1, "", "parameters_unique_names"], [244, 2, 1, "", "pivot_energy"], [244, 3, 1, "", "plot"], [244, 3, 1, "", "plot_error"], [244, 3, 1, "", "reassign"], [244, 3, 1, "", "reference_fluxes"], [244, 3, 1, "", "spectral_index"], [244, 3, 1, "", "spectral_index_error"], [244, 3, 1, "", "to_dict"], [244, 2, 1, "", "type"], [244, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Model": [[245, 3, 1, "", "create"], [245, 3, 1, "", "from_dict"]], "gammapy.modeling.models.ModelBase": [[246, 3, 1, "", "copy"], [246, 2, 1, "", "covariance"], [246, 3, 1, "", "freeze"], [246, 3, 1, "", "from_dict"], [246, 3, 1, "", "from_parameters"], [246, 2, 1, "", "frozen"], [246, 2, 1, "", "parameters"], [246, 2, 1, "", "parameters_unique_names"], [246, 3, 1, "", "reassign"], [246, 3, 1, "", "to_dict"], [246, 2, 1, "", "type"], [246, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Models": [[247, 3, 1, "", "append"], [247, 3, 1, "", "clear"], [247, 3, 1, "", "copy"], [247, 3, 1, "", "count"], [247, 2, 1, "", "covariance"], [247, 3, 1, "", "extend"], [247, 3, 1, "", "freeze"], [247, 3, 1, "", "from_dict"], [247, 3, 1, "", "from_yaml"], [247, 2, 1, "", "frozen"], [247, 3, 1, "", "index"], [247, 3, 1, "", "insert"], [247, 2, 1, "", "names"], [247, 2, 1, "", "parameters"], [247, 2, 1, "", "parameters_unique_names"], [247, 3, 1, "", "plot_positions"], [247, 3, 1, "", "plot_regions"], [247, 3, 1, "", "pop"], [247, 2, 1, "", "positions"], [247, 3, 1, "", "read"], [247, 3, 1, "", "read_covariance"], [247, 3, 1, "", "reassign"], [247, 3, 1, "", "remove"], [247, 3, 1, "", "restore_status"], [247, 3, 1, "", "reverse"], [247, 3, 1, "", "select"], [247, 3, 1, "", "select_from_geom"], [247, 3, 1, "", "select_mask"], [247, 3, 1, "", "select_region"], [247, 3, 1, "", "selection_mask"], [247, 3, 1, "", "set_parameters_bounds"], [247, 3, 1, "", "set_prior"], [247, 3, 1, "", "to_dict"], [247, 3, 1, "", "to_parameters_table"], [247, 3, 1, "", "to_regions"], [247, 3, 1, "", "to_template_sky_model"], [247, 3, 1, "", "to_template_spectral_model"], [247, 3, 1, "", "to_yaml"], [247, 3, 1, "", "unfreeze"], [247, 3, 1, "", "update_link_label"], [247, 3, 1, "", "update_parameters_from_table"], [247, 2, 1, "", "wcs_geom"], [247, 3, 1, "", "write"], [247, 3, 1, "", "write_covariance"]], "gammapy.modeling.models.NaimaSpectralModel": [[248, 3, 1, "", "__call__"], [248, 3, 1, "", "copy"], [248, 2, 1, "", "covariance"], [248, 2, 1, "", "default_parameters"], [248, 3, 1, "", "energy_flux"], [248, 3, 1, "", "energy_flux_error"], [248, 3, 1, "", "evaluate"], [248, 3, 1, "", "evaluate_error"], [248, 3, 1, "", "freeze"], [248, 3, 1, "", "from_dict"], [248, 3, 1, "", "from_parameters"], [248, 2, 1, "", "frozen"], [248, 2, 1, "", "include_ssc"], [248, 3, 1, "", "integral"], [248, 3, 1, "", "integral_error"], [248, 3, 1, "", "inverse"], [248, 3, 1, "", "inverse_all"], [248, 2, 1, "", "is_norm_spectral_model"], [248, 2, 1, "", "parameters"], [248, 2, 1, "", "parameters_unique_names"], [248, 2, 1, "", "particle_distribution"], [248, 2, 1, "", "pivot_energy"], [248, 3, 1, "", "plot"], [248, 3, 1, "", "plot_error"], [248, 3, 1, "", "reassign"], [248, 3, 1, "", "reference_fluxes"], [248, 3, 1, "", "spectral_index"], [248, 3, 1, "", "spectral_index_error"], [248, 2, 1, "", "ssc_model"], [248, 2, 1, "", "tag"], [248, 3, 1, "", "to_dict"], [248, 2, 1, "", "type"], [248, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PiecewiseNormSpatialModel": [[249, 3, 1, "", "__call__"], [249, 2, 1, "", "coords"], [249, 3, 1, "", "copy"], [249, 2, 1, "", "covariance"], [249, 2, 1, "", "default_parameters"], [249, 3, 1, "", "evaluate"], [249, 3, 1, "", "evaluate_geom"], [249, 2, 1, "", "evaluation_bin_size_min"], [249, 2, 1, "", "evaluation_radius"], [249, 2, 1, "", "evaluation_region"], [249, 3, 1, "", "freeze"], [249, 3, 1, "", "from_dict"], [249, 3, 1, "", "from_parameters"], [249, 3, 1, "", "from_position"], [249, 2, 1, "", "frozen"], [249, 3, 1, "", "integrate_geom"], [249, 2, 1, "", "is_energy_dependent"], [249, 2, 1, "", "norms"], [249, 2, 1, "", "parameters"], [249, 2, 1, "", "parameters_unique_names"], [249, 2, 1, "", "phi_0"], [249, 3, 1, "", "plot"], [249, 3, 1, "", "plot_error"], [249, 3, 1, "", "plot_grid"], [249, 3, 1, "", "plot_interactive"], [249, 3, 1, "", "plot_position_error"], [249, 2, 1, "", "position"], [249, 2, 1, "", "position_error"], [249, 2, 1, "", "position_lonlat"], [249, 3, 1, "", "reassign"], [249, 2, 1, "", "tag"], [249, 3, 1, "", "to_dict"], [249, 2, 1, "", "type"], [249, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PiecewiseNormSpectralModel": [[250, 3, 1, "", "__call__"], [250, 3, 1, "", "copy"], [250, 2, 1, "", "covariance"], [250, 2, 1, "", "default_parameters"], [250, 2, 1, "", "energy"], [250, 3, 1, "", "energy_flux"], [250, 3, 1, "", "energy_flux_error"], [250, 3, 1, "", "evaluate"], [250, 3, 1, "", "evaluate_error"], [250, 3, 1, "", "freeze"], [250, 3, 1, "", "from_dict"], [250, 3, 1, "", "from_parameters"], [250, 2, 1, "", "frozen"], [250, 3, 1, "", "integral"], [250, 3, 1, "", "integral_error"], [250, 3, 1, "", "inverse"], [250, 3, 1, "", "inverse_all"], [250, 2, 1, "", "is_norm_spectral_model"], [250, 2, 1, "", "norms"], [250, 2, 1, "", "parameters"], [250, 2, 1, "", "parameters_unique_names"], [250, 2, 1, "", "pivot_energy"], [250, 3, 1, "", "plot"], [250, 3, 1, "", "plot_error"], [250, 3, 1, "", "reassign"], [250, 3, 1, "", "reference_fluxes"], [250, 3, 1, "", "spectral_index"], [250, 3, 1, "", "spectral_index_error"], [250, 2, 1, "", "tag"], [250, 3, 1, "", "to_dict"], [250, 2, 1, "", "type"], [250, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PointSpatialModel": [[251, 3, 1, "", "__call__"], [251, 3, 1, "", "copy"], [251, 2, 1, "", "covariance"], [251, 2, 1, "", "default_parameters"], [251, 3, 1, "", "evaluate_geom"], [251, 2, 1, "", "evaluation_bin_size_min"], [251, 2, 1, "", "evaluation_radius"], [251, 2, 1, "", "evaluation_region"], [251, 3, 1, "", "freeze"], [251, 3, 1, "", "from_dict"], [251, 3, 1, "", "from_parameters"], [251, 3, 1, "", "from_position"], [251, 2, 1, "", "frozen"], [251, 3, 1, "", "integrate_geom"], [251, 2, 1, "", "is_energy_dependent"], [251, 2, 1, "", "lat_0"], [251, 2, 1, "", "lon_0"], [251, 2, 1, "", "parameters"], [251, 2, 1, "", "parameters_unique_names"], [251, 2, 1, "", "phi_0"], [251, 3, 1, "", "plot"], [251, 3, 1, "", "plot_error"], [251, 3, 1, "", "plot_grid"], [251, 3, 1, "", "plot_interactive"], [251, 3, 1, "", "plot_position_error"], [251, 2, 1, "", "position"], [251, 2, 1, "", "position_error"], [251, 2, 1, "", "position_lonlat"], [251, 3, 1, "", "reassign"], [251, 2, 1, "", "tag"], [251, 3, 1, "", "to_dict"], [251, 3, 1, "", "to_region"], [251, 2, 1, "", "type"], [251, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLaw2SpectralModel": [[252, 3, 1, "", "__call__"], [252, 2, 1, "", "amplitude"], [252, 3, 1, "", "copy"], [252, 2, 1, "", "covariance"], [252, 2, 1, "", "default_parameters"], [252, 2, 1, "", "emax"], [252, 2, 1, "", "emin"], [252, 3, 1, "", "energy_flux"], [252, 3, 1, "", "energy_flux_error"], [252, 3, 1, "", "evaluate"], [252, 3, 1, "", "evaluate_error"], [252, 3, 1, "", "evaluate_integral"], [252, 3, 1, "", "freeze"], [252, 3, 1, "", "from_dict"], [252, 3, 1, "", "from_parameters"], [252, 2, 1, "", "frozen"], [252, 2, 1, "", "index"], [252, 3, 1, "", "integral"], [252, 3, 1, "", "integral_error"], [252, 3, 1, "", "inverse"], [252, 3, 1, "", "inverse_all"], [252, 2, 1, "", "is_norm_spectral_model"], [252, 2, 1, "", "parameters"], [252, 2, 1, "", "parameters_unique_names"], [252, 2, 1, "", "pivot_energy"], [252, 3, 1, "", "plot"], [252, 3, 1, "", "plot_error"], [252, 3, 1, "", "reassign"], [252, 3, 1, "", "reference_fluxes"], [252, 3, 1, "", "spectral_index"], [252, 3, 1, "", "spectral_index_error"], [252, 2, 1, "", "tag"], [252, 3, 1, "", "to_dict"], [252, 2, 1, "", "type"], [252, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLawNormSpectralModel": [[253, 3, 1, "", "__call__"], [253, 3, 1, "", "copy"], [253, 2, 1, "", "covariance"], [253, 2, 1, "", "default_parameters"], [253, 3, 1, "", "energy_flux"], [253, 3, 1, "", "energy_flux_error"], [253, 3, 1, "", "evaluate"], [253, 3, 1, "", "evaluate_energy_flux"], [253, 3, 1, "", "evaluate_error"], [253, 3, 1, "", "evaluate_integral"], [253, 3, 1, "", "freeze"], [253, 3, 1, "", "from_dict"], [253, 3, 1, "", "from_parameters"], [253, 2, 1, "", "frozen"], [253, 3, 1, "", "integral"], [253, 3, 1, "", "integral_error"], [253, 3, 1, "", "inverse"], [253, 3, 1, "", "inverse_all"], [253, 2, 1, "", "is_norm_spectral_model"], [253, 2, 1, "", "norm"], [253, 2, 1, "", "parameters"], [253, 2, 1, "", "parameters_unique_names"], [253, 2, 1, "", "pivot_energy"], [253, 3, 1, "", "plot"], [253, 3, 1, "", "plot_error"], [253, 3, 1, "", "reassign"], [253, 2, 1, "", "reference"], [253, 3, 1, "", "reference_fluxes"], [253, 3, 1, "", "spectral_index"], [253, 3, 1, "", "spectral_index_error"], [253, 2, 1, "", "tag"], [253, 2, 1, "", "tilt"], [253, 3, 1, "", "to_dict"], [253, 2, 1, "", "type"], [253, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLawSpectralModel": [[254, 3, 1, "", "__call__"], [254, 2, 1, "", "amplitude"], [254, 3, 1, "", "copy"], [254, 2, 1, "", "covariance"], [254, 2, 1, "", "default_parameters"], [254, 3, 1, "", "energy_flux"], [254, 3, 1, "", "energy_flux_error"], [254, 3, 1, "", "evaluate"], [254, 3, 1, "", "evaluate_energy_flux"], [254, 3, 1, "", "evaluate_error"], [254, 3, 1, "", "evaluate_integral"], [254, 3, 1, "", "freeze"], [254, 3, 1, "", "from_dict"], [254, 3, 1, "", "from_parameters"], [254, 2, 1, "", "frozen"], [254, 2, 1, "", "index"], [254, 3, 1, "", "integral"], [254, 3, 1, "", "integral_error"], [254, 3, 1, "", "inverse"], [254, 3, 1, "", "inverse_all"], [254, 2, 1, "", "is_norm_spectral_model"], [254, 2, 1, "", "parameters"], [254, 2, 1, "", "parameters_unique_names"], [254, 2, 1, "", "pivot_energy"], [254, 3, 1, "", "plot"], [254, 3, 1, "", "plot_error"], [254, 3, 1, "", "reassign"], [254, 2, 1, "", "reference"], [254, 3, 1, "", "reference_fluxes"], [254, 3, 1, "", "spectral_index"], [254, 3, 1, "", "spectral_index_error"], [254, 2, 1, "", "tag"], [254, 3, 1, "", "to_dict"], [254, 2, 1, "", "type"], [254, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.PowerLawTemporalModel": [[255, 3, 1, "", "__call__"], [255, 2, 1, "", "alpha"], [255, 3, 1, "", "copy"], [255, 2, 1, "", "covariance"], [255, 2, 1, "", "default_parameters"], [255, 3, 1, "", "evaluate"], [255, 3, 1, "", "freeze"], [255, 3, 1, "", "from_dict"], [255, 3, 1, "", "from_parameters"], [255, 2, 1, "", "frozen"], [255, 3, 1, "", "integral"], [255, 2, 1, "", "is_energy_dependent"], [255, 2, 1, "", "parameters"], [255, 2, 1, "", "parameters_unique_names"], [255, 3, 1, "", "plot"], [255, 3, 1, "", "reassign"], [255, 2, 1, "", "reference_time"], [255, 3, 1, "", "sample_time"], [255, 2, 1, "", "t0"], [255, 2, 1, "", "t_ref"], [255, 2, 1, "", "tag"], [255, 3, 1, "", "time_sum"], [255, 3, 1, "", "to_dict"], [255, 2, 1, "", "type"], [255, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Prior": [[256, 3, 1, "", "__call__"], [256, 3, 1, "", "copy"], [256, 2, 1, "", "covariance"], [256, 2, 1, "", "default_parameters"], [256, 3, 1, "", "freeze"], [256, 3, 1, "", "from_dict"], [256, 3, 1, "", "from_parameters"], [256, 2, 1, "", "frozen"], [256, 2, 1, "", "parameters"], [256, 2, 1, "", "parameters_unique_names"], [256, 3, 1, "", "reassign"], [256, 3, 1, "", "to_dict"], [256, 2, 1, "", "type"], [256, 3, 1, "", "unfreeze"], [256, 2, 1, "", "weight"]], "gammapy.modeling.models.ScaleSpectralModel": [[259, 3, 1, "", "__call__"], [259, 3, 1, "", "copy"], [259, 2, 1, "", "covariance"], [259, 2, 1, "", "default_parameters"], [259, 3, 1, "", "energy_flux"], [259, 3, 1, "", "energy_flux_error"], [259, 3, 1, "", "evaluate"], [259, 3, 1, "", "evaluate_error"], [259, 3, 1, "", "freeze"], [259, 3, 1, "", "from_dict"], [259, 3, 1, "", "from_parameters"], [259, 2, 1, "", "frozen"], [259, 3, 1, "", "integral"], [259, 3, 1, "", "integral_error"], [259, 3, 1, "", "inverse"], [259, 3, 1, "", "inverse_all"], [259, 2, 1, "", "is_norm_spectral_model"], [259, 2, 1, "", "norm"], [259, 2, 1, "", "parameters"], [259, 2, 1, "", "parameters_unique_names"], [259, 2, 1, "", "pivot_energy"], [259, 3, 1, "", "plot"], [259, 3, 1, "", "plot_error"], [259, 3, 1, "", "reassign"], [259, 3, 1, "", "reference_fluxes"], [259, 3, 1, "", "spectral_index"], [259, 3, 1, "", "spectral_index_error"], [259, 2, 1, "", "tag"], [259, 3, 1, "", "to_dict"], [259, 2, 1, "", "type"], [259, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.Shell2SpatialModel": [[260, 3, 1, "", "__call__"], [260, 3, 1, "", "copy"], [260, 2, 1, "", "covariance"], [260, 2, 1, "", "default_parameters"], [260, 2, 1, "", "eta"], [260, 3, 1, "", "evaluate"], [260, 3, 1, "", "evaluate_geom"], [260, 2, 1, "", "evaluation_bin_size_min"], [260, 2, 1, "", "evaluation_radius"], [260, 2, 1, "", "evaluation_region"], [260, 3, 1, "", "freeze"], [260, 3, 1, "", "from_dict"], [260, 3, 1, "", "from_parameters"], [260, 3, 1, "", "from_position"], [260, 2, 1, "", "frozen"], [260, 3, 1, "", "integrate_geom"], [260, 2, 1, "", "is_energy_dependent"], [260, 2, 1, "", "lat_0"], [260, 2, 1, "", "lon_0"], [260, 2, 1, "", "parameters"], [260, 2, 1, "", "parameters_unique_names"], [260, 2, 1, "", "phi_0"], [260, 3, 1, "", "plot"], [260, 3, 1, "", "plot_error"], [260, 3, 1, "", "plot_grid"], [260, 3, 1, "", "plot_interactive"], [260, 3, 1, "", "plot_position_error"], [260, 2, 1, "", "position"], [260, 2, 1, "", "position_error"], [260, 2, 1, "", "position_lonlat"], [260, 2, 1, "", "r_0"], [260, 2, 1, "", "r_in"], [260, 3, 1, "", "reassign"], [260, 2, 1, "", "tag"], [260, 3, 1, "", "to_dict"], [260, 3, 1, "", "to_region"], [260, 2, 1, "", "type"], [260, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.ShellSpatialModel": [[261, 3, 1, "", "__call__"], [261, 3, 1, "", "copy"], [261, 2, 1, "", "covariance"], [261, 2, 1, "", "default_parameters"], [261, 3, 1, "", "evaluate"], [261, 3, 1, "", "evaluate_geom"], [261, 2, 1, "", "evaluation_bin_size_min"], [261, 2, 1, "", "evaluation_radius"], [261, 2, 1, "", "evaluation_region"], [261, 3, 1, "", "freeze"], [261, 3, 1, "", "from_dict"], [261, 3, 1, "", "from_parameters"], [261, 3, 1, "", "from_position"], [261, 2, 1, "", "frozen"], [261, 3, 1, "", "integrate_geom"], [261, 2, 1, "", "is_energy_dependent"], [261, 2, 1, "", "lat_0"], [261, 2, 1, "", "lon_0"], [261, 2, 1, "", "parameters"], [261, 2, 1, "", "parameters_unique_names"], [261, 2, 1, "", "phi_0"], [261, 3, 1, "", "plot"], [261, 3, 1, "", "plot_error"], [261, 3, 1, "", "plot_grid"], [261, 3, 1, "", "plot_interactive"], [261, 3, 1, "", "plot_position_error"], [261, 2, 1, "", "position"], [261, 2, 1, "", "position_error"], [261, 2, 1, "", "position_lonlat"], [261, 2, 1, "", "radius"], [261, 3, 1, "", "reassign"], [261, 2, 1, "", "tag"], [261, 3, 1, "", "to_dict"], [261, 3, 1, "", "to_region"], [261, 2, 1, "", "type"], [261, 3, 1, "", "unfreeze"], [261, 2, 1, "", "width"]], "gammapy.modeling.models.SineTemporalModel": [[262, 3, 1, "", "__call__"], [262, 2, 1, "", "amp"], [262, 3, 1, "", "copy"], [262, 2, 1, "", "covariance"], [262, 2, 1, "", "default_parameters"], [262, 3, 1, "", "evaluate"], [262, 3, 1, "", "freeze"], [262, 3, 1, "", "from_dict"], [262, 3, 1, "", "from_parameters"], [262, 2, 1, "", "frozen"], [262, 3, 1, "", "integral"], [262, 2, 1, "", "is_energy_dependent"], [262, 2, 1, "", "omega"], [262, 2, 1, "", "parameters"], [262, 2, 1, "", "parameters_unique_names"], [262, 3, 1, "", "plot"], [262, 3, 1, "", "reassign"], [262, 2, 1, "", "reference_time"], [262, 3, 1, "", "sample_time"], [262, 2, 1, "", "t_ref"], [262, 2, 1, "", "tag"], [262, 3, 1, "", "time_sum"], [262, 3, 1, "", "to_dict"], [262, 2, 1, "", "type"], [262, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SkyModel": [[263, 3, 1, "", "__call__"], [263, 3, 1, "", "contributes"], [263, 3, 1, "", "copy"], [263, 2, 1, "", "covariance"], [263, 3, 1, "", "create"], [263, 2, 1, "", "default_parameters"], [263, 3, 1, "", "evaluate"], [263, 3, 1, "", "evaluate_geom"], [263, 2, 1, "", "evaluation_bin_size_min"], [263, 2, 1, "", "evaluation_radius"], [263, 2, 1, "", "evaluation_region"], [263, 2, 1, "", "frame"], [263, 3, 1, "", "freeze"], [263, 3, 1, "", "from_dict"], [263, 3, 1, "", "from_parameters"], [263, 2, 1, "", "frozen"], [263, 3, 1, "", "integrate_geom"], [263, 2, 1, "", "name"], [263, 2, 1, "", "parameters"], [263, 2, 1, "", "parameters_unique_names"], [263, 2, 1, "", "position"], [263, 2, 1, "", "position_lonlat"], [263, 3, 1, "", "reassign"], [263, 2, 1, "", "spatial_model"], [263, 2, 1, "", "spectral_model"], [263, 2, 1, "", "tag"], [263, 2, 1, "", "temporal_model"], [263, 3, 1, "", "to_dict"], [263, 2, 1, "", "type"], [263, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SmoothBrokenPowerLawSpectralModel": [[264, 3, 1, "", "__call__"], [264, 2, 1, "", "amplitude"], [264, 2, 1, "", "beta"], [264, 3, 1, "", "copy"], [264, 2, 1, "", "covariance"], [264, 2, 1, "", "default_parameters"], [264, 2, 1, "", "ebreak"], [264, 3, 1, "", "energy_flux"], [264, 3, 1, "", "energy_flux_error"], [264, 3, 1, "", "evaluate"], [264, 3, 1, "", "evaluate_error"], [264, 3, 1, "", "freeze"], [264, 3, 1, "", "from_dict"], [264, 3, 1, "", "from_parameters"], [264, 2, 1, "", "frozen"], [264, 2, 1, "", "index1"], [264, 2, 1, "", "index2"], [264, 3, 1, "", "integral"], [264, 3, 1, "", "integral_error"], [264, 3, 1, "", "inverse"], [264, 3, 1, "", "inverse_all"], [264, 2, 1, "", "is_norm_spectral_model"], [264, 2, 1, "", "parameters"], [264, 2, 1, "", "parameters_unique_names"], [264, 2, 1, "", "pivot_energy"], [264, 3, 1, "", "plot"], [264, 3, 1, "", "plot_error"], [264, 3, 1, "", "reassign"], [264, 2, 1, "", "reference"], [264, 3, 1, "", "reference_fluxes"], [264, 3, 1, "", "spectral_index"], [264, 3, 1, "", "spectral_index_error"], [264, 2, 1, "", "tag"], [264, 3, 1, "", "to_dict"], [264, 2, 1, "", "type"], [264, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SpatialModel": [[265, 3, 1, "", "__call__"], [265, 3, 1, "", "copy"], [265, 2, 1, "", "covariance"], [265, 2, 1, "", "default_parameters"], [265, 3, 1, "", "evaluate_geom"], [265, 2, 1, "", "evaluation_bin_size_min"], [265, 2, 1, "", "evaluation_radius"], [265, 2, 1, "", "evaluation_region"], [265, 3, 1, "", "freeze"], [265, 3, 1, "", "from_dict"], [265, 3, 1, "", "from_parameters"], [265, 3, 1, "", "from_position"], [265, 2, 1, "", "frozen"], [265, 3, 1, "", "integrate_geom"], [265, 2, 1, "", "is_energy_dependent"], [265, 2, 1, "", "parameters"], [265, 2, 1, "", "parameters_unique_names"], [265, 2, 1, "", "phi_0"], [265, 3, 1, "", "plot"], [265, 3, 1, "", "plot_error"], [265, 3, 1, "", "plot_grid"], [265, 3, 1, "", "plot_interactive"], [265, 3, 1, "", "plot_position_error"], [265, 2, 1, "", "position"], [265, 2, 1, "", "position_error"], [265, 2, 1, "", "position_lonlat"], [265, 3, 1, "", "reassign"], [265, 3, 1, "", "to_dict"], [265, 2, 1, "", "type"], [265, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SpectralModel": [[266, 3, 1, "", "__call__"], [266, 3, 1, "", "copy"], [266, 2, 1, "", "covariance"], [266, 2, 1, "", "default_parameters"], [266, 3, 1, "", "energy_flux"], [266, 3, 1, "", "energy_flux_error"], [266, 3, 1, "", "evaluate_error"], [266, 3, 1, "", "freeze"], [266, 3, 1, "", "from_dict"], [266, 3, 1, "", "from_parameters"], [266, 2, 1, "", "frozen"], [266, 3, 1, "", "integral"], [266, 3, 1, "", "integral_error"], [266, 3, 1, "", "inverse"], [266, 3, 1, "", "inverse_all"], [266, 2, 1, "", "is_norm_spectral_model"], [266, 2, 1, "", "parameters"], [266, 2, 1, "", "parameters_unique_names"], [266, 2, 1, "", "pivot_energy"], [266, 3, 1, "", "plot"], [266, 3, 1, "", "plot_error"], [266, 3, 1, "", "reassign"], [266, 3, 1, "", "reference_fluxes"], [266, 3, 1, "", "spectral_index"], [266, 3, 1, "", "spectral_index_error"], [266, 3, 1, "", "to_dict"], [266, 2, 1, "", "type"], [266, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SuperExpCutoffPowerLaw3FGLSpectralModel": [[267, 3, 1, "", "__call__"], [267, 2, 1, "", "amplitude"], [267, 3, 1, "", "copy"], [267, 2, 1, "", "covariance"], [267, 2, 1, "", "default_parameters"], [267, 2, 1, "", "ecut"], [267, 3, 1, "", "energy_flux"], [267, 3, 1, "", "energy_flux_error"], [267, 3, 1, "", "evaluate"], [267, 3, 1, "", "evaluate_error"], [267, 3, 1, "", "freeze"], [267, 3, 1, "", "from_dict"], [267, 3, 1, "", "from_parameters"], [267, 2, 1, "", "frozen"], [267, 2, 1, "", "index_1"], [267, 2, 1, "", "index_2"], [267, 3, 1, "", "integral"], [267, 3, 1, "", "integral_error"], [267, 3, 1, "", "inverse"], [267, 3, 1, "", "inverse_all"], [267, 2, 1, "", "is_norm_spectral_model"], [267, 2, 1, "", "parameters"], [267, 2, 1, "", "parameters_unique_names"], [267, 2, 1, "", "pivot_energy"], [267, 3, 1, "", "plot"], [267, 3, 1, "", "plot_error"], [267, 3, 1, "", "reassign"], [267, 2, 1, "", "reference"], [267, 3, 1, "", "reference_fluxes"], [267, 3, 1, "", "spectral_index"], [267, 3, 1, "", "spectral_index_error"], [267, 2, 1, "", "tag"], [267, 3, 1, "", "to_dict"], [267, 2, 1, "", "type"], [267, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLDR3SpectralModel": [[268, 3, 1, "", "__call__"], [268, 2, 1, "", "amplitude"], [268, 3, 1, "", "copy"], [268, 2, 1, "", "covariance"], [268, 2, 1, "", "default_parameters"], [268, 3, 1, "", "energy_flux"], [268, 3, 1, "", "energy_flux_error"], [268, 3, 1, "", "evaluate"], [268, 3, 1, "", "evaluate_error"], [268, 2, 1, "", "expfactor"], [268, 3, 1, "", "freeze"], [268, 3, 1, "", "from_dict"], [268, 3, 1, "", "from_parameters"], [268, 2, 1, "", "frozen"], [268, 2, 1, "", "index_1"], [268, 2, 1, "", "index_2"], [268, 3, 1, "", "integral"], [268, 3, 1, "", "integral_error"], [268, 3, 1, "", "inverse"], [268, 3, 1, "", "inverse_all"], [268, 2, 1, "", "is_norm_spectral_model"], [268, 2, 1, "", "parameters"], [268, 2, 1, "", "parameters_unique_names"], [268, 2, 1, "", "pivot_energy"], [268, 3, 1, "", "plot"], [268, 3, 1, "", "plot_error"], [268, 3, 1, "", "reassign"], [268, 2, 1, "", "reference"], [268, 3, 1, "", "reference_fluxes"], [268, 3, 1, "", "spectral_index"], [268, 3, 1, "", "spectral_index_error"], [268, 2, 1, "", "tag"], [268, 3, 1, "", "to_dict"], [268, 2, 1, "", "type"], [268, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.SuperExpCutoffPowerLaw4FGLSpectralModel": [[269, 3, 1, "", "__call__"], [269, 2, 1, "", "amplitude"], [269, 3, 1, "", "copy"], [269, 2, 1, "", "covariance"], [269, 2, 1, "", "default_parameters"], [269, 3, 1, "", "energy_flux"], [269, 3, 1, "", "energy_flux_error"], [269, 3, 1, "", "evaluate"], [269, 3, 1, "", "evaluate_error"], [269, 2, 1, "", "expfactor"], [269, 3, 1, "", "freeze"], [269, 3, 1, "", "from_dict"], [269, 3, 1, "", "from_parameters"], [269, 2, 1, "", "frozen"], [269, 2, 1, "", "index_1"], [269, 2, 1, "", "index_2"], [269, 3, 1, "", "integral"], [269, 3, 1, "", "integral_error"], [269, 3, 1, "", "inverse"], [269, 3, 1, "", "inverse_all"], [269, 2, 1, "", "is_norm_spectral_model"], [269, 2, 1, "", "parameters"], [269, 2, 1, "", "parameters_unique_names"], [269, 2, 1, "", "pivot_energy"], [269, 3, 1, "", "plot"], [269, 3, 1, "", "plot_error"], [269, 3, 1, "", "reassign"], [269, 2, 1, "", "reference"], [269, 3, 1, "", "reference_fluxes"], [269, 3, 1, "", "spectral_index"], [269, 3, 1, "", "spectral_index_error"], [269, 2, 1, "", "tag"], [269, 3, 1, "", "to_dict"], [269, 2, 1, "", "type"], [269, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.TemplateNDSpatialModel": [[271, 3, 1, "", "__call__"], [271, 3, 1, "", "copy"], [271, 2, 1, "", "covariance"], [271, 2, 1, "", "default_parameters"], [271, 3, 1, "", "evaluate"], [271, 3, 1, "", "evaluate_geom"], [271, 2, 1, "", "evaluation_bin_size_min"], [271, 2, 1, "", "evaluation_radius"], [271, 2, 1, "", "evaluation_region"], [271, 3, 1, "", "freeze"], [271, 3, 1, "", "from_dict"], [271, 3, 1, "", "from_parameters"], [271, 3, 1, "", "from_position"], [271, 2, 1, "", "frozen"], [271, 3, 1, "", "integrate_geom"], [271, 2, 1, "", "is_energy_dependent"], [271, 2, 1, "", "map"], [271, 2, 1, "", "parameters"], [271, 2, 1, "", "parameters_unique_names"], [271, 2, 1, "", "phi_0"], [271, 3, 1, "", "plot"], [271, 3, 1, "", "plot_error"], [271, 3, 1, "", "plot_grid"], [271, 3, 1, "", "plot_interactive"], [271, 3, 1, "", "plot_position_error"], [271, 2, 1, "", "position"], [271, 2, 1, "", "position_error"], [271, 2, 1, "", "position_lonlat"], [271, 3, 1, "", "reassign"], [271, 2, 1, "", "tag"], [271, 3, 1, "", "to_dict"], [271, 2, 1, "", "type"], [271, 3, 1, "", "unfreeze"], [271, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateNDSpectralModel": [[272, 3, 1, "", "__call__"], [272, 3, 1, "", "copy"], [272, 2, 1, "", "covariance"], [272, 2, 1, "", "default_parameters"], [272, 3, 1, "", "energy_flux"], [272, 3, 1, "", "energy_flux_error"], [272, 3, 1, "", "evaluate"], [272, 3, 1, "", "evaluate_error"], [272, 3, 1, "", "freeze"], [272, 3, 1, "", "from_dict"], [272, 3, 1, "", "from_parameters"], [272, 2, 1, "", "frozen"], [272, 3, 1, "", "integral"], [272, 3, 1, "", "integral_error"], [272, 3, 1, "", "inverse"], [272, 3, 1, "", "inverse_all"], [272, 2, 1, "", "is_norm_spectral_model"], [272, 2, 1, "", "map"], [272, 2, 1, "", "parameters"], [272, 2, 1, "", "parameters_unique_names"], [272, 2, 1, "", "pivot_energy"], [272, 3, 1, "", "plot"], [272, 3, 1, "", "plot_error"], [272, 3, 1, "", "reassign"], [272, 3, 1, "", "reference_fluxes"], [272, 3, 1, "", "spectral_index"], [272, 3, 1, "", "spectral_index_error"], [272, 2, 1, "", "tag"], [272, 3, 1, "", "to_dict"], [272, 2, 1, "", "type"], [272, 3, 1, "", "unfreeze"], [272, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateNPredModel": [[273, 3, 1, "", "copy"], [273, 2, 1, "", "covariance"], [273, 3, 1, "", "cutout"], [273, 2, 1, "", "default_parameters"], [273, 2, 1, "", "energy_center"], [273, 3, 1, "", "evaluate"], [273, 2, 1, "", "evaluation_radius"], [273, 3, 1, "", "freeze"], [273, 3, 1, "", "from_dict"], [273, 3, 1, "", "from_parameters"], [273, 2, 1, "", "frozen"], [273, 2, 1, "", "map"], [273, 2, 1, "", "name"], [273, 2, 1, "", "parameters"], [273, 2, 1, "", "parameters_unique_names"], [273, 2, 1, "", "position"], [273, 3, 1, "", "reassign"], [273, 3, 1, "", "slice_by_energy"], [273, 2, 1, "", "spectral_model"], [273, 3, 1, "", "stack"], [273, 2, 1, "", "tag"], [273, 3, 1, "", "to_dict"], [273, 2, 1, "", "type"], [273, 3, 1, "", "unfreeze"], [273, 3, 1, "", "write"]], "gammapy.modeling.models.TemplatePhaseCurveTemporalModel": [[274, 3, 1, "", "__call__"], [274, 3, 1, "", "copy"], [274, 2, 1, "", "covariance"], [274, 2, 1, "", "default_parameters"], [274, 3, 1, "", "evaluate"], [274, 2, 1, "", "f0"], [274, 2, 1, "", "f1"], [274, 2, 1, "", "f2"], [274, 3, 1, "", "freeze"], [274, 3, 1, "", "from_dict"], [274, 3, 1, "", "from_parameters"], [274, 2, 1, "", "frozen"], [274, 3, 1, "", "integral"], [274, 2, 1, "", "is_energy_dependent"], [274, 2, 1, "", "parameters"], [274, 2, 1, "", "parameters_unique_names"], [274, 2, 1, "", "phi_ref"], [274, 3, 1, "", "plot"], [274, 3, 1, "", "plot_phasogram"], [274, 3, 1, "", "read"], [274, 3, 1, "", "reassign"], [274, 2, 1, "", "reference_time"], [274, 3, 1, "", "sample_time"], [274, 2, 1, "", "t_ref"], [274, 2, 1, "", "tag"], [274, 3, 1, "", "time_sum"], [274, 3, 1, "", "to_dict"], [274, 2, 1, "", "type"], [274, 3, 1, "", "unfreeze"], [274, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateSpatialModel": [[275, 3, 1, "", "__call__"], [275, 3, 1, "", "copy"], [275, 2, 1, "", "covariance"], [275, 2, 1, "", "default_parameters"], [275, 3, 1, "", "evaluate"], [275, 3, 1, "", "evaluate_geom"], [275, 2, 1, "", "evaluation_bin_size_min"], [275, 2, 1, "", "evaluation_radius"], [275, 2, 1, "", "evaluation_region"], [275, 3, 1, "", "freeze"], [275, 3, 1, "", "from_dict"], [275, 3, 1, "", "from_parameters"], [275, 3, 1, "", "from_position"], [275, 2, 1, "", "frozen"], [275, 3, 1, "", "integrate_geom"], [275, 2, 1, "", "is_energy_dependent"], [275, 2, 1, "", "lat_0"], [275, 2, 1, "", "lon_0"], [275, 2, 1, "", "map"], [275, 2, 1, "", "map_center"], [275, 2, 1, "", "parameters"], [275, 2, 1, "", "parameters_unique_names"], [275, 2, 1, "", "phi_0"], [275, 3, 1, "", "plot"], [275, 3, 1, "", "plot_error"], [275, 3, 1, "", "plot_grid"], [275, 3, 1, "", "plot_interactive"], [275, 3, 1, "", "plot_position_error"], [275, 2, 1, "", "position"], [275, 2, 1, "", "position_error"], [275, 2, 1, "", "position_lonlat"], [275, 3, 1, "", "read"], [275, 3, 1, "", "reassign"], [275, 2, 1, "", "tag"], [275, 3, 1, "", "to_dict"], [275, 3, 1, "", "to_region"], [275, 2, 1, "", "type"], [275, 3, 1, "", "unfreeze"], [275, 3, 1, "", "write"]], "gammapy.modeling.models.TemplateSpectralModel": [[276, 3, 1, "", "__call__"], [276, 3, 1, "", "copy"], [276, 2, 1, "", "covariance"], [276, 2, 1, "", "default_parameters"], [276, 3, 1, "", "energy_flux"], [276, 3, 1, "", "energy_flux_error"], [276, 3, 1, "", "evaluate"], [276, 3, 1, "", "evaluate_error"], [276, 3, 1, "", "freeze"], [276, 3, 1, "", "from_dict"], [276, 3, 1, "", "from_parameters"], [276, 3, 1, "", "from_region_map"], [276, 2, 1, "", "frozen"], [276, 3, 1, "", "integral"], [276, 3, 1, "", "integral_error"], [276, 3, 1, "", "inverse"], [276, 3, 1, "", "inverse_all"], [276, 2, 1, "", "is_norm_spectral_model"], [276, 2, 1, "", "parameters"], [276, 2, 1, "", "parameters_unique_names"], [276, 2, 1, "", "pivot_energy"], [276, 3, 1, "", "plot"], [276, 3, 1, "", "plot_error"], [276, 3, 1, "", "read_xspec_model"], [276, 3, 1, "", "reassign"], [276, 3, 1, "", "reference_fluxes"], [276, 3, 1, "", "spectral_index"], [276, 3, 1, "", "spectral_index_error"], [276, 2, 1, "", "tag"], [276, 3, 1, "", "to_dict"], [276, 2, 1, "", "type"], [276, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.TemporalModel": [[277, 3, 1, "", "__call__"], [277, 3, 1, "", "copy"], [277, 2, 1, "", "covariance"], [277, 2, 1, "", "default_parameters"], [277, 3, 1, "", "freeze"], [277, 3, 1, "", "from_dict"], [277, 3, 1, "", "from_parameters"], [277, 2, 1, "", "frozen"], [277, 3, 1, "", "integral"], [277, 2, 1, "", "is_energy_dependent"], [277, 2, 1, "", "parameters"], [277, 2, 1, "", "parameters_unique_names"], [277, 3, 1, "", "plot"], [277, 3, 1, "", "reassign"], [277, 2, 1, "", "reference_time"], [277, 3, 1, "", "sample_time"], [277, 3, 1, "", "time_sum"], [277, 3, 1, "", "to_dict"], [277, 2, 1, "", "type"], [277, 3, 1, "", "unfreeze"]], "gammapy.modeling.models.UniformPrior": [[278, 3, 1, "", "__call__"], [278, 3, 1, "", "copy"], [278, 2, 1, "", "covariance"], [278, 2, 1, "", "default_parameters"], [278, 3, 1, "", "evaluate"], [278, 3, 1, "", "freeze"], [278, 3, 1, "", "from_dict"], [278, 3, 1, "", "from_parameters"], [278, 2, 1, "", "frozen"], [278, 2, 1, "", "max"], [278, 2, 1, "", "min"], [278, 2, 1, "", "parameters"], [278, 2, 1, "", "parameters_unique_names"], [278, 3, 1, "", "reassign"], [278, 2, 1, "", "tag"], [278, 3, 1, "", "to_dict"], [278, 2, 1, "", "type"], [278, 3, 1, "", "unfreeze"], [278, 2, 1, "", "weight"]], "gammapy.modeling.models.utils": [[285, 4, 1, "", "read_hermes_cube"]], "gammapy.stats": [[288, 1, 1, "", "CashCountsStatistic"], [289, 4, 1, "", "TimmerKonig_lightcurve_simulator"], [290, 1, 1, "", "WStatCountsStatistic"], [291, 4, 1, "", "cash"], [292, 4, 1, "", "cash_sum_cython"], [293, 4, 1, "", "compute_chisq"], [294, 4, 1, "", "compute_flux_doubling"], [295, 4, 1, "", "compute_fpp"], [296, 4, 1, "", "compute_fvar"], [297, 4, 1, "", "cstat"], [298, 4, 1, "", "discrete_correlation"], [299, 4, 1, "", "f_cash_root_cython"], [300, 4, 1, "", "get_wstat_gof_terms"], [301, 4, 1, "", "get_wstat_mu_bkg"], [302, 4, 1, "", "norm_bounds_cython"], [303, 4, 1, "", "structure_function"], [304, 4, 1, "", "wstat"]], "gammapy.stats.CashCountsStatistic": [[288, 3, 1, "", "compute_errn"], [288, 3, 1, "", "compute_errp"], [288, 3, 1, "", "compute_upper_limit"], [288, 2, 1, "", "error"], [288, 3, 1, "", "info_dict"], [288, 2, 1, "", "n_bkg"], [288, 2, 1, "", "n_sig"], [288, 3, 1, "", "n_sig_matching_significance"], [288, 2, 1, "", "p_value"], [288, 2, 1, "", "sqrt_ts"], [288, 2, 1, "", "stat_max"], [288, 2, 1, "", "stat_null"], [288, 3, 1, "", "sum"], [288, 2, 1, "", "ts"]], "gammapy.stats.WStatCountsStatistic": [[290, 3, 1, "", "compute_errn"], [290, 3, 1, "", "compute_errp"], [290, 3, 1, "", "compute_upper_limit"], [290, 2, 1, "", "error"], [290, 3, 1, "", "info_dict"], [290, 2, 1, "", "n_bkg"], [290, 2, 1, "", "n_sig"], [290, 3, 1, "", "n_sig_matching_significance"], [290, 2, 1, "", "p_value"], [290, 2, 1, "", "sqrt_ts"], [290, 2, 1, "", "stat_max"], [290, 2, 1, "", "stat_null"], [290, 3, 1, "", "sum"], [290, 2, 1, "", "ts"]], "gammapy.utils": [[13, 0, 0, "-", "cluster"], [13, 0, 0, "-", "coordinates"], [13, 0, 0, "-", "fits"], [13, 0, 0, "-", "integrate"], [13, 0, 0, "-", "interpolation"], [13, 0, 0, "-", "parallel"], [13, 0, 0, "-", "random"], [13, 0, 0, "-", "regions"], [13, 0, 0, "-", "scripts"], [13, 0, 0, "-", "table"], [13, 0, 0, "-", "testing"], [13, 0, 0, "-", "time"], [13, 0, 0, "-", "units"]], "gammapy.utils.cluster": [[305, 4, 1, "", "hierarchical_clustering"], [306, 4, 1, "", "standard_scaler"]], "gammapy.utils.coordinates": [[307, 5, 1, "", "D_SUN_TO_GALACTIC_CENTER"], [308, 4, 1, "", "cartesian"], [309, 4, 1, "", "fov_to_sky"], [310, 4, 1, "", "galactic"], [311, 4, 1, "", "motion_since_birth"], [312, 4, 1, "", "polar"], [313, 4, 1, "", "sky_to_fov"], [314, 4, 1, "", "velocity_glon_glat"]], "gammapy.utils.fits": [[315, 1, 1, "", "HDULocation"], [316, 1, 1, "", "LazyFitsData"], [317, 4, 1, "", "earth_location_from_dict"]], "gammapy.utils.fits.HDULocation": [[315, 3, 1, "", "get_hdu"], [315, 3, 1, "", "info"], [315, 3, 1, "", "load"], [315, 3, 1, "", "path"]], "gammapy.utils.integrate": [[318, 4, 1, "", "trapz_loglog"]], "gammapy.utils.interpolation": [[319, 1, 1, "", "ScaledRegularGridInterpolator"], [320, 4, 1, "", "interpolate_profile"], [321, 4, 1, "", "interpolation_scale"]], "gammapy.utils.interpolation.ScaledRegularGridInterpolator": [[319, 3, 1, "", "__call__"]], "gammapy.utils.parallel": [[322, 5, 1, "", "BACKEND_DEFAULT"], [323, 5, 1, "", "METHOD_DEFAULT"], [324, 5, 1, "", "METHOD_KWARGS_DEFAULT"], [325, 5, 1, "", "N_JOBS_DEFAULT"], [326, 5, 1, "", "POOL_KWARGS_DEFAULT"], [327, 1, 1, "", "multiprocessing_manager"], [328, 4, 1, "", "run_multiprocessing"]], "gammapy.utils.random": [[329, 1, 1, "", "InverseCDFSampler"], [330, 4, 1, "", "draw"], [331, 4, 1, "", "get_random_state"], [332, 4, 1, "", "normalize"], [333, 4, 1, "", "pdf"], [334, 4, 1, "", "sample_powerlaw"], [335, 4, 1, "", "sample_sphere"], [336, 4, 1, "", "sample_sphere_distance"], [337, 4, 1, "", "sample_times"]], "gammapy.utils.random.InverseCDFSampler": [[329, 3, 1, "", "sample"], [329, 3, 1, "", "sample_axis"]], "gammapy.utils.regions": [[338, 4, 1, "", "compound_region_to_regions"], [339, 4, 1, "", "make_concentric_annulus_sky_regions"], [340, 4, 1, "", "make_orthogonal_rectangle_sky_regions"], [341, 4, 1, "", "region_to_frame"], [342, 4, 1, "", "regions_to_compound_region"]], "gammapy.utils.scripts": [[343, 4, 1, "", "from_yaml"], [344, 4, 1, "", "get_images_paths"], [345, 4, 1, "", "make_path"], [346, 4, 1, "", "read_yaml"], [347, 4, 1, "", "recursive_merge_dicts"], [348, 4, 1, "", "to_yaml"], [349, 4, 1, "", "write_yaml"]], "gammapy.utils.table": [[350, 4, 1, "", "hstack_columns"], [351, 4, 1, "", "table_row_to_dict"], [352, 4, 1, "", "table_standardise_units_copy"], [353, 4, 1, "", "table_standardise_units_inplace"]], "gammapy.utils.testing": [[354, 1, 1, "", "Checker"], [355, 4, 1, "", "assert_quantity_allclose"], [356, 4, 1, "", "assert_skycoord_allclose"], [357, 4, 1, "", "assert_time_allclose"], [358, 4, 1, "", "mpl_plot_check"], [359, 4, 1, "", "requires_data"], [360, 4, 1, "", "requires_dependency"]], "gammapy.utils.testing.Checker": [[354, 3, 1, "", "run"]], "gammapy.utils.time": [[361, 4, 1, "", "absolute_time"], [362, 4, 1, "", "time_ref_from_dict"], [363, 4, 1, "", "time_ref_to_dict"], [364, 4, 1, "", "time_relative_to_ref"]], "gammapy.utils.units": [[365, 4, 1, "", "standardise_unit"], [366, 4, 1, "", "unit_from_fits_image_hdu"]], "gammapy.visualization": [[367, 1, 1, "", "MapPanelPlotter"], [368, 4, 1, "", "add_colorbar"], [369, 4, 1, "", "annotate_heatmap"], [370, 4, 1, "", "colormap_hess"], [371, 4, 1, "", "colormap_milagro"], [372, 4, 1, "", "plot_contour_line"], [373, 4, 1, "", "plot_distribution"], [374, 4, 1, "", "plot_heatmap"], [375, 4, 1, "", "plot_map_rgb"], [376, 4, 1, "", "plot_npred_signal"], [377, 4, 1, "", "plot_spectrum_datasets_off_regions"], [378, 4, 1, "", "plot_theta_squared_table"]], "gammapy.visualization.MapPanelPlotter": [[367, 3, 1, "", "plot"], [367, 3, 1, "", "plot_panel"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"], "6": ["std", "cmdoption", "program option"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:data", "6": "std:cmdoption"}, "terms": {"": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 51, 52, 53, 67, 82, 83, 84, 86, 87, 90, 91, 92, 95, 100, 101, 102, 103, 104, 105, 108, 109, 110, 124, 125, 126, 130, 133, 141, 142, 147, 148, 149, 153, 173, 179, 200, 206, 218, 222, 223, 228, 230, 231, 235, 236, 238, 239, 240, 242, 245, 247, 248, 252, 254, 255, 262, 263, 264, 267, 268, 269, 274, 277, 279, 280, 286, 296, 315, 365, 369, 370, 377, 380, 381, 383, 385, 390, 391, 392, 394, 396, 397, 398, 399, 400, 403, 406, 409, 410, 412, 413, 415, 416, 417, 418, 446, 447, 449, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 497, 498, 500, 503, 504, 510, 511, 512, 513, 516, 518, 523, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 582], "0": [11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 38, 39, 42, 47, 50, 51, 52, 53, 67, 71, 75, 83, 85, 87, 88, 89, 90, 91, 94, 96, 102, 103, 104, 105, 108, 109, 110, 111, 112, 113, 114, 116, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 132, 133, 141, 142, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 170, 173, 176, 177, 181, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 214, 216, 218, 219, 222, 223, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 278, 284, 286, 288, 289, 290, 291, 294, 295, 296, 297, 298, 305, 306, 325, 329, 336, 337, 357, 368, 370, 371, 375, 377, 380, 381, 383, 384, 387, 391, 392, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 408, 409, 413, 416, 417, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 499, 501, 502, 503, 504, 505, 506, 510, 512, 516, 520, 522, 525, 527, 528, 529, 530, 531, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 578, 579, 580, 581], "00": [67, 87, 88, 89, 91, 101, 197, 381, 395, 449, 450, 451, 452, 454, 455, 456, 457, 458, 459, 460, 462, 463, 464, 467, 468, 470, 471, 473, 474, 476, 477, 480, 481, 482, 483, 484, 485, 486, 488, 489, 491, 492, 493, 494, 495, 497, 499, 501, 502, 503, 504, 505, 533, 543, 563, 564, 574, 582], "000": [67, 87, 88, 91, 125, 395, 451, 453, 455, 456, 458, 459, 463, 464, 465, 467, 468, 471, 473, 474, 477, 480, 481, 482, 486, 488, 489, 494, 501, 502, 504, 533], "0000": 406, "00000": 142, "000000": 480, "000000000000002": 486, "00000000000001": 458, "00000000000003": 475, "00000000000004": 480, "0000000000016": 86, "0000000000018": 94, "000000000002": 467, "0000000000064": 467, "000000000007": 480, "00000000001": 480, "00000000e": [483, 484], "00000001": 86, "0000000e": 484, "00000143": [381, 582], "0000e": [101, 451, 452, 455, 456, 457, 458, 460, 463, 471, 473, 474, 483, 489, 491, 503, 563], "0001": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 371, 465], "00010298": 481, "00015": 482, "000150": 453, "0002": [453, 504], "00020": 453, "0002000": 453, "0003": 465, "00050": 453, "000500": 453, "0006": 453, "00074287037": [94, 468], "000742870370370241": 94, "0008": 480, "0009": 453, "000e": [451, 455, 458, 460, 463, 464, 471, 474, 480, 483, 489, 491, 503, 504, 563], "000true": 453, "001": [50, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 357, 467, 483, 541], "0016288e": 484, "001e": 67, "002018": 494, "0025508e": 484, "0028272e": 484, "0029": 405, "0029202684427718766": 502, "002e": [67, 456], "003": [475, 488, 494], "003026327991562108": 464, "0031052863692021915": 502, "0033": 580, "00336861061002e": 477, "0036925550381217": 458, "00375698": 239, "004": [67, 449, 485, 492], "00422666667": 478, "00449161": 244, "00490": 465, "00490483": 465, "0049409": 493, "005": 480, "00521472221220211": 464, "005909017160171437": 466, "0064830e": 484, "00688029": 239, "007": 480, "0076540e": 484, "008": [480, 579], "008166963876141447": 466, "008891944789387447": 466, "00894": 504, "009": [477, 480], "00931e": 450, "009433226692021113": 466, "00e": [83, 450, 456, 459, 467, 471, 474, 475, 477, 481, 484, 485, 494, 502], "01": [39, 52, 75, 83, 87, 88, 91, 94, 102, 104, 105, 109, 110, 112, 113, 124, 127, 133, 176, 177, 181, 191, 192, 197, 201, 204, 225, 231, 236, 238, 240, 255, 262, 381, 416, 449, 450, 451, 454, 455, 456, 457, 459, 460, 461, 463, 464, 467, 471, 474, 475, 476, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 492, 494, 495, 496, 502, 503, 504, 510, 515, 525, 527, 528, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 579, 582], "010": 488, "010e": 67, "011": 488, "01183": 142, "011872336272724": 502, "012": 488, "0122385e": 484, "01235137e": 484, "012733796525585": 490, "0132e": 474, "0139252e": 484, "014": [85, 102, 105, 109, 110, 173, 456, 463, 480, 485, 502, 503, 527], "014282": 551, "0143724": 239, "0143764": 493, "01449": 83, "0145": 487, "01450": [472, 503], "0149044e": 484, "015": 480, "01551196351647377": 239, "016": [449, 505], "0163": 465, "01648855015875024": 578, "01700709977114979": 478, "017442925431194484": 478, "018": 67, "018182745349064267": 464, "0183519e": 484, "01960784313726": 469, "019672": 482, "019899368286133": 464, "01e": [173, 416, 450, 480], "01t00": [87, 91, 94, 197, 381, 459, 467, 582], "01t01": 91, "01t02": 91, "02": [16, 67, 83, 94, 102, 105, 109, 110, 111, 116, 161, 168, 173, 191, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 416, 449, 450, 451, 453, 455, 456, 457, 460, 461, 463, 464, 465, 466, 467, 468, 470, 471, 472, 473, 474, 475, 480, 483, 484, 485, 486, 487, 488, 489, 492, 494, 499, 502, 503, 504, 505, 525, 527, 528, 535, 536, 537], "020": [449, 464, 480, 482, 492], "020420144596410953": 490, "021": [67, 480], "0225e": 480, "02288737": 239, "023": 480, "023472814714293713": 502, "024": 480, "02432": 480, "024715584699834": 502, "0249e": 471, "024e": 504, "025": [480, 494], "0251191207999763": 465, "025e": 142, "026": [53, 67, 480], "02653": [459, 465], "026891": 480, "026914": 480, "027": 67, "028854": 487, "029e": [451, 480], "02e": [83, 477], "02t23": 86, "03": [17, 19, 20, 21, 22, 24, 25, 26, 27, 67, 87, 89, 91, 203, 393, 408, 449, 450, 451, 453, 464, 465, 467, 474, 480, 484, 486, 488, 490, 491, 492, 496, 497, 503, 538], "03034567e": 482, "031e": 474, "032": 480, "0322": 67, "0322775e": 484, "033": [67, 480], "033176650892097": 96, "03383": 493, "034": 579, "0344": 67, "03447394e": 482, "03493": 482, "034e": 453, "035": [470, 482], "0354700e": 484, "0356": 450, "0356551": 450, "036": 67, "036e": 480, "037": 488, "03745318352059925": 572, "0375512e": 484, "0376213e": 484, "03893": 482, "039": [463, 464, 482], "039215686274545": 469, "03921700077803329": 464, "0395135e": 484, "03978226e": 489, "04": [30, 67, 94, 449, 454, 456, 458, 459, 461, 464, 467, 474, 475, 480, 484, 486, 489, 492, 494], "040": 455, "04033864761682": 474, "0404e": 474, "040e": 459, "041": 494, "0414": 459, "0415": 504, "041882": 480, "042": 480, "0423761": 450, "042e": 480, "043": 67, "04357249662280083": 455, "04454": 494, "0454683": 493, "046": 67, "0462798e": 484, "047": 67, "0473174": 244, "0474750e": 484, "048": [463, 494], "0482342e": 484, "04897634344908595": 96, "048e": 67, "049": [453, 463], "04939e": 450, "049676": 480, "04d": 467, "04e": 485, "04t15": 86, "04t22": 86, "05": [19, 20, 26, 29, 42, 67, 71, 87, 91, 122, 123, 125, 132, 204, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 339, 408, 449, 450, 451, 452, 453, 454, 455, 459, 462, 463, 464, 465, 468, 471, 473, 479, 480, 481, 483, 484, 485, 488, 491, 493, 495, 497, 502, 503, 530, 535], "050": 488, "05019": 142, "0503641": 450, "0505949e": 484, "05075": 484, "0508075688763": 480, "05088486522436142": 455, "050e": 459, "051": [19, 20, 26, 488], "051c": [17, 21, 22, 24, 25, 27], "052": 480, "0520119e": 484, "0521419985089": 466, "05227": 480, "053": 463, "053212009682775": 490, "054833602905273e": 464, "0548e": 464, "054e": 67, "055": 480, "055e": 453, "0560": 504, "056130": 480, "05628243": 504, "05637e": 450, "05673": 504, "057": [449, 480, 492], "05762513693893088": 464, "058": 67, "058201": 480, "05853": 459, "058823529411775": 469, "059": 67, "05901956e": 484, "059552": 534, "0598579": 450, "05deg": 204, "05dq9fcp": 477, "06": [147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 449, 454, 463, 464, 465, 470, 476, 480, 481, 483, 484, 485, 486, 492, 494, 497, 564], "061": 504, "062": [467, 488, 489, 494], "0625": 489, "0628": 504, "063": 67, "0631757e": 484, "06334488877417636": 490, "064108e": 480, "06430": 465, "0643032": 465, "06450": 142, "065071": 480, "065119": 504, "06549": 142, "066": 455, "066442": 480, "067": 459, "068245": 480, "0689": 483, "068e": 453, "069": 67, "07": [102, 173, 355, 395, 416, 449, 453, 454, 456, 463, 465, 473, 475, 476, 477, 480, 481, 484, 486, 488, 494, 505], "07022": 142, "070483": 480, "0711412": 450, "072": [67, 574], "073": 67, "0739282e": 484, "074": [480, 494], "07454639": 465, "07455": 465, "0746": 504, "0748": [480, 504], "075": 67, "07512322002655547": 464, "0756e": 450, "076": 504, "077": 450, "078": 453, "07843137254903": 469, "07871368968": 481, "07934317e": 482, "0793e": 471, "07943648658692837": 490, "07944657408": 480, "079464e": 504, "0799109224230051": 490, "07e": 475, "08": [86, 104, 124, 375, 416, 454, 457, 458, 460, 461, 463, 464, 471, 480, 481, 483, 485, 489, 494, 502, 503, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "0800792e": 484, "08075": 484, "08081469527619482": 458, "08088": 179, "080e": 459, "0811551760882139": 490, "08142": 479, "08191603310406206": 490, "08192": 465, "08192101": 465, "081e": 474, "082": 480, "082691868487906": 478, "08269984": 504, "082e": 125, "083": [67, 480], "08328557573258877": 490, "0833333358168602": 455, "0833333432674408": 455, "08342": 142, "08388624433428049": 490, "084": 67, "08447355125099419": 490, "0845515": 450, "085": 480, "08529426": 97, "0855013383552432": 490, "0859117235629056e": 477, "08675": 481, "086e": 480, "087": 504, "08795162606984375": 490, "087e": 480, "088742": 480, "08880368117243051": 490, "08894569035619496": 490, "089": 137, "0894640e": 484, "0897868126630783": 490, "089881": 480, "08e": [471, 488], "09": [33, 125, 173, 449, 451, 456, 459, 461, 463, 470, 480, 481, 484, 485, 502, 503, 504, 580], "0902437e": 484, "0907128e": 484, "091": [449, 574], "0910": [253, 254], "0914": [52, 53], "093477": 465, "09348": 465, "09375": 477, "09426693227142095": 490, "094834": 480, "095232": 480, "09562941": 504, "095707": 504, "096": 456, "0960": 504, "09607": 504, "09610314778983592": 490, "09623312838375568": 490, "09740295372903346": 490, "097e": 67, "098": [449, 465, 470, 574], "09805": 142, "098903": 480, "09907043184188653": 490, "09e": 485, "0b100": 325, "0d": [127, 469, 481, 539], "0e": [403, 456, 458, 459, 460, 464, 467, 471, 474, 477, 481, 482, 484, 486, 488, 489, 494, 502, 534, 535, 536, 537, 539, 540, 541, 542, 545, 546, 548, 551, 552, 554, 555, 556, 557, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "0f": [483, 494, 504], "0rc": 409, "0rc1": 409, "0true": 465, "0x105fd0cf8": 380, "0x105fe3b70": 380, "0x129602550": 380, "0x7effc0f271c0": 490, "0x7effc0f271f0": 490, "0x7effc0f58fa0": 489, "0x7effc1514820": 490, "0x7effc1a4a310": 481, "0x7effc1b862b0": 490, "0x7effc265fb50": 481, "0x7effc27bc1c0": 469, "0x7effc27bc220": 469, "0x7effc28b5490": 493, "0x7effc761a610": 491, "0x7effc7757460": 493, "0x7effc777c550": 493, "0x7effc777cfa0": 493, "0x7effc7871580": 481, "0x7effd36f5820": 478, "0x7effd4279f40": 563, "0x7effd79bf820": 481, "1": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 59, 63, 66, 67, 71, 72, 74, 75, 78, 83, 86, 87, 88, 90, 91, 95, 96, 101, 102, 105, 109, 110, 111, 115, 116, 117, 118, 122, 125, 126, 127, 128, 130, 131, 133, 137, 141, 142, 147, 148, 149, 150, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 168, 173, 176, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 214, 216, 218, 219, 221, 222, 223, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 248, 250, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 274, 275, 276, 277, 278, 279, 280, 286, 288, 289, 290, 294, 295, 305, 306, 318, 319, 325, 326, 327, 336, 337, 339, 340, 365, 367, 370, 371, 375, 377, 380, 381, 383, 384, 387, 388, 390, 391, 392, 394, 395, 397, 400, 402, 403, 404, 405, 406, 407, 409, 410, 413, 416, 420, 421, 423, 424, 428, 430, 431, 432, 435, 436, 437, 438, 439, 440, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 499, 502, 503, 504, 506, 510, 511, 512, 515, 516, 518, 520, 521, 522, 523, 524, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576, 577, 579, 580, 581], "10": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 54, 66, 67, 84, 86, 87, 88, 89, 90, 91, 102, 103, 104, 105, 108, 109, 110, 111, 116, 118, 122, 123, 124, 125, 126, 127, 131, 132, 133, 135, 141, 142, 144, 147, 148, 150, 152, 154, 155, 160, 161, 162, 163, 164, 166, 173, 179, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 211, 214, 216, 225, 228, 241, 242, 244, 245, 267, 280, 289, 295, 325, 327, 337, 368, 373, 375, 377, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 396, 397, 402, 403, 404, 408, 410, 416, 417, 421, 423, 434, 436, 439, 443, 445, 449, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 502, 503, 504, 506, 512, 516, 522, 525, 527, 528, 529, 530, 540, 541, 544, 546, 549, 550, 552, 553, 554, 555, 557, 558, 560, 561, 562, 563, 566, 567, 568, 578, 579, 582], "100": [19, 20, 26, 46, 47, 74, 94, 125, 133, 152, 153, 163, 204, 206, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 282, 337, 380, 381, 383, 388, 399, 419, 450, 452, 455, 458, 463, 464, 465, 467, 468, 469, 471, 475, 478, 479, 480, 481, 482, 484, 485, 486, 489, 491, 493, 494, 495, 504, 508, 510, 511, 512, 516, 527, 530, 531, 534, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 579], "1000": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 194, 199, 380, 383, 453, 480, 481, 484, 491, 494, 504, 530], "10000": [17, 18, 21, 22, 23, 24, 25, 27, 103, 108, 152, 163, 166, 176, 480, 494], "100000": [74, 480, 502], "1000000": [51, 52, 54, 480, 563], "10000000": 563, "100000000000": 482, "1000e": 491, "1001": [438, 467, 468], "1002": 438, "10041": 141, "10045": [65, 269, 562], "10049": 450, "1006": 438, "101": [424, 463, 475, 480], "1012": 479, "1013": 439, "1014": 439, "101430": 475, "10172": 489, "102": [173, 456, 459, 579, 580], "1021": 439, "1025": 439, "1026": 439, "10262943822890519": [96, 490], "1027": 439, "102877228833871": 490, "1029": 439, "10295505": 504, "102e": 480, "103": [141, 419, 442], "103000133": 495, "1031": 439, "1032": 439, "1032531953505502": 502, "1034": 504, "1035": 439, "1035002116788955": 456, "1036": 459, "1038": 439, "104": [463, 465], "1040": 439, "10409": 465, "10409446": 465, "10416667": 477, "1043": 439, "104317": [102, 481, 488], "1044": 459, "1045": 439, "1046": 398, "10470702368766069": 490, "10477": 504, "105": [82, 496], "1051": 439, "1052": 480, "1053": 439, "1054": 439, "1054498": 137, "1057": 439, "10592": 582, "105953": 504, "105e": 459, "106": [449, 574], "1061971e": 484, "106217": 83, "1062535e": 484, "1064": 480, "1065": 439, "1067": 439, "1069": 439, "107": [449, 450, 476, 486, 574], "1070": [439, 504], "1072542e": 484, "1073": 439, "10752883769757363": 490, "1076": 439, "1078": 439, "107e": [459, 480], "108": [436, 471], "108034597491956e": 489, "108043": 463, "1082": 439, "1083": 439, "1084": 439, "1085": 439, "1085000": 463, "1086": [295, 474], "1087": 439, "1088": 439, "1089": 439, "109": [419, 449, 451, 486, 574], "1090": 439, "1092": [439, 459], "1093": [439, 459], "1098": 439, "1099306e": 484, "109e": 465, "10d": 469, "10e": [173, 480, 484], "10k": 194, "10t17": [456, 460, 461, 463, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "10th": [407, 418], "11": [67, 87, 91, 94, 125, 126, 130, 131, 214, 339, 384, 387, 389, 397, 404, 408, 419, 420, 441, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 485, 487, 488, 491, 492, 494, 502, 503, 504, 527, 529, 580], "110": [449, 480, 494, 574], "1100": [439, 455], "110000": [481, 485], "1102": 439, "1102e": 452, "1103": 439, "110380": [83, 396, 460, 463, 465, 493], "1104": 439, "1105": 439, "1107": 439, "1108": 439, "111": [368, 387, 439, 463, 480], "1110": 439, "1111": [135, 144, 480, 504], "111140": [396, 460, 463, 465], "111159": [396, 460, 463, 465, 493], "11132": 64, "1115": 439, "111507416": 475, "111630": [89, 475, 493], "111797": 480, "11184": [65, 268, 561], "112": [450, 455], "11208": 65, "11220184543": 482, "1127": 439, "1127e": 474, "11291820875721864": 490, "113": 504, "1131": [388, 461], "1133": 439, "1134": 439, "1136": 439, "1139e": 491, "114416978060042": 474, "115": 67, "1150": 439, "11517": 504, "1153e": 471, "11553325504064559": [96, 490], "11587179071752986": 96, "116": [419, 451, 452], "1160": 480, "11610": 504, "1162": 439, "1162290917256776e": 472, "1166": 439, "1167": [387, 394], "1169": 439, "116e": 67, "117": [419, 544], "1170": 439, "1172": 394, "1173775": 480, "1176": 439, "117877e": 480, "1179": 439, "118": [141, 463], "1183": 439, "118355": 480, "11839": 142, "119": [451, 459, 463], "1190": 439, "119432": 450, "1195": 439, "119e": 455, "11af4c": 419, "11e": 480, "12": [17, 38, 42, 67, 86, 87, 91, 102, 105, 112, 113, 125, 142, 163, 166, 192, 193, 194, 196, 202, 205, 206, 218, 222, 228, 230, 235, 242, 252, 254, 264, 267, 268, 269, 280, 384, 386, 387, 388, 389, 391, 392, 397, 400, 403, 419, 423, 424, 425, 437, 442, 449, 450, 451, 453, 455, 456, 457, 458, 459, 460, 461, 462, 463, 465, 466, 467, 471, 472, 473, 474, 477, 478, 480, 481, 482, 483, 486, 488, 489, 491, 494, 502, 504, 516, 527, 530, 531, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 548, 551, 552, 555, 556, 557, 559, 560, 561, 562, 565, 566, 567, 568, 569, 570, 571, 572, 573], "120": [53, 395, 457, 494, 538], "120000": 460, "120154": 480, "1204": 439, "1207": 439, "120e": [67, 504], "121": [67, 449, 465, 488, 574], "1210": 439, "1211": [439, 480], "121241": 463, "12148": 459, "1215": 439, "1216": 452, "12186": 504, "1219": 480, "122": [67, 141, 419, 453, 488], "1220": 439, "1226": 439, "1227": 439, "12276676166802643": 490, "122e": 464, "123": [87, 91, 392, 459], "1231": 440, "1234": 88, "123456789": [197, 381, 582], "1235": 439, "1237": 388, "1238": 439, "123890826": 86, "123892513": 86, "1239": 385, "123944": 83, "123e": 459, "124": [141, 392, 459, 480, 488], "1240": 439, "12423250e": 484, "1243": 504, "1244969200533408": 306, "1246": 439, "12493874": 484, "124e": 67, "125": [67, 125, 141, 455, 465, 486, 494, 504, 579], "12518": 464, "12525306": 478, "12546": 65, "1258925411": 482, "126": [67, 453, 480, 483], "12611": 142, "1264500e": 484, "126585": 450, "1266": 439, "1268": 439, "12688": 83, "1269263e": 484, "12697": 464, "127": 459, "12704": [141, 142], "1271v": 296, "12751": 450, "1277": 386, "1278": 387, "12794487": 489, "128": [419, 475, 506], "12809": [102, 481, 488], "1281": 439, "12816": 504, "12856": 494, "1287": 439, "1289": 439, "128e": 453, "129": [445, 503], "1290": 439, "1291": 439, "1294": 439, "1299": 480, "12nan5": 453, "12r_": 53, "12th": [405, 418], "13": [67, 101, 125, 142, 203, 305, 384, 385, 389, 394, 399, 408, 424, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 502, 503, 504, 512, 580], "130": 527, "1300": 439, "1301v": 38, "13030": 504, "1305": 439, "13061": 489, "131": [449, 453, 574], "1310": 504, "1312": 439, "13133": 504, "13152": 465, "1316": 439, "1317": 440, "1318": 439, "1319": [94, 439], "13197": 463, "132": 459, "13226": 504, "1323e": 464, "132472": 465, "132e": 455, "133": 142, "1331": 440, "1334": 440, "1337": 440, "1339": 440, "133e": 453, "134": [142, 456, 459, 465], "1341": 440, "1342a": 153, "1343": 440, "1344": 480, "1345": 440, "1346": 440, "1347": 440, "13499879586502125": 466, "135": [38, 101, 142, 453, 469, 480, 483], "13500212963": 480, "1351e": 480, "1354": 440, "135498046875": 455, "135509": 460, "1357": 440, "1359316": 504, "135e": 125, "136": 480, "1360": 440, "1361": 480, "1362": 440, "1367": 440, "1369": [388, 440], "137": [142, 459, 466], "1371e": 491, "1372": 440, "137254901960785": 469, "1373": 440, "1374": 440, "137521287529426e": 502, "1376": 440, "1376407570489014e": 472, "1377": 440, "1378": 440, "1379190199428797": 306, "137990": 480, "138": [419, 453, 467, 504], "1381": 440, "1386": 440, "1387": 440, "138e": 465, "139": [455, 459, 494], "13911": 504, "1393881668086242e": 477, "1394": 550, "13944023e": 482, "1395": 440, "1396": [380, 456], "13960": 504, "1397": 440, "1397412321592923": 490, "13e": 481, "13nan6": 453, "13th": 418, "14": [28, 65, 67, 86, 269, 381, 384, 389, 392, 397, 399, 400, 438, 449, 450, 453, 455, 456, 459, 463, 470, 475, 477, 480, 481, 482, 483, 487, 488, 489, 502, 503, 504, 505, 562, 579], "140": 495, "1401": 440, "1406": 440, "14079": 141, "1408": [440, 504], "141": [304, 465, 480], "1411180": 463, "1412": 440, "14121": 465, "1412536400000000": 504, "14149953611195087": [96, 490], "14150": 465, "1419": [388, 441], "141945": 450, "142": [67, 419, 453, 480, 504], "14201": 141, "1421": 440, "14210": 453, "1426": 440, "142e": 480, "1432": 440, "1433": 440, "1435": 440, "1438": 176, "1438465e": 484, "1439110308062257": 490, "144": [453, 488, 504], "14419991": 97, "1442739329466746e": 489, "1443": 440, "1444": 440, "1445": 394, "14457": 504, "1446": 440, "1447": 440, "145": 480, "1451": 395, "14531053887243": 465, "1456": 440, "1456479e": 484, "146": 504, "14610": 582, "146472": 480, "1467": [135, 144], "147": [438, 480, 486], "1470": [440, 504], "1474": 440, "1475": 440, "1476": 440, "14773": 494, "147e": 480, "148": 459, "1482": 480, "1485314": 97, "1486415e": 484, "1489": [440, 465], "149": [449, 455, 485, 488, 543], "1492": 440, "1494": 465, "149445429667434": 466, "1495": 440, "1499472780781963": 306, "149e": 480, "14e": [460, 479], "14msts37sst": [467, 468, 493], "14nan3": 453, "14nan5": 453, "14th": [404, 407, 418], "14yr_catalog": 65, "15": [39, 42, 67, 87, 88, 91, 150, 151, 152, 153, 154, 155, 160, 161, 162, 164, 203, 370, 371, 375, 389, 397, 419, 423, 428, 433, 436, 437, 438, 440, 449, 450, 455, 459, 461, 463, 464, 465, 467, 468, 469, 471, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 488, 489, 492, 494, 504, 527, 535], "150": [131, 141, 142, 419, 453, 455, 467, 468, 486, 504], "1505": 440, "15076259": 97, "151": [419, 488], "1510": 137, "1510240e": 484, "15140": 459, "1515": 440, "15154854": 97, "1517": 440, "152": [459, 465], "1521": 465, "1523": 467, "15246": 467, "152477": 494, "1527": 440, "153": 480, "1530": 481, "15319": 467, "153600": 481, "154": [419, 450, 480], "1543": [440, 474], "154e": 465, "155": 419, "155117": 502, "15518": 504, "1552": 461, "1553": [480, 504], "1554": 440, "1554106e": 484, "1556": [440, 480, 504], "1556008e": 484, "1558": 440, "156": [419, 455, 456, 459, 465, 482, 488], "1562": 440, "15621": 504, "1564": 440, "156525": 480, "1567629e": 484, "1568": 440, "15686274509804": 469, "157": [419, 504], "1573": 440, "1576": 440, "158": [142, 450, 456, 463], "1582": 440, "15848931924": 482, "1586": 94, "15899": 459, "1594": 440, "1597317": 97, "15990": 142, "159t": 52, "15e": 461, "15h14m00": 480, "15nan8": 453, "16": [16, 24, 53, 67, 94, 109, 110, 192, 384, 388, 397, 400, 401, 424, 439, 444, 446, 447, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 502, 503, 504, 529, 571, 579, 580], "160": [31, 125, 419, 428, 469, 488], "1600": 468, "1600e": 451, "1605": 440, "16056": 459, "1606": 440, "1607": 479, "160e": 67, "161": [141, 388, 455, 465, 480], "1610e": [451, 480], "161250": 471, "1613279491744304": 490, "1616": 440, "1618850e": 484, "1619e": 101, "162": 67, "16227766": 486, "1622776601683795": [485, 486, 502], "16240": 503, "1626e": 460, "16287": 504, "1629219e": 484, "163": [469, 474, 579], "1630": [440, 504], "16303": 465, "16303044": 465, "1634": 440, "163843": 548, "164": 480, "1642": 450, "165": 488, "1650": 504, "16506": 450, "16511": 465, "16511148": 465, "165442": 502, "1658": 440, "165e": 459, "166": [419, 465, 480], "1660": 440, "166015625": 452, "1661916367760008e": 477, "1665478": 97, "166871893629602e": 477, "167": [419, 465, 471], "167219": 480, "1675": 440, "168": [480, 481, 504], "1681": 440, "1685": 440, "1686": 480, "1687": 86, "168702": 450, "169": 465, "1691": 450, "1695": 440, "1696": 440, "1697": 440, "1698": 455, "169871": 471, "16th": 418, "17": [20, 21, 40, 67, 86, 104, 124, 391, 394, 397, 428, 445, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 477, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 580], "170": 452, "170150": 471, "17016482e": 483, "1702": 440, "17020": 459, "1710": 441, "1711": 440, "1713": 452, "1715": 394, "1717": 504, "171749": 504, "1719502": 97, "1719610": 97, "1719670": 97, "171b": 279, "172": 469, "17229679": 97, "172370": 567, "173": 480, "1731": [440, 488], "1732": 480, "17320": 480, "1736": 459, "173735": 571, "1737799900000000": 504, "174": 455, "1742": 67, "17445": 504, "1746": [440, 504], "1748": [440, 488], "1750": 440, "1751": 440, "17511": 142, "1753": 504, "1755": 440, "1756": 456, "1759": 440, "175e": 480, "176": [142, 419, 449, 475, 480, 543], "1760": 440, "1761": 440, "1762": 506, "1763": [441, 480], "1764": [440, 465], "176470588235294": 469, "1766": 441, "1768896e": 484, "177": [419, 494, 495], "17776": 450, "1778279410": 482, "177e": 480, "178": 439, "178442": 67, "1785": [440, 450], "1791": 440, "179475": 244, "1799": 440, "17a": [60, 480], "17e": 488, "17g": 50, "17th": 434, "18": [11, 87, 91, 141, 203, 384, 399, 405, 425, 431, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "180": [394, 412, 414, 419, 480, 486], "1800": [440, 468, 486, 493], "180000": [467, 468, 493], "1804": 480, "180458": 463, "18046952655570045": 306, "1805": 394, "1807": 441, "1808": [440, 480, 504], "181": [449, 459, 543], "1811": 458, "1812": 440, "1813": 480, "1818": 440, "182": [449, 454, 474, 476, 477], "1821": 440, "1822": 440, "1825": 480, "18257": 459, "183": 455, "1830e": 455, "183139597": 86, "1834": 452, "1835": 94, "1836": 441, "1836544903987521": 490, "1837": 441, "18385658": 465, "18386": 465, "18392464": 518, "184": [86, 94, 433, 437, 449, 459, 463, 467, 473, 477, 487, 488, 543], "18400002": 473, "1841": 389, "1845": 441, "1846": 441, "18465": 504, "1849": 441, "184989894219835": 478, "185": 487, "1854": [441, 480], "1855": 441, "1857": 441, "1859": 441, "186": [432, 465, 480], "1861": 441, "1862": 441, "186484131475074": 337, "1866": 485, "186643": 504, "187": [425, 432, 465], "1871": 441, "1877": 390, "188": [432, 450, 480], "1883": 441, "1884": 441, "18842984749525210": 465, "1888": 441, "188e": 453, "189": [455, 484], "1890": 441, "1891": 441, "18921591": 484, "1893": 441, "1893e": [451, 480], "1894": 441, "1895": 441, "1896e": 451, "1898": 441, "18988": 504, "1899070e": 484, "18a": 62, "18h43m48": 67, "19": [51, 53, 54, 67, 203, 384, 396, 398, 400, 419, 427, 428, 430, 442, 449, 456, 459, 466, 469, 470, 474, 475, 476, 477, 478, 480, 481, 486, 488], "190": 480, "1902": [65, 269, 562], "1903": 441, "1904": 441, "1905": 464, "1908": 441, "1909": 441, "190e": 455, "191": [141, 432, 474], "1910": 179, "1912": 441, "1917": 504, "1918": 441, "1919": 441, "192": 142, "1920": 504, "192087": 502, "1921": 441, "19214093": 97, "1922": 441, "1926": 441, "1926520e": 484, "1927": 441, "1928": 480, "1929": 441, "193": [449, 459, 497], "1930": 441, "1933": 441, "1934": 441, "19354": 465, "1936925": 97, "1937": [441, 480], "193897": 552, "193e": 456, "194": [432, 459], "1943186": 97, "1947565": 97, "1949": 441, "195": [142, 239, 455], "1950rspsa": 52, "1951": 420, "1953830": 97, "1955810e": 484, "1958e": 483, "196": [67, 449, 450, 488, 574], "1960": 474, "1960784313725492": 469, "1961": [135, 144], "1962": 420, "196255435633": 474, "1963": 480, "19644": 494, "1965tralm": 21, "1966": 420, "1969": 420, "196991563774588": 280, "197": [67, 465, 494], "1971": 391, "19736017641361556": 466, "1975": 420, "1976572e": 484, "1978": 480, "1979": [291, 297, 420, 577], "1979892": 465, "198": [449, 543], "1980": 480, "1982": 37, "1983": 577, "1986": 392, "1986027": 504, "1987": 465, "19879005": 176, "1988": [136, 298, 420], "1988apj": [136, 298], "1989": 420, "199": [465, 488], "1990": [37, 420], "1990apj": [36, 37], "1991": 420, "1991mnra": 22, "19932878": 484, "1994": [420, 577], "1994a": [52, 53], "1995": [419, 420], "1995a": 289, "1995apj": 17, "1996": [27, 459, 478, 577], "1996mnra": 27, "1997": 502, "1997apj": 25, "1998": [87, 91, 420, 577], "1998apj": 28, "1999": [53, 197, 381, 582], "19991": 502, "199999809265137": 480, "19999999999999998": 458, "1999apj": 53, "19e": 485, "19th": 418, "1d": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 109, 110, 127, 151, 152, 161, 175, 192, 194, 332, 373, 386, 390, 391, 393, 394, 395, 396, 399, 400, 401, 412, 422, 424, 425, 426, 427, 431, 433, 436, 440, 442, 443, 446, 449, 450, 452, 453, 454, 455, 457, 459, 463, 470, 474, 477, 481, 483, 485, 487, 489, 490, 491, 493, 494, 502, 514, 516, 518, 531, 577], "1dc": [82, 83, 89, 102, 105, 109, 110, 115, 117, 118, 122, 141, 142, 148, 152, 153, 154, 163, 368, 373, 375, 388, 390, 396, 400, 421, 450, 458, 460, 463, 465, 471, 474, 475, 481, 482, 484, 488, 516], "1deg": 204, "1e": [19, 20, 26, 86, 100, 130, 131, 133, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 245, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 291, 297, 339, 355, 357, 380, 391, 451, 453, 455, 457, 459, 461, 463, 465, 467, 468, 471, 472, 473, 474, 475, 480, 483, 489, 491, 494, 495, 512, 516, 520, 544, 545, 546, 548, 551, 552, 556, 557, 559, 560, 561, 562], "1e0": 510, "1e10": [51, 153], "1e12": [510, 520], "1e2": [453, 510, 512], "1e3": [494, 520], "1e30": 554, "1e4": [483, 494, 495], "1e40": 511, "1e5": [457, 494, 512, 530, 531], "1e51": 52, "1e6": [45, 494, 508, 563], "1e7": [127, 563], "1f": [456, 477], "1fhl": [425, 438], "1fhl_name": 71, "1h": 163, "1i93": 477, "1k": [102, 109], "1kpc": 512, "1lhaaso": [57, 70, 446, 480], "1lhaaso_catalog": 57, "1nw5kvpw": 451, "1rc1": 409, "1tev": [52, 53, 131, 468], "2": [11, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 46, 50, 51, 52, 53, 54, 59, 63, 67, 68, 71, 72, 74, 75, 77, 78, 80, 83, 84, 85, 86, 87, 89, 90, 91, 95, 96, 101, 102, 104, 105, 109, 110, 114, 118, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 140, 142, 145, 146, 150, 151, 152, 153, 155, 161, 163, 166, 173, 176, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 203, 204, 206, 211, 214, 215, 217, 218, 222, 226, 228, 230, 235, 237, 238, 242, 245, 252, 253, 254, 260, 261, 263, 264, 267, 268, 269, 274, 279, 280, 286, 288, 289, 290, 291, 296, 297, 303, 305, 325, 327, 365, 368, 373, 375, 377, 380, 381, 384, 385, 389, 391, 392, 394, 395, 396, 397, 400, 403, 404, 405, 406, 407, 409, 416, 417, 419, 420, 421, 422, 423, 424, 431, 436, 437, 438, 439, 440, 441, 447, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 502, 503, 504, 512, 515, 516, 518, 523, 524, 525, 527, 528, 530, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 581], "20": [16, 38, 83, 87, 89, 91, 102, 105, 109, 110, 154, 155, 160, 162, 164, 173, 193, 194, 196, 202, 205, 206, 211, 289, 305, 381, 384, 385, 386, 388, 393, 395, 398, 400, 405, 442, 449, 450, 451, 455, 456, 457, 458, 459, 460, 461, 462, 463, 465, 466, 467, 472, 473, 474, 475, 477, 478, 479, 480, 483, 485, 486, 488, 489, 491, 493, 496, 502, 503, 504, 506, 525, 527, 528, 529, 535, 536, 537, 540, 541, 550, 553, 558, 563, 564, 579], "200": [52, 87, 91, 133, 204, 404, 432, 455, 456, 459, 465, 469, 471, 480, 486, 489, 504, 579], "2000": [88, 102, 105, 109, 110, 127, 231, 236, 238, 240, 255, 262, 420, 467, 468, 469, 474, 485, 494, 504, 577], "2000000": 463, "20000000000000004": 458, "20009124": 484, "2000apj": 280, "2000e": 489, "2001": [94, 420, 459, 577], "20016447648031e": 477, "2002": [87, 91, 295, 478], "2003": [296, 478], "2003mnra": 296, "2004": [86, 94, 478, 496], "2004a": [39, 40], "2004aph": [83, 88], "2004mnra": 24, "2005": [65, 577], "200503": 450, "2005a": 480, "2006": [31, 33, 395, 459, 466, 473, 477], "200638": 504, "2006a": 280, "2006apj": [30, 31, 32, 33], "2006ara": 50, "2006mnra": [35, 118], "2007": [398, 577], "20072608": 484, "2008": [38, 86, 226, 276, 451, 494, 506, 544], "2008aj": 38, "2009": [133, 299, 421, 459, 577], "20097159": 484, "2009851": 484, "20099855": 484, "201": [52, 449, 463, 470, 486], "2010": [127, 153, 226, 244, 303, 381, 447, 544, 577, 582], "2010a": [244, 280], "2010mnra": 153, "2011": [226, 451, 506, 544], "2011jcap": [17, 19, 20, 21, 22, 24, 25, 26, 27], "2012": [91, 421, 577], "2013": [101, 137, 400, 406, 410, 419, 478], "20136": [82, 306, 496], "20137": [306, 496], "2013aph": 279, "2013apj": 60, "2014": [135, 144, 418, 506], "2015": [52, 86, 394, 397, 418, 494], "20151": 306, "2015apj": 61, "2015jheap": 280, "2016": [26, 394, 397, 418, 421, 478, 485, 493], "2016apj": 58, "2017": [226, 385, 387, 397, 400, 416, 418, 421, 465, 493, 544], "2017apj": [59, 62], "2017icrc": 493, "2018": [52, 385, 386, 387, 388, 389, 390, 391, 395, 397, 399, 400, 418, 445, 493, 496, 577], "2019": [387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 418, 440, 441, 466, 577], "202": 465, "2020": [203, 389, 400, 401, 402, 403, 404, 418, 466, 467, 474, 486, 566, 567, 568], "2021": [89, 226, 402, 404, 418, 445, 489, 493, 544], "2021345e": 484, "2022": [405, 406, 418, 421, 495], "2023": [392, 407, 408, 418, 421], "2023arxiv230517030c": 57, "2024": [418, 493], "2024e": 503, "2025": [104, 124, 417, 456, 460, 461, 463, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "2026": [392, 421], "2028": 421, "2030": [392, 421], "2031": 421, "20326": [305, 452], "20327": [305, 452], "2033": 421, "20339": 305, "2034": 421, "20343": 305, "20344": 305, "20345": 305, "20346": 305, "20349": 452, "2035": [123, 125, 421], "20350": 452, "2036": [123, 125], "2037": 421, "20372": 493, "2038": 421, "2039": 421, "20396": 452, "20397": 452, "204": 141, "2040469e": 484, "2041222e": 484, "20421": 452, "20422": 452, "2045": 392, "2046": 421, "2049": [421, 480, 504], "205": [432, 465, 486], "2050": 421, "20508075688775": 480, "2051": 421, "20517": 452, "20518": 452, "20519": 452, "205192": 480, "20521": 452, "2053315944536949e": 493, "205357": 480, "2054": 421, "20559": 504, "2058705e": 484, "206": [449, 474, 480, 564], "2061": 480, "2062580e": 484, "2064": 421, "2064335": 97, "2065": 421, "2066": 421, "2068682e": 484, "2069": 421, "207": [449, 461, 465, 469, 488, 564], "2071": [392, 421], "2075": 408, "207520865": 473, "207521165": 477, "207521465": 473, "207521627": 477, "2076": 421, "2077": 421, "2079930e": 484, "207e": 459, "208": [60, 461], "2085": 421, "2089": [394, 423], "20898": 452, "20899": 452, "209": 465, "20900": 452, "2093": 421, "2095": 465, "2097": 421, "2097e": 455, "2098": 421, "20deg": [467, 468], "20e": 484, "20th": 406, "21": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 101, 127, 148, 383, 384, 428, 434, 443, 449, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 497, 502, 503, 504, 531, 579], "210": [432, 480], "2103": 480, "2104": 422, "2104353e": 484, "2106": 422, "2108": 422, "211": [480, 481], "2111": 422, "2112": [422, 503], "21134890398": 482, "2114": 422, "2115": 422, "211770556360534": 475, "2118": 422, "2119": 422, "211e": 480, "212": [67, 432, 447, 455, 471, 480], "2121": 422, "2121164e": 484, "2123": [422, 474], "21236e": 450, "2124": 422, "2126": [422, 450, 458, 460, 463, 465, 471, 474, 493], "2128": 422, "2129": [394, 423], "213": 457, "2130": 422, "2131": [422, 480], "2132": 422, "21325": 494, "2133": 422, "2136": [393, 424], "2139": 422, "214": [453, 459], "2140": 422, "2141": 422, "2142": 422, "2145": 422, "2146": 422, "21464892": 504, "214e": 455, "215": [67, 432, 446, 480], "21500000000003": 538, "2151": 422, "2152": 422, "21525804550772332": 466, "2153": [422, 480], "2154": [422, 480], "2155": [426, 451, 473, 474, 477, 478, 480, 490, 504, 544], "215686274509824": 469, "2157": 422, "2159e": 101, "215e": 480, "216": [239, 455, 486, 488, 573], "2160": 422, "2162670e": 484, "2163": 422, "2164425e": 484, "2166": 422, "2169": 422, "217": [455, 480], "2171": 422, "21731921e": 486, "21733761e": 486, "21735587e": 486, "218": 61, "219": [449, 564], "2190": 398, "2192": 423, "2197": 465, "21t19": 94, "21t20": 94, "22": [67, 83, 85, 88, 102, 104, 105, 109, 110, 124, 133, 168, 173, 176, 191, 192, 201, 204, 384, 418, 431, 449, 455, 456, 457, 458, 459, 464, 472, 474, 476, 477, 480, 481, 485, 486, 487, 495, 496, 502, 503, 504, 515, 522, 525, 527, 528, 531], "220": [449, 480, 488, 564, 579, 580], "2200": 423, "2201": [65, 268, 480, 504, 561], "2202e": 504, "2204": 423, "2206": 423, "220e": 480, "221": [394, 432], "22149": 459, "2217": 423, "2217412e": 484, "2218": [397, 424], "2219": [396, 424], "222": [58, 480, 488], "2221": 480, "22245374e": 125, "2227134679628": 474, "22271346796282": 474, "222713467962826": 474, "2229": [393, 423], "223": 488, "2230": 423, "2231": 480, "2235": 423, "2237": [423, 504], "2238": 423, "2239": 423, "2240": 423, "2243": 423, "2244": 423, "224436": 504, "225": [96, 305, 306, 404, 432, 449, 480, 543, 564], "2250": 423, "22500": 461, "2254": 423, "2255": [398, 490], "225575051666": 480, "2255890": [473, 477, 490], "2257": 423, "2259": 423, "226": [449, 465, 494, 543], "22608": 481, "2262": 423, "22635140877790516": 483, "2264": [392, 423], "22646133647326874": 483, "2264827111476982": 483, "22648881839710966": 483, "2265163003209506": 483, "22662622801631419": 483, "2270": 397, "2272": 423, "2274": [399, 424, 450], "2276": 423, "2277": 423, "2278": 423, "2278975306934438": 483, "2279": [397, 424], "227e": 480, "228": [291, 297, 388, 394, 456, 461, 480, 485, 496], "2287": 423, "2289": 423, "229": [67, 480], "2290": 399, "2292": 424, "2294": 423, "2296": 423, "2297": 423, "22974080e": 494, "2298": 423, "22e": 485, "22nd": 418, "23": [77, 94, 176, 380, 384, 406, 418, 442, 449, 452, 455, 457, 459, 464, 467, 470, 474, 477, 480, 483, 486, 488, 490, 504, 527, 537, 538, 541], "230": [432, 459], "2300": 423, "2304": 398, "2305": 423, "230542e": 480, "2307": [64, 65], "2308": 424, "231": 432, "2310": 423, "2313": 424, "2314": 424, "232": 62, "2320": [424, 480, 481], "2321": 424, "2323": 424, "2326": 424, "2327": [480, 488], "23273": 494, "233": 456, "2330": 424, "23306": 459, "2332": 488, "2334": 424, "2335": 424, "2338": 424, "2339": [452, 480, 504], "234": [432, 475], "234132519034915": 486, "23413252": 486, "2342": 424, "2343": 424, "234359264373779": 485, "2343e": 488, "2344": 424, "2345": 424, "2346": 424, "2347": 424, "235": 432, "2350": 425, "2351": 424, "23523": [146, 173, 211, 416, 455, 456, 464, 472, 481, 483, 485, 496, 502, 503, 515, 518, 578], "23526": [146, 211, 455, 456, 464, 472, 481, 483, 485, 496, 502, 503, 578], "235294117647083": 469, "2354": 424, "23559": [455, 456, 472, 481, 485, 502, 503, 525, 527, 528, 578], "2356": 424, "2357": 488, "2358": 424, "2359": 424, "23592": [455, 456, 472, 481, 485, 502, 503, 525, 527, 528, 578], "236": [432, 480], "2360": 424, "2362506e": 484, "23628": 494, "2365": 424, "2366": 424, "2367": 424, "2368": 424, "237": 450, "23734": 504, "2375": 424, "2377": 424, "2378": 424, "2379": 424, "238": 463, "2380e": 457, "2381": 424, "238298": 450, "2384": 450, "2385": 424, "239": [67, 465], "23905561": 484, "239439": 504, "239557417": 86, "2399": 480, "239e": 480, "23a": 61, "24": [25, 27, 52, 53, 86, 87, 91, 94, 383, 384, 397, 401, 435, 440, 450, 456, 459, 474, 477, 480, 481, 486, 488, 493, 494, 502, 505, 527, 535, 542, 544, 551, 560, 561, 562], "240": [102, 105, 109, 110, 122, 480, 481, 482, 516], "2400": 424, "2401": 424, "2404": 424, "2405": 425, "240e": 455, "241": 480, "2412": 424, "2414": 480, "2419": 450, "2428255": 482, "242835": 67, "243": [455, 482], "2431": 480, "2432": 459, "2433": 425, "2435": 425, "243742672227972e": 477, "244": [67, 432, 455, 492], "2440": 480, "2441": 425, "244140625": 488, "2443672e": 484, "2444": 425, "2446": [425, 488], "2448": 425, "2449": 425, "245": 432, "2450": [425, 488], "245152": 465, "2454": 425, "2455": 425, "24579": 482, "2459": 425, "246": [432, 482], "2461": 425, "24611324074": 480, "2463": [400, 425], "2464": 425, "2465055e": 484, "2468": 425, "24685677e": 484, "247": [67, 432], "2470": 425, "2471938975366008": 305, "2472": 425, "2475": 425, "2476": 425, "2477": 425, "2478": 425, "2479": [425, 503], "248": 432, "2481": 425, "248122": 480, "2483": 425, "2485": 502, "2486": 425, "249": [22, 432], "2490": 425, "2491": 425, "2492": 425, "2493": 425, "2496": 425, "24968": 450, "2497": 425, "2498": 425, "2499": 425, "249965667724609": 485, "249e": 142, "24e": [480, 488], "25": [33, 52, 87, 91, 101, 141, 142, 152, 163, 176, 291, 297, 384, 397, 404, 418, 439, 446, 447, 450, 451, 455, 456, 459, 465, 474, 475, 477, 480, 484, 486, 488, 504, 534, 536, 539, 540, 541], "250": [486, 577], "2501": 425, "250185": 485, "2502": [425, 465], "2505": 425, "2505121": 97, "2505703": 475, "2509": 480, "251": [459, 463], "2510": 425, "251185": 504, "2511884200000000": 504, "2511886431": 482, "25162e": 450, "2518": 480, "251932": 480, "252": [432, 465, 480], "2520": 425, "2521": 425, "2523": 425, "2525": 425, "2528": 425, "253": [458, 488], "2535": 425, "2536": [425, 488], "2537": 488, "2538": 425, "254": 432, "2540": 425, "2546": 425, "254901960784338": 469, "25496": 504, "2551": 425, "2552": [425, 480], "2553": 425, "2555": 401, "2557": 425, "255750516626": 480, "2558": 425, "2559": 425, "256": [67, 435], "2560538e": 484, "2561": 425, "2562": 425, "2563": 425, "2564": 425, "2567": 425, "2568710719919036": 466, "257": [141, 458], "2574": 425, "25743553e": 483, "25763": 459, "257642": 480, "2579999": 493, "258": [458, 542], "2580": 425, "25823909e": 482, "2585": 425, "2587": 425, "2589254117941673": 502, "259": [458, 504], "2591e": [451, 480], "2594": 425, "2595": 425, "2595e": 463, "259e": [142, 459], "25b": 17, "25e": 488, "25t_": 53, "25th": 406, "26": [19, 87, 91, 142, 384, 418, 446, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 549, 554, 559, 572], "260": [435, 504], "2604": 425, "2609": 488, "261": [435, 504], "2616": 425, "26173": 459, "2619": 425, "262": [435, 449, 459, 488, 504, 564], "2620": 425, "262554796103245": 502, "2625818241224747": 483, "2627": 425, "262728": 493, "26272868097919794": 490, "2628525e": 484, "263": [141, 142, 459, 488], "2633e": 464, "2635": 425, "2635108e": 484, "2637": 425, "2639554729438709": 490, "264": [141, 435, 465], "2645": 425, "26475": 461, "2648150": 97, "2649e": 483, "265": [32, 142, 394, 450, 459, 465, 488, 504], "2651": 425, "2654": 425, "266": [141, 142, 394, 458, 459, 465, 467, 471, 486, 488, 504], "2660": 425, "266192": 450, "26665050077722524": 490, "2667": 426, "267": [67, 142, 458, 459, 465, 488, 493], "2672": 426, "2673": 426, "26739753": 97, "2674": 426, "268": [406, 459, 465, 480, 488, 502, 504], "2681": 426, "2684": 426, "2685": 426, "268663733018811": 490, "2687": 426, "26883694": 504, "26887783978974283": 490, "2689": 465, "269": [469, 504], "2692": 426, "269385": 480, "269627": 493, "2697": 426, "2699878e": 484, "26a": [39, 40, 50, 52, 53, 244, 280, 289, 480], "26e": [480, 488], "26th": [402, 418], "27": [142, 386, 446, 449, 455, 459, 465, 477, 479, 481, 492, 504, 547, 562, 579], "270": [452, 459, 480, 488, 504], "2703": 426, "2705": 426, "27057337686547633": 490, "2707": 426, "2708": 244, "2709": 426, "27093776e": 484, "271": [449, 455, 458, 459, 461, 462, 463, 504, 564], "2711": 426, "2712": 426, "2713": 426, "2715": 426, "271777777777796": 452, "27177778": 94, "2718": 426, "2719": 426, "272": [458, 459, 480, 488], "2720": [401, 427], "27209": 504, "2723": 426, "2725": 426, "2726": 426, "2726e": 504, "2727": 426, "2727693": 493, "2727e": 455, "2728": 426, "2729": 426, "273": [83, 435, 453, 459, 504], "2730": 426, "2731": 426, "2733": 426, "2734": 125, "2735": 426, "2737": 426, "2738": 426, "2739": 426, "274": [449, 486, 564], "27409496735322464": 490, "2741": 426, "2742": 426, "2743": 426, "274509803921596": 469, "2746": 426, "2747": 426, "27473": 465, "275": [458, 480, 572], "2750": 426, "2751": 426, "2752": 426, "2753": 426, "2755": 426, "2756": 426, "2759": 427, "276": 435, "2761": 427, "2762": 427, "2764": 427, "276471": 545, "2765": 427, "2767": 427, "2768": 427, "277": 458, "277090": 560, "2771": 427, "2772": 427, "27727": 488, "2775": 427, "277522283785622": 466, "2776": 427, "2777": 427, "2777074437073429": 490, "2778": 427, "2779": 427, "278": [27, 435, 458, 471, 480, 488], "2781": 427, "2782": 427, "2783": 427, "2784": 427, "2785": 427, "2785e": 455, "2787": 427, "2788": 427, "2789": 427, "278e": 459, "279": 435, "2790": 427, "2791": 427, "2792": 427, "2793": 427, "2794": 427, "2796": 427, "2797": 427, "2798": 427, "2799": 427, "27e": 480, "27t20": 89, "28": [21, 24, 67, 94, 141, 142, 389, 418, 453, 455, 457, 458, 459, 465, 467, 471, 477, 480, 485, 486, 488, 493, 504, 544, 556], "280": [67, 435, 455, 458, 486], "2800": [467, 488, 504], "2801": 427, "2802": 427, "2803": 427, "2804": 427, "2805": 427, "2808": 427, "2809": 427, "281": [458, 480], "2810": 427, "2811": 427, "28118133544922": 480, "2812": 427, "28120079": 480, "2815": 427, "2816": [427, 488], "2817": 427, "2818": 427, "2818047723094509": 490, "28183829312": 482, "282": [141, 142], "2820": 427, "2822": [427, 488], "2823": 427, "2825456e": 484, "2827": 427, "28275990e": 482, "2827988e": 484, "2828": 427, "2829": 427, "282951078740491e": 477, "282e": 480, "283": [435, 458, 505], "2832": 427, "283218": 450, "283487": 480, "2837": 427, "28382603": 484, "2838398": 493, "28385358839966657": 490, "2839": 427, "284": [458, 480, 582], "2841": 427, "2842": 427, "28429": 465, "2845": 427, "2846": [427, 465], "285": [435, 458], "2852": 488, "28551": 142, "2859229": 482, "285f": [83, 88], "286": [435, 458, 482], "2861432787940619": 490, "286e": [459, 480], "287": [52, 53], "2872": 428, "28720322": 97, "2874": [428, 504], "28755283551095173": 490, "2878662980210884": 306, "288": 125, "2880470e": 484, "2885": 428, "288e": [453, 474], "289": [435, 458], "28905": 494, "2891": 428, "28958": 459, "2896": 428, "2897": 428, "28e": [102, 453, 463, 465, 481, 494], "29": [67, 142, 274, 395, 405, 418, 446, 450, 453, 456, 458, 459, 465, 471, 473, 477, 480, 486, 488, 489, 493, 504, 554, 555], "290": [436, 458, 466, 482], "2900": 488, "290098": 482, "2903": [428, 488], "2903e": 457, "2907": 428, "291": 435, "2912": 428, "29158": 142, "29170324": 481, "291e": 504, "2922477": 97, "2923272203680937e": 477, "2924": 428, "2927": 428, "2929": 428, "293": 458, "2930": 480, "2931": 428, "2932": 428, "29355238360800506": 490, "2938": 428, "2939": 428, "2942": 402, "2943": 428, "2944": [403, 428], "2945": 428, "2947": 428, "2948": 428, "295": 435, "2950": 428, "2951": 428, "295214": 547, "2953": 465, "29553683e": 482, "2956": 428, "29585273e": 494, "2959": 488, "295e": 480, "296": 435, "2965": 428, "2966": 428, "2967": 428, "297": 450, "2971e": 480, "2974": 428, "2976": 428, "2978e": 451, "298": [458, 465, 480], "2981": 428, "2984": 428, "29882214027996945": 490, "299": [435, 458, 480], "2990": 428, "2991": 428, "2992": 428, "2993": 428, "2995484265169": 478, "2996": 504, "2998": 428, "2999": [428, 480], "299940468335294": 465, "299995937905366": 465, "299e": 480, "299t": 53, "29t20": [473, 477], "29t21": 477, "29t22": 477, "29t23": 477, "29th": 418, "2_": 19, "2d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 141, 142, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 173, 183, 184, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 234, 386, 391, 396, 399, 400, 401, 412, 420, 426, 439, 440, 441, 449, 459, 461, 462, 465, 486, 487, 504, 514, 517, 528, 529, 530, 542], "2degx2deg": 467, "2e": [198, 450, 452, 453, 467, 468, 477, 480, 483, 488], "2e3": [198, 486], "2e6": 494, "2f": [369, 450, 456, 490, 503, 580], "2fhl": [58, 71, 425, 437, 438, 480, 504, 513], "2hwc": [59, 72, 425, 431, 439, 480, 513], "2k": [102, 109], "2m": [244, 280], "2nd": [60, 405], "2nd_psr_catalog": 60, "2oeokx4p": 485, "2pc": [60, 69, 73, 447, 480], "2pc_catalog_v04": 60, "2tlkmzq0": 477, "3": [19, 20, 27, 28, 31, 32, 33, 37, 38, 42, 45, 46, 50, 51, 52, 53, 54, 59, 63, 67, 77, 80, 83, 85, 86, 87, 91, 94, 96, 102, 105, 109, 110, 111, 116, 118, 125, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 176, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 215, 217, 226, 234, 237, 245, 268, 274, 276, 279, 280, 288, 289, 290, 295, 305, 306, 327, 336, 357, 368, 373, 375, 377, 380, 381, 383, 384, 386, 391, 392, 394, 395, 396, 397, 399, 404, 405, 406, 409, 411, 416, 419, 420, 421, 423, 424, 429, 431, 433, 436, 437, 438, 439, 440, 441, 442, 444, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 505, 506, 508, 511, 512, 515, 516, 520, 522, 524, 525, 527, 528, 531, 535, 537, 538, 540, 541, 544, 549, 550, 552, 553, 554, 555, 557, 558, 561, 563, 567, 568, 572, 576, 577, 579, 580], "30": [24, 52, 67, 83, 96, 102, 112, 113, 141, 153, 192, 305, 306, 387, 388, 393, 400, 407, 418, 420, 449, 450, 451, 452, 454, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 516, 522, 527, 528, 535, 536, 546, 550, 552, 553, 554, 555, 558, 561, 563], "300": [74, 87, 91, 289, 449, 454, 458, 460, 464, 467, 468, 471, 474, 480, 494], "3000": [390, 480, 530], "30000": 480, "3000000": 563, "30000000": 563, "3000020211954284": 465, "3000e": 451, "3001": 428, "30015e": 450, "3002": 428, "3003": 488, "3004625872247901": 464, "3005": 428, "3006": 504, "3006942": 97, "3007": 428, "301": [435, 458], "3011061699260256": 490, "3012": 428, "3013": 480, "301668796295": 480, "302": [458, 471], "3020791585772495": 305, "30287": 459, "3028e": 488, "302e": 480, "303": [449, 455, 458, 480, 543], "3030": 428, "3032": 428, "3034": 480, "3035": 428, "3037": 428, "3037632e": 484, "3038": [428, 504], "3039": 428, "304": [449, 451, 454, 473, 474, 477, 478, 480, 488, 490, 492, 504, 544], "3041": 428, "3042": 428, "3043": 488, "3045": 428, "3046875": [481, 488], "3049664466089965": 306, "304_steadi": 451, "305": [67, 458], "3051": 428, "3051827": 97, "3051852": 97, "3051856": 97, "3052": 428, "3053": 428, "30535345877453707": 490, "3054": 428, "3054538213469855": 466, "30561": 142, "3058": 428, "3058422e": 484, "305e": 480, "306": [435, 579], "3060": 428, "306196370000000": 504, "3063": 428, "3069": 428, "306e": 480, "307": [449, 458, 543], "3070": 428, "3071": 480, "3072": 428, "3074": 428, "3075": 404, "3076": 428, "307e": 480, "308": [458, 465, 538], "3080": 428, "3081": 428, "3083": 428, "3085": 428, "3086": 428, "3088": 428, "3089": 428, "3091": 428, "3092": 428, "30997": 504, "30a": 280, "30d00m00": 407, "30e": [451, 484, 488], "30t00": 477, "30t01": 477, "30t02": 477, "30th": 392, "31": [141, 142, 389, 390, 403, 404, 416, 443, 451, 453, 456, 458, 459, 463, 466, 469, 473, 474, 477, 480, 481, 485, 486, 488, 491, 495, 502, 504, 558, 560], "310": 474, "3100": 428, "3106": 428, "31067517": 480, "3107": [480, 504], "311": [474, 538, 580], "3110": 429, "3111": 429, "3112": 429, "3113": 429, "31139074e": 483, "3114": 429, "311489174710791e": 504, "3116": 429, "3117988e": 484, "31186857659616535": 490, "3119611261122878": 490, "312": 435, "3122": 430, "3123": 430, "3124": 430, "3125": 430, "3126": 430, "3127": 430, "3129": 430, "313": [458, 464], "3130": 430, "3131": [431, 488], "3135914081482271": 490, "3136": 431, "313714614138": 481, "3138": 431, "314": 440, "3140": 431, "3141": 431, "3145": 431, "3148": 431, "315": 480, "3152": 431, "3153": 431, "3155": 431, "315767542862533": 502, "3158": 431, "316": [458, 494, 495], "3162": 431, "316227": 480, "316227766016838": 485, "3165": 431, "3168": 431, "3169": 431, "317": [435, 458], "3173": 431, "3178": 431, "317a": 280, "317e": [451, 480], "318": [435, 449, 564], "3180": 431, "3182": 431, "31834": 142, "3185": 431, "3189697265625": 455, "31898": 142, "319": [436, 449, 483, 492, 494], "3191": 431, "3195": 504, "3197": 431, "319725": 493, "3199": 431, "32": [83, 141, 192, 449, 455, 459, 461, 463, 470, 476, 477, 485, 486, 504, 551, 553, 557], "320": [102, 105, 109, 110, 122, 449, 480, 481, 482, 488, 516, 564], "3202": 431, "3207": 431, "3208": 431, "32095": 504, "321": [469, 474], "3211": 431, "3216": 431, "3217": 431, "3219": 431, "322": 458, "3222": 431, "3228": 431, "3229": 465, "323": [449, 458, 564], "3230": 431, "3232943": 347, "3233356": 347, "32377509405904137": 96, "323779": 295, "3237948931463171": 490, "3238": 431, "3241": 431, "3243": 431, "3246": 431, "32465247": 489, "325": 474, "3254": 431, "3257": 431, "3258": 431, "325e": 456, "326": 435, "3262": 431, "32684": 504, "32684833": 493, "327": 465, "3272": 431, "3276": 431, "3277": 431, "3278": 431, "3279": 431, "3279955e": 484, "328": 465, "3281": 431, "3283": 431, "3284": 431, "32843": 504, "32847": 450, "3285": 431, "329": [96, 305, 306, 473, 477, 480, 490, 518], "3293": 431, "3299": 480, "329e": [455, 480], "33": [474, 477, 478, 479, 483, 486, 504, 518, 545, 563], "330": [436, 458, 488], "3301": 431, "33013e": 450, "3302": 431, "3302565e": 484, "3303": 431, "330376": 67, "3304": 431, "3305": 431, "330505": 493, "33055e": 450, "3306": 431, "3307": 431, "3308": 431, "3309": 431, "331": 474, "3310": 431, "3314": 431, "33164865722698683": 490, "3319": 431, "3319831545301117": 305, "332": [67, 436, 494], "3320": 431, "3323": [431, 481], "332525": 480, "3328": 431, "332e": [459, 465], "332f": [30, 31, 32, 33], "333": [136, 298], "3330487": 97, "3331": 504, "3331761": 97, "3333": 431, "33333333": 380, "3333333333333344": 469, "3335": 431, "33368e": 450, "3337": 431, "3338": 431, "334": [125, 494], "3342": 431, "3343": 431, "3346": 431, "3347": 431, "33484": 450, "3349": 431, "3349654391": 482, "334e": 480, "335": [436, 449, 564], "3353": 431, "3357": 431, "3358": 431, "335e": 453, "336": [469, 480], "3363": 431, "3364130e": 484, "336444e": 480, "336606": 450, "3368855e": 484, "3369": 431, "337": [436, 458], "3374": 431, "3377": 431, "33787": [96, 490], "33788": [96, 142, 490], "33789": [96, 490], "3379": 431, "33790": 490, "33791": 490, "33792": 490, "33793": 490, "33794": 490, "33795": 490, "33796": 490, "33797": 490, "33798": 490, "33799": 490, "338": [436, 480], "33800": 490, "33800122": 97, "33801": 490, "3380311e": 484, "3381": 431, "339": [436, 455, 469], "3390": 431, "339150": 536, "3392": 431, "3393": 431, "3395": 431, "3397": 431, "339835555384604": 490, "3398360": 484, "33983991887701287": 96, "3399": 431, "33e": [461, 475], "34": [52, 53, 67, 419, 450, 465, 473, 477, 481, 486, 488, 504, 548, 550, 572], "340": [449, 474, 476, 564], "34005": 450, "3402": 431, "3403": 431, "340391": 504, "3404": 431, "34047": 450, "3406": 431, "3409": [94, 431], "341": [450, 474], "3413": 431, "3416": 431, "3418": 431, "342": 436, "3420": 431, "3423": 431, "3426": 431, "3428": 431, "3434": 431, "3438": 431, "3439": 431, "343e": 453, "344": 480, "344238": 504, "3443842": 493, "3445": 431, "3446": 431, "3447": 431, "3449": 431, "344e": 67, "345": [296, 450, 488], "3453": 431, "3454": 431, "345692": 504, "3458": 431, "346": 488, "34613054105945": 466, "346488e": 480, "3466": 431, "3468": 431, "347": [436, 452], "3471": 431, "3474": 431, "348": [36, 37, 436, 455], "3480": 431, "3481e": 463, "3488": 431, "348e": [67, 480], "349": 564, "3491": [431, 459], "3493": 141, "34932": 142, "349530550405035": 483, "349530725254468": 483, "34953073943366": 483, "34953075819191": 483, "34953077463306": 483, "34953079334042": 483, "349530807529028": 483, "349535814693404": 483, "349536723056637": 483, "349537158300407": 483, "349537804239922": 483, "34953807814367": 483, "34953910575007": 483, "34953932636892": 483, "349542158419318": 483, "349559366703698": 483, "349655": 482, "34971209244579": 483, "349724940685938": 483, "3499075e": 484, "349e": 459, "34e": [480, 488], "35": [67, 397, 404, 416, 449, 455, 473, 476, 477, 480, 483, 491, 493, 567, 568, 570, 573], "350": [469, 475, 482], "350105": 465, "3502": 480, "35030398537787": 483, "3503706026275275": 490, "3504": 504, "35052105086856": 483, "350556388466543": 483, "350d": 469, "351": [436, 480, 504], "3514e": 503, "3515": 431, "352": [436, 480], "3521": 452, "3523": 431, "3529": 431, "3529411764705888": 469, "353": [24, 436, 504], "3535": 433, "353592500058824e": 502, "3536": 450, "353e": 465, "354": 469, "3544": 431, "35569283": 484, "355804": 504, "3559": 431, "356": 504, "3561": 431, "3568": 431, "357": [480, 504], "35722435185": 480, "3576e": 452, "358": [465, 480, 504], "3583": 465, "3584": 431, "359": [436, 465, 480, 504], "3590188e": 484, "3592": 431, "3599": 467, "359e": 504, "36": [67, 86, 148, 325, 452, 465, 467, 474, 480, 481, 484, 504, 565, 566, 569, 571], "360": [394, 486, 506], "3600": [458, 467, 468, 486], "36014": 463, "36073833513766157": 490, "361": [67, 436], "3619e": 503, "36228879": 504, "36273": 504, "363472509034498": 490, "3639946": 475, "364": 436, "3659253e": 484, "366": [482, 503], "366486": 482, "36669663417038234": 490, "3669": 433, "367": [436, 469, 488], "3674884": 480, "368": 118, "36834038301420274": 490, "368346217294295": 96, "3684": 433, "3689322e": 484, "369": 436, "3690": 504, "3699": 433, "369e": 474, "36e": [479, 480], "37": [450, 451, 456, 458, 461, 482, 483, 494, 580], "370": [469, 480, 488], "37058": 142, "371": 436, "3710784e": 484, "3712": 433, "3713": 433, "3715810e": 484, "3718745": 97, "372": [35, 125, 504], "3720": 433, "3722": 433, "3725490196078436": 469, "3728": 433, "373": 465, "3733": 433, "373892759762174e": 477, "3739292e": 484, "374": 469, "3740": 433, "37455141": 504, "374773": 569, "3748": 433, "375": [436, 486], "3750": 465, "37506": 504, "37517": 459, "3752": 433, "3759377929871826": 490, "376": 67, "3760": 433, "3761": 433, "3765": 450, "3777": 433, "37773": 459, "3779": 504, "378": [449, 467, 470], "3783": 433, "3784": 141, "379": [436, 455], "3792": 488, "3796": 433, "3797": 433, "38": [22, 67, 450, 452, 462, 480, 486, 488, 504, 563], "3802": 433, "3804": 433, "3806": 433, "381": 488, "3810": 433, "3812": [480, 504], "3812120e": 484, "3812160e": 484, "38143003": 97, "3817": 433, "382": [449, 564], "38258165e": 482, "3829": 504, "382e": 455, "383": [67, 436, 480, 486], "3833": 433, "3837": 433, "383e": 67, "384": 482, "3841385": 482, "3842": 433, "3846": 433, "3848912826152664e": 504, "3856": 433, "385e": 142, "3860": 433, "3862": 442, "387": [436, 504], "3872": 480, "3873": 433, "3874": 433, "387570": 535, "3876": 433, "387834": 504, "388": 542, "388405": 504, "3885947175689592": 490, "3886270e": 484, "3887": 433, "389": 385, "3892": 433, "3895": 433, "3898": 433, "389e": 504, "39": [17, 18, 21, 22, 24, 25, 27, 59, 142, 474, 479, 480, 486, 494, 502, 542, 563], "390": 431, "3904": 433, "39042": 86, "3905": 433, "3906": 433, "391": 480, "3915": 433, "3918": 433, "392": [436, 456], "39200283e": 477, "392156862745098": 469, "39224": 459, "3925": 442, "393": [207, 208], "3933": 433, "3935": 452, "3936": 433, "393934": 553, "394": 436, "3941": 433, "3945": [452, 480], "3947637541758": 474, "394765638937866": 502, "3948": 434, "395": 436, "3950": [405, 442], "395004": 504, "3956": 442, "3959": 434, "396": [436, 449, 497], "3962942e": 484, "3966": 434, "397": 455, "3970": 406, "397035933646679e": 477, "39728": 504, "3975": 434, "3979": [434, 578], "397918129147546": [416, 578], "39791813": [416, 578], "398": [436, 461, 463], "3981": 504, "39810717055": 482, "3981075200000000": 504, "3983": 434, "3986": 434, "3987": 434, "3988": 434, "398e": 480, "399": [449, 492], "3990": 434, "39e": 480, "3d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 148, 154, 161, 162, 164, 173, 283, 285, 386, 389, 390, 391, 395, 396, 399, 400, 401, 412, 420, 421, 422, 424, 425, 426, 427, 438, 439, 440, 447, 449, 450, 451, 453, 455, 456, 459, 460, 461, 465, 466, 467, 468, 469, 470, 473, 474, 477, 481, 483, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 502, 503, 514, 516, 517, 518, 525, 530, 575, 577], "3d33m15": 67, "3dataset": 464, "3e": [20, 125, 131, 465, 468, 471, 472, 475, 477, 480, 488], "3e4": 494, "3e5": 494, "3e6": 563, "3e7": 563, "3f": [125, 466, 579, 580], "3fgl": [61, 67, 74, 228, 267, 403, 432, 435, 437, 438, 439, 449, 453, 480, 489, 504, 513, 532, 564], "3fgl_name": 71, "3fhl": [62, 75, 86, 127, 129, 133, 286, 400, 438, 439, 453, 459, 467, 469, 480, 486, 487, 488, 489, 494, 504, 513, 515], "3fhl_data_fermi": 464, "3fhl_dataset": [286, 464, 487], "3fhl_model": [286, 464, 488], "3g": [479, 480], "3hwc": [63, 76, 431, 442, 480, 513], "3kql8fcg": 477, "3ml": [398, 494], "3pc": [64, 69, 77, 447, 480], "3pc_catalog": 64, "3rd": 64, "3rd_psr_catalog": 64, "4": [19, 20, 22, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 52, 54, 61, 67, 83, 87, 91, 101, 102, 105, 109, 110, 115, 117, 128, 133, 142, 145, 150, 153, 161, 173, 176, 192, 193, 194, 195, 196, 197, 202, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 286, 287, 325, 367, 380, 381, 383, 384, 392, 394, 397, 400, 404, 405, 416, 419, 428, 430, 431, 432, 435, 437, 438, 441, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 497, 502, 503, 504, 506, 511, 512, 513, 527, 530, 531, 535, 536, 539, 544, 549, 562, 563, 571, 577, 578, 579, 580, 581], "40": [59, 109, 110, 387, 432, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 527, 550, 553, 558, 563, 579], "400": [133, 459, 460, 465, 469, 480, 486, 504, 572], "4000": 442, "40000": [173, 503], "400056": 450, "40050506591797": 480, "40051035": 480, "40071076": 97, "400x200": 469, "401": 456, "40112": 504, "4013": 442, "4014": 442, "4015": 442, "4017": 442, "4018": 442, "401e": 459, "402": 153, "4022": 442, "40235": 463, "4024": 442, "4025": 442, "4026": 442, "402712": 480, "403": [436, 465, 488], "4035": 504, "4037": 442, "404": 303, "4043": 442, "4044": 442, "40481": 463, "405": 388, "4051": 442, "40525": 463, "4054": 442, "4058": 442, "406": 504, "40611": 504, "4067": 442, "40671": 461, "40672": 461, "407": 480, "4071": 442, "4073": 442, "4073799600000000": 504, "4075": 442, "4076": 442, "4079": 442, "408": [455, 486], "4080": 442, "4080942e": 484, "40822469e": 489, "4083": 442, "4084": 442, "4088": 442, "4089": 442, "40919": 459, "4093": 442, "409416": 504, "4095": 442, "4098": 442, "40a": 59, "40deg": 493, "41": [67, 86, 94, 394, 480, 481, 486, 494, 504], "410": 469, "41009347393684": 481, "4103": 442, "4105": 442, "4106": 442, "4107": 442, "4108": 442, "411": 504, "4110e": 480, "4112": [125, 442], "4113": 442, "4115": 442, "41176470588239": 469, "4119": 442, "411e": 453, "4120719e": 484, "412165": 465, "412562": 573, "412779907405": 480, "413": 465, "414": 436, "4140541880588": 466, "41415047": 97, "4142135623730951": 118, "41449": 459, "414e": 459, "415": [436, 554], "4151e": 463, "4155": [480, 504], "41584196": 478, "416": [67, 463, 480, 485], "4161e": 463, "417": 480, "418007850646973": 416, "41803": 461, "41866": 494, "419": 488, "4191": 445, "41924": 141, "4198250e": 484, "41995": 459, "419e": 480, "41e19": [19, 20], "42": [25, 27, 94, 153, 347, 394, 458, 465, 474, 480, 484, 485, 486, 490, 493, 531, 534], "42050348": 481, "4208": 445, "4209": [445, 459], "421": [436, 469, 504, 577], "4210": 445, "4212": 445, "4212028e": 484, "4213": 445, "4215": 445, "4216": 445, "4217": 446, "4219": 445, "422": [39, 40], "4220": 463, "4221": 443, "4225498e": 484, "4225631e": 484, "42267": 465, "4226731": 465, "423": 455, "4231": [443, 445], "42361": 459, "42399798": 465, "423e": 125, "42400": 465, "4242": 445, "4243": 445, "4245": 445, "42463": 494, "424650": 481, "42474": 504, "425": 504, "4252": 445, "425987": 489, "426": 480, "426184": 537, "4264": 445, "4268": 443, "427": 456, "4275": [443, 445], "4277": 445, "4280": 445, "4281": 480, "4282": 445, "4288": 445, "429": [449, 455, 564], "4294": 445, "42atyg": 477, "42e": [483, 488], "43": [279, 347, 394, 456, 465, 474, 481, 486, 504, 531], "430": 480, "43000": [52, 53], "4301": [443, 445], "4303606e": 484, "4305": 445, "431": [137, 388, 469, 481], "431023787974766e": 502, "43113": 450, "43137254901962": 469, "4313847458879893": 490, "4319": 504, "43197": 459, "4324": [443, 445], "4326": 445, "432878": 480, "432e": 480, "433": 459, "4336": [443, 445], "43366": 572, "4338e": 451, "434": 480, "43416595": 475, "4344": 443, "4346": 445, "435": [436, 449, 505], "4350": 445, "4351637481047363": 490, "4352": 445, "4359": [443, 445], "435e": 455, "435l": 480, "436": 436, "4360750e": 484, "4369": 445, "437": [480, 488], "4370": 445, "4373240195300975": 490, "438": 488, "4380": [444, 445], "4381": [408, 446], "4382": 444, "439": 455, "4393": [444, 445], "4394": 444, "4395": 445, "4397": [444, 445], "439e": 480, "43e": 488, "44": [21, 50, 86, 347, 451, 458, 473, 475, 486], "4402": 445, "44055555555555603": 94, "4406": 445, "4408": 446, "4409": 445, "4412": [444, 445], "4417": 445, "4418": 445, "4420073e": 484, "4420222e": 484, "4428": 445, "4428634e": 484, "443": [449, 455, 564], "4430": 445, "44319": 481, "4432": 446, "4433": 447, "4435": [444, 445], "4444": 445, "444e": 464, "445": 459, "4450": 504, "44528685": 504, "4453": [444, 445], "44573": 94, "4458": 445, "4459": 445, "446": [488, 580], "4466": [445, 463], "4466832000000000": 504, "4466835921": 482, "447": 436, "44742": 504, "44749e": 450, "44755": 461, "447552": 450, "447e": [465, 480], "447l": 17, "448": 469, "4480056e": 484, "44802852": 504, "4481": 480, "4485": 446, "4486": [444, 445], "448e": 142, "4491": [407, 446], "4495": 445, "4497": 481, "4498": 141, "44e": 416, "45": [51, 54, 458, 464, 475, 477, 481, 486, 487, 489, 506, 531, 536, 537], "450": 488, "4500": [444, 445], "4501": 446, "4504": 445, "4506": 445, "4508": 445, "4509803921569": 469, "451": [449, 454], "4510": [445, 463, 504], "4515": 479, "4517490659800822": 472, "4520": 444, "4521": 445, "4524": 444, "453": [451, 488], "454": 455, "4540": 446, "4545": 445, "4546": 446, "455": [436, 453], "45515263080596924": 452, "45517415e": 482, "455870": 465, "455e": 67, "456": 436, "4561": 446, "45646095": 475, "4567": 446, "457": [280, 436, 488], "457251": 504, "4574": [444, 446], "4575": 94, "4578": 444, "4579e": 450, "458": [469, 480], "4584": 446, "45856": 504, "4586649826004114": 305, "459": [436, 481, 488], "4593": 444, "45935": 504, "4595": 446, "4599": 446, "45\u00ba": 495, "46": [53, 67, 109, 110, 394, 480, 486], "460249999": 86, "4608": 446, "461": [436, 477], "4615": 446, "46186956763267517": 452, "4619": 444, "462": [436, 455], "4620": [408, 446], "4620e": 480, "46225": 459, "4628": 446, "463": 504, "4631": 444, "4635": 446, "4638": 446, "4638e": 460, "464": 471, "4642048e": 484, "4647544e": 484, "465": [455, 480, 488], "4653": 444, "4657": [444, 446], "465784": 504, "4660": 446, "4664": 446, "4668": 446, "4669": 446, "4671": 446, "46711": 459, "4675e": 473, "4677": [444, 446], "468": [475, 480], "4681": 444, "4684": 452, "468805426856864e": 52, "468e": 67, "469": [449, 492], "4697": 446, "46e": [83, 460, 465], "46vqu2c7": 482, "47": [67, 474, 477, 480, 486, 504], "4703": 446, "470588235294144": 469, "4711": 504, "4712": 459, "4714": 446, "4721": 444, "4726": 446, "472728": 456, "4728": 444, "4729": 446, "473": [436, 455], "4738": 446, "474": 436, "4740": 446, "4741": 446, "474e": 480, "475": [436, 488], "4750": 446, "4753": [444, 446], "475468": 450, "4755": 444, "4759": 446, "477": [449, 497], "4770": 446, "4772": 444, "47797": 459, "477e": 480, "478": [436, 449, 454], "47802": 490, "47803": 490, "47804": 490, "47827": 490, "47828": 490, "47829": [82, 490, 496], "4783": 446, "4785": 446, "47e": 480, "48": [33, 173, 419, 463, 464, 486, 488, 494, 502], "480": [452, 480, 488], "4802": 446, "4805": 446, "480554966154": 463, "48068": 459, "4808": 446, "480e": 480, "481": [385, 436], "4810": 446, "4814": [446, 504], "4817": 446, "48180882997916e": 502, "4819444e": 484, "482": [449, 450, 499], "48215685": 97, "4822": 446, "48248": 480, "4825": [480, 504], "4828": 446, "4829": 446, "4834": 446, "4834488e": 484, "4835": 446, "4837": 446, "484": 436, "48442": 274, "4845": 446, "4847": 446, "4848653": 480, "4849": [446, 480, 504], "484e": 142, "485": 436, "4850": 446, "4851": 446, "4854": 446, "485p": [36, 37], "4861e": 457, "487": [436, 502], "4875723e": 484, "4876": 444, "4879": 446, "4881": [253, 254], "4886": 446, "48871": 450, "488928": 549, "488z": 27, "489e": 480, "48e": [480, 488, 503], "49": [53, 459, 463, 480, 488, 494, 502, 530], "490": 25, "4902": 446, "4904": 446, "4904078e": 484, "49078e": 450, "4913": 444, "49152": 494, "4917": 446, "493": 25, "493043594026": 463, "4933657e": 484, "4936": [444, 446], "4937": [444, 446], "4940": 446, "49417615": 86, "4942": 446, "494e": 455, "4958277": 97, "496021": 493, "4963": 504, "4966": 504, "4968236e": 484, "497": [449, 492], "4970": 446, "4971": 446, "49716789e": 482, "4971704e": 484, "4973": 446, "4975": 446, "4978": 446, "498": 504, "4983": 447, "498784": 480, "4989": 446, "498e": [480, 504], "499": [67, 480], "49919925926": [239, 573], "4992": 446, "4994": 446, "4996": 447, "49972277488662115": 490, "4999833830074": 465, "4d": 399, "4e": [475, 480, 488, 563], "4f": [578, 579, 580], "4fgl": [65, 78, 268, 269, 403, 423, 425, 431, 433, 446, 449, 451, 464, 480, 487, 489, 513, 532, 564], "4th": [392, 418], "4yr_catalog": 61, "5": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 52, 53, 67, 83, 87, 91, 102, 103, 105, 108, 109, 110, 118, 122, 125, 126, 128, 130, 132, 141, 142, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 173, 176, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 222, 225, 226, 228, 229, 230, 234, 235, 237, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 280, 303, 307, 339, 370, 371, 375, 377, 380, 381, 384, 385, 387, 391, 392, 394, 395, 396, 397, 399, 403, 404, 405, 411, 416, 419, 421, 423, 424, 431, 433, 435, 436, 438, 439, 440, 444, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 511, 512, 515, 522, 525, 527, 528, 529, 530, 531, 535, 536, 537, 538, 540, 544, 545, 550, 552, 553, 554, 558, 559, 563, 566, 567, 568, 569, 571, 577, 579, 580], "50": [87, 91, 94, 111, 116, 347, 387, 407, 450, 456, 457, 461, 463, 471, 473, 474, 475, 480, 481, 484, 486, 488, 489, 490, 493, 494, 496, 502, 503, 504, 527, 530, 538, 580], "500": [193, 194, 196, 202, 205, 206, 459, 465, 467, 468, 486, 493, 494, 504, 530, 535], "5000": [19, 20, 87, 91, 506, 530], "5000056568267741": 465, "5000e": 458, "50022222": 94, "500249": 480, "5004": 465, "5015": 446, "502": [436, 449, 476], "5029747": 457, "503": 436, "5030": 504, "504": 28, "5040": 446, "50422739220292": 474, "5044": 446, "5049": 504, "505": [67, 480, 481], "505523195905": 463, "5057": 447, "5058": 447, "506": 436, "5066": 480, "507": 436, "5074834": 97, "5078068": 97, "50807568877": 480, "509587": 482, "509632": 482, "509e": 480, "50e": [458, 488], "51": [52, 53, 67, 142, 461, 463, 469, 502], "510": [436, 482], "5106": 504, "51095676": 475, "511": [67, 436], "5115": 447, "51179": [381, 582], "5118": 447, "512": 455, "5125": 447, "5126": 67, "5129": 447, "513": [416, 486], "51312": 465, "5135": 447, "5144": [94, 450], "5145": 447, "514854": 493, "51544": [458, 467, 468, 471], "5156": 447, "5160": 447, "5161": 447, "5162628e": 484, "5163273": 493, "5169": 447, "5176": 447, "518": [436, 488], "5180": 447, "5184": 447, "5186": 447, "5188": 447, "5188338e": 484, "51910": 94, "5192420e": 484, "5194769e": 484, "51948705e": 489, "51958055e": 482, "52": [53, 125, 173, 450, 452, 459, 461, 463, 474, 480, 493, 496, 504], "5200": 447, "5205": [447, 494], "5206": 447, "5207": 447, "52074074074": 83, "521": 437, "521044": 561, "5222": 447, "523": [437, 486], "5230376e": 484, "52318414": 97, "523681640625": 455, "5237647004325865": 490, "52389101852": 480, "523a": [244, 280], "523b": 22, "523e": 456, "524": [437, 480, 488], "5248": 504, "524807800000000": 504, "5254": 447, "5255": 447, "5258": 447, "52587": 459, "526": 437, "52607": 504, "5269": 447, "527": [437, 494], "5270": 447, "5271": 447, "5275": 447, "5279": 447, "527e": [456, 474], "528": [455, 488], "5280": 447, "52826166": 480, "5283": [480, 504], "52839183495354": 474, "5285": 447, "5289": 447, "529": 437, "5292": 481, "529411764705883": 469, "5297": 447, "5297030e": 484, "5298": 447, "52e": [475, 502], "53": [28, 465, 477, 491, 535, 544], "530": 437, "5300": 447, "53025": 94, "5303": 447, "5304": 447, "530667": 554, "531": [437, 469], "5312": 447, "5314": 447, "5316": 447, "5320": 447, "53213": 465, "5324402": 97, "5326744": 97, "5326841": 97, "5326859": 97, "533": 480, "53343": [416, 472], "53344": 472, "53345": 472, "53346": 472, "53347": 472, "53348": 472, "5342": 447, "5345275e": 484, "5346": 447, "53482e": 450, "535": [437, 480], "5350": 447, "535058216604496": 280, "5353": 447, "5356": 447, "53566": 450, "53616": 244, "5366": 447, "5370": 447, "5378": 447, "5380": 447, "5381": 447, "5382": 447, "53849342472254e": 477, "5385": 447, "5389": 447, "539": [280, 488, 542], "5390": 447, "5390438": 97, "5392e": 473, "539397": 480, "53945": 473, "53946": [477, 478], "539e": 480, "53e": [416, 458], "54": [67, 452, 455, 480, 484], "5400": 481, "5405": 447, "5407": 447, "5407363826067": 515, "5407363826070": 515, "5408": 447, "5409": 447, "541": 437, "5411": 450, "5423": 447, "5427": 447, "5427520e": 484, "54282": 459, "5433": 447, "5437": 447, "5438": 447, "5438860e": 484, "544": [437, 480, 494], "5445": 447, "5448": 447, "5449": 447, "545": 437, "5453": 447, "54566271": 579, "545y": [39, 40], "546": 437, "5461745": 97, "5462": 447, "5466": 447, "54676837e": 483, "54682": [459, 480, 494, 504], "547": [437, 450, 480], "5472": 447, "54721e": 450, "5477": 480, "54772": 480, "54892": 459, "548e": 480, "549": 437, "549007644529844e": 502, "549019607843138": 469, "549608": 544, "5499840": 493, "54e": 488, "55": [39, 42, 87, 91, 211, 461, 474, 475, 483, 487, 491], "550": 455, "55027": 142, "55045": 480, "551": 480, "55197": [381, 582], "552": 480, "5525": 447, "55275": 494, "553": [451, 480], "5531e": 451, "553337": 504, "5538": 504, "5538942e": 484, "553e": 459, "554": 67, "55410": 480, "5545": 447, "5545130e": 484, "55461982e": 482, "554e": 453, "556": [437, 455, 580], "5561760e": 484, "557": [437, 488], "55775": 480, "558": 437, "558338072878877": 502, "559": 437, "5594": 83, "56": [450, 456, 475, 486, 495], "560": [37, 480], "5606985": 475, "5607778e": 484, "56093766": 97, "56141": 480, "562": 480, "5622482": 97, "56234132519": 482, "562637": 471, "56353481": 579, "563e": [455, 465], "564": [295, 437, 455, 488], "564139576925786": 466, "5644": 481, "565": 437, "56506": 480, "565095": 450, "566e": 455, "56711": 504, "5686274509803928": 469, "56871": 480, "5688457981682": 474, "569": 437, "56922612": 579, "5692809e": 484, "56973": 504, "57": [33, 459, 465, 475, 486], "570": [449, 476], "57011": 465, "571": 480, "57185": 515, "5719922e": 484, "571e": 480, "572": 456, "57233": 504, "57236": [459, 480, 494, 504], "572e": [453, 459], "573": [67, 455, 504], "57300957": 176, "5754970e": 484, "576": 488, "5760": 504, "57602": 480, "5763635e": 484, "5768262e": 484, "576e": 459, "577398": 494, "5779092e": 484, "578": [480, 482, 579], "5782814": 482, "579": 480, "579178801616083e": 477, "57944657408": 480, "57967": 480, "57e": 480, "58": [416, 419, 458, 463, 466, 480, 485, 486, 488, 496, 502], "580": 580, "581": 456, "5819e": 457, "582": 437, "58332": 480, "5833e": 480, "5835918e": 484, "583e": 459, "5842497e": 484, "585": 480, "58540702": 97, "5867488e": 484, "58693695": 475, "58698": 480, "5882352941176467": 469, "588e": 480, "58909": 474, "58926": 459, "5892966e": 484, "5895": 452, "58999": 239, "58e": [471, 480, 482], "59": [83, 458, 461, 471, 472, 480, 485, 496, 504], "590": 455, "59000": [239, 573], "59001": 239, "59063": 480, "5908": 480, "590835686434463": 490, "591": [437, 480], "59100": [572, 573], "59123": [566, 567, 568], "591285": 565, "5915030546513255": 478, "5915e": 480, "59200": 572, "59233": 489, "59235": [83, 493], "59240": 489, "5924e": 503, "59250": 489, "59254e": 450, "59265": 450, "593": 437, "59300": 475, "59344": 504, "59348": 504, "59365": 573, "594": 437, "59400008": 97, "59428": 480, "59451": 459, "59497703e": 477, "5951631e": 484, "5956621435": 482, "596": 488, "59696": 459, "596e": 480, "597194451442478e": 477, "597774": 484, "59793": 480, "598": 504, "5985": 504, "5987726": 97, "599": [437, 469, 473, 488], "599625": 493, "59976": 480, "599999904632568": 480, "59d09m41": 480, "59e": [480, 488, 494], "59varux": 458, "5a": 58, "5e": [458, 468, 480, 482, 488], "5o9ew056": 489, "5v": 477, "6": [28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 50, 52, 53, 67, 86, 87, 91, 100, 102, 109, 111, 116, 125, 130, 142, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 239, 280, 368, 371, 384, 387, 392, 396, 397, 400, 405, 413, 416, 429, 431, 433, 439, 440, 444, 446, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 510, 527, 531, 537, 541, 561, 577, 579], "60": [67, 91, 155, 444, 456, 459, 480, 483, 494], "600": [456, 459, 464], "6000": 530, "6000000000000001": 489, "600661": 484, "60075": 484, "60090769e": 489, "600e": 455, "6018166e": 484, "601e": 480, "6024e": 503, "603": [449, 462, 488, 504], "6033": 450, "60350": 453, "603509": 104, "603625": 484, "604": 455, "6046689e": 484, "60603928": 489, "60685": [569, 570, 571], "607843137254942": 469, "60e": 480, "61": [67, 142, 426, 463, 480, 488, 494, 580], "610": 488, "61051": 494, "6105760e": 484, "611": [459, 482, 579], "611023": 550, "611168": 482, "6116853": 480, "611e": 480, "6125": 496, "612e": 459, "613114": 478, "613160": 489, "61422433": 97, "614300159315": 570, "61430635896": 571, "61430885933": 569, "61453755944866": 466, "61489": 484, "61526": 142, "615316": 504, "616": [449, 479, 492], "617835": 484, "6181862e": 484, "61862": 239, "619": 480, "6194453e": 484, "61975454954816": 502, "62": [480, 495, 503], "620": 480, "620398": 484, "6205": 504, "62111": 459, "621499": 504, "6218742e": 484, "6219": 453, "622": [437, 453], "62258": 480, "6227766": 486, "62277660168379": 486, "6228e": 453, "623": [480, 504], "62320": 453, "623397": 484, "62341325": 486, "623413251903492": 486, "624": 488, "624122": 465, "624d": 24, "624e": 455, "62503": 480, "62514628": 484, "6253652e": 484, "6259962e": 484, "6266": 504, "6267247": 504, "627450980392158": 469, "628": 437, "62842028": 481, "629": 462, "63": [191, 192, 201, 204, 450, 455, 457, 481, 485, 495, 496, 502, 503, 525, 527, 528, 531], "630": [82, 488, 496, 502], "6309576500000000": 504, "630e": 67, "631": [437, 463], "631155605": 467, "631159205": 467, "631170005": 467, "631173605": 467, "631177205": 467, "631180805": 467, "6318811e": 484, "632627": 504, "633": [85, 102, 105, 109, 110, 173, 456, 464, 485, 502, 503, 527], "63307": 83, "63308": [472, 503], "633083": 487, "63310241699219": 464, "63326": 459, "6333": 94, "63342": 504, "633600": 488, "633815": 562, "635": 437, "63500212963": 480, "6354": 504, "63541": 493, "63668832485633": 474, "638": 488, "639": 480, "6390": 450, "63902": 450, "6395e": 460, "6397": 504, "63e": 481, "64": [39, 67, 83, 125, 192, 419, 471, 480, 494], "640": 437, "6402822e": 484, "641": [437, 504], "64103": 493, "6413": 465, "6417": 465, "6419578e": 484, "642": 504, "6423836025257211": 466, "6429005895278312": 490, "642e": 455, "643": [30, 31, 32, 33], "64323": 459, "64438": 494, "6444": 450, "644527": 482, "645": [481, 482], "6451": 465, "6464": 450, "646e": [136, 298], "647": 437, "647058823529452": 469, "6471115e": 484, "64794383e": 489, "648": 437, "648837": 124, "648e": 67, "649": 437, "64987376": 97, "64e": 456, "65": [63, 142, 404, 419, 421, 481], "650": 481, "6509": 450, "651": 480, "651058": 504, "6514": 504, "652": 464, "6522806": 504, "652368617859867": 464, "653": [437, 452], "65357608e": 484, "653597": 539, "654": [450, 480], "65412": 465, "654e": 480, "655": 459, "655283": 459, "6554088e": 484, "6556248e": 484, "6557": 459, "655e": [67, 456], "656": 579, "65603222222": 494, "65603794185": 480, "6561e": 463, "6577182894355391": 490, "658": 488, "658909145253801e": 504, "6589622747787678": 490, "659": [455, 459], "65e": 118, "66": [52, 53, 419, 422, 458, 464, 481, 483, 488, 491, 494, 502], "660": 437, "6604475": 465, "660e": 504, "660fals": 453, "661": 437, "66104": 450, "6613": 474, "662": 480, "663": [455, 579], "663742400000000": 504, "664502403": 493, "664502405": 493, "664502408": 493, "664502409": 493, "664502414": 493, "664e": 459, "6652219e": 484, "6656409356335768": 466, "66650390625": 452, "6666666666583865": 473, "6666666666666666": 568, "666666666666696": 469, "6678": 459, "66813": 465, "66984341": 484, "669e": [142, 459], "66e": [463, 481], "67": [17, 419, 471, 480, 504], "670": 480, "670236": 558, "6705024680435898": 305, "671": [457, 467, 496, 566], "671616": 450, "6728": [480, 504], "67304": 97, "67375": 450, "67457342435522e": 504, "675": 455, "675e": 474, "6768369882260035": 456, "6768e": 456, "677": 437, "677066": 461, "6772235e": 484, "67759236e": 484, "678": [86, 466], "67824": 481, "6784": 579, "67861": 484, "678683717532289e": 456, "679": 437, "679478008080033e": 456, "6795e": 456, "67992517": 97, "67e21": 479, "68": [67, 83, 96, 154, 160, 162, 163, 164, 166, 234, 419, 450, 480, 483, 484, 486, 493, 504, 580], "680": 488, "6803": 504, "6812310184489": 474, "68125": 484, "6823": 450, "683535101178161e": 477, "684": 173, "68542112": 97, "68588096384626e": 477, "68628538586": 481, "687": 488, "687214": 485, "687500": 485, "687685": 480, "688": [449, 476, 492], "68e": [451, 463, 480], "69": [102, 446, 459, 471, 480, 481], "690": 67, "690557685186": 480, "6909290e": 484, "691": 480, "691299354164691": 466, "69138": 459, "691680": [102, 481, 488], "692": 459, "692e": 456, "69314486": 487, "693940": 463, "6953125": 481, "69543812": 97, "6959369197218669": 490, "695e": 459, "697317": 494, "69735": 484, "697e": 453, "697fals": 453, "6985": 452, "6992": 465, "6e": [453, 480, 488], "6h": 495, "6th": 418, "7": [30, 31, 38, 52, 53, 67, 87, 91, 125, 131, 141, 173, 176, 203, 209, 211, 237, 370, 371, 380, 384, 385, 392, 396, 397, 400, 416, 420, 421, 423, 424, 430, 431, 436, 437, 438, 440, 441, 450, 455, 456, 458, 459, 464, 466, 467, 472, 473, 474, 475, 477, 478, 480, 482, 483, 484, 485, 486, 488, 489, 490, 491, 493, 494, 502, 504, 531, 535, 536, 572, 579, 580], "70": [67, 91, 102, 456, 465, 480, 481, 579], "700": [388, 468, 482, 487], "70000000e": 489, "7000e": 489, "70016": 465, "7007": 465, "701": 527, "70181": 142, "702": [472, 480, 494, 503], "702e": 459, "703": 416, "70358483e": 489, "704": 488, "70428": 504, "70437": 484, "705": 504, "70546": 459, "70634e": 450, "706e": [464, 480], "707945784": 482, "707t": 289, "708": [455, 456], "708425": 541, "709": 437, "7097381e": 484, "70_jkvk": 489, "70e": 489, "71": [33, 456, 458, 474, 488, 580], "710": 437, "71067811865478": 480, "7115414505410296e": 477, "7116851": 489, "711e": 459, "712": 466, "71220672": 481, "7123895e": 484, "712e": [472, 503], "713": [437, 480], "7132e": 504, "71387207e": 482, "714": 480, "715": 504, "716": [96, 305, 306, 486], "716062": 493, "71693826": [473, 477, 490, 518], "717": 480, "71795506": 504, "7184": 504, "719": [437, 488], "7190994e": 484, "71944e": 450, "7195": 480, "719e": 480, "72": [423, 452, 480, 485, 504], "720": [468, 480], "7200": 471, "720889": 542, "722": 488, "72217": 504, "722557505166": 480, "723": 459, "723e": 480, "7240965e": 484, "725": 480, "725490196078432": 469, "726e": 455, "727": 488, "72775": 504, "728298": 570, "7284447e": 484, "729e": 459, "73": [450, 504], "7303": 504, "731": 437, "731589446928548e": 502, "732e": [67, 480], "733": [67, 437], "733941": 461, "734": 504, "7350250533013533": 490, "7350380e": 484, "7351418e": 484, "735e": 480, "736": [455, 579, 580], "737": 455, "738": [437, 480], "7385727e": 484, "739": 437, "7395744e": 484, "739e": 67, "73e": [480, 502], "74": [450, 504], "740": 437, "742": 488, "743e": [451, 480], "74427": 465, "74465974e": 484, "74479": 459, "745098039215687": 469, "74542e": 450, "746": 437, "7471700e": 484, "7479085e": 484, "748": 480, "748259": 463, "74989420933": 482, "7499485121887": 474, "75": [67, 373, 447, 451, 455, 504], "750": 580, "751643891117176": 502, "75267735": 504, "753": [437, 456], "7537086e": 484, "754": [437, 494], "75408483": 504, "755": [449, 459, 462], "7555": 485, "7559": 504, "756": 480, "7567": 450, "7580410e": 484, "759": 437, "7596682e": 484, "75e": [480, 503], "76": [466, 477, 486], "7613": 416, "761c": 28, "762": 437, "762199399999986": 542, "763": 437, "7637308880733709": 490, "7638": 459, "763e": 459, "76419591747674": 474, "7647": 504, "764705882352942": 469, "76473": 459, "7652512e": 484, "7652e": 457, "766": [437, 459], "7660168382": 480, "766d": 493, "767": 437, "76739": 480, "768000": [102, 481], "768048": 97, "7681656e": 484, "76837444": 475, "7684028": 504, "7692170e": 484, "76e": 488, "770": 67, "771667": 496, "77174": 459, "7718272408581743": 305, "771e": 480, "772": [437, 450], "77206": 504, "77218": 459, "773": 480, "7733e": [451, 480], "77351": 459, "774": [437, 471], "7743835449219": 455, "774e": 480, "775": [67, 488], "7752246942468283": 465, "7755386e": 484, "7760": 504, "7763307219821931": 305, "7765957e": 484, "77678": 450, "7769775": 493, "777": [437, 449, 470], "7771617763704126": 305, "77751797": 97, "777e": [67, 453], "777l": 35, "778": [437, 455, 480], "77827941": 486, "778279410038923": 486, "779": [456, 480], "7796942": 504, "779e": 455, "77e": [458, 480], "78": [486, 487, 495, 503], "780": [31, 125], "7800e": 455, "7804888e": 484, "78083": [141, 142], "780e": 125, "78181": 142, "78188": 459, "78188096": 97, "782": 494, "7827941": 486, "78279410038923": 486, "783": [437, 480, 504], "78332719": 465, "78333": 465, "783587001383003": 493, "783e": 465, "784": [438, 456], "7843137254901955": 469, "78499999999997": 538, "785": 538, "7853981633974483": 571, "787": [67, 173], "787169465401243e": 472, "7875405607868806": 490, "7876233e": 484, "788": 480, "7887840e": 484, "788e": 480, "789": 437, "78910994": 97, "7894": 465, "78952750835169": 474, "78e": 488, "79": [452, 480], "790": 437, "791": 438, "7913e": 455, "7922": 450, "793": [438, 459], "794": 482, "7941697": 482, "79432823": 489, "7943282347": 482, "79469899": 465, "79470": 465, "794e": 459, "796": [438, 488], "797": 438, "7972": 485, "798": [438, 449, 497], "798218": 450, "799": 455, "7990194e": 484, "7997221e": 484, "799999952316284": 480, "7c": 486, "7d": 480, "7e": [480, 488, 489], "7e955f": 419, "7gy6iud8": 477, "8": [17, 18, 21, 22, 24, 25, 27, 38, 40, 50, 67, 87, 89, 91, 102, 105, 109, 110, 111, 116, 128, 142, 147, 148, 197, 204, 237, 239, 307, 380, 384, 387, 388, 397, 420, 421, 424, 426, 427, 431, 432, 433, 436, 437, 438, 441, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 511, 513, 522, 527, 531, 535, 544, 555, 563, 579], "80": [176, 457, 458, 459, 481, 486, 494, 527, 554, 563], "800371732421134": 474, "800932": 480, "801": [504, 527], "801668796295": 480, "802": [488, 504], "803": 455, "8031431e": 484, "8037638e": 484, "803921568627494": 469, "804": 488, "804492": 471, "80492": 142, "80571": 141, "8062607e": 484, "80683246": 484, "807": [459, 474, 542], "8071": 459, "807201": 504, "8075": [480, 504], "8075185": 480, "8084e": 463, "808687936570502e": 483, "80871364": 97, "8090746": 493, "809505": 480, "80982039": 484, "80e": 451, "81": [427, 451, 472, 544], "810": [438, 480], "810000": 471, "8100e": 451, "810e": 480, "811": 438, "811246": 566, "8115337251905373e": 483, "812": [438, 449, 564], "812075194992371e": 483, "8122169596532167e": 483, "8122425483643125e": 483, "8122e": 483, "812358724314062e": 483, "8129257829574434e": 483, "812951371538087e": 483, "813": 438, "814": 438, "8150": 504, "8157971601581226e": 483, "816": 438, "8160964882165554": 305, "81699e": 450, "816e": 480, "818388e": 504, "81847286": 475, "818e": 453, "819": 480, "81e": 544, "82": [67, 419, 463, 480, 503, 531], "820": 438, "8205513": 493, "820562952023891": 305, "820734654694367e": 477, "8216216699063": 474, "8222980e": 484, "823": 455, "82352941176471": 469, "824": [137, 438, 488], "8241471833009617": 490, "825": [438, 449, 450, 466, 473, 476, 480], "8256": 504, "826": 438, "826414166666": 94, "827": 438, "8272": 506, "82739": 459, "827e": 142, "828": 474, "8290458e": 484, "8293": 504, "82946153": 504, "82e": 464, "82rrtsym": 477, "83": [30, 67, 83, 85, 94, 102, 105, 109, 110, 173, 176, 191, 192, 201, 204, 455, 456, 457, 459, 464, 472, 481, 485, 486, 487, 495, 496, 502, 503, 522, 525, 527, 528, 531], "830": 438, "8300": 504, "831": 438, "832": [438, 449, 466, 470, 502, 505], "83242471": 484, "833": [438, 456, 459], "833333333336": 475, "833641627862": 474, "834": 438, "8341884287660133": 490, "8349780e": 484, "835": 438, "835e": [456, 465], "835fals": 453, "836": [438, 449, 454, 455, 475, 480], "836731": 480, "8369650e": 484, "837": [438, 488], "8377268e": 484, "838": [449, 459, 470], "8383396349722769": 305, "84": [24, 142, 419, 449, 455, 457, 465, 480, 488, 531], "840": [438, 459], "841": 480, "841591": 563, "84196311": 97, "842": [438, 480], "84233": 459, "842x": [135, 144], "843": [59, 450, 475], "843137254902004": 469, "843457": 557, "843863242310971e": 502, "843e": 67, "8441040e": 484, "844770648146": 94, "8449575657133206": 305, "845": 439, "84529": 480, "8455480e": 484, "845693": 450, "846": [459, 480, 579], "847": 438, "8475576e": 484, "8475650e": 484, "84e": 463, "85": [87, 91, 445, 465, 535, 536], "851": 438, "85157506": 504, "8515948e": 484, "85188496e": 484, "85202": 504, "85287": 494, "852e": 480, "854": 438, "854166666664": 475, "85416667": 473, "85469291": 97, "855": 438, "85527": 465, "85527359": 465, "8555500e": 484, "85624": 460, "85625": 460, "8568": 504, "856e": 480, "8570719e": 484, "85722435185": 480, "858": 438, "858e": 480, "859": [438, 455], "85900": 465, "85900392": 465, "85925": 504, "8593054": 480, "859e": 459, "85e": 480, "86": [453, 455, 456, 459, 486, 504, 515], "860": 480, "861": 504, "86111111": 473, "861150": 453, "8613613e": 484, "86178": 141, "8620": 471, "8623": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "862745098039234": 469, "864": [438, 497, 504], "865": [438, 459], "86676": 494, "8669": 450, "8672": 465, "86793518066406": 452, "868": [438, 480], "86831929": 97, "8699": 450, "8699165e": 484, "87": [67, 465, 486], "870": [67, 438], "8704": 459, "871": 438, "871730083414263e": 477, "872": [438, 459], "873": 456, "8733348": 493, "8736082200157": 466, "873659477745188": 490, "874": 452, "875": 438, "8750e": 471, "876": 488, "87621184": 461, "8769240e": 484, "876e": 459, "87710186": 97, "877563": 480, "878": [480, 488], "878617": 555, "87897": 465, "87897418": 465, "8799800e": 484, "87e": [21, 471], "88": [419, 441, 457, 465, 466, 474, 477, 480, 486, 504], "880e": 459, "881": [438, 450, 459], "8815212313941426": 490, "882": 67, "882352941176466": 469, "883": 438, "8834862e": 484, "883e": 67, "884": 438, "88470839": 489, "885": 438, "886": 480, "8865": 504, "88781": 459, "888": 438, "8885138e": 484, "889": 480, "8893600e": 484, "8899": 471, "88e": [453, 480], "89": [33, 486], "8908866e": 484, "8909e": 474, "890e": 67, "892": [449, 454, 488], "89243456": 504, "8926": 504, "89287": 450, "893": 438, "894": 453, "8943121e": 484, "89492144e": 483, "895": 475, "8954039e": 484, "89595846": 489, "89709472": 504, "898": 438, "8986348363207728": 490, "89873": 465, "8989213": 465, "898e": [459, 480], "899": 67, "8999": 465, "899a": 280, "89e": 481, "8e": [453, 463, 466, 468, 488, 494, 563], "9": [31, 33, 35, 67, 83, 87, 91, 141, 197, 209, 237, 239, 337, 344, 377, 384, 385, 389, 397, 416, 422, 424, 435, 438, 440, 443, 445, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 530, 537, 541, 542, 543, 550, 566, 574, 579], "90": [57, 67, 403, 458, 461, 464, 465, 480, 486, 489, 506], "900": 480, "9002269877996247": 475, "900269": 484, "901527": 456, "9023670e": 484, "90242058e": 481, "9032163": 86, "904": 504, "905": 480, "9053655e": 484, "9053906e": 484, "906": [438, 474, 480], "90605275e": 494, "90677811e": 482, "90685": 459, "907": 480, "9074812e": 484, "9077294": 493, "90e": [102, 456, 463, 481], "91": [458, 486, 491, 531], "911": 438, "911552434768802e": 472, "912": 480, "912525e": 504, "912779907405": 480, "913196574074": 472, "913e": 459, "914": 67, "915": 480, "91507": [102, 481], "91612243652344": 452, "9163195e": 484, "91719": 481, "918": 67, "918365": 480, "919": 438, "919e": 480, "91e": 488, "92": [142, 458, 459, 486, 493], "920": 455, "92052435e": 482, "9205875e": 484, "921": 456, "9215375e": 484, "92234009259": [416, 472], "923891": 559, "924": 456, "9240e": 489, "92490": 459, "925106": 465, "925626": 463, "925886": 456, "9269494e": 484, "9277492e": 484, "928": 480, "9280475e": 484, "929": [449, 450, 456, 491, 492], "92960065298276": 502, "93": [67, 123, 125, 458, 459, 486, 493], "93026": 480, "9303": [480, 504], "931": 303, "93128e": 450, "932": 438, "93271046296": 472, "933": 438, "9332549000000": 504, "933632": 463, "9343": 450, "935826709880043": 478, "93702": 494, "9382336444241555": 490, "938596": 540, "938e": [465, 480], "939": [291, 297], "9391360e": 484, "93988308": 97, "93e": 480, "94": [458, 480, 486, 493, 502, 504], "940e": 480, "940fals": 453, "941": [449, 454], "94111838": 97, "941176470588236": 469, "94186555556": [416, 472], "943": [449, 470], "943282347242818": 502, "943811": 572, "944060876": 482, "9441e": 460, "9453950989269149": 490, "945959": 546, "9462": 465, "946923": 274, "94722599": 465, "94723": 465, "947446": 568, "947e": 459, "948683": 450, "9489822e": 484, "949": 488, "9499210e": 484, "94e": [465, 480], "95": [33, 67, 154, 160, 162, 163, 164, 166, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 458, 459, 465, 471, 474, 480, 481, 483, 486, 487, 493, 535, 580], "950": [438, 543], "9500979841335693": 305, "95024543e": 483, "950e": 455, "95100371070536": 474, "952": 67, "9529719e": 484, "953": 488, "95421509259": 472, "95451985e": 125, "9546285068162436": 490, "95615": 450, "9569e": 474, "957": 67, "9580e": 457, "95883": 504, "959198": 480, "959d": [52, 53], "96": [419, 451, 458, 481, 486, 544], "9606540e": 484, "960784313725491": 469, "9608912e": 484, "9619812963": 472, "963": [449, 492], "96374320": 461, "9646e": 474, "966": 438, "96602": 460, "966320200775": 474, "967216": 538, "967546": 459, "9677107409819438": 305, "968": [455, 465], "96814": 504, "96833546296": [480, 494], "968488": 303, "969": [449, 469, 470, 480], "9692e": 451, "96e": 453, "96r": 486, "97": [458, 480, 484, 490, 503], "97003": 504, "97054": 459, "970e": 480, "97116": 465, "9721952295357764e": 477, "973": 480, "9730e": 464, "97369425926": 472, "974e": 480, "975": 438, "97529": 141, "97596": 459, "976": 438, "97749": 465, "97749371": 465, "9776920e": 484, "979": [67, 438, 449, 481, 486, 492], "97934": 459, "97978": 83, "97e": 480, "98": [83, 347, 452, 457, 458, 459, 463, 472, 474, 484, 502], "980": [67, 449, 454], "9803921568627443": 469, "98049": 459, "98149518519": 472, "9816452e": 484, "982075849517389e": 489, "98258": 459, "9833462074166": 480, "9834338e": 484, "98359211196148547": 465, "98429": 459, "9845": 450, "9847406e": 484, "984e": 459, "985": [438, 453], "985502122122975": 490, "9868440049211211": 502, "987431": 556, "9876": 450, "98772": 141, "988": [438, 480, 488], "988409870698051e": 52, "9890": 504, "98e": 480, "99": [347, 458, 459, 460, 471, 482, 503, 504], "99004": 142, "991": 480, "9910796e": 484, "9912648e": 484, "9912712e": 484, "9928e": 474, "993": 452, "9931": 504, "994": 438, "99467": 142, "994e": 480, "995": 488, "9952623149688797": 502, "996": 471, "9965e": 471, "9969731e": 484, "997": 438, "9977859e": 484, "9978": 504, "998": 466, "99848e": 494, "99878762e": 482, "999": [50, 163, 166, 480], "99919925926": 239, "99993896484375": 455, "9999912037958": 465, "999999": 480, "99999994": 86, "9999999995": 480, "9999999997835": 452, "99999999999545": 477, "999999999997": 467, "9999999999977": 480, "9999999999978": 473, "9999999999998": 480, "99999999999994": 480, "99999999999999": [458, 480], "99e": 480, "9e": [451, 453, 480, 563], "9zvmyzbj": 463, "A": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 104, 105, 108, 109, 110, 123, 124, 125, 133, 136, 141, 142, 191, 192, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 214, 215, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 271, 272, 273, 274, 275, 276, 288, 290, 298, 299, 307, 316, 369, 370, 371, 373, 374, 381, 383, 385, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 401, 403, 404, 405, 406, 407, 408, 409, 418, 420, 424, 425, 426, 427, 428, 431, 433, 434, 437, 438, 439, 440, 442, 444, 445, 446, 447, 450, 452, 457, 459, 463, 465, 466, 469, 472, 473, 474, 475, 478, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 501, 503, 504, 506, 514, 515, 516, 518, 519, 527, 528, 530, 531, 533, 535, 572, 573, 576, 577, 580], "AND": [487, 488], "AS": 409, "And": [280, 380, 383, 398, 400, 406, 411, 452, 453, 455, 456, 463, 467, 469, 474, 481, 483, 486, 487, 489, 493, 502, 503, 504], "As": [83, 307, 337, 380, 381, 383, 388, 392, 393, 394, 396, 398, 406, 407, 409, 416, 421, 440, 450, 451, 452, 455, 456, 457, 459, 460, 461, 465, 467, 468, 472, 473, 474, 477, 478, 479, 480, 481, 483, 485, 486, 489, 491, 494, 496, 502, 504, 518, 527, 580], "At": [263, 394, 397, 406, 407, 410, 424, 467, 486, 493, 523, 576], "But": [380, 385, 388, 394, 399, 407, 410, 416, 440, 455, 456, 483, 491, 493, 502, 578], "By": [19, 20, 26, 50, 65, 87, 91, 101, 102, 105, 109, 110, 122, 126, 130, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 170, 173, 180, 190, 192, 193, 194, 196, 202, 205, 206, 218, 219, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 377, 380, 406, 407, 408, 425, 426, 428, 467, 468, 473, 478, 483, 486, 491, 503, 525, 529, 535, 536, 537, 581], "FOR": [136, 298], "For": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 77, 82, 87, 88, 91, 95, 99, 100, 101, 102, 105, 109, 110, 118, 120, 122, 123, 125, 126, 127, 130, 131, 132, 133, 150, 151, 152, 158, 163, 166, 173, 178, 179, 180, 183, 184, 186, 187, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 230, 231, 234, 235, 236, 237, 238, 239, 240, 242, 247, 248, 249, 250, 251, 252, 254, 255, 260, 261, 262, 264, 265, 267, 268, 269, 271, 275, 276, 289, 291, 295, 297, 304, 310, 325, 379, 380, 381, 383, 385, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 403, 405, 406, 407, 408, 410, 411, 415, 416, 418, 421, 422, 423, 425, 426, 427, 428, 431, 438, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 467, 469, 471, 472, 473, 474, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 503, 504, 506, 513, 514, 516, 518, 528, 530, 531, 536, 541, 573, 577, 578, 580, 581, 582], "IN": [92, 100, 247], "If": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 93, 94, 96, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 120, 122, 123, 124, 125, 126, 128, 130, 133, 136, 140, 141, 143, 145, 150, 151, 152, 158, 161, 163, 166, 167, 169, 170, 173, 175, 176, 179, 180, 183, 184, 186, 187, 188, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 211, 214, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 287, 304, 307, 319, 320, 325, 366, 369, 373, 374, 375, 376, 380, 381, 382, 383, 385, 387, 388, 393, 394, 396, 397, 398, 401, 402, 403, 405, 406, 409, 410, 411, 412, 413, 414, 415, 416, 420, 421, 422, 439, 440, 441, 450, 452, 453, 455, 457, 458, 460, 463, 465, 468, 471, 472, 473, 474, 475, 477, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 504, 516, 518, 529, 531, 537, 539, 552, 578, 579, 580, 581], "In": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 77, 83, 84, 87, 88, 90, 91, 94, 101, 103, 104, 108, 124, 125, 150, 169, 192, 194, 197, 200, 206, 214, 216, 275, 287, 320, 380, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 416, 421, 422, 423, 424, 425, 426, 427, 428, 431, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 461, 463, 464, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 494, 495, 502, 503, 504, 514, 516, 518, 523, 526, 527, 528, 530, 531, 532, 535, 536, 541, 554, 573, 576, 577, 578, 579, 580, 581, 582], "It": [15, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 102, 105, 109, 110, 111, 114, 116, 123, 141, 150, 154, 161, 162, 163, 164, 166, 176, 179, 183, 184, 189, 193, 194, 196, 198, 201, 202, 205, 206, 208, 218, 219, 222, 225, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 259, 263, 264, 266, 267, 268, 269, 272, 276, 289, 293, 295, 296, 315, 329, 334, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 404, 405, 406, 407, 408, 410, 411, 415, 417, 421, 422, 423, 424, 428, 431, 433, 434, 435, 440, 442, 444, 445, 446, 447, 450, 456, 461, 464, 466, 468, 471, 475, 478, 480, 481, 482, 483, 485, 486, 487, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 507, 514, 515, 517, 518, 522, 523, 525, 527, 531, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 575, 576, 577, 578, 579, 580, 582], "Its": [392, 406, 407, 431, 433, 469, 473, 491, 503, 520, 521, 522, 524], "NOT": 487, "No": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 391, 401, 404, 405, 439, 441, 448, 469, 477, 480, 483, 485, 486, 504], "Not": [105, 109, 110, 195, 201, 203, 388, 563], "ON": [102, 105, 132, 180, 181, 182, 190, 378, 386, 433, 447, 450, 451, 455, 458, 461, 465, 472, 473, 475, 483, 485, 491, 518, 527, 579, 581], "OR": [102, 109, 481, 487, 488], "Of": [380, 383, 416, 463, 481, 486, 494, 578, 581], "On": [59, 168, 174, 175, 178, 289, 296, 303, 380, 381, 386, 388, 395, 396, 409, 411, 412, 413, 414, 435, 463, 464, 483, 498, 580], "One": [31, 32, 37, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 101, 102, 105, 109, 110, 224, 233, 247, 333, 380, 381, 386, 388, 389, 390, 391, 394, 396, 397, 398, 406, 445, 452, 456, 461, 472, 485, 486, 487, 502, 504, 527, 531, 554, 578, 580], "Ones": 307, "Or": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 381, 399, 400, 456, 463, 477, 481, 482, 486, 493, 494, 516], "Such": [392, 484, 522], "THE": [136, 298], "That": [16, 19, 20, 84, 90, 104, 124, 211, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 381, 385, 394, 397, 400, 483, 504, 578], "The": [11, 15, 16, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 52, 53, 57, 59, 63, 69, 77, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 170, 174, 175, 179, 180, 183, 184, 185, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 200, 201, 202, 203, 204, 205, 206, 210, 211, 212, 215, 217, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 279, 280, 286, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 303, 307, 319, 325, 327, 328, 331, 347, 363, 364, 366, 368, 369, 370, 371, 373, 374, 375, 376, 377, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 412, 413, 414, 417, 420, 421, 423, 424, 425, 426, 427, 428, 431, 433, 434, 435, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 498, 502, 503, 504, 506, 507, 508, 509, 513, 514, 516, 517, 518, 520, 521, 522, 523, 524, 525, 526, 528, 529, 530, 531, 532, 535, 537, 539, 540, 541, 544, 550, 552, 554, 563, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583], "Their": 487, "Then": [67, 102, 107, 109, 383, 385, 390, 393, 395, 396, 397, 398, 404, 413, 452, 455, 463, 464, 467, 471, 472, 483, 487, 489, 491, 503], "There": [87, 91, 141, 380, 381, 385, 386, 387, 389, 394, 395, 396, 397, 398, 399, 400, 401, 404, 407, 410, 412, 413, 439, 447, 465, 469, 478, 479, 480, 481, 483, 484, 485, 487, 488, 495, 506, 514, 515, 518, 531], "These": [77, 95, 198, 279, 380, 381, 385, 386, 391, 393, 394, 395, 396, 400, 401, 406, 423, 425, 426, 427, 431, 439, 445, 450, 464, 466, 467, 474, 478, 479, 481, 484, 486, 489, 490, 495, 498, 506, 523, 528, 530, 531, 579, 580, 581], "To": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 100, 104, 108, 122, 124, 126, 130, 192, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 279, 289, 370, 371, 382, 383, 387, 388, 391, 392, 393, 395, 396, 401, 402, 403, 404, 405, 406, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 426, 427, 431, 433, 439, 440, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 460, 461, 463, 465, 466, 467, 468, 469, 471, 472, 473, 474, 477, 478, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 498, 502, 504, 514, 515, 516, 519, 523, 525, 527, 528, 535, 576, 578, 579, 580], "With": [83, 380, 389, 390, 406, 427, 440, 491, 514, 580], "_": [102, 109, 128, 235, 254, 380, 394, 404, 406, 455, 458, 461, 479, 480, 483, 488, 491, 514, 527], "_0": [50, 51], "_1": [105, 110, 515], "_2": [105, 110], "__all__": 380, "__array__": 307, "__array_ufunc__": [457, 467, 496, 566], "__attributes__": [87, 91], "__call__": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 278, 319, 386, 391, 408, 427], "__class__": [380, 404, 479, 512], "__dict__": [16, 84, 90, 104, 124, 380], "__enter__": 358, "__eq__": 433, "__exit__": 358, "__fields__": 407, "__getitem__": [390, 391, 392, 447], "__init__": [16, 84, 90, 104, 124, 201, 275, 380, 386, 392, 404, 442], "__int__": 325, "__len__": 390, "__main__": [258, 380, 491, 500, 578], "__name__": [380, 461, 472, 473, 474, 477, 479, 500, 512, 578], "__neq__": 433, "__pydantic_extra__": [16, 84, 90, 104, 124], "__pydantic_fields_set__": [16, 84, 90, 104, 124], "__repr__": [380, 426, 440], "__str__": [380, 392, 407, 423], "__subclasses__": 479, "__version__": 415, "_basemodel__context": [16, 84, 90, 104, 124], "_build": [381, 410, 518], "_check_interv": 445, "_compute_flux_spati": 431, "_covari": [224, 247], "_data": 404, "_dataset": 381, "_dom_class": [463, 471, 486, 502, 503], "_energy_t": 404, "_err": 477, "_errn": [126, 127, 130, 131], "_errp": [126, 127, 130, 131], "_evaluate_timevar_sourc": 445, "_f_cash_root_cython": 302, "_factr": 483, "_fields_set": [16, 84, 90, 104, 124], "_i": 128, "_k": [102, 109, 514], "_l": 514, "_lat": 380, "_lon": 380, "_map": 373, "_model": 123, "_new_attribut": 380, "_old_attribut": 380, "_parameter_units_for_data_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "_parent_namespace_depth": [16, 84, 90, 104, 124], "_phi": 380, "_prior": 408, "_propagate_error": 430, "_reco": 380, "_repr_html_": 380, "_row_index": 69, "_sample_coord_time_energi": 445, "_scan": 483, "_time_group": 404, "_time_t": 404, "_true": 380, "_type": [408, 491], "_types_namespac": [16, 84, 90, 104, 124], "_was_": [16, 84, 90, 104, 124], "_wc": 542, "_weight": 408, "a_": [105, 110, 153, 520, 523, 580], "a_off": 580, "a_on": 580, "a_scan": 491, "aa": [87, 91, 307, 406], "aaguasca": 442, "ab": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 64, 65, 83, 88, 118, 135, 136, 144, 153, 206, 214, 216, 244, 279, 280, 289, 296, 298, 479, 480], "abc": [18, 56, 99, 121, 172, 191, 196, 485], "abcmeta": 485, "abdalla2018": [527, 528, 577], "abeysekara": 59, "abil": [404, 491], "abl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 390, 395, 398, 452, 471, 472, 473, 491, 498, 578], "abl7brxx": 477, "about": [11, 13, 16, 84, 90, 104, 124, 148, 153, 234, 239, 337, 380, 383, 385, 389, 396, 397, 399, 400, 401, 405, 406, 408, 409, 410, 415, 416, 435, 436, 440, 441, 442, 451, 453, 459, 460, 461, 463, 464, 465, 467, 480, 484, 486, 489, 494, 503, 504, 514, 515, 578, 581], "abov": [29, 44, 52, 53, 83, 122, 124, 125, 128, 132, 133, 141, 142, 168, 203, 369, 371, 380, 381, 386, 389, 390, 392, 394, 396, 397, 398, 399, 400, 404, 412, 413, 416, 450, 459, 465, 467, 468, 469, 472, 475, 477, 482, 483, 485, 486, 487, 489, 490, 491, 493, 494, 495, 502, 512, 514, 515, 522, 525, 531, 577, 578, 579, 580, 581], "abramowski": 153, "abruptli": [380, 405], "abs_path": 315, "absenc": [395, 461, 485, 487, 527, 579], "absolut": [82, 91, 106, 147, 148, 149, 150, 153, 155, 157, 160, 165, 193, 194, 196, 198, 202, 205, 206, 311, 337, 357, 361, 516], "absolute_tim": 582, "absopt": 398, "absorb": [276, 390, 403, 438, 544], "absorbedspectralmodel": [425, 438], "absorbt": 403, "absorpt": [226, 398, 428, 438, 447, 449, 454, 498, 532, 564], "abstract": [56, 57, 59, 99, 121, 136, 164, 172, 177, 191, 193, 196, 205, 289, 298, 391, 427, 530], "abstractsetintstr": [16, 84, 90, 104, 124], "acada": 406, "academ": [137, 303], "accept": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 105, 106, 110, 122, 123, 125, 168, 185, 190, 192, 193, 194, 196, 204, 205, 206, 224, 247, 290, 378, 384, 385, 386, 387, 388, 389, 392, 393, 394, 396, 397, 398, 399, 400, 401, 403, 405, 406, 407, 408, 432, 436, 445, 447, 450, 451, 456, 457, 458, 461, 465, 468, 481, 485, 486, 494, 514, 530, 536, 554, 579, 580], "acceptance_off": [105, 106, 110, 122, 123, 125, 168, 178, 392, 450, 452, 455, 458, 461, 514, 580], "acceptance_on": [122, 123, 125], "acceptang": 122, "access": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 58, 60, 61, 62, 64, 65, 66, 67, 82, 83, 87, 91, 102, 161, 191, 192, 201, 204, 296, 315, 380, 388, 389, 390, 391, 393, 396, 404, 410, 412, 415, 420, 421, 428, 435, 436, 438, 439, 445, 446, 453, 455, 456, 457, 463, 477, 480, 483, 484, 488, 489, 493, 496, 502, 503, 504, 513, 518, 529, 530, 531, 576], "accessor": 486, "accident": [494, 578], "accomplish": 482, "accord": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 53, 72, 87, 91, 102, 105, 109, 110, 118, 123, 145, 151, 161, 168, 192, 198, 214, 216, 304, 369, 390, 391, 394, 395, 398, 404, 406, 425, 434, 446, 461, 472, 481, 485, 489, 490, 498, 514, 515, 518], "accordingli": [392, 406, 422, 428, 487], "account": [102, 105, 109, 110, 122, 123, 136, 170, 186, 224, 247, 263, 288, 290, 296, 355, 388, 393, 396, 404, 406, 427, 444, 446, 449, 450, 452, 454, 455, 457, 461, 463, 469, 474, 475, 482, 483, 485, 487, 498, 503, 514, 516, 579, 580], "accur": [134, 143, 398, 441, 463, 483, 525], "accuraci": [394, 483, 518], "aceptance_off": 392, "acero": [398, 421, 423, 425, 428, 431, 433, 438, 440, 446, 447], "achiev": [16, 84, 90, 104, 118, 124, 168, 370, 371, 380, 389, 390, 391, 392, 393, 394, 396, 403, 406, 428, 486, 489, 490, 528], "acknowledg": [383, 406, 417], "acquir": 416, "acquisit": 577, "across": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 118, 380, 389, 392, 410, 466, 474, 488, 494, 514, 530, 539, 577], "act": [91, 396, 488, 541], "action": [168, 385, 390, 396, 406, 409, 410, 431, 474], "activ": [91, 296, 383, 397, 411, 412, 414, 415, 416, 425, 442, 478, 518], "actual": [181, 355, 356, 357, 379, 380, 381, 385, 389, 391, 393, 395, 396, 404, 405, 407, 409, 458, 468, 471, 473, 481, 482, 483, 485, 486, 487, 491, 494, 495, 503, 504, 525, 527, 577, 578, 580], "ad": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 59, 82, 83, 84, 87, 90, 91, 102, 104, 105, 109, 110, 114, 115, 117, 124, 125, 193, 194, 196, 201, 202, 205, 206, 380, 381, 383, 385, 386, 388, 389, 390, 392, 393, 394, 395, 396, 397, 399, 400, 404, 406, 420, 421, 422, 424, 425, 426, 428, 431, 433, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 457, 461, 463, 464, 484, 485, 488, 489, 490, 491, 495, 514, 531, 581], "adapt": [118, 168, 211, 389, 390, 393, 394, 399, 400, 402, 403, 406, 409, 416, 421, 422, 424, 425, 426, 428, 429, 431, 434, 437, 438, 440, 442, 444, 445, 446, 447, 481, 484, 486, 487, 525, 528], "adaptiveringbackgroundestim": [178, 386], "adaptiveringbackgroundmak": [171, 425, 528], "adass": 400, "add": [13, 15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 79, 84, 87, 88, 90, 91, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 123, 124, 125, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 170, 193, 194, 196, 200, 202, 205, 206, 212, 224, 247, 263, 304, 349, 368, 377, 379, 380, 381, 383, 385, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 403, 404, 406, 408, 409, 412, 414, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 458, 463, 464, 467, 471, 472, 475, 481, 484, 485, 486, 487, 489, 491, 493, 504, 508, 509, 518, 531, 546, 578, 581], "add_artist": [489, 535, 536], "add_cbar": [102, 105, 109, 110, 125, 147, 148, 150, 153, 154, 155, 160, 161, 162, 164, 193, 194, 196, 202, 205, 206, 368, 459, 460, 461, 463, 465, 471, 475, 479, 481, 484, 485, 486, 488, 489, 494, 495, 502, 503, 531, 534, 535, 536, 539, 540, 542], "add_column": [87, 91], "add_enabled_unit": [450, 458, 460, 463, 465, 471, 474, 493], "add_index": [87, 91], "add_loc": 380, "add_row": [87, 91], "add_subplot": 368, "addit": [16, 19, 20, 26, 43, 84, 87, 90, 91, 102, 104, 105, 109, 110, 114, 122, 124, 126, 131, 165, 193, 194, 196, 199, 202, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 383, 384, 385, 389, 390, 391, 392, 394, 395, 396, 397, 399, 400, 401, 404, 405, 406, 407, 410, 411, 412, 413, 422, 423, 425, 427, 428, 431, 432, 439, 440, 442, 445, 446, 447, 453, 457, 469, 475, 480, 481, 482, 483, 486, 488, 489, 491, 493, 494, 503, 504, 514, 516, 518, 525, 530, 531, 575, 581], "addition": [131, 392, 481, 483, 486, 488, 489], "address": [389, 392, 393, 394, 396, 406, 491, 517], "adequ": 201, "adher": 383, "adjac": [145, 198, 431, 473, 486, 527], "adjust": [16, 67, 193, 194, 196, 202, 205, 206, 389, 391, 403, 447, 456, 478, 481, 482, 489, 490, 502, 518, 525, 577], "admit": 400, "adonath": 386, "adopt": [37, 393, 396, 401, 457, 467, 468, 479], "adsab": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 244, 279, 280, 289, 296, 298], "adult": 380, "advanc": [392, 396, 397, 400, 408, 412, 484, 486, 518, 577, 578], "advantag": [388, 394, 397, 404, 431, 486, 491, 554, 578], "advanteg": 392, "advertis": 409, "advic": [380, 406], "advis": [381, 406, 483, 491, 498], "advoc": 380, "aeff": [16, 82, 87, 88, 105, 110, 153, 179, 187, 390, 392, 393, 427, 428, 452, 455, 456, 457, 460, 461, 463, 465, 473, 477, 484, 485, 493, 495, 496, 502, 503, 520, 525, 527, 528, 577], "aeff2d": 152, "aeff_2d": [82, 87, 153, 493, 496], "aeff_3d": 484, "aeff_ev": 484, "aeff_new": 484, "aeff_perc": [179, 452, 455, 456, 465, 473, 477, 485, 495, 527], "aegi": 226, "af": 376, "affect": [136, 380, 388, 392, 394, 405, 422, 423, 434, 443, 451, 491], "affili": [394, 406, 442], "afmhot": [488, 504], "aforement": 406, "after": [16, 45, 50, 51, 52, 53, 84, 90, 91, 100, 102, 104, 105, 109, 124, 163, 166, 296, 319, 337, 361, 364, 380, 383, 385, 388, 389, 391, 393, 394, 395, 396, 398, 399, 400, 402, 403, 404, 405, 406, 407, 409, 410, 411, 416, 420, 427, 429, 430, 431, 433, 439, 441, 442, 443, 453, 461, 463, 473, 477, 478, 483, 486, 488, 493, 495, 496, 518, 578, 582], "ag": [20, 43, 44, 45, 50, 51, 52, 53, 54, 311, 380, 508], "again": [102, 105, 109, 110, 163, 383, 390, 392, 394, 396, 401, 407, 411, 426, 427, 430, 437, 442, 453, 455, 456, 463, 468, 469, 486, 489, 491, 494, 502, 504, 531, 578], "against": [16, 84, 90, 104, 124, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 381, 383, 397, 403, 410, 480, 482, 494, 502, 513, 516], "agent": 396, "agglom": 13, "aggreg": 407, "agil": 393, "agn": [137, 294, 394, 455, 472, 474, 478, 493], "agnost": 483, "ago": 387, "agre": [195, 198, 383, 385, 394, 406], "agreement": [380, 383, 401, 475], "aguasca": [433, 442, 443, 444, 445, 447], "aharonian": 466, "ahead": [394, 420], "ahelp": 211, "aim": [380, 389, 390, 406, 463, 467, 479, 490, 506, 577], "air": 493, "ait": [192, 193, 194, 500], "aitoff": 394, "aj8ltp0w": 489, "aka": 504, "al": [26, 33, 59, 101, 136, 137, 153, 226, 295, 296, 298, 303, 390, 447, 459, 466, 478, 506, 577], "albert": 577, "albert2007": 577, "alexi": [428, 431], "algorithm": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 87, 91, 118, 133, 168, 211, 289, 380, 386, 392, 393, 394, 399, 407, 423, 428, 436, 437, 438, 447, 459, 478, 482, 483, 495, 516, 530, 576, 580], "alia": [16, 56, 84, 90, 104, 124, 383, 504], "alias": [16, 56, 84, 90, 104, 124], "align": [87, 91, 100, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 192, 193, 194, 196, 198, 202, 204, 205, 206, 380, 447, 484, 487, 489], "alisha": 433, "all": [6, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 87, 88, 89, 90, 91, 92, 95, 96, 100, 102, 103, 104, 105, 107, 108, 109, 110, 122, 123, 124, 125, 126, 130, 131, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 167, 173, 180, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 286, 352, 353, 354, 355, 356, 357, 367, 376, 379, 380, 381, 383, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 451, 452, 455, 456, 457, 460, 461, 463, 465, 466, 467, 471, 472, 474, 475, 477, 480, 481, 482, 483, 484, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 508, 514, 516, 518, 527, 529, 530, 531, 532, 554, 575, 578, 579, 580], "all_quant": [123, 125], "allclos": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 195, 196, 198, 202, 203, 205, 206, 355], "alloc": [194, 202, 206], "allow": [16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 84, 87, 90, 91, 104, 118, 123, 124, 125, 132, 133, 163, 166, 192, 197, 199, 330, 380, 381, 383, 385, 386, 387, 390, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 414, 422, 424, 425, 426, 427, 428, 431, 433, 440, 441, 442, 445, 447, 450, 455, 466, 474, 481, 482, 483, 484, 485, 486, 487, 503, 514, 516, 518, 525, 530, 531, 575, 576, 578, 583], "allow_extra": 197, "allow_pickl": [16, 84, 90, 104, 124], "allowed_channel": [26, 479], "allski": [83, 486], "alma": 399, "almeida": 428, "almost": [379, 381, 383, 394, 494, 504], "alon": 385, "along": [68, 101, 123, 125, 129, 145, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 164, 165, 193, 194, 196, 202, 204, 205, 206, 294, 295, 296, 298, 318, 319, 329, 339, 340, 389, 390, 404, 442, 445, 447, 460, 469, 480, 481, 484, 485, 488, 489, 515, 530, 531, 547, 577], "alpha": [21, 27, 28, 48, 102, 105, 109, 110, 122, 123, 125, 168, 190, 211, 229, 230, 240, 241, 242, 255, 290, 301, 304, 377, 378, 392, 403, 405, 431, 438, 447, 450, 451, 452, 453, 455, 457, 458, 461, 463, 464, 468, 475, 480, 483, 491, 493, 535, 544, 546, 548, 550, 552, 553, 554, 563, 569, 570, 579, 580, 581], "alpha_": [105, 110], "alpha_1": [105, 110], "alpha_2": [105, 110], "alpha_norm": [226, 403, 451, 544], "alphabet": [397, 406, 421, 422, 423, 424, 425, 426, 427, 428, 431], "alreadi": [15, 16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 124, 211, 271, 272, 273, 275, 380, 386, 387, 388, 391, 392, 393, 394, 395, 397, 400, 401, 402, 404, 407, 409, 410, 440, 451, 453, 457, 459, 461, 468, 475, 479, 480, 481, 486, 487, 488, 489, 493, 494, 495, 504, 506, 531, 542], "also": [15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 95, 118, 122, 123, 125, 126, 134, 135, 141, 143, 144, 165, 170, 176, 191, 198, 200, 201, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 287, 307, 315, 320, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 425, 426, 427, 428, 431, 439, 440, 441, 445, 450, 451, 452, 455, 456, 457, 458, 459, 461, 463, 465, 466, 467, 468, 469, 475, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 502, 503, 506, 514, 515, 516, 517, 518, 525, 527, 530, 531, 554, 557, 575, 577, 578, 579, 580, 582], "alt": [83, 85, 88, 94, 95, 380, 582], "alt_pnt": 91, "altaz": [83, 85, 94, 156, 380, 484, 582], "altaz_fram": [83, 94], "altaz_from_t": [83, 94], "altaz_interpol": 94, "altern": [82, 87, 91, 286, 379, 380, 383, 385, 389, 413, 431, 451, 455, 457, 459, 466, 480, 483, 484, 486, 488, 493, 514, 515, 578], "although": [380, 393, 394, 395, 397, 400, 404, 483, 493, 540, 541, 575, 582], "altitud": 452, "alwai": [77, 83, 87, 91, 150, 198, 201, 208, 214, 216, 232, 380, 381, 383, 386, 387, 388, 390, 391, 392, 394, 397, 405, 406, 413, 420, 427, 442, 443, 445, 458, 459, 463, 471, 479, 483, 485, 486, 488, 490, 491, 498, 516, 530, 531], "am": 389, "ambigu": [394, 439], "amend": 383, "among": [82, 87, 91, 102, 105, 109, 110, 134, 143, 396, 400, 401, 403, 408, 428, 483, 577], "amount": [387, 394, 408, 518], "amp": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 262, 571], "ampl_2": [154, 484], "ampl_3": [154, 484], "amplitud": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49, 68, 101, 126, 131, 133, 193, 194, 196, 205, 206, 211, 218, 225, 228, 230, 235, 242, 245, 252, 253, 254, 262, 264, 267, 268, 269, 280, 286, 299, 391, 392, 395, 403, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 488, 489, 493, 494, 502, 503, 504, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 548, 549, 551, 552, 554, 555, 556, 557, 559, 560, 561, 562, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "amplitude_err": 477, "amplitude_maximum_signific": 478, "amplitude_maximum_vari": 478, "amplitude_ref": 475, "an": [6, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 50, 66, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 101, 102, 103, 104, 105, 108, 109, 110, 111, 114, 116, 123, 124, 125, 126, 127, 128, 130, 131, 133, 140, 141, 142, 148, 150, 151, 152, 153, 155, 158, 161, 163, 165, 166, 169, 173, 176, 178, 181, 183, 184, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 282, 289, 294, 296, 305, 307, 311, 325, 336, 340, 358, 364, 370, 371, 373, 376, 379, 381, 383, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 411, 412, 413, 416, 417, 420, 421, 424, 425, 426, 427, 428, 431, 433, 434, 435, 438, 439, 440, 442, 443, 445, 446, 447, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 469, 471, 472, 473, 474, 475, 477, 478, 480, 482, 483, 485, 486, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 508, 513, 514, 515, 516, 518, 519, 520, 521, 522, 523, 524, 525, 527, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 577, 578, 579, 580, 581], "anaconda": [397, 411, 412], "analog": [87, 91, 193, 194, 196, 202, 205, 206, 531], "analogi": 401, "analys": [82, 379, 380, 389, 390, 391, 392, 394, 398, 400, 402, 403, 408, 416, 417, 423, 424, 425, 427, 428, 438, 440, 443, 455, 456, 463, 473, 474, 479, 480, 487, 489, 493, 494, 495, 502, 503, 506, 514, 578], "analysi": [6, 16, 57, 67, 70, 72, 74, 83, 102, 104, 105, 109, 110, 115, 117, 151, 152, 158, 163, 166, 175, 179, 379, 380, 381, 384, 390, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 407, 410, 411, 412, 413, 416, 417, 420, 421, 422, 424, 425, 426, 431, 433, 435, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 449, 451, 453, 454, 459, 460, 461, 462, 466, 467, 469, 470, 471, 473, 474, 476, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 503, 504, 506, 516, 518, 519, 523, 525, 526, 527, 528, 531, 557, 575, 577, 578, 580], "analysis3d": 441, "analysis_1": [449, 502, 505], "analysis_1d": 472, "analysis_2": [381, 449, 503, 505], "analysis_3d": [440, 449, 463, 470, 472], "analysis_joint": 463, "analysis_mwl": [449, 464, 470], "analysis_stack": 463, "analysisconfig": [15, 381, 456, 460, 461, 463, 472, 502], "analyt": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 153, 154, 162, 164, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 393, 398, 446, 447, 482, 484, 489, 516, 537, 581], "analyz": [136, 298, 390, 577], "andrea": 393, "andrew": 440, "angl": [16, 17, 18, 21, 22, 24, 25, 27, 33, 34, 38, 68, 83, 89, 91, 96, 102, 105, 115, 117, 118, 122, 129, 133, 147, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 169, 176, 177, 179, 181, 191, 192, 194, 199, 201, 204, 206, 207, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 279, 335, 367, 380, 386, 394, 396, 403, 407, 419, 421, 422, 423, 440, 447, 450, 452, 455, 458, 464, 467, 468, 473, 477, 480, 486, 487, 489, 490, 493, 494, 518, 523, 527, 530, 531, 535, 536, 537, 540, 541, 577], "angle_incr": 176, "angular": [23, 102, 105, 115, 117, 128, 151, 152, 158, 163, 166, 169, 194, 201, 204, 206, 225, 234, 237, 273, 311, 314, 380, 396, 444, 457, 468, 475, 523, 524, 577], "angular_extens": 41, "angular_s": 531, "angular_separ": [403, 444, 446, 489], "ani": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 87, 90, 91, 104, 120, 124, 130, 152, 175, 193, 194, 196, 201, 202, 204, 205, 206, 307, 330, 365, 379, 380, 381, 383, 385, 386, 387, 388, 391, 392, 393, 394, 395, 396, 397, 398, 399, 401, 403, 406, 407, 409, 412, 413, 414, 415, 416, 420, 421, 439, 440, 441, 446, 456, 465, 466, 469, 472, 473, 475, 477, 481, 485, 486, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 506, 515, 516, 528, 530, 531, 546, 578, 582], "ann": [23, 439], "anna": 380, "annihil": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 442, 506], "annoi": [380, 578], "annot": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 369, 407, 535], "announc": [380, 385, 387, 394, 396, 399, 401, 403, 405, 406, 409, 410], "annuli": [469, 531], "annulu": [127, 339, 531], "anonym": 383, "anoth": [19, 20, 26, 83, 86, 87, 91, 102, 105, 109, 110, 151, 152, 153, 158, 163, 165, 166, 195, 198, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 380, 394, 395, 396, 398, 400, 401, 404, 407, 411, 412, 414, 416, 425, 440, 475, 481, 486, 487, 489, 531, 578], "another_posit": 527, "answer": [483, 518], "anti": [486, 487], "anticip": 389, "anymor": 442, "anyon": [385, 387, 493], "anyth": [150, 396, 578], "anytim": [383, 422], "anywai": [383, 394], "anywher": [394, 397, 399, 514], "ap": [385, 397, 405], "apart": 395, "apertur": 577, "api": [232, 384, 386, 389, 390, 391, 392, 393, 394, 396, 399, 400, 401, 405, 406, 417, 418, 420, 421, 422, 423, 425, 426, 427, 428, 431, 435, 439, 440, 449, 452, 455, 456, 459, 465, 467, 473, 481, 486, 487, 488, 489, 492, 493, 494, 502, 504, 505, 516, 517, 525, 575, 576, 577, 578], "apj": [291, 297], "aplpi": 440, "apologis": [420, 421, 440], "app": [87, 91, 410, 416, 439], "appear": [87, 91, 380, 381, 388, 394, 407, 434, 445, 447, 480], "append": [87, 91, 92, 100, 146, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 247, 392, 393, 395, 426, 445, 452, 455, 457, 458, 463, 464, 465, 467, 473, 474, 475, 477, 481, 482, 483, 485, 488, 489, 490, 491, 527], "append_ax": [147, 148, 150, 153, 154, 155, 160, 162, 164, 206, 368], "appendix": [30, 133, 153, 244, 280, 299, 459], "appl": 416, "appli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 86, 87, 89, 91, 101, 102, 103, 105, 109, 110, 111, 115, 116, 117, 118, 122, 125, 126, 130, 133, 150, 151, 152, 158, 163, 165, 166, 170, 176, 179, 180, 193, 194, 196, 197, 201, 202, 204, 205, 206, 214, 216, 224, 232, 247, 263, 276, 287, 288, 289, 290, 319, 320, 365, 369, 377, 380, 386, 387, 390, 391, 393, 395, 398, 404, 405, 406, 428, 433, 438, 439, 440, 441, 445, 447, 450, 455, 457, 467, 473, 474, 475, 477, 481, 482, 485, 486, 487, 488, 489, 491, 493, 496, 503, 504, 516, 518, 525, 563, 576, 579], "applic": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 87, 91, 380, 391, 406, 408, 427, 478, 483, 530, 577], "apply_async": [327, 328], "apply_edisp": 446, "apply_hysteresis_threshold": 487, "apply_irf": [263, 427], "apply_mask": 199, "apply_psf": [391, 424], "apply_standard_scal": 96, "apply_threshold_sensit": 122, "apply_union": 208, "approach": [87, 91, 133, 380, 386, 388, 392, 396, 401, 404, 405, 407, 445, 450, 455, 485, 498, 577, 580], "appropri": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 192, 193, 194, 196, 205, 206, 307, 315, 381, 457, 461, 463, 477, 486, 578], "approv": [386, 387, 388], "approx": [52, 53], "approxim": [101, 133, 134, 143, 179, 180, 192, 193, 194, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 288, 290, 318, 391, 394, 422, 447, 450, 455, 483, 493, 516, 527, 536, 537, 540, 541], "appveyor": 436, "apr": [402, 418], "april": [400, 407, 427], "apt": 413, "ar": [6, 11, 15, 16, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 46, 57, 67, 70, 74, 77, 79, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 96, 100, 101, 102, 104, 105, 108, 109, 110, 112, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 173, 174, 179, 180, 181, 186, 190, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 210, 211, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 286, 289, 294, 298, 303, 307, 319, 325, 327, 339, 340, 355, 369, 371, 376, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 507, 508, 509, 513, 514, 515, 516, 518, 520, 521, 522, 523, 524, 525, 528, 529, 530, 531, 532, 535, 536, 544, 554, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583], "arakelian": 295, "arang": [118, 395, 459, 473, 477, 530], "arb": 491, "arbitrari": [199, 201, 202, 391, 403, 426, 439, 467, 481, 486, 491, 530, 531], "arbitrary_types_allow": [16, 84, 90, 104, 124, 407], "arbitrarytypemetadata": 407, "archiv": [406, 496, 503], "arcsec": 176, "arctan": 394, "area": [82, 88, 105, 107, 152, 153, 168, 179, 180, 187, 194, 202, 204, 206, 380, 381, 391, 435, 437, 450, 455, 467, 475, 485, 495, 496, 523, 530, 531, 577], "areasc": [438, 440], "aren": [356, 380, 394, 399, 400, 411, 412, 414], "arf": [106, 107, 110, 197, 198, 201, 202, 455, 531], "arf_ob": 106, "arffil": 106, "arg": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 53, 84, 87, 90, 91, 104, 109, 110, 124, 147, 148, 149, 153, 154, 155, 157, 160, 161, 162, 164, 165, 194, 195, 202, 219, 232, 245, 252, 253, 254, 330, 578], "arg_in_kwarg": 380, "argmax": 478, "argmin": 478, "argpars": [385, 578], "argsort": [87, 91], "argument": [11, 16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 83, 84, 86, 87, 88, 90, 91, 92, 93, 100, 101, 102, 104, 105, 108, 109, 110, 124, 125, 126, 128, 130, 133, 146, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 169, 179, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 209, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 281, 287, 305, 307, 319, 325, 327, 328, 367, 368, 369, 373, 374, 375, 376, 377, 383, 386, 392, 395, 427, 428, 431, 433, 439, 445, 446, 447, 459, 463, 468, 469, 483, 485, 486, 489, 490, 494, 503, 516, 518, 529, 530, 531, 554, 578], "aris": [385, 396, 518], "arithmet": [219, 391, 441, 486, 487, 489, 546], "arjun": [438, 439], "arm": [33, 34, 38, 45, 435], "armstrong": 439, "arnau": [433, 442, 443, 444, 445, 447], "around": [56, 141, 169, 192, 194, 204, 206, 319, 394, 395, 457, 475, 479, 483, 487, 495, 504, 518, 527, 530, 531], "arpit": 438, "arr": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "arrai": [19, 20, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 82, 83, 85, 87, 91, 92, 94, 99, 100, 101, 102, 109, 110, 118, 123, 125, 126, 127, 130, 131, 133, 136, 141, 142, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 214, 218, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 273, 274, 275, 276, 277, 287, 288, 290, 292, 298, 303, 307, 318, 319, 320, 334, 335, 336, 340, 373, 374, 379, 380, 393, 394, 398, 404, 407, 416, 426, 439, 442, 444, 446, 457, 458, 467, 468, 475, 477, 480, 481, 483, 484, 486, 488, 489, 491, 493, 495, 496, 504, 530, 531, 538, 563, 566, 579, 580], "array_lik": [102, 109, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 291, 297, 304], "array_shap": [444, 446], "arriba": [432, 435, 436], "arriv": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 385, 393, 425, 426, 427, 467, 577, 581], "arrow": 576, "arrowprop": 535, "arrowstyl": 535, "artefact": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "arthmet": 391, "articl": [135, 137, 144, 295, 303, 385, 452, 473], "artifact": [122, 194], "artifici": 467, "artist": [201, 224, 247, 535, 536], "arxiv": [64, 65, 179, 253, 254, 268, 269, 464, 479, 480, 561, 562], "as_arrai": [87, 91], "as_artist": [201, 202, 489, 531, 535, 536], "as_energy_tru": [191, 192, 201, 204], "as_plot_cent": [195, 198, 203, 477], "as_plot_edg": [195, 198, 203], "as_plot_label": [195, 198, 203], "as_plot_scal": 198, "as_plot_xerr": [195, 198, 203], "asanyarrai": 380, "ascii": [87, 91, 125, 380], "asid": 482, "asimov": 491, "asinh": 459, "asinha": 82, "ask": [381, 383, 385, 387, 394, 396, 397, 400, 406, 415, 472, 504, 518, 519, 578], "asmooth": [118, 119, 399, 426, 437, 440], "asmoothestim": 401, "asmoothmapestim": [119, 401, 426, 428, 431, 459, 518], "aspect": [383, 406, 519, 578, 583], "assert": [195, 197, 198, 203, 355, 356, 357, 383, 391, 403, 486], "assert_allclos": 380, "assert_equ": 380, "assert_nam": [195, 197, 198, 203], "assert_quantity_allclos": [380, 435], "assess": [455, 457, 478], "assign": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 103, 108, 109, 192, 263, 273, 376, 380, 389, 392, 395, 407, 409, 452, 471, 472, 481, 486, 489, 491, 503, 504, 530], "assist": 396, "asso": [71, 74, 75, 77, 78], "assoc": 71, "assoc1": [74, 75, 78, 480, 504], "assoc2": [74, 75, 78, 504], "assoc_fgl": 78, "assoc_fhl": 78, "assoc_gam": 75, "assoc_gam1": [74, 78], "assoc_gam2": [74, 78], "assoc_gam3": [74, 78], "assoc_new": 77, "assoc_prob_bai": 480, "assoc_prob_lr": 480, "assoc_tev": [74, 75, 78], "associ": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 87, 91, 100, 102, 105, 123, 132, 136, 137, 138, 139, 151, 152, 163, 166, 183, 184, 189, 202, 274, 298, 307, 380, 386, 396, 404, 405, 406, 407, 408, 445, 446, 451, 452, 453, 455, 459, 464, 480, 481, 482, 485, 486, 488, 489, 491, 495, 504, 515, 516, 518, 531, 580], "association_catalog": [67, 480], "association_nam": [67, 480], "assum": [23, 50, 51, 52, 53, 67, 82, 83, 85, 95, 101, 122, 123, 125, 133, 134, 135, 140, 143, 144, 153, 165, 176, 190, 192, 193, 194, 196, 199, 203, 205, 206, 211, 269, 275, 279, 286, 334, 337, 380, 383, 392, 393, 395, 403, 404, 408, 416, 417, 450, 451, 452, 455, 457, 458, 461, 467, 468, 469, 471, 479, 484, 486, 489, 491, 494, 508, 514, 516, 523, 575, 580], "assumpt": [72, 95, 102, 105, 109, 110, 118, 132, 135, 144, 394, 404, 451, 523, 527, 579], "astri": 97, "astrisim": 393, "astro": [6, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 126, 186, 193, 194, 196, 205, 206, 258, 276, 380, 381, 392, 399, 400, 404, 423, 432, 436, 440, 442, 446, 457, 479, 484, 486, 493, 507, 508, 510, 511, 512, 515, 577], "astro_dark_matt": [400, 449, 479, 492], "astromodel": 506, "astronom": [13, 394, 401, 439, 577], "astronomi": [11, 280, 379, 390, 394, 398, 410, 417, 438, 452, 455, 461, 465, 485, 493, 518, 527, 528, 575, 576, 577, 578, 579, 580, 582, 583], "astrophys": [6, 23, 311, 395, 518, 576, 577], "astropi": [13, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 66, 83, 85, 86, 87, 88, 89, 91, 92, 94, 96, 102, 105, 109, 110, 115, 117, 118, 123, 125, 127, 129, 130, 133, 141, 142, 150, 152, 161, 163, 176, 190, 191, 192, 193, 194, 196, 197, 199, 201, 202, 203, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 238, 239, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 263, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 289, 298, 305, 306, 307, 337, 356, 357, 366, 370, 371, 375, 379, 381, 382, 383, 385, 386, 387, 391, 393, 394, 395, 397, 398, 399, 400, 401, 403, 404, 406, 407, 408, 409, 416, 417, 419, 423, 424, 425, 426, 430, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 444, 446, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 508, 510, 511, 512, 514, 515, 516, 518, 520, 522, 525, 527, 528, 529, 530, 531, 535, 536, 537, 538, 539, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 579, 582], "astropy_healpix": 389, "astropy_help": [380, 421, 422, 423], "astropy_introduct": 422, "astropy_timeseri": 395, "astropy_vers": 380, "astyp": [87, 91], "asymetr": [101, 455], "asymmetr": [122, 126, 127, 130, 131, 133, 134, 143, 398, 421, 427, 446, 455, 491, 502, 516, 536], "asymmetri": 484, "asymptot": [580, 581], "atmospher": [395, 412, 417, 493], "atnf": 439, "atol": [86, 100, 130, 198, 203, 355, 357, 380], "atol_ax": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206], "atom": 396, "atproduction_gamma": 26, "atreye": [392, 395, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 439, 440, 441, 442, 443, 444, 445, 446, 447], "attach": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 85, 94, 224, 232, 247, 263, 273, 391, 401, 444, 474, 483, 488, 489, 578], "attempt": [16, 84, 90, 104, 124, 383, 394, 397], "attenu": 451, "attr": 380, "attract": 400, "attribut": [15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 178, 179, 180, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 307, 390, 392, 402, 407, 408, 421, 422, 425, 426, 427, 428, 431, 433, 435, 437, 439, 444, 445, 446, 453, 457, 483, 485, 486, 487, 489, 504, 514, 530, 531, 580], "attributeerror": 380, "attrribut": 486, "aug": [393, 396, 397, 399, 418], "august": [387, 393, 396, 399, 465], "author": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409], "authoris": 406, "authorship": 384, "auto": [77, 193, 194, 196, 205, 206, 381, 383, 391, 400, 426, 440, 483, 578], "autocorrel": 136, "autodiff": 398, "autogener": 400, "autograd": [391, 398], "autom": [11, 388, 396, 406, 409, 410, 433, 483, 578], "automat": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 90, 104, 112, 113, 124, 126, 130, 133, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 379, 380, 381, 383, 387, 388, 390, 391, 397, 400, 402, 406, 409, 420, 421, 427, 457, 465, 483, 486, 578, 582], "automatis": 517, "autopep8": 380, "autoscal": [214, 215, 216, 217], "avail": [11, 13, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 57, 67, 70, 72, 77, 78, 83, 87, 88, 91, 101, 102, 105, 109, 110, 122, 123, 125, 126, 130, 131, 133, 134, 143, 146, 167, 173, 179, 180, 198, 211, 214, 216, 220, 221, 225, 226, 234, 237, 249, 251, 260, 261, 265, 271, 273, 275, 280, 331, 368, 380, 383, 386, 387, 388, 389, 391, 392, 393, 394, 397, 398, 400, 407, 410, 411, 412, 413, 414, 415, 421, 425, 426, 427, 431, 434, 438, 440, 442, 445, 447, 451, 455, 456, 459, 477, 482, 483, 485, 487, 489, 493, 494, 498, 502, 504, 506, 508, 509, 515, 517, 518, 520, 521, 522, 524, 532, 544, 576, 578, 580], "available_hdu": 88, "available_irf": 88, "available_method": [170, 179], "available_quant": [123, 125, 459, 482], "available_select": [173, 180], "available_stat_typ": 101, "averag": [19, 102, 105, 109, 110, 173, 180, 183, 184, 186, 187, 431, 451, 452, 455, 514], "averageaz": [467, 468], "avoid": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 122, 173, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 289, 380, 381, 386, 387, 388, 390, 394, 398, 399, 402, 403, 405, 406, 408, 412, 414, 431, 433, 442, 444, 445, 447, 455, 461, 487, 491, 515, 518, 527, 578], "awai": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 288, 290], "awar": [380, 385, 392, 400, 406], "ax": [16, 19, 20, 26, 66, 67, 83, 101, 102, 105, 109, 110, 111, 112, 113, 114, 116, 122, 123, 125, 127, 128, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 180, 183, 184, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 288, 290, 367, 368, 372, 373, 374, 375, 376, 377, 380, 389, 399, 422, 426, 431, 437, 438, 439, 442, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490, 491, 493, 494, 495, 502, 503, 504, 514, 516, 518, 520, 525, 527, 528, 529, 530, 535, 536, 537, 541, 544, 572, 573, 577], "ax1": [450, 459, 461, 465, 475, 487, 488], "ax2": [450, 459, 461, 465, 475, 487, 488], "ax3": [459, 465], "ax_crab_3fhl": 504, "ax_ebl": 544, "ax_excess": [452, 455], "ax_model": 544, "ax_residu": [101, 109, 110, 452, 455, 456, 457, 475, 502], "ax_s": [456, 502], "ax_spati": [102, 105, 109, 110], "ax_spectr": [102, 105, 109, 110], "ax_spectrum": [101, 109, 110, 452, 455, 456, 457, 475], "ax_sqrt_t": [452, 455], "axcols1": 486, "axcols2": 486, "axel": [389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "axes0": [193, 194, 196, 202, 205, 206], "axes_loc": [147, 148, 150, 153, 154, 155, 160, 162, 164, 206, 368], "axes_nam": [192, 193, 194, 196, 201, 202, 204, 205, 206], "axesimag": [368, 369], "axesn": [193, 194, 196, 202, 205, 206], "axi": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 83, 100, 101, 102, 105, 109, 110, 111, 112, 113, 114, 116, 118, 122, 123, 125, 126, 127, 129, 130, 133, 134, 137, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 218, 219, 222, 223, 224, 225, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 247, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 273, 274, 276, 277, 284, 288, 289, 290, 294, 295, 296, 298, 318, 319, 329, 368, 373, 374, 375, 376, 386, 389, 402, 404, 423, 426, 427, 428, 431, 433, 438, 440, 441, 442, 445, 450, 452, 455, 456, 457, 458, 460, 461, 463, 465, 467, 468, 469, 471, 473, 474, 477, 478, 480, 481, 484, 485, 486, 493, 494, 495, 502, 503, 504, 514, 516, 518, 522, 527, 530, 531, 573, 577], "axis0": 530, "axis1": 486, "axis2": 486, "axis_edg": 373, "axis_nam": [101, 102, 105, 109, 110, 123, 125, 137, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 469, 472, 473, 474, 481, 482], "axis_new": [125, 145, 473, 478], "axis_origin": 478, "axis_rgb": 375, "axis_tru": 465, "axisymmetr": 446, "axvlin": [458, 479, 490, 491], "axvspan": [202, 475], "az": [83, 85, 88, 94, 95, 380, 582], "azimuth": 494, "azur": 427, "b": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 51, 52, 54, 77, 84, 87, 90, 91, 104, 124, 153, 211, 347, 380, 381, 394, 403, 406, 409, 455, 466, 479, 480, 483, 486, 487, 489, 494, 504, 510, 514, 531], "b1509": 480, "b_0": [535, 536], "b_1": [87, 91], "b_mean": 42, "b_psr": 43, "b_stdv": 42, "back": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 77, 87, 91, 194, 319, 383, 390, 391, 394, 400, 409, 455, 456, 458, 486, 489, 502, 578], "backend": [93, 101, 120, 126, 127, 130, 131, 133, 169, 210, 211, 212, 213, 286, 322, 327, 328, 379, 389, 391, 421, 440, 441, 445, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503, 518, 575, 576], "backend_default": [127, 130, 133], "background": [16, 67, 82, 83, 88, 93, 102, 103, 105, 106, 108, 109, 110, 113, 114, 118, 122, 123, 125, 132, 147, 148, 149, 159, 168, 170, 171, 173, 174, 175, 176, 178, 179, 180, 186, 226, 232, 273, 281, 288, 290, 299, 300, 301, 302, 304, 376, 380, 386, 389, 392, 393, 394, 396, 400, 401, 404, 412, 417, 420, 421, 422, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 443, 445, 446, 447, 449, 450, 451, 452, 455, 456, 457, 458, 459, 460, 462, 463, 465, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 483, 484, 486, 487, 491, 495, 496, 498, 503, 514, 516, 517, 576, 577, 578, 580, 581], "background2d": [148, 149, 159, 427, 434, 442, 444, 446, 521], "background3d": [88, 147, 159, 186, 386, 427, 431, 439, 440, 441, 447, 484, 493, 521], "background_estim": 399, "background_interp_missing_data": 173, "background_map": [273, 391], "background_min": 146, "background_model": [102, 105, 109, 110, 133, 392, 393, 400, 402, 427, 460, 503, 521], "background_oversampl": [173, 180, 485], "background_pad_offset": 173, "background_r": [399, 481], "backgroundconfig": 16, "backgroundestim": [395, 425], "backgroundevalu": 391, "backgroundirf": [147, 148], "backgroundirfmodel": 402, "backgroundmodel": [392, 402, 403, 424, 426, 427, 428, 431], "backgroundtempl": 391, "backport": [387, 405, 409], "backround": 389, "backscal": 202, "backward": [385, 394, 403, 404, 405, 423, 482, 516], "bad": [86, 380, 394], "badli": 410, "balanc": 514, "band": [19, 20, 26, 68, 83, 89, 120, 123, 125, 128, 151, 152, 155, 158, 163, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 386, 398, 399, 403, 404, 412, 420, 453, 455, 456, 464, 465, 466, 475, 479, 480, 489, 494, 496, 513, 514, 516, 576], "bandshdu": 486, "banner": 410, "bar": [15, 82, 87, 91, 102, 105, 109, 110, 118, 130, 133, 147, 148, 206, 211, 235, 296, 328, 374, 397, 431, 434, 435, 441, 446, 475, 491, 518, 551], "bar_radiu": 38, "base": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 306, 315, 316, 319, 325, 327, 329, 354, 367, 375, 380, 381, 383, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 398, 399, 401, 403, 408, 410, 412, 413, 420, 422, 423, 425, 427, 428, 431, 433, 436, 437, 438, 439, 440, 446, 447, 451, 455, 457, 458, 460, 463, 464, 465, 466, 467, 469, 475, 478, 480, 482, 484, 486, 487, 489, 490, 491, 493, 494, 503, 504, 506, 515, 516, 518, 528, 530, 542, 552, 576, 577, 579, 580], "base_dir": [82, 87, 315, 493, 495, 496, 506], "baselin": [82, 83, 240, 493], "basement": 422, "basemodel": [16, 84, 90, 104, 124, 407, 463], "baseradi": 248, "bash": [412, 414, 578], "basi": [385, 386, 396, 399, 409, 433, 435, 475, 479], "basic": [45, 46, 67, 71, 72, 74, 75, 76, 78, 79, 80, 105, 110, 125, 239, 383, 386, 390, 391, 392, 393, 394, 396, 400, 404, 407, 416, 428, 438, 440, 449, 452, 455, 457, 470, 472, 478, 479, 480, 487, 498, 504, 506, 508, 509, 516, 527, 530, 577, 578], "basicconfig": [16, 465, 500], "bayesian": 398, "bayesian_block": 478, "bayesian_edg": 478, "baysian": 389, "bb": [87, 91, 406], "bbar": [19, 20], "bbox_with_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "bcf": [148, 152, 153, 154, 163, 450, 458, 471, 474, 484, 493], "bdk5y6v": 477, "becam": 387, "becaus": [16, 84, 90, 104, 124, 193, 194, 196, 200, 202, 205, 206, 380, 381, 383, 385, 387, 391, 392, 394, 395, 399, 403, 404, 407, 410, 431, 433, 447, 452, 453, 456, 469, 473, 475, 485, 486, 487, 488, 493, 494, 495, 502, 503, 504, 514, 518, 578, 581], "becom": [380, 388, 390, 391, 394, 399, 407, 467, 473, 489, 518, 578, 581], "been": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 100, 104, 122, 123, 124, 125, 165, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 307, 385, 386, 387, 388, 389, 391, 394, 395, 396, 397, 398, 399, 401, 402, 403, 404, 405, 407, 408, 411, 413, 427, 428, 431, 433, 434, 440, 441, 442, 443, 444, 445, 446, 447, 451, 456, 466, 473, 474, 475, 477, 482, 486, 489, 490, 493, 495, 502, 515, 530, 563], "befor": [13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 52, 53, 84, 87, 90, 91, 92, 100, 104, 123, 124, 193, 194, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 319, 375, 380, 381, 383, 385, 387, 388, 389, 390, 394, 395, 396, 398, 399, 405, 409, 410, 416, 434, 440, 451, 456, 458, 472, 473, 482, 483, 486, 489, 495, 498, 502, 554, 578], "begin": [52, 87, 91, 102, 109, 123, 125, 133, 400, 403, 406, 455, 457, 486, 489, 535, 540, 541, 545, 561, 580], "behav": [380, 390, 445, 460, 581], "behavior": [16, 84, 87, 90, 91, 95, 104, 124, 404, 430, 434, 445, 447], "behaviour": [355, 380, 402, 403, 428, 433, 439, 446, 473, 487, 494, 495, 514, 579], "behind": 477, "being": [122, 132, 194, 380, 385, 388, 394, 401, 404, 410, 457, 466, 478, 487, 507, 518, 531, 578], "belief": 491, "believ": [415, 491], "belong": [86, 404, 427], "below": [52, 53, 87, 91, 192, 196, 203, 204, 369, 370, 371, 375, 377, 381, 383, 384, 389, 390, 394, 396, 397, 400, 403, 404, 406, 407, 408, 410, 411, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 455, 459, 475, 480, 483, 485, 487, 489, 490, 491, 493, 494, 515, 518, 536, 580], "benchmark": [396, 406, 410], "benefit": 397, "benn": 396, "berg": 577, "berge2007": [394, 527, 528, 577], "bernet": 446, "besancon": 508, "besid": [122, 133, 394, 395, 404, 456, 457, 486, 494, 502, 503, 531], "best": [67, 71, 74, 75, 78, 80, 101, 123, 125, 126, 127, 130, 131, 141, 212, 213, 286, 288, 290, 373, 380, 383, 390, 393, 398, 406, 412, 414, 451, 453, 455, 456, 457, 460, 463, 466, 475, 480, 482, 483, 491, 502, 516, 518, 520, 544, 550, 553, 554, 558, 580, 581, 582], "best_fit_model": 457, "beta": [27, 28, 48, 211, 240, 241, 242, 264, 403, 405, 427, 451, 453, 457, 464, 480, 483, 546, 552, 553, 554, 559, 569], "better": [380, 383, 385, 386, 387, 388, 389, 393, 394, 399, 400, 401, 404, 421, 438, 439, 463, 464, 467, 475, 477, 483, 486, 487, 494, 514], "between": [19, 20, 26, 67, 77, 87, 88, 91, 94, 105, 110, 120, 122, 123, 125, 127, 128, 130, 141, 142, 154, 160, 162, 163, 164, 166, 176, 190, 192, 193, 194, 195, 196, 198, 201, 202, 203, 204, 205, 206, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 286, 304, 337, 370, 371, 378, 380, 381, 388, 390, 391, 392, 393, 394, 396, 397, 399, 400, 401, 404, 405, 407, 408, 409, 418, 428, 431, 434, 445, 450, 457, 459, 464, 466, 469, 474, 475, 478, 482, 483, 485, 486, 487, 488, 491, 494, 495, 504, 514, 516, 523, 524, 527, 536, 537, 577, 580, 582], "bewar": [274, 452, 473], "bexcub": 197, "bexpcub": [192, 193, 194, 196, 205, 206, 486], "beyond": [197, 394, 404, 407, 427, 485, 506], "bfg": 483, "bgstat": 437, "bi": [438, 441], "bia": [96, 150, 151, 155, 179, 439, 445, 485, 491, 522], "bias": [457, 579], "bias_energi": 150, "bias_perc": 179, "bibliographi": 577, "biederbeck": [408, 446], "big": [387, 390, 397, 409, 441, 494, 579, 581], "bigger": 194, "biggest": 399, "billion": 380, "bimod": 31, "bin": [19, 20, 26, 83, 86, 88, 102, 105, 108, 109, 110, 112, 113, 118, 120, 122, 123, 125, 126, 128, 129, 130, 132, 133, 135, 136, 137, 138, 139, 144, 145, 146, 150, 151, 152, 153, 155, 158, 161, 163, 165, 166, 173, 175, 176, 177, 179, 181, 190, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 282, 291, 297, 298, 304, 373, 375, 378, 386, 391, 392, 393, 394, 396, 399, 400, 404, 411, 412, 422, 423, 425, 426, 428, 430, 431, 433, 436, 437, 438, 439, 440, 445, 446, 447, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 516, 518, 522, 525, 526, 576, 577, 578, 579, 581], "bin_cent": 475, "bin_edg": 475, "bin_volum": [197, 201, 204, 531], "bin_width": [195, 198, 203, 475], "binari": [204, 206, 388, 394, 397, 406, 410, 431], "binary_dil": [206, 487], "binary_erod": [206, 487], "binary_eros": [206, 431], "binary_structur": 204, "bincent": 298, "bind": 383, "binder": [388, 409, 439, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "binlik": 125, "binned_likelihood": 126, "binneddataaxi": [422, 438], "binnedtimeseri": [125, 395], "bins_axi": 206, "binsiz": [16, 456, 460, 461, 463, 472, 502, 503], "binsize_irf": [16, 456, 460, 461, 463, 472, 502], "binsz": [102, 105, 109, 110, 111, 116, 152, 161, 163, 173, 176, 177, 181, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 396, 455, 465, 466, 467, 468, 471, 475, 479, 481, 484, 485, 486, 487, 489, 494, 495, 503, 525, 527, 528, 530, 531, 534, 536, 537, 538, 539], "binsz_irf": [102, 105, 109, 110, 114, 481, 485, 518], "binsz_irf_default": [102, 105, 109, 110, 485], "binsz_wc": [201, 202], "bintabl": [192, 193, 194, 196, 205, 206], "bintablehdu": [83, 86, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 197, 198, 204, 205, 206, 467, 486, 514], "birth": [29, 30, 36, 50, 51, 52, 53], "bit": [83, 141, 381, 383, 387, 388, 394, 398, 399, 407, 447, 475, 486, 531], "bitbucket": 496, "bitpix": 486, "bkg": [16, 82, 87, 88, 102, 106, 107, 109, 110, 147, 148, 149, 179, 186, 232, 402, 426, 428, 433, 447, 450, 455, 456, 460, 461, 463, 464, 467, 468, 471, 475, 481, 484, 485, 488, 493, 495, 496, 502, 503, 514, 521, 577, 579, 580, 581], "bkg_": [102, 109], "bkg_2d": [87, 147], "bkg_3d": [82, 87, 148, 493, 496], "bkg_err": 475, "bkg_maker": [402, 452, 455, 457, 465, 473, 477, 527], "bkg_model": [392, 402, 408, 463, 467, 468, 471, 488, 503, 538], "bkg_ob": 106, "bkg_sy": 132, "bkg_syst_fract": [132, 450], "bkg_syst_fraction_sensit": 122, "bkgfile": 106, "black": [109, 110, 369, 370, 377, 398, 440, 442, 450, 475, 479, 485, 490, 527, 563], "blackground": 450, "blanch": [439, 440], "blanklin": [239, 416, 516, 531], "blazar": [303, 451, 477], "blind": [442, 518], "bll": 504, "blob": 419, "block": [381, 383, 386, 393, 400, 410, 419, 439], "block_reduc": 440, "blue": [101, 102, 105, 109, 110, 370, 451, 455, 461, 463, 466, 490, 527, 563], "blur": 33, "board": [389, 400], "bodi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "boilerpl": 380, "boller": 478, "boni": [431, 434], "bool": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 80, 82, 83, 84, 86, 87, 88, 90, 91, 93, 96, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 115, 117, 122, 123, 124, 125, 126, 130, 131, 133, 140, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 180, 183, 184, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 211, 212, 214, 215, 216, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 271, 272, 273, 274, 275, 289, 304, 307, 316, 319, 320, 337, 343, 346, 348, 349, 351, 377, 380, 394, 465, 480, 485, 486], "boolean": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 123, 126, 127, 130, 131, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 211, 224, 247, 263, 396, 428, 463, 480, 486, 487, 488], "boost": 467, "bootstrap": [87, 91], "border": 91, "bose": 422, "bot": 386, "both": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 57, 70, 77, 82, 83, 86, 87, 88, 91, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 190, 193, 194, 196, 198, 200, 201, 202, 204, 205, 206, 214, 216, 380, 385, 386, 391, 392, 393, 394, 395, 400, 405, 409, 421, 425, 427, 428, 431, 434, 456, 457, 467, 471, 481, 482, 486, 487, 488, 490, 491, 515, 516, 518, 530, 531, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 580], "bother": 460, "bottom": [400, 402, 451, 467, 472, 473, 474, 478, 480], "bound": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 198, 201, 203, 211, 218, 219, 222, 223, 224, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 247, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 273, 274, 276, 277, 302, 389, 486, 491], "boundari": [198, 204, 275, 408, 436, 447, 483, 489, 530], "boundary_mask": [204, 487], "boundary_typ": 198, "bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "bounds_error": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 380, 484], "box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 102, 105, 127, 128, 201, 204, 206, 339, 340, 389, 394, 398, 404, 438, 487, 489, 531], "bpl": [218, 403, 489], "bpwl_norm": 403, "bracket": [150, 211, 443, 445], "brake": 51, "branch": [380, 383, 387, 394, 405, 410, 419], "branchnam": 380, "bratio": 506, "break": [218, 264, 386, 394, 396, 405, 425, 426, 427, 447, 545, 559], "brent": 459, "brentq": [19, 20, 26, 125, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 287], "breviti": [463, 518], "brief": 582, "briefli": [495, 496], "bright": [68, 127, 263, 279, 461, 472, 473, 487, 489, 512, 527], "brighter": 467, "brightest": 480, "brigitta": [397, 421, 423, 425, 427, 436, 437, 438, 439, 440, 441, 442, 447], "bring": 385, "brnuwiut": 485, "broadcast": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 193, 194, 196, 199, 202, 205, 206, 263, 319, 447, 468, 484, 486, 530], "broadcasted_shap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "broken": [218, 264, 406, 409, 449, 477, 532, 564], "brokenpowerlaw": 403, "brokenpowerlawspectralmodel": [258, 264, 403, 428, 489, 545], "brought": 447, "brown": [137, 478], "brown2013": 137, "brows": [87, 91, 381, 416, 504], "browser": [87, 91, 383, 410, 416, 436, 439, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "bruno": [406, 423, 425, 428, 431, 434, 438, 439, 440, 442, 443, 444, 445, 446, 447], "br\u00fcgge": [439, 440], "bsd": 406, "bst": [87, 91], "buchner": 431, "budget": 518, "buffer": 358, "bug": [380, 383, 386, 387, 405, 406, 409, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 434, 436, 437, 438, 439, 440, 441, 443, 444], "bugfix": [387, 389, 405, 438, 439], "build": [16, 84, 90, 104, 124, 192, 226, 380, 386, 387, 388, 393, 394, 396, 400, 404, 405, 406, 407, 409, 427, 433, 442, 447, 459, 463, 475, 485, 487, 515, 518, 578], "build_doc": [344, 381, 383, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "built": [10, 180, 226, 347, 364, 379, 380, 381, 391, 392, 394, 396, 397, 399, 407, 410, 417, 440, 445, 480, 488, 494, 498, 514], "builtin": 504, "bujcuixa": 477, "bullet": 385, "bump": [394, 438], "bunch": [103, 108, 381, 578], "bundl": [101, 102, 105, 109, 110, 389, 392, 410, 432, 440, 465, 481, 485, 514, 531, 576, 577], "bunit": [366, 440, 486], "bureaucrat": 385, "burkert": [17, 506], "burst": 478, "butterfli": [439, 483, 504], "button": [442, 486], "bx": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "by_alia": [16, 84, 90, 104, 124], "byte": [16, 84, 87, 90, 91, 104, 124, 325, 358, 380], "bytearrai": [16, 84, 90, 104, 124, 325], "bytestr": [87, 91], "bzgnxb4q": 477, "b\u00fchler": 419, "c": [26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 87, 91, 199, 209, 228, 267, 291, 297, 307, 347, 379, 380, 397, 412, 413, 415, 432, 439, 455, 461, 475, 477, 479, 483, 491, 493, 494, 506, 530, 549, 560, 578, 579, 581], "c0": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "c1": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "c7": 101, "c_": 209, "c_0": [191, 192, 201, 204], "c_i": [191, 192, 201, 204], "c_n": [191, 192, 201, 204], "cabot": 447, "cach": [87, 88, 91, 100, 102, 105, 109, 110, 273, 315, 316, 389, 390, 392, 399, 402, 410, 424, 428, 431, 446], "cahil": 433, "cal_gen_92_002": [150, 198], "cal_gen_92_002_summari": 150, "calcul": [13, 15, 19, 20, 26, 96, 105, 110, 136, 137, 138, 139, 179, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 275, 276, 293, 295, 296, 304, 306, 329, 362, 370, 371, 390, 393, 421, 427, 431, 432, 433, 439, 444, 446, 450, 475, 478, 479, 482, 491, 502, 503, 506, 518, 577, 581], "caldb": [82, 148, 150, 152, 153, 154, 163, 198, 433, 450, 458, 467, 468, 471, 474, 484, 493], "calendar": [405, 409], "calib_vers": [494, 504], "call": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 86, 87, 90, 91, 101, 102, 104, 105, 109, 110, 124, 136, 137, 138, 139, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 175, 191, 192, 201, 204, 211, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 233, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 256, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 278, 319, 331, 352, 358, 366, 369, 377, 380, 381, 383, 385, 386, 389, 392, 393, 394, 395, 396, 398, 400, 402, 404, 406, 408, 410, 412, 416, 427, 431, 445, 455, 456, 465, 480, 481, 482, 483, 485, 486, 489, 494, 496, 502, 503, 504, 514, 518, 527, 528, 529, 530, 531, 578, 579, 580, 581], "callabl": [16, 45, 84, 90, 104, 124, 282], "callback": [169, 578], "caller": [380, 391], "camera": [474, 484, 485], "can": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 50, 56, 67, 68, 69, 77, 82, 83, 84, 87, 90, 91, 93, 102, 104, 105, 108, 109, 110, 114, 118, 122, 123, 124, 125, 130, 131, 133, 134, 141, 143, 148, 153, 161, 163, 166, 170, 176, 179, 191, 192, 193, 194, 196, 198, 199, 201, 202, 203, 204, 205, 206, 208, 211, 215, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 239, 241, 242, 244, 247, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 287, 289, 294, 307, 319, 320, 325, 328, 337, 356, 358, 373, 377, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 419, 421, 423, 425, 427, 428, 431, 433, 434, 438, 439, 440, 441, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 508, 509, 514, 515, 516, 518, 521, 522, 523, 524, 525, 527, 528, 529, 530, 531, 552, 554, 563, 573, 575, 576, 577, 578, 579, 580, 581], "candel": 226, "candid": [405, 433, 480], "candl": [280, 577], "cannot": [16, 67, 84, 87, 90, 91, 95, 104, 112, 113, 123, 124, 125, 208, 297, 347, 377, 383, 393, 394, 445, 484, 488, 489, 516, 531], "cap": [51, 54], "capabl": [390, 494, 506], "capsiz": 491, "captur": [380, 396], "car": [102, 105, 109, 110, 173, 204, 205, 206, 224, 247, 394, 423, 465, 484, 485, 486, 503, 504], "card": [83, 86, 88, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206, 486], "care": [123, 125, 307, 380, 389, 396, 405, 452, 457, 463, 486, 578], "carefulli": [406, 467, 468, 491], "carina": [33, 38], "carlo": [398, 523, 577], "carri": [395, 403, 405, 407, 431, 453, 503], "carr\u00e9": 204, "cartesian": [41, 46, 194, 205, 206, 310, 312, 444, 504, 530], "case": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 69, 77, 83, 87, 91, 101, 150, 169, 181, 192, 194, 200, 201, 204, 206, 211, 214, 216, 237, 248, 271, 273, 275, 287, 297, 320, 337, 375, 380, 381, 383, 385, 388, 389, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 412, 420, 421, 424, 427, 433, 434, 439, 445, 446, 450, 452, 455, 456, 457, 458, 460, 461, 463, 467, 468, 471, 472, 474, 475, 478, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 494, 496, 498, 502, 504, 513, 516, 517, 518, 528, 531, 535, 536, 537, 540, 541, 545, 554, 561, 576, 578, 580], "casebattacharya1998": [29, 30, 35, 36, 39, 40, 48], "cash": [102, 105, 109, 110, 173, 292, 297, 380, 392, 431, 458, 460, 463, 471, 474, 481, 485, 488, 491, 502, 503, 514, 577], "cash1979": [577, 580], "cashcountsstatist": [416, 446, 578, 580], "cast": 91, "cat": [66, 67, 79, 388, 410, 438, 439, 453, 480, 489, 513, 577, 578], "catalof": 69, "catalog": [6, 45, 46, 47, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 122, 126, 394, 400, 419, 423, 425, 427, 431, 432, 433, 436, 437, 438, 439, 440, 442, 446, 447, 449, 451, 453, 459, 464, 481, 489, 492, 494, 498, 508, 542, 576, 577], "catalog_3fgl": 453, "catalog_3fhl": [453, 480], "catalog_3fhl_bright": 480, "catalog_4fgl": 480, "catalog_4fgl_roi": 480, "catalog_gammacat": [453, 480], "catalog_hgp": 480, "catalog_registri": [453, 480, 487], "catalogimageestim": 440, "catalogu": [78, 431, 438], "catch_warn": 518, "categori": [380, 391, 404, 431, 447, 487, 489, 532], "caus": [387, 394, 440, 443, 518], "cautious": 466, "caveat": [211, 303, 446, 536], "cax": 484, "cb10uye3": 451, "cb98": 48, "cbar": 368, "cbar_kw": 374, "cbarlabel": 374, "cc": [389, 394, 396, 399, 401, 403, 406, 408], "ccube": [192, 193, 194, 196, 197, 198, 204, 205, 206, 486], "cd": [380, 381, 383, 396, 412, 413, 414], "cdelt": [204, 206], "cdelt1": 486, "cdelt2": 486, "cdf": [329, 393, 467, 483], "cdot": [51, 52, 53, 54, 102, 109, 252, 267, 403, 489, 514, 535, 540, 541, 545, 548, 549, 556, 557, 559, 560, 561, 562, 567, 568, 569, 571, 579], "celesti": [486, 530, 535, 539, 582], "celfix": 542, "cell": [388, 416, 442, 464, 475, 486, 493, 494, 504], "center": [17, 18, 21, 22, 23, 24, 25, 27, 41, 83, 87, 91, 96, 102, 105, 109, 110, 112, 113, 123, 125, 127, 128, 129, 133, 150, 151, 152, 153, 154, 155, 158, 162, 163, 164, 166, 173, 176, 177, 179, 180, 181, 183, 184, 186, 187, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 207, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 309, 313, 339, 380, 381, 394, 396, 403, 404, 421, 422, 431, 433, 446, 450, 452, 455, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 473, 474, 475, 477, 479, 484, 485, 486, 487, 488, 489, 493, 494, 503, 504, 520, 521, 522, 523, 524, 525, 527, 528, 530, 531, 535, 536, 539], "center_coord": [191, 192, 197, 201, 204], "center_pix": [191, 192, 201, 204], "center_ski": 531, "center_skydir": [191, 192, 201, 204, 485, 486, 494, 495, 525, 527, 528], "centr": [479, 487, 506], "central": [392, 401, 453, 504], "cern": 506, "certain": [50, 83, 87, 91, 211, 294, 379, 394, 396, 398, 404, 450, 479, 485, 486, 494, 513, 531], "certainli": 383, "certif": 406, "certifi": 406, "cfa": [211, 483], "cff": 409, "cg": 510, "ch": 53, "chain": [169, 393, 396, 425, 485, 518, 528, 577], "chainer": 398, "chakraborti": [437, 438], "challeng": [387, 389, 393, 438, 461, 463, 465, 493], "chanc": 385, "chang": [16, 19, 20, 26, 84, 86, 87, 90, 91, 104, 123, 124, 125, 192, 201, 204, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 355, 365, 381, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 398, 399, 400, 402, 404, 405, 406, 409, 410, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 437, 438, 439, 440, 441, 443, 448, 457, 458, 459, 465, 467, 468, 472, 477, 478, 481, 482, 483, 487, 489, 491, 493, 502, 514, 518, 525, 527, 531, 542, 550, 578], "changelog": [380, 409, 432, 440], "channel": [19, 20, 26, 379, 382, 383, 397, 439, 468, 479, 486, 496, 506], "channel0": 506, "channel1": 506, "channel_registri": [19, 20, 26], "chapter": 479, "charact": [87, 91, 380, 488], "character": [296, 404, 467], "characterist": [21, 25, 27, 51, 52, 53, 54, 137, 294, 391, 445, 478, 577], "charg": [406, 409, 554], "chatti": [380, 465], "cheat": 415, "check": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 86, 87, 88, 91, 102, 105, 106, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 215, 217, 224, 247, 263, 303, 354, 356, 383, 396, 402, 406, 409, 410, 412, 413, 414, 417, 426, 431, 439, 447, 453, 471, 477, 484, 498, 506, 518, 522, 531, 575, 578, 579], "check_limit": [214, 215, 216, 217], "check_random_st": 380, "check_tutorials_setup": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "checker": [437, 440], "checklist": 410, "checkout": [380, 383, 409, 422, 463, 467, 489], "checksum": [83, 86, 88, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206, 212, 224, 247, 343, 346, 349, 446, 464, 494], "chen": 440, "cherenkov": [153, 393, 412, 417, 452, 455, 461, 472, 485, 493, 495, 527, 528, 577], "cherri": [380, 387, 394, 405], "chi": [293, 395, 579, 580, 581], "chi2": [101, 135, 144, 392, 422, 455, 466, 474, 483, 514, 580], "chi2assym": 425, "child": 390, "children": [463, 471, 486, 502, 503], "chime": 383, "chisq": 293, "chisquar": 293, "chmod": 578, "choic": [136, 393, 397, 399, 406, 455, 456, 458, 460, 483, 495, 502, 519, 575, 578], "choos": [45, 77, 191, 192, 195, 197, 198, 201, 204, 276, 321, 392, 394, 396, 400, 412, 414, 431, 453, 455, 459, 463, 465, 474, 481, 483, 485, 486, 488, 489, 490, 494, 503, 518, 578], "chose": [467, 494, 495, 580, 582], "chosen": [26, 150, 163, 166, 192, 193, 194, 202, 205, 206, 224, 234, 247, 380, 383, 395, 396, 399, 456, 473, 485, 486, 490, 491, 495, 502, 516, 526, 527, 531], "christoph": [385, 386, 387, 388, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 419, 420, 421, 422, 423, 424, 425, 426, 432, 435, 436, 437, 438, 439, 440, 441], "chrome": [87, 91], "chromei": 433, "chunk": [152, 163, 166], "chunk_siz": [152, 163, 166], "ci": [380, 383, 387, 406, 410, 425, 431, 433, 436, 442], "circl": [83, 181, 377, 381, 394, 433, 455, 465, 474, 479, 485, 487, 490, 493, 503, 504, 515, 525, 527, 528, 531], "circle_area": 381, "circleannulusskyregion": [260, 261, 527], "circledast": 514, "circlepixelregion": 394, "circleskyregion": [102, 105, 109, 110, 175, 176, 180, 204, 225, 381, 394, 450, 452, 455, 457, 458, 461, 463, 465, 467, 468, 473, 477, 479, 481, 485, 487, 488, 503, 525, 527, 528, 531], "circular": [91, 102, 105, 180, 192, 194, 204, 391, 399, 401, 452, 457, 481, 490, 527, 531], "circumv": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "cirelli": [26, 506], "citat": 409, "cite": [383, 406], "cl": [16, 84, 90, 102, 104, 109, 124, 407], "clabel": 483, "clang": 416, "clarif": 385, "clarifi": [404, 445], "class": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 315, 316, 319, 327, 329, 354, 367, 383, 386, 389, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 408, 412, 416, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 450, 453, 455, 456, 457, 458, 459, 460, 461, 465, 467, 468, 471, 472, 475, 480, 481, 482, 483, 484, 485, 486, 489, 491, 493, 494, 495, 502, 504, 509, 513, 514, 515, 516, 517, 518, 520, 521, 522, 523, 526, 528, 529, 530, 531, 532, 554, 563, 575, 576, 577, 578, 583], "class1": 480, "class2": 480, "classic": [389, 398, 412, 421, 452, 455, 461, 465, 481, 485, 516, 518, 527, 528, 577, 580], "classifi": 495, "classmethod": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 94, 100, 101, 102, 104, 105, 109, 110, 123, 124, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 407], "classproperti": 431, "classvar": [16, 84, 90, 104, 124], "claudio": [444, 446, 447], "claus": [380, 406], "clean": [380, 381, 383, 388, 389, 394, 396, 398, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 438, 439, 440, 441], "cleaner": 442, "cleanup": [387, 399, 410, 419, 424, 425, 430, 431, 432, 436, 437, 439, 447], "clear": [92, 100, 200, 247, 380, 385, 387, 391, 394, 395, 399, 400, 401, 439, 466, 582], "clearer": 424, "clearli": [137, 380, 385, 386, 394, 397, 405], "cli": [11, 396, 441, 576], "click": [379, 396, 397, 416, 424, 439, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 578], "clip": [19, 20, 26, 191, 192, 195, 197, 198, 201, 203, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 275, 276, 319, 424, 425, 459], "clockwis": [225, 234, 237, 535], "clone": [383, 413, 440], "close": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 275, 355, 356, 357, 389, 394, 409, 434, 445, 446, 447, 483, 563], "closer": 504, "closest": [118, 122, 126, 130, 133, 192, 193, 194, 196, 202, 205, 206, 482, 487, 516], "cloud": [410, 498], "cluster": [6, 96, 305, 306, 393, 445, 446, 449, 492, 498, 515, 518], "clutter": [463, 518], "cm": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 51, 52, 53, 54, 67, 101, 125, 131, 133, 218, 222, 228, 230, 235, 242, 245, 252, 254, 263, 264, 267, 268, 269, 279, 365, 391, 403, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 473, 474, 475, 479, 480, 482, 483, 489, 491, 493, 494, 502, 504, 511, 512, 516, 518, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577], "cm2": [51, 54, 67, 107, 125, 142, 153, 206, 280, 365, 450, 451, 453, 455, 456, 458, 459, 463, 464, 465, 467, 468, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 486, 488, 489, 491, 494, 502, 503, 504, 516, 531, 547, 550, 553, 558, 563], "cm3": [17, 18, 19, 21, 22, 24, 25, 27, 52, 479], "cm5": 479, "cmap": [102, 105, 109, 110, 370, 371, 457, 463, 479, 486, 488, 494, 495, 502, 503, 527], "cmb": 554, "co": [53, 199, 405, 406, 450, 535, 536, 537], "coadd": [193, 194, 196, 202, 205, 206], "coars": 481, "coarser": [198, 203, 481], "codaci": 410, "codata": 52, "code": [19, 20, 26, 82, 83, 87, 91, 150, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 375, 383, 384, 385, 387, 388, 390, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 413, 416, 419, 422, 423, 425, 426, 427, 428, 431, 433, 436, 437, 438, 439, 440, 442, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 518, 525, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 578], "codebas": [381, 397, 419, 438, 440], "codemeta": 433, "codespel": 431, "codestyl": 383, "coeffici": [128, 240, 244, 544], "coerce_numbers_to_str": 104, "coerce_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "coher": 447, "coincid": 478, "col": [87, 91, 431], "col0": [87, 91], "col1": [87, 91], "col2": [87, 91], "col_b": [87, 91], "col_c": [87, 91], "col_d": [87, 91], "col_fit_deriv": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "col_label": 374, "collabor": [77, 370, 371, 385, 387, 389, 393, 433, 466, 494, 577], "colleagu": [383, 578], "collect": [200, 247, 380, 382, 407, 410, 438, 439, 456, 481, 488, 506, 515, 519, 523, 577, 582], "collis": 50, "colnam": [87, 91, 193, 194, 196, 202, 205, 206, 494, 504], "color": [101, 109, 110, 147, 148, 206, 369, 370, 371, 374, 377, 381, 450, 451, 453, 455, 456, 457, 458, 459, 461, 463, 465, 466, 469, 472, 475, 479, 482, 483, 485, 488, 490, 491, 518, 527, 531, 535, 536, 554, 563], "colorbar": [125, 147, 148, 150, 153, 154, 155, 160, 161, 162, 164, 206, 368, 374, 477, 483, 486], "colorblind": 518, "colorblind10": 518, "colormap": [369, 370, 371, 419, 432, 504], "colormap_hess": [401, 583], "colormap_milagro": 583, "colour": 442, "column": [41, 43, 44, 46, 47, 56, 83, 87, 91, 103, 108, 123, 125, 128, 141, 147, 148, 150, 174, 193, 194, 195, 196, 197, 198, 202, 203, 205, 206, 274, 296, 305, 350, 351, 352, 353, 373, 374, 377, 378, 380, 393, 395, 404, 442, 445, 446, 450, 468, 475, 480, 486, 489, 493, 515, 518], "column_nam": 484, "column_prefix": 198, "columnclass": [87, 91], "columnspac": 377, "com": [135, 137, 144, 303, 334, 335, 347, 383, 400, 409, 410, 413], "combin": [99, 101, 102, 105, 109, 110, 134, 143, 145, 179, 187, 193, 194, 196, 201, 202, 205, 206, 219, 263, 380, 386, 390, 391, 392, 393, 394, 395, 400, 403, 412, 424, 439, 445, 447, 453, 458, 463, 464, 471, 474, 481, 483, 484, 485, 486, 487, 489, 495, 503, 504, 506, 508, 518, 525, 530, 546, 576, 577], "combine_flux_map": [143, 447], "combine_significance_map": 144, "combined_ev": 515, "combining_and_defin": [450, 458, 460, 463, 465, 471, 474, 493], "come": [69, 383, 386, 387, 388, 389, 390, 394, 395, 396, 397, 399, 400, 405, 407, 409, 410, 427, 428, 431, 440, 441, 445, 455, 463, 471, 489, 493, 502, 578], "comma": [71, 72, 74, 75, 76, 78, 79, 80, 480], "command": [6, 13, 94, 101, 125, 154, 160, 162, 164, 379, 381, 383, 388, 389, 391, 396, 397, 410, 411, 412, 413, 414, 415, 421, 425, 436, 439, 440, 442, 467, 517, 576], "commensur": 206, "comment": [125, 380, 381, 385, 389, 393, 394, 396, 397, 399, 401, 403, 405, 406], "commit": [380, 383, 388, 394, 405, 406, 409, 418, 419, 442], "committe": [385, 387, 405, 406], "commod": 406, "common": [95, 379, 380, 381, 383, 385, 386, 394, 396, 400, 401, 403, 404, 406, 413, 415, 416, 431, 433, 456, 457, 469, 480, 484, 487, 489, 502, 503, 506, 513, 516, 517, 531, 536, 578], "common_irf_head": 484, "commonli": [29, 83, 394, 398, 440, 469, 506, 575, 576, 578, 580, 583], "commun": [380, 396, 402, 406, 409, 411, 417, 496], "comp": 480, "compact": [16, 84, 87, 90, 91, 104, 124], "compar": [87, 91, 126, 127, 130, 131, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 286, 380, 394, 397, 400, 428, 444, 445, 450, 451, 452, 455, 459, 463, 466, 469, 471, 473, 477, 480, 483, 485, 491, 494, 502, 513, 577, 579], "comparison": [86, 87, 91, 100, 130, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 337, 436, 508], "compat": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 193, 194, 196, 205, 206, 232, 385, 387, 391, 394, 403, 405, 407, 408, 416, 419, 421, 423, 440, 446, 447, 486, 530], "compil": [383, 432], "complain": 383, "complaint": 398, "complement": 400, "complementari": [101, 134, 143, 455], "complet": [13, 16, 84, 90, 104, 124, 337, 380, 386, 390, 391, 392, 393, 394, 397, 398, 400, 404, 405, 406, 409, 413, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 436, 437, 438, 439, 440, 441, 463, 468, 483, 490, 498, 518, 523], "complex": [380, 381, 386, 390, 394, 395, 396, 402, 404, 416, 447, 452, 455, 465, 468, 474, 478, 481, 486, 487, 489, 490, 494, 527], "complianc": [406, 442], "compliant": [193, 194, 196, 205, 206, 446, 577], "complic": [394, 531], "compon": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 81, 88, 102, 103, 105, 108, 109, 110, 130, 137, 165, 167, 201, 224, 247, 248, 263, 279, 391, 392, 393, 396, 402, 403, 421, 425, 427, 431, 439, 440, 451, 456, 457, 458, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 477, 480, 481, 482, 488, 489, 493, 494, 502, 503, 506, 514, 516, 518, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 577], "component_1": 391, "component_2": 391, "component_class": 480, "components_model": 80, "components_statu": 67, "compos": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 386, 406], "composit": [57, 70, 80, 318, 406, 438], "compound": [201, 208, 219, 338, 342, 394, 403, 449, 451, 469, 532, 564], "compoundmodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 433], "compoundpixelregion": 342, "compoundskymodel": 391, "compoundskyregion": [208, 338, 342], "compoundsourcemodel": 391, "compoundspectralmodel": [258, 403, 445, 451, 489, 494, 544, 546, 550, 553, 555, 558, 563], "compress": 388, "compris": 495, "compromis": [380, 385, 393, 491], "compton": [248, 427, 554], "compulsori": 489, "comput": [16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 83, 84, 86, 88, 90, 94, 96, 100, 101, 102, 104, 105, 109, 110, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 179, 180, 182, 185, 186, 187, 188, 190, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 207, 211, 218, 219, 222, 224, 226, 228, 229, 230, 235, 239, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 279, 280, 286, 287, 288, 290, 293, 294, 295, 296, 298, 302, 303, 306, 310, 311, 314, 380, 389, 390, 391, 392, 393, 394, 395, 398, 400, 401, 402, 403, 404, 408, 410, 412, 413, 417, 419, 421, 422, 423, 424, 427, 428, 430, 431, 432, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 452, 457, 459, 463, 464, 468, 469, 472, 473, 475, 478, 479, 481, 482, 485, 488, 489, 490, 491, 494, 495, 496, 502, 504, 506, 514, 516, 518, 523, 527, 554, 576, 577, 578, 579, 580, 581, 582], "computation": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 211, 393, 394, 514], "compute_chisq": 438, "compute_differential_jfactor": 23, "compute_errn": [288, 290, 442, 580], "compute_errp": [288, 290, 580], "compute_flux_doubl": 137, "compute_fpp": 138, "compute_fvar": [139, 295], "compute_jfactor": [23, 479], "compute_lightcurve_doublingtim": 478, "compute_lightcurve_fpp": 478, "compute_lightcurve_fvar": 478, "compute_lima_map": 427, "compute_npr": 393, "compute_upper_limit": [288, 290], "computedfieldinfo": [16, 84, 90, 104, 124], "con": [380, 396], "concaten": [83, 86, 92, 195, 198, 392, 396, 402, 445, 486], "concentr": 339, "concept": [16, 84, 90, 104, 124, 400, 401, 407, 417, 479, 486, 519], "conception": [393, 402], "concern": [383, 385, 394, 396, 397, 399, 401, 403, 406, 431, 441, 495, 580], "conclud": 389, "concret": [16, 84, 90, 104, 124, 397, 400], "conda": [379, 383, 387, 388, 397, 400, 405, 409, 410, 412, 413, 414, 415, 416, 421, 423, 439, 440, 578], "condit": [52, 53, 146, 198, 215, 217, 224, 247, 404, 408, 428, 447, 450, 455, 458, 468, 480, 487, 488, 490, 495, 514, 523], "conduct": [442, 474], "cone": [91, 394, 456, 490, 502, 503, 518], "conesearch": 396, "conf": [87, 91, 380, 381, 410, 422, 437], "conf_1d": 472, "conf_3d": 472, "conf_max": [214, 216], "conf_min": [214, 216], "confid": [122, 211, 214, 216, 288, 290, 391, 398, 422, 427, 441, 577, 580], "confidence_opt": [211, 482], "config": [15, 16, 84, 90, 104, 124, 379, 381, 386, 388, 389, 396, 397, 400, 407, 412, 414, 424, 425, 426, 431, 439, 456, 463, 502, 575], "config_dict": 502, "config_joint": 463, "config_paramet": [118, 120, 121, 122, 126, 127, 129, 130, 131, 132, 133], "config_stack": 463, "config_str": 16, "configdict": [16, 84, 90, 104, 124], "configpars": 437, "configur": [11, 15, 16, 46, 84, 87, 90, 91, 101, 104, 109, 110, 118, 120, 121, 122, 124, 126, 127, 129, 130, 131, 132, 133, 327, 380, 381, 383, 389, 391, 395, 396, 400, 401, 407, 409, 410, 416, 424, 426, 427, 431, 433, 442, 445, 446, 455, 457, 459, 465, 467, 468, 477, 493, 498, 517, 518, 523, 577, 578], "confirm": [383, 409], "conflict": [87, 91, 380, 383, 406], "confluenc": 496, "conform": [16, 84, 90, 104, 124, 486], "confus": [380, 381, 386, 399], "connect": [390, 455, 469, 471, 487, 503, 575], "consant": [193, 194, 196, 202, 205, 206], "consciou": 385, "consecut": [176, 337, 380, 405], "consensu": [385, 406], "consent": 380, "consequ": [406, 468, 531], "conserv": [514, 539], "consid": [19, 20, 59, 96, 173, 180, 183, 184, 186, 187, 194, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 286, 376, 385, 386, 391, 392, 394, 395, 396, 397, 398, 399, 400, 402, 406, 408, 452, 455, 457, 463, 467, 468, 478, 484, 487, 515, 518, 523, 581], "consider": [396, 421, 431, 439, 463], "consist": [74, 91, 95, 123, 125, 151, 152, 163, 166, 193, 194, 196, 205, 206, 234, 237, 380, 390, 391, 393, 394, 395, 400, 407, 424, 425, 426, 427, 428, 435, 439, 440, 442, 444, 445, 446, 456, 457, 458, 459, 466, 471, 474, 483, 485, 486, 489, 491, 502, 552, 554, 579], "consol": [380, 578], "consortium": [407, 493], "const": [220, 221, 222, 223, 403, 468, 489, 547, 565], "const3d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "const_norm": 403, "constant": [50, 51, 52, 53, 102, 109, 118, 153, 193, 194, 196, 202, 204, 205, 206, 220, 221, 222, 223, 225, 238, 240, 336, 393, 394, 399, 439, 449, 472, 494, 511, 514, 532, 543, 564, 574, 577, 581], "constant_model": 565, "constantmodel": 441, "constantnormspectralmodel": 403, "constantspatialmodel": [257, 403, 489, 494, 534], "constantspectralmodel": [258, 403, 468, 489, 547], "constanttemporalmodel": [270, 403, 424, 489, 565], "constitu": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "constitut": 481, "constrain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 406, 451, 460, 464, 485, 491, 525], "constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 518], "construct": [16, 84, 90, 104, 124, 198, 241, 242, 345, 531, 577], "constructor": [191, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 445, 503, 529], "consult": 415, "consum": [483, 518], "contact": [382, 387, 389, 406, 415, 417, 420, 421, 422, 436, 439], "contain": [13, 16, 19, 20, 26, 57, 59, 63, 67, 69, 82, 83, 84, 86, 87, 88, 90, 91, 92, 95, 96, 100, 101, 102, 104, 105, 108, 109, 110, 112, 113, 123, 124, 125, 133, 134, 135, 136, 141, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 178, 180, 185, 188, 190, 191, 192, 193, 194, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 211, 215, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 294, 305, 306, 373, 375, 377, 378, 380, 383, 384, 386, 388, 389, 390, 393, 394, 395, 396, 397, 399, 400, 401, 402, 404, 406, 409, 410, 417, 421, 425, 426, 427, 428, 430, 431, 433, 434, 437, 438, 439, 440, 441, 445, 446, 447, 450, 453, 455, 456, 457, 460, 463, 464, 467, 468, 471, 472, 473, 475, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 507, 509, 514, 515, 516, 518, 522, 526, 527, 530, 531, 532, 575, 577, 579, 580, 581], "containment_correct": [16, 102, 105, 180, 450, 455, 456, 457, 460, 461, 463, 465, 472, 473, 475, 477, 481, 485, 502], "containment_fract": 96, "containment_radiu": [154, 160, 162, 163, 164, 166, 450, 481, 484, 487], "containment_radius_map": [163, 166], "contains_pix": [191, 192, 201, 204], "contains_wcs_pix": 201, "contamin": [67, 461, 480, 487, 527], "content": [84, 90, 104, 124, 125, 193, 194, 196, 202, 205, 206, 343, 346, 380, 383, 385, 389, 395, 400, 407, 410, 425, 434, 439, 452, 486, 487, 493, 495, 515, 518, 529, 530], "content_typ": [16, 84, 90, 104, 124], "context": [16, 84, 87, 90, 91, 104, 124, 215, 217, 224, 247, 327, 358, 380, 395, 406, 410, 446, 486, 508], "contigu": [198, 203, 431], "continu": [198, 387, 389, 390, 393, 394, 396, 397, 399, 400, 405, 416, 419, 420, 423, 431, 436, 437, 438, 440, 455, 468, 477, 487, 530, 577], "continuous_upd": [463, 471, 486, 502, 503], "contour": [208, 211, 372, 389, 441], "contour_": 483, "contourf": 206, "contract": 406, "contrari": [381, 388], "contrast": [400, 577], "contrera": 441, "contribut": [100, 115, 117, 224, 232, 247, 263, 376, 380, 382, 389, 394, 402, 404, 410, 417, 420, 431, 433, 435, 485, 519, 554, 575, 578, 579], "contributes_to_stat": 100, "contributor": [380, 383, 400, 410, 418, 429, 430], "control": [83, 87, 91, 102, 105, 109, 110, 380, 393, 411, 413, 450, 479, 486, 491, 518, 580], "controversi": [380, 385, 386, 400], "conveni": [13, 123, 379, 380, 383, 390, 394, 402, 404, 411, 421, 423, 428, 431, 433, 438, 465, 477, 479, 480, 481, 486, 487, 488, 489, 493, 495, 504, 513, 517, 576], "convent": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 192, 193, 194, 196, 204, 205, 206, 402, 404, 423, 424, 427, 428, 442, 447, 481, 485, 486, 489, 514, 516, 523, 530, 580], "converg": [408, 422, 443, 455, 457, 463, 477, 483, 514, 518, 525, 535], "convers": [84, 87, 90, 91, 104, 123, 124, 125, 134, 143, 385, 404, 407, 412, 414, 431, 444, 445, 446, 450, 531], "conversion_typ": [494, 504], "convert": [16, 19, 23, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 83, 85, 86, 87, 91, 99, 101, 102, 105, 107, 109, 110, 123, 125, 128, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 176, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 210, 213, 214, 215, 216, 217, 224, 239, 247, 286, 304, 307, 308, 312, 325, 341, 361, 363, 364, 381, 386, 394, 395, 404, 407, 410, 432, 444, 445, 446, 447, 450, 459, 466, 473, 474, 477, 481, 482, 483, 487, 488, 493, 504, 516, 522, 527, 530, 580, 582], "convert_bytestring_to_unicod": [87, 91], "convert_unicode_to_bytestr": [87, 91], "convinc": 504, "convolut": [118, 122, 128, 133, 161, 194, 206, 379, 392, 398, 419, 426, 428, 437, 439, 440, 446, 447, 461, 486, 514, 531], "convolution_method": 194, "convolv": [105, 111, 116, 133, 161, 194, 206, 391, 419, 428, 431, 440, 458, 459, 461, 486, 524, 554], "convolve_ful": 194, "convolve_wc": 194, "cookiecutt": 396, "coolwarm": [463, 494, 495, 503], "coord": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 249, 294, 391, 424, 468, 486, 487, 527, 530, 531, 538], "coord_to_idx": [191, 192, 195, 197, 198, 201, 203, 204, 486], "coord_to_pix": [191, 192, 195, 197, 198, 201, 203, 204, 486], "coordiant": 484, "coordin": [6, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 46, 47, 83, 85, 87, 88, 89, 91, 94, 95, 96, 102, 103, 105, 108, 109, 110, 112, 113, 123, 125, 127, 128, 129, 137, 141, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 160, 162, 163, 164, 165, 166, 176, 186, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 224, 225, 234, 237, 239, 247, 249, 251, 260, 261, 263, 275, 294, 298, 303, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 319, 329, 335, 339, 340, 356, 381, 385, 386, 387, 389, 393, 394, 399, 400, 403, 405, 406, 419, 421, 424, 426, 437, 439, 440, 442, 450, 452, 455, 457, 458, 461, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 503, 504, 514, 522, 527, 529, 530, 535, 536, 539, 576, 577, 582], "coordsi": 426, "copi": [11, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 104, 105, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 151, 152, 155, 158, 163, 166, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 307, 352, 380, 385, 388, 390, 394, 396, 402, 409, 410, 416, 431, 433, 440, 441, 442, 445, 447, 451, 452, 455, 457, 458, 463, 465, 471, 473, 474, 477, 480, 483, 485, 489, 491, 494, 518, 527, 531, 542, 578], "copy_data": [87, 91, 224, 232, 247, 263, 271, 273, 275], "copy_indic": [87, 91], "copy_ob": [82, 518], "copy_on_getitem": [87, 91], "copyright": 416, "core": [16, 53, 84, 90, 104, 124, 159, 379, 380, 387, 393, 394, 401, 405, 406, 409, 417, 420, 437, 441, 445, 450, 457, 458, 460, 463, 465, 467, 469, 471, 474, 477, 488, 493, 506, 516, 578], "corner": [394, 397, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "corr_coord": [163, 166], "correct": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 83, 88, 102, 103, 105, 152, 163, 166, 180, 185, 186, 199, 232, 249, 250, 275, 380, 392, 393, 405, 406, 407, 409, 423, 426, 428, 429, 430, 431, 434, 437, 438, 440, 442, 443, 444, 445, 446, 447, 450, 451, 455, 456, 457, 458, 467, 471, 472, 480, 481, 483, 485, 487, 488, 489, 491, 495, 502, 504, 515, 516, 525, 538, 550, 553, 555, 558, 563], "correctli": [19, 20, 26, 77, 151, 152, 158, 163, 166, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 381, 383, 406, 407, 421, 423, 428, 433, 434, 443, 484, 485, 486, 487, 488, 491, 530, 536], "correl": [19, 20, 26, 122, 128, 136, 209, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 276, 298, 398, 403, 404, 431, 441, 447, 466, 469, 483, 487, 489, 491, 502, 516, 575], "correlate_off": [122, 461], "correlation_radiu": [16, 122, 141, 142, 456, 460, 461, 463, 475, 482, 495, 502, 516], "correspond": [19, 20, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 45, 87, 89, 91, 100, 102, 105, 109, 110, 123, 125, 126, 127, 128, 130, 131, 133, 134, 143, 150, 151, 152, 158, 161, 163, 165, 166, 167, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 208, 218, 219, 222, 226, 228, 229, 230, 234, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 305, 373, 390, 391, 392, 393, 400, 401, 404, 406, 408, 425, 428, 452, 453, 455, 456, 457, 463, 467, 468, 472, 480, 483, 485, 486, 489, 490, 491, 493, 494, 495, 502, 504, 514, 515, 516, 518, 530, 531, 541, 544, 576, 577, 582], "cosimo": [428, 431, 433, 439, 440, 442, 445], "cosmic": [52, 226, 279, 398, 493], "coto": 439, "could": [16, 84, 90, 104, 124, 381, 383, 385, 386, 389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 404, 406, 407, 410, 452, 455, 463, 465, 480, 482, 491, 493, 494, 502, 517], "count": [16, 83, 92, 100, 102, 105, 106, 107, 108, 109, 110, 114, 118, 122, 123, 125, 126, 127, 129, 130, 131, 132, 133, 140, 142, 168, 170, 173, 174, 175, 180, 182, 186, 190, 193, 194, 196, 197, 198, 202, 205, 206, 215, 217, 224, 247, 288, 290, 291, 292, 297, 299, 302, 304, 329, 365, 367, 376, 378, 386, 388, 391, 392, 393, 395, 396, 400, 404, 422, 423, 426, 428, 431, 433, 434, 440, 441, 445, 446, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 469, 471, 472, 473, 474, 475, 477, 481, 483, 485, 486, 487, 491, 495, 500, 502, 503, 504, 516, 518, 522, 525, 526, 527, 528, 531, 577, 578, 579, 581], "count_bkg": 475, "count_statist": 580, "counter": [225, 234, 237, 535], "counts_3d": 486, "counts_imag": [469, 481], "counts_min": 146, "counts_off": [102, 105, 106, 109, 110, 168, 174, 175, 178, 378, 392, 433, 444, 445, 451, 456, 457, 458, 461, 465, 475, 481, 514, 580], "counts_on": 422, "counts_rat": 481, "counts_statist": 461, "countspredictor": 391, "countsspectrum": [392, 395, 422, 423, 425, 427, 436], "countsstatist": [288, 290, 404, 427, 428, 431, 442], "coupl": [388, 394, 399, 410, 428, 440, 486], "cours": [380, 383, 387, 390, 397, 416, 456, 463, 481, 486, 494, 502, 578, 581], "cousin": [422, 428, 436, 438, 577], "cousins2007": [577, 580], "coutinho": [428, 431], "cov": [253, 254, 410], "cov_matrix": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "covar": [209, 373, 441], "covar_list": 209, "covari": [15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 126, 127, 130, 131, 210, 211, 212, 215, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 373, 398, 408, 427, 433, 441, 442, 445, 447, 456, 502, 580], "covariance_data": [224, 232, 247, 263, 273], "covariance_opt": 211, "covariance_result": 212, "covariance_typ": 408, "covariancegaussianprior": 408, "covariancemixin": [219, 224, 263, 447], "covarianceresult": [101, 211, 212, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 483, 494, 502, 503], "cover": [274, 380, 382, 394, 395, 396, 404, 452, 472, 473, 481, 486, 498, 504, 519], "coverag": [389, 395, 410, 419, 423, 431, 437, 440, 473, 483], "coveral": [410, 419], "cpu": [126, 127, 130, 133, 327, 328, 393], "cpython": 385, "crab": [67, 83, 109, 110, 131, 146, 211, 244, 280, 286, 388, 392, 400, 419, 425, 437, 439, 455, 456, 457, 464, 465, 472, 480, 481, 482, 483, 487, 491, 494, 495, 496, 502, 503, 504, 516, 527, 531, 577], "crab_10gev_100tev_dataset": 464, "crab_3fhl": 504, "crab_3fhl_spec": 504, "crab_events_pass4": 495, "crab_fp": 456, "crab_fp_tabl": 456, "crab_hess_ecpl": 280, "crab_hess_fp": [123, 125, 145], "crab_magic_lp": 457, "crab_model": 483, "crab_posit": 527, "crab_spec": 464, "crab_spectrum": 483, "crabnebula": 472, "crabspectrum": 423, "creat": [11, 13, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 70, 82, 83, 84, 86, 87, 88, 90, 91, 92, 93, 99, 101, 102, 104, 105, 109, 110, 111, 112, 113, 114, 116, 118, 123, 124, 125, 126, 127, 130, 133, 134, 143, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 175, 176, 177, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 280, 286, 307, 317, 338, 342, 358, 367, 369, 374, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 414, 416, 423, 424, 425, 428, 431, 433, 439, 440, 442, 443, 444, 445, 446, 447, 450, 451, 453, 456, 457, 458, 463, 465, 466, 467, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 483, 485, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 504, 506, 513, 514, 515, 518, 522, 525, 527, 528, 529, 530, 534, 536, 537, 538, 539, 544, 554, 563, 575, 576, 578, 583], "create_crab_spectral_model": [455, 457, 464], "create_fermi_isotropic_diffuse_model": [488, 494], "create_map_dataset_from_observ": [93, 108], "create_t": 477, "creation": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 127, 204, 389, 390, 394, 403, 406, 425, 431, 447, 478, 489, 496], "creator": [104, 124, 383, 407, 456, 460, 461, 463, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "creatormedadata": 407, "creatormetadata": [84, 90, 104, 124, 407], "credit": 416, "crimson": 457, "criteria": [15, 91, 433, 485, 490, 498], "criterion": [91, 133, 305, 450, 518], "critic": 491, "criticis": 371, "crop": [86, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206], "crop_width": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206], "cross": [19, 386, 400, 447, 506], "crowd": 480, "crpix": 204, "crpix1": 486, "crpix2": 486, "crucial": [407, 467, 468, 481], "cruft": 410, "crux": [33, 38, 477], "crval1": 486, "crval2": 486, "cryptic": 391, "csh": 578, "csobsselect": 390, "css": [87, 91, 410, 447], "cstat": [392, 425], "csv": 125, "ct": [365, 440], "cta": [82, 83, 89, 102, 105, 109, 110, 115, 117, 118, 122, 141, 142, 148, 152, 153, 154, 163, 226, 368, 373, 375, 384, 387, 388, 389, 393, 396, 399, 400, 409, 420, 421, 431, 437, 438, 439, 440, 447, 449, 450, 458, 460, 463, 465, 467, 468, 471, 474, 475, 481, 482, 484, 488, 497, 498, 502, 516, 520, 577], "cta_data_analysi": [400, 449, 465, 470], "cta_dataset": 488, "cta_north": 97, "cta_sensist": 400, "cta_sensit": [449, 450, 454], "cta_simul": 420, "cta_south": [97, 450, 458, 467, 468, 471, 474], "cta_util": 440, "ctadata": 493, "ctao": [82, 152, 153, 173, 279, 380, 400, 406, 409, 412, 417, 447, 449, 450, 456, 458, 460, 465, 467, 468, 475, 490, 495, 496, 497, 498, 506, 518, 576], "ctapip": [383, 387, 389, 396, 397, 399, 400, 401], "ctaspectrumobserv": 440, "ctobssim": 393, "ctool": [390, 393, 396, 400, 552], "cts_sigma": 483, "ctselect": 390, "ctype1": 486, "ctype2": 486, "cube": [46, 102, 105, 133, 168, 186, 193, 194, 196, 202, 205, 206, 243, 263, 380, 391, 392, 393, 399, 400, 401, 403, 412, 419, 423, 424, 427, 432, 435, 436, 437, 438, 439, 440, 459, 460, 465, 469, 494, 504, 514, 523, 525, 530, 531, 577], "cubic": 486, "cumbersom": [390, 398], "cumsum": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206], "cumul": [100, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 329, 393, 455, 467, 488, 518], "cunit1": 486, "cunit2": 486, "curat": [410, 420], "curl": [67, 397, 411, 412, 414, 493], "current": [11, 15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 86, 87, 88, 89, 91, 99, 100, 101, 102, 105, 109, 110, 125, 126, 130, 156, 179, 191, 192, 193, 194, 196, 202, 203, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 358, 374, 380, 381, 383, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 408, 411, 412, 413, 414, 423, 441, 456, 479, 482, 484, 485, 486, 488, 493, 495, 496, 502, 503, 507, 514, 515, 516, 531, 575, 577, 578], "curv": [15, 19, 20, 26, 73, 77, 83, 130, 137, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 296, 372, 384, 391, 393, 396, 400, 404, 412, 421, 425, 427, 428, 432, 435, 436, 438, 440, 442, 445, 446, 449, 450, 476, 477, 478, 498, 516, 517, 527, 532, 574, 576], "curve_fit": 373, "cuspi": 506, "custom": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 89, 90, 104, 124, 129, 389, 390, 391, 396, 398, 403, 407, 411, 425, 426, 428, 440, 450, 458, 460, 463, 465, 471, 474, 481, 484, 486, 493, 518, 563], "custom_model": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "customari": 489, "customis": [400, 484], "customprior": 491, "cut": [91, 122, 165, 179, 180, 390, 439, 445, 449, 450, 454, 458, 475, 481, 485, 486, 490, 493, 498, 503, 504, 526, 527], "cutoff": [228, 229, 230, 267, 268, 269, 286, 425, 445, 449, 458, 463, 532, 564], "cutout": [102, 105, 109, 110, 115, 117, 151, 152, 158, 163, 166, 169, 192, 194, 202, 204, 206, 273, 386, 392, 421, 426, 431, 437, 440, 447, 460, 461, 463, 465, 469, 481, 485, 494, 503, 504, 514], "cutout2d": [102, 105, 151, 152, 158, 163, 166, 169, 204, 206, 273, 386], "cutout_and_mask_region": [206, 445], "cutout_info": 425, "cutout_mod": 169, "cutout_slic": 204, "cutout_template_model": 447, "cutout_width": 169, "cval": [193, 194, 196, 202, 205, 206], "cvhuuyv3": 477, "cwd": 388, "cwt": [400, 425, 437, 440], "cxc": [211, 400, 483], "cyan": 377, "cycl": [377, 383, 384, 385, 397, 399, 413, 438, 442], "cycler": [377, 450], "cython": [383, 422, 432], "d": [19, 20, 23, 87, 89, 91, 197, 200, 203, 239, 244, 255, 274, 280, 347, 383, 398, 400, 433, 442, 453, 461, 467, 468, 474, 486, 489, 490, 523, 530, 535, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 581], "dai": [87, 91, 123, 125, 203, 231, 236, 238, 255, 262, 383, 394, 400, 409, 410, 486, 571, 578], "daniel": [441, 444, 446, 447], "dark": [1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 400, 408, 440, 445, 446, 449, 492, 498, 507, 576], "dark_matter_spectra": 26, "darkbit": 506, "darkblu": 491, "darkgreen": 491, "darkmatt": [6, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 258, 381, 400, 440, 479, 507], "darkmatterannihilationspectralmodel": [20, 258, 442, 479], "darkmatterdecayspectralmodel": [258, 446, 479], "darkorang": [455, 456], "darksusi": 506, "darwin": 416, "dash": [475, 479, 491], "dashboard": 410, "dat": [26, 87, 91, 224, 247, 456, 502, 506], "data": [6, 11, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 123, 124, 125, 126, 127, 128, 129, 136, 141, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 179, 186, 190, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 291, 296, 297, 298, 300, 301, 304, 305, 306, 315, 316, 319, 337, 343, 346, 350, 351, 359, 368, 369, 370, 371, 373, 374, 379, 381, 384, 387, 390, 391, 392, 393, 394, 396, 399, 400, 401, 402, 403, 404, 406, 408, 409, 412, 416, 417, 419, 420, 421, 422, 423, 425, 426, 427, 428, 431, 432, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 449, 450, 453, 458, 459, 460, 461, 465, 467, 468, 471, 474, 479, 480, 482, 483, 484, 487, 488, 489, 490, 491, 492, 493, 494, 496, 497, 500, 505, 506, 514, 516, 518, 520, 521, 522, 523, 524, 525, 527, 528, 530, 531, 537, 538, 550, 553, 555, 557, 558, 563, 575, 576, 577, 580, 581, 582], "data_extend": [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "data_nbyt": [191, 192, 201, 204], "data_path": 495, "data_reduct": 396, "data_shap": [101, 102, 105, 109, 110, 191, 192, 201, 204, 481, 531], "data_shape_ax": [192, 201, 204], "data_shape_imag": 204, "data_spectr": [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "data_stor": [82, 96, 173, 305, 306, 396, 416, 457, 465, 467, 473, 475, 477, 485, 490, 493, 495, 496, 500, 503, 515, 525, 527, 528], "data_storag": 515, "data_summari": 437, "dataaxi": 422, "databas": [386, 518], "dataclass": 380, "datafram": [87, 91], "dataset": [6, 15, 16, 19, 20, 26, 63, 94, 98, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 125, 126, 127, 130, 131, 132, 133, 135, 140, 141, 142, 143, 144, 146, 151, 152, 158, 163, 166, 168, 169, 170, 173, 174, 175, 178, 179, 180, 195, 200, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 327, 373, 376, 377, 381, 383, 384, 386, 388, 393, 395, 396, 397, 399, 400, 404, 408, 409, 410, 412, 414, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 438, 440, 441, 442, 443, 444, 445, 446, 447, 449, 451, 453, 455, 458, 459, 465, 466, 467, 469, 471, 475, 477, 479, 480, 486, 489, 490, 492, 493, 494, 496, 498, 500, 504, 515, 516, 518, 523, 525, 526, 527, 528, 538, 542, 544, 572, 573, 575, 576, 577, 578, 579, 580], "dataset1": [491, 514], "dataset1_prior": 491, "dataset2": [491, 514], "dataset2_prior": 491, "dataset_1": 516, "dataset_2": 516, "dataset_3fgl": 453, "dataset_3fhl": 453, "dataset_cta": 481, "dataset_empti": [452, 455, 457, 458, 465, 473, 477, 481, 485, 495, 527], "dataset_energy_depend": 466, "dataset_fak": 458, "dataset_fp": 474, "dataset_gammacat": 453, "dataset_hawc": 464, "dataset_hess": [464, 483], "dataset_imag": [465, 481], "dataset_kwarg": [93, 108], "dataset_lc": 474, "dataset_mak": [455, 457, 465, 473, 477, 485, 527], "dataset_nam": [108, 112, 113, 130, 224, 232, 247, 402, 408, 447, 463, 467, 468, 471, 481, 488, 503, 538], "dataset_on_off": [168, 174, 175, 178, 450, 455, 457, 458, 461, 465, 473, 477, 485, 527, 528], "dataset_on_off1": 450, "dataset_onoff": 392, "dataset_simul": 457, "dataset_stack": [455, 463], "datasetmodel": [213, 247, 263, 402, 428, 467, 468, 471, 477], "datasetread": 106, "datasets1": 377, "datasets2": 377, "datasets3": 377, "datasets_fil": [16, 456, 460, 461, 463, 502], "datasets_hess": 464, "datasets_in_phase_bin_3": 404, "datasets_mak": 485, "datasets_nam": [19, 20, 26, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 427, 464, 488, 502, 538], "datasets_read": [488, 494], "datasets_sl": 481, "datasets_to_fit": 477, "datasetsconfig": 16, "datasetsmak": [171, 433, 445, 485, 490, 518], "datasetsmetadata": 407, "datasetwrit": 107, "datastor": [16, 89, 96, 173, 305, 306, 386, 390, 395, 412, 416, 422, 433, 434, 436, 437, 439, 445, 446, 452, 455, 456, 457, 460, 461, 463, 465, 467, 471, 473, 475, 477, 485, 490, 495, 496, 500, 502, 515, 518, 525, 527, 528, 578], "datastorecheck": 440, "datastoreindex": 390, "datastoreinmemori": 390, "datastoremak": [422, 433], "datastoremetadata": 407, "datastoreobserv": [174, 386, 390, 426, 439], "datastorexml": 390, "datasum": [83, 86, 88, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 150, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206], "datat": [87, 91], "date": [87, 91, 104, 124, 361, 397, 405, 406, 407, 409, 417, 439, 456, 459, 460, 461, 463, 489, 496, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 582], "datefmt": [16, 456, 460, 461, 463, 502, 578], "dateref": 459, "datetim": [104, 124, 407], "datetime64": [87, 91], "datfix": 459, "daughter": 407, "david": [390, 395, 420, 440, 441], "dc": 463, "dc1": [389, 400, 441, 467, 475, 484, 488, 493], "dc2": 389, "ddof": 478, "de": [19, 20, 26, 67, 100, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 304, 406, 409, 428, 431, 434, 479, 577], "deabsorb": 451, "deactiv": 411, "dead": [83, 86, 88, 337, 390], "dead_tim": [83, 88, 337], "deadc": 390, "deadlin": [389, 393], "deadtim": [88, 90, 186, 458, 467, 471, 493], "deadtime_fract": [88, 90], "deal": [86, 380, 386, 395, 396, 458, 467, 473, 498, 518], "debanjan": 422, "debian": [397, 413, 435], "debug": [11, 380, 386, 391, 396, 442, 455, 482, 486, 518, 578], "dec": [67, 83, 85, 87, 88, 91, 94, 141, 142, 176, 380, 381, 385, 389, 391, 393, 396, 397, 400, 418, 444, 450, 455, 457, 459, 461, 465, 468, 472, 473, 475, 477, 480, 485, 487, 493, 494, 495, 496, 503, 504, 506, 518, 522, 527, 582], "dec_pnt": 496, "dec_tru": 393, "decad": [17, 18, 21, 22, 24, 25, 27, 112, 113, 198, 282, 446, 467], "decai": [17, 18, 20, 21, 22, 23, 24, 25, 27, 231, 238, 255, 403, 467, 474, 478, 489, 506, 568], "decemb": 418, "decid": [380, 386, 389, 390, 391, 392, 394, 395, 399, 402, 403, 404, 409, 456, 490, 502], "decim": [87, 91, 303], "decis": [380, 381], "declar": [15, 87, 91, 263, 359, 360, 383, 387, 388, 391, 396, 397, 403, 410, 427, 517], "decor": [359, 360, 380, 407, 578], "decorrel": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "decoupl": 69, "dedic": [383, 394, 395, 404, 406, 407, 410, 426, 427, 428, 446, 455, 456, 457, 463, 475, 483, 502, 503, 515], "deduc": [404, 446], "deep": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 86, 87, 90, 91, 99, 100, 101, 102, 104, 105, 109, 110, 123, 124, 125, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 463], "deepcopi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 271, 273, 275], "def": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 289, 359, 360, 380, 381, 391, 392, 393, 394, 403, 404, 407, 408, 455, 463, 477, 483, 489, 491, 500, 527, 578, 580], "def_unit": [450, 458, 460, 463, 465, 471, 474, 493], "defalut": 113, "default": [11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 65, 67, 77, 78, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 174, 176, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 287, 288, 289, 290, 291, 295, 296, 297, 298, 303, 304, 305, 307, 318, 319, 320, 325, 327, 328, 334, 335, 336, 337, 339, 340, 343, 346, 348, 349, 351, 357, 362, 363, 367, 369, 370, 371, 373, 374, 376, 377, 380, 386, 392, 396, 397, 403, 406, 410, 416, 422, 424, 425, 426, 428, 431, 433, 439, 440, 442, 443, 444, 445, 446, 455, 456, 457, 459, 461, 463, 467, 468, 473, 474, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 494, 502, 503, 504, 514, 516, 518, 525, 528, 529, 530, 531, 535, 536, 537, 544, 550, 554, 578, 582], "default_alpha": [21, 27], "default_beta": 27, "default_css": [87, 91], "default_css_nb": [87, 91], "default_epoch": 363, "default_gamma": 27, "default_hdu_t": 82, "default_interp_kwarg": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 438], "default_nam": [87, 91], "default_notebook_table_class": [87, 91], "default_obs_t": 82, "default_paramet": [19, 20, 26, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 408], "default_scale_radiu": [17, 21, 22, 24, 25, 27], "default_unit": [147, 148, 153, 155, 160, 165, 484], "defer": [105, 110], "defin": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 43, 44, 45, 46, 47, 52, 53, 83, 84, 87, 88, 90, 91, 95, 101, 102, 103, 104, 105, 108, 109, 110, 115, 117, 122, 123, 124, 125, 126, 127, 129, 130, 133, 150, 151, 152, 154, 158, 161, 162, 163, 164, 166, 169, 170, 174, 179, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 214, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 289, 291, 297, 299, 319, 329, 334, 335, 336, 337, 340, 370, 371, 380, 381, 383, 385, 386, 389, 391, 392, 393, 394, 395, 396, 397, 401, 402, 404, 405, 406, 407, 408, 411, 412, 413, 414, 421, 422, 425, 428, 431, 434, 438, 439, 444, 445, 446, 451, 456, 458, 459, 460, 461, 463, 464, 466, 469, 471, 474, 475, 477, 478, 480, 481, 482, 483, 484, 485, 486, 488, 489, 490, 491, 493, 494, 495, 502, 504, 514, 515, 516, 518, 520, 523, 527, 528, 530, 535, 537, 539, 540, 541, 544, 545, 548, 549, 551, 552, 554, 556, 557, 559, 560, 561, 562, 563, 573, 575, 576, 577, 578, 579, 580, 581], "definit": [83, 84, 86, 88, 90, 100, 102, 104, 105, 109, 110, 124, 170, 201, 289, 304, 318, 380, 389, 390, 394, 401, 402, 403, 404, 407, 423, 427, 428, 444, 446, 447, 455, 457, 460, 469, 473, 484, 485, 502, 514, 516, 523, 524, 529, 531, 535, 536, 580], "deform": 531, "deg": [16, 33, 34, 38, 47, 67, 83, 85, 87, 91, 94, 96, 102, 105, 109, 110, 112, 113, 114, 115, 117, 118, 122, 127, 128, 133, 141, 142, 152, 154, 155, 160, 161, 162, 163, 164, 165, 166, 168, 176, 177, 179, 181, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 224, 225, 234, 237, 247, 251, 260, 261, 263, 305, 306, 339, 375, 380, 381, 391, 394, 396, 403, 404, 407, 416, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 502, 503, 504, 515, 516, 518, 520, 522, 525, 527, 528, 529, 530, 531, 535, 536, 537, 538, 539, 540, 541, 542], "deg2": 496, "degre": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 105, 109, 110, 112, 113, 114, 120, 123, 125, 135, 144, 192, 193, 194, 196, 199, 204, 205, 206, 224, 247, 251, 263, 274, 446, 450, 452, 456, 461, 466, 473, 477, 480, 485, 486, 487, 493, 502, 516, 530, 531, 580, 581], "deil": [385, 386, 387, 388, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 419, 420, 421, 422, 423, 424, 425, 426, 432, 435, 436, 437, 438, 439, 440, 441], "deiml": 439, "dej2000": [480, 504], "del": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 391], "delai": [401, 405], "deleg": 396, "delet": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 380, 391, 410, 411, 412, 414, 446, 488], "delete_interv": 86, "delimit": 125, "deliv": 396, "delta": [19, 20, 23, 87, 91, 122, 123, 128, 131, 133, 155, 203, 253, 254, 287, 303, 445, 451, 459, 483, 491, 516, 523, 524, 536, 537, 539, 580], "delta_t": [120, 287, 466], "demonstr": [396, 421, 424, 425, 426, 427, 428, 433, 445, 446, 472, 478, 486, 488, 498, 530], "denot": [102, 109, 404, 514], "densiti": [17, 18, 21, 22, 24, 25, 27, 28, 30, 35, 36, 39, 40, 45, 52, 101, 125, 155, 206, 333, 336, 373, 393, 461, 463, 479, 480, 491, 506, 508, 512, 522, 523, 524, 577], "dep": 445, "depend": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 88, 100, 102, 103, 108, 109, 120, 123, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 180, 191, 192, 201, 204, 206, 224, 239, 247, 263, 307, 360, 380, 382, 383, 384, 386, 391, 392, 393, 394, 395, 398, 399, 404, 406, 407, 408, 409, 410, 411, 412, 413, 414, 418, 420, 424, 425, 428, 435, 437, 440, 441, 443, 445, 446, 447, 449, 450, 454, 458, 460, 461, 470, 473, 480, 483, 484, 485, 486, 487, 488, 490, 491, 493, 494, 498, 514, 518, 522, 526, 527, 530, 544], "deploy": 406, "deposit": 406, "deprec": [16, 84, 85, 90, 104, 124, 422, 431, 444, 445, 446, 447, 463, 469, 494, 542], "deprecated_argument_funct": 380, "deprecated_argument_function_kwarg": 380, "deprecated_attribut": 380, "deprecated_funct": 380, "deprecated_renamed_argu": 380, "deprecatedparseprotocol": [16, 84, 90, 104, 124], "deprecation_polici": 405, "depriv": 525, "depth": [16, 84, 90, 104, 124, 347, 412, 417, 451, 478, 544], "deriv": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 54, 100, 122, 126, 130, 133, 134, 143, 274, 380, 392, 393, 398, 401, 404, 459, 482, 493, 495, 516, 530, 579, 580], "describ": [27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 95, 125, 126, 128, 133, 162, 202, 211, 276, 299, 381, 383, 385, 386, 389, 390, 392, 393, 394, 396, 397, 399, 400, 403, 404, 405, 406, 417, 423, 431, 439, 440, 456, 459, 467, 468, 478, 482, 483, 489, 491, 493, 495, 496, 502, 514, 518, 522, 531, 532, 577, 578, 579, 580], "descript": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 87, 91, 127, 211, 381, 385, 386, 394, 400, 405, 406, 417, 442, 446, 463, 471, 480, 483, 486, 493, 495, 502, 503, 518], "description1": 381, "description2": 381, "description3": 381, "description_width": [463, 471, 486, 502, 503], "descriptionstyl": [463, 471, 486, 502, 503], "descriptor": [87, 88, 91, 102, 105, 109, 110, 273, 316, 381, 427], "design": [385, 386, 389, 390, 393, 394, 396, 400, 402, 404, 405, 419, 439, 446], "desir": [16, 84, 87, 90, 91, 104, 124, 161, 191, 192, 201, 204, 289, 355, 356, 357, 486, 504, 531], "desktop": 417, "destin": 11, "detail": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 100, 102, 105, 109, 110, 125, 126, 151, 152, 158, 163, 166, 169, 192, 204, 206, 211, 214, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 273, 274, 275, 380, 381, 383, 385, 388, 389, 390, 393, 394, 395, 399, 400, 401, 405, 406, 411, 415, 417, 418, 425, 429, 430, 449, 450, 451, 455, 457, 458, 459, 460, 465, 466, 467, 470, 471, 474, 477, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 495, 496, 498, 503, 504, 514, 515, 517, 523, 527, 528, 530, 575, 576, 578, 582], "detect": [59, 141, 142, 286, 370, 371, 381, 396, 399, 400, 402, 419, 425, 426, 427, 437, 439, 440, 446, 449, 462, 480, 493, 495, 498, 577, 580], "detect_t": 400, "detector": [83, 88, 103, 108, 155, 487, 495, 523, 577], "determin": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 112, 113, 132, 154, 160, 162, 164, 176, 177, 179, 181, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 307, 329, 391, 395, 398, 406, 433, 445, 446, 450, 457, 460, 461, 466, 472, 485, 487, 508, 576], "determinist": 380, "deti": [83, 103, 108, 393, 493], "detx": [83, 103, 108, 393, 493], "dev": [11, 16, 82, 84, 90, 104, 124, 380, 382, 383, 396, 406, 409, 410, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 544, 572, 573], "dev194": [104, 124, 417, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "develop": [381, 385, 386, 388, 389, 390, 391, 393, 394, 396, 397, 399, 400, 401, 402, 403, 405, 406, 408, 409, 410, 413, 417, 419, 432, 439, 440, 441, 493], "deviat": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 126, 194, 206, 211, 233, 289, 293, 483, 491], "devoid": [455, 521], "devop": 406, "devot": 498, "dex": 307, "df": [87, 91, 120, 135, 144, 466, 483, 580], "diagnosi": 389, "diagnost": 396, "diagon": [150, 151, 152, 398, 408, 494], "diagram": 582, "dialog": [412, 414], "diamet": [192, 193, 194, 452], "diamond": 490, "dict": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 69, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 96, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 118, 120, 123, 124, 125, 126, 127, 128, 130, 131, 133, 135, 136, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 178, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 213, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 281, 286, 287, 288, 289, 290, 294, 305, 319, 327, 328, 343, 346, 347, 348, 351, 361, 362, 363, 364, 367, 368, 369, 373, 374, 375, 376, 377, 380, 395, 397, 401, 404, 407, 424, 428, 431, 439, 456, 463, 472, 473, 477, 480, 483, 486, 490, 502, 503, 530, 535, 544], "dict_kei": [451, 544], "dictionari": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 84, 87, 88, 89, 90, 91, 92, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 120, 123, 124, 125, 126, 127, 130, 131, 133, 135, 136, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 168, 178, 191, 192, 193, 194, 196, 197, 199, 200, 201, 202, 204, 205, 206, 210, 211, 213, 214, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 288, 289, 290, 294, 317, 343, 346, 347, 348, 351, 361, 364, 374, 381, 397, 399, 404, 407, 408, 455, 457, 463, 483, 484, 490, 491, 573], "dictionnari": 373, "did": [77, 387, 394, 399, 400, 401, 403, 406, 422, 450, 458, 460, 463, 465, 471, 474, 483, 491, 493], "didn": [83, 88, 387, 390, 394, 397, 506], "diff": [101, 102, 105, 109, 110, 380, 383, 388, 392, 463, 471, 503], "diff_flux": 479, "diff_flux_point": [101, 481], "differ": [26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 59, 67, 80, 86, 87, 91, 94, 100, 101, 120, 122, 123, 125, 126, 127, 130, 131, 133, 141, 147, 148, 149, 150, 153, 155, 157, 160, 165, 175, 193, 194, 196, 199, 200, 201, 202, 204, 205, 206, 286, 287, 288, 290, 337, 341, 355, 356, 371, 380, 381, 383, 385, 386, 388, 390, 391, 392, 393, 394, 396, 397, 398, 400, 401, 402, 403, 404, 406, 408, 410, 412, 414, 423, 426, 428, 438, 441, 442, 443, 445, 447, 450, 455, 456, 457, 459, 460, 463, 466, 467, 468, 469, 472, 474, 477, 478, 480, 481, 482, 483, 485, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 504, 506, 514, 516, 518, 523, 530, 531, 536, 537, 576, 578, 579, 580], "different": 388, "differenti": [23, 79, 123, 125, 132, 193, 194, 196, 198, 202, 205, 206, 248, 263, 279, 280, 334, 386, 391, 398, 404, 438, 486, 489, 494, 504, 516, 577], "differential_flux": 125, "difficult": [391, 394, 410], "diffus": [68, 193, 194, 196, 202, 205, 206, 281, 380, 396, 399, 440, 441, 463, 467, 480, 486, 488, 489, 493, 575], "diffuse_cub": 489, "diffuse_galactic_fermi": 488, "diffuse_iem": [488, 494], "diffuse_iso": [488, 494], "diffuse_model": 281, "difrsp0": [494, 504], "difrsp1": [494, 504], "difrsp2": [494, 504], "difrsp3": [494, 504], "difrsp4": [494, 504], "digit": 380, "dilat": [206, 431], "dim": [160, 336, 436, 437, 465, 577], "dimens": [46, 53, 102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 175, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 271, 272, 275, 307, 319, 373, 396, 428, 439, 441, 445, 447, 483, 484, 486, 489, 498, 514, 530, 531, 536], "dimension": [31, 32, 37, 68, 87, 91, 191, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 233, 234, 237, 282, 320, 333, 386, 394, 408, 412, 437, 459, 482, 483, 484, 486, 489, 504, 522, 524, 530, 531, 576, 577], "dimensionless": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 155, 268, 269, 306, 469, 489], "dimitri": [431, 433], "dipol": [51, 54], "dirac": 19, "direct": [91, 104, 165, 183, 184, 187, 189, 198, 225, 234, 237, 311, 314, 381, 386, 392, 394, 399, 401, 404, 407, 431, 449, 454, 458, 485, 498, 515, 523, 524, 526, 527, 535, 576, 577], "directional_offset_bi": [450, 458], "directli": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 69, 83, 84, 87, 90, 91, 104, 124, 134, 140, 143, 144, 165, 180, 193, 194, 196, 202, 205, 206, 271, 273, 275, 380, 382, 383, 385, 387, 388, 391, 392, 393, 394, 398, 400, 407, 412, 414, 415, 419, 421, 422, 423, 425, 439, 446, 453, 455, 456, 458, 463, 464, 465, 468, 469, 471, 473, 474, 478, 480, 481, 482, 483, 484, 486, 487, 488, 489, 490, 493, 494, 502, 503, 504, 506, 514, 518, 523, 527, 530, 554, 580], "directori": [11, 82, 87, 380, 396, 456, 466, 496, 502, 504, 515, 518, 578], "dirk": [422, 436, 438], "disabl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 431], "disable_unicode_literals_warn": 380, "disadvantag": 578, "disagr": 385, "disambigu": 385, "disc": [460, 461, 463, 468], "discard": [407, 477, 480], "discard_on_copi": [87, 91], "discarded_ind": 480, "discarded_spati": 480, "discarded_t": 480, "disccus": 389, "discourag": 380, "discov": 578, "discrep": 455, "discret": [91, 136, 298, 303, 393, 447, 483, 530], "discrete_correl": 136, "discrete_correlation_dict": 136, "discrete_correlation_err": [136, 298], "discuss": [13, 59, 276, 380, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 410, 417, 439, 491, 496, 507, 582], "disjoint": 394, "disk": [82, 110, 152, 155, 194, 204, 206, 225, 237, 239, 358, 379, 380, 390, 391, 392, 396, 403, 404, 447, 449, 450, 455, 463, 464, 486, 487, 488, 489, 529, 532, 537, 541, 543], "disk_inc": 394, "diskspatialmodel": [72, 257, 403, 424, 445, 488, 489, 535], "dismiss": 100, "disp": [522, 523], "dispatch": 391, "dispers": [82, 88, 102, 103, 105, 107, 108, 109, 110, 111, 114, 116, 150, 151, 152, 155, 173, 179, 180, 183, 184, 187, 380, 386, 391, 392, 393, 425, 427, 437, 438, 439, 441, 450, 452, 455, 456, 463, 467, 485, 495, 496, 502, 503, 514, 523, 526, 577], "displac": 311, "displai": [11, 15, 82, 87, 91, 118, 130, 133, 211, 294, 328, 373, 377, 380, 381, 410, 412, 414, 431, 434, 445, 446, 450, 452, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 469, 471, 472, 474, 475, 480, 481, 482, 483, 486, 488, 489, 493, 494, 496, 518, 578], "display_length": [87, 91], "disrupt": [420, 421], "dissolv": 424, "dist": [330, 410], "distanc": [17, 18, 21, 22, 23, 24, 25, 27, 41, 46, 47, 127, 141, 142, 201, 248, 275, 303, 310, 336, 394, 437, 444, 457, 459, 469, 479, 480, 483, 512, 527, 554], "distance_gc": [17, 18, 21, 22, 24, 25, 27, 479], "distance_max": [46, 47, 336, 480], "distance_min": [47, 336, 480], "distance_refer": 480, "distibut": [134, 143], "distinct": [395, 396, 401, 495, 581], "distinguish": [288, 290, 404, 407, 450, 486], "distort": [394, 423], "distrib": [101, 134, 143, 455], "distribut": [13, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 45, 46, 83, 101, 108, 134, 135, 143, 144, 155, 190, 230, 233, 242, 248, 288, 290, 329, 330, 334, 373, 376, 378, 379, 380, 384, 385, 388, 393, 398, 399, 402, 405, 406, 409, 410, 413, 424, 433, 439, 445, 446, 450, 455, 457, 458, 461, 463, 467, 469, 471, 472, 483, 488, 491, 493, 504, 506, 518, 522, 523, 525, 531, 539, 554, 577, 579, 580], "divers": 404, "divid": [192, 198, 203, 401, 404, 457, 467, 490, 495, 496], "divis": 198, "djangoproject": 400, "djuvsland": 446, "dl3": [6, 16, 82, 83, 86, 88, 91, 96, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 179, 197, 198, 305, 306, 381, 386, 388, 389, 391, 400, 407, 412, 416, 422, 425, 427, 433, 442, 446, 452, 455, 456, 457, 460, 461, 463, 472, 473, 477, 485, 487, 490, 500, 502, 503, 514, 518, 520, 521, 522, 524, 525, 527, 528, 576, 577], "dl4": [99, 101, 102, 105, 109, 110, 118, 122, 126, 130, 133, 158, 179, 381, 386, 407, 412, 427, 474, 481, 482, 483, 518, 576, 577], "dl5": [118, 122, 126, 130, 133, 407, 446, 474, 482, 483, 576, 577], "dl6": [118, 122, 126, 130, 133, 482, 576, 577], "dm": [19, 20, 26, 427, 442, 479], "dm_exampl": 506, "dmfitfunct": 506, "dmitisej": 477, "dmpipe": 506, "dmprofil": [17, 21, 22, 23, 24, 25, 27, 479, 506], "dmsky": 506, "dn": [230, 242, 479, 577], "dnde": [19, 20, 26, 67, 123, 124, 125, 132, 134, 136, 137, 138, 139, 143, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 404, 431, 453, 455, 456, 465, 469, 480, 481, 482, 489, 494, 502, 504, 516], "dnde_cu": 280, "dnde_err": [123, 125, 134, 143, 516], "dnde_errn": [67, 123, 125, 134, 143, 480], "dnde_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "dnde_errp": [67, 123, 125, 134, 143, 480], "dnde_ref": [123, 125, 404], "dnde_scan_axi": [134, 143], "dnde_scan_valu": [123, 125], "dnde_ul": [67, 123, 125, 134, 143, 480, 504], "do": [13, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 90, 95, 100, 104, 124, 150, 161, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 331, 373, 381, 383, 385, 386, 387, 390, 394, 395, 396, 397, 398, 399, 400, 403, 404, 407, 409, 410, 412, 414, 425, 451, 453, 455, 456, 458, 459, 460, 461, 463, 465, 466, 467, 471, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 493, 494, 502, 503, 504, 514, 518, 525, 530, 575, 578, 581, 582], "do_someth": 380, "doc": [11, 13, 16, 83, 84, 87, 90, 91, 104, 124, 150, 192, 198, 201, 204, 211, 224, 247, 307, 344, 380, 381, 383, 385, 388, 394, 396, 397, 399, 400, 409, 416, 417, 419, 425, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 531, 542, 544, 550, 566, 572, 573, 577, 578, 582], "docker": [397, 410], "dockerfil": [388, 409, 410], "docstr": [380, 400, 406, 431, 432, 433, 435, 438, 444, 445, 446, 447, 463, 489], "doctest": [161, 368, 381], "document": [11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 315, 319, 329, 354, 367, 380, 382, 384, 385, 387, 388, 390, 394, 396, 397, 399, 401, 403, 405, 406, 410, 411, 416, 417, 418, 425, 427, 428, 431, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 486, 488, 493, 495, 496, 518, 529, 530, 531, 578], "doe": [16, 84, 87, 90, 91, 104, 124, 126, 130, 136, 153, 163, 166, 200, 239, 274, 286, 380, 381, 387, 388, 390, 392, 394, 395, 397, 399, 400, 403, 404, 406, 407, 422, 431, 442, 450, 451, 455, 458, 460, 463, 465, 466, 480, 483, 484, 485, 486, 487, 495, 506, 518, 527, 578], "doesn": [69, 380, 381, 385, 387, 388, 394, 397, 398, 400, 447, 493, 494, 578], "dof": 580, "doi": [135, 144, 406], "domain": [193, 194, 196, 202, 205, 206, 380, 394, 478], "domenico": 437, "dominguez": [226, 227, 403, 451, 544], "dominquez": 226, "don": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 150, 379, 380, 383, 385, 387, 388, 397, 407, 410, 452, 455, 460, 465, 472, 487, 489, 576, 578, 581, 582], "donath": [389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "done": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 123, 126, 151, 152, 158, 163, 166, 373, 380, 381, 383, 385, 386, 387, 391, 393, 394, 395, 396, 398, 399, 400, 403, 404, 406, 409, 412, 416, 440, 445, 452, 458, 463, 464, 468, 469, 471, 474, 475, 481, 482, 485, 486, 489, 490, 514, 518, 526, 527, 531, 563, 580, 582], "dos2unix": 380, "dot": [50, 51, 54, 109, 110, 193, 194, 196, 202, 205, 206, 445], "doubl": [27, 122, 136, 137, 294, 406, 438, 446], "doubling_dict": 294, "down": [50, 51, 54, 133, 385, 387, 390, 394, 399, 409, 423, 481, 494, 581], "downgrad": [192, 379], "download": [67, 94, 101, 125, 383, 388, 396, 397, 400, 407, 409, 411, 412, 414, 416, 420, 421, 423, 424, 431, 440, 441, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "downsampl": [102, 105, 109, 110, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 422, 428, 437, 447, 481, 482], "downsampled_energi": 481, "downsampling_factor": [133, 465], "downward": [288, 290], "dozen": 380, "dpp": 406, "dr": [17, 18, 21, 22, 24, 25, 27, 537], "dr1": [16, 65, 82, 83, 86, 88, 91, 96, 155, 173, 269, 305, 306, 381, 388, 400, 416, 449, 452, 455, 456, 461, 463, 473, 477, 485, 490, 500, 502, 503, 515, 518, 520, 521, 522, 524, 525, 527, 528, 532, 564], "dr2": [65, 269, 431, 449, 532, 564], "dr3": [65, 268, 449, 489, 532, 564], "dr4": [65, 446], "draft": [380, 384, 385, 408, 440], "drag": 383, "draw": [33, 194, 329, 393, 491], "drawback": [395, 399], "drawn": [329, 393], "drift": [85, 94, 95, 442], "drive": 396, "driven": [11, 15, 386, 396, 398, 400, 439, 498, 517], "drop": [52, 53, 102, 105, 109, 110, 123, 125, 130, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 225, 232, 273, 365, 384, 385, 396, 397, 402, 421, 424, 425, 428, 431, 438, 441, 486, 514], "ds9": [83, 192, 201, 204, 208, 224, 247, 380, 381, 394, 423, 487, 489, 531], "ds9parser": 394, "dss": 390, "dt": [87, 91], "dtime_t": 478, "dtype": [33, 38, 87, 91, 111, 116, 148, 150, 153, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 224, 247, 307, 380, 408, 457, 460, 469, 477, 480, 481, 482, 484, 485, 486, 493, 494, 504, 516], "duck": [16, 84, 90, 104, 124], "due": [59, 87, 91, 380, 408, 434, 449, 454, 455, 486, 491, 493, 498, 554, 578], "dummi": [109, 110, 394, 460, 518], "dump": [16, 84, 90, 104, 124, 396], "dumps_kwarg": [16, 84, 90, 104, 124], "duplic": [87, 91, 100, 151, 380, 381, 383, 386, 400, 401, 404, 428, 431, 447], "durat": [83, 86, 88, 94, 458, 467, 471, 473, 477, 493, 515, 518], "dure": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 52, 53, 83, 84, 85, 88, 90, 95, 102, 104, 105, 109, 110, 124, 170, 286, 381, 388, 392, 396, 399, 400, 402, 405, 406, 407, 408, 409, 410, 425, 428, 445, 446, 456, 457, 467, 472, 473, 477, 481, 485, 487, 491, 503, 514, 515, 577, 581], "dust": 226, "duti": 406, "dwarf": 506, "dx": [33, 311], "dy": [33, 311], "dynam": [377, 515], "dz": 311, "e": [13, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 50, 51, 54, 59, 67, 68, 82, 83, 84, 85, 86, 87, 90, 91, 95, 104, 114, 124, 125, 126, 141, 150, 151, 152, 153, 155, 179, 186, 192, 193, 194, 196, 198, 200, 202, 204, 205, 206, 211, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 288, 290, 294, 307, 309, 313, 339, 347, 358, 369, 370, 375, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 409, 410, 412, 413, 414, 416, 417, 419, 420, 421, 425, 431, 432, 433, 437, 439, 440, 441, 445, 447, 449, 451, 452, 453, 455, 456, 457, 458, 461, 464, 465, 466, 467, 468, 469, 471, 472, 473, 475, 477, 478, 479, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 497, 498, 500, 502, 503, 504, 506, 513, 514, 515, 516, 518, 522, 523, 528, 529, 530, 535, 536, 537, 544, 545, 547, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 572, 575, 577, 578, 579, 580, 581, 582, 583], "e1k": 477, "e2dnd": [19, 20, 26, 123, 124, 125, 132, 136, 137, 138, 139, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 404, 431, 438, 450, 451, 453, 455, 456, 457, 464, 480, 482, 503, 504, 516, 518, 554], "e2dnde_err": [123, 125], "e2dnde_errn": [123, 125, 480], "e2dnde_errp": [123, 125, 480], "e2dnde_ref": [123, 125], "e2dnde_ul": [123, 125, 480], "e501": [19, 20, 150, 186, 197, 198, 204, 226, 377], "e_": [19, 20, 26, 50, 52, 53, 150, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 514, 520, 522, 523, 524, 545, 549, 557, 559, 560], "e_0": [228, 229, 230, 241, 242, 253, 254, 264, 267, 268, 269, 548, 549, 552, 554, 556, 559, 560, 561, 562], "e_b": 403, "e_cut": [67, 480], "e_cutoff": 554, "e_d": [253, 254], "e_edg": 428, "e_max": [67, 125, 404, 450, 455, 456, 457, 468, 472, 480, 481, 482, 483, 486, 491, 504, 516], "e_min": [67, 125, 404, 450, 455, 456, 457, 468, 472, 480, 481, 482, 483, 486, 491, 494, 504, 516], "e_peak": [230, 242], "e_reco": [111, 116, 150, 155, 475, 577], "e_ref": [67, 125, 404, 450, 455, 456, 472, 480, 482, 502, 504, 516], "e_refe_mine_maxdndednde_errpdnde_errndnde_ulsqrt_tsis_ul": 453, "e_refe_mine_maxdndednde_errtssqrt_tsnprednpred_excessstatstat_nullcountssuccess": 465, "e_sn": [43, 44, 52], "e_tru": [111, 116, 155, 475, 494], "each": [11, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 86, 87, 91, 92, 100, 102, 105, 108, 109, 110, 115, 117, 118, 120, 122, 123, 125, 126, 130, 132, 133, 135, 137, 138, 139, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 174, 175, 190, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 211, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 247, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 298, 305, 344, 369, 378, 380, 383, 385, 386, 388, 389, 390, 392, 393, 394, 395, 396, 397, 400, 401, 404, 406, 410, 411, 418, 425, 428, 439, 442, 445, 447, 452, 458, 459, 461, 463, 464, 465, 467, 468, 472, 473, 474, 475, 477, 479, 480, 481, 483, 484, 485, 486, 488, 489, 490, 491, 495, 496, 503, 507, 513, 514, 515, 518, 522, 523, 524, 530, 531, 538, 554, 555, 577, 578, 581, 582], "eager": 396, "earli": [394, 399, 400, 493], "earlier": [387, 406], "earth": [41, 88, 279, 494], "earth_azimuth_angl": [494, 504], "earthloc": [83, 85, 88, 90, 94, 97, 317, 407], "easi": [380, 381, 386, 391, 394, 395, 396, 399, 400, 404, 407, 425, 431, 439, 486, 487, 494, 515, 575, 576, 578, 582], "easier": [380, 386, 391, 399, 404, 439, 442, 493], "easiest": 413, "easili": [87, 91, 125, 386, 391, 392, 396, 407, 412, 413, 472, 473, 483, 484, 486, 494, 504, 578], "ebel": 459, "ebl": [226, 227, 276, 398, 403, 425, 428, 438, 445, 447, 449, 454, 489, 498, 532, 564], "ebl_data_builtin": [451, 544], "ebl_dominguez11": [227, 544], "ebl_franceschini": [227, 276], "ebl_franceschini_2017": 227, "ebl_saldana": 227, "eblabsorbtionnormspectralmodel": 403, "eblabsorptionnormspectralmodel": [258, 403, 428, 451, 489, 544], "ebltabl": 451, "ebound": [150, 198, 531], "ebreak": [218, 264, 545, 559], "ec": [475, 489, 531], "eccentr": [225, 234, 237, 535, 536, 537], "echo": 578, "eco": 406, "ecosystem": 407, "ecpl": [67, 80, 228, 229, 230, 286, 403, 437, 453, 480, 489], "ecpl_norm": 550, "ecsv": [59, 63, 125, 392], "ecut": [228, 267, 549, 560], "edelson": [136, 295, 298, 478], "edelson1988": [136, 298], "edelson2002": 295, "edg": [102, 105, 109, 110, 118, 120, 122, 126, 129, 130, 133, 146, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 164, 165, 173, 174, 179, 190, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 225, 373, 394, 404, 422, 428, 431, 450, 451, 455, 464, 465, 466, 467, 468, 478, 482, 484, 485, 486, 487, 494, 495, 502, 525, 535], "edge_max": 535, "edge_min": 535, "edge_width": [225, 488, 535], "edgecolor": [377, 455, 457, 459, 465, 466, 469, 475, 479, 527, 535, 536, 537], "edges_max": [195, 197, 198, 203, 486], "edges_min": [195, 197, 198, 203, 486], "edisp": [16, 82, 87, 88, 96, 102, 105, 106, 109, 110, 111, 116, 150, 151, 152, 155, 159, 173, 179, 180, 183, 184, 263, 305, 306, 381, 390, 391, 392, 393, 396, 426, 428, 431, 437, 438, 439, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 471, 473, 474, 477, 481, 485, 490, 493, 494, 495, 496, 502, 514, 522, 523, 577], "edisp2d": [152, 155, 381], "edisp2d_ax": 155, "edisp3d": 484, "edisp_": 514, "edisp_2d": [82, 87, 155, 493, 496], "edisp_3d": 484, "edisp_ev": 484, "edisp_kernel": [150, 481, 522], "edisp_kernel_map": [151, 495], "edisp_map": [103, 108, 151, 152, 484, 522], "edisp_new": 484, "edispkernel": [105, 111, 116, 151, 155, 183, 426, 522], "edispkernelmap": [102, 105, 106, 109, 110, 114, 152, 158, 159, 163, 166, 173, 180, 183, 427, 428, 459, 485, 494, 518, 522], "edispmap": [102, 103, 105, 108, 109, 110, 151, 158, 159, 163, 166, 173, 180, 183, 184, 392, 393, 401, 421, 424, 425, 426, 428, 431, 484, 514, 522], "edit": [381, 383, 385, 387, 388, 389, 396, 400, 409, 410, 413, 502, 578], "editor": [381, 406, 456, 502, 578], "editori": 406, "edm": 483, "edu": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 192, 201, 204, 211, 224, 244, 247, 279, 280, 289, 296, 298, 400, 483, 531], "eemin": 554, "eff": [153, 520, 523, 536, 537], "eff_area": 484, "effarea": 484, "effect": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 46, 82, 87, 88, 91, 105, 107, 152, 153, 179, 180, 185, 187, 188, 201, 224, 247, 370, 371, 380, 385, 390, 391, 393, 394, 404, 435, 437, 455, 467, 469, 472, 478, 491, 495, 496, 498, 502, 523, 531, 536, 537, 577], "effective_area": [159, 393, 493], "effective_livetim": 485, "effective_times_src": 485, "effectivearea3d": 484, "effectiveareat": [392, 419, 431, 435], "effectiveareatable2d": [88, 152, 159, 165, 187, 386, 435, 484, 493, 520], "effici": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 105, 110, 385, 391, 392, 393, 394, 395, 402, 453, 490, 523, 528, 580], "effort": [387, 389, 396, 397, 399, 400, 403, 422, 514], "eflux": [19, 20, 26, 123, 124, 125, 136, 137, 138, 139, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 404, 431, 469, 489, 516], "eflux_err": [123, 125, 404], "eflux_errn": [123, 125], "eflux_errp": [123, 125], "eflux_ref": [123, 125], "eflux_ul": [123, 125], "efopf8fn": 477, "eg": [380, 447, 451, 463, 471, 474, 477, 481, 484, 488, 489, 491], "egal": 493, "egg": 413, "einasto": [21, 506], "either": [67, 82, 87, 88, 91, 95, 110, 123, 125, 155, 170, 191, 192, 193, 194, 196, 198, 199, 200, 201, 202, 204, 205, 206, 239, 289, 307, 337, 369, 381, 383, 385, 387, 394, 396, 399, 402, 406, 412, 431, 445, 456, 463, 469, 474, 481, 483, 489, 491, 502, 514, 516, 518, 529, 531, 575, 578], "ej": [50, 52, 53], "eject": 52, "ejecta": 52, "el": [26, 479], "elabor": [406, 459], "elaps": [83, 389, 577], "electron": [50, 279, 493, 554], "element": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 92, 100, 102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 373, 398, 445, 447, 480, 486, 530], "elementtre": 493, "elev": 395, "elif": [380, 394, 407], "elli": [419, 432], "ellips": [225, 394, 531, 535], "ellipseannulusskyregion": [527, 531], "ellipseskyregion": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 452, 489, 527], "ellipsoid": 483, "ellipt": [531, 537], "elong": [421, 424, 425, 535, 536], "elpas": 445, "els": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 123, 125, 133, 200, 380, 383, 394, 397, 404, 407, 408, 410, 412, 414, 490, 578, 580], "elsewher": [115, 117], "email": [381, 383, 406, 410], "emax": [130, 252, 280, 460, 466, 557], "emax_fit": 475, "embryon": 396, "emce": [389, 397, 421, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "emerg": 390, "emeri": 440, "emin": [130, 252, 280, 460, 466, 557], "emin_fit": 475, "emiss": [52, 68, 137, 386, 391, 395, 455, 461, 463, 464, 467, 488, 493, 494, 514, 528, 554, 575], "emit": [82, 214, 215, 216, 217, 366, 380, 421, 439, 451, 523], "emitt": 455, "emmanoulopoulo": [303, 447], "emmanoulopoulos2010": 303, "emphas": 482, "emphasi": 483, "empir": 40, "emploi": 457, "empti": [92, 100, 102, 105, 109, 110, 141, 173, 193, 194, 196, 200, 202, 205, 206, 211, 247, 366, 388, 390, 422, 434, 463, 467, 468, 471, 474, 485, 486, 495, 507, 514, 527, 528, 531], "empty_dataset": 450, "empty_i": 474, "empty_map": [102, 105, 109, 110, 466, 485, 527], "emsembl": 93, "en": [34, 83, 87, 88, 91, 126, 186, 201, 211, 276, 307, 383, 400, 450, 458, 460, 463, 465, 471, 474, 477, 483, 484, 487, 493, 515, 518, 529, 531], "enabl": [389, 392, 413, 422, 431, 440, 450, 458, 460, 463, 465, 471, 474, 493, 525], "encapsul": [204, 404, 529], "enclos": [206, 381, 452, 457, 483, 487], "enclosur": [82, 157, 447, 457, 484], "encod": [16, 84, 87, 90, 91, 104, 124], "encompass": [192, 529, 531], "encount": [167, 412, 413, 414, 415, 457, 461, 467, 474, 477, 496, 566, 578], "encourag": [380, 385, 406, 409, 439], "end": [52, 53, 86, 87, 91, 92, 94, 100, 102, 109, 123, 125, 133, 198, 239, 247, 385, 387, 389, 391, 392, 394, 395, 396, 397, 399, 400, 403, 432, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "end_po": [127, 340, 469], "endswith": 380, "energet": 467, "energi": [16, 19, 20, 26, 44, 50, 51, 52, 53, 58, 62, 63, 67, 71, 74, 75, 80, 82, 83, 88, 96, 100, 101, 102, 103, 105, 107, 108, 109, 110, 111, 112, 113, 114, 116, 118, 120, 122, 123, 125, 126, 127, 130, 132, 133, 135, 137, 138, 139, 140, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 165, 166, 173, 175, 179, 180, 182, 183, 184, 186, 187, 189, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 280, 282, 284, 375, 376, 380, 386, 389, 391, 392, 393, 394, 395, 396, 398, 399, 402, 404, 408, 412, 416, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 451, 452, 454, 455, 456, 458, 459, 460, 461, 463, 464, 465, 467, 469, 470, 471, 472, 473, 474, 475, 477, 480, 481, 482, 485, 486, 495, 496, 498, 502, 503, 504, 513, 514, 515, 518, 523, 525, 526, 527, 529, 530, 531, 538, 544, 550, 553, 555, 558, 563, 573, 576, 577, 579], "energy_axes_are_align": 100, "energy_axi": [19, 20, 26, 102, 105, 109, 110, 111, 112, 113, 116, 123, 125, 150, 151, 152, 155, 163, 166, 173, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 404, 450, 452, 455, 457, 458, 459, 461, 465, 467, 468, 473, 474, 477, 481, 484, 485, 486, 489, 494, 495, 503, 522, 525, 527, 528, 530, 531], "energy_axis_new": 481, "energy_axis_tru": [102, 105, 109, 110, 111, 112, 113, 114, 116, 150, 151, 152, 153, 155, 161, 163, 173, 381, 425, 450, 452, 455, 457, 458, 459, 461, 465, 467, 468, 471, 473, 474, 475, 477, 481, 484, 485, 494, 495, 503, 522, 525, 527, 528], "energy_bin": 396, "energy_bin_per_decade_max": [112, 113], "energy_bound": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 394, 431, 451, 453, 455, 457, 463, 464, 475, 479, 480, 483, 489, 494, 503, 504, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 563], "energy_cent": 273, "energy_column": 404, "energy_depend": 466, "energy_dependent_estim": [449, 466, 470], "energy_edg": [16, 118, 120, 122, 126, 127, 130, 133, 141, 142, 146, 198, 327, 404, 451, 455, 456, 459, 460, 461, 463, 464, 465, 466, 469, 472, 473, 474, 475, 482, 495, 502, 503, 516], "energy_estim": 495, "energy_flux": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 489, 504], "energy_flux_err": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "energy_flux_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "energy_index": 160, "energy_integr": 51, "energy_logspac": 399, "energy_mask": [191, 192, 201, 204, 427, 457, 463, 475, 481, 483, 487, 491], "energy_max": [19, 20, 26, 83, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 150, 191, 192, 198, 201, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 276, 282, 394, 396, 463, 468, 475, 477, 479, 481, 485, 489, 504], "energy_min": [19, 20, 26, 52, 53, 83, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 150, 191, 192, 198, 201, 204, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 276, 282, 394, 396, 463, 468, 475, 477, 479, 481, 485, 489, 504], "energy_nam": [163, 166], "energy_nod": [403, 489], "energy_pow": [19, 20, 26, 125, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 284, 455, 463, 475, 483, 504], "energy_rang": [66, 67, 71, 74, 75, 80, 83, 100, 102, 105, 109, 110, 431, 481, 487, 561, 562], "energy_range_fit": [102, 105, 109, 110, 481], "energy_range_saf": [102, 105, 109, 110, 481], "energy_range_tot": [102, 105, 109, 110, 487], "energy_reco": [380, 471], "energy_ref": [123, 125], "energy_resolut": 439, "energy_saf": 396, "energy_tru": [16, 96, 102, 105, 109, 110, 111, 116, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 173, 180, 183, 191, 192, 198, 201, 204, 305, 306, 380, 381, 393, 445, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 471, 472, 473, 474, 475, 477, 481, 484, 485, 486, 487, 489, 490, 493, 494, 495, 502, 503, 522, 523, 525, 527, 528, 530, 531], "energy_true_axi": 150, "energyaxesconfig": 16, "energyaxisconfig": 16, "energybound": 423, "energydependentmorphologi": 466, "energydependentmorphologyestim": [446, 466], "energydependentmultigausspsf": [159, 419, 484, 493, 524], "energydependenttablepsf": [386, 401, 420, 431], "energydispers": [150, 151, 152, 155, 392, 426, 436, 439, 440], "energydispersion2d": [88, 150, 152, 159, 165, 183, 184, 381, 386, 431, 433, 438, 484, 493, 522], "energydispersion3d": 484, "energyoffsetarrai": 436, "energyrangeconfig": 16, "enforc": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 383, 407], "engin": [87, 91], "english": 518, "enhanc": [385, 389, 416], "enlarg": 528, "enough": [393, 395, 396, 455, 458, 461, 471, 472, 487, 525], "enrico": 396, "enrico_config": 396, "enrico_xml": 396, "enriqu": [388, 396, 400, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 439, 440, 441], "ensembl": 93, "ensur": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 179, 199, 286, 380, 386, 391, 392, 403, 407, 413, 433, 447, 450, 455, 473, 482, 487, 525, 530, 539], "enter": [215, 217, 224, 247, 416], "entir": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 102, 104, 105, 109, 110, 124, 180, 452, 463, 466, 478], "entri": [43, 44, 87, 91, 94, 120, 123, 126, 127, 130, 131, 133, 135, 136, 143, 144, 211, 212, 224, 247, 286, 347, 380, 381, 392, 400, 404, 407, 409, 431, 442, 447, 452, 456, 480, 483, 486, 489, 490, 518, 519, 531], "entry_point": 432, "enum": [95, 156, 322, 323], "enumer": [455, 467, 480, 483, 488, 491], "env": [383, 397, 409, 411, 412, 414, 415, 440, 578], "envelop": [393, 483, 503], "environ": [11, 82, 345, 379, 380, 383, 387, 388, 392, 397, 400, 409, 410, 412, 413, 414, 415, 416, 420, 421, 423, 439, 440, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 578], "envis": 389, "envvar": 11, "eosc": 406, "episod": 137, "epoch": 363, "epsilon": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "epsilon_": [102, 109, 514], "epsilon_k": [102, 109, 514], "epsmch": 483, "eq": 101, "eqcon": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "eqnarrai": 403, "equal": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 118, 122, 126, 130, 133, 150, 198, 380, 390, 393, 441, 455, 472, 473, 487, 491, 514, 530, 581], "equat": [27, 268, 269, 295, 540, 541, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 580, 581], "equatori": [95, 156, 192, 193, 194, 196, 199, 201, 204, 205, 206, 484], "equival": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 123, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 373, 381, 392, 393, 394, 403, 404, 445, 446, 455, 480, 485, 486, 487, 489, 493, 502, 514, 516, 518, 529, 530, 531, 578, 579, 580], "er": [26, 479], "era": 226, "ereco": [150, 484], "erf": [235, 535], "erg": [52, 53, 67, 450, 455, 480, 504, 511, 518], "erlangen": 399, "erod": 206, "eros": [204, 206], "err": 483, "errat": 380, "errn": [122, 126, 130, 131, 133, 211, 442, 580], "errn_2sigma": 580, "error": [11, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 68, 79, 84, 86, 90, 101, 102, 104, 105, 109, 110, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 136, 137, 138, 139, 143, 169, 195, 198, 203, 214, 216, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 288, 290, 294, 295, 296, 298, 303, 358, 380, 381, 394, 395, 396, 398, 403, 404, 407, 408, 421, 425, 427, 429, 431, 432, 434, 438, 439, 442, 444, 445, 446, 447, 451, 452, 453, 455, 456, 458, 459, 460, 463, 464, 465, 466, 468, 471, 472, 474, 475, 477, 478, 480, 482, 489, 490, 491, 493, 502, 503, 504, 506, 514, 516, 518, 536, 554, 563, 575, 578], "error_callback": 169, "errorbar": [83, 101, 102, 105, 109, 110, 198, 202, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 450, 477, 491], "errp": [122, 126, 130, 131, 133, 211, 442, 580], "errp_2sigma": 580, "escap": [380, 406], "especi": [87, 91, 137, 383, 387, 390, 394, 400, 401, 410, 431, 437, 452, 465, 473, 480, 486, 491, 493, 494], "essenti": [390, 392, 395, 425, 426, 427, 469, 486], "establish": [380, 393], "estim": [6, 19, 20, 26, 50, 72, 101, 105, 110, 112, 113, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 168, 174, 175, 176, 182, 191, 192, 201, 204, 206, 211, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 286, 293, 296, 301, 327, 373, 384, 386, 389, 393, 394, 395, 396, 399, 402, 408, 412, 421, 422, 425, 426, 427, 428, 431, 432, 433, 437, 438, 439, 440, 442, 445, 446, 447, 449, 450, 451, 455, 457, 461, 463, 464, 465, 468, 470, 473, 474, 475, 476, 481, 483, 487, 491, 492, 495, 498, 502, 503, 514, 518, 528, 575, 576, 577, 579, 581], "estimate_best_fit": [126, 127, 130, 131], "estimate_count": [126, 127, 130, 131], "estimate_energy_depend": 120, "estimate_errn_errp": [126, 127, 130, 131], "estimate_excess_map": 122, "estimate_exposure_reco_energi": 122, "estimate_fit_input_map": 133, "estimate_flux_default": 133, "estimate_flux_map": 133, "estimate_flux_point": [126, 127, 130], "estimate_kernel": [122, 133], "estimate_map": 118, "estimate_mask_default": [122, 133], "estimate_min_e2dnd": 132, "estimate_min_excess": 132, "estimate_npr": [126, 127, 130, 131], "estimate_npred_excess": [126, 127, 130], "estimate_pad_width": 133, "estimate_scan": [126, 127, 130, 131], "estimate_t": [126, 127, 130, 131], "estimate_time_bin_flux": 130, "estimate_ul": [126, 127, 130, 131], "estimator_result": [135, 143, 144, 475], "et": [26, 33, 59, 101, 136, 137, 153, 226, 295, 296, 298, 303, 390, 447, 459, 466, 478, 506, 577], "eta": [237, 238, 260, 537, 541, 568], "eta_": 50, "eta_b": 50, "eta_rang": [537, 541], "etc": [105, 110, 123, 380, 385, 386, 390, 391, 392, 395, 396, 400, 401, 404, 406, 407, 428, 456, 458, 463, 471, 472, 474, 475, 477, 481, 486, 489, 491, 494, 502, 514, 527], "etru": 484, "eu": 400, "euclidean": 305, "europ": 406, "ev": [482, 484, 518, 554], "ev2": 484, "evalu": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 87, 91, 102, 105, 108, 109, 110, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 180, 186, 201, 212, 213, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 320, 380, 385, 389, 395, 398, 399, 402, 403, 404, 408, 420, 421, 422, 424, 427, 431, 436, 437, 439, 440, 441, 442, 443, 444, 445, 446, 447, 467, 468, 475, 484, 489, 491, 493, 494, 514, 536, 537, 544, 577, 580], "evaluate_contain": [154, 162, 164, 433], "evaluate_direct": [154, 162, 164], "evaluate_energy_flux": [253, 254], "evaluate_error": [19, 20, 26, 125, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 398], "evaluate_geom": [220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275, 446, 489, 537], "evaluate_integr": [252, 253, 254], "evaluate_paramet": [154, 162, 164], "evaluation_bin_size_min": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "evaluation_radiu": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 391, 392, 403, 489], "evaluation_region": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "even": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 134, 143, 204, 215, 217, 380, 383, 385, 387, 388, 394, 397, 398, 406, 407, 423, 472, 475, 482, 483, 485, 486, 487, 488, 489, 502, 514, 516, 540, 541, 578], "event": [82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 103, 104, 108, 114, 122, 132, 152, 163, 166, 167, 174, 182, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 337, 380, 381, 384, 386, 390, 392, 394, 395, 396, 407, 412, 416, 423, 424, 425, 427, 431, 432, 433, 438, 439, 440, 441, 442, 445, 446, 447, 449, 452, 455, 456, 457, 461, 463, 464, 470, 474, 485, 495, 498, 500, 502, 503, 518, 526, 527, 528, 576, 577, 580], "event_3fhl": 504, "event_class": [84, 494, 504], "event_det_coord": [103, 108], "event_fil": 88, "event_filt": 89, "event_filter_typ": 89, "event_id": [393, 493, 494, 504, 515], "event_list": [83, 380, 381, 393], "event_list_meta": [103, 108, 426], "event_sampl": [449, 467, 470], "event_sampling_nrg_depend_model": [449, 468, 470], "event_typ": [104, 494, 504], "eventlist": [84, 88, 103, 108, 182, 193, 194, 196, 202, 205, 206, 380, 381, 386, 393, 394, 395, 407, 416, 421, 428, 433, 435, 436, 437, 439, 440, 467, 468, 475, 486, 493, 494, 504, 515, 518, 527], "eventlistbas": 89, "eventlistdataset": 440, "eventlistmetadata": [83, 407], "events2": 83, "events_": 467, "events_0001": 467, "events_1": 515, "events_2": 515, "events_3fhl": 504, "events_bkg": 393, "events_gc_3fhl": 504, "events_list": 393, "events_path": [82, 467], "events_src": 393, "events_tot": 393, "events_vela": 475, "eventu": [380, 385, 396, 399, 400, 416, 489], "ever": 581, "everi": [192, 194, 206, 275, 380, 383, 388, 389, 390, 392, 396, 405, 407, 410, 452, 455, 486, 503, 578], "everyon": 385, "everyth": [380, 398, 399, 518], "everywher": [380, 394, 399, 400, 420], "evid": [137, 480], "evolut": [50, 52, 53, 226, 386, 400, 449, 470, 498, 511, 512, 532], "evolv": [28, 29, 30, 35, 36, 39, 40, 50, 52, 53, 226, 397, 400, 407, 468, 484], "evt_sampl": 467, "ex": [11, 486, 488, 489], "exact": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 398, 473, 486, 494], "exactli": [118, 122, 126, 130, 133, 198, 375, 455, 457, 473, 475, 487, 491, 494, 514, 531], "exagger": 371, "examin": [406, 522], "exampl": [11, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 66, 67, 80, 82, 83, 85, 86, 87, 88, 89, 91, 94, 96, 99, 101, 102, 105, 109, 110, 111, 115, 116, 117, 118, 120, 122, 123, 125, 127, 129, 130, 131, 132, 133, 137, 141, 142, 145, 146, 148, 150, 152, 153, 154, 155, 161, 163, 166, 173, 176, 178, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 215, 217, 239, 245, 276, 280, 286, 289, 305, 306, 327, 331, 337, 347, 359, 360, 365, 368, 370, 371, 373, 375, 377, 380, 381, 383, 385, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 403, 406, 407, 408, 412, 413, 414, 416, 420, 422, 425, 428, 431, 432, 433, 436, 438, 439, 440, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509, 515, 518, 520, 521, 522, 524, 529, 531, 532, 533, 543, 564, 572, 573, 574, 575, 578, 580, 582, 583], "example_cub": 486, "example_cube_fgst": 486, "exce": [112, 113], "except": [67, 69, 80, 87, 91, 102, 105, 109, 110, 169, 193, 194, 196, 202, 205, 206, 307, 377, 380, 391, 395, 399, 484, 488, 531], "excerpt": 496, "excess": [15, 67, 72, 102, 105, 109, 110, 119, 122, 123, 125, 126, 127, 130, 132, 135, 138, 139, 143, 144, 173, 288, 290, 295, 296, 378, 392, 395, 427, 428, 434, 439, 446, 447, 450, 451, 455, 456, 458, 459, 460, 463, 465, 469, 471, 474, 475, 480, 481, 482, 485, 487, 488, 495, 502, 503, 516, 518], "excess_estim": 495, "excess_estimator_integr": 495, "excess_integr": 495, "excess_map": [16, 456, 460, 461, 463, 502], "excess_map_estim": 475, "excess_matching_signific": [430, 440], "excess_min": 146, "excess_r": 481, "excessestim": 404, "excessmapconfig": 16, "excessmapestim": [119, 141, 142, 143, 144, 404, 427, 428, 429, 431, 434, 444, 446, 447, 461, 463, 475, 482, 487, 495, 516], "excesspointsestim": 404, "excessprofileestim": [404, 428], "exchang": 394, "exclud": [16, 84, 90, 101, 102, 104, 105, 109, 110, 124, 129, 174, 176, 215, 217, 224, 247, 386, 443, 463, 485, 487, 527, 528], "exclude_default": [16, 84, 90, 104, 124], "exclude_non": [16, 84, 90, 104, 124], "exclude_unset": [16, 84, 90, 104, 124], "exclus": [16, 83, 168, 170, 175, 176, 177, 178, 181, 192, 204, 386, 394, 396, 427, 429, 447, 452, 460, 463, 485, 525, 527], "exclusion_mask": [168, 170, 175, 176, 177, 178, 181, 455, 461, 465, 485, 487, 503, 525, 527, 528], "exclusion_mask_2d": 485, "exclusion_mask_crab": [456, 502], "exclusion_radiu": 487, "exclusion_region": 455, "exclusionmask": 437, "execut": [11, 122, 126, 130, 131, 133, 380, 381, 383, 385, 387, 388, 389, 395, 396, 400, 410, 411, 412, 413, 414, 415, 416, 425, 433, 439, 449, 454, 462, 470, 476, 485, 486, 492, 494, 497, 498, 499, 501, 504, 505, 533, 543, 564, 574, 576], "exercis": [383, 396, 400, 406], "exhibit": 466, "exist": [11, 15, 16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 88, 91, 99, 100, 101, 102, 105, 107, 109, 110, 123, 125, 151, 152, 158, 163, 166, 178, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 212, 224, 239, 247, 271, 272, 273, 275, 349, 364, 380, 383, 385, 388, 389, 391, 392, 393, 394, 396, 397, 399, 400, 401, 403, 404, 406, 407, 412, 413, 416, 417, 420, 424, 425, 439, 440, 442, 445, 459, 461, 481, 486, 487, 489, 490, 494, 515, 530, 531, 579], "exist_ok": [455, 456, 463, 464, 467, 502, 503], "exit": [11, 15, 87, 91, 215, 217, 224, 247, 421, 542, 578], "exot": 397, "exp": [21, 28, 29, 30, 31, 32, 35, 36, 39, 40, 153, 231, 235, 242, 253, 254, 267, 381, 403, 474, 489, 536, 537, 544, 548, 549, 550, 551, 560, 561, 562, 566, 567, 568, 581], "expand": [130, 345, 390, 431], "expand_map": 130, "expans": [50, 52, 53], "expcutoffpowerlaw": 550, "expcutoffpowerlaw3fglspectralmodel": [258, 403, 453, 489, 549], "expcutoffpowerlawnormspectralmodel": [230, 258, 446, 489, 550], "expcutoffpowerlawspectralmodel": [19, 20, 26, 80, 218, 219, 222, 226, 228, 229, 235, 241, 242, 244, 248, 250, 252, 253, 254, 258, 259, 264, 266, 267, 268, 269, 272, 276, 403, 453, 455, 463, 489, 548, 554], "expdecai": [231, 449, 532, 574], "expdecay_model": [467, 566], "expdecaytemporalmodel": [270, 403, 427, 431, 467, 474, 489, 566], "expect": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 105, 108, 110, 123, 178, 183, 184, 189, 204, 288, 289, 290, 291, 293, 297, 304, 337, 380, 385, 393, 395, 396, 397, 400, 405, 407, 450, 452, 457, 458, 459, 461, 467, 468, 472, 478, 479, 483, 486, 487, 491, 494, 496, 514, 516, 579, 580, 581], "expens": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 455, 468], "experi": [380, 383, 385, 389, 391, 395, 408, 410, 439, 506, 577, 582], "experienc": [389, 415], "experiment": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 396, 578], "expert": 400, "expertis": 397, "expfactor": [268, 269, 561, 562], "expir": 393, "explain": [87, 91, 380, 383, 385, 394, 397, 399, 400, 406, 410, 412, 414, 425, 431, 450, 455, 457, 479, 483, 487, 489, 493, 518, 576, 578], "explan": [118, 122, 126, 130, 133, 381, 385, 417, 478, 582], "explicit": [87, 91, 192, 194, 380, 381, 396, 398, 404, 530, 582], "explicitli": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 307, 390, 402, 411, 421, 468, 488, 516, 530, 582], "explor": [193, 194, 196, 202, 205, 206, 388, 396, 416, 449, 455, 460, 463, 466, 469, 470, 472, 473, 477, 478, 480, 481, 488, 495, 496, 502, 504, 518, 527], "explos": 52, "expomap": 393, "expon": [403, 489], "exponenti": [28, 30, 36, 39, 40, 77, 228, 229, 230, 231, 267, 268, 269, 381, 391, 425, 449, 463, 467, 474, 532, 564], "exponentialcutoffpowerlaw": 554, "export": [84, 87, 90, 91, 102, 104, 105, 123, 124, 125, 383, 404, 407, 412, 414, 425, 435, 442, 443, 446, 456, 489, 495, 496, 502], "expos": [6, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 389, 394, 395, 396, 399, 400, 444, 446, 447, 486, 498, 516, 517, 576], "exposur": [16, 83, 88, 102, 105, 106, 108, 109, 110, 122, 133, 140, 151, 152, 158, 161, 163, 166, 168, 173, 180, 183, 184, 185, 187, 188, 189, 263, 299, 302, 304, 386, 389, 390, 391, 392, 393, 404, 423, 428, 436, 438, 439, 440, 442, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 471, 473, 474, 477, 481, 485, 486, 487, 495, 502, 503, 514, 523, 526, 531, 580], "exposure_geom": 152, "exposure_hdu": [151, 152, 158, 163, 166], "exposure_hdu_band": [151, 152, 158, 163, 166], "exposure_hpx": 494, "exposure_map": [151, 152, 158, 163, 166, 183, 184, 189, 484], "exposure_max": 481, "exposure_min": 481, "exposure_tim": 393, "express": [122, 137, 288, 290, 391, 403, 404, 446, 461, 483, 484, 489, 491, 514, 530, 537, 579, 580, 581], "exptest": 437, "extend": [15, 19, 20, 26, 69, 72, 87, 91, 92, 100, 168, 195, 198, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 289, 387, 391, 392, 393, 394, 400, 402, 403, 404, 407, 412, 424, 426, 431, 449, 454, 455, 459, 468, 472, 480, 486, 487, 488, 489, 494, 498, 526, 527], "extended_archive_v18": 542, "extended_source_spectral_analysi": [449, 452, 454], "extens": [41, 150, 193, 194, 196, 198, 205, 206, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 265, 271, 275, 382, 385, 386, 387, 388, 389, 391, 393, 395, 396, 397, 398, 399, 400, 409, 410, 434, 466, 467, 468, 489, 578], "extent": [204, 224, 247, 394, 459, 489], "extern": [114, 381, 406, 432, 436, 437, 440, 493, 518], "extnam": 484, "extra": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 83, 84, 90, 101, 104, 124, 191, 192, 197, 201, 202, 204, 210, 211, 213, 271, 272, 305, 379, 381, 387, 388, 394, 396, 397, 400, 406, 407, 436, 439, 440, 451, 486, 487, 518, 531], "extra_term": 304, "extract": [16, 84, 90, 100, 102, 104, 105, 109, 110, 123, 124, 125, 130, 151, 152, 158, 163, 166, 169, 174, 175, 180, 182, 190, 193, 194, 195, 196, 198, 203, 204, 205, 206, 273, 380, 390, 395, 404, 406, 407, 433, 434, 445, 446, 450, 452, 455, 456, 457, 458, 463, 464, 467, 468, 469, 471, 477, 481, 482, 486, 502, 514, 522, 527], "extragalact": [226, 451, 493], "extrapol": [101, 147, 148, 149, 173, 193, 194, 196, 202, 205, 206, 226, 276, 319, 320, 431, 436, 438, 439, 447, 484, 486, 493, 494, 530], "extras_requir": 397, "extrem": [380, 407, 486, 537], "f": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 133, 146, 200, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 306, 307, 334, 380, 383, 397, 402, 403, 408, 411, 412, 414, 433, 442, 450, 452, 455, 456, 458, 464, 465, 466, 467, 468, 473, 474, 475, 477, 479, 480, 483, 485, 487, 489, 490, 491, 494, 495, 500, 502, 503, 504, 512, 527, 544, 554, 565, 566, 567, 568, 569, 570, 571, 578, 579, 580], "f0": [274, 572], "f06": 48, "f06b": [49, 508], "f06p": 49, "f1": [274, 572], "f2": [274, 572], "f4": [148, 153, 457, 481, 484, 486, 493, 494], "f8": [484, 494], "f_": [294, 296, 306, 514], "f_0": [252, 557], "f_dead": [83, 88], "f_i": 294, "f_max": 478, "f_max_err": 478, "f_mean": 478, "f_mean_err": 478, "f_min": 478, "f_min_err": 478, "f_pp": 295, "f_var": 295, "fabio": [393, 398, 421, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 438, 440, 442, 444, 445, 446, 447], "face": [385, 388], "facecolor": [377, 451, 455, 457, 465, 466, 469, 475, 479, 535, 536, 537], "facil": 405, "fact": [19, 20, 97, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 406, 452, 531], "facto": 406, "factor": [19, 20, 23, 102, 103, 105, 108, 109, 110, 118, 122, 123, 151, 152, 154, 158, 160, 161, 162, 163, 164, 166, 173, 180, 186, 190, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 209, 214, 215, 216, 217, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 249, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 267, 268, 269, 271, 274, 275, 277, 289, 380, 393, 395, 427, 447, 450, 458, 459, 460, 463, 465, 469, 471, 474, 481, 482, 485, 489, 493, 514, 531, 544], "factor1": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275], "factor_max": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275], "factor_min": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275], "factori": [193, 194, 205, 206, 394, 399, 403, 529, 531], "factoris": [263, 403, 489, 575], "fail": [16, 84, 90, 104, 124, 211, 381, 383, 394, 409, 410, 434, 447, 464, 494], "failur": [442, 445], "faint": 579, "fair": [380, 406], "fair4r": [380, 406], "fake": [102, 105, 109, 110, 392, 393, 423, 457, 458, 471, 474, 491], "fall": [77, 137, 176, 203, 224, 247, 380, 387, 389, 390, 397, 440, 441, 478], "fallback": 380, "fals": [16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 82, 83, 84, 86, 87, 88, 90, 91, 96, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 115, 117, 122, 123, 124, 125, 126, 130, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 180, 183, 184, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 212, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 289, 307, 320, 337, 343, 346, 348, 349, 377, 380, 394, 396, 403, 408, 439, 440, 446, 450, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 473, 474, 477, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 494, 502, 503, 504, 515, 518, 525, 527, 528, 542, 554, 563], "falsifi": 491, "famili": 406, "familiar": [397, 398, 486, 487, 504], "fanci": [380, 475], "far": [388, 393, 395, 397, 401, 404, 407, 416, 431, 467, 506], "fashion": [395, 400], "fast": [380, 394, 398, 483], "faster": [87, 91, 134, 143, 193, 194, 196, 202, 205, 206, 358, 446, 459], "faucher": [31, 33, 37, 39, 45], "faucherkaspi2006": [28, 29, 31, 35, 36, 39, 40, 48], "faucherkaspi2006velocitybimod": 49, "faucherkaspi2006velocitymaxwellian": 49, "faucherspir": 508, "favour": [385, 393, 408, 491], "favourit": 465, "fc": [489, 531], "fcluster": [305, 490], "fcluster_kwarg": [305, 490], "fcn": 483, "fdx": 380, "fe": 279, "feasibl": [394, 399, 458, 471, 481], "featur": [6, 13, 87, 91, 96, 118, 141, 305, 306, 370, 371, 380, 383, 387, 389, 390, 391, 392, 394, 396, 397, 402, 403, 404, 406, 407, 408, 413, 418, 421, 422, 423, 424, 425, 427, 428, 431, 435, 438, 439, 440, 441, 478, 486, 487, 489, 490, 516, 554], "feature_irf": 490, "features_irf": [96, 305, 306, 490], "feb": [386, 387, 397, 401, 416, 418], "februari": 418, "fed": 457, "feedback": [383, 385, 389, 394, 396, 397, 400, 401, 403, 409, 439, 484, 518], "feedstock": [409, 410], "feel": [390, 578], "feijen": [444, 445, 446, 447], "feldman": [422, 428, 436, 438, 577], "feldman1998": [577, 580], "fellowship": 406, "felt": 380, "fermi": [55, 58, 60, 61, 62, 64, 65, 69, 71, 74, 75, 77, 78, 83, 86, 126, 127, 129, 133, 193, 194, 196, 202, 203, 205, 206, 226, 279, 281, 286, 387, 388, 389, 390, 392, 393, 396, 397, 400, 410, 412, 417, 419, 420, 423, 425, 428, 432, 435, 436, 437, 438, 439, 440, 447, 449, 451, 453, 459, 467, 469, 480, 486, 487, 488, 489, 497, 498, 504, 506, 515, 518, 523, 542, 552, 557, 575, 582], "fermi_3fhl": [83, 193, 194, 196, 202, 205, 206, 488, 494, 504], "fermi_3fhl_events_select": [83, 494], "fermi_3fhl_exposure_cube_hpx": 494, "fermi_3fhl_psf_gc": 494, "fermi_bkg_model": 488, "fermi_ct": 129, "fermi_dataset": [286, 488, 494], "fermi_lat": [400, 440, 449, 494, 497], "fermi_model": 494, "fermi_prof": 127, "fermi_ts_imag": 381, "fermilat": 451, "fermipi": [387, 389, 392, 396, 400, 404, 437, 439, 494, 506], "fermitool": 396, "fetch": [15, 380, 388, 409, 419, 432, 502, 578], "few": [82, 83, 87, 88, 91, 379, 380, 381, 383, 385, 386, 387, 388, 390, 392, 394, 398, 400, 405, 409, 410, 416, 430, 441, 443, 446, 447, 452, 456, 461, 463, 465, 480, 482, 483, 486, 493, 502, 503, 527, 531, 583], "fewer": [394, 400], "ff": 406, "fft": 206, "fftconvolv": 206, "fgl": [203, 487], "fgst": [192, 193, 194, 196, 197, 198, 204, 205, 206, 486], "fhit": 495, "fidalgo": [390, 395, 420, 440, 441], "fiduci": 486, "field": [16, 42, 50, 51, 54, 83, 84, 87, 90, 91, 104, 124, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 170, 232, 248, 309, 313, 367, 380, 394, 406, 407, 416, 421, 426, 433, 440, 455, 457, 461, 463, 465, 467, 484, 485, 487, 493, 494, 518, 520, 521, 522, 523, 524, 525, 527, 554, 577], "fieldinfo": [16, 84, 90, 104, 124], "fig": [206, 368, 450, 452, 455, 456, 457, 458, 459, 461, 463, 464, 465, 466, 469, 472, 474, 475, 479, 483, 487, 491, 503, 527, 528, 537, 541, 544, 576], "figsiz": [88, 102, 105, 109, 110, 128, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 193, 194, 196, 202, 205, 206, 209, 368, 452, 455, 458, 459, 461, 463, 464, 465, 466, 472, 473, 474, 475, 477, 478, 479, 480, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 496, 503, 527, 537, 541, 544], "figur": [88, 102, 105, 109, 110, 128, 147, 148, 150, 151, 152, 153, 154, 160, 161, 162, 163, 164, 166, 193, 194, 196, 202, 205, 206, 209, 358, 367, 368, 374, 380, 381, 385, 400, 410, 451, 455, 459, 463, 465, 466, 467, 469, 472, 473, 478, 479, 480, 481, 483, 485, 486, 488, 489, 493, 494, 495, 496, 578], "file": [11, 15, 16, 26, 65, 66, 67, 82, 83, 85, 86, 87, 88, 91, 93, 94, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 174, 179, 193, 194, 196, 200, 202, 205, 206, 212, 224, 226, 239, 247, 271, 272, 273, 274, 275, 276, 315, 343, 346, 349, 379, 380, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 396, 397, 399, 400, 401, 403, 404, 407, 408, 409, 410, 411, 412, 414, 416, 424, 425, 431, 433, 435, 437, 438, 439, 440, 442, 443, 445, 446, 447, 449, 450, 454, 457, 458, 462, 463, 465, 467, 468, 470, 471, 474, 476, 480, 481, 485, 486, 487, 488, 489, 492, 495, 496, 497, 498, 499, 501, 504, 505, 506, 517, 518, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 582], "file_dir": 315, "file_model": 467, "file_nam": 315, "filemod": [16, 456, 460, 461, 463, 502, 578], "filenam": [11, 16, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 82, 83, 85, 86, 87, 91, 94, 100, 101, 102, 105, 106, 107, 109, 110, 123, 125, 127, 129, 131, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 193, 194, 196, 200, 202, 205, 206, 224, 226, 239, 247, 271, 272, 273, 274, 275, 276, 281, 283, 285, 286, 315, 346, 349, 359, 380, 381, 385, 428, 447, 455, 456, 460, 461, 463, 464, 468, 469, 480, 481, 482, 486, 487, 488, 489, 493, 494, 502, 503, 504, 515, 518, 520, 521, 522, 524, 542, 544, 572, 573, 578], "filename_1": 515, "filename_2": 515, "filename_arf": 107, "filename_bkg": 107, "filename_model": [100, 123, 286, 488, 494], "filename_rmf": 107, "filepath": 16, "fill": [16, 84, 85, 87, 90, 91, 102, 104, 105, 108, 109, 110, 124, 150, 161, 192, 193, 194, 196, 202, 204, 205, 206, 276, 380, 388, 389, 393, 396, 400, 406, 409, 410, 425, 432, 439, 442, 452, 467, 468, 480, 484, 485, 487, 494, 503, 530], "fill_between": [19, 20, 26, 128, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 475], "fill_by_coord": [161, 193, 194, 196, 202, 205, 206, 486, 494, 530], "fill_by_idx": [193, 194, 196, 202, 205, 206, 530], "fill_by_pix": [193, 194, 196, 202, 205, 206, 530], "fill_ev": [193, 194, 196, 202, 205, 206, 434, 445, 457, 486, 494, 500], "fill_nan": 194, "fill_valu": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 271, 272, 275, 380, 484, 486], "filled_t": [87, 91], "filter": [88, 89, 386, 390, 392, 394, 395, 440, 441, 444, 477, 487, 490, 498, 503, 504], "filter_ev": 89, "filter_gti": 89, "filter_success_nan": [123, 125], "filtered_ev": 89, "filtered_gti": 89, "filterwarn": [474, 475], "final": [130, 289, 380, 381, 387, 388, 390, 393, 394, 396, 397, 399, 401, 403, 405, 406, 410, 425, 426, 427, 450, 451, 452, 453, 455, 463, 465, 467, 468, 472, 473, 475, 479, 481, 483, 485, 487, 490, 494, 495, 498, 502, 503, 504, 514, 515, 516], "finalis": 384, "find": [19, 20, 26, 133, 141, 142, 150, 176, 177, 181, 208, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 299, 380, 385, 391, 393, 399, 409, 410, 411, 431, 433, 439, 440, 445, 446, 453, 455, 459, 480, 481, 486, 489, 493, 496, 504, 578, 580, 581], "find_peak": [142, 440, 459, 465], "find_peaks_in_flux_map": 459, "find_root": 431, "finder": [141, 176, 177, 431, 440, 459], "fine": [287, 320, 393, 461, 481, 494, 531, 578], "finer": [467, 481, 531], "fingertip": 379, "finish": [383, 387, 389, 409, 437, 439], "finit": [100, 102, 105, 109, 110, 151, 152, 158, 163, 179, 194, 202, 206, 273, 398], "fink": [226, 227, 451, 544], "fir": 554, "firefox": [87, 91], "first": [57, 77, 87, 91, 92, 94, 100, 102, 105, 109, 110, 123, 125, 127, 134, 136, 141, 143, 150, 167, 176, 193, 194, 195, 198, 202, 203, 224, 247, 280, 298, 340, 369, 380, 381, 383, 385, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 404, 405, 406, 410, 411, 416, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 438, 440, 441, 442, 443, 445, 447, 450, 452, 453, 455, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 503, 504, 515, 527, 530, 578], "firstli": [466, 467, 482], "firstnam": [87, 91], "fit": [6, 15, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 57, 58, 60, 61, 62, 64, 65, 66, 67, 71, 74, 75, 77, 78, 82, 83, 84, 85, 86, 87, 88, 90, 91, 94, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 133, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 170, 173, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 203, 204, 205, 206, 210, 212, 213, 214, 216, 218, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 273, 274, 275, 276, 286, 287, 288, 290, 291, 292, 297, 300, 304, 315, 316, 317, 362, 363, 366, 368, 373, 375, 379, 380, 381, 386, 390, 391, 392, 393, 396, 398, 399, 400, 401, 402, 403, 404, 407, 408, 412, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 436, 438, 439, 440, 441, 443, 445, 446, 447, 449, 450, 454, 458, 459, 461, 462, 466, 467, 468, 469, 470, 472, 473, 475, 476, 477, 478, 480, 481, 482, 484, 485, 486, 488, 489, 490, 492, 493, 495, 496, 498, 500, 504, 514, 515, 516, 517, 518, 520, 521, 522, 524, 525, 526, 527, 535, 542, 544, 554, 572, 573, 576, 577, 582], "fit2": 488, "fit_covari": [456, 502], "fit_deriv": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "fit_joint": [452, 455, 463, 464], "fit_prior": 491, "fit_rang": [16, 456, 460, 461, 463, 502], "fit_result": [211, 286, 456, 477, 482, 502], "fit_results_nul": 286, "fit_scipi": 483, "fit_sherpa": 483, "fit_stat_scan": 395, "fit_statist": [380, 461], "fit_statistics_cython": 410, "fitconfig": 16, "fitmc": 398, "fitresult": [211, 433, 445, 447, 483, 503], "fitsfixedwarn": [459, 542], "fitsonli": 493, "fitspectrum": 435, "fitstepresult": [210, 213], "fittabl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49], "fittable1dmodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "fitter": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 438, 439, 453], "five": 504, "fix": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 85, 88, 94, 95, 106, 107, 133, 145, 163, 165, 180, 211, 249, 250, 255, 275, 383, 385, 386, 387, 391, 392, 395, 397, 402, 404, 405, 406, 409, 410, 412, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 434, 435, 436, 437, 438, 439, 440, 441, 443, 444, 450, 457, 458, 460, 461, 463, 464, 467, 471, 473, 474, 477, 483, 484, 485, 488, 489, 490, 502, 528, 530, 538, 555], "fixed_altaz": 85, "fixed_bin": 145, "fixed_icr": [85, 163, 450, 458, 467, 468, 471, 474], "fixed_offset": [96, 179, 431], "fixed_r_in": 168, "fixed_width": 168, "fixedpointinginfo": [88, 163, 186, 445, 446, 450, 458, 467, 468, 471, 474], "fk5": [531, 542], "flag": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 91, 103, 108, 123, 125, 126, 127, 130, 131, 191, 192, 193, 194, 196, 198, 199, 201, 202, 204, 205, 206, 210, 211, 212, 213, 452, 463, 467, 480, 489], "flake8": 383, "flare": [137, 294, 412, 425, 426, 449, 472, 474, 476, 477, 478, 498, 516, 527], "flask": 439, "flat": [125, 137, 155, 165, 191, 192, 197, 199, 201, 204, 207, 208, 249, 391, 404], "flatten": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 191, 192, 199, 201, 204, 478], "fledg": 408, "flexibl": [82, 331, 380, 385, 389, 390, 391, 394, 396, 400, 401, 407, 486, 518, 575], "float": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 50, 51, 83, 87, 88, 90, 91, 96, 102, 105, 109, 110, 114, 118, 122, 124, 125, 128, 131, 132, 133, 141, 142, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 168, 170, 179, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 207, 208, 211, 213, 214, 216, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 278, 286, 287, 288, 289, 290, 293, 297, 299, 307, 318, 325, 334, 336, 369, 370, 371, 485, 491, 493, 494, 578, 582], "float32": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 460, 465, 486], "float64": [87, 91, 111, 116, 150, 153, 380, 408, 416, 482, 484, 486, 516, 578], "float64float64float64": 465, "float64float64float64float64float64float64float64float32bool": 453, "float64float64float64float64float64float64float64float64": 465, "float_a": [87, 91], "flow": [407, 576, 577], "fluctuat": [288, 290, 404, 458, 471, 491, 580], "flux": [15, 19, 20, 26, 41, 46, 67, 71, 73, 74, 75, 77, 78, 79, 80, 83, 88, 100, 101, 102, 105, 109, 110, 118, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 218, 219, 220, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 262, 263, 264, 266, 267, 268, 269, 272, 274, 276, 277, 279, 280, 284, 293, 294, 295, 296, 298, 303, 384, 392, 393, 395, 396, 398, 400, 401, 403, 412, 419, 422, 424, 425, 427, 431, 433, 437, 438, 439, 441, 446, 447, 449, 454, 457, 459, 463, 465, 467, 468, 470, 472, 473, 474, 475, 477, 478, 481, 486, 489, 494, 498, 512, 514, 518, 523, 532, 539, 554, 575, 576, 577, 580], "flux1": 298, "flux2": 298, "flux_err": [19, 20, 26, 123, 125, 133, 142, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 295, 296, 303, 459, 472, 478], "flux_err1": 298, "flux_err2": 298, "flux_errn": [123, 125, 480], "flux_errp": [123, 125, 480], "flux_int_cu": 280, "flux_map": [123, 125, 134, 143, 404, 479], "flux_metadata_fits_kei": 124, "flux_per_omega": 489, "flux_point": [16, 66, 67, 71, 73, 74, 75, 77, 78, 79, 80, 98, 101, 123, 125, 126, 392, 450, 453, 455, 456, 460, 461, 463, 465, 475, 480, 481, 502, 503, 504], "flux_point_dataset": 392, "flux_points_at_tim": 404, "flux_points_ctb_37b": 125, "flux_points_dataset": [455, 465, 475], "flux_points_dataset_no_ul": 455, "flux_points_fermi": 464, "flux_points_hawc": 464, "flux_points_hess": 464, "flux_points_intrins": 451, "flux_points_meta": [71, 74, 75, 78], "flux_points_no_ul": 455, "flux_points_ob": 451, "flux_points_recomput": 125, "flux_points_t": [71, 73, 74, 75, 77, 78, 79, 80], "flux_pr": 101, "flux_profil": [449, 469, 470], "flux_profile_estim": 469, "flux_profile_fermi": 469, "flux_quant": [136, 137, 138, 139, 478], "flux_ref": [123, 125, 404], "flux_sensit": [123, 125], "flux_ul": [123, 125, 133, 480], "fluxestim": [123, 125, 126, 401, 427, 429, 430, 431, 433, 446], "fluxmap": [122, 124, 125, 133, 134, 135, 142, 143, 431, 446, 447, 459, 516], "fluxmapestim": 404, "fluxmapsmetadata": 407, "fluxpoint": [71, 73, 74, 75, 77, 78, 79, 80, 101, 123, 124, 126, 127, 130, 136, 137, 138, 139, 145, 392, 395, 404, 407, 431, 438, 439, 445, 446, 447, 450, 453, 464, 469, 472, 473, 478, 480, 481, 504, 513, 514, 516, 518], "fluxpointdataset": 425, "fluxpointestim": [395, 422, 428, 441], "fluxpointfit": 392, "fluxpointfitt": 440, "fluxpointprofil": 441, "fluxpointsconfig": 16, "fluxpointsdataset": [98, 99, 102, 105, 401, 404, 407, 421, 425, 446, 447, 453, 455, 464, 465, 474, 475, 514], "fluxpointsdatasetmetadata": 407, "fluxpointsestim": [119, 127, 130, 327, 401, 402, 404, 412, 422, 427, 428, 431, 445, 446, 451, 455, 464, 465, 475, 482, 502, 503, 518], "fluxpointsetim": 404, "fluxpointsmetadata": 407, "fluxprofileestim": [119, 431, 444, 446, 469], "fly": 390, "fmt": [477, 483, 491], "focu": [390, 400, 425, 438, 457, 578], "focus": [390, 406], "fold": [108, 404, 453, 464, 473, 482, 514, 516], "folder": [11, 82, 94, 101, 106, 110, 125, 344, 380, 381, 385, 388, 409, 411, 416, 421, 431, 434, 456, 463, 467, 493, 502, 503, 576, 578], "follow": [15, 19, 20, 43, 44, 80, 82, 83, 84, 90, 91, 102, 104, 106, 107, 109, 110, 123, 124, 125, 128, 133, 135, 141, 144, 192, 193, 194, 196, 200, 205, 206, 211, 263, 280, 286, 370, 371, 373, 380, 381, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 402, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 416, 423, 424, 425, 427, 428, 431, 433, 434, 440, 441, 445, 446, 447, 450, 451, 452, 453, 455, 456, 458, 459, 460, 463, 464, 467, 468, 472, 473, 474, 475, 477, 479, 480, 482, 483, 485, 486, 487, 488, 489, 493, 498, 502, 504, 506, 508, 509, 514, 516, 518, 520, 522, 523, 527, 529, 530, 531, 532, 540, 541, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 563, 576, 577, 579, 580, 581, 583], "font": [193, 194, 196, 202, 205, 206, 381, 486], "fontsiz": [377, 475, 483], "foo": [87, 91], "footprint": [193, 194, 196, 202, 204, 205, 206, 538], "footprint_rectangle_sky_region": 204, "forbid": [16, 84, 90, 104, 124], "forbidden": 488, "forc": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 151, 152, 158, 161, 163, 166, 204, 206, 307, 385, 395, 421], "forecom": [380, 405], "foremost": 578, "forens": 396, "foreseen": [390, 405], "forev": 421, "forg": [379, 397, 409, 410, 412, 413, 416, 439], "forget": [456, 466, 502], "forgot": 380, "forgotten": 380, "fork": [383, 409], "form": [16, 84, 87, 90, 91, 102, 104, 124, 163, 166, 201, 319, 380, 386, 390, 395, 403, 405, 407, 417, 439, 447, 487, 491, 515, 523, 536, 546, 576], "formal": [385, 408, 459], "format": [16, 83, 84, 85, 86, 87, 88, 90, 91, 94, 102, 104, 105, 107, 109, 110, 123, 124, 125, 126, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 186, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 208, 224, 232, 239, 247, 263, 273, 276, 315, 337, 361, 362, 369, 379, 388, 389, 390, 391, 392, 394, 396, 404, 406, 407, 410, 419, 431, 433, 436, 440, 442, 443, 445, 446, 447, 451, 453, 455, 456, 457, 459, 460, 461, 463, 465, 467, 468, 469, 472, 474, 478, 480, 482, 484, 486, 487, 489, 493, 494, 495, 496, 502, 504, 506, 512, 514, 515, 516, 517, 520, 521, 522, 523, 524, 531, 572, 573, 577, 578, 579], "format_plot_xaxi": [195, 198, 203, 484], "format_plot_yaxi": [198, 484], "formatt": [369, 486], "formatwarn": 380, "former": [406, 422, 427, 452, 488, 576, 579], "formula": [28, 29, 30, 31, 35, 36, 37, 39, 40, 50, 52, 53, 162, 253, 254, 304, 450, 579], "forthcom": 482, "forum": 409, "forward": [19, 20, 26, 83, 87, 91, 102, 105, 109, 110, 127, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 175, 197, 201, 202, 203, 211, 218, 219, 222, 223, 226, 228, 229, 230, 231, 232, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 281, 305, 369, 374, 381, 387, 390, 404, 453, 464, 473, 482, 514, 516, 531], "forwardref": [16, 84, 90, 104, 124], "found": [19, 20, 26, 82, 86, 87, 91, 137, 176, 181, 200, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 383, 384, 388, 395, 405, 406, 425, 428, 429, 430, 434, 461, 467, 478, 489, 491, 496, 515, 516, 527, 528], "four": [383, 391, 404, 409, 472, 493, 494, 522, 524, 530, 577], "fov": [122, 147, 148, 170, 171, 185, 186, 188, 190, 232, 380, 386, 394, 436, 439, 440, 447, 460, 477, 484, 487, 488, 493, 503, 526, 577], "fov_": 380, "fov_align": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 484], "fov_background": [460, 502], "fov_bkg_mak": [485, 525], "fov_lat": [148, 484, 493, 523], "fov_lat_axi": 484, "fov_lon": [148, 484, 493, 523], "fov_lon_axi": 484, "fov_theta": 380, "fovalign": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 484], "fovbackground": [408, 427], "fovbackgroundmak": [171, 426, 431, 485, 502, 503], "fovbackgroundmodel": [15, 102, 108, 109, 113, 170, 243, 408, 428, 445, 446, 447, 463, 464, 467, 468, 471, 481, 488, 502, 503, 525, 538], "fp": [123, 125, 145, 404, 502, 516, 518], "fp_dataset": [455, 481], "fp_dnde": 404, "fp_energy_flux": 404, "fp_estim": 482, "fp_result": 482, "fpe": [327, 402, 404, 451, 455, 465, 475, 503], "fpe_no_ul": 455, "fpp": 295, "fpp_err": [295, 478], "fpp_tabl": 478, "fr": 406, "frac": [17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 54, 105, 110, 150, 153, 209, 230, 235, 252, 254, 267, 294, 296, 306, 403, 514, 522, 523, 535, 536, 537, 540, 541, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 566, 567, 568, 570, 580, 581], "fraction": [19, 20, 26, 50, 52, 53, 83, 88, 89, 90, 122, 132, 139, 154, 160, 162, 163, 164, 166, 201, 207, 208, 218, 219, 222, 225, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 295, 296, 390, 395, 438, 446, 450, 458, 467, 471, 481, 484, 487, 493, 494, 495], "frame": [16, 83, 85, 91, 94, 95, 96, 102, 105, 109, 110, 111, 112, 113, 116, 127, 141, 163, 173, 176, 186, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275, 305, 306, 341, 356, 380, 381, 389, 391, 394, 404, 421, 422, 424, 425, 426, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 481, 484, 485, 486, 487, 488, 489, 490, 494, 495, 496, 502, 503, 504, 522, 527, 529, 530, 531, 535, 536, 537, 538, 539, 540, 541, 542], "framework": [391, 393, 394, 396, 398, 399, 403, 421, 422, 428, 440, 475, 489, 508, 518], "franceschini": [226, 227, 276, 445, 451, 544], "franceschini17": [227, 451, 544], "franceschni": 544, "frd_ab": 227, "free": [50, 52, 53, 77, 102, 105, 109, 110, 126, 130, 131, 173, 211, 215, 217, 249, 250, 286, 385, 395, 421, 447, 451, 456, 458, 460, 461, 463, 465, 466, 471, 472, 474, 477, 481, 483, 485, 488, 489, 491, 494, 498, 502, 503, 506, 516, 525, 538, 554, 555, 578, 580, 581], "free_paramet": [215, 217, 286, 477, 483, 488], "freedom": [120, 123, 125, 135, 144, 406, 446, 466, 516, 580, 581], "freez": [19, 20, 26, 87, 91, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 395, 406, 421, 431, 446, 460, 471, 477, 483, 489, 554], "freeze_al": [215, 217], "frenk": 506, "frequenc": [274, 289, 510], "frequent": [198, 380, 389, 398, 406, 473, 474, 478, 487, 518, 519, 578], "frequentist": 398, "fridai": 389, "friendli": [380, 385, 407, 442, 456, 502, 518], "from": [13, 15, 16, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 96, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 174, 175, 176, 179, 180, 182, 186, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 280, 286, 287, 288, 289, 290, 293, 296, 305, 306, 307, 317, 325, 327, 329, 330, 334, 337, 338, 342, 347, 359, 360, 362, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 381, 383, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 414, 416, 417, 419, 420, 421, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511, 512, 513, 514, 515, 516, 518, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 582], "from_align": [204, 431], "from_attribut": [16, 84, 90, 104, 124], "from_bound": [153, 155, 163, 192, 198, 204, 404, 464, 467, 468, 481, 484, 485, 486, 496, 530, 531], "from_covariance_matrix": 408, "from_default": 197, "from_diagonal_respons": [111, 116, 150, 151, 152, 459, 494], "from_dict": [19, 20, 26, 101, 102, 105, 109, 110, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 424, 431, 491], "from_dir": [82, 89, 96, 173, 305, 306, 416, 452, 455, 457, 465, 473, 475, 477, 485, 490, 493, 496, 500, 503, 515, 518, 525, 527, 528], "from_edg": [152, 193, 194, 196, 198, 202, 205, 206, 458, 471, 474, 484, 494, 495], "from_edisp_kernel": 151, "from_energy_bound": [102, 105, 109, 110, 111, 116, 150, 152, 153, 155, 161, 163, 173, 191, 192, 197, 198, 201, 204, 206, 381, 450, 452, 455, 457, 464, 465, 467, 468, 473, 475, 477, 481, 484, 485, 489, 494, 495, 503, 522, 525, 527, 528, 531], "from_energy_edg": [150, 198, 375, 481, 484], "from_events_fil": [82, 467, 493], "from_factor_matrix": 209, "from_fil": [82, 515], "from_fits_head": 85, "from_gauss": [150, 151, 155, 161, 163, 166, 522], "from_gaussian": 428, "from_geom": [102, 105, 109, 110, 151, 152, 161, 163, 166, 193, 194, 196, 200, 202, 205, 206, 425, 444, 481, 486, 487, 531, 537], "from_gti": 203, "from_gti_bound": 203, "from_hdu": [192, 194, 206], "from_hdulist": [102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 486], "from_head": [84, 90, 104, 124, 192, 204, 407], "from_irf": 165, "from_log10": [241, 242, 552], "from_map": [123, 125], "from_map_dataset": [105, 110], "from_nam": [461, 465], "from_nod": 198, "from_orm": [16, 84, 90, 104, 124], "from_panda": [87, 91], "from_paramet": [19, 20, 26, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "from_parametr": [153, 520], "from_posit": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 468], "from_refer": 403, "from_region": [201, 225, 445, 527], "from_region_map": 276, "from_spatial_model": 161, "from_spectrum_dataset": [110, 450, 458], "from_stack": [83, 86, 92, 123, 125, 193, 194, 195, 196, 198, 202, 205, 206, 209, 215, 217, 445, 446, 515], "from_tabl": [125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 195, 197, 198, 202, 203, 239, 442, 450], "from_table_hdu": [86, 197, 198], "from_time_bound": 203, "from_time_edg": [203, 477, 478], "from_time_interv": 86, "from_wcs_til": 194, "from_yaml": [16, 224, 247, 391, 456], "fromnumer": [457, 477], "front": [389, 409, 438], "frozen": [19, 20, 26, 101, 126, 130, 170, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 395, 403, 408, 423, 446, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 469, 471, 473, 474, 477, 480, 481, 482, 483, 487, 488, 489, 491, 494, 502, 503, 504, 516, 525, 554, 563], "fr\u00f6se": [446, 447], "ftol": 483, "ftool": 395, "fulfil": [407, 486], "full": [82, 126, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 194, 212, 224, 247, 315, 376, 379, 380, 385, 389, 390, 393, 395, 396, 400, 406, 408, 411, 418, 421, 431, 433, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 518, 529, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576], "full_enclosur": [186, 484], "full_output": [19, 20, 26, 212, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "fulli": [130, 191, 192, 201, 204, 274, 389, 390, 397, 401, 406, 410, 413, 423, 425, 433, 452, 478, 489, 493, 495, 496], "fun": [380, 383], "func": [17, 18, 21, 22, 24, 25, 27, 193, 194, 196, 202, 205, 206, 282, 328, 332, 333, 373, 461, 463], "function": [6, 15, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 82, 83, 85, 87, 88, 91, 100, 101, 102, 103, 105, 108, 109, 110, 118, 123, 130, 133, 134, 136, 137, 138, 139, 142, 143, 153, 154, 155, 157, 158, 160, 162, 163, 164, 166, 193, 194, 196, 198, 202, 205, 206, 211, 212, 213, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 262, 263, 264, 266, 267, 268, 269, 272, 276, 282, 288, 289, 290, 298, 299, 303, 320, 328, 329, 331, 332, 336, 337, 347, 365, 368, 369, 373, 375, 377, 379, 383, 386, 390, 391, 392, 393, 394, 395, 398, 399, 400, 401, 403, 404, 405, 407, 408, 412, 414, 416, 417, 419, 421, 422, 423, 424, 425, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 444, 445, 446, 447, 450, 451, 455, 456, 457, 458, 459, 463, 465, 466, 467, 468, 469, 477, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 495, 496, 498, 502, 503, 504, 506, 507, 508, 513, 514, 515, 517, 518, 527, 529, 531, 536, 537, 539, 566, 575, 576, 577, 578, 579, 581, 583], "functional_model": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "fundament": [393, 402, 407], "further": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 118, 122, 126, 127, 130, 133, 199, 331, 380, 383, 384, 386, 389, 390, 393, 394, 397, 399, 400, 401, 402, 403, 426, 427, 428, 431, 433, 461, 467, 479, 480, 481, 482, 486, 503, 504, 507, 508, 523, 578], "furthermor": 493, "futur": [103, 108, 380, 385, 390, 393, 394, 396, 397, 398, 399, 400, 401, 402, 404, 405, 406, 408, 439, 463, 469, 486, 494, 507, 516, 575], "fvar": [139, 296, 395, 438], "fvar_err": [296, 478], "fvar_tabl": 478, "g": [13, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 51, 52, 53, 54, 59, 67, 83, 85, 86, 87, 91, 95, 114, 141, 192, 193, 194, 196, 198, 202, 204, 205, 206, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 307, 347, 369, 375, 379, 380, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 403, 404, 406, 407, 409, 410, 412, 413, 414, 431, 433, 437, 439, 440, 441, 442, 445, 452, 453, 455, 456, 458, 465, 467, 469, 479, 480, 481, 483, 486, 487, 488, 489, 493, 494, 498, 504, 506, 510, 513, 514, 515, 516, 518, 523, 528, 529, 530, 537, 575, 577, 578, 580, 582, 583], "g0": [463, 494], "g28": 67, "g320": 480, "g_1": 153, "g_2": 153, "g_3": 153, "ga": 469, "gabriel": 440, "gadf": [83, 84, 85, 86, 88, 90, 95, 102, 104, 105, 109, 110, 124, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 390, 393, 404, 407, 431, 433, 442, 445, 447, 482, 484, 486, 502, 514, 518, 531, 577], "gain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 385, 397, 439], "gal_diffus": 396, "galact": [17, 18, 21, 22, 24, 25, 27, 29, 45, 47, 67, 68, 83, 91, 102, 105, 109, 110, 111, 116, 126, 127, 129, 163, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 225, 234, 237, 251, 260, 261, 314, 341, 380, 381, 391, 394, 400, 419, 421, 438, 451, 452, 455, 458, 459, 460, 463, 465, 466, 467, 469, 471, 474, 479, 480, 481, 486, 487, 488, 489, 493, 504, 506, 509, 513, 528, 529, 530, 531, 535, 536, 537, 538, 539, 540, 541, 577, 583], "galactic_median": 83, "galactocentr": 41, "galaxi": [28, 30, 35, 39, 40, 41, 226, 295, 296, 419, 452], "galelli": [444, 446, 447], "gallant": 439, "galleri": [410, 426, 428, 431, 442, 446, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 519, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575], "gallery_jupyt": 532, "gallery_python": 532, "galprop": [192, 193, 194, 196, 205, 206], "galprop2": [192, 193, 194, 196, 205, 206], "gambit": 506, "gamma": [11, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 52, 53, 57, 59, 63, 66, 67, 79, 83, 122, 126, 132, 162, 186, 193, 194, 196, 205, 206, 226, 228, 229, 230, 252, 253, 254, 276, 280, 334, 380, 386, 388, 391, 392, 393, 394, 404, 410, 412, 416, 417, 422, 436, 437, 438, 439, 440, 450, 451, 453, 455, 456, 457, 461, 464, 465, 466, 467, 469, 480, 484, 486, 487, 490, 493, 495, 496, 502, 504, 506, 508, 509, 513, 514, 515, 518, 521, 523, 525, 527, 528, 537, 544, 548, 549, 556, 557, 575, 576, 577, 578, 579, 580, 583], "gamma1": [218, 545, 559], "gamma2": [218, 545, 559], "gamma_1": [264, 267, 268, 269, 403, 560, 561, 562], "gamma_2": [264, 267, 268, 269, 403, 560, 561, 562], "gamma_min": [132, 450], "gamma_min_sensit": 122, "gammacat": [55, 66, 438, 453], "gammalib": [380, 393], "gammamc_dif": 506, "gammapi": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 384, 385, 387, 388, 390, 391, 392, 393, 394, 395, 396, 398, 402, 403, 404, 408, 411, 412, 413, 414, 415, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 492, 497, 498, 500, 502, 503, 504, 507, 508, 510, 511, 512, 518, 519, 520, 521, 522, 524, 528, 529, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 583], "gammapy_analysis_config": 396, "gammapy_data": [26, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 82, 83, 86, 88, 89, 91, 94, 96, 101, 102, 105, 109, 110, 115, 117, 118, 122, 123, 125, 127, 129, 131, 133, 141, 142, 145, 146, 148, 152, 153, 154, 155, 163, 173, 193, 194, 196, 202, 205, 206, 211, 227, 239, 276, 286, 305, 306, 359, 368, 373, 375, 380, 381, 383, 396, 412, 414, 416, 420, 421, 422, 431, 440, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 515, 516, 518, 520, 521, 522, 524, 525, 527, 528, 542, 572, 573], "gammapy_extra": 420, "gammapybaseconfig": 16, "gammapydeprecationwarn": [380, 469, 494, 550], "gammmapi": [390, 397], "gap": 136, "garcia": 440, "gather": [394, 400, 409], "gauss": [42, 51, 54, 102, 105, 128, 129, 154, 194, 206, 234, 235, 236, 237, 403, 437, 475, 486, 489, 504, 535, 536], "gauss_elong": 489, "gauss_temp": 489, "gaussian": [67, 68, 80, 81, 101, 118, 128, 134, 143, 150, 151, 155, 161, 163, 166, 194, 206, 233, 234, 235, 236, 237, 238, 295, 296, 391, 399, 403, 408, 424, 428, 447, 449, 451, 453, 455, 465, 467, 471, 474, 478, 480, 483, 484, 489, 491, 493, 504, 522, 524, 532, 543, 564, 574], "gaussian1d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "gaussian2d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50], "gaussian2dkernel": 118, "gaussian_compon": [67, 480], "gaussian_error": [134, 143], "gaussian_filt": [128, 206], "gaussian_model": 567, "gaussian_sigma": 483, "gaussianband2d": 439, "gaussianprior": [408, 451, 491], "gaussianspatialmodel": [80, 81, 115, 117, 257, 403, 424, 465, 466, 471, 489, 536], "gaussianspectralmodel": [258, 403, 489, 551], "gaussiantemporalmod": 431, "gaussiantemporalmodel": [270, 403, 427, 489, 567], "gb": [388, 390, 493, 495], "gbc69342c8": [104, 124, 417, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "gc": [86, 102, 105, 109, 110, 115, 117, 118, 122, 127, 129, 133, 141, 142, 368, 373, 375, 383, 459, 460, 463, 465, 467, 469, 479, 481, 482, 486, 488, 489, 493, 494, 504, 506, 515, 516], "gc_3fhl": 504, "gc_3fhl_cutout": 504, "gc_3fhl_smooth": 504, "gc_imag": 469, "gc_po": 494, "gc_sep": 488, "gca": 451, "gcc": 416, "gcv5dvyp": 477, "ge": 90, "geminga": 59, "gen_gaussian_model": 568, "gener": [16, 27, 33, 42, 45, 46, 47, 56, 82, 83, 84, 87, 88, 90, 91, 92, 102, 103, 104, 105, 108, 109, 110, 124, 152, 163, 166, 193, 194, 196, 197, 198, 202, 205, 206, 211, 223, 231, 236, 237, 238, 239, 240, 255, 262, 271, 272, 274, 276, 277, 289, 329, 331, 334, 335, 336, 337, 344, 381, 383, 389, 391, 392, 393, 394, 396, 398, 399, 400, 401, 402, 403, 404, 405, 409, 410, 413, 416, 422, 426, 427, 428, 431, 433, 438, 442, 445, 446, 447, 449, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 514, 518, 523, 529, 531, 532, 534, 535, 536, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 569, 570, 571, 572, 573, 574, 578, 580, 581], "generalconfig": 16, "generalis": [125, 399, 425, 484], "generalized_gaussian_model": 568, "generalizedgaussianspatialmodel": [257, 428, 489, 537], "generalizedgaussiantemporalmodel": [270, 433, 489, 568], "generalrandom": 423, "generatejsonschema": [16, 84, 90, 104, 124], "gengauss": [238, 489, 537], "geodeticloc": 94, "geolat": 452, "geom": [16, 23, 83, 102, 105, 109, 110, 111, 114, 116, 122, 123, 125, 127, 133, 151, 152, 161, 163, 166, 173, 180, 182, 183, 184, 185, 186, 187, 188, 189, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 220, 221, 224, 225, 232, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 275, 391, 393, 395, 428, 431, 440, 446, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 494, 495, 502, 503, 504, 516, 525, 527, 528, 529, 530, 531, 534, 536, 537, 538, 539], "geom_24_energy_bin": 531, "geom_6_energy_bin": 531, "geom_edisp": [102, 105, 109, 110, 481], "geom_energi": 531, "geom_exposur": [102, 105, 109, 110, 444, 481], "geom_imag": [461, 465, 531], "geom_irf": 393, "geom_psf": [102, 105, 109, 110, 481], "geom_tru": 425, "geomconfig": 16, "geometri": [23, 83, 100, 102, 105, 109, 110, 112, 113, 114, 123, 125, 133, 134, 135, 143, 151, 152, 158, 161, 163, 166, 170, 173, 175, 180, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 196, 197, 199, 200, 201, 202, 204, 205, 206, 207, 208, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 275, 376, 386, 392, 395, 396, 425, 431, 442, 447, 455, 456, 457, 458, 460, 461, 463, 467, 468, 471, 481, 482, 485, 494, 495, 514, 516, 518, 526, 530, 576, 577], "geomspac": [125, 408, 482], "geq": [52, 53], "gerrit": 447, "get": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 85, 87, 88, 90, 91, 94, 96, 100, 102, 104, 106, 107, 109, 118, 122, 124, 126, 127, 130, 131, 133, 141, 145, 150, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 209, 215, 217, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 233, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 256, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 278, 279, 315, 331, 380, 381, 385, 386, 387, 388, 389, 390, 394, 395, 397, 404, 406, 407, 408, 410, 411, 413, 414, 416, 417, 420, 422, 437, 438, 439, 440, 447, 450, 456, 458, 459, 463, 464, 465, 471, 473, 477, 480, 481, 483, 484, 485, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 514, 518, 531, 577, 581], "get_altaz": [85, 94, 445], "get_bia": 150, "get_bias_energi": 150, "get_bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "get_by_coord": [193, 194, 196, 202, 205, 206, 485, 486, 494, 495, 530], "get_by_idx": [193, 194, 196, 202, 205, 206, 486, 530], "get_by_pix": [193, 194, 196, 202, 205, 206, 530], "get_cl": [453, 480, 487], "get_combined_flux_map": 134, "get_combined_significance_map": 135, "get_coord": [191, 192, 197, 201, 204, 424, 431, 440, 468, 486, 487, 527, 531], "get_dataset": [15, 456, 460, 461, 463, 472, 502, 518], "get_devel_vers": 383, "get_edges_fixed_bin": 145, "get_edges_min_t": 145, "get_edisp_kernel": [151, 152, 426, 431, 481, 494, 522], "get_events_meta_data": 393, "get_excess_map": [15, 502], "get_filenam": [106, 107], "get_flux_point": [15, 123, 125, 404, 426, 456, 502], "get_group_by_idx": 404, "get_hdu": 315, "get_icr": [85, 94, 445], "get_idx": [191, 192, 201, 204, 531], "get_image_by_coord": [193, 194, 196, 202, 205, 206, 486], "get_image_by_idx": [193, 194, 196, 202, 205, 206], "get_image_by_pix": [193, 194, 196, 202, 205, 206], "get_index_list": 192, "get_irfs_featur": [305, 306, 445, 490], "get_kernel": 118, "get_light_curv": 15, "get_mean": 150, "get_observ": [15, 82, 96, 305, 306, 422, 433, 452, 455, 456, 457, 460, 461, 463, 465, 467, 472, 473, 475, 477, 485, 490, 495, 496, 500, 502, 503, 518, 525, 527, 528], "get_ogip_meta": 107, "get_pix": 204, "get_pointing_altaz": [88, 490], "get_pointing_icr": [88, 445, 465, 485, 503], "get_psf_kernel": [161, 163, 166, 446, 447, 494], "get_random_st": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 334, 335, 336, 337, 380], "get_rebinned_axi": 473, "get_resolut": 150, "get_respons": 438, "get_scal": 118, "get_scale_model": [126, 127, 130], "get_spectrum": [193, 194, 196, 202, 205, 206], "get_subcovari": 209, "get_transform": [459, 465, 535, 536], "get_valid_path": 106, "get_wcs_coord_and_weight": 201, "getattr": 408, "getitem": 438, "getlogg": [380, 461, 465, 472, 473, 474, 477, 500], "getter": 381, "getting_start": 400, "gev": [17, 18, 19, 20, 21, 22, 24, 25, 27, 74, 127, 133, 193, 194, 196, 198, 202, 205, 206, 453, 457, 459, 463, 464, 469, 471, 474, 475, 479, 480, 485, 486, 487, 488, 493, 494, 495, 504, 531, 554, 576, 577], "gev2": [19, 479], "gevgevgev1": 453, "gh": [380, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 410], "gham": 477, "git": [86, 263, 380, 381, 383, 385, 387, 388, 406, 409, 413, 442], "github": [381, 383, 384, 385, 386, 388, 389, 398, 400, 406, 409, 410, 413, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 436, 437, 438, 439, 440, 441, 518], "giuliani": 393, "giunti": [421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 442, 445], "give": [6, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 101, 140, 294, 295, 380, 385, 389, 390, 394, 395, 396, 397, 400, 401, 406, 410, 421, 423, 425, 433, 446, 455, 456, 459, 466, 468, 473, 477, 478, 480, 483, 484, 485, 486, 489, 493, 494, 502, 518, 523, 578, 579, 581, 582], "given": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 46, 51, 52, 53, 67, 68, 69, 80, 82, 83, 84, 85, 87, 88, 90, 91, 94, 96, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 112, 113, 120, 122, 123, 124, 125, 126, 128, 130, 131, 132, 133, 134, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 175, 176, 179, 181, 183, 184, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 211, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 286, 288, 290, 296, 305, 307, 310, 311, 318, 325, 329, 332, 333, 341, 367, 368, 373, 377, 380, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 399, 403, 404, 406, 408, 420, 425, 431, 439, 440, 445, 450, 451, 452, 453, 456, 459, 467, 468, 469, 471, 472, 473, 474, 479, 480, 481, 482, 484, 485, 486, 487, 489, 493, 494, 502, 504, 514, 515, 516, 518, 522, 523, 527, 528, 530, 531, 537, 541, 544, 575, 577, 578, 579, 580], "glast": 494, "glat": [41, 67, 68, 83, 380, 455, 480, 486, 494], "glat_err": 480, "glat_pnt": [465, 493], "glimps": [495, 498], "gll_iem_v06_cutout": [193, 194, 196, 202, 205, 206], "gll_iem_v06_gc": [467, 486, 488, 489, 494], "gll_psc_v16": 61, "gll_psc_v20": 480, "gll_psc_v32": 65, "gll_psch_v09": 58, "gll_psch_v13": 62, "glob": [82, 381, 481, 482], "global": [16, 33, 42, 45, 46, 47, 100, 102, 103, 105, 108, 109, 110, 152, 163, 166, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 211, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380, 384, 386, 428, 445, 455, 465, 466, 475, 488, 491, 516, 576], "global_dataset": 485, "global_to_loc": 192, "glon": [41, 67, 68, 83, 380, 455, 480, 486, 494], "glon_pnt": [465, 493], "glossari": [400, 442, 514, 531], "glue": 518, "glueviz": 397, "go": [50, 87, 91, 383, 390, 400, 405, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 506, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "goal": [385, 394, 408, 483], "goe": [41, 52, 370, 380, 399, 410, 469, 491], "gogia": 438, "good": [82, 86, 101, 125, 300, 304, 380, 385, 387, 388, 389, 390, 391, 394, 396, 397, 398, 400, 451, 455, 457, 458, 461, 471, 473, 474, 478, 479, 481, 483, 485, 487, 489, 494, 495, 498, 540, 541, 577, 582], "googl": [87, 91, 400, 409, 447], "got": 493, "gov": [58, 60, 61, 62, 64, 65, 150, 198, 400, 557], "gp": [82, 83, 89, 381, 390, 396, 460, 463, 465, 475, 493, 495], "gpl3": 380, "gps_baseline_110380": [82, 83, 493], "gradient": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "grai": [371, 527, 554], "grand": 380, "grant": [383, 406], "granular": 478, "grayify_colormap": 399, "grb": [474, 478], "great": [385, 394, 399, 437, 498], "greater": [170, 373], "green": [101, 109, 110, 439, 466, 490, 491], "grei": 475, "grep": 415, "grid": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 126, 129, 154, 162, 164, 193, 194, 196, 198, 202, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 282, 373, 380, 391, 396, 423, 425, 483, 530, 531, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571], "gridsearch": [211, 483], "gridspec": 367, "gridspec_kw": [459, 465, 472, 474, 544], "ground": [95, 395, 493, 579], "group": [86, 87, 91, 92, 126, 127, 130, 131, 133, 151, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 305, 386, 395, 399, 400, 401, 404, 409, 412, 422, 425, 427, 431, 437, 440, 459, 472, 474, 498, 516, 518, 532, 578], "group_1": 490, "group_2": 490, "group_bi": [87, 91, 404], "group_by_axi": 404, "group_by_label": [92, 490], "group_high_zenith": 490, "group_low_zenith": 490, "group_siz": [145, 473], "group_tabl": [86, 198, 203], "grouped_observ": 490, "grow": [388, 399, 439], "grown": 400, "gr\u00e9aux": 445, "gsfc": [58, 60, 61, 62, 64, 65, 150, 198, 400, 557], "gt": 484, "gtexpcube2": 494, "gti": [82, 87, 88, 89, 100, 101, 102, 105, 109, 110, 123, 125, 127, 130, 134, 143, 167, 203, 263, 386, 389, 390, 393, 394, 395, 404, 423, 425, 426, 428, 441, 445, 446, 467, 473, 474, 477, 481, 485, 493, 495, 496, 514, 577], "gti_1": 515, "gti_2": 515, "gti_t0": 474, "gtimetadata": 407, "gtmktime": [390, 494], "gtobsim": 393, "gtol": 483, "gtpsf": [151, 152, 158, 163, 166, 198, 459, 494], "gtselect": [390, 494], "guarante": [388, 403, 405], "guess": [125, 192, 194, 446], "guid": [383, 396, 398, 412, 413, 414, 417, 440, 463, 498, 518, 533, 543, 564, 574], "guidelin": [380, 384, 417, 439], "guiger": [31, 39], "gz": [58, 60, 61, 62, 64, 65, 66, 67, 82, 83, 86, 88, 91, 94, 102, 105, 109, 110, 115, 117, 118, 122, 127, 129, 133, 141, 142, 155, 227, 276, 368, 373, 375, 381, 402, 440, 451, 455, 456, 459, 466, 467, 468, 469, 480, 481, 482, 484, 486, 488, 489, 493, 494, 495, 500, 502, 503, 504, 515, 516, 518, 520, 521, 522, 524, 544], "h": [26, 67, 82, 86, 87, 91, 95, 126, 128, 152, 179, 193, 194, 196, 202, 205, 206, 289, 370, 400, 403, 412, 416, 417, 425, 440, 447, 449, 450, 451, 452, 455, 456, 458, 461, 464, 466, 472, 473, 474, 477, 479, 483, 484, 485, 486, 489, 490, 491, 493, 494, 495, 497, 498, 500, 502, 503, 513, 518, 531, 566, 567, 577, 578], "h0": 466, "h05": [45, 49], "h1": 466, "h_0": [466, 580], "h_1": [466, 580], "h_i": 128, "ha": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 80, 87, 91, 101, 102, 105, 109, 110, 122, 123, 125, 165, 187, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 274, 275, 276, 373, 375, 377, 380, 381, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 410, 411, 413, 427, 428, 431, 433, 434, 440, 441, 442, 444, 445, 446, 447, 451, 452, 455, 456, 457, 461, 466, 468, 472, 473, 475, 479, 480, 481, 483, 485, 486, 487, 489, 490, 491, 493, 495, 496, 502, 503, 514, 515, 518, 523, 527, 528, 530, 531, 535, 536, 563, 575, 578, 580], "habilit": 304, "hack": 436, "had": [380, 386, 388, 406, 428, 434, 438, 439], "hadron": [279, 386, 391, 461, 481, 493, 514, 527], "hajlaoui": [428, 431], "hal": 406, "half": [163, 166, 198, 204, 275], "halo": 506, "halv": [137, 294, 446], "halving_coord": 478, "halving_err": 478, "hand": [175, 380, 383, 388, 391, 400, 406, 408, 443, 483, 498, 518], "handbook": [400, 498], "handi": 463, "handl": [3, 16, 84, 90, 104, 123, 124, 125, 179, 200, 297, 379, 381, 384, 392, 393, 394, 396, 401, 403, 404, 407, 409, 412, 414, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 436, 437, 438, 439, 441, 442, 444, 445, 455, 457, 463, 464, 465, 467, 481, 484, 486, 488, 489, 494, 495, 498, 503, 504, 514, 515, 518, 577], "handler_map": 377, "hanna": [446, 447], "hap": 396, "happen": [82, 383, 385, 387, 388, 394, 398, 410, 456, 488, 498, 502, 503, 514, 518, 580], "happi": [383, 387, 400, 420, 421, 440], "hard": [380, 381, 403, 408, 426, 491], "harder": [387, 578], "hardli": 407, "harri": [435, 436], "harvard": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 211, 244, 279, 280, 289, 296, 298, 400, 483], "has_any_t": [123, 125], "has_energy_axi": [191, 192, 201, 204], "has_invers": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "has_masked_column": [87, 91], "has_masked_valu": [87, 91], "has_mixin_column": [87, 91], "has_offset_axi": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165], "has_single_spatial_bin": [151, 152, 158, 163, 166], "has_stat_profil": [123, 125], "has_success": [123, 125], "has_ul": [123, 125], "has_user_bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "has_user_invers": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "hasattr": 380, "hasn": 385, "hatch": 475, "have": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 84, 87, 90, 91, 95, 100, 104, 107, 111, 116, 123, 124, 125, 126, 130, 141, 142, 150, 151, 152, 161, 163, 166, 173, 175, 187, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 307, 331, 337, 377, 379, 380, 381, 382, 383, 385, 386, 387, 389, 391, 393, 394, 397, 398, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 420, 421, 422, 425, 428, 431, 433, 434, 437, 439, 440, 441, 442, 443, 445, 446, 447, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 473, 474, 475, 477, 480, 481, 482, 483, 484, 486, 487, 488, 489, 490, 491, 493, 494, 495, 498, 502, 503, 504, 506, 514, 515, 516, 518, 525, 529, 530, 531, 541, 552, 575, 578, 581, 582], "haven": 416, "hawc": [55, 59, 63, 72, 76, 97, 417, 425, 431, 439, 442, 443, 445, 449, 497, 498, 513, 526, 577], "hawc19_flux_point": [125, 464, 518], "hawc_crab": [125, 464, 518], "hd": 67, "hdr": 407, "hdr_dict": 407, "hdu": [67, 82, 83, 85, 86, 87, 88, 94, 102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 315, 366, 381, 390, 419, 434, 436, 439, 442, 443, 484, 486, 493, 495, 496, 514, 515, 518, 520, 521, 522, 524, 531, 573], "hdu1": 150, "hdu2": 150, "hdu_al": 467, "hdu_band": [123, 125, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206], "hdu_class": [82, 87, 315, 493, 495, 496], "hdu_class_uniqu": 87, "hdu_evt": 467, "hdu_filenam": 495, "hdu_gti": 467, "hdu_hdu": 82, "hdu_index": 82, "hdu_list": [151, 152, 154, 158, 162, 163, 164, 166, 193, 194, 205, 206], "hdu_loc": 87, "hdu_nam": 315, "hdu_ob": 82, "hdu_out": [193, 194], "hdu_region": [201, 202], "hdu_tabl": [82, 495], "hdu_table_filenam": 82, "hdu_typ": [82, 87, 493, 495, 496], "hdu_type_uniqu": 87, "hduclas2": 484, "hduclas3": 484, "hduclas4": 484, "hduclasn": 484, "hduindext": [82, 315, 495], "hdulist": [102, 105, 107, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 200, 201, 202, 204, 205, 206, 467, 486, 514], "hduloc": [87, 102], "he": [279, 390, 395], "hea": 395, "head": 381, "header": [82, 83, 84, 85, 86, 87, 88, 90, 91, 94, 100, 101, 102, 104, 105, 106, 107, 109, 110, 123, 124, 125, 150, 151, 152, 158, 163, 166, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 203, 204, 205, 206, 275, 317, 362, 363, 366, 385, 390, 393, 407, 425, 433, 435, 440, 442, 445, 457, 468, 486, 493, 582], "healpi": [192, 379, 387, 389, 397, 411, 412, 414, 423, 431, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 529], "healpix": [13, 192, 193, 194, 196, 202, 205, 206, 379, 387, 389, 394, 431, 439, 486, 494, 530], "healpix_to_imag": 432, "heapsort": [87, 91], "heart": 580, "heasarc": [150, 198], "heatmap": [369, 374], "heavi": [440, 441], "heavier": 463, "heavili": 431, "hegra": [97, 280], "heidelberg": [380, 409], "heidt": 478, "height": [16, 29, 87, 91, 94, 127, 340, 456, 460, 461, 463, 469, 472, 475, 479, 486, 487, 489, 502, 527, 531], "heighten": 478, "helen": 437, "hello": [416, 465], "help": [11, 87, 91, 291, 297, 380, 383, 385, 387, 394, 395, 396, 400, 406, 409, 410, 411, 416, 420, 421, 422, 439, 440, 442, 480, 485, 486, 488, 494, 496, 504, 518, 578], "helper": [13, 315, 320, 387, 389, 394, 395, 396, 399, 410, 416, 422, 423, 424, 425, 431, 433, 436, 438, 439, 445, 446, 469, 480, 487, 488, 527, 576, 583], "henc": [87, 91, 396, 460, 461, 516, 531, 580], "here": [13, 82, 83, 87, 91, 102, 109, 125, 135, 144, 148, 153, 162, 211, 288, 290, 293, 368, 379, 380, 381, 382, 383, 386, 387, 392, 393, 394, 395, 396, 397, 398, 399, 400, 406, 407, 408, 409, 410, 412, 414, 416, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 484, 485, 486, 487, 490, 491, 493, 494, 495, 498, 502, 503, 504, 508, 514, 518, 523, 525, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 579, 580, 582, 583], "hereaft": 467, "herebi": 491, "heritag": 406, "herm": [283, 285, 446], "hess": [16, 55, 67, 82, 83, 86, 88, 91, 96, 97, 101, 109, 110, 131, 145, 146, 153, 155, 173, 211, 286, 305, 306, 381, 388, 389, 394, 396, 400, 409, 412, 416, 419, 421, 424, 435, 436, 439, 440, 449, 452, 453, 455, 456, 457, 461, 463, 465, 466, 473, 475, 477, 480, 481, 482, 483, 485, 490, 491, 494, 496, 497, 500, 502, 503, 506, 515, 516, 518, 520, 521, 522, 524, 525, 527, 528], "hess2": [153, 520], "hess_dl3_dr1_obs_id_020136": [88, 155, 381, 520, 521, 522, 524], "hess_dl3_dr1_obs_id_023523": [83, 86, 515], "hess_dl3_dr1_obs_id_023526": 515, "hess_ecpl": [280, 455], "hess_pl": 280, "hessian": 516, "heterogen": [407, 453, 464], "hfm": 67, "hgp": [67, 80, 81, 122, 400, 425, 437, 439, 440, 513], "hgps_catalog_v1": 67, "hgps_sourc": 67, "hgpsc": [67, 480], "hi": [380, 438], "hi_bnd": 198, "hi_threshold": 150, "hidden": 391, "hide": [13, 385, 402], "hierarch": [13, 305, 347, 389, 391, 407, 446, 518, 530], "hierarchi": [305, 391, 424], "hierarchical_clust": [445, 490], "high": [6, 15, 58, 62, 63, 83, 150, 198, 330, 380, 384, 385, 386, 393, 394, 395, 400, 407, 423, 424, 425, 426, 427, 431, 439, 440, 449, 450, 453, 456, 459, 460, 463, 469, 471, 472, 479, 480, 481, 482, 485, 487, 493, 494, 495, 496, 498, 503, 504, 505, 513, 514, 515, 516, 523, 526, 576, 577, 578, 579], "high_zenith": 490, "higher": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 238, 383, 386, 391, 396, 399, 401, 413, 453, 468, 478, 484, 486, 525, 531], "highest": [141, 179, 478, 485, 493, 504], "highli": 489, "highlight": 578, "hint": [407, 459, 516], "hire": [154, 400, 508, 510, 511, 512, 514, 515, 520, 521, 522, 524, 527, 531, 580, 583], "hist": [83, 109, 110, 202, 206, 373, 458, 491], "histogram": [83, 109, 110, 198, 202, 206, 373, 445, 475, 531, 577], "histori": [394, 406, 442], "hli": [393, 426, 427, 431, 442, 449, 454, 498, 514, 517, 577], "hli_spectrum_analysi": 456, "hline": 535, "hoc": 394, "hold": [69, 82, 89, 92, 96, 100, 161, 232, 307, 389, 390, 392, 395, 578, 580], "home": [16, 344, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 544, 550, 566, 572, 573], "homebrew": 397, "homework": 422, "homogen": [87, 91, 428], "honk": 385, "hood": [456, 498, 502], "hook": [383, 442], "hope": 385, "hopefulli": 387, "horizont": [85, 95, 156, 350, 484, 582], "host": 380, "hour": [67, 94, 383, 396, 409, 410, 450, 480, 485, 486, 518], "hover": 381, "how": [16, 19, 20, 82, 83, 84, 85, 90, 99, 104, 124, 125, 127, 129, 173, 194, 204, 206, 331, 337, 382, 385, 388, 392, 394, 396, 397, 399, 402, 403, 406, 407, 410, 411, 412, 416, 417, 420, 421, 422, 425, 426, 433, 435, 438, 439, 440, 445, 446, 450, 451, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 504, 508, 514, 516, 519, 523, 527, 529, 530, 544, 563, 576, 578, 579, 580, 582, 583], "howev": [77, 87, 91, 101, 122, 295, 379, 380, 381, 383, 387, 390, 393, 394, 398, 406, 408, 413, 452, 461, 469, 475, 477, 479, 480, 481, 483, 491, 495, 496, 498, 514, 518, 530, 531, 536, 552, 578], "howto": [400, 442, 443], "hpx": [192, 193, 194, 196, 205, 206, 394, 431, 486, 494], "hpx2wc": [193, 194], "hpx_map": [193, 194], "hpx_pixel": 394, "hpx_reg": 192, "hpxgeom": [123, 191, 193, 194, 426, 431, 442, 494, 529], "hpxmap": [194, 196, 529], "hpxndmap": [271, 431, 529], "hpxsparsemap": 425, "hpxtowcsmap": [193, 194], "hr": [467, 468, 471, 474], "hspace": 479, "hspec": [435, 436, 437], "hst": 226, "hstack": [87, 91, 393], "html": [26, 83, 87, 91, 126, 150, 186, 192, 198, 201, 204, 211, 224, 247, 276, 307, 334, 335, 380, 381, 383, 388, 400, 405, 406, 409, 410, 418, 439, 450, 458, 460, 463, 465, 471, 474, 483, 484, 493, 515, 518, 521, 529, 531, 557], "htmlcov": 410, "http": [11, 13, 16, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 63, 64, 65, 67, 83, 84, 87, 88, 90, 91, 104, 118, 124, 126, 135, 136, 137, 144, 150, 153, 179, 186, 192, 198, 201, 204, 211, 224, 244, 247, 253, 254, 268, 269, 276, 279, 280, 289, 295, 296, 298, 303, 307, 334, 335, 347, 383, 397, 400, 405, 406, 409, 410, 411, 412, 413, 414, 418, 422, 439, 450, 455, 458, 460, 463, 464, 465, 471, 474, 479, 480, 483, 484, 493, 515, 518, 529, 531, 557, 561, 562, 578], "hubert": 440, "hue": 371, "huestart": 371, "huge": [410, 536], "hugovk": 421, "human": [361, 391, 410, 433, 456, 502], "hundr": 495, "hypercub": [486, 530, 531], "hypothes": [286, 445, 518, 580], "hypothesi": [123, 125, 126, 127, 130, 131, 286, 288, 290, 447, 453, 459, 466, 482, 516, 518, 577, 580], "hysteresi": 477, "hz": [337, 504], "i": [11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 176, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 303, 304, 305, 307, 309, 313, 315, 318, 319, 320, 325, 327, 328, 331, 334, 335, 336, 337, 339, 340, 343, 346, 348, 349, 351, 355, 357, 358, 362, 363, 364, 366, 367, 368, 369, 370, 371, 373, 374, 375, 376, 377, 379, 381, 382, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 506, 507, 508, 513, 514, 515, 516, 517, 518, 520, 521, 522, 523, 524, 525, 526, 527, 528, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583], "i0": [87, 91], "i1": [87, 91], "i4": 469, "i8": [486, 504], "i_0": [193, 194, 196, 202, 205, 206], "i_hpx": [193, 194, 196, 202, 205, 206], "i_lat": [193, 194, 196, 202, 205, 206], "i_lon": [193, 194, 196, 202, 205, 206], "i_n": [193, 194, 196, 202, 205, 206], "i_scan": 491, "iact": [82, 83, 85, 94, 173, 176, 180, 386, 389, 390, 391, 392, 394, 396, 400, 417, 422, 436, 438, 440, 453, 459, 461, 485, 486, 488, 493, 494, 496, 515, 520, 521, 522, 524, 575, 577], "iactbasicimageestim": [386, 439], "iau": [52, 419, 423], "iau2015": 52, "ic": 554, "icon": 576, "icr": [83, 85, 88, 91, 94, 95, 96, 102, 105, 109, 110, 112, 113, 141, 163, 173, 176, 192, 193, 194, 196, 199, 201, 204, 205, 206, 220, 221, 225, 234, 237, 251, 260, 261, 305, 306, 341, 380, 381, 404, 424, 455, 456, 457, 458, 459, 461, 464, 465, 467, 468, 471, 472, 473, 474, 475, 477, 480, 481, 484, 485, 486, 487, 489, 490, 493, 494, 495, 496, 502, 503, 515, 518, 522, 527, 531, 535, 536, 537, 539, 540, 541], "icrc": 435, "id": [67, 80, 82, 83, 87, 88, 91, 92, 112, 113, 393, 396, 416, 456, 458, 467, 469, 471, 475, 480, 489, 493, 494, 495, 496, 502, 515], "id_obs_vela": 475, "idea": [385, 388, 395, 399, 400, 401, 456, 477, 484, 490, 494, 502], "ideal": [382, 383, 390, 394, 395, 404, 408, 409, 453, 494], "idempot": [16, 84, 90, 104, 124], "ident": [355, 383, 395, 442, 455, 457], "identif": [67, 386, 480], "identifi": [67, 88, 103, 108, 192, 263, 380, 390, 391, 393, 396, 405, 406, 410, 426, 459, 467, 478, 480, 481, 489, 493, 495, 517], "identified_object": 480, "idx": [83, 87, 91, 92, 100, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 247, 458, 467, 474, 480, 483, 486, 530], "idx1": 483, "idx2": 483, "idx_glob": 192, "idx_loc": 192, "ie": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 406, 451, 477, 488, 489, 514, 577], "iem": [488, 494], "iem_minus_iem": 486, "iem_plus_iem": 486, "iem_times_two": 486, "ignacio": 441, "ignasi": 435, "ignor": [11, 16, 84, 87, 90, 91, 101, 104, 124, 136, 157, 167, 196, 214, 216, 232, 307, 319, 381, 433, 447, 455, 469, 474, 475, 481, 487, 502, 518, 578], "ii": [209, 437], "ii8_xlo3": 477, "ij": 209, "ilist": 192, "illustr": [109, 110, 381, 390, 392, 393, 394, 396, 399, 457, 459, 464, 469, 481, 485, 486, 488, 489, 494, 508, 514, 527, 528, 535, 536, 544, 576], "illustrate_colormap": 399, "iloc": [87, 91], "im": [369, 483], "imag": [102, 105, 109, 110, 118, 128, 129, 141, 152, 153, 154, 160, 162, 163, 164, 166, 168, 178, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 275, 299, 302, 344, 366, 368, 369, 370, 371, 375, 380, 388, 389, 391, 396, 397, 400, 401, 410, 412, 417, 419, 420, 421, 424, 425, 426, 432, 436, 437, 438, 439, 440, 447, 449, 460, 463, 469, 470, 485, 487, 489, 493, 503, 504, 514, 523, 527, 528, 529, 530, 531, 576, 577, 583], "image_analysi": [400, 420], "image_err": 129, "image_fitting_with_sherpa": [400, 441], "image_pip": 439, "image_profil": 438, "imagehdu": [193, 194, 205, 206], "imagenorm": [370, 371], "imageprofil": 129, "images_t": 465, "imagin": 578, "img": [368, 486], "iminuit": [211, 379, 397, 406, 431, 433, 440, 444, 445, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 575], "immut": 224, "impact": [387, 393, 397, 495], "imperfect": 485, "implement": [19, 20, 102, 105, 109, 110, 135, 144, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 289, 295, 380, 381, 385, 386, 388, 389, 392, 393, 394, 395, 396, 397, 398, 401, 402, 403, 404, 405, 407, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 438, 439, 441, 442, 445, 446, 447, 452, 460, 473, 478, 479, 480, 485, 486, 487, 506, 514, 516, 518, 523, 524, 525, 563, 575, 576, 577, 578, 579, 582], "implent": 380, "impli": [238, 380, 399, 514, 577], "implic": 402, "implicit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 523], "implicitli": 485, "import": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 66, 67, 82, 83, 84, 85, 86, 87, 88, 89, 91, 94, 96, 101, 102, 104, 105, 109, 110, 111, 115, 116, 117, 118, 122, 123, 124, 125, 127, 129, 131, 133, 141, 142, 145, 146, 148, 150, 152, 153, 154, 155, 161, 163, 173, 176, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 215, 217, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 245, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 286, 289, 295, 296, 305, 306, 327, 337, 347, 359, 360, 365, 368, 370, 371, 373, 375, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 399, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 416, 427, 437, 439, 444, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 507, 508, 510, 511, 512, 514, 515, 516, 518, 520, 521, 522, 524, 525, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576, 578, 579, 580, 582], "importantli": [404, 440, 452, 578], "importerror": [87, 91], "impos": [444, 450, 527], "improv": [108, 286, 382, 384, 385, 386, 388, 389, 390, 394, 395, 396, 397, 398, 399, 400, 405, 410, 411, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 434, 435, 436, 437, 438, 439, 440, 441, 443, 486, 493, 518, 528, 535], "imshow": [102, 105, 161, 194, 206, 368, 374, 438, 486, 504], "in2p3": 406, "in_memori": [88, 518], "in_memory_gener": 92, "in_safe_data_rang": [102, 105, 109, 110], "inaccur": 380, "incex": [16, 84, 90, 104, 124], "incid": 386, "includ": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 82, 83, 84, 87, 88, 90, 91, 104, 124, 130, 161, 167, 169, 170, 176, 177, 181, 191, 192, 201, 204, 248, 315, 379, 380, 386, 388, 391, 392, 393, 394, 396, 397, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 421, 423, 428, 439, 444, 445, 446, 447, 450, 463, 464, 466, 467, 469, 474, 479, 480, 482, 483, 485, 487, 488, 489, 493, 495, 506, 508, 514, 516, 517, 528, 530, 575, 579, 582], "include_irf": [88, 515, 518], "include_ssc": 248, "inclus": [83, 201, 394], "incompat": [405, 433], "incomplet": [380, 410, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "inconsist": [428, 434, 444, 445], "inconveni": [399, 440], "incorpor": [396, 400, 408, 577], "incorrect": [83, 380, 407, 415, 424, 442, 443, 485, 491], "incorrectli": [442, 487], "increas": [141, 168, 198, 203, 225, 234, 237, 380, 389, 407, 473, 482, 485, 514, 518, 535], "increment": [19, 20, 26, 118, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 394, 486, 530], "ind": [192, 204, 224, 247], "inde": [467, 536], "indefinit": 387, "indent": [16, 84, 90, 104, 124], "independ": [67, 126, 130, 134, 135, 143, 144, 304, 318, 380, 386, 390, 391, 392, 393, 394, 395, 398, 401, 402, 403, 404, 406, 412, 421, 431, 450, 456, 472, 480, 486, 487, 488, 489, 495, 502, 503, 513, 518, 523, 577, 581], "index": [19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 89, 91, 92, 100, 101, 102, 105, 109, 110, 118, 122, 123, 125, 126, 127, 131, 132, 133, 140, 150, 151, 152, 158, 161, 163, 166, 186, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 215, 217, 218, 219, 222, 224, 226, 228, 229, 230, 235, 241, 242, 244, 245, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 289, 315, 329, 334, 383, 386, 389, 390, 391, 392, 395, 396, 403, 404, 405, 409, 412, 422, 436, 438, 439, 445, 446, 451, 452, 453, 455, 456, 458, 459, 460, 463, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 484, 488, 489, 493, 494, 495, 496, 502, 503, 504, 516, 518, 529, 530, 531, 534, 535, 536, 537, 539, 540, 541, 542, 544, 546, 548, 549, 550, 555, 556, 557, 565, 566, 567, 568, 569, 570, 571, 572, 573], "index1": [218, 264, 545, 559], "index2": [218, 264, 545, 559], "index_1": [267, 268, 269, 560, 561, 562], "index_2": [77, 267, 268, 269, 560, 561, 562], "index_arrai": [87, 91], "index_column": [87, 91], "index_data": 197, "index_err": 477, "index_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "index_mod": [87, 91], "index_scan": 491, "indexerror": [92, 100, 247], "indic": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 100, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 380, 442, 458, 468, 478, 485, 486, 490, 491, 495, 496, 518, 530, 531, 577], "indico": 389, "indirect": [479, 506], "individu": [87, 91, 108, 120, 128, 376, 386, 392, 393, 395, 400, 403, 404, 408, 452, 455, 458, 466, 469, 473, 480, 481, 483, 485, 488, 489, 504, 514, 518, 523], "indiviud": 402, "indxschm": [193, 194, 205, 206], "ineffici": [87, 91, 383], "ineqcon": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "inequ": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "inertia": [51, 54], "inf": [67, 237, 278, 408, 491], "infer": [123, 125, 191, 192, 193, 194, 196, 204, 205, 206, 226, 381, 502, 530], "inferno": 486, "infil": 380, "infin": 491, "influenc": 491, "info": [16, 67, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 85, 86, 87, 91, 94, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 154, 160, 162, 164, 288, 290, 315, 381, 395, 396, 400, 409, 415, 425, 426, 428, 435, 436, 439, 456, 460, 461, 463, 467, 473, 477, 479, 480, 481, 486, 494, 495, 496, 498, 500, 502, 578], "info_dict": [102, 105, 109, 110, 288, 290, 373, 428, 446, 481], "info_t": [100, 452, 455, 456, 458, 463, 474, 481, 488, 518], "infodict": 373, "inform": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 67, 69, 71, 72, 74, 75, 76, 78, 79, 80, 84, 85, 88, 90, 91, 94, 99, 100, 101, 102, 104, 105, 109, 110, 123, 124, 125, 150, 154, 160, 162, 164, 165, 168, 173, 174, 179, 180, 199, 211, 218, 219, 220, 221, 222, 223, 225, 226, 228, 230, 231, 234, 235, 236, 237, 238, 239, 240, 242, 248, 249, 250, 251, 252, 254, 255, 260, 261, 262, 264, 267, 268, 269, 271, 272, 275, 276, 291, 297, 315, 331, 362, 363, 380, 384, 385, 390, 392, 393, 394, 395, 396, 403, 404, 407, 408, 410, 415, 416, 417, 425, 427, 428, 431, 433, 439, 445, 446, 451, 453, 456, 457, 464, 467, 468, 471, 477, 478, 481, 482, 483, 485, 486, 489, 493, 494, 495, 496, 502, 503, 504, 513, 514, 515, 516, 518, 531, 578, 581], "infrar": 226, "infrastructur": [410, 418, 431, 442, 445], "ingredi": [404, 479], "inherit": [87, 91, 289, 380, 390, 392, 395, 404, 407, 408, 426, 431, 438, 481, 484, 529, 530], "init": [19, 20, 26, 87, 91, 122, 127, 133, 170, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 248, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 319, 331, 392, 428, 443, 445, 446, 447, 459, 469, 473, 480, 481, 482, 504], "initi": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 53, 65, 84, 87, 90, 91, 104, 123, 124, 125, 133, 194, 197, 198, 224, 247, 249, 250, 307, 380, 385, 390, 391, 392, 396, 433, 450, 458, 461, 463, 464, 466, 467, 468, 471, 475, 480, 481, 486, 489, 502, 503, 504, 513, 515, 563, 577], "initialis": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380, 402, 491], "inject": [458, 471], "inlin": [385, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 486, 487, 488, 489, 493, 494, 496, 502, 503, 504], "inner": [44, 52, 53, 127, 168, 178, 261, 461, 504, 541], "inner_height": [527, 531], "inner_width": [527, 531], "input": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 84, 86, 87, 90, 91, 102, 104, 105, 108, 118, 120, 122, 123, 124, 125, 126, 129, 130, 133, 137, 138, 139, 140, 142, 146, 151, 152, 154, 161, 162, 163, 164, 165, 166, 168, 170, 174, 176, 178, 192, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 215, 217, 224, 239, 247, 274, 275, 276, 289, 307, 318, 328, 331, 350, 352, 373, 375, 386, 388, 390, 391, 392, 393, 394, 395, 396, 401, 416, 426, 431, 434, 441, 445, 447, 458, 467, 468, 475, 482, 486, 491, 516, 530, 531, 579], "input_map": [111, 116], "input_shap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_units_allow_dimensionless": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_units_equival": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "input_units_strict": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "inputs_map": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "ins": 445, "insensit": 200, "insert": [87, 91, 92, 100, 247, 406, 426, 581], "insert_row": [87, 91], "inset": 432, "insid": [50, 83, 102, 109, 115, 117, 150, 176, 192, 193, 194, 196, 201, 204, 205, 206, 224, 247, 263, 369, 373, 380, 381, 394, 396, 404, 431, 450, 455, 458, 460, 463, 465, 471, 474, 481, 485, 487, 488, 489, 493, 495, 515, 525, 527, 528, 531], "inside_geom": 487, "insight": 415, "inspect": [392, 396, 416, 455, 457, 463, 467, 468, 483, 486, 488, 493, 494], "inspir": [380, 404, 409], "instal": [87, 91, 379, 380, 383, 387, 388, 389, 397, 409, 410, 411, 414, 416, 417, 420, 421, 431, 435, 438, 439, 440, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 518, 578], "instanc": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 84, 85, 86, 87, 88, 90, 91, 92, 104, 120, 124, 125, 126, 128, 130, 131, 165, 167, 175, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 248, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 325, 331, 367, 369, 370, 371, 374, 376, 380, 386, 391, 392, 395, 396, 402, 404, 407, 431, 453, 455, 458, 469, 480, 482, 483, 485, 487, 488, 489, 504, 508, 518, 530, 531, 554], "instanti": [15, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 193, 194, 196, 198, 205, 206, 391, 396, 452, 456, 480, 481, 486, 489, 491, 502], "instead": [16, 19, 20, 26, 84, 85, 87, 90, 91, 102, 104, 105, 109, 110, 114, 124, 180, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 381, 383, 385, 387, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 408, 411, 412, 414, 421, 424, 427, 428, 441, 445, 447, 451, 457, 463, 467, 469, 471, 472, 474, 475, 480, 481, 484, 485, 486, 489, 491, 494, 515, 522, 523, 530, 531, 578], "instruct": [380, 389, 397, 409, 411, 412, 420, 431, 435, 439, 467, 493], "instrument": [6, 83, 95, 108, 153, 157, 158, 232, 380, 390, 391, 392, 393, 395, 400, 404, 412, 416, 425, 428, 440, 441, 442, 449, 452, 453, 455, 456, 459, 463, 470, 475, 477, 481, 483, 484, 485, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 514, 515, 516, 520, 522, 524, 576, 577], "int": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 33, 34, 38, 42, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 82, 83, 84, 85, 87, 88, 90, 91, 93, 94, 102, 103, 104, 105, 108, 109, 110, 112, 113, 118, 120, 124, 125, 126, 127, 130, 131, 133, 141, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 176, 180, 181, 186, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 213, 214, 215, 217, 218, 219, 221, 222, 223, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 282, 284, 286, 288, 289, 290, 294, 295, 296, 298, 303, 307, 318, 319, 325, 329, 331, 334, 335, 336, 337, 339, 340, 367, 373, 380, 394, 438, 483, 508], "int64": [102, 105, 109, 110, 111, 116, 122, 133, 516], "int_": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 523, 535], "int_flux": 479, "integ": [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 87, 91, 92, 93, 100, 102, 105, 109, 110, 123, 125, 126, 127, 130, 133, 141, 142, 151, 152, 158, 163, 166, 169, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 215, 217, 224, 247, 307, 325, 331, 380, 386, 394, 530], "integr": [6, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 31, 32, 37, 51, 101, 102, 105, 109, 110, 123, 125, 128, 130, 140, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 168, 193, 194, 196, 198, 202, 205, 206, 207, 208, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 279, 280, 282, 318, 379, 387, 389, 391, 393, 394, 395, 397, 398, 400, 404, 406, 419, 421, 422, 426, 427, 431, 436, 437, 438, 439, 440, 441, 442, 445, 455, 457, 458, 460, 474, 477, 479, 480, 481, 486, 487, 489, 504, 506, 514, 516, 522, 537, 557], "integral_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 398, 428, 477], "integral_flux": 477, "integral_flux_imag": 432, "integrate_geom": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275, 431, 444, 446], "integrate_log_log": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165], "integrate_spectrum": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 422, 428], "integrate_spectrum_separ": [17, 18, 21, 22, 24, 25, 27], "intend": [87, 91, 307, 390, 408, 484], "intens": [193, 194, 196, 202, 205, 206, 211, 238, 390, 486, 514], "intent": 385, "interact": [19, 20, 87, 91, 163, 166, 193, 194, 196, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 379, 380, 381, 389, 390, 391, 392, 396, 400, 403, 416, 425, 451, 463, 471, 483, 486, 488, 489, 498, 502, 503, 527, 530, 554, 578], "interchang": 530, "interest": [115, 117, 126, 130, 211, 286, 385, 393, 394, 398, 400, 410, 453, 463, 467, 469, 477, 480, 481, 483, 485, 487, 490, 493, 494, 504, 515, 516, 554, 577, 580, 581], "interfac": [6, 11, 15, 19, 20, 87, 91, 209, 211, 214, 215, 216, 217, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 384, 385, 386, 390, 392, 393, 395, 397, 398, 399, 400, 421, 424, 426, 427, 428, 431, 435, 438, 439, 445, 449, 451, 456, 459, 460, 463, 471, 472, 483, 489, 493, 498, 503, 504, 505, 514, 515, 518, 526, 529, 554, 575, 576, 577, 578], "interfer": 409, "intermedi": [204, 389, 396, 406, 416, 452, 473], "intern": [15, 19, 20, 26, 87, 91, 123, 125, 136, 137, 138, 139, 170, 176, 201, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 282, 307, 319, 380, 392, 394, 396, 399, 404, 431, 433, 442, 445, 450, 456, 463, 472, 478, 481, 484, 486, 496, 502, 514, 518, 573], "interp": [19, 20, 155, 193, 194, 196, 198, 202, 203, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 320, 375, 403, 408, 444, 446, 458, 464, 468, 471, 474, 484, 485, 486, 489, 494, 495, 496, 530, 531, 554, 555], "interp1": 486, "interp1d": 320, "interp2": 486, "interp_by_coord": [193, 194, 196, 202, 205, 206, 275, 442, 486], "interp_by_pix": [193, 194, 196, 202, 205, 206, 271, 272, 486], "interp_kwarg": [68, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 226, 271, 272, 275, 276, 380, 484, 494, 563], "interp_map": [193, 194, 196, 202, 205, 206], "interp_missing_data": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165], "interp_param": 380, "interp_scal": [101, 287, 320], "interp_to_geom": [193, 194, 196, 202, 205, 206, 428, 444, 486, 494, 518], "interp_weight": 192, "interpol": [6, 26, 94, 101, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 173, 192, 193, 194, 196, 198, 202, 203, 205, 206, 226, 239, 249, 250, 271, 272, 274, 275, 276, 287, 319, 320, 321, 379, 391, 392, 393, 421, 426, 431, 433, 436, 439, 441, 442, 443, 444, 445, 446, 455, 468, 484, 485, 489, 494, 495, 518, 526, 530, 563], "interpolatedunivariatesplin": 274, "interpret": [91, 102, 105, 128, 141, 142, 194, 198, 204, 205, 206, 325, 398, 408, 486, 516, 531], "intersect": [89, 176, 177, 181, 201, 394, 473], "interspers": 385, "interstellar": [45, 467], "interv": [52, 53, 78, 82, 83, 86, 88, 89, 91, 92, 100, 101, 103, 108, 125, 130, 174, 198, 203, 211, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 389, 390, 394, 395, 398, 404, 412, 425, 427, 428, 431, 440, 441, 446, 447, 472, 474, 477, 483, 486, 495, 503, 515, 530, 577, 580], "interval_edg": 203, "intrins": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 248, 296, 391, 395], "intrinsic_model": 451, "intro_map": 440, "introduc": [19, 20, 193, 194, 196, 198, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 387, 388, 390, 392, 393, 394, 395, 397, 400, 402, 405, 408, 422, 424, 425, 427, 428, 431, 433, 434, 438, 439, 440, 442, 445, 446, 447, 466, 478, 485, 489, 531, 536, 578, 581], "introduct": [383, 401, 402, 403, 421, 425, 426, 427, 428, 447, 453, 456, 489, 502, 503, 507], "introductori": 478, "introspect": 307, "intuit": [401, 581], "invalid": [366, 380, 394, 407, 408, 431, 447, 457, 461, 467, 496], "invalid_pixel": 487, "invers": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 204, 218, 219, 222, 226, 228, 229, 230, 235, 238, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 288, 289, 290, 329, 336, 393, 467, 487, 489, 491, 554], "inverse_al": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "inverse_cdf": 467, "inversecdf": 393, "inversecdfsampl": [393, 423], "inversecompton": [248, 554], "invert": [91, 192, 204, 504], "invest": 383, "investig": [466, 473, 477], "involv": [87, 91, 102, 105, 109, 110, 380, 385, 394, 396, 398, 402, 459, 578], "io": [13, 83, 86, 87, 91, 126, 186, 196, 201, 211, 276, 383, 389, 400, 410, 422, 425, 437, 441, 445, 467, 483, 484, 486, 493, 515, 518, 529, 531], "iop": 295, "iopscienc": 295, "ipix": 192, "ipykernel": [412, 414], "ipynb": [388, 400, 422, 425, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "ipynb_to_galleri": 380, "ipython": [87, 91, 379, 380, 396, 397, 411, 415, 423, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 517, 578], "ipython3": 413, "ipywidget": 486, "irap": 400, "irf": [6, 82, 88, 96, 102, 103, 105, 108, 109, 110, 111, 112, 113, 114, 116, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 173, 179, 180, 182, 183, 184, 186, 188, 189, 192, 201, 204, 263, 306, 380, 381, 386, 390, 391, 392, 393, 396, 399, 400, 401, 402, 408, 412, 420, 422, 425, 427, 428, 431, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 449, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 467, 468, 471, 472, 474, 485, 487, 490, 491, 492, 494, 495, 496, 498, 502, 503, 514, 515, 518, 520, 521, 522, 524, 525, 576, 577], "irf_dict": 167, "irf_dl3_hdu_specif": 484, "irf_fil": [88, 148, 152, 153, 154, 163, 450, 458, 471, 474, 484, 493], "irf_filenam": [467, 468, 484, 493], "irf_map": [151, 152, 158, 163, 166], "irf_path": 467, "irfmap": [151, 152, 163, 166, 412, 428, 518], "irfmetadata": 407, "irfmodel": 391, "irfs1": 493, "irfs2": 493, "irfs_path": 82, "irfstack": [428, 437], "irregular": [192, 204, 530], "irrespect": [393, 463, 486, 530], "is_align": [192, 198, 203, 204], "is_all_point_sky_region": 201, "is_all_same_energy_shap": 100, "is_all_same_shap": 100, "is_all_same_typ": 100, "is_allclos": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206], "is_allski": [191, 192, 201, 204], "is_bkg": 107, "is_contigu": [203, 486], "is_convertible_to_flux_sed_typ": [123, 125], "is_energy_axi": 198, "is_energy_depend": [220, 221, 223, 225, 231, 234, 236, 237, 238, 239, 240, 249, 251, 255, 260, 261, 262, 265, 271, 274, 275, 277, 444, 489], "is_fixed_rad_max": 165, "is_flat": [191, 192, 197, 201, 204], "is_hpx": [192, 201, 204], "is_imag": [191, 192, 201, 204], "is_mask": [193, 194, 196, 202, 205, 206], "is_norm": [408, 433, 446], "is_norm_spectral_model": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 431, 489], "is_nul": 486, "is_pointed_observ": 83, "is_pointlik": [71, 74, 75, 76, 78, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 431], "is_region": [192, 201, 204], "is_regular": [192, 201, 204], "is_ul": [67, 123, 125, 431, 446, 456, 480, 482, 504], "is_unidimension": 197, "isf": [483, 580], "isinst": [380, 391, 394, 403, 407, 408], "ism": [52, 53, 554], "isn": [383, 387, 394, 396, 399, 410, 465, 578], "isnan": [486, 487], "iso": [88, 125, 203, 208, 445, 474, 488, 494, 530, 572], "iso_p8r2_source_v6_v06": [488, 494], "isol": [394, 411, 487], "isot": [361, 582], "isotherm": [22, 506], "isotrop": [47, 221, 281, 488], "issu": [19, 20, 26, 87, 91, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 381, 383, 388, 389, 391, 392, 394, 397, 400, 405, 406, 407, 408, 409, 412, 413, 414, 418, 421, 433, 434, 436, 437, 438, 439, 440, 442, 443, 444, 445, 446, 465, 487, 493, 514, 518, 578, 579], "item": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 92, 100, 200, 247, 400, 407], "iter": [87, 91, 92, 100, 123, 125, 133, 193, 194, 196, 197, 198, 200, 202, 203, 205, 206, 247, 383, 386, 388, 396, 432, 459, 474], "iter_by_axi": [123, 125, 193, 194, 196, 202, 205, 206], "iter_by_axis_data": 202, "iter_by_coord": 423, "iter_by_edg": [198, 203], "iter_by_imag": [193, 194, 196, 202, 205, 206, 440], "iter_by_image_data": [193, 194, 196, 202, 205, 206, 486], "iter_by_image_index": [193, 194, 196, 202, 205, 206], "iter_by_pix": 423, "iter_with_reshap": 197, "itercol": [87, 91], "iterrow": [87, 91], "itertool": 483, "its": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 102, 105, 109, 110, 123, 125, 169, 170, 179, 192, 198, 200, 218, 219, 222, 225, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 286, 380, 383, 386, 389, 390, 392, 395, 396, 397, 399, 404, 406, 407, 410, 413, 431, 445, 446, 447, 452, 456, 457, 460, 467, 468, 472, 473, 478, 480, 482, 483, 485, 486, 487, 488, 489, 491, 502, 504, 507, 523, 525, 527, 529, 530, 531, 577, 580], "itself": [87, 91, 379, 380, 395, 406, 452, 472, 473, 475, 491, 578], "ivoa": [380, 446], "j": [19, 20, 23, 102, 109, 128, 135, 144, 289, 381, 383, 514], "j0001": [480, 504], "j0002": [480, 504], "j0003": [480, 504], "j0006": 480, "j0007": 504, "j0008": [480, 504], "j0009": 504, "j0010": 480, "j0013": 480, "j0021": 480, "j0022": 480, "j0025": 480, "j0031": 480, "j0349": 480, "j0521": 455, "j0534": [480, 504], "j0633": 504, "j0835": [453, 504], "j0851": 480, "j1036": 480, "j1104": [480, 504], "j1506": 453, "j1507": 453, "j1513": 480, "j1514": 480, "j1555": 504, "j1653": 480, "j1713": 452, "j1731": 488, "j1732": 488, "j1741": 488, "j1744": 488, "j1745": 488, "j1746": 488, "j1747": 488, "j1748": 488, "j1753": 488, "j1800": 488, "j1801": 488, "j1802": 488, "j1809": 488, "j1811": 488, "j1824": 480, "j1825": 466, "j1843": 67, "j1844": 67, "j2028": 480, "j2158": 480, "j2347": 504, "j2350": 504, "j2351": 504, "j2352": 504, "j2356": 504, "j2357": [480, 504], "j2358": [480, 504], "j2359": [480, 504], "j_": 23, "jackson": [87, 91], "jacob": [421, 440], "jacobian": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 427], "jalel": [428, 431], "jan": [385, 386, 389, 392, 397, 401, 417, 418], "jana": 446, "januari": [387, 389, 405], "jargon": 412, "jason": 421, "javascript": [87, 91], "jax": 398, "jbernet": 446, "jean": [439, 440], "jeffrei": 491, "jeltema": 506, "jep": 385, "jet": 371, "jfact": 479, "jfact_decai": 479, "jfact_map": 479, "jfactor": [19, 20, 445], "jfactori": 479, "jgdozlkt": 477, "jj": 209, "jjs5kuax": 477, "jk": [102, 109, 514], "jkl": 514, "jl": 514, "jo": [87, 91], "job": [93, 126, 127, 130, 133, 169, 433], "johann": [424, 431, 435, 436, 437, 438, 439, 440], "john": [87, 91], "join": [382, 391, 392, 493], "joint": [100, 109, 110, 120, 131, 134, 135, 144, 146, 211, 286, 388, 389, 392, 396, 400, 402, 412, 421, 422, 424, 425, 440, 441, 447, 449, 452, 453, 455, 456, 457, 459, 466, 470, 474, 481, 482, 483, 485, 489, 490, 491, 494, 498, 502, 516, 518, 575, 576, 577], "joint_fit": 475, "joint_result": 475, "jointli": [490, 495], "jonathan": [435, 436], "jose": [431, 433, 439], "joshi": 431, "jos\u00e9": [388, 396, 400, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 439, 440, 441], "journal": 406, "jouvin": [421, 423, 424, 425, 428, 436, 437, 438, 439, 440], "jqueri": [87, 91], "jskwarg": [87, 91], "json": [16, 84, 90, 104, 124, 409, 433, 435, 439], "json_data": [16, 84, 90, 104, 124], "json_schema": [16, 84, 90, 104, 124], "jsonschema": [397, 424, 425], "jsviewer": [87, 91, 465], "juan": 446, "jul": [386, 395, 397, 399, 418], "juli": [386, 389, 394, 396, 397, 399, 403, 405, 407, 473, 477], "julia": 446, "julian": 582, "julien": [437, 438, 439], "jun": [394, 396, 397, 402, 403], "june": [394, 398, 418], "junior": [66, 400], "jupyt": [379, 387, 396, 397, 400, 411, 415, 417, 422, 437, 438, 439, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "jupyterlab": [379, 397, 400, 416, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "jupytext": 400, "just": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 86, 153, 355, 380, 381, 382, 383, 385, 388, 390, 394, 396, 397, 398, 400, 410, 411, 413, 439, 441, 451, 455, 456, 458, 463, 465, 467, 472, 473, 475, 478, 481, 486, 494, 495, 502, 504, 515, 531, 578], "juypter": 396, "jyear": [87, 91], "jysjygs4": 477, "k": [19, 33, 52, 53, 102, 109, 200, 222, 274, 331, 453, 455, 457, 480, 483, 486, 488, 494, 514, 531, 535, 547, 554, 565], "kai": [439, 440], "kaori": 423, "kaspi": [31, 39, 45], "katrin": [408, 444, 445, 446], "kb": 388, "keep": [13, 87, 91, 100, 123, 161, 193, 194, 196, 202, 205, 206, 211, 380, 381, 383, 385, 386, 387, 388, 394, 397, 398, 399, 400, 403, 404, 429, 439, 460, 461, 466, 471, 477, 483, 488, 494], "keep_byteord": [87, 91], "keep_column": [87, 91], "keep_mc_id": [103, 108], "keepdim": [161, 163, 166, 193, 194, 196, 202, 205, 206, 420, 425, 485], "kei": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 82, 84, 87, 89, 90, 91, 102, 104, 105, 109, 110, 118, 124, 133, 200, 211, 343, 348, 349, 366, 388, 390, 397, 402, 404, 407, 417, 440, 451, 481, 489, 544], "kept": [89, 102, 105, 109, 110, 123, 125, 126, 130, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 380, 386, 400, 404, 451, 477, 516], "kernel": [102, 105, 109, 110, 118, 122, 128, 129, 133, 150, 151, 152, 161, 163, 166, 168, 173, 178, 180, 183, 194, 204, 206, 386, 407, 412, 414, 426, 427, 432, 437, 441, 442, 447, 459, 461, 475, 485, 486, 487, 494, 504, 514, 518, 522], "kernel_width": [133, 459, 465], "kernelbackgroundestim": 427, "kernelbackgroundmapestim": 401, "kev": [107, 133, 198, 459, 481, 482, 531], "keyboard": 416, "keyerror": [91, 200, 404], "keyword": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 68, 82, 83, 84, 86, 87, 88, 90, 91, 95, 101, 102, 104, 105, 109, 110, 124, 125, 127, 128, 145, 146, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 209, 211, 214, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 281, 287, 289, 319, 327, 328, 349, 361, 363, 364, 367, 368, 369, 373, 374, 375, 376, 377, 407, 427, 431, 434, 442, 443, 457, 467, 468, 481, 486, 495, 516, 531, 542], "kf7y6y8_": 477, "kg": 52, "khelifi": [423, 425, 428, 431, 434, 438, 439, 440, 442, 443], "kh\u00e9lifi": [406, 442, 444, 445, 446, 447], "kill": 409, "kind": [87, 91, 355, 391, 392, 393, 398, 399, 403, 406, 440], "kinet": 44, "king": [162, 424, 435, 436, 437, 438, 439, 440, 484, 524], "kirsti": [444, 445, 446, 447], "kl": 514, "klepser": 435, "km": [32, 37], "km2": 493, "km2a": [57, 70], "know": [381, 383, 385, 389, 394, 396, 397, 404, 410, 422, 439, 440, 441, 465, 468, 479, 484, 485, 486, 493, 495, 496, 578], "knowledg": [408, 416, 453, 458, 464, 466, 469, 471, 472, 483, 485, 486, 488, 491], "known": [288, 290, 307, 393, 418, 455, 459, 461, 466, 472, 485, 486, 487, 504, 518, 528, 578, 579, 580], "koenig": [289, 447], "konig": [289, 447], "konrad": 446, "kornecki": 446, "kovalev": 478, "kpc": [17, 18, 21, 22, 24, 25, 27, 29, 33, 34, 38, 248, 307, 310, 479, 480, 512, 554], "kurt": 446, "kwarg": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 53, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 83, 86, 87, 88, 91, 101, 102, 105, 109, 110, 125, 126, 127, 128, 130, 145, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 175, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 213, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 281, 287, 319, 330, 355, 367, 368, 369, 372, 374, 375, 376, 377, 380, 391, 407, 408, 444, 453, 457, 467, 475, 485, 496, 566], "kwargs_ax": [373, 461, 463], "kwargs_background": [109, 110], "kwargs_colorbar": [147, 148, 150, 153, 154, 155, 160, 162, 164, 206, 368], "kwargs_count": [109, 110], "kwargs_excess": [109, 110], "kwargs_extens": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 466], "kwargs_fit": [109, 110, 373], "kwargs_fp": 101, "kwargs_hist": [373, 461, 463], "kwargs_list": 200, "kwargs_model": 101, "kwargs_npred_sign": [109, 110], "kwargs_point": [201, 224, 247, 457], "kwargs_posit": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 466], "kwargs_residu": [101, 109, 110], "kwargs_saf": [109, 110], "kwargs_spati": [102, 105, 109, 110, 463, 503], "kwargs_spectr": [102, 105, 109, 110, 463, 503], "kwargs_spectrum": [101, 109, 110], "l": [23, 26, 51, 54, 101, 102, 109, 110, 173, 377, 381, 394, 403, 406, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 466, 471, 474, 475, 480, 481, 483, 485, 486, 487, 489, 490, 491, 493, 494, 502, 503, 504, 514, 518, 531, 554, 563, 577, 579, 580, 581], "l06": [48, 508], "l_": [52, 53], "l_0": [51, 511, 535, 536], "l_snr": 44, "la": 437, "lab": [406, 412, 414, 416, 439], "label": [92, 195, 198, 203, 224, 247, 305, 368, 369, 374, 377, 380, 381, 384, 389, 393, 394, 409, 410, 431, 433, 442, 443, 445, 447, 450, 451, 453, 455, 457, 461, 463, 464, 468, 469, 472, 473, 475, 478, 479, 483, 486, 489, 490, 491, 504, 511, 512, 520, 544, 550, 553, 554, 558, 563], "label_axi": [195, 486], "label_axis2": 486, "labelcolor": 450, "labelmapaxi": [431, 445, 447], "lack": [200, 395, 475], "lafferti": [419, 577], "lafferty1994": 577, "lai": 487, "lambda": [67, 229, 230, 289, 373, 480, 493, 548, 580], "lambda_": [229, 230, 286, 453, 455, 463, 548, 550], "lancast": [135, 144], "land": 410, "langl": 19, "languag": [387, 399], "laplac": [237, 537], "lar": [396, 420, 421, 422, 438, 439, 440, 443, 445, 447], "larg": [67, 87, 91, 193, 194, 196, 202, 205, 206, 271, 273, 275, 380, 383, 385, 386, 394, 400, 401, 421, 431, 440, 441, 446, 450, 455, 461, 473, 480, 487, 493, 494, 495, 504, 514, 516, 518, 519, 525, 531, 537, 575, 578, 583], "large_scale_compon": [67, 480], "larger": [27, 132, 151, 152, 158, 163, 166, 286, 295, 381, 388, 399, 445, 447, 450, 452, 455, 481, 485, 486, 487, 491, 515, 531, 537, 579, 580], "largest": [102, 105, 109, 110, 206, 380], "last": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 92, 94, 100, 193, 194, 195, 196, 198, 202, 205, 206, 247, 337, 377, 387, 390, 392, 402, 406, 409, 410, 412, 414, 420, 421, 478, 525, 527], "lat": [16, 47, 58, 60, 61, 62, 64, 65, 69, 71, 74, 75, 77, 78, 83, 86, 91, 94, 96, 102, 105, 109, 111, 116, 122, 126, 127, 129, 133, 151, 152, 158, 163, 166, 169, 193, 194, 196, 199, 202, 204, 205, 206, 220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 281, 286, 309, 310, 313, 335, 380, 381, 388, 389, 390, 391, 392, 393, 399, 400, 403, 410, 412, 417, 420, 425, 438, 439, 440, 447, 449, 453, 456, 459, 460, 461, 463, 465, 469, 472, 473, 477, 480, 481, 482, 484, 485, 486, 487, 488, 489, 490, 497, 498, 502, 503, 504, 506, 513, 515, 516, 518, 523, 530, 531, 535, 536, 537, 538, 539, 540, 541, 575, 582], "lat_0": [225, 234, 237, 251, 260, 261, 275, 395, 403, 459, 460, 463, 464, 466, 467, 468, 471, 472, 480, 481, 488, 489, 494, 502, 503, 535, 536, 537, 539, 540, 541, 542], "lat_0_err": 466, "lat_pnt": [309, 313], "lat_rang": 335, "lat_t": [309, 313], "later": [380, 385, 386, 387, 391, 392, 393, 396, 397, 398, 399, 400, 401, 419, 421, 431, 432, 434, 435, 441, 451, 455, 457, 463, 464, 481, 485, 486, 489, 494, 504, 514], "latest": [126, 186, 276, 307, 383, 387, 400, 405, 406, 409, 413, 442, 450, 458, 460, 463, 464, 465, 471, 474, 483, 515, 518, 531], "latex": [380, 381], "latex_inlin": 445, "latitud": [94, 148, 191, 192, 193, 194, 199, 201, 204, 205, 206, 335, 367, 424, 469, 486, 489, 523, 530, 538], "latpol": 486, "latter": [180, 211, 391, 393, 395, 401, 404, 407, 425, 457, 458, 467, 468, 471, 487, 488, 525, 527, 579], "launch": [412, 414, 439, 578], "laura": [428, 431, 433, 434, 440, 442, 444, 445, 446, 447], "law": [27, 101, 118, 123, 125, 127, 132, 140, 161, 163, 166, 218, 228, 229, 230, 252, 253, 254, 255, 264, 267, 268, 269, 279, 289, 334, 393, 419, 425, 439, 449, 451, 458, 460, 463, 467, 469, 471, 473, 474, 475, 477, 488, 489, 491, 518, 532, 544, 564, 570], "law2": 557, "layer": [87, 91, 392, 399], "layout": [431, 463, 471, 486, 493, 502, 503], "lazi": [88, 100, 102, 105, 109, 110, 273, 316, 439], "lazili": 102, "lazyfitsdata": 427, "lb4rcqv3": 485, "lc": [86, 130, 203, 393, 395], "lc_1d": [123, 125, 145, 472, 473, 474, 478], "lc_3d": 472, "lc_estim": 395, "lc_maker_1d": [472, 473, 474], "lc_maker_3d": 472, "lc_new": 473, "ld_harhz": 477, "le": 90, "lea": 428, "lead": [122, 380, 389, 394, 399, 401, 403, 405, 406, 424, 447, 491, 493, 495, 506, 578], "leak": [457, 527], "leakag": [289, 447, 472], "learn": [148, 153, 380, 397, 400, 409, 412, 414, 416, 440, 453, 455, 459, 465, 466, 467, 469, 478, 480, 481, 483, 486, 489, 491, 493, 498, 504, 578], "least": [43, 44, 134, 143, 380, 383, 385, 389, 467, 478, 530], "leav": [385, 392, 394, 395, 397, 400, 411, 488], "lefaucheur": [437, 438, 439], "left": [21, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 87, 91, 102, 109, 123, 125, 130, 133, 151, 153, 193, 194, 196, 202, 205, 206, 230, 235, 254, 267, 291, 297, 380, 388, 390, 394, 396, 399, 403, 416, 459, 465, 472, 474, 478, 480, 488, 516, 525, 528, 536, 537, 544, 545, 548, 549, 551, 552, 554, 556, 559, 560, 561, 562, 566, 567, 568, 570, 579, 580, 581], "legaci": [380, 439, 440], "legacy_altaz": 85, "legal": [87, 91], "legend": [377, 450, 451, 453, 455, 457, 463, 464, 468, 469, 472, 473, 475, 478, 479, 483, 489, 490, 491, 494, 511, 512, 520, 544, 550, 553, 554, 558, 563], "legend_kwarg": 377, "lemi\u00e8r": 439, "len": [83, 286, 377, 459, 466, 467, 468, 473, 475, 477, 478, 480, 485, 488, 504, 518], "lenain": [439, 440], "length": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 80, 82, 87, 91, 94, 169, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 289, 319, 373, 406, 453, 455, 458, 465, 469, 477, 480, 483, 486, 494, 504, 535], "lengthi": 486, "lennarz": [422, 436, 438], "leq": [535, 540, 541], "less": [77, 192, 194, 198, 239, 274, 297, 380, 385, 387, 398, 410, 439, 483, 489, 490, 491], "let": [67, 280, 380, 383, 385, 389, 394, 397, 412, 415, 439, 440, 441, 453, 456, 457, 458, 459, 463, 464, 465, 466, 467, 469, 474, 475, 480, 481, 483, 486, 487, 489, 491, 494, 502, 504, 578], "level": [6, 11, 15, 16, 83, 84, 90, 104, 122, 124, 211, 288, 290, 380, 381, 383, 384, 385, 391, 393, 395, 399, 400, 401, 404, 407, 412, 416, 423, 424, 425, 426, 427, 431, 439, 446, 449, 452, 453, 455, 456, 459, 460, 461, 463, 465, 467, 471, 472, 473, 474, 475, 478, 479, 482, 483, 488, 490, 493, 494, 495, 496, 498, 500, 504, 505, 514, 515, 516, 523, 525, 526, 576, 577, 578, 582], "levelnam": 380, "levmar": [211, 483], "lf": 410, "lgpl": 380, "lgtm": 410, "lhaaso": [55, 57], "li": [118, 122, 176, 386, 450, 459, 461, 467, 482, 577, 580], "lib": [344, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "librari": [87, 91, 380, 385, 386, 390, 400, 406, 417, 452, 455, 467, 489, 493, 503, 506, 515, 518, 576, 578], "licenc": 406, "licens": [406, 416], "lie": [191, 192, 198, 201, 204, 482], "life": [387, 483], "lifetim": [20, 446], "lifetime_age_of_univers": 20, "light": [15, 73, 77, 130, 137, 226, 239, 296, 384, 391, 393, 396, 400, 404, 412, 425, 427, 428, 435, 438, 440, 445, 446, 449, 451, 476, 477, 478, 498, 516, 517, 527, 532, 574, 576], "light_curv": [16, 239, 400, 440, 449, 456, 460, 461, 463, 472, 476, 502, 573], "light_curve_flar": [449, 473, 476], "light_curve_model": 573, "light_curve_simul": [449, 474, 476], "lightcrv_pksb1222": [239, 573], "lightcurv": [71, 73, 74, 75, 77, 78, 119, 125, 130, 136, 137, 138, 139, 145, 202, 203, 239, 293, 294, 296, 389, 391, 396, 399, 401, 404, 412, 423, 425, 426, 427, 431, 437, 438, 439, 440, 442, 443, 445, 446, 449, 472, 473, 476, 482, 498, 513, 518, 573], "lightcurve1": 136, "lightcurve2": 136, "lightcurve_at_energi": 404, "lightcurveconfig": 16, "lightcurveestim": [119, 395, 396, 401, 404, 412, 423, 425, 427, 428, 431, 439, 440, 445, 472, 473, 474, 477, 518], "lightcurvetablemodel": [391, 393], "lightcurvetempl": 391, "lightcurvetemplatemodel": [444, 445], "lightcurvetemplatetemporalmodel": [270, 403, 442, 445, 447, 468, 489, 573], "like": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 50, 52, 53, 67, 80, 82, 87, 88, 91, 141, 142, 157, 165, 193, 194, 196, 200, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 307, 327, 337, 379, 380, 381, 383, 385, 386, 387, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 406, 408, 409, 411, 412, 416, 422, 431, 433, 434, 438, 439, 441, 442, 444, 445, 450, 451, 453, 455, 456, 457, 458, 461, 468, 469, 475, 478, 479, 481, 483, 484, 486, 490, 491, 493, 494, 498, 502, 504, 506, 507, 514, 518, 523, 531, 541, 576, 578, 579, 580, 581], "likelhood": 392, "likelihood": [100, 101, 102, 105, 110, 122, 123, 124, 125, 127, 133, 134, 143, 287, 304, 380, 386, 389, 392, 393, 396, 398, 400, 401, 402, 404, 412, 419, 421, 422, 425, 432, 435, 438, 440, 441, 446, 447, 453, 455, 456, 457, 459, 465, 469, 472, 473, 475, 481, 482, 483, 485, 491, 494, 502, 503, 506, 514, 516, 518, 554, 576, 577, 579, 580], "likelihood_profil": [391, 421], "likelihood_typ": 426, "likewis": [194, 206], "lima": 118, "lima1983": [516, 577, 580], "lima_map": 461, "lima_maps2": 461, "limamapestim": [401, 427], "limit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 53, 77, 80, 87, 91, 101, 112, 113, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 143, 150, 165, 168, 198, 215, 217, 252, 287, 288, 290, 327, 328, 367, 386, 388, 389, 391, 392, 393, 394, 395, 397, 398, 400, 401, 403, 404, 408, 421, 427, 431, 438, 439, 440, 441, 446, 450, 455, 459, 463, 466, 469, 472, 481, 482, 483, 486, 487, 490, 494, 502, 514, 516, 518, 527, 536, 554, 563, 576, 577, 581], "lin": [19, 20, 198, 202, 203, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 287, 319, 320, 321, 408, 468, 484, 486, 496, 531, 554], "line": [6, 13, 46, 82, 83, 87, 91, 101, 102, 105, 109, 110, 154, 160, 162, 164, 201, 202, 224, 247, 339, 340, 377, 379, 381, 383, 386, 389, 391, 394, 396, 397, 404, 410, 411, 412, 414, 416, 425, 436, 439, 447, 463, 483, 485, 489, 506, 518, 531, 576], "line2d": [201, 224, 247], "linear": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 147, 148, 149, 150, 153, 155, 157, 160, 165, 193, 194, 196, 202, 203, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 271, 272, 274, 275, 276, 319, 380, 442, 449, 463, 468, 469, 471, 486, 489, 494, 502, 503, 532, 574], "linear_model": 569, "linearli": [203, 206, 486, 514], "linearsegmentedcolormap": [370, 371], "linearstretch": [370, 371], "lineartemporalmodel": [270, 489, 569], "lineno": 380, "liner": [274, 394], "linestyl": [450, 475, 477, 479, 491, 512, 531, 535, 536], "linewidth": [377, 381, 477], "linhoff": [443, 444, 445, 446, 447], "link": [67, 69, 80, 101, 224, 226, 247, 286, 383, 385, 388, 389, 392, 400, 406, 409, 410, 416, 417, 428, 431, 433, 437, 438, 439, 451, 452, 455, 456, 457, 458, 460, 463, 464, 471, 473, 474, 480, 483, 489, 491, 493, 503, 504, 518, 563, 575], "linkag": 305, "linkage_kwarg": 305, "linkcheck": 381, "linspac": [83, 152, 193, 194, 196, 202, 205, 206, 211, 467, 469, 475, 483, 484, 486, 491, 530, 535], "lint": [16, 84, 90, 104, 124], "linux": [387, 397, 410, 413, 440, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 578], "list": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 71, 72, 74, 75, 76, 78, 79, 80, 82, 83, 86, 87, 88, 89, 90, 91, 92, 93, 96, 100, 101, 102, 103, 104, 105, 108, 109, 110, 118, 120, 122, 123, 125, 126, 127, 130, 131, 133, 134, 135, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 168, 169, 173, 174, 176, 177, 179, 180, 181, 182, 185, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 209, 211, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 328, 338, 339, 340, 342, 369, 373, 374, 376, 377, 379, 380, 382, 383, 384, 385, 386, 387, 388, 389, 390, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 413, 414, 415, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 451, 452, 455, 458, 459, 464, 468, 469, 471, 472, 474, 477, 478, 481, 482, 483, 484, 485, 490, 491, 493, 494, 495, 496, 498, 503, 514, 518, 521, 530, 531, 575, 576, 577, 578], "list_format": [87, 91], "listen": 518, "listenv": 383, "liter": [16, 84, 90, 104, 124, 325, 380], "literatur": [506, 508, 577], "littl": [87, 91, 399, 401, 407, 486, 494, 523, 527, 578], "live": [83, 86, 88, 380, 385, 388, 390, 401, 441, 444, 482], "livetim": [67, 88, 89, 105, 106, 110, 163, 185, 187, 188, 386, 450, 452, 455, 456, 458, 465, 467, 468, 471, 474, 480, 481, 484, 486, 494, 495, 504, 514, 518], "livetime_fract": 89, "ljouvin": 386, "ll": [123, 125, 133, 383, 385, 397, 413, 450, 451, 452, 455, 457, 460, 461, 465, 472, 473, 474, 475, 477, 478, 578, 580], "llvm": 416, "ln": [53, 483, 561], "lo": [23, 438], "lo_bnd": 198, "lo_threshold": 150, "load": [66, 67, 83, 86, 87, 91, 100, 101, 102, 105, 109, 127, 129, 167, 173, 191, 192, 193, 194, 204, 315, 380, 434, 437, 439, 445, 456, 458, 460, 461, 467, 468, 471, 474, 475, 478, 487, 493, 494, 496, 502, 504, 515], "load_cta_irf": [441, 445], "load_irf_dict_from_fil": [163, 445, 450, 458, 467, 468, 471, 474, 493], "loc": [87, 91, 206, 373, 475, 511, 512, 520, 544, 550, 553, 554, 558], "loc_indic": [87, 91], "local": [17, 18, 21, 22, 24, 25, 27, 87, 91, 141, 142, 178, 191, 192, 201, 202, 204, 380, 381, 383, 388, 394, 409, 410, 413, 417, 421, 431, 456, 459, 460, 461, 466, 467, 479, 485, 498, 502, 518], "local_dataset": 485, "local_dens": [17, 18, 21, 22, 24, 25, 27, 479], "local_to_glob": 192, "localfold": 11, "localis": 315, "localn": [16, 84, 90, 104, 124], "locat": [47, 82, 83, 85, 87, 88, 90, 94, 137, 151, 152, 158, 163, 166, 204, 336, 388, 394, 398, 401, 406, 407, 412, 414, 445, 447, 450, 458, 467, 468, 471, 474, 480, 495, 496, 515, 531, 578], "location_info": 87, "log": [16, 19, 20, 26, 42, 84, 90, 102, 104, 123, 124, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 198, 202, 206, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 271, 272, 274, 275, 276, 279, 282, 291, 297, 318, 319, 321, 366, 375, 392, 396, 418, 435, 442, 446, 449, 451, 456, 458, 459, 460, 461, 463, 464, 465, 468, 471, 472, 473, 474, 477, 479, 481, 483, 484, 485, 486, 489, 491, 494, 495, 500, 502, 503, 518, 520, 530, 531, 532, 555, 563, 564, 570, 577, 578, 579, 580, 581], "log10": 475, "log_": [241, 242, 489, 552], "log_2": 294, "log_en": 489, "log_level": 11, "log_parabola": 453, "log_parabola_norm": 403, "logarithm": [34, 486, 491, 552], "logarithmic_spir": 34, "logb": 42, "logconfig": 16, "logenergyaxi": 438, "loggaussian": 391, "logger": [346, 349, 380, 465], "logic": [16, 84, 86, 90, 104, 124, 179, 404, 447, 486, 487], "logical_and": [193, 194, 196, 202, 205, 206], "logical_or": [193, 194, 196, 202, 205, 206, 485], "loglog": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 318, 450, 479, 510, 511, 512], "lognorm": 479, "logo": 410, "logparabola": [391, 553], "logparabolanormspectralmodel": [242, 258, 403, 428, 489, 553], "logparabolaspectralmodel": [211, 241, 258, 403, 451, 453, 455, 457, 464, 480, 483, 489, 546, 552], "logscal": 425, "logspac": [152, 193, 194, 196, 202, 205, 206, 458, 471, 474, 475, 479, 486, 510, 511, 512, 531], "logspir": [33, 38], "lomb": [395, 439], "lon": [16, 47, 91, 94, 96, 102, 105, 109, 111, 116, 122, 127, 129, 133, 151, 152, 158, 163, 166, 169, 193, 194, 196, 199, 202, 204, 205, 206, 220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 265, 271, 273, 275, 309, 310, 313, 335, 380, 381, 391, 394, 399, 403, 424, 447, 456, 459, 460, 461, 463, 465, 469, 472, 473, 477, 480, 481, 482, 484, 485, 486, 489, 490, 494, 502, 503, 504, 516, 530, 531, 535, 536, 537, 538, 539, 540, 541], "lon_0": [225, 234, 237, 251, 260, 261, 275, 395, 403, 459, 460, 463, 464, 466, 467, 468, 471, 472, 480, 481, 488, 489, 494, 502, 503, 535, 536, 537, 539, 540, 541, 542], "lon_0_err": 466, "lon_pnt": [309, 313], "lon_rang": 335, "lon_t": [309, 313], "long": [380, 383, 385, 387, 394, 396, 399, 400, 402, 405, 407, 433, 442, 451, 480, 498, 530], "longer": [295, 380, 386, 387, 394, 395, 397, 400, 413, 431, 434, 439, 440, 442, 445, 452, 458, 472], "longest": 197, "longitud": [68, 94, 148, 191, 192, 193, 194, 199, 201, 204, 205, 206, 335, 367, 394, 469, 486, 489, 523, 530, 538], "lonpol": 486, "look": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 83, 88, 102, 105, 109, 110, 125, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 337, 380, 382, 383, 385, 392, 394, 395, 397, 399, 400, 403, 416, 439, 452, 455, 456, 458, 459, 460, 461, 463, 465, 467, 469, 471, 472, 474, 475, 481, 484, 486, 489, 493, 494, 496, 498, 502, 504, 506, 515, 518, 578], "look_up": 437, "lookup": 199, "loop": [87, 91, 328, 393, 445, 455, 480, 486, 495, 502, 518], "lopez": [226, 439, 445, 544], "lopez21": [227, 451, 544], "lopez_2021": 227, "lorimer2006": [28, 29, 30, 36, 39, 40, 48], "lose": 380, "loss": 52, "lost": [100, 102, 105, 109, 110, 518, 531], "lot": [82, 380, 383, 385, 386, 387, 388, 391, 393, 394, 396, 400, 410, 420, 422, 423, 431, 439, 440, 456, 465, 494, 502, 503, 528], "low": [87, 91, 150, 198, 330, 380, 381, 384, 389, 409, 437, 439, 449, 452, 455, 459, 465, 467, 481, 487, 488, 493, 494, 498, 502, 505, 525, 579], "low_zenith": 490, "lower": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 53, 123, 125, 150, 179, 198, 200, 203, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 380, 394, 399, 400, 407, 469, 485, 503], "lower_error": 125, "lowest": [399, 478], "lp": [241, 242, 403, 453, 480, 489, 546], "lp_norm": 553, "lss": 455, "lst": [387, 493], "lsw": 409, "lt": [380, 406, 433, 442, 540, 541], "ltcube": [192, 193, 194, 196, 205, 206, 486], "lts_author": 406, "luca": [421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 442, 445], "lui": 441, "luigi": 436, "luminos": [41, 46, 51, 52, 53, 54, 248], "luminosity_spindown": [51, 54], "luminosity_tev": [52, 53, 512], "lvtm": 474, "lw": [455, 457, 459, 465, 475, 483, 531, 535, 537], "ly": [431, 488], "lyne": 37, "lysyljvw": 477, "l\u00e9a": [421, 423, 424, 425, 428, 436, 437, 438, 439, 440], "l\u00f3pez": 439, "m": [19, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 52, 53, 87, 91, 94, 97, 111, 116, 130, 191, 192, 193, 194, 196, 202, 204, 205, 206, 289, 304, 380, 381, 383, 394, 409, 411, 412, 413, 414, 468, 479, 483, 484, 486, 489, 500, 523, 527, 529, 530, 531, 542, 578, 581], "m2": [102, 153, 173, 451, 456, 458, 460, 461, 463, 465, 471, 481, 484, 485, 493, 502, 503], "m_": [20, 50, 52, 53], "m_3fhl_gc": 486, "m_4d": 486, "m_allski": 486, "m_b": 579, "m_cube": 486, "m_ejecta": [52, 511], "m_gc": 486, "m_hpx": 486, "m_i": 579, "m_iem_10gev": 486, "m_iem_cutout": 486, "m_iem_gc": 486, "m_iem_interp": 486, "m_sub": 486, "m_sun": 511, "m_wc": [193, 194, 196, 202, 205, 206, 486], "ma": [87, 91, 118, 122, 450, 459, 461, 482, 577, 580], "mac": [87, 91, 380, 387, 410, 438, 578], "machin": [383, 387, 388, 393, 397, 410, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "machineri": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 463], "maco": [397, 440], "macport": [397, 438, 440], "made": [173, 180, 201, 204, 215, 217, 224, 247, 307, 339, 340, 380, 383, 385, 396, 399, 401, 404, 405, 406, 431, 442, 443, 447, 455, 459, 463, 464, 485, 493, 531, 542], "madrid": 390, "magenta": [377, 466, 490], "magic": [97, 412, 417, 433, 439, 442, 457, 494, 577], "magic_ecpl": 280, "magic_lp": [280, 457], "magnet": [42, 50, 51, 54, 554], "magnetic_field": [50, 51, 54], "magnitud": [319, 467], "mai": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 87, 90, 91, 94, 101, 104, 124, 125, 380, 381, 383, 388, 389, 393, 394, 396, 397, 405, 406, 410, 411, 413, 418, 419, 451, 460, 461, 467, 482, 493, 517, 518, 530, 537, 554, 575, 578, 582], "mail": [381, 383, 385, 387, 394, 396, 399, 401, 403, 406, 409, 415, 420, 421, 504, 578], "mailmap": [431, 442], "main": [91, 102, 109, 380, 383, 385, 386, 388, 392, 395, 396, 397, 400, 404, 406, 409, 410, 421, 427, 431, 434, 439, 445, 456, 466, 467, 469, 471, 477, 480, 484, 486, 487, 488, 500, 502, 503, 513, 515, 519, 578], "mainli": [380, 390, 391, 394, 401, 486], "maint": 447, "maintain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 380, 382, 397, 399, 400, 401, 405, 410, 440, 485], "mainten": [380, 387, 406, 410, 422, 444], "major": [201, 225, 234, 237, 380, 384, 385, 389, 397, 405, 433, 439, 440, 535, 536, 537], "majorana": 19, "make": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 45, 46, 59, 82, 84, 87, 90, 91, 95, 101, 104, 124, 168, 169, 173, 174, 175, 176, 178, 179, 180, 183, 184, 189, 190, 192, 193, 194, 197, 198, 201, 203, 204, 205, 206, 274, 337, 339, 340, 351, 379, 381, 382, 385, 386, 387, 390, 392, 394, 396, 397, 398, 399, 400, 401, 404, 406, 407, 410, 412, 414, 416, 419, 420, 422, 425, 426, 431, 433, 436, 437, 438, 439, 442, 444, 447, 451, 452, 455, 457, 458, 461, 463, 467, 471, 472, 484, 485, 486, 489, 493, 494, 500, 504, 515, 518, 578, 579], "make_background": [173, 180], "make_background_fit": 170, "make_background_scal": 170, "make_base_catalog_galact": [439, 508], "make_concentric_annulus_sky_region": 469, "make_contour": 483, "make_count": [173, 174, 175, 180], "make_counts_off": [174, 175], "make_cub": 168, "make_dataset": 169, "make_default_fov_background_model": 170, "make_edisp": [173, 180], "make_edisp_kernel": [173, 180], "make_edisp_kernel_map": 484, "make_edisp_map": 152, "make_effective_livetime_map": [447, 485], "make_exclusion_mask": 170, "make_exposur": [173, 180], "make_exposure_irf": [173, 180], "make_imag": 440, "make_lupton_rgb": 375, "make_map_background_irf": 434, "make_map_count": 386, "make_map_cutout": 386, "make_map_exposure_reco_energi": 386, "make_map_exposure_true_energi": [152, 386, 484], "make_map_fov_background": 386, "make_map_hadron_accept": 386, "make_map_ring_background": 386, "make_map_xxx": 386, "make_maps_off": 178, "make_mask_bkg_invalid": 179, "make_mask_energy_aeff_default": 179, "make_mask_energy_aeff_max": 179, "make_mask_energy_bkg_peak": 179, "make_mask_energy_edisp_bia": 179, "make_mask_offset_max": 179, "make_mean_edisp": 441, "make_mean_psf": 441, "make_meta_t": [173, 180], "make_model": 399, "make_more_random_stuff": 380, "make_observation_time_map": 485, "make_orthogonal_rectangle_sky_region": [127, 469], "make_path": [125, 464, 481, 482], "make_pixel_region": 394, "make_psf": [163, 173, 180, 441], "make_psf_map": 484, "make_quant": 351, "make_random_stuff": 380, "make_region": 394, "make_sky_coord": 394, "make_some_random_stuff": 380, "make_theta_squared_t": [431, 496], "makefil": [410, 435], "maker": [6, 152, 163, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 386, 393, 395, 406, 425, 427, 428, 433, 442, 445, 446, 449, 450, 455, 457, 458, 461, 465, 467, 468, 471, 474, 475, 477, 481, 484, 487, 492, 495, 496, 498, 528, 577], "maker_fov": 503, "maker_safe_mask": [465, 471, 503], "mamba": [383, 411, 412, 433], "manag": [87, 91, 215, 217, 224, 247, 327, 358, 379, 380, 383, 388, 396, 397, 399, 402, 406, 407, 409, 431, 436, 438, 442, 446, 486, 488, 578], "manconi": 423, "mandatori": [179, 383, 393, 406, 468, 489], "mandatory_keyword": 484, "mani": [87, 91, 319, 380, 381, 383, 385, 387, 389, 392, 394, 395, 396, 397, 400, 401, 406, 410, 416, 422, 423, 428, 431, 437, 438, 439, 440, 441, 444, 445, 452, 455, 458, 466, 471, 478, 482, 486, 496, 498, 506, 514, 516, 528, 531, 575, 576, 577, 578, 582], "manifest": 390, "manipul": [87, 91, 404, 407, 433, 491, 530], "manner": [444, 445], "manpow": [385, 397], "manual": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 387, 392, 402, 409, 518, 526, 578, 579], "manuel": [432, 435, 436], "map": [6, 15, 16, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 80, 83, 84, 87, 90, 91, 96, 98, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 116, 118, 119, 120, 122, 123, 124, 125, 127, 129, 130, 133, 134, 135, 140, 141, 142, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 170, 171, 173, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 221, 224, 225, 232, 234, 237, 239, 247, 249, 251, 260, 261, 263, 265, 271, 272, 273, 275, 276, 284, 289, 329, 367, 368, 373, 375, 377, 379, 380, 381, 383, 387, 391, 392, 393, 394, 395, 396, 399, 400, 401, 402, 403, 404, 407, 412, 416, 420, 421, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 455, 456, 457, 458, 462, 463, 466, 467, 468, 469, 470, 472, 473, 474, 477, 478, 480, 481, 482, 485, 489, 492, 493, 494, 495, 496, 498, 499, 502, 503, 506, 513, 514, 517, 518, 522, 524, 525, 526, 527, 528, 534, 536, 537, 538, 539, 542, 573, 576, 577], "map_": [207, 208, 368, 375], "map_4d": 486, "map_analysi": 399, "map_cent": 275, "map_coord": [83, 152, 163, 166], "map_dataset": [392, 475], "map_dataset_empti": 475, "map_dataset_mak": 475, "map_dataset_on_off": 475, "map_edisp": [111, 116], "map_in": [193, 194, 196, 202, 205, 206], "map_out": [105, 110, 151, 152, 158, 163, 166, 193, 194, 196, 202, 205, 206], "map_result": 459, "map_select": [16, 456, 460, 461, 463, 502], "map_typ": [193, 194, 196, 202, 205, 206, 486, 530], "mapax": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 428, 431, 433, 486], "mapaxi": [19, 20, 26, 102, 105, 109, 110, 111, 112, 113, 114, 116, 123, 125, 127, 134, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 173, 183, 184, 189, 190, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 375, 381, 395, 404, 422, 423, 425, 428, 431, 441, 445, 447, 450, 452, 455, 457, 458, 464, 465, 467, 468, 471, 473, 474, 475, 477, 481, 484, 485, 486, 489, 494, 495, 496, 503, 522, 525, 527, 528, 530, 531], "mapcoord": [83, 152, 163, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 249, 439, 440, 486, 531, 538], "mapdataset": [98, 99, 103, 105, 108, 109, 110, 112, 113, 114, 115, 117, 118, 122, 127, 130, 133, 140, 141, 142, 143, 144, 168, 169, 170, 173, 174, 178, 179, 232, 373, 376, 393, 395, 401, 402, 421, 422, 423, 424, 425, 426, 427, 428, 431, 445, 446, 447, 459, 460, 464, 465, 466, 468, 469, 471, 472, 474, 475, 482, 483, 485, 487, 488, 494, 502, 503, 516, 518, 525, 528, 577, 579, 580], "mapdataseteventsampl": [93, 108, 425, 426, 427, 434, 445, 447, 467, 468], "mapdatasetmak": [163, 171, 180, 393, 425, 428, 431, 434, 442, 465, 467, 468, 471, 475, 484, 485, 495, 502, 503, 518, 525, 528], "mapdatasetmetadata": [102, 105, 407], "mapdatasetoff": 433, "mapdatasetonoff": [98, 102, 109, 110, 118, 122, 140, 168, 174, 178, 425, 426, 428, 431, 444, 445, 461, 475, 485, 514, 528, 579], "mapdatasetsampl": 393, "mapevalu": [391, 392, 424, 425, 428, 431, 442, 443, 444, 446], "mapeventsampl": [423, 424], "mapfit": [391, 392, 421, 440, 441], "mapgeom": [386, 441, 442], "mapmak": [173, 396, 421, 425, 440], "mapmakerob": [424, 425], "mappabl": 404, "mappanelplott": [401, 583], "mapper": 315, "mappingintstrani": [16, 84, 90, 104, 124], "mappingnamespac": [16, 84, 90, 104, 124], "maps_off": 178, "mar": [397, 418, 443], "march": [387, 389, 418, 420, 441], "marcocirelli": 26, "margin": [101, 105, 110, 115, 117, 192, 194, 204, 206, 224, 247, 263, 391, 487, 535, 579], "marion": [421, 440], "mark": [91, 380, 391, 409], "marker": [101, 102, 105, 109, 110, 450, 452, 455, 457, 459, 465, 472, 473, 474, 478, 504], "markerfacecolor": [102, 105, 109, 110], "markers": [101, 102, 105, 109, 110, 491], "markov": 577, "mask": [83, 87, 91, 99, 101, 102, 105, 109, 110, 122, 126, 127, 129, 130, 131, 133, 151, 152, 158, 163, 166, 168, 170, 175, 176, 177, 178, 179, 181, 191, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 215, 217, 224, 247, 263, 392, 408, 425, 427, 428, 429, 431, 434, 440, 442, 443, 444, 445, 447, 449, 450, 452, 463, 465, 485, 488, 492, 495, 498, 514, 525, 527, 530, 577], "mask_1": 490, "mask_2": 490, "mask_bright": 480, "mask_contains_region": 206, "mask_data": 487, "mask_energi": [481, 487], "mask_fit": [101, 102, 105, 109, 110, 115, 117, 392, 425, 442, 457, 461, 463, 475, 481, 483, 487, 491, 514], "mask_fit_imag": [102, 105, 109, 110], "mask_imag": [102, 105, 109, 110], "mask_map": [192, 204, 449, 487, 492], "mask_map_catalog": 487, "mask_nearest_posit": [193, 194, 196, 202, 205, 206], "mask_off": 475, "mask_roi": 480, "mask_saf": [101, 102, 105, 106, 109, 110, 179, 392, 425, 481, 485, 487, 514], "mask_safe_edisp": [102, 105, 109, 110, 447], "mask_safe_imag": [102, 105, 109, 110, 151, 152, 158, 163, 166], "mask_safe_psf": [102, 105, 109, 110], "mask_spac": 481, "mask_valid": 101, "masked_ev": 83, "maskedarrai": [87, 91], "maskedcolumn": [87, 91], "mass": [19, 20, 26, 52, 393, 427, 446, 479, 506, 539], "massdm": [19, 20, 479], "master": [386, 387, 394, 409, 410, 419], "match": [87, 91, 108, 113, 191, 192, 194, 197, 198, 199, 201, 204, 206, 208, 288, 290, 380, 388, 439, 441, 446, 455, 458, 474, 482, 494, 513, 530], "match_by_nam": 199, "math": [234, 379], "mathcal": [483, 514], "mathemat": [489, 491], "mathieu": [431, 434], "mathrm": [19, 20, 23, 102, 109, 153, 479, 483, 514, 579, 581], "mathworld": [334, 335], "matomo": 447, "matplotlib": [19, 20, 26, 66, 67, 83, 129, 147, 150, 153, 154, 155, 160, 161, 162, 163, 164, 165, 166, 193, 194, 196, 202, 205, 206, 209, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 358, 368, 369, 370, 373, 374, 375, 377, 379, 380, 381, 394, 397, 406, 413, 416, 423, 431, 433, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 527, 535, 537, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 582], "matric": 209, "matrix": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 111, 116, 150, 151, 152, 155, 209, 210, 211, 215, 224, 247, 288, 290, 373, 397, 398, 408, 441, 442, 445, 447, 483, 484, 514, 516, 522], "matter": [1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 394, 400, 408, 440, 445, 446, 449, 485, 492, 494, 498, 507, 576, 578], "matthew": [387, 437, 439, 440], "matthia": [439, 440], "mattox": 459, "max": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 88, 91, 102, 112, 113, 126, 128, 130, 165, 169, 173, 175, 179, 206, 214, 215, 216, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 278, 335, 388, 396, 403, 408, 416, 427, 428, 429, 431, 433, 445, 447, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 469, 471, 472, 473, 474, 475, 477, 478, 480, 481, 483, 484, 485, 486, 487, 489, 490, 491, 494, 495, 502, 503, 504, 506, 525, 527, 528, 535, 554, 557, 563, 580], "max_ag": [45, 508], "max_column": [87, 91], "max_energi": 478, "max_lin": [87, 91], "max_nit": [133, 447], "max_offset": 396, "max_percentil": 83, "max_radiu": [161, 163, 166, 204, 494], "max_region_numb": [176, 527], "max_width": [87, 91], "maxcal": 211, "maxclust": 305, "maxfev": 483, "maxim": [45, 82, 91, 112, 113, 133, 179, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 443, 444, 445, 446, 447, 527], "maxima": [141, 215, 217], "maximilian": [431, 433, 434, 443, 444, 445, 446, 447], "maximum": [19, 20, 45, 46, 47, 83, 87, 91, 100, 123, 125, 128, 163, 166, 168, 176, 179, 185, 188, 192, 198, 203, 204, 214, 216, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 288, 290, 334, 336, 339, 377, 383, 386, 394, 433, 453, 459, 478, 482, 485, 486, 491, 495, 503, 508, 516, 527, 554, 576, 577, 580], "maxmimum": 278, "maxwellian": 32, "mayb": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 388, 390, 391, 402], "mb": [191, 192, 201, 204, 388, 412, 414, 449, 454, 462, 470, 476, 492, 493, 494, 496, 497, 499, 501, 505, 533, 543, 564, 574], "mbox": [102, 109], "mc": 398, "mc_id": [83, 390, 393, 433, 467, 493], "mcerp": 398, "mckee": [53, 446], "mcmc": [398, 400, 421, 426, 428, 554, 577], "mcmc_sampl": [400, 423], "md": [383, 400, 406], "mdm": [26, 479], "mean": [42, 68, 87, 91, 96, 101, 102, 127, 129, 150, 151, 152, 155, 158, 163, 166, 233, 235, 239, 274, 289, 293, 306, 325, 380, 381, 383, 385, 387, 393, 394, 396, 397, 403, 408, 413, 416, 428, 437, 455, 458, 459, 468, 478, 482, 483, 485, 489, 490, 491, 494, 495, 504, 536, 551, 578, 579], "meaning": 489, "meant": [386, 445, 450, 458, 460, 463, 465, 471, 474, 493], "measur": [27, 67, 101, 105, 110, 129, 134, 143, 198, 280, 288, 290, 293, 294, 295, 296, 298, 300, 301, 303, 304, 386, 394, 399, 404, 410, 419, 424, 432, 438, 440, 451, 452, 455, 457, 458, 461, 464, 466, 469, 471, 472, 473, 478, 480, 494, 503, 504, 516, 523, 525, 528, 576, 577, 580, 581], "mechan": [388, 398, 404, 407], "media": 406, "median": [83, 163, 166, 416, 475, 490, 494], "median_zenith": 490, "medium": [45, 52, 380, 389], "meeseeksdev": 380, "meeseeksmachin": 380, "meet": [224, 247, 307, 386, 388, 400, 405, 410], "megabyt": [191, 192, 201, 204], "mem": [449, 454, 462, 470, 476, 492, 497, 499, 501, 505, 533, 543, 564, 574], "member": [83, 381, 385, 394, 406, 407, 439, 445, 482, 493, 496], "memo": [150, 198], "memori": [87, 88, 91, 92, 100, 102, 103, 105, 108, 109, 110, 191, 192, 201, 204, 271, 273, 275, 358, 380, 390, 392, 393, 396, 402, 404, 425, 431, 446, 458, 471, 518], "memoryobserv": 88, "mender": [444, 445, 446], "mention": [59, 145, 380, 381, 383, 387, 388, 392, 394, 397, 399, 400, 405, 406, 409, 410, 484, 488, 489, 491, 506, 577], "mentor": [383, 400], "mere": 390, "merg": [67, 86, 87, 91, 195, 198, 224, 247, 347, 380, 383, 384, 385, 386, 393, 394, 395, 399, 400, 405, 406, 409, 410, 420, 421, 422, 423, 424, 425, 426, 427, 428, 436, 437, 438, 439, 440, 441], "merge_equ": 86, "mergesort": [87, 91], "mess": 381, "messag": [101, 210, 212, 213, 383, 394, 396, 403, 429, 444, 452, 453, 455, 456, 457, 463, 464, 465, 474, 475, 477, 482, 483, 494, 502, 503, 518, 578], "met": [86, 361, 445, 473, 477, 577], "met_start": 86, "met_stop": 86, "meta": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 87, 88, 91, 94, 100, 102, 103, 105, 107, 108, 109, 110, 123, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 180, 193, 194, 196, 202, 205, 206, 271, 272, 275, 276, 317, 361, 362, 363, 364, 390, 393, 394, 395, 404, 407, 409, 427, 428, 439, 443, 445, 446, 467, 475, 486, 490, 493, 495, 515, 516, 573], "meta_t": [100, 101, 102, 105, 109, 110, 173, 180, 404, 407, 428, 452, 458, 485, 514], "metaattribut": [87, 91], "metadata": [16, 83, 84, 85, 87, 88, 90, 91, 104, 106, 123, 124, 125, 147, 148, 149, 153, 154, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206, 362, 384, 386, 397, 446, 456, 460, 461, 463, 467, 489, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "metadata_fits_export_kei": [84, 90, 104, 124], "metadatabas": 407, "metadatabasemodel": 407, "metapackag": 397, "method": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 141, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 296, 298, 305, 315, 319, 323, 327, 328, 329, 354, 367, 369, 379, 380, 383, 386, 389, 390, 391, 394, 395, 396, 398, 399, 400, 402, 404, 406, 407, 412, 416, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 450, 452, 453, 455, 456, 457, 459, 460, 461, 463, 464, 465, 466, 467, 468, 471, 473, 475, 477, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 513, 515, 517, 518, 522, 525, 527, 528, 529, 531, 552, 566, 575, 576, 577, 578, 580], "method_kwarg": [327, 328], "methoda": 423, "metric": 305, "mev": [74, 83, 147, 148, 149, 153, 269, 450, 451, 458, 460, 463, 465, 471, 474, 475, 480, 484, 486, 489, 493, 494, 504, 563], "meval": 537, "mexico": 495, "meyer": [244, 280, 464, 577], "meyer2010": 577, "mgtime": 395, "michael": [444, 446], "michel": 447, "mid": [112, 434, 445, 493], "middl": [369, 396], "midli": 455, "midpoint": 88, "might": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 181, 198, 211, 380, 385, 391, 392, 394, 397, 399, 404, 406, 407, 409, 412, 414, 421, 455, 473, 475, 481, 485, 487, 494, 495, 498, 504, 506, 514, 518, 525, 531, 578, 580], "migra": [102, 105, 109, 110, 152, 155, 160, 184, 396, 467, 468, 484, 523], "migra_axi": [102, 105, 109, 110, 114, 152, 154, 155, 467, 468, 484, 485], "migrad": [101, 211, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "migrad_opt": [211, 483], "migrat": [102, 105, 109, 110, 114, 154, 155, 160, 389, 424, 431, 440, 463, 467, 485, 522, 523], "milagro": [97, 371], "mileston": [389, 409], "milki": [33, 38, 419, 508], "miller": [87, 91], "million": [380, 407], "min": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 91, 102, 126, 128, 130, 145, 173, 214, 215, 216, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 278, 294, 335, 395, 396, 403, 408, 416, 431, 439, 447, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 466, 469, 471, 472, 473, 474, 475, 477, 478, 480, 481, 483, 484, 485, 486, 489, 490, 491, 494, 502, 503, 504, 506, 527, 554, 557, 563], "min_count": 170, "min_dist": [141, 142, 176, 459, 465, 527], "min_distance_input": [176, 527], "min_energi": 478, "min_npix": [151, 152, 158, 163, 166, 204, 206], "min_npred_background": 170, "min_pix": 447, "min_signific": 395, "min_significance_lc": 395, "minaya": 441, "mind": [383, 400, 471, 483], "mini": 400, "miniconda": 411, "minim": [19, 20, 26, 112, 113, 132, 193, 194, 196, 201, 202, 205, 206, 207, 211, 218, 219, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 286, 392, 395, 403, 407, 433, 443, 445, 450, 467, 481, 483, 491, 503, 518, 527, 528, 531, 576, 581], "minima": [215, 217, 491], "minimis": [474, 490], "minimmum": [151, 152, 158, 163, 166, 204, 206], "minimum": [19, 20, 26, 47, 83, 100, 122, 123, 125, 128, 132, 137, 141, 142, 145, 146, 168, 170, 176, 198, 201, 203, 213, 214, 216, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 278, 282, 287, 291, 294, 307, 334, 336, 339, 375, 397, 433, 439, 455, 459, 467, 482, 483, 486, 491, 494, 516, 518, 527, 554, 581], "mino": [211, 483], "minor": [380, 385, 400, 403, 405, 430, 443, 536, 537], "minos_contour": [423, 441], "minu": [155, 475], "minuit": [101, 120, 211, 212, 213, 286, 391, 398, 425, 440, 441, 445, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "minuit_opt": 483, "minut": [400, 410, 439, 455, 459, 461, 463, 465, 466, 467, 469, 473, 474, 477, 479, 481, 483, 485, 488, 491, 502], "mireia": [442, 447], "mirror": 190, "misc": [419, 432, 436, 437, 438], "miss": [82, 87, 91, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 380, 383, 388, 389, 390, 391, 394, 400, 401, 404, 429, 431, 433, 439, 444, 447, 486], "mission": [83, 445, 577], "mistak": [385, 405], "mix": [379, 380, 396, 481, 486], "mixin": [87, 91], "mjd": [86, 94, 125, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 362, 364, 381, 444, 445, 459, 467, 468, 472, 473, 474, 477, 478, 486, 489, 515, 566, 567, 568, 569, 570, 571, 572, 573, 582], "mjdref": [459, 486], "mjdreff": [94, 361, 364, 468], "mjdrefi": [94, 361, 364, 468], "mkdir": [396, 455, 456, 463, 464, 467, 502, 503], "mkn": [504, 577], "mkn_421_3fhl": 504, "mncontour": 211, "mnra": [137, 303], "mnt": 442, "mock": 466, "mock_dl4": 466, "mode": [16, 84, 85, 87, 90, 91, 94, 102, 104, 105, 109, 124, 128, 151, 152, 158, 163, 166, 169, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 273, 407, 426, 439, 442, 446, 474], "model": [1, 6, 15, 16, 18, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 45, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 93, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 140, 143, 144, 147, 153, 154, 161, 162, 163, 164, 166, 170, 173, 186, 193, 194, 196, 202, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 299, 302, 304, 376, 379, 380, 381, 384, 385, 386, 392, 393, 395, 396, 398, 400, 401, 404, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 450, 453, 458, 459, 461, 466, 469, 471, 475, 482, 484, 485, 486, 487, 492, 494, 495, 498, 506, 507, 513, 514, 516, 518, 519, 523, 525, 526, 533, 543, 564, 574, 576, 577, 580, 581], "model1": [219, 544, 546, 550, 553, 555, 558], "model2": [219, 451, 474, 544, 546, 550, 553, 555, 558], "model_1d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 456], "model_2d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_3d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_add": [489, 546], "model_best": 451, "model_best_joint": 455, "model_best_stack": 455, "model_bin_": 477, "model_bin_0": 477, "model_bkg": 481, "model_computed_field": [16, 84, 90, 104, 124], "model_config": [16, 84, 90, 104, 124, 460, 502], "model_constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_construct": [16, 84, 90, 104, 124], "model_copi": [16, 84, 90, 104, 124, 463, 489], "model_dump": [16, 84, 90, 104, 124], "model_dump_json": [16, 84, 90, 104, 124], "model_extra": [16, 84, 90, 104, 124], "model_field": [16, 84, 90, 104, 124], "model_fields_set": [16, 84, 90, 104, 124], "model_fit": 474, "model_in_bin": 477, "model_joint": 463, "model_json_schema": [16, 84, 90, 104, 124], "model_manag": [449, 488, 492], "model_nam": [102, 105, 109, 110, 224, 247, 376, 481], "model_parametrized_nam": [16, 84, 90, 104, 124], "model_plot": 466, "model_post_init": [16, 84, 90, 104, 124], "model_prior": 491, "model_read": 491, "model_rebuild": [16, 84, 90, 104, 124], "model_set_axi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "model_simu": [458, 471, 474], "model_spectrum": 489, "model_str": 456, "model_typ": [224, 232, 245, 247, 263, 273, 286, 403, 488], "model_valid": [16, 84, 90, 104, 124], "model_validate_json": [16, 84, 90, 104, 124], "model_validate_str": [16, 84, 90, 104, 124], "model_weak": 491, "model_weak_prior": 491, "model_without_nam": 489, "modelbas": [232, 256, 263, 265, 266, 273, 277, 408], "modeldm": [19, 20], "modelevalu": 391, "modeling_2d": [449, 460, 462], "modelmetadata": 407, "modelmodel_dump": [16, 84, 90, 104, 124], "modelmodel_dump_json": [16, 84, 90, 104, 124], "models_3fhl": 488, "models_4fgl_roi": 480, "models_as_dict": [16, 84, 90, 104, 124], "models_diffus": 467, "models_fil": [16, 456, 460, 461, 463, 502], "models_fit": 471, "models_gc": 488, "models_gp": 493, "models_joint": 463, "models_or": 488, "models_read": 489, "models_select": 488, "models_stack": 463, "models_yaml": 489, "modelsmetadata": 407, "modern": [87, 91, 398], "modernis": [397, 425], "modest": [380, 536], "modif": [16, 84, 87, 90, 91, 104, 124, 380, 383, 402, 409, 442], "modifi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 87, 91, 93, 102, 109, 125, 126, 127, 130, 133, 169, 211, 327, 352, 377, 390, 392, 396, 402, 406, 407, 426, 428, 429, 431, 433, 441, 444, 445, 447, 451, 456, 468, 485, 487, 491, 495, 502, 516, 531, 582], "modul": [6, 262, 380, 381, 385, 389, 396, 401, 419, 421, 427, 439, 474, 480, 482, 485, 488, 506, 507, 508, 509, 554, 571, 582], "modular": 386, "mohanti": 101, "mohrmann": [396, 420, 421, 422, 438, 439, 440, 443, 445, 447, 577], "mohrmann2019": 577, "moment": [15, 51, 54, 86, 95, 263, 356, 386, 394, 396, 397, 400, 405, 406, 484, 486, 523], "moncar": [211, 483], "monitor": [393, 493, 518], "monkei": 380, "mono": 388, "monoton": 198, "mont": [398, 523, 577], "montecarlo": [103, 108, 211], "month": [78, 383, 389, 394, 397, 399, 400, 405, 409, 413, 419, 420, 421, 422, 423, 432, 435, 436, 437, 438, 439, 440, 441], "monthli": [389, 407, 412, 441], "moor": 24, "morcuend": [441, 444, 446, 447], "more": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 71, 74, 75, 78, 87, 91, 99, 100, 101, 102, 105, 109, 110, 134, 141, 143, 150, 179, 193, 194, 196, 205, 206, 218, 219, 220, 221, 222, 223, 225, 226, 228, 230, 231, 234, 235, 236, 237, 238, 239, 240, 242, 248, 249, 250, 251, 252, 254, 255, 260, 261, 262, 264, 267, 268, 269, 275, 276, 291, 297, 315, 355, 380, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 404, 405, 406, 407, 408, 410, 411, 412, 413, 416, 425, 426, 427, 428, 431, 438, 440, 441, 445, 447, 451, 452, 455, 457, 459, 461, 463, 467, 468, 474, 477, 478, 479, 481, 483, 485, 486, 487, 488, 489, 490, 491, 495, 496, 498, 504, 514, 515, 516, 518, 527, 528, 530, 531, 536, 575, 576, 578, 580, 582], "moreov": [396, 480, 485, 514], "morpholog": [120, 393, 449, 470, 498], "morphologi": [50, 52, 120, 391, 393, 403, 419, 436, 438, 452, 460, 466, 467, 468, 471, 480, 485, 532], "mosaic": 386, "most": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 83, 87, 91, 95, 118, 125, 379, 380, 381, 383, 385, 386, 387, 388, 391, 392, 393, 394, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 410, 412, 413, 431, 438, 439, 441, 442, 445, 446, 460, 461, 469, 472, 474, 480, 482, 483, 484, 485, 486, 487, 493, 494, 498, 504, 506, 516, 517, 518, 523, 525, 531, 575, 577, 578, 581], "mostli": [56, 69, 307, 380, 381, 386, 387, 388, 389, 394, 396, 399, 400, 401, 404, 405, 407, 410, 431, 439, 480, 485, 496, 504, 580, 582], "motion": [45, 311], "motiv": [179, 385, 387, 388, 394, 397, 399, 409, 489, 518], "move": [286, 385, 386, 387, 388, 391, 394, 399, 400, 401, 404, 409, 415, 421, 422, 424, 425, 426, 427, 431, 432, 436, 437, 439, 440, 441, 442, 458], "move_axi": 445, "movement": 406, "mpatch": 469, "mpg": 67, "mpi": 67, "mpl": 380, "mpl_check_plot": 380, "mpl_kwarg": [455, 465, 469], "mpl_normal": [370, 371], "mpl_plot_check": 380, "mpl_style": 439, "msg": [450, 458, 460, 463, 465, 471, 474, 493], "msh": [461, 480, 485], "msh15": 496, "mst": 493, "mu": [26, 233, 288, 290, 291, 373, 408, 451, 479, 491, 522, 523, 580], "mu_": [291, 297, 579, 580, 581], "mu_background": 578, "mu_bkg": [105, 110, 288, 301, 304, 416, 578, 580], "mu_off": 580, "mu_on": [291, 297, 580], "mu_sig": [290, 301, 304, 461, 579, 580], "mu_x": 580, "much": [194, 380, 386, 391, 394, 396, 399, 400, 424, 431, 458, 463, 469, 475, 491, 494, 504, 537], "mul": [26, 451, 479, 489, 544, 550, 553, 555, 558, 563], "mulitpli": [233, 256, 278], "multi": [87, 91, 192, 204, 389, 394, 408, 425, 428, 432, 439, 449, 453, 459, 470, 481, 483, 484, 489, 490, 494, 498, 516, 518, 530, 576, 577], "multicompon": 447, "multidimension": [386, 396, 408, 446, 482, 498, 523, 576], "multinorm": 398, "multipl": [19, 20, 26, 82, 87, 91, 92, 100, 101, 102, 105, 108, 109, 110, 113, 115, 117, 133, 141, 167, 193, 194, 196, 202, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 381, 386, 389, 392, 393, 394, 396, 398, 401, 402, 404, 408, 412, 421, 428, 429, 431, 439, 445, 446, 447, 457, 463, 473, 480, 481, 482, 485, 486, 487, 489, 494, 516, 530, 554, 563, 575, 576, 577, 578, 583], "multipli": [19, 20, 26, 125, 218, 219, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 239, 241, 242, 244, 247, 248, 249, 250, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 284, 289, 299, 302, 307, 451, 459, 461, 475, 479, 489, 544, 580], "multiprocess": [13, 93, 126, 127, 130, 133, 169, 322, 327, 328, 425, 445, 446], "multithread": 13, "multivari": 398, "multivariategaussianprior": 408, "multiwavelength": 226, "muon": 490, "muoneff": 490, "mur": [26, 479], "must": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 87, 88, 91, 101, 102, 105, 106, 110, 111, 116, 125, 130, 133, 134, 141, 142, 143, 161, 169, 173, 175, 180, 187, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 295, 296, 307, 325, 375, 380, 385, 391, 392, 395, 404, 405, 406, 407, 450, 455, 460, 473, 481, 482, 485, 487, 488, 489, 493, 494, 503, 504, 518, 530], "mutablemap": 200, "mutablesequ": [92, 100, 247], "mutipl": 412, "mutltipl": 383, "my": [380, 402, 403, 411, 467, 468, 481, 489], "my_custom_model": 489, "my_flux_map": 404, "my_ob": 89, "my_obs_filt": 89, "my_sourc": 402, "mybind": [410, 439], "myconfig": [11, 578], "mycustomgaussianmodel": [403, 489], "mycustomprior": 491, "mycustomspectralmodel": [258, 489], "n": [19, 20, 51, 82, 87, 91, 123, 125, 191, 192, 193, 194, 196, 198, 199, 202, 204, 205, 206, 214, 216, 279, 286, 380, 383, 394, 397, 411, 413, 437, 471, 473, 477, 479, 480, 482, 483, 486, 488, 491, 493, 494, 495, 496, 501, 523, 530, 531, 533, 536, 537, 577, 579, 581], "n_": [102, 109, 291, 297, 514, 579, 580, 581], "n_0": [235, 551], "n_bad": 494, "n_bin": 481, "n_bkg": [288, 290, 580], "n_dof": [123, 125, 516], "n_event": [193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 393], "n_event_bunch": [103, 108], "n_events_bkg": 393, "n_fit_bin": [463, 474, 481, 488], "n_free_paramet": 286, "n_input": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49], "n_ism": [43, 44, 45, 52, 511, 512], "n_job": [16, 93, 126, 127, 130, 133, 169, 327, 445, 456, 459, 460, 461, 463, 469, 473, 485, 502], "n_jobs_default": [93, 126, 127, 130, 133, 169], "n_model": [72, 76], "n_ob": [458, 467, 474], "n_observ": 578, "n_off": [105, 110, 290, 300, 301, 304, 461, 579, 580], "n_off_posit": 457, "n_off_region": [181, 457], "n_on": [288, 290, 291, 297, 300, 301, 304, 416, 461, 578, 579, 580], "n_output": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49], "n_point": [19, 20, 26, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 408, 572], "n_scale": 118, "n_sig": [288, 290, 475, 580], "n_sig_matching_signific": [288, 290], "n_sigma": [71, 74, 75, 78, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 286, 288, 290, 450, 459, 469, 473, 480, 481, 482, 502, 504, 516], "n_sigma_sensit": [122, 123, 124, 125], "n_sigma_ul": [71, 74, 75, 78, 122, 123, 124, 125, 126, 127, 130, 131, 133, 459, 469, 472, 473, 480, 481, 482, 502, 504, 516], "n_sourc": [45, 508], "n_spatial_ax": 197, "n_submodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "n_tel": 91, "n_time_bin": [473, 477], "nachiketa": [437, 438], "naima": [248, 379, 397, 398, 399, 400, 403, 422, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 518, 532, 563, 564], "naimamodel": [422, 425, 427], "naimaspectralmodel": [258, 403, 431, 489, 518, 554], "nakashima": 423, "name": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 48, 49, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 90, 91, 94, 96, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 111, 115, 116, 117, 123, 124, 125, 126, 127, 130, 131, 133, 137, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 173, 174, 183, 184, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 305, 306, 328, 359, 360, 375, 381, 383, 386, 389, 390, 392, 393, 394, 395, 398, 399, 402, 403, 404, 406, 407, 408, 409, 412, 414, 421, 422, 423, 424, 425, 426, 427, 428, 431, 440, 442, 443, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 484, 485, 486, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 516, 518, 522, 525, 527, 528, 530, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "name1": 483, "name2": 483, "name_err": [126, 127, 130, 131], "name_scan": [126, 127, 130, 131], "name_substr": [224, 247, 488], "name_ul": [126, 127, 130, 131], "namedtupl": 380, "nameerror": 380, "namespac": [6, 16, 84, 90, 104, 124, 380, 399, 401, 424, 427, 437, 489, 507, 582], "namibia": 496, "nan": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 87, 91, 102, 123, 125, 136, 173, 191, 192, 193, 194, 196, 202, 205, 206, 214, 216, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 403, 408, 447, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 469, 471, 472, 473, 474, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 502, 503, 504, 518, 554, 563], "nan_to_num": [100, 102, 105, 109, 110, 151, 152, 158, 163, 166, 194, 202, 206, 273], "nanograv": 518, "nansum": [193, 194, 196, 205, 206], "nasa": [58, 60, 61, 62, 64, 65, 150, 198, 400, 557], "nativ": [87, 91, 199, 392, 397, 431, 486], "natur": [87, 91, 380, 386, 403, 406, 489, 552], "nauroi": [304, 577], "naurois2012": 577, "navarro": 506, "navi": 451, "navig": [439, 441], "naxi": 486, "naxis1": 486, "naxis2": 486, "naxis3": 486, "naxis4": 486, "nbin": [16, 111, 116, 127, 153, 155, 161, 163, 195, 198, 203, 206, 339, 340, 396, 450, 455, 456, 457, 460, 461, 463, 464, 465, 467, 468, 469, 472, 473, 475, 477, 481, 484, 485, 486, 489, 494, 495, 496, 502, 522, 525, 527, 528, 531], "nbin_per_decad": 198, "nbstripout": 388, "nchunk": 289, "ncol": [147, 148, 193, 194, 196, 202, 205, 206, 373, 377, 452, 455, 459, 461, 463, 465, 475, 481, 483, 486, 487, 527, 544], "ncp": 478, "nd": [193, 194, 196, 202, 205, 206, 271, 272, 401, 486, 531], "ndarrai": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 87, 91, 92, 101, 118, 147, 148, 149, 150, 151, 154, 155, 157, 160, 161, 162, 163, 164, 166, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 209, 210, 214, 215, 216, 217, 224, 249, 250, 276, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 298, 299, 302, 303, 304, 307, 318, 319, 320, 329, 334, 336, 369, 373, 374, 380, 481, 486, 504, 530, 531], "nddata": [422, 425], "nddataarrai": [423, 437, 438], "ndecad": [17, 18, 21, 22, 23, 24, 25, 27, 282], "ndim": [102, 109, 111, 116, 148, 150, 153, 192, 199, 204, 457, 460, 465, 469, 481, 482, 484, 485, 486, 493, 494, 504, 516, 531], "ndimag": [206, 394], "ndmap": 482, "ndmin": 307, "ne": 392, "nearest": [26, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 193, 194, 196, 198, 202, 205, 206, 319, 433, 440, 442, 486, 516, 518, 530], "nearli": [380, 431, 452], "nebula": [50, 280, 286, 425, 455, 456, 457, 461, 464, 465, 466, 472, 483, 487, 489, 491, 494, 495, 496, 502, 503, 504, 509, 531, 577], "necess": [404, 491], "necessari": [16, 84, 90, 101, 104, 124, 383, 390, 395, 406, 409, 433, 452, 455, 457, 458, 461, 467, 468, 471, 473, 474, 482, 485, 486, 488, 489, 503, 514, 515, 518], "necessarili": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 395, 460], "need": [11, 16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 85, 87, 89, 90, 91, 94, 101, 102, 104, 105, 109, 110, 122, 124, 125, 151, 152, 163, 165, 166, 201, 279, 280, 307, 379, 380, 381, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 404, 405, 406, 407, 410, 411, 416, 420, 421, 422, 439, 441, 446, 451, 452, 456, 458, 459, 460, 461, 465, 467, 468, 473, 474, 477, 478, 483, 484, 486, 487, 488, 489, 490, 493, 495, 502, 504, 514, 527, 529, 530, 578, 582], "need_upd": 431, "neg": [19, 20, 26, 87, 91, 123, 125, 126, 127, 130, 131, 133, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 275, 276, 288, 290, 381, 428, 446, 447, 491, 516, 580, 581], "neglect": [128, 179, 450, 485, 516, 581], "neighbor": [154, 162, 164, 433, 440], "neighbour": [319, 539], "neither": [96, 179, 397, 405], "neldermead": 211, "nep": [385, 405], "neraest": 194, "nest": [15, 192, 193, 194, 248, 286, 307, 347, 445, 494, 529, 580], "nested_model": 248, "net": [26, 87, 91, 455, 518], "neutrino": [52, 380], "neutron": 36, "never": [377, 379, 380, 383, 386, 390, 394, 402, 495], "nevertheless": [412, 414], "new": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 86, 87, 88, 90, 91, 92, 101, 102, 104, 105, 109, 110, 123, 124, 125, 126, 130, 133, 136, 145, 147, 148, 149, 150, 153, 155, 157, 160, 165, 176, 177, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 224, 247, 263, 273, 298, 307, 331, 358, 365, 383, 385, 386, 387, 388, 389, 390, 392, 393, 394, 397, 398, 399, 400, 401, 402, 403, 405, 406, 407, 409, 410, 411, 412, 414, 415, 416, 417, 418, 419, 432, 435, 463, 477, 478, 480, 481, 486, 488, 489, 515, 516, 518, 563, 577], "new_attribut": 380, "new_axi": 145, "new_dataset_nam": [224, 247], "new_datasets_nam": [19, 20, 26, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "new_ev": 518, "new_flux_map": 404, "new_funct": 380, "new_input": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "new_model": 563, "new_nam": [87, 91, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206], "new_ob": [88, 518], "new_observ": 92, "newaxi": 530, "newer": [397, 410, 421, 440], "newli": [425, 426, 427], "next": [87, 91, 102, 380, 381, 385, 396, 400, 401, 405, 408, 409, 437, 438, 450, 463, 466, 467, 469, 471, 480, 481, 482, 485, 486, 489, 490, 491, 494], "nfcn": 483, "nfev": [101, 211, 212, 213, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "nfw": [25, 27, 506], "nfwprofil": 479, "ni": 380, "nice": [380, 385, 391, 397, 399, 407, 423, 431, 459, 463, 480, 578], "nicer": [380, 416, 504], "nieto": [428, 431, 433, 434, 442, 444, 445, 446, 447], "nieva": [442, 447], "night": [395, 473], "nightli": [412, 472], "nightwise_lc": 472, "nigro": [428, 431, 433, 439, 440, 442, 445], "niter": [123, 125, 133, 459], "nmcid": 434, "nn": 495, "noah": [408, 446], "node": [19, 20, 26, 163, 166, 195, 198, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 249, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 422, 483, 484, 486, 493, 494, 538, 555], "node_typ": [155, 195, 198, 203, 467, 468, 484, 494], "noeth": [428, 429], "nois": [289, 295, 398, 577], "noisi": 493, "non": [16, 84, 87, 90, 91, 100, 102, 104, 105, 109, 110, 115, 117, 123, 124, 125, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 175, 179, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 273, 307, 370, 371, 373, 375, 386, 391, 394, 398, 400, 401, 407, 421, 425, 426, 427, 431, 439, 442, 443, 445, 446, 447, 452, 477, 494, 498, 514, 518, 529, 530, 554, 577], "none": [16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 50, 51, 52, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 112, 113, 114, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 140, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 286, 288, 289, 290, 304, 305, 307, 310, 315, 319, 327, 328, 329, 331, 334, 335, 336, 337, 346, 349, 355, 363, 367, 368, 369, 373, 374, 375, 376, 377, 380, 392, 394, 397, 404, 407, 408, 433, 444, 445, 447, 451, 452, 453, 455, 456, 458, 459, 463, 464, 465, 467, 468, 469, 471, 473, 474, 475, 477, 479, 480, 481, 482, 485, 486, 488, 489, 491, 494, 502, 506, 514, 530, 535, 536, 537, 578], "nonposit": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "nonposx": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 431], "nonstopmod": 381, "nonzero": 39, "nooverlaperror": 444, "noqa": [19, 20, 150, 186, 197, 198, 204, 226, 377], "nor": [96, 179, 390, 401, 405, 409], "norm": [19, 20, 26, 122, 123, 125, 126, 127, 130, 133, 135, 142, 144, 170, 218, 219, 222, 223, 226, 228, 229, 230, 231, 232, 235, 236, 238, 239, 240, 241, 242, 244, 248, 249, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 373, 391, 402, 404, 408, 425, 426, 428, 431, 446, 447, 449, 455, 459, 460, 461, 463, 464, 466, 467, 468, 469, 471, 473, 474, 475, 479, 480, 481, 482, 483, 494, 502, 503, 504, 506, 516, 518, 525, 532, 537, 543, 544, 551, 563, 564, 572, 580], "norm_0": [538, 555], "norm_1": [538, 555], "norm_2": [538, 555], "norm_3": [538, 555], "norm_4": 555, "norm_5": 555, "norm_err": [122, 123, 125, 127, 133, 142, 404, 459, 469, 473, 481, 482, 516], "norm_errn": [123, 125, 473, 480, 482, 504, 516], "norm_errp": [123, 125, 473, 480, 482, 504, 516], "norm_only_chang": 443, "norm_prior": 408, "norm_scan": [123, 404, 455, 456, 482, 516], "norm_sensit": [123, 125], "norm_ul": [123, 125, 404, 469, 473, 480, 481, 482, 504, 516], "norma": [33, 38], "normal": [42, 101, 102, 105, 109, 110, 126, 127, 128, 130, 140, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 170, 193, 194, 196, 202, 203, 205, 206, 232, 249, 250, 253, 273, 275, 279, 307, 370, 371, 380, 381, 385, 386, 390, 391, 394, 398, 404, 420, 424, 433, 447, 451, 461, 467, 472, 473, 475, 485, 486, 487, 488, 489, 494, 503, 504, 530, 535, 536, 537, 540, 541, 542, 563, 579, 580], "normalis": [67, 80, 122, 123, 125, 130, 147, 148, 149, 150, 153, 155, 157, 160, 161, 165, 170, 190, 193, 194, 196, 202, 205, 206, 249, 250, 263, 378, 456, 459, 460, 461, 474, 482, 487, 488, 489, 494, 502], "normed_templ": 489, "normspectralmodel": [224, 247, 403, 428, 444, 446, 489, 525], "north": [225, 234, 237, 535], "notat": [428, 520, 522, 528, 581], "note": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 78, 82, 83, 84, 86, 87, 90, 91, 94, 101, 102, 103, 104, 105, 108, 109, 110, 118, 122, 124, 125, 130, 133, 150, 155, 163, 165, 175, 186, 204, 208, 211, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 295, 296, 307, 328, 355, 371, 377, 379, 382, 383, 385, 388, 393, 394, 397, 400, 404, 405, 406, 408, 409, 410, 413, 419, 421, 441, 443, 445, 447, 450, 451, 452, 456, 457, 459, 460, 463, 466, 468, 473, 474, 475, 477, 478, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 514, 516, 518, 525, 530, 531, 540, 541, 552, 580, 581, 582], "notebook": [87, 91, 344, 383, 384, 389, 390, 394, 395, 396, 397, 398, 400, 409, 410, 412, 413, 414, 417, 420, 421, 422, 423, 425, 426, 427, 429, 431, 433, 437, 438, 439, 440, 441, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 517, 518, 519, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578], "noth": [331, 397, 491], "notic": [386, 483, 498], "notimplementederror": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "nov": [387, 392, 397, 398, 400, 404, 418, 442], "novemb": [389, 418, 428, 429, 430, 431], "now": [16, 82, 84, 88, 90, 99, 104, 123, 124, 125, 203, 248, 380, 383, 385, 386, 387, 390, 392, 393, 394, 396, 397, 398, 399, 400, 401, 404, 406, 407, 408, 415, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 455, 456, 457, 458, 460, 461, 463, 464, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 481, 483, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 515, 516, 527, 565, 569, 570, 571, 578, 580, 581, 582], "np": [83, 87, 91, 102, 105, 109, 110, 111, 116, 118, 122, 125, 133, 152, 193, 194, 196, 202, 205, 206, 211, 279, 380, 381, 391, 392, 395, 403, 404, 408, 416, 442, 447, 450, 458, 459, 461, 467, 469, 471, 473, 474, 475, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 489, 490, 491, 510, 511, 512, 516, 518, 525, 530, 531, 535, 536, 538, 563, 571, 578], "npanel": 367, "npix": [192, 201, 204, 205, 206, 455, 465, 484, 494, 527, 531, 534, 538], "npix_max": 192, "npoint": [289, 483], "npred": [102, 105, 109, 110, 122, 123, 125, 126, 127, 130, 131, 133, 142, 273, 292, 391, 392, 393, 402, 404, 419, 421, 428, 431, 437, 439, 447, 459, 467, 469, 473, 480, 481, 482, 491, 494, 514, 516, 580], "npred_background": [102, 105, 109, 110, 123, 125, 428, 457, 458, 469, 481, 516, 580], "npred_background_min": 146, "npred_excess": [122, 123, 125, 127, 133, 135, 142, 144, 459, 461, 469, 473, 475, 482, 516], "npred_excess_err": [123, 125], "npred_excess_errn": [123, 125], "npred_excess_errp": [123, 125], "npred_excess_ref": [123, 125], "npred_excess_ul": [123, 125], "npred_min": 146, "npred_off": [105, 110, 580], "npred_sig": [102, 105, 109, 110, 392], "npred_sign": [102, 105, 109, 110, 376, 431, 445, 481, 580], "npred_signal_min": 146, "npred_sourc": 481, "nrow": [452, 455, 483, 544], "nside": [192, 193, 194, 442, 494, 529], "nside2resol": 194, "nside_til": [192, 194], "nsou": 459, "nstep": 395, "nu": [19, 26], "nu_e": [26, 479], "nu_mu": [26, 479], "nu_tau": [26, 479], "nuisanc": [455, 483, 577, 581], "null": [123, 125, 126, 127, 130, 131, 286, 288, 290, 447, 456, 460, 461, 463, 466, 482, 489, 502, 516, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580], "null_valu": [131, 286, 469], "nullabl": [87, 91], "num": 83, "numba": 397, "number": [11, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 45, 46, 47, 67, 72, 76, 82, 83, 85, 86, 87, 91, 92, 93, 94, 100, 102, 103, 105, 108, 109, 110, 112, 113, 118, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 169, 170, 173, 176, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 211, 212, 213, 214, 215, 217, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 277, 282, 286, 288, 289, 290, 303, 307, 325, 327, 328, 329, 330, 331, 334, 335, 336, 337, 339, 340, 367, 373, 384, 385, 386, 389, 391, 392, 393, 394, 395, 399, 401, 404, 406, 407, 409, 416, 421, 431, 433, 434, 435, 440, 441, 442, 445, 446, 447, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 485, 486, 487, 489, 490, 493, 494, 495, 496, 502, 503, 504, 508, 514, 516, 518, 525, 527, 530, 531, 577, 578, 579, 580, 581], "number_of_column": [87, 91], "number_param": 209, "numer": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 87, 91, 125, 198, 214, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 277, 307, 379, 380, 393, 398, 413, 431, 450, 458, 460, 463, 465, 471, 474, 486, 493], "numpi": [19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 92, 101, 111, 116, 118, 125, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 164, 165, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 208, 209, 211, 214, 215, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 274, 275, 288, 290, 307, 331, 336, 374, 379, 380, 381, 383, 387, 391, 393, 397, 398, 399, 406, 408, 416, 417, 424, 425, 428, 436, 437, 438, 440, 442, 443, 444, 446, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 502, 503, 504, 510, 511, 512, 516, 518, 530, 531, 535, 536, 538, 563, 571], "numpoint": [211, 483], "numpy121": 383, "nupeak_ob": 504, "nutshel": 582, "n\u00f6the": [431, 433, 434], "o": [67, 82, 87, 91, 101, 200, 380, 389, 394, 397, 401, 404, 411, 412, 414, 423, 431, 434, 437, 438, 439, 445, 450, 452, 455, 459, 465, 472, 473, 474, 477, 478, 486, 490, 491, 493, 518, 577, 578], "o504nvl6": 477, "ob": [40, 82, 83, 88, 89, 91, 92, 96, 163, 173, 305, 306, 392, 393, 396, 397, 402, 416, 434, 435, 444, 450, 452, 455, 458, 459, 465, 467, 471, 473, 474, 475, 477, 485, 490, 493, 494, 495, 496, 500, 503, 515, 518, 523, 525, 527, 528], "obei": 530, "obj": [16, 84, 90, 104, 124, 457, 477], "object": [6, 15, 16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 50, 51, 52, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 100, 101, 102, 103, 104, 105, 109, 110, 123, 124, 125, 128, 129, 130, 136, 137, 138, 139, 142, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 169, 177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 288, 290, 307, 311, 315, 316, 319, 327, 329, 331, 337, 340, 354, 355, 356, 357, 362, 367, 373, 375, 376, 377, 386, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 404, 406, 407, 412, 416, 422, 423, 425, 426, 427, 428, 431, 433, 438, 439, 440, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 464, 466, 469, 471, 472, 473, 474, 477, 478, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 508, 513, 514, 515, 516, 524, 527, 529, 530, 531, 563, 575, 577, 578, 582], "obs2": 518, "obs_": 455, "obs_clust": [92, 490], "obs_col": 465, "obs_con": [16, 456, 460, 461, 463, 502], "obs_copi": 88, "obs_fil": [16, 456, 460, 461, 463, 502], "obs_filenam": 495, "obs_filt": [88, 89], "obs_id": [16, 82, 87, 88, 89, 91, 96, 146, 211, 305, 306, 390, 392, 402, 407, 416, 452, 455, 456, 457, 458, 460, 461, 463, 464, 465, 467, 468, 472, 473, 474, 477, 483, 485, 490, 493, 495, 496, 500, 502, 503, 527], "obs_id_uniqu": 87, "obs_index": 82, "obs_info": [90, 104, 407], "obs_list": [439, 441], "obs_list_vela": 475, "obs_mod": 95, "obs_model": 451, "obs_muoneff": 490, "obs_po": [41, 310], "obs_tabl": [82, 91, 96, 305, 306, 433, 465, 467, 473, 477, 485, 490, 493, 495, 496, 500, 503, 527], "obs_table_filenam": 82, "obs_tim": [16, 456, 460, 461, 463, 502], "obs_time_src": 485, "obs_zenith": 490, "obscor": 446, "observ": [6, 15, 16, 41, 82, 83, 85, 86, 87, 89, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 108, 109, 110, 112, 113, 163, 168, 169, 170, 173, 174, 175, 176, 178, 179, 180, 183, 184, 185, 186, 188, 189, 190, 223, 226, 231, 236, 238, 239, 240, 255, 262, 274, 277, 291, 297, 304, 306, 315, 336, 384, 386, 392, 393, 394, 395, 396, 400, 402, 404, 407, 412, 421, 425, 426, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 457, 458, 460, 461, 463, 464, 471, 474, 475, 477, 478, 483, 491, 492, 493, 495, 496, 498, 500, 506, 514, 515, 518, 521, 523, 525, 527, 528, 554, 577, 578, 579, 580], "observation_clust": [449, 490, 492], "observation_dead_time_fract": [83, 88], "observation_list": 92, "observation_live_time_dur": [83, 88], "observation_time_dur": [83, 88], "observation_time_start": 83, "observation_time_stop": 83, "observationcheck": 440, "observationcta": 390, "observationeventsampl": 446, "observationfilt": [88, 390, 395, 420, 441], "observationlist": [390, 441], "observationmetadata": 407, "observations_list": 92, "observationsconfig": 16, "observationseventsampl": 446, "observationseventssampl": 447, "observationssummari": 425, "observationstat": [420, 425], "observationt": [82, 393, 394, 442, 490, 495, 503], "observationtablecheck": 440, "observationtablesummari": 437, "observatori": [57, 59, 63, 82, 83, 85, 88, 90, 94, 393, 407, 409, 412, 432, 493, 495, 496, 513, 518], "observatory_earth_loc": [83, 88, 447], "observatory_loc": [407, 433, 450, 458, 467, 468, 471, 474], "obsinfometadata": [90, 104], "obstim": [85, 94, 186, 582], "obtain": [85, 102, 105, 108, 110, 123, 125, 137, 294, 390, 395, 397, 398, 404, 441, 447, 455, 456, 457, 459, 461, 467, 468, 473, 477, 478, 483, 486, 487, 491, 502, 504, 514, 518, 522, 523, 579, 580], "obviou": [392, 399, 400, 401, 407], "obvious": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 506], "occur": [193, 194, 196, 205, 206, 337, 380, 400, 401, 405, 494], "occurr": [92, 100, 197, 215, 217, 224, 247], "oct": [388, 390, 391, 395, 397, 400, 406], "octob": 389, "odd": [204, 206], "odd_npix": [204, 206], "odot": [28, 35, 39, 40, 52], "off": [102, 103, 105, 107, 108, 109, 110, 122, 123, 125, 168, 174, 175, 178, 181, 190, 290, 304, 377, 378, 383, 386, 392, 394, 395, 396, 425, 431, 433, 435, 445, 447, 450, 451, 452, 456, 457, 461, 465, 472, 473, 475, 477, 481, 483, 485, 491, 514, 527, 528, 577, 579, 580, 581], "off_2": [105, 110], "off_ev": 475, "off_patch": 475, "off_phas": [174, 475], "off_phase_rang": 475, "offdatabackgroundmak": 436, "offer": [123, 383, 391, 406, 407, 412, 413, 440, 457, 482, 483, 485, 489, 518], "offici": [406, 519, 578], "offlin": [87, 91], "offset": [83, 96, 112, 113, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 169, 173, 179, 180, 185, 188, 193, 194, 196, 198, 202, 205, 206, 380, 386, 394, 416, 425, 435, 437, 439, 444, 445, 446, 447, 450, 457, 458, 460, 463, 464, 465, 471, 475, 484, 485, 490, 493, 496, 503, 515, 523, 525, 528], "offset2": 83, "offset_axi": [153, 154, 155], "offset_band": 83, "offset_from_median": 83, "offset_index": 160, "offset_max": [16, 83, 169, 179, 185, 188, 456, 460, 461, 463, 465, 471, 475, 485, 502, 503, 525, 528], "offset_min": 83, "often": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 137, 280, 370, 371, 380, 385, 394, 395, 396, 398, 438, 450, 452, 456, 460, 461, 464, 465, 471, 477, 481, 483, 485, 487, 502, 503, 514, 518, 577], "ogip": [95, 106, 107, 110, 150, 195, 197, 198, 201, 202, 203, 392, 395, 438, 451, 455, 464, 514, 522, 531], "ogip_column": 202, "ogipdatasetread": 110, "ogipdatasetwrit": [110, 444, 446], "ok": [380, 394, 483], "old": [197, 365, 380, 385, 388, 392, 396, 397, 422, 423, 438, 439, 440, 478], "old_attribut": 380, "older": [387, 397, 413, 438, 480], "oldest": 400, "olga": [436, 437], "olivera": [428, 431, 433, 434, 442, 444, 445, 446, 447], "omega": [19, 20, 23, 262, 279, 493, 535, 571], "omit": [133, 381, 463, 493, 578], "omp": 400, "on_circl": 527, "on_ellipse_annulu": 527, "on_ev": 475, "on_patch": 475, "on_phas": [174, 475], "on_phase_rang": 475, "on_posit": 190, "on_radii": 450, "on_radiu": [465, 475], "on_rectangl": 527, "on_region": [16, 102, 105, 176, 450, 452, 455, 456, 457, 458, 460, 461, 463, 465, 467, 468, 472, 473, 475, 477, 481, 502, 527], "on_region_radiu": [450, 455, 458, 467, 468, 473, 477], "onc": [87, 91, 102, 204, 380, 383, 385, 390, 391, 394, 395, 396, 400, 401, 402, 404, 405, 409, 410, 411, 412, 414, 457, 473, 475, 485, 488, 495, 498, 515, 518, 578], "one": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 70, 84, 87, 89, 90, 91, 92, 93, 95, 99, 102, 104, 105, 108, 109, 110, 113, 118, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 135, 136, 141, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 175, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 282, 286, 288, 289, 290, 315, 320, 336, 351, 367, 373, 374, 380, 381, 382, 383, 385, 386, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 400, 402, 404, 405, 406, 407, 408, 409, 410, 411, 412, 439, 442, 443, 445, 447, 450, 452, 455, 456, 457, 460, 463, 467, 472, 474, 475, 478, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 502, 503, 504, 513, 514, 515, 516, 518, 523, 525, 527, 530, 531, 537, 575, 576, 578, 579, 580, 581, 582], "ones": [87, 91, 118, 122, 126, 130, 133, 150, 197, 384, 388, 392, 394, 397, 400, 408, 413, 416, 474, 478, 484, 486, 506, 525, 577, 578], "ones_lik": [475, 525], "ongo": [383, 386, 387, 410], "onli": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 70, 72, 74, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 95, 100, 101, 102, 103, 104, 105, 108, 109, 110, 122, 124, 125, 126, 130, 133, 134, 136, 143, 144, 151, 152, 156, 158, 163, 166, 169, 175, 180, 191, 192, 193, 194, 196, 198, 201, 202, 203, 204, 205, 206, 214, 215, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 273, 274, 275, 288, 290, 307, 327, 355, 377, 380, 381, 383, 385, 386, 387, 388, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 413, 421, 423, 427, 431, 433, 434, 439, 443, 445, 446, 447, 452, 453, 455, 456, 457, 460, 461, 463, 464, 466, 467, 468, 469, 472, 473, 474, 475, 477, 480, 481, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 503, 506, 514, 516, 522, 525, 528, 531, 573, 577, 578, 579, 580], "onlin": [87, 91, 381, 385, 388, 400, 416], "onlinelibrari": [135, 144], "onoff": [434, 514], "onserv": 93, "ontim": [186, 390, 467, 481], "onto": [105, 110, 193, 194, 196, 202, 204, 205, 206, 367, 386, 503, 514, 518, 530, 576], "oo": 406, "op": 396, "opac": 226, "open": [66, 87, 91, 380, 381, 383, 385, 391, 394, 397, 399, 400, 404, 405, 406, 409, 411, 412, 414, 416, 417, 438, 456, 464, 486, 493, 495, 496, 502, 513, 577, 578], "openastronomi": 439, "oper": [87, 91, 192, 204, 219, 380, 386, 391, 394, 426, 428, 431, 440, 441, 445, 451, 481, 488, 489, 530, 531, 544, 546, 550, 553, 555, 558, 563], "opinion": [385, 578], "oppos": [478, 554, 578], "opposit": [193, 194], "opt": [89, 480, 544, 554], "opt_method": 483, "optic": [226, 394, 451, 544], "optim": [19, 20, 26, 101, 131, 133, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 373, 379, 380, 389, 392, 393, 402, 404, 452, 453, 455, 456, 457, 458, 459, 463, 464, 465, 475, 477, 478, 482, 483, 491, 494, 502, 503], "optimis": [19, 20, 211, 212, 213, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 394, 396, 398, 440, 447, 516, 575], "optimize_opt": [211, 463, 471, 482, 483, 503], "optimize_result": [211, 212, 445], "optimizeresult": [101, 211, 212, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503], "optin": 406, "optinon": [109, 110], "option": [11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 67, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 140, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 174, 175, 176, 177, 180, 181, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 279, 280, 282, 284, 286, 287, 288, 289, 290, 294, 295, 296, 298, 303, 304, 305, 307, 318, 328, 331, 334, 335, 336, 337, 339, 340, 343, 348, 349, 351, 362, 363, 367, 368, 369, 374, 375, 376, 377, 380, 383, 385, 386, 388, 389, 391, 392, 394, 396, 398, 400, 403, 407, 410, 411, 412, 413, 414, 420, 421, 422, 425, 427, 428, 431, 433, 437, 439, 440, 441, 442, 444, 445, 446, 447, 459, 463, 471, 472, 474, 480, 481, 485, 486, 487, 489, 490, 493, 494, 502, 503, 514, 516, 518, 530, 531, 573, 577, 578], "option1": 381, "option2": 381, "option3": 381, "option_context": [87, 91], "optionali": 538, "optout": 406, "optpars": 385, "oral": 406, "orang": [381, 455, 463, 469, 472, 475, 479, 482, 491, 527], "orchestr": [386, 390, 392, 396, 456, 502, 503], "orcid": 406, "order": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 87, 91, 94, 100, 101, 102, 105, 125, 136, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 163, 165, 166, 169, 173, 180, 183, 184, 189, 191, 192, 193, 194, 196, 197, 201, 202, 203, 204, 205, 206, 273, 286, 307, 377, 380, 381, 386, 391, 392, 394, 395, 396, 397, 404, 405, 406, 408, 421, 422, 423, 424, 425, 426, 427, 428, 431, 447, 455, 456, 457, 459, 463, 464, 467, 475, 480, 483, 484, 485, 486, 489, 495, 502, 503, 504, 529, 530, 531, 578, 581], "ordereddict": [386, 397, 424], "ordinari": 504, "org": [11, 34, 63, 64, 65, 83, 87, 88, 91, 179, 211, 253, 254, 268, 269, 295, 307, 383, 388, 397, 400, 405, 406, 409, 411, 412, 414, 418, 437, 439, 450, 458, 460, 463, 464, 465, 471, 474, 479, 480, 483, 493, 561, 562, 578], "organ": [384, 400, 405, 406, 431, 495, 496, 515, 530], "organis": [387, 396, 399, 406, 439], "orient": [148, 156, 157, 380, 391], "origin": [16, 41, 84, 87, 90, 91, 102, 104, 109, 123, 124, 125, 194, 206, 271, 273, 275, 390, 394, 406, 407, 409, 437, 456, 460, 461, 463, 473, 478, 486, 489, 494, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 581, 582], "orthogon": 340, "oscar": [439, 440], "osx": 427, "other": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 67, 69, 83, 84, 86, 87, 90, 91, 102, 104, 105, 109, 110, 123, 124, 126, 130, 131, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 175, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 215, 217, 273, 287, 307, 320, 350, 369, 374, 379, 383, 385, 387, 388, 389, 391, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 404, 406, 407, 411, 439, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 515, 516, 518, 523, 525, 527, 531, 546, 575, 576, 578, 582], "other_id": 452, "otherwis": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 87, 90, 91, 102, 104, 105, 109, 110, 124, 161, 200, 204, 206, 208, 214, 215, 216, 217, 224, 247, 278, 307, 373, 393, 403, 406, 447, 488, 489, 494, 545], "otitipcu": 477, "oup": [137, 303], "our": [380, 383, 389, 394, 396, 397, 399, 402, 403, 404, 406, 421, 422, 438, 447, 450, 452, 455, 456, 457, 460, 461, 463, 464, 465, 468, 473, 474, 475, 477, 486, 487, 491, 495, 502, 503, 578], "ourself": 504, "out": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 92, 94, 100, 101, 125, 193, 194, 196, 202, 205, 206, 247, 260, 261, 379, 380, 381, 383, 385, 388, 390, 392, 394, 396, 398, 399, 400, 405, 409, 416, 417, 419, 425, 439, 453, 457, 460, 461, 477, 486, 487, 493, 494, 502, 504, 506, 507, 527, 540, 541, 575, 578, 582], "out_fold": 396, "outcom": [385, 394], "outdat": [397, 400], "outdir": [16, 82, 93, 456, 460, 461, 463, 502], "outer": [43, 44, 52, 53, 127, 168, 260, 541], "outer_height": [527, 531], "outer_width": [527, 531], "outfil": 380, "outflow": 203, "outlin": [102, 105, 109, 110, 220, 221, 225, 234, 237, 251, 260, 261, 275, 383, 385, 388, 389, 390, 391, 394, 400, 403], "output": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 83, 84, 86, 87, 88, 90, 91, 93, 104, 124, 141, 142, 150, 155, 193, 194, 196, 202, 205, 206, 212, 224, 239, 247, 289, 336, 381, 388, 390, 393, 396, 397, 401, 404, 407, 420, 435, 441, 444, 445, 447, 463, 467, 468, 471, 474, 482, 485, 486, 502, 503, 516, 518, 578, 579], "output_map": [193, 194, 196, 202, 205, 206], "output_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "outsid": [87, 91, 102, 105, 109, 110, 115, 117, 150, 170, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 214, 216, 226, 276, 320, 368, 380, 394, 395, 396, 431, 461, 482, 483, 485, 486, 487, 518, 525, 537, 563], "over": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 83, 87, 88, 91, 92, 95, 101, 102, 105, 109, 110, 126, 133, 137, 150, 151, 161, 163, 166, 173, 180, 183, 184, 186, 187, 193, 194, 196, 197, 198, 202, 204, 205, 206, 224, 247, 279, 288, 290, 294, 318, 319, 332, 371, 380, 381, 385, 388, 389, 390, 393, 394, 395, 400, 403, 407, 411, 413, 431, 452, 455, 459, 461, 463, 466, 467, 474, 480, 481, 482, 485, 486, 489, 503, 504, 516, 518, 522, 579, 580], "overal": [388, 394, 447, 455], "overcom": 487, "overestim": [516, 580], "overflow": [203, 457, 474, 477, 566], "overkil": 474, "overlai": [456, 482], "overlaid": [102, 105, 109, 110, 455, 456], "overlap": [86, 91, 115, 117, 130, 181, 198, 203, 377, 395, 455], "overlap_ok": 86, "overlin": [102, 109, 514], "overload": 431, "overplot": [480, 513], "overrid": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 347, 391, 455, 457, 465, 469], "overridden": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 124, 201, 377], "oversampl": [103, 108, 161, 163, 166, 173, 180, 186, 192, 193, 194, 196, 201, 202, 205, 206, 221, 225, 234, 237, 238, 239, 249, 260, 261, 263, 265, 271, 275, 277, 282, 422, 485], "oversample_energy_factor": [103, 108, 468], "oversampling_factor": [194, 204, 220, 221, 225, 234, 237, 238, 239, 249, 251, 260, 261, 263, 265, 271, 275, 277], "overview": [6, 383, 410, 425, 426, 428, 431, 449, 475, 482, 486, 489, 498, 504, 505, 518, 519, 532, 579], "overwrit": [11, 15, 16, 19, 20, 26, 82, 88, 93, 100, 101, 102, 105, 107, 109, 110, 123, 125, 151, 152, 158, 163, 166, 191, 192, 193, 194, 196, 198, 200, 201, 202, 203, 204, 205, 206, 212, 214, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 271, 272, 273, 274, 275, 327, 349, 404, 440, 442, 447, 455, 456, 463, 464, 467, 468, 469, 484, 486, 487, 488, 489, 493, 494, 500, 502, 503, 514, 531, 542, 578], "overwrite_templ": [212, 224, 247], "overwritten": [163, 166, 319], "owen": [419, 432], "own": [87, 91, 99, 123, 125, 200, 202, 383, 386, 396, 402, 406, 431, 450, 467, 489, 494, 503, 518, 530, 531], "p": [38, 51, 54, 87, 91, 109, 110, 129, 293, 304, 380, 431, 456, 466, 479, 483, 502, 518, 523, 524, 580], "p0_birth": 43, "p90": 48, "p_": [520, 522, 523, 524], "p_0": [51, 193, 196, 202, 205, 206, 510], "p_dot": [51, 54], "p_i": [193, 196, 202, 205, 206], "p_lat": [193, 196, 202, 205, 206], "p_lon": [193, 196, 202, 205, 206], "p_mean": 42, "p_n": [193, 196, 202, 205, 206], "p_stdv": 42, "p_valu": [288, 290, 483, 578, 580], "pace": [388, 389], "packag": [6, 11, 141, 307, 344, 379, 380, 381, 383, 384, 385, 386, 387, 388, 389, 394, 397, 398, 400, 405, 406, 407, 409, 411, 415, 416, 417, 418, 419, 421, 424, 425, 427, 428, 431, 434, 435, 436, 437, 438, 439, 440, 442, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 517, 518, 519, 526, 531, 542, 550, 552, 566, 578, 582], "pacman": 436, "paczynski": 37, "paczynski1990": [28, 29, 30, 35, 37, 39, 40, 48], "paczynski1990veloc": 49, "pad": [87, 91, 102, 105, 109, 110, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 173, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 204, 205, 206, 368, 428, 431], "pad_width": [102, 109, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206], "pad_with": [193, 194, 196, 202, 205, 206], "page": [6, 87, 91, 211, 291, 297, 304, 381, 383, 385, 392, 394, 397, 400, 406, 409, 410, 412, 413, 417, 425, 426, 431, 434, 435, 438, 439, 440, 441, 447, 483, 486, 496, 498, 516, 518, 529, 531, 579, 582], "pain": [380, 383, 387], "pair": [16, 84, 90, 102, 104, 105, 109, 110, 123, 124, 125, 137, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 396, 451], "panda": [87, 91, 379, 397, 440, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "panel": [88, 101, 102, 105, 109, 110, 367, 434, 467, 483], "panel_fov": 367, "panni": 431, "papadopoulo": [431, 433], "paper": [57, 59, 63, 72, 74, 126, 179, 400, 406, 440, 473, 478, 480, 485, 495, 506], "papermil": 396, "par": [391, 403, 408, 451, 477, 483, 491, 493], "par_000_amplitud": 483, "par_001_alpha": 483, "par_002_beta": 483, "par_00x_": 391, "par_1": [211, 483], "par_2": [211, 483], "par_alpha": [211, 483], "par_beta": [211, 483], "par_box": 91, "par_nam": [224, 232, 247, 263, 273], "par_to_v": 493, "par_typ": [224, 232, 247, 263, 273], "parabol": [287, 320, 483], "parabola": [241, 242, 449, 464, 483, 532, 564], "paragraph": 385, "parallel": [6, 93, 126, 127, 130, 133, 169, 322, 323, 324, 325, 326, 327, 328, 383, 397, 410, 433, 445, 446, 447, 459, 481], "parallel_backend": [93, 126, 127, 130, 133, 169, 327, 469], "parallelbackendenum": 322, "parallelmixin": [93, 126, 133, 169], "param": [16, 84, 90, 104, 124, 226, 276, 373, 396, 426, 483], "param_nam": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "param_pair": 483, "param_set": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "paramet": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 284, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 302, 303, 304, 305, 306, 307, 309, 311, 313, 314, 316, 318, 319, 320, 321, 327, 328, 329, 331, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 373, 374, 375, 376, 377, 378, 380, 381, 389, 392, 393, 395, 396, 398, 399, 402, 404, 406, 417, 420, 421, 422, 423, 424, 425, 427, 428, 431, 433, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 474, 475, 477, 479, 480, 481, 482, 484, 485, 490, 491, 493, 494, 503, 504, 506, 514, 516, 517, 518, 525, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581], "parameter": 489, "parameter_constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "parameter_nam": 381, "parameter_name_scan": 211, "parameter_typ": 381, "parameterestim": [119, 427, 446], "parameteris": [520, 522], "parameters_list": [215, 217], "parameters_nam": [224, 247], "parameters_stat_sum": 408, "parameters_unique_nam": [19, 20, 26, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 483], "parametr": [16, 27, 84, 90, 101, 104, 124, 153, 154, 159, 162, 164, 241, 242, 260, 392, 396, 403, 421, 428, 431, 457, 459, 489, 493, 540, 541, 552], "parametricpsf": [154, 162, 431, 433], "parametris": [162, 403, 425, 522, 524, 535, 536, 537, 538, 545, 548, 549, 550, 551, 552, 553, 555, 556, 557, 558, 559, 560, 561, 562, 565, 566, 567, 568, 569, 570, 571, 572, 573], "parent": [16, 84, 90, 104, 118, 122, 124, 126, 130, 133, 204, 380, 390, 407, 473, 482, 516, 554], "parenthes": [391, 397, 443, 445], "parfiv": [397, 424], "parnam": 491, "pars": [16, 84, 85, 90, 104, 124, 192, 201, 381, 394, 447, 450, 458, 460, 463, 465, 471, 474, 487, 493, 578], "parse_arg": 578, "parse_fil": [16, 84, 90, 104, 124], "parse_obj": [16, 84, 90, 104, 124], "parse_raw": [16, 84, 90, 104, 124], "parseabl": 307, "parser": 578, "part": [101, 380, 383, 386, 389, 391, 393, 394, 395, 396, 398, 399, 400, 405, 406, 412, 414, 421, 425, 426, 427, 435, 440, 445, 446, 450, 452, 455, 463, 471, 480, 481, 486, 487, 503, 504, 518, 523, 527], "parti": 385, "partial": [91, 102, 105, 151, 152, 158, 163, 166, 169, 192, 204, 206, 273, 394, 398, 426, 440, 529], "partial_overlap": 91, "particip": [385, 389, 400], "particl": [19, 26, 248, 279, 427, 506, 554], "particle_distribut": [248, 554], "particular": [87, 91, 380, 386, 393, 395, 402, 404, 405, 407, 428, 431, 442, 443, 452, 455, 456, 457, 458, 460, 464, 467, 473, 474, 478, 483, 485, 488, 493, 495, 496, 502, 503, 515, 518, 525, 527, 531, 580], "particularli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "partli": [383, 389, 390, 394, 400, 401], "pass": [15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 42, 45, 46, 47, 68, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 101, 102, 104, 105, 108, 109, 110, 124, 125, 128, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 170, 178, 186, 191, 192, 193, 194, 196, 198, 200, 201, 202, 204, 205, 206, 209, 210, 211, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 287, 289, 307, 319, 327, 328, 329, 334, 335, 336, 337, 367, 368, 373, 375, 376, 380, 383, 390, 392, 393, 394, 395, 407, 427, 431, 433, 445, 446, 447, 452, 453, 455, 456, 463, 464, 468, 472, 473, 478, 480, 481, 483, 484, 485, 486, 487, 489, 490, 493, 502, 503, 504, 518, 529, 530, 531, 535, 536, 578, 582], "pass4": 495, "passkwarg": [457, 477], "past": [380, 385, 388, 396, 397, 400, 401, 403, 406, 408, 416, 437, 439, 440, 486, 578], "patch": [377, 380, 387, 406, 434, 443, 455, 457, 465, 469, 475], "path": [11, 15, 16, 66, 82, 83, 84, 86, 87, 88, 90, 91, 93, 100, 104, 106, 107, 110, 124, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 167, 193, 194, 196, 201, 202, 205, 206, 212, 224, 239, 247, 274, 315, 344, 345, 346, 349, 380, 383, 415, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 516, 572, 573, 578], "path_effect": [201, 224, 247], "path_to_notebook": 380, "path_to_script": 380, "patheffect": [201, 224, 247], "pathlib": [16, 82, 83, 86, 87, 91, 150, 202, 212, 224, 247, 345, 455, 456, 463, 464, 467, 468, 493, 502, 503], "pathpatch": 469, "pattern": [380, 386, 394], "paula": 446, "paulakx": 446, "paz": [432, 435, 436], "pbar": 518, "pc": [46, 47, 50, 52, 511, 512], "pcolormesh": [83, 125, 147, 148, 150, 153, 154, 155, 160, 162, 164, 165, 438, 444, 483, 484], "pd": [87, 91], "pdf": [150, 154, 179, 253, 254, 268, 269, 329, 373, 381, 464, 467, 479, 508, 510, 511, 512, 514, 515, 520, 521, 522, 524, 527, 531, 561, 562, 580, 583], "pdf_in_safe_rang": 150, "pdf_matrix": 150, "pdf_threshold": [150, 151, 155], "pdflatex": 381, "peak": [68, 128, 141, 142, 150, 179, 230, 236, 238, 242, 433, 439, 446, 459, 478, 480, 485, 541], "peak_bright": 68, "peak_brightness_error": 68, "peak_latitud": 68, "peak_latitude_error": 68, "pedant": 380, "peek": [83, 88, 102, 105, 109, 110, 128, 129, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 380, 392, 416, 428, 434, 438, 442, 452, 457, 463, 467, 468, 475, 481, 484, 493, 495, 496, 515, 518, 520, 521, 522, 524], "pei": 447, "penalti": 491, "peopl": [385, 387, 400, 406, 409, 410, 479, 506, 518, 578], "pep": 385, "pep8": 383, "per": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 99, 101, 102, 105, 109, 110, 112, 113, 122, 123, 125, 126, 127, 130, 131, 135, 141, 144, 145, 146, 163, 166, 198, 231, 239, 240, 282, 291, 297, 304, 380, 386, 392, 393, 396, 404, 406, 407, 419, 427, 431, 433, 446, 450, 458, 467, 471, 472, 474, 479, 485, 486, 490, 491, 495, 496, 514, 518, 521, 525, 577, 579], "per_decad": [198, 455, 457, 467, 468, 475, 481, 494, 522, 528], "percent": 132, "percentag": [150, 179, 485], "percentil": 83, "peresano": 447, "perfect": 150, "perfectli": [536, 578], "perform": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 85, 87, 90, 91, 94, 100, 104, 108, 124, 170, 178, 192, 204, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 288, 290, 343, 346, 373, 380, 381, 386, 389, 390, 391, 395, 396, 404, 407, 409, 410, 412, 421, 428, 431, 433, 436, 440, 443, 445, 446, 447, 450, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 466, 468, 471, 472, 473, 474, 477, 481, 483, 485, 486, 487, 488, 490, 495, 498, 502, 514, 518, 526, 527, 530, 536, 554, 576, 577, 578, 579], "perhap": 531, "period": [42, 51, 54, 198, 274, 387, 406, 439, 447, 490, 510], "period_dot": 51, "periodicmapaxi": 447, "periodogram": [289, 395, 440, 447], "permit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 406], "perseu": [33, 38], "person": [380, 383, 385, 387, 388, 389, 393, 398, 401], "perspect": [87, 91], "pertain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "peter": 439, "pf": 26, "pformat": [87, 91], "pformat_al": [87, 91], "pg": 504, "ph": 365, "pha": [106, 107, 110, 202, 392, 437, 440, 455, 464], "pha_": 481, "pha_meta": 106, "pha_ob": [106, 146, 211, 464, 482, 483], "pha_obs23523": [109, 110, 131, 286, 491, 516], "pha_obs23592": 516, "phacountsspectrum": 423, "phacountsspectrumlist": 422, "phase": [50, 52, 53, 89, 171, 174, 274, 385, 390, 391, 394, 395, 397, 399, 404, 416, 421, 440, 442, 445, 447, 449, 489, 507, 518, 532, 574], "phase_axi": 404, "phase_bkg_mak": 475, "phase_column_nam": [174, 475], "phase_curve_model": 572, "phase_filt": 89, "phase_max": 475, "phase_min": 475, "phase_model": 572, "phasebackgroundestim": 425, "phasebackgroundmak": [171, 425, 445, 447, 475], "phasecurv": [274, 439, 572], "phasecurve_lsi_dc": 572, "phasecurvemodel": 403, "phasecurvetablemodel": [391, 393], "phasecurvetempl": 391, "phasogram": [274, 572], "phi": [19, 20, 26, 199, 218, 219, 222, 225, 226, 228, 229, 230, 234, 237, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 311, 403, 471, 488, 489, 494, 504, 523, 535, 536, 537, 539, 540, 541, 545, 547, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562], "phi_0": [218, 220, 221, 225, 228, 229, 230, 234, 237, 241, 242, 249, 251, 253, 254, 260, 261, 264, 265, 267, 268, 269, 271, 275, 403, 483, 545, 548, 549, 552, 556, 559, 560, 561, 562], "phi_ref": [274, 572], "philipp": [439, 440], "phone": 400, "photon": [44, 226, 248, 365, 395, 451, 458, 467, 471, 487, 489, 504, 523, 554, 577], "photutil": [141, 380, 394, 440], "php": 63, "physic": [126, 127, 130, 133, 327, 328, 379, 404, 408, 422, 456, 464, 486, 489, 491, 493, 502, 516, 518, 554, 577, 580, 581], "pi": [19, 20, 30, 31, 32, 37, 54, 235, 279, 403, 489, 512, 535, 536, 537, 540, 541, 551, 571], "pick": [380, 387, 394, 405, 421, 504], "pictur": 381, "pie": 518, "piec": [380, 386, 394, 399, 408], "piecewis": [249, 250, 449, 489, 532, 543, 564], "piecewisebrokenpowerlawnormspectralmodel": 403, "piecewisebrokenpowerlawnormspectramodel": 403, "piecewisenormsectralmodel": 428, "piecewisenormspatialmodel": [257, 445, 447, 489, 538], "piecewisenormspectralmodel": [258, 408, 428, 431, 444, 446, 489, 525, 555], "pig": [13, 380, 382, 383, 420, 421, 423, 424, 425, 427, 428, 439, 441, 442, 446], "pii": [135, 144], "pillar": 396, "pin": 440, "pink": [109, 110], "pint": [475, 518], "pintor": [393, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 442, 444, 445, 446, 447], "pip": [379, 383, 387, 397, 411, 412, 414, 421, 440, 493, 578], "pipe": [436, 437, 438], "pipelin": [393, 395, 427], "piron": 577, "piron2001": 577, "pivot": [19, 20, 26, 67, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 446, 480], "pivot_energi": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "pix": [191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 530], "pix_reg": 479, "pix_reg_rec": 479, "pix_to_coord": [191, 192, 195, 197, 198, 201, 203, 204, 446], "pix_to_idx": [191, 192, 195, 197, 198, 201, 203, 204], "pix_tuple_to_idx": 447, "pixcoord": 394, "pixel": [13, 83, 102, 105, 109, 110, 112, 113, 114, 118, 128, 141, 142, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 176, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 391, 419, 423, 437, 440, 459, 467, 469, 481, 485, 486, 494, 504, 514, 516, 528, 529, 530, 539], "pixel_area": 204, "pixel_scal": [118, 192, 204], "pixelis": 530, "pixelregion": [394, 527], "pixilis": 486, "pixreg": 537, "pixregion": 206, "pk": [137, 426, 451, 473, 474, 477, 478, 480, 490, 504, 544], "pks2155": [451, 473, 477], "pks2155_hess_lc": [123, 125, 145, 478, 482], "pl": [67, 80, 122, 127, 133, 170, 245, 252, 253, 254, 403, 453, 459, 469, 473, 480, 481, 482, 489, 504], "pl_model": 570, "pl_spectrum": 491, "place": [83, 86, 87, 91, 92, 100, 102, 105, 109, 110, 141, 147, 148, 149, 150, 151, 152, 153, 157, 158, 163, 165, 166, 176, 181, 193, 194, 196, 202, 205, 206, 247, 273, 303, 353, 380, 381, 387, 388, 391, 392, 393, 394, 396, 399, 400, 401, 402, 405, 410, 424, 426, 455, 472, 486, 487, 489, 504, 514, 515, 576, 582], "placehold": 385, "plai": [400, 465], "plain": [397, 486], "plan": [384, 385, 389, 390, 394, 396, 397, 400, 405, 409, 420, 437, 439, 440, 441, 575], "planar": [275, 391], "plane": [29, 67, 68, 126, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 400, 479, 480, 486, 493, 513, 528, 531, 536, 577, 583], "plate": [204, 486], "platform": [397, 406, 431], "plausibl": [407, 466], "pleas": [103, 108, 381, 383, 385, 387, 389, 415, 420, 421, 422, 431, 439, 441, 447, 453, 455, 456, 457, 458, 460, 463, 467, 468, 473, 474, 478, 481, 482, 502, 507, 518], "pleasant": 383, "plot": [6, 19, 20, 26, 66, 67, 83, 88, 101, 102, 105, 109, 110, 125, 128, 129, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 165, 166, 193, 194, 195, 196, 198, 201, 202, 203, 205, 206, 209, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 280, 284, 358, 367, 368, 372, 373, 374, 375, 376, 377, 378, 379, 381, 394, 395, 396, 398, 399, 401, 404, 416, 419, 422, 425, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 444, 445, 446, 447, 450, 452, 453, 457, 459, 460, 461, 463, 464, 468, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 487, 489, 490, 491, 493, 494, 495, 496, 502, 504, 508, 510, 511, 512, 514, 518, 520, 521, 522, 524, 527, 572, 573, 577, 580, 582], "plot_absorb": [449, 544, 564], "plot_at_energi": [147, 148, 493], "plot_bia": [150, 155], "plot_broken_powerlaw": [449, 545, 564], "plot_compound": [449, 546, 564], "plot_const": [449, 534, 543], "plot_constant_spectr": [449, 547, 564], "plot_constant_tempor": [449, 565, 574], "plot_containment_radiu": [154, 160, 162, 164], "plot_containment_radius_vs_energi": [154, 160, 162, 163, 164, 166, 493, 494], "plot_contour_lin": 483, "plot_correl": [209, 483], "plot_count": [109, 110], "plot_dat": 582, "plot_disk": [449, 535, 543], "plot_distribut": [447, 461, 463], "plot_energi": [83, 468], "plot_energy_depend": [147, 153, 493, 520], "plot_energy_offset": 83, "plot_err": 128, "plot_error": [19, 20, 26, 66, 67, 101, 218, 219, 220, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 259, 260, 261, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 398, 451, 453, 455, 457, 463, 464, 466, 480, 483, 503], "plot_excess": [109, 110, 434], "plot_exp_cutoff_powerlaw": [449, 548, 564], "plot_exp_cutoff_powerlaw_3fgl": [449, 549, 564], "plot_exp_cutoff_powerlaw_norm_spectr": [449, 550, 564], "plot_expdecay_tempor": [449, 566, 574], "plot_extension_error": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275], "plot_fit": [101, 109, 110, 452, 455, 456, 457, 465, 475, 502], "plot_gauss": [449, 536, 543], "plot_gauss_spectr": [449, 551, 564], "plot_gaussian_tempor": [449, 567, 574], "plot_gen_gauss": [449, 537, 543], "plot_generalized_gaussian_tempor": [449, 568, 574], "plot_grid": [161, 193, 194, 196, 202, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 404, 433, 444, 463, 481, 484, 485, 486, 487, 489, 495], "plot_heatmap": 209, "plot_hist": [202, 531], "plot_imag": 83, "plot_interact": [193, 194, 196, 202, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 433, 440, 463, 471, 486, 502, 503], "plot_kernel": 161, "plot_kwarg": [455, 457, 465], "plot_linear_tempor": [449, 569, 574], "plot_logparabola": [449, 552, 564], "plot_logparabola_norm_spectr": [449, 553, 564], "plot_map_rgb": 445, "plot_mask": [109, 110, 194, 202, 206, 527], "plot_matrix": [150, 481, 494], "plot_migr": 155, "plot_naima": [449, 554, 564], "plot_npred_sign": [445, 463, 465, 503], "plot_offset2_distribut": 83, "plot_offset_depend": [147, 153], "plot_panel": 367, "plot_phasogram": 274, "plot_piecewise_norm_spati": [449, 538, 543], "plot_piecewise_norm_spectr": [449, 555, 564], "plot_point": [449, 539, 543], "plot_posit": [224, 247, 488], "plot_position_error": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275], "plot_powerlaw": [449, 556, 564], "plot_powerlaw2": [449, 557, 564], "plot_powerlaw_norm_spectr": [449, 558, 564], "plot_powerlaw_tempor": [449, 570, 574], "plot_profil": 128, "plot_psf_vs_rad": [154, 160, 162, 163, 164, 166, 494], "plot_rad_max_vs_energi": [165, 447, 457], "plot_region": [201, 202, 224, 247, 377, 457, 469, 488, 527, 531], "plot_residu": [101, 102, 105, 109, 110, 429, 431, 463, 503], "plot_residuals_spati": [102, 105, 109, 110, 463, 471, 503], "plot_residuals_spectr": [102, 105, 109, 110], "plot_rgb": 445, "plot_shel": [449, 540, 543], "plot_shell2": [449, 541, 543], "plot_sine_tempor": [449, 571, 574], "plot_smooth_broken_powerlaw": [449, 559, 564], "plot_spati": 431, "plot_spectrum": [101, 147, 463, 474, 481], "plot_spectrum_datasets_off_region": [428, 444, 445, 455, 457, 465, 527], "plot_stat": 455, "plot_super_exp_cutoff_powerlaw_3fgl": [449, 560, 564], "plot_super_exp_cutoff_powerlaw_4fgl": [449, 561, 564], "plot_super_exp_cutoff_powerlaw_4fgl_dr1": [449, 562, 564], "plot_templ": [449, 542, 543], "plot_template_phase_tempor": [449, 572, 574], "plot_template_spectr": [449, 563, 564], "plot_template_tempor": [449, 573, 574], "plot_theta_squared_t": 496, "plot_tim": 83, "plot_ts_profil": [125, 455, 456, 469, 472, 482], "plotmixin": [109, 110], "plotter": 367, "plsuperexpcutoff3fgl": 438, "plsuperexpcutoff4fgl": 423, "plt": [19, 20, 26, 66, 67, 129, 147, 153, 154, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 368, 377, 380, 381, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 527, 535, 537, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571], "plu": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 225, 400, 406, 489], "pmf": 393, "png": [154, 388, 416, 508, 510, 511, 512, 514, 515, 520, 521, 522, 524, 527, 531, 580, 583], "po": [152, 204, 527], "point": [15, 17, 18, 21, 22, 24, 25, 27, 61, 65, 67, 71, 72, 73, 74, 75, 77, 78, 79, 80, 82, 83, 85, 87, 88, 90, 91, 94, 95, 96, 99, 100, 101, 102, 104, 105, 109, 110, 112, 113, 119, 123, 125, 126, 127, 130, 131, 132, 133, 134, 138, 143, 145, 152, 154, 157, 163, 165, 166, 176, 177, 179, 180, 181, 183, 184, 186, 187, 189, 190, 193, 194, 196, 201, 202, 205, 206, 211, 224, 247, 251, 263, 282, 286, 289, 295, 309, 313, 319, 325, 335, 372, 380, 382, 383, 385, 386, 387, 388, 389, 390, 392, 393, 394, 396, 397, 400, 401, 402, 403, 404, 405, 406, 407, 409, 412, 419, 422, 424, 425, 431, 433, 434, 436, 437, 438, 439, 441, 444, 445, 446, 449, 452, 454, 457, 458, 459, 463, 468, 469, 471, 472, 473, 474, 475, 477, 481, 483, 484, 485, 486, 489, 490, 494, 496, 498, 506, 507, 513, 514, 515, 518, 523, 527, 530, 532, 536, 537, 543, 554, 575, 576, 577], "point_sourc": 391, "pointer": 388, "pointing_altaz": [407, 445], "pointing_galact": 91, "pointing_info": [85, 94, 450], "pointing_posit": [163, 458, 468, 471], "pointing_radec": [83, 91, 445, 493], "pointing_t": 94, "pointing_zen": 445, "pointinginfo": [85, 437], "pointinginfometadata": [90, 104], "pointingmetadata": 407, "pointingmod": 85, "pointlik": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 439, 527], "points_scal": 319, "pointskyregion": [175, 180, 201, 251, 434, 457, 468], "pointsourc": [391, 506], "pointspatialmodel": [19, 20, 72, 80, 133, 257, 403, 404, 424, 444, 459, 460, 463, 464, 467, 468, 472, 480, 481, 488, 489, 494, 502, 503, 539], "pointspreadfunct": 484, "poisson": [105, 110, 288, 289, 290, 291, 297, 300, 301, 304, 337, 392, 393, 422, 427, 453, 458, 461, 471, 577, 578, 580], "poissonian": [289, 475, 478, 577], "poissonlikelihoodfitt": 436, "polar": [51, 54, 308, 380], "pole": [51, 394, 486], "poli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 194], "polici": 384, "pollut": 395, "polygon": [194, 208, 394], "polygonis": 394, "polygonpixelregion": 394, "polygonskyregion": [208, 394], "polynomi": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 244, 486], "polynomial1d": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "polynomialmodel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "pool": [323, 327, 328], "pool_kwarg": [327, 328], "poolmethodenum": 323, "poon": 437, "poorli": [485, 525], "pop": [92, 100, 200, 247], "popitem": 200, "popul": [6, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 381, 400, 438, 507, 509, 554, 576], "popular": 578, "port": 438, "pos_ob": 465, "pos_on": 190, "pos_target": [465, 475], "posit": [16, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 87, 90, 91, 94, 95, 96, 102, 103, 104, 105, 108, 112, 113, 123, 124, 125, 126, 127, 130, 131, 133, 151, 152, 158, 161, 163, 166, 176, 179, 181, 190, 192, 193, 194, 196, 201, 202, 203, 204, 205, 206, 207, 214, 215, 216, 217, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 286, 288, 290, 305, 306, 309, 310, 313, 314, 368, 380, 387, 391, 393, 394, 403, 404, 405, 406, 421, 423, 428, 431, 433, 446, 447, 450, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 474, 475, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 496, 504, 514, 515, 516, 518, 523, 524, 527, 528, 529, 531, 535, 536, 537, 539, 554, 580], "position_angl": 458, "position_error": [220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 425], "position_lonlat": [220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "position_off": 190, "positv": 442, "posixpath": [16, 344], "possibl": [33, 82, 87, 91, 136, 156, 380, 381, 383, 387, 388, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 404, 407, 409, 410, 412, 422, 423, 431, 438, 440, 445, 447, 451, 455, 459, 460, 461, 466, 469, 481, 483, 484, 485, 486, 494, 503, 504, 516, 518, 525, 530, 531, 554, 578, 579], "possibli": [87, 91, 123, 386, 390, 391, 393, 394, 398, 399, 400, 401, 407, 409, 431, 525], "post": [52, 389, 407], "postbuild": 409, "poster": [383, 406, 410, 435], "posterior": [398, 491], "posteriori": 491, "postfix": 380, "potenti": [120, 388, 396, 466, 518], "potentiel": 406, "power": [19, 20, 26, 27, 101, 118, 123, 125, 127, 132, 140, 161, 163, 166, 192, 214, 216, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 264, 266, 267, 268, 269, 272, 276, 279, 284, 289, 334, 391, 393, 419, 425, 437, 439, 447, 449, 451, 458, 460, 463, 467, 469, 471, 473, 474, 475, 477, 488, 489, 491, 518, 532, 544, 564, 570], "power_spectrum": 289, "power_spectrum_param": 289, "powerlaw": [179, 253, 255, 289, 391, 392, 396, 437, 439, 449, 452, 460, 468, 469, 480, 489, 491, 503, 532, 558, 574], "powerlaw2spectralmodel": [245, 253, 254, 258, 403, 453, 460, 489, 504, 557], "powerlaw_with_paramet": 289, "powerlawnormspectralmodel": [67, 232, 252, 254, 258, 273, 402, 403, 408, 428, 446, 463, 464, 467, 468, 471, 481, 488, 489, 494, 502, 525, 538, 558, 563], "powerlawspectr": 133, "powerlawspectralmodel": [70, 72, 76, 80, 101, 109, 110, 115, 117, 122, 125, 131, 133, 215, 217, 252, 253, 258, 280, 403, 404, 408, 451, 452, 453, 456, 458, 459, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 488, 489, 491, 493, 494, 502, 503, 504, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 546, 555, 556, 565, 566, 567, 568, 569, 570, 571, 572, 573], "powerlawspectramodel": 408, "powerlawtemporalmodel": [270, 489, 570], "pppc4dm": 506, "pppc4dmid": 26, "pprint": [87, 91, 579], "pprint_al": [87, 91], "pprint_exclude_nam": [87, 91], "pprint_include_nam": [87, 91], "pr": [380, 390, 392, 394, 403, 404, 406, 408, 409, 425, 426], "practic": [393, 397, 401, 404, 405, 406, 407, 455, 481, 487, 489, 503, 514, 518, 527, 577], "prcohanz": 477, "pre": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 101, 104, 108, 124, 125, 380, 383, 389, 400, 406, 407, 411, 412, 428, 440, 442, 456, 460, 461, 464, 466, 469, 478, 480, 482, 483, 488, 491, 514, 520], "preced": [325, 394, 396, 406, 489], "precis": [133, 154, 160, 162, 164, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 380, 398, 405, 406, 468], "precision_factor": [163, 166, 193, 194, 196, 202, 205, 206], "precomput": [26, 101, 125, 447, 481, 488], "pred": 514, "predefin": [412, 414, 433, 469, 472, 473, 502], "predic": 391, "predict": [101, 102, 105, 108, 109, 110, 122, 123, 125, 126, 127, 130, 131, 140, 170, 173, 179, 186, 251, 263, 292, 329, 376, 386, 391, 392, 393, 428, 445, 446, 451, 456, 458, 460, 461, 463, 465, 467, 469, 471, 481, 482, 485, 491, 502, 503, 516, 518, 522, 525, 544, 577, 580], "prefer": [87, 91, 355, 380, 385, 387, 391, 399, 400, 406, 411, 412, 416, 469, 474, 486, 487, 491, 498, 578, 580], "prefix": [198, 391], "preliminari": [389, 400, 408, 436, 438, 446, 459, 484, 494], "prepar": [82, 173, 390, 391, 409, 456, 464, 482, 485, 489, 494, 502, 526, 575], "prepare_input": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "prepare_output": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "prepend": [87, 91, 307], "presenc": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 447, 459, 478, 486, 554, 577], "present": [15, 70, 82, 83, 85, 91, 92, 100, 106, 110, 123, 125, 167, 195, 200, 224, 232, 247, 307, 380, 381, 383, 393, 396, 400, 404, 407, 410, 431, 452, 457, 460, 461, 472, 473, 477, 478, 479, 484, 485, 486, 488, 514, 516, 519, 531, 578, 580], "preserv": [87, 91, 105, 193, 194, 196, 198, 202, 205, 206, 397, 481, 487], "preserve_count": [193, 194, 196, 202, 205, 206, 486], "press": 493, "pretti": [394, 400, 410, 416], "prevent": [194, 226, 307, 431, 463, 525], "preview": [383, 496], "previou": [74, 87, 91, 380, 383, 394, 400, 401, 405, 409, 422, 428, 446, 447, 457, 466, 467, 486, 489, 490, 491, 504, 513], "previous": [286, 397, 427, 439, 440, 450, 455, 463, 464, 480, 485, 487], "primari": [26, 87, 91, 193, 194, 196, 197, 205, 206, 385, 406, 427, 442, 482, 486], "primarili": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "primary_axi": 197, "primary_band": 486, "primary_hdu": 467, "primaryflux": [19, 20, 479, 506], "primaryhdu": [467, 486], "prime": 23, "primer": 398, "princip": 466, "principl": [380, 406, 408, 455, 528], "print": [11, 67, 82, 83, 85, 86, 87, 88, 91, 94, 96, 101, 102, 109, 111, 116, 122, 125, 127, 133, 141, 142, 148, 150, 153, 154, 160, 162, 164, 173, 176, 215, 217, 224, 239, 247, 280, 305, 306, 315, 347, 380, 381, 391, 392, 395, 404, 407, 415, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 502, 503, 504, 516, 518, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 579, 580, 582], "print0": 380, "print_level": [463, 471, 483, 503], "print_stack": 380, "printout": [380, 438, 439, 481], "prior": [19, 20, 99, 101, 102, 109, 214, 215, 216, 217, 218, 221, 222, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 278, 384, 389, 446, 447, 449, 451, 452, 455, 456, 457, 458, 460, 463, 464, 469, 471, 473, 474, 480, 483, 489, 492, 498, 503, 504, 563, 575], "prior_registri": 491, "prior_stat_sum": [214, 215, 216, 217, 408, 491], "priorfitstatist": 408, "priori": [404, 461, 487], "prioriti": [377, 389, 391, 392, 394, 406, 409], "priormodel": 408, "priorparamet": [233, 256, 278, 408, 491], "privat": [380, 383, 389, 403, 439, 495, 496], "pro": [380, 396], "probabl": [13, 101, 134, 143, 155, 383, 386, 387, 388, 390, 393, 394, 398, 400, 402, 408, 410, 455, 458, 471, 483, 486, 489, 491, 494, 522, 523, 524, 577, 578, 580, 581], "probe": [133, 295, 489], "problem": [19, 20, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 303, 358, 388, 390, 394, 401, 408, 415, 443, 483, 518], "problemat": [399, 404, 407, 473, 518], "proce": [383, 410, 412, 414, 442, 451, 452, 455, 456, 467, 471, 473, 487, 488, 493, 494, 502, 503], "procedur": [393, 405, 409, 410, 451, 459, 463], "proceed": [400, 406, 495], "process": [11, 83, 93, 126, 127, 130, 133, 134, 143, 169, 194, 206, 326, 327, 328, 337, 380, 381, 383, 385, 386, 388, 389, 390, 392, 393, 395, 396, 402, 405, 406, 407, 413, 417, 423, 428, 431, 433, 439, 446, 447, 452, 455, 459, 465, 467, 468, 480, 481, 485, 495, 500, 503, 508, 515, 517, 518, 576, 577, 578], "process_lots_of_data": 380, "processor": 400, "prod": 420, "prod3": 400, "prod3b": 493, "prod5": [467, 468, 493], "produc": [15, 102, 105, 109, 110, 114, 123, 283, 285, 380, 381, 386, 395, 396, 404, 405, 407, 410, 425, 451, 452, 455, 457, 459, 464, 465, 466, 467, 471, 473, 475, 479, 483, 485, 491, 493, 503, 518, 521, 523, 578], "product": [108, 134, 143, 193, 194, 196, 199, 202, 205, 206, 274, 386, 395, 396, 406, 407, 416, 431, 445, 446, 451, 453, 459, 468, 475, 481, 483, 485, 494, 496, 516, 523, 577], "prof_mak": 127, "profil": [17, 18, 21, 22, 23, 24, 25, 27, 101, 119, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 143, 154, 160, 162, 163, 164, 166, 190, 194, 202, 211, 236, 238, 287, 304, 320, 339, 340, 392, 394, 398, 399, 406, 412, 414, 419, 421, 428, 431, 436, 438, 440, 441, 446, 447, 449, 455, 456, 465, 470, 472, 473, 474, 482, 483, 491, 498, 506, 516, 518, 535, 580], "profile_err": 128, "profile_high": 469, "profile_new": 469, "profuma": 506, "program": [380, 396], "programmat": 463, "progress": [15, 82, 118, 130, 133, 211, 328, 386, 389, 396, 397, 410, 431, 438, 439, 440, 446, 518], "progress_download": 518, "proj": [102, 105, 109, 110, 173, 192, 193, 194, 204, 205, 206, 455, 485, 486, 494, 503, 527], "project": [102, 109, 127, 170, 176, 192, 193, 194, 196, 201, 202, 204, 205, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 314, 340, 380, 381, 382, 383, 385, 387, 394, 396, 397, 400, 406, 423, 431, 439, 445, 456, 459, 461, 465, 469, 475, 484, 486, 487, 488, 494, 500, 502, 503, 504, 506, 527, 530, 531, 540, 541, 576, 578], "projected_distance_axi": 127, "prompt": 578, "pronounc": 518, "pronunci": 518, "prop_cycl": 377, "propag": [19, 20, 26, 53, 128, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 294, 391, 398, 425, 445, 483], "proper": [45, 100, 395, 406, 444, 445, 457, 463, 518], "properli": [133, 186, 385, 395, 406, 443, 444, 455, 456, 482, 483, 502, 514, 579], "properti": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 87, 90, 91, 96, 104, 123, 124, 170, 204, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 296, 377, 380, 381, 391, 393, 403, 404, 407, 408, 428, 431, 433, 438, 439, 441, 444, 445, 455, 457, 465, 467, 469, 480, 487, 489, 490, 504, 515, 531, 577], "propos": [380, 382, 384, 385, 386, 387, 389, 397, 405, 406, 408, 409, 421, 424, 425, 427, 428, 439, 445], "protect": 447, "proto": [16, 84, 90, 104, 124], "proton": [279, 554], "prototyp": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 385, 391, 393, 396, 397, 398, 400, 436, 438, 439, 446, 507], "proven": 396, "provid": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 85, 87, 88, 90, 91, 101, 102, 104, 105, 109, 110, 114, 124, 130, 133, 134, 136, 143, 150, 151, 169, 183, 184, 189, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 212, 275, 289, 304, 307, 373, 380, 381, 390, 391, 393, 395, 396, 397, 400, 401, 404, 406, 407, 408, 409, 410, 411, 412, 414, 415, 417, 421, 424, 425, 426, 428, 431, 433, 442, 445, 447, 450, 455, 457, 458, 459, 468, 471, 478, 480, 481, 482, 483, 485, 486, 487, 489, 490, 494, 495, 496, 498, 503, 504, 506, 508, 513, 515, 516, 517, 518, 519, 520, 521, 522, 524, 525, 528, 529, 530, 531, 532, 539, 542, 554, 563, 575, 576, 577, 578, 580, 583], "proxi": 390, "prune": [383, 409], "pset": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "pseudonym": 383, "psf": [16, 82, 87, 88, 96, 102, 103, 105, 108, 109, 110, 112, 113, 114, 152, 154, 159, 160, 161, 162, 163, 164, 166, 173, 180, 189, 204, 224, 247, 263, 305, 306, 380, 386, 390, 391, 392, 393, 396, 419, 421, 425, 426, 427, 428, 431, 432, 436, 437, 438, 439, 440, 441, 442, 443, 445, 447, 450, 452, 455, 456, 457, 459, 460, 461, 463, 465, 467, 468, 471, 472, 481, 485, 487, 490, 493, 495, 496, 502, 503, 514, 516, 518, 523, 526, 531, 577], "psf3d": [88, 154, 159, 162, 164, 189, 421, 439, 524], "psf68": 450, "psf_": 514, "psf_3gauss": [87, 154, 493, 524], "psf_assym": 484, "psf_kernel": [163, 494], "psf_kernel_map": [161, 494], "psf_king": [87, 162, 524], "psf_map": [103, 108, 163, 166], "psf_map_reco": [166, 495], "psf_mean": 494, "psf_new": 484, "psf_out": [163, 166], "psf_r95": 487, "psf_tabl": [82, 87, 160, 484, 496], "psf_theta": 380, "psf_updat": [103, 108], "psf_valu": [154, 162, 164], "psfkernel": [105, 163, 166, 194, 206, 392, 401, 440, 524], "psfking": [159, 433, 524], "psfmap": [102, 103, 105, 108, 109, 110, 151, 152, 158, 159, 161, 166, 173, 180, 189, 392, 393, 401, 421, 424, 425, 427, 428, 440, 446, 447, 459, 481, 494, 518, 524], "psfnd": 484, "psr": [475, 480, 504], "public": [6, 370, 371, 383, 385, 394, 399, 402, 405, 410, 435, 452, 464, 472, 473, 477, 576, 583], "publicli": [493, 495, 496], "publish": [11, 397, 410, 455, 494], "pull": [381, 384, 385, 388, 389, 390, 391, 392, 393, 394, 400, 405, 406, 409, 410, 418], "puls": 238, "pulsar": [30, 31, 32, 35, 39, 42, 50, 54, 60, 64, 77, 83, 390, 400, 421, 423, 442, 445, 447, 449, 461, 466, 476, 489, 498, 508, 509, 518], "pulsar_analysi": [400, 449, 475, 476], "pulsar_phas": 518, "pulsar_phase_comput": 518, "pulsarastronomi": 518, "pulsat": 262, "pulse_stat": 475, "punch": [444, 446], "pure": [380, 397, 399, 400, 527], "purpl": 531, "purpos": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 331, 355, 384, 386, 392, 395, 399, 403, 405, 406, 439, 459, 481, 488, 489, 522], "push": [380, 383, 409, 442], "put": [198, 380, 381, 383, 385, 387, 388, 391, 400, 409, 410, 416, 422, 458, 467, 487, 494, 518, 578], "pwbpl": 403, "pwd": [383, 412, 414], "pwl": [19, 20, 26, 125, 215, 217, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 280, 391, 403, 408, 451, 453, 467, 482, 489, 491, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 546], "pwl2": 489, "pwl_decai": 467, "pwl_norm": [403, 489, 558], "pwn": [43, 480, 504, 511], "pwne": 466, "py": [380, 381, 387, 394, 397, 399, 401, 409, 410, 416, 421, 423, 424, 432, 437, 441, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 499, 500, 502, 503, 504, 505, 518, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 578], "py310": 383, "py35": 438, "pycharm": 422, "pydant": [16, 84, 90, 104, 124, 379, 425, 444, 446, 463], "pydantic_cor": [16, 84, 90, 104, 124], "pydanticdeprecatedsince20": 463, "pydanticserializationerror": [16, 84, 90, 104, 124], "pydanticundefin": [16, 84, 90, 104, 124], "pydata": [433, 447], "pydocstyl": 381, "pyfact": [419, 437], "pyflak": 433, "pyirf": 446, "pyjok": 379, "pymc": 398, "pymotw": 578, "pypi": [397, 407, 409, 410, 412, 413], "pyplot": [19, 20, 26, 66, 67, 83, 129, 154, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 368, 373, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 527, 535, 537, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571], "pyproject": 428, "pyregion": 394, "pytest": [380, 381, 383, 410, 439], "python": [11, 16, 84, 90, 104, 124, 141, 307, 348, 379, 383, 384, 385, 389, 390, 392, 393, 394, 396, 397, 398, 399, 400, 401, 406, 407, 409, 410, 411, 412, 413, 414, 415, 417, 419, 420, 421, 423, 424, 431, 433, 436, 437, 438, 439, 440, 441, 442, 445, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 517, 518, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 578], "python3": [344, 413, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "python_execut": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "python_vers": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "pytorch": 398, "pyx": [383, 410], "pyyaml": [379, 397, 420, 424], "q": [26, 83, 87, 91, 375, 479], "qfw": 477, "qhdvh8xp": 463, "qol": 447, "qtabl": [87, 91, 395, 477], "quadrat": [486, 496, 504, 581], "qualiti": [202, 400, 439, 440, 445, 490, 503, 518, 576, 583], "quantifi": [446, 466, 477, 478, 491], "quantiti": [13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 47, 50, 51, 52, 53, 54, 71, 74, 75, 80, 83, 86, 87, 88, 91, 94, 96, 100, 102, 103, 105, 106, 108, 109, 110, 112, 113, 114, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 136, 137, 138, 139, 141, 142, 143, 146, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 177, 178, 179, 181, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 198, 201, 202, 203, 204, 205, 206, 207, 208, 214, 216, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 282, 288, 289, 290, 293, 294, 295, 296, 298, 303, 306, 307, 309, 311, 313, 314, 319, 337, 339, 340, 351, 355, 380, 381, 386, 389, 391, 394, 395, 396, 398, 403, 404, 407, 408, 422, 424, 428, 431, 432, 440, 441, 442, 450, 457, 459, 467, 468, 469, 473, 477, 478, 480, 481, 484, 485, 486, 487, 489, 493, 495, 496, 504, 510, 511, 512, 514, 518, 531, 557, 566, 568, 577, 580, 582], "quantity_support": [484, 535], "quasar": 137, "quentin": [398, 402, 403, 423, 424, 425, 426, 427, 428, 431, 433, 434, 442, 443, 444, 445, 446, 447], "queri": [396, 436, 480], "question": [347, 383, 385, 387, 388, 389, 391, 392, 393, 394, 397, 399, 404, 415, 420, 421, 439, 440, 441, 465, 504, 518, 519, 578], "questionnair": [387, 439], "quetin": 425, "quick": [83, 88, 102, 105, 109, 110, 147, 148, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 380, 383, 400, 410, 459, 460, 463, 465, 467, 474, 481, 484, 488, 493, 495, 496, 498, 504, 506, 515], "quickest": 381, "quickli": [380, 381, 383, 385, 396, 397, 400, 406, 410, 412, 438, 455, 463, 478, 495, 522, 578], "quicklook": 83, "quickplot": 194, "quicksort": [87, 91], "quickstart": 417, "quiescent": 544, "quit": [87, 91, 380, 408, 467], "quival": 391, "quot": [74, 280, 380, 381, 479], "r": [17, 18, 21, 22, 24, 25, 26, 27, 28, 30, 35, 36, 39, 40, 51, 53, 54, 86, 87, 91, 155, 190, 203, 308, 380, 381, 405, 410, 456, 464, 468, 483, 485, 502, 508, 523, 527, 535, 536, 537, 541, 544], "r68": [83, 112, 113, 154, 163, 166], "r70": [67, 480], "r_": [17, 18, 21, 22, 24, 25, 27, 28, 35, 36, 39, 40, 50, 52, 53, 260, 261, 479, 537, 540, 541], "r_0": [30, 33, 38, 48, 225, 237, 260, 488, 535, 537, 541], "r_1": [39, 48], "r_eval": 237, "r_exp": [36, 48], "r_in": [44, 168, 178, 260, 461, 528], "r_m": 537, "r_out": 44, "r_out_max": 168, "r_out_pwn": 43, "r_sun": 38, "ra": [67, 83, 85, 87, 88, 91, 94, 141, 142, 176, 380, 381, 393, 396, 450, 455, 457, 459, 461, 465, 468, 472, 473, 475, 477, 480, 485, 487, 493, 494, 495, 496, 503, 504, 506, 518, 522, 582], "ra_pnt": 496, "ra_tru": [380, 393], "rad": [33, 83, 88, 102, 105, 109, 110, 112, 113, 114, 154, 160, 162, 163, 164, 165, 166, 176, 189, 262, 396, 433, 445, 457, 481, 484, 485, 494, 523, 524, 527, 571], "rad_axi": [102, 105, 109, 110, 114, 163, 166, 481, 484, 485, 518], "rad_di": [45, 508], "rad_index": 160, "rad_max": [82, 83, 87, 88, 159, 165, 182, 433, 442, 444, 445, 457], "rad_max_2d": [87, 165, 175, 180, 182, 457], "radec": [83, 94, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 380, 381, 484, 486, 504], "radecsi": 542, "radesysa": 542, "radi": [248, 554], "radial": [28, 30, 35, 36, 39, 40, 45, 129, 190, 194, 333, 380, 391, 399, 404, 421, 436, 438, 446, 467, 469, 485, 493, 506, 508, 524, 527], "radian": [17, 18, 21, 22, 24, 25, 27, 199, 220, 221, 225, 234, 237, 249, 251, 260, 261, 263, 265, 271, 275], "radiat": [226, 518, 540, 541, 554], "radiative_model": [248, 554], "radii": [27, 479, 494, 536], "radio": [137, 394, 486], "radiobutton": [463, 471, 486, 502, 503], "radiu": [16, 17, 18, 21, 22, 24, 25, 27, 33, 34, 38, 43, 44, 50, 51, 52, 53, 54, 72, 82, 83, 91, 96, 102, 105, 109, 110, 122, 127, 128, 154, 160, 162, 163, 164, 166, 168, 176, 178, 194, 204, 206, 207, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 305, 306, 339, 381, 394, 396, 403, 404, 421, 430, 431, 435, 445, 450, 452, 455, 456, 458, 459, 460, 461, 463, 465, 467, 468, 472, 473, 475, 477, 479, 481, 484, 485, 487, 488, 489, 490, 493, 502, 503, 504, 511, 512, 525, 527, 528, 531, 535, 536, 537, 540, 541], "radius_inn": [52, 53], "radius_max": [339, 469], "radius_min": 339, "radius_reverse_shock": [50, 53, 511], "radmax": [433, 434, 445, 446], "radmax2d": [83, 88, 159, 182, 431, 447, 457], "rai": [11, 19, 20, 26, 52, 53, 57, 59, 63, 66, 83, 93, 122, 126, 127, 130, 132, 133, 137, 169, 226, 279, 280, 295, 296, 327, 328, 380, 386, 391, 392, 394, 398, 410, 412, 416, 417, 422, 438, 440, 445, 446, 450, 451, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 480, 481, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 508, 509, 513, 514, 515, 518, 521, 523, 525, 527, 528, 544, 575, 576, 577, 578, 579, 580, 583], "rais": [16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 72, 84, 86, 87, 90, 91, 92, 100, 104, 124, 195, 200, 224, 226, 247, 271, 272, 273, 275, 307, 358, 380, 394, 403, 404, 407, 408, 425, 442, 445, 446, 447, 468], "raise_error": [16, 84, 90, 104, 124], "raj2000": [480, 504], "ran": [409, 493], "random": [6, 33, 42, 45, 46, 47, 87, 91, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 330, 331, 332, 333, 334, 335, 336, 337, 383, 392, 393, 396, 423, 435, 439, 467, 489, 518, 579, 580, 582], "random_se": 392, "random_st": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 330, 331, 334, 335, 336, 337, 380, 393, 458, 467, 468], "randomli": [46, 380], "randomnumb": 334, "randomst": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380], "rang": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 67, 71, 74, 75, 80, 83, 87, 91, 92, 100, 101, 102, 105, 109, 110, 126, 133, 150, 163, 165, 166, 179, 191, 192, 195, 197, 198, 201, 202, 204, 214, 216, 218, 219, 222, 223, 225, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 247, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 273, 274, 276, 277, 282, 320, 332, 334, 335, 336, 373, 380, 386, 392, 393, 395, 404, 422, 427, 428, 431, 439, 440, 442, 452, 455, 457, 458, 460, 463, 464, 466, 468, 473, 474, 475, 478, 480, 481, 482, 483, 484, 486, 487, 489, 490, 491, 494, 495, 502, 503, 504, 514, 516, 518, 537, 547, 576, 580], "rangl": 19, "rapid": [137, 295, 386, 389, 404, 405], "rare": [379, 380, 399, 486], "raster": [95, 194], "rate": [44, 45, 83, 88, 147, 148, 179, 186, 289, 337, 393, 416, 440, 455, 457, 475, 485, 493, 494, 496, 508, 521, 577], "rather": [118, 122, 126, 130, 133, 385, 398, 401, 439, 442, 444, 446, 447, 452, 483, 486, 504, 514, 536, 580], "ratio": [105, 110, 168, 192, 193, 194, 290, 304, 404, 450, 475, 493, 528, 577, 579, 580, 581, 583], "ravel": [192, 467], "raw": [123, 179, 504], "rc": [193, 194, 196, 202, 205, 206, 377, 486], "rc_context": [193, 194, 196, 202, 205, 206, 486], "rc_param": [193, 194, 196, 202, 205, 206, 486], "rcparam": 377, "rdbu": 502, "rdbu_r": [102, 105, 109, 110], "re": [87, 91, 96, 125, 126, 131, 170, 193, 194, 196, 202, 205, 206, 211, 305, 306, 373, 380, 381, 383, 385, 387, 388, 394, 395, 396, 398, 401, 402, 403, 404, 415, 419, 431, 433, 440, 453, 455, 456, 461, 463, 464, 465, 474, 483, 484, 488, 490, 494, 502, 504, 516, 518, 539, 578], "reach": [53, 132, 207, 385, 390, 393, 489], "reactiv": 442, "read": [15, 16, 83, 85, 86, 87, 88, 91, 94, 100, 101, 102, 105, 106, 109, 110, 115, 117, 118, 122, 123, 125, 127, 129, 131, 133, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 175, 193, 194, 196, 200, 201, 202, 205, 206, 211, 224, 226, 239, 247, 274, 275, 276, 281, 283, 285, 286, 343, 346, 366, 368, 373, 375, 380, 381, 383, 385, 390, 391, 392, 393, 396, 400, 402, 404, 406, 407, 408, 412, 414, 425, 428, 431, 439, 440, 442, 445, 446, 447, 451, 455, 456, 457, 461, 463, 466, 467, 478, 481, 482, 483, 484, 489, 491, 493, 494, 495, 498, 502, 504, 515, 516, 518, 520, 521, 522, 524, 542, 572, 573, 578, 581], "read_arf": 106, "read_bkg": 106, "read_builtin": [226, 451, 544], "read_covari": [224, 247], "read_dataset": 15, "read_lazi": 433, "read_model": 15, "read_pha": 106, "read_rmf": 106, "read_xspec_model": 276, "readabl": [361, 391, 433, 456, 502], "reader": [407, 450, 458, 460, 463, 465, 468, 471, 474, 493], "readi": [390, 407, 415, 577], "readili": 400, "readm": [383, 406], "readthedoc": [13, 126, 186, 201, 211, 276, 383, 400, 422, 437, 483, 484, 493, 515, 518, 529, 531], "real": [51, 380, 383, 410, 458, 459, 461, 468, 483, 487, 514], "realis": [385, 394, 406], "realist": 408, "realiti": 451, "realiz": [386, 577], "realli": [380, 387, 394, 397, 458, 471, 483], "rearrang": 400, "reason": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 385, 386, 387, 388, 391, 392, 393, 395, 397, 399, 401, 406, 439, 451, 467, 483, 491, 495, 514, 578], "reassign": [19, 20, 26, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278], "rebas": [380, 394], "rebin": [125, 145, 395, 433, 446, 473, 478, 481], "rebuild": [16, 84, 90, 104, 124, 464], "recarrai": [87, 91, 154, 164], "receiv": [398, 400, 401, 403, 405], "recent": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 390, 394, 395, 396, 397, 400, 413, 420, 434, 440, 464, 493, 495], "recip": [382, 396, 409, 417, 431, 475, 518, 519, 577, 580], "reco": [102, 105, 109, 110, 150, 183, 380, 386, 395, 404, 441, 442, 450, 481, 485, 495, 577], "reco_exposur": [122, 447], "reco_psf": [102, 105, 109, 110, 114, 485, 495], "recogn": [450, 458, 460, 463, 465, 471, 474, 493], "recognis": [391, 578], "recognit": 406, "recommend": [92, 100, 101, 180, 224, 247, 287, 319, 320, 379, 380, 381, 383, 387, 389, 397, 406, 410, 411, 413, 416, 423, 440, 455, 456, 457, 466, 481, 483, 485, 489, 494, 502, 518, 525, 530, 531, 578, 579, 582], "recomput": [125, 404, 461], "recompute_ul": 125, "recon_vers": [494, 504], "reconstruct": [83, 102, 103, 105, 108, 109, 110, 112, 113, 114, 122, 132, 133, 140, 147, 148, 150, 151, 152, 155, 165, 166, 179, 186, 380, 386, 391, 393, 428, 443, 450, 452, 455, 458, 460, 461, 463, 467, 471, 474, 481, 485, 487, 491, 495, 514, 516, 522, 523, 524, 531, 577], "recopsfmap": [159, 442, 445], "record": [83, 88, 380, 385, 386, 406, 493], "recov": 396, "rectangl": [221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 340, 394, 469, 527], "rectangleskyregion": [204, 220, 221, 275, 339, 340, 394, 452, 479, 487, 527, 531], "rectangular": [469, 527, 531], "recurr": 395, "recurs": [347, 407], "red": [101, 289, 295, 370, 450, 451, 455, 458, 461, 463, 466, 479, 490, 491, 535, 536], "redesign": 389, "redistribut": 522, "redo": 475, "redshift": [19, 20, 226, 403, 504, 544], "redshift_scan": 451, "reduc": [6, 11, 15, 100, 102, 105, 109, 110, 161, 163, 166, 171, 181, 193, 194, 196, 198, 202, 205, 206, 386, 387, 389, 391, 392, 396, 399, 401, 406, 407, 412, 419, 424, 431, 440, 446, 449, 451, 452, 453, 456, 457, 458, 463, 464, 467, 471, 472, 473, 474, 477, 487, 490, 492, 495, 498, 514, 518, 528, 531, 536, 537, 576, 577, 578], "reduce_data": 396, "reduce_over_ax": [193, 194, 196, 202, 205, 206, 460, 485, 495], "reduct": [6, 11, 169, 386, 392, 393, 396, 400, 401, 402, 407, 412, 425, 427, 445, 449, 461, 465, 466, 469, 475, 481, 484, 487, 488, 490, 492, 498, 515, 518, 525, 527, 528, 576, 577], "ref": [83, 94, 102, 109, 122, 127, 133, 192, 201, 204, 224, 247, 381, 404, 459, 465, 469, 473, 480, 481, 482, 484, 486, 494, 504, 531, 566, 567, 568, 569, 570, 571, 577, 578], "ref_templ": [16, 84, 90, 104, 124], "refactor": [380, 392, 394, 395, 396, 403, 421, 422, 423, 425, 426, 427, 428, 431, 433, 435, 437, 439], "refer": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 59, 63, 67, 69, 77, 83, 84, 85, 86, 87, 88, 90, 91, 94, 101, 102, 104, 105, 106, 109, 110, 112, 113, 114, 123, 124, 125, 126, 128, 133, 134, 136, 137, 143, 155, 169, 170, 173, 176, 177, 180, 181, 182, 185, 186, 188, 203, 204, 205, 206, 211, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 280, 289, 291, 295, 296, 297, 298, 303, 304, 334, 335, 361, 362, 363, 364, 380, 381, 386, 388, 391, 392, 394, 396, 398, 403, 404, 405, 406, 407, 410, 417, 431, 438, 439, 447, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 488, 489, 491, 493, 494, 495, 502, 503, 504, 507, 514, 516, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 546, 548, 549, 550, 552, 553, 555, 556, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 580, 582], "referenc": [380, 577], "reference_flux": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "reference_map": 486, "reference_model": [123, 125, 134, 143, 450, 451, 459, 464, 482], "reference_model_default": [123, 125], "reference_spectral_model": [123, 125], "reference_tim": [86, 88, 102, 105, 109, 110, 197, 203, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 444, 445, 468, 474, 478, 485, 486, 573], "refit": 482, "reflect": [171, 175, 176, 177, 181, 190, 389, 394, 396, 399, 401, 412, 424, 431, 433, 436, 437, 440, 451, 452, 455, 456, 457, 465, 473, 477, 487, 526, 577], "reflected_bkg_mak": 485, "reflectedbgestim": 396, "reflectedregion": 451, "reflectedregionsbackgroundmak": [171, 176, 425, 447, 452, 455, 457, 465, 473, 477, 485], "reflectedregionsfind": [175, 181, 423, 527], "refpix": [204, 205, 206], "refresh": [87, 91], "refus": 380, "reg": [102, 105, 109, 110, 487, 489], "reg_dataset": 481, "regard": [404, 407, 455], "regardless": [87, 91], "regeard": [443, 444, 445, 446, 447], "regi": [386, 391, 392, 396], "region": [6, 27, 83, 91, 100, 102, 105, 107, 109, 110, 115, 117, 122, 123, 125, 127, 129, 132, 137, 151, 152, 158, 163, 166, 168, 169, 170, 173, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 190, 192, 193, 194, 196, 201, 202, 204, 205, 206, 208, 211, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 276, 279, 290, 304, 338, 339, 340, 341, 342, 376, 377, 379, 381, 384, 386, 387, 395, 396, 397, 399, 402, 404, 412, 423, 424, 425, 427, 431, 433, 434, 436, 437, 439, 440, 442, 444, 445, 447, 451, 456, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 486, 489, 491, 493, 494, 495, 496, 502, 503, 504, 513, 514, 515, 516, 518, 525, 526, 528, 529, 530, 535, 536, 554, 576, 577, 579, 580, 581], "region_coord": 201, "region_ev": 475, "region_find": [175, 457], "region_io": 201, "region_map": [202, 206, 531], "region_map_1": 531, "region_map_2": 531, "region_mask": [83, 192, 204, 394, 455, 461, 465, 481, 485, 487, 503, 525, 527, 528], "region_nd_map": 202, "region_new": 341, "region_pix": 489, "region_weight": 204, "regionfind": [176, 177, 181], "regiongeom": [102, 105, 109, 110, 123, 127, 173, 180, 182, 183, 184, 186, 187, 202, 221, 225, 234, 237, 249, 260, 261, 263, 265, 271, 275, 394, 395, 402, 412, 427, 428, 431, 450, 452, 455, 457, 458, 465, 469, 473, 474, 475, 477, 480, 481, 482, 485, 494, 504, 514, 527, 530], "regionndmap": [26, 106, 109, 110, 132, 174, 175, 180, 182, 193, 194, 196, 201, 205, 206, 221, 225, 234, 237, 239, 249, 260, 261, 265, 271, 272, 275, 377, 394, 412, 427, 428, 431, 434, 442, 445, 468, 482, 494, 514, 530, 573], "regions_ds9": 487, "regionsfind": [175, 176, 181, 433], "regist": 489, "registri": [55, 98, 119, 159, 171, 243, 245, 257, 258, 270, 401, 408, 424, 427, 428, 431, 440, 480, 489], "regress": 383, "regul": 406, "regular": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 192, 200, 204, 389, 408, 433, 445, 471, 486, 487, 495], "regulargridinterpol": [319, 380], "regularis": 408, "regularli": [408, 496], "reichardt": 435, "reimplement": 391, "rej_sampl": 393, "reject": [384, 385, 393], "rel": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 87, 88, 91, 105, 106, 110, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 203, 204, 205, 206, 260, 280, 294, 337, 395, 406, 431, 474, 478, 495, 541, 580], "rel_reduction_of_f_": 483, "relat": [11, 13, 67, 83, 85, 209, 295, 386, 388, 391, 393, 394, 397, 399, 400, 401, 406, 410, 427, 428, 440, 446, 481, 489, 493, 508, 575, 580], "relative_variability_amplitud": 478, "relative_variability_error": 478, "relative_variability_signific": 478, "relativist": 554, "releas": [11, 51, 65, 95, 382, 384, 385, 387, 388, 394, 397, 398, 407, 411, 413, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 452, 455, 456, 464, 472, 473, 477, 493, 495, 496, 502, 503, 506, 518, 520, 521, 522, 524], "relev": [123, 288, 290, 363, 380, 386, 395, 400, 404, 409, 455, 456, 459, 472, 473, 474, 477, 488, 490, 493, 495, 496, 502, 503, 514, 515, 582], "reli": [123, 380, 385, 386, 390, 391, 395, 399, 404, 405, 423, 428, 431, 442, 453, 463, 487, 506, 580], "reliabl": [383, 413, 461, 483, 487, 579], "remain": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 100, 385, 386, 387, 388, 393, 397, 406, 421, 440, 457, 488, 524], "remaind": 495, "remark": 457, "rememb": [380, 394, 483, 498, 578], "remi": [402, 403, 423, 424, 425, 426, 427, 428, 431, 442, 443, 444, 445, 446, 447], "remind": [198, 406, 459, 465, 482], "remnant": [28, 52, 452, 466, 489, 509], "remot": [383, 409], "remov": [13, 16, 84, 87, 90, 91, 92, 96, 100, 104, 124, 163, 166, 178, 191, 192, 197, 200, 201, 204, 206, 247, 306, 383, 387, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 411, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 443, 444, 445, 446, 447, 455, 461, 463, 469, 475, 481, 487, 490, 493, 494, 507, 518, 527], "remove_column": [87, 91], "remove_indic": [87, 91], "remove_row": [87, 91], "renam": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 125, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 383, 390, 391, 399, 400, 403, 419, 422, 424, 425, 426, 427, 431, 441, 442, 445, 578], "rename_ax": [191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 442], "rename_column": [87, 91, 125], "rename_dupl": [87, 91], "render": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 358, 380, 381, 388, 439], "renorm": [461, 525], "renormalis": 178, "reoptim": [126, 130, 131, 211, 421, 451, 469, 472, 482, 483, 491, 502], "reorder": 447, "reorder_ax": [193, 194, 196, 202, 205, 206, 445], "reorgan": 431, "reorganis": 400, "repeat": [381, 463, 495], "repl": 380, "replac": [15, 87, 91, 100, 102, 105, 109, 110, 151, 152, 158, 163, 191, 192, 194, 197, 201, 202, 204, 206, 273, 286, 380, 390, 391, 394, 398, 401, 407, 413, 422, 423, 425, 427, 428, 445, 446, 447, 475], "replace_axi": [191, 192, 201, 204], "replace_column": [87, 91], "repo": [381, 388, 409, 410, 419, 432], "report": [87, 383, 396, 409, 410, 419, 433, 434, 439], "repositori": [87, 91, 380, 383, 385, 388, 390, 406, 409, 431, 440, 467, 496], "repres": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 74, 75, 76, 78, 79, 80, 84, 87, 90, 91, 102, 104, 105, 109, 110, 124, 192, 194, 196, 198, 199, 201, 203, 263, 307, 315, 325, 380, 391, 392, 393, 394, 398, 401, 402, 403, 404, 421, 445, 451, 468, 469, 480, 482, 483, 485, 486, 487, 489, 494, 504, 513, 514, 516, 520, 521, 522, 524, 530, 575, 576, 577, 582], "represent": [16, 19, 20, 26, 83, 84, 86, 87, 90, 91, 104, 124, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 394, 407, 421, 423, 445, 453, 480, 486, 489, 530], "reprocess": 386, "reproduc": [94, 101, 125, 381, 396, 397, 398, 400, 406, 407, 411, 413, 440, 485], "reproject": [179, 193, 194, 196, 202, 205, 206, 376, 380, 386, 394, 397, 404, 425, 432, 440, 442, 446, 486, 487], "reproject_by_imag": [193, 194, 196, 202, 205, 206, 446], "reproject_to_geom": [193, 194, 196, 202, 205, 206, 442], "request": [85, 123, 125, 381, 384, 385, 387, 388, 389, 390, 391, 392, 394, 400, 404, 405, 406, 408, 410, 418, 467, 482, 487, 516], "requir": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 43, 44, 82, 83, 84, 85, 87, 88, 90, 91, 95, 102, 104, 105, 109, 110, 111, 116, 124, 125, 128, 133, 147, 148, 150, 153, 154, 155, 160, 162, 165, 170, 193, 194, 195, 196, 197, 198, 201, 202, 203, 205, 206, 207, 307, 355, 359, 360, 378, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 402, 403, 404, 405, 406, 408, 409, 411, 413, 419, 424, 425, 426, 427, 432, 433, 435, 436, 437, 438, 441, 442, 443, 447, 451, 452, 457, 461, 464, 473, 474, 475, 477, 478, 481, 484, 486, 487, 489, 493, 503, 516, 518, 531], "require_ev": 82, "required_ax": [147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 484], "required_hdu": 434, "required_irf": [16, 82, 456, 457, 460, 461, 463, 502], "required_nam": [195, 197, 198, 203], "required_paramet": [154, 162, 164], "rerun": [395, 477], "resampl": [102, 105, 109, 110, 125, 145, 146, 151, 191, 192, 193, 194, 195, 196, 197, 201, 202, 204, 205, 206, 375, 431, 433, 478, 518], "resample_axi": [125, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 375, 428, 473, 478], "resample_energy_axi": [102, 105, 109, 110, 151, 428, 433, 481], "resample_energy_edg": [455, 518], "resampled_energy_edg": 146, "resampled_map": [193, 194, 196, 202, 205, 206], "rescal": 485, "research": [396, 406], "reset": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 105, 109, 110, 232, 273, 381, 428], "reset_data_cach": [102, 105, 109, 110], "reset_to_default": 232, "reshap": [193, 194, 196, 202, 205, 206, 450, 468, 484, 486], "resid": [402, 489], "residu": [72, 101, 102, 105, 109, 110, 170, 391, 392, 396, 423, 428, 434, 441, 447, 461, 481, 483, 494, 514, 527, 577], "resolut": [52, 150, 151, 155, 192, 204, 389, 391, 393, 394, 439, 445, 447, 480, 494], "resolv": [16, 84, 90, 104, 124, 381, 383, 390, 394, 395, 402, 403, 415, 421, 440, 447, 449, 473, 476, 498, 527], "resort": 460, "resourc": [439, 498], "respect": [15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 47, 83, 84, 87, 90, 91, 104, 106, 124, 125, 137, 192, 194, 204, 206, 287, 380, 390, 395, 406, 408, 428, 447, 459, 461, 474, 482, 486, 487, 495, 516, 531, 581], "respond": 406, "respons": [6, 108, 150, 151, 152, 155, 157, 158, 176, 380, 386, 387, 389, 391, 392, 393, 395, 396, 404, 406, 412, 438, 439, 440, 441, 452, 455, 456, 457, 458, 471, 474, 484, 485, 488, 493, 495, 496, 498, 502, 503, 514, 515, 520, 522, 524, 576, 577], "rest": [26, 383, 397, 399, 480, 513], "restor": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 488], "restore_statu": [215, 217, 224, 247, 491], "restore_valu": [215, 217, 224, 247], "restrict": [87, 91, 394, 463, 481, 487], "restructur": [381, 395, 396, 397, 399, 401, 407, 410, 425, 431, 432, 433, 434, 436, 445], "result": [16, 46, 74, 84, 86, 87, 90, 91, 92, 101, 102, 104, 105, 109, 110, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 133, 135, 136, 141, 143, 144, 155, 161, 163, 166, 179, 183, 184, 189, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 210, 211, 212, 213, 224, 247, 275, 286, 289, 307, 373, 379, 380, 381, 383, 385, 387, 389, 390, 391, 392, 393, 396, 398, 399, 402, 406, 408, 413, 416, 423, 431, 433, 434, 439, 441, 445, 446, 447, 451, 453, 455, 457, 458, 463, 465, 467, 468, 471, 473, 474, 475, 478, 480, 481, 483, 486, 487, 490, 491, 494, 495, 496, 502, 503, 513, 516, 518, 531, 566, 577, 579, 580], "result1": 451, "result2": 488, "result_ecpl": 453, "result_joint": [452, 455, 463], "result_list": 373, "result_log_parabola": 453, "result_minuit": 483, "result_pwl": 453, "result_scipi": 483, "result_stack": 455, "results_joint": 464, "results_prior": 491, "results_simplex": 483, "results_t": 466, "retain": [480, 531], "retriev": [87, 91, 404, 406, 452, 453, 455, 486, 489, 490, 495, 503, 515, 530, 531], "return": [16, 19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 77, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 281, 284, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 303, 304, 305, 306, 307, 309, 311, 313, 314, 318, 320, 325, 329, 331, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 346, 347, 350, 351, 352, 361, 362, 363, 364, 365, 368, 370, 371, 373, 375, 376, 386, 390, 391, 392, 393, 394, 395, 403, 404, 407, 408, 424, 425, 428, 431, 434, 440, 442, 447, 455, 457, 461, 465, 469, 473, 474, 477, 480, 481, 482, 483, 485, 486, 487, 489, 491, 504, 508, 530, 531, 563, 580], "return_delta": 337, "return_diff": 337, "return_unit": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "reus": [396, 428, 446], "reval": 537, "revers": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 53, 87, 91, 92, 100, 197, 247, 486, 511], "reverse_lon_radec": 156, "revert": 447, "review": [383, 388, 389, 390, 393, 394, 396, 397, 399, 400, 401, 403, 404, 406, 408, 441, 442, 530], "revis": 400, "revisit": 226, "rework": 426, "rewrit": [386, 389, 396, 426, 436, 437, 439, 440, 441, 578], "rewritten": [438, 441], "rf": 479, "rgb": [375, 377, 445, 450, 455], "rglob": [82, 467, 493], "rhe": 182, "rho": [17, 18, 21, 22, 23, 24, 25, 27], "rho_": [17, 21, 22, 24, 25, 27, 52, 53], "rich": [380, 396], "rid": 386, "right": [21, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 87, 91, 102, 109, 123, 125, 133, 153, 230, 235, 254, 267, 291, 297, 368, 380, 394, 403, 406, 459, 465, 467, 472, 474, 493, 535, 536, 537, 544, 545, 548, 549, 551, 552, 556, 559, 560, 561, 562, 566, 567, 568, 570, 578, 579, 580, 581], "rightarrow": [541, 581], "rigid": 385, "ring": [105, 122, 168, 171, 178, 192, 193, 194, 386, 389, 396, 399, 412, 421, 425, 427, 437, 438, 439, 440, 449, 462, 466, 487, 498, 517, 526, 529, 577], "ring2dkernel": [168, 178], "ring_background": [449, 461, 462], "ring_bkg_mak": 528, "ring_mak": 461, "ringbackgroundestim": [386, 439], "ringbackgroundmak": [168, 171, 425, 461, 485, 528], "rint": 447, "rise": [137, 238, 478, 568], "risk": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 383, 406], "rm": [150, 151, 155, 269, 403, 457, 483, 520, 522, 523, 524, 537, 566, 567, 568, 569, 570, 571], "rmax": [17, 18, 21, 22, 24, 25, 27], "rmf": [106, 107, 110, 150, 151, 152, 437, 455], "rmf_ob": 106, "rmffile": 106, "rmin": [17, 18, 21, 22, 24, 25, 27], "rng": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 289, 329, 331, 334, 335, 336, 337, 380], "roadmap": [384, 387, 396, 405, 420, 441], "roberta": [439, 440], "robust": [380, 440], "roellinghoff": 447, "roi": [67, 396, 480, 496, 577], "roi_max": 396, "role": [439, 485], "rolf": 419, "rolk": 577, "rolke2005": [577, 580], "roll": 494, "room": 390, "root": [19, 20, 26, 123, 124, 133, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 299, 302, 380, 398, 431, 459, 506, 516, 578, 580], "rosillo": 442, "rotang": 468, "rotat": [51, 54, 176, 177, 181, 186, 225, 234, 237, 468, 527, 535, 536], "rough": [72, 396], "roughli": [118, 383, 388, 394, 396, 399, 400, 438, 461], "round": [87, 91, 193, 194, 196, 198, 202, 205, 206, 455, 530], "round_to_edg": [191, 192, 201, 204], "round_trip": [16, 84, 90, 104, 124], "routin": 419, "row": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 91, 141, 150, 315, 351, 374, 395, 404, 407, 442, 445, 455, 458, 468, 469, 477, 480, 483, 486, 493, 495, 496, 504, 513], "row_idx": [67, 87], "row_index": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 480], "row_label": 374, "row_specifi": [83, 87, 91], "royalblu": 475, "rpovid": 395, "rspec": [67, 480], "rst": [383, 385, 400, 406, 409, 410, 426, 431], "rtd": 440, "rtol": [133, 355, 380], "rtol_ax": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 201, 202, 204, 205, 206], "rtol_wc": 204, "ruben": 439, "rub\u00e9n": 439, "ruiz": [388, 396, 400, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 433, 439, 440, 441], "rule": [87, 91, 263, 282, 318, 406, 486, 530], "run": [16, 82, 83, 84, 88, 90, 93, 101, 103, 104, 108, 118, 120, 121, 122, 124, 126, 127, 129, 130, 131, 132, 133, 141, 142, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 201, 204, 211, 327, 328, 354, 373, 379, 380, 381, 387, 388, 390, 393, 395, 396, 397, 400, 402, 404, 408, 409, 410, 411, 416, 422, 423, 426, 427, 438, 440, 441, 445, 447, 450, 451, 452, 453, 458, 459, 460, 461, 463, 464, 465, 467, 471, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 503, 504, 514, 515, 516, 518, 523, 525, 527, 528, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "run_fit": [15, 456, 460, 502], "run_id": [494, 504], "run_multiprocess": 518, "runner": [16, 344, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 544, 550, 566, 572, 573], "runtim": [389, 407, 409], "runtimewarn": [457, 461, 467, 477, 496, 566], "rx": 452, "rxj": 452, "rxj1713_2016_250gev": 542, "r\u00e9gi": [386, 389, 390, 394, 395, 397, 399, 401, 402, 403, 404, 405, 407, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "r\u00e9my": [398, 431, 433, 434, 442], "s0167947313003204": [135, 144], "s180": 295, "s2": 274, "s3": 274, "s_0": 518, "s_1": 518, "safari": [87, 91], "safe": [99, 101, 102, 105, 109, 110, 151, 152, 158, 163, 166, 171, 179, 380, 392, 394, 406, 425, 427, 428, 442, 443, 444, 445, 447, 452, 455, 481, 487, 503, 514, 576], "safe_mask": [16, 102, 109, 456, 460, 461, 463, 502], "safe_mask_mak": [169, 452, 455, 475, 485, 495, 525, 527, 528], "safe_mask_mask": [457, 465, 473, 477, 485], "safemaskconfig": 16, "safemaskmak": [169, 171, 401, 425, 426, 431, 433, 434, 446, 452, 455, 457, 465, 471, 473, 475, 477, 485, 487, 495, 502, 503, 525, 526, 527, 528], "safeti": 406, "sagittariu": [33, 38], "saha": 439, "sai": [74, 385, 399, 578], "said": [380, 385, 387, 495, 496, 578], "sake": [467, 483], "saldana": [226, 227, 445, 451, 544], "saldana21": 544, "samantha": 447, "same": [27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 87, 91, 95, 100, 102, 105, 106, 109, 110, 122, 133, 134, 135, 141, 142, 143, 144, 154, 155, 161, 162, 163, 164, 166, 167, 169, 190, 191, 192, 193, 194, 196, 197, 200, 201, 202, 204, 205, 206, 280, 289, 295, 373, 380, 383, 388, 390, 392, 394, 395, 399, 400, 401, 402, 403, 404, 405, 406, 408, 409, 410, 412, 413, 423, 424, 428, 431, 445, 453, 456, 457, 458, 463, 464, 467, 471, 472, 473, 475, 480, 481, 486, 487, 488, 489, 490, 491, 494, 495, 498, 502, 514, 515, 516, 522, 530, 531, 578], "sampl": [47, 93, 103, 108, 133, 136, 152, 154, 160, 162, 163, 164, 166, 193, 194, 196, 202, 204, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 287, 289, 298, 320, 329, 334, 335, 336, 337, 384, 392, 394, 395, 398, 400, 412, 419, 421, 423, 424, 427, 433, 440, 442, 445, 446, 447, 449, 457, 470, 478, 481, 483, 498, 518], "sample_axi": 329, "sample_background": [103, 108, 425], "sample_coord": [152, 163, 166, 193, 194, 196, 202, 205, 206, 425, 427, 442], "sample_edisp": [103, 108], "sample_powerlaw": 399, "sample_psf": [103, 108], "sample_sourc": [103, 108], "sample_spher": [435, 582], "sample_tim": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 431, 442, 447], "sampler": [103, 329, 389, 393, 427, 431, 447, 467], "sampler_kwarg": 93, "saniti": 439, "santiago": 447, "satisfi": [146, 170, 192, 193, 194, 307, 488, 518], "save": [15, 19, 20, 26, 100, 133, 208, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 388, 396, 404, 408, 447, 451, 463, 464, 467, 483, 487, 488, 495, 515], "savefig": [358, 416], "savez": 208, "saw": 417, "sbpl": [264, 403, 489], "sc": [87, 91], "scalar": [87, 91, 161, 192, 193, 194, 196, 202, 205, 206, 307, 399, 433, 444, 446, 486, 530], "scale": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 52, 53, 67, 86, 88, 96, 100, 104, 105, 110, 118, 124, 126, 127, 130, 154, 170, 198, 202, 203, 204, 206, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 266, 267, 268, 269, 272, 274, 275, 276, 284, 287, 306, 319, 320, 321, 337, 361, 362, 363, 373, 381, 389, 394, 395, 398, 403, 426, 431, 432, 440, 443, 444, 445, 447, 456, 459, 468, 469, 472, 473, 474, 478, 479, 480, 482, 484, 485, 486, 489, 490, 491, 493, 502, 504, 506, 544, 565, 566, 567, 568, 569, 570, 571, 572, 573], "scale10": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 408, 554], "scale_method": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 408, 554], "scale_to_local_dens": [17, 18, 21, 22, 24, 25, 27, 479], "scaled_featur": 306, "scaled_features_irf": [305, 306, 490], "scaledregulargridinterpol": [68, 226, 276, 426, 441], "scalespectralmodel": [126, 127, 130, 258, 403, 489], "scan": [19, 20, 95, 123, 125, 126, 127, 130, 131, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 395, 404, 431, 469, 473, 482, 491, 516, 518], "scan_max": [19, 20, 126, 130, 133, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 451, 473, 482, 483], "scan_min": [19, 20, 126, 130, 133, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 451, 482, 483], "scan_n_sigma": [19, 20, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 483], "scan_n_valu": [19, 20, 126, 130, 131, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 451, 483, 491], "scan_prior": 491, "scan_valu": [19, 20, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 469, 483], "scargl": [395, 439, 478], "scatter": [224, 247, 401, 459, 465, 477, 535, 536], "scenario": [87, 91, 385, 392, 402, 412, 482, 486, 489, 507, 579], "scengin": [87, 91], "schedul": 389, "schema": [15, 16, 84, 90, 104, 124, 396, 399], "schema_gener": [16, 84, 90, 104, 124], "schema_json": [16, 84, 90, 104, 124], "scheme": [16, 84, 90, 101, 104, 106, 107, 124, 192, 193, 194, 203, 239, 380, 386, 390, 392, 395, 402, 403, 404, 405, 407, 409, 424, 431, 442, 446, 468, 484, 486, 489, 518, 523, 529, 530, 532], "schiavo": 447, "school": 406, "scienc": [135, 144, 193, 194, 196, 205, 206, 387, 389, 393, 396, 397, 400, 406, 417, 439, 440, 458, 464, 474, 486, 489, 490, 493, 494, 498, 506, 518, 552, 577, 578], "sciencedirect": [135, 144], "scientif": [381, 387, 403, 406, 413], "scientist": 493, "scikit": [141, 380, 394, 397, 400, 440, 487], "scipi": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 206, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 305, 319, 360, 373, 379, 380, 383, 389, 394, 397, 398, 400, 406, 417, 421, 422, 423, 424, 436, 437, 438, 441, 443, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 575, 580], "scipy_mvn": 209, "scipy_opt": 483, "scitool": 557, "scope": [393, 394, 395, 396, 399, 407, 507], "scratch": [153, 380, 390, 394, 410, 463, 487], "screen": [87, 91, 486, 504], "script": [6, 87, 91, 125, 343, 344, 345, 346, 347, 348, 349, 381, 386, 387, 389, 391, 394, 396, 399, 400, 406, 409, 410, 420, 421, 422, 423, 431, 432, 436, 439, 440, 441, 442, 446, 449, 455, 459, 461, 463, 464, 465, 466, 467, 469, 473, 474, 477, 479, 480, 481, 482, 483, 485, 488, 491, 494, 499, 502, 517, 518, 578], "scriptabl": 407, "scutum": [33, 38], "sdc": 493, "sdist": 410, "seaborn": 518, "search": [87, 91, 288, 290, 344, 380, 381, 416, 439, 440, 456, 459, 465, 466, 479, 480, 490, 502, 503, 504, 506, 518, 578], "season": 400, "sebastian": 431, "sec": [54, 83, 94, 100, 130, 337], "second": [42, 58, 83, 86, 87, 88, 91, 136, 150, 274, 298, 337, 340, 357, 361, 364, 369, 381, 388, 390, 392, 394, 398, 404, 406, 410, 425, 444, 455, 456, 459, 461, 463, 465, 466, 467, 468, 469, 473, 474, 477, 479, 481, 483, 485, 486, 488, 491, 493, 498, 502, 513, 579, 582], "secpl": [267, 268, 269, 403, 489], "section": [19, 87, 91, 289, 291, 297, 380, 381, 383, 385, 394, 396, 397, 399, 403, 406, 410, 428, 441, 458, 463, 467, 468, 471, 474, 480, 482, 483, 487, 488, 489, 504, 507, 518, 531, 576, 578, 582], "secur": 487, "sed": [119, 122, 123, 124, 125, 127, 133, 202, 226, 379, 396, 398, 404, 412, 419, 438, 453, 459, 469, 473, 480, 481, 482, 502, 504, 577], "sed_fit": [449, 453, 454], "sed_fitting_gammacat_fermi": 400, "sed_typ": [19, 20, 26, 123, 124, 125, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 431, 450, 451, 453, 455, 456, 457, 464, 465, 469, 472, 473, 474, 480, 482, 503, 504, 516, 518, 554, 577], "sed_type_init": [71, 74, 75, 78, 123, 124, 125], "sed_type_plot_default": [123, 125], "sedov": [52, 53], "sedov_taylor_begin": [52, 53, 512], "sedov_taylor_end": [52, 53, 512], "seds_20230803": 64, "sedtypeenum": 124, "see": [11, 13, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 66, 82, 83, 85, 87, 89, 91, 95, 99, 100, 101, 102, 105, 109, 110, 118, 120, 122, 125, 126, 127, 130, 132, 133, 135, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 169, 176, 178, 179, 186, 191, 192, 194, 196, 198, 199, 201, 204, 206, 211, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 281, 291, 297, 300, 301, 304, 307, 315, 331, 347, 370, 371, 379, 380, 381, 383, 384, 385, 387, 388, 389, 390, 393, 394, 395, 396, 397, 398, 400, 401, 405, 406, 407, 408, 410, 412, 413, 415, 416, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 436, 437, 438, 439, 440, 441, 442, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 473, 474, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 495, 498, 502, 503, 504, 506, 514, 515, 518, 528, 529, 531, 557, 561, 562, 575, 577, 578, 579, 580, 582], "seed": [33, 42, 45, 46, 47, 102, 103, 105, 108, 109, 110, 152, 163, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 248, 255, 262, 274, 277, 289, 329, 330, 331, 334, 335, 336, 337, 380, 439, 467, 554], "seed_photon_field": [248, 554], "seem": [380, 387, 388, 391, 397, 401, 506], "seen": [380, 394, 401, 452, 459, 464, 473, 486, 489, 494], "select": [16, 82, 83, 86, 87, 88, 89, 91, 92, 96, 100, 102, 105, 109, 110, 122, 173, 180, 193, 194, 195, 196, 198, 203, 205, 206, 215, 217, 224, 247, 263, 273, 286, 376, 377, 390, 392, 393, 394, 395, 396, 400, 402, 404, 407, 412, 414, 420, 423, 431, 435, 450, 455, 457, 458, 460, 461, 463, 464, 466, 467, 468, 471, 474, 475, 481, 482, 483, 485, 486, 487, 490, 493, 495, 496, 498, 504, 516, 518, 522, 523, 527, 576, 578], "select_energi": [83, 515], "select_from_geom": [224, 247], "select_map_mask": 421, "select_mask": [83, 224, 247, 431, 488], "select_nested_model": [445, 447], "select_obs_id": [91, 465], "select_observ": [91, 96, 396, 473, 477, 490, 503, 518], "select_offset": [83, 467, 496, 515], "select_paramet": [83, 89, 475, 515], "select_phas": 390, "select_rad_max": 83, "select_rang": 91, "select_region": [83, 89, 224, 247, 394, 423, 431, 467, 468, 475, 488, 504, 515], "select_row_subset": 83, "select_sky_box": 394, "select_sky_circl": [91, 394], "select_tim": [83, 86, 88, 92, 100, 390, 404, 425, 468, 473, 477, 515], "select_time_rang": 91, "selected_energi": 515, "selected_ev": 83, "selected_id": 515, "selected_obs_t": [91, 490, 503], "selected_offset": 515, "selected_region": 515, "selected_tim": 515, "selection_al": [118, 133], "selection_mask": [224, 247, 488], "selection_opt": [16, 118, 120, 121, 122, 126, 127, 129, 130, 131, 132, 133, 431, 447, 451, 455, 456, 459, 460, 461, 463, 464, 465, 469, 472, 473, 474, 475, 482, 487, 495, 502], "selection_vari": 91, "selectionconfig": 16, "selectionslid": [463, 471, 486, 502, 503], "self": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 86, 87, 90, 91, 104, 123, 124, 125, 201, 202, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 263, 264, 266, 267, 268, 269, 272, 276, 380, 381, 391, 392, 394, 397, 403, 404, 407, 408, 427, 461, 486, 489], "semant": [394, 405], "semi": 225, "semiaxi": [225, 234, 237, 535, 536, 537], "semilogi": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 450, 468], "semimajor": 480, "semiminor": 480, "semver": 405, "send": 409, "sens": [380, 387, 390, 394, 396, 399, 400, 401, 461], "sensibl": 490, "sensit": [119, 122, 123, 124, 125, 132, 280, 393, 400, 426, 428, 438, 439, 445, 446, 449, 454, 471, 493, 498, 506, 523], "sensitivity_estim": 450, "sensitivity_t": 450, "sensitivityestim": [119, 420, 426, 450], "sent": 385, "sentenc": [385, 400, 406], "sep": [201, 389, 397, 403, 418, 489], "separ": [17, 18, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 71, 72, 74, 75, 76, 78, 79, 80, 83, 91, 192, 201, 204, 303, 369, 380, 381, 386, 387, 388, 389, 392, 393, 394, 395, 396, 399, 400, 401, 402, 427, 431, 437, 439, 440, 444, 445, 458, 461, 463, 465, 471, 474, 480, 488, 489, 490, 507, 515, 523, 524, 535, 536, 540, 541, 554, 577], "septemb": [389, 397, 399, 400, 405], "sequenc": [87, 91, 92, 100, 102, 109, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 215, 224, 247, 307, 410], "sequenti": [386, 455, 503], "seri": [87, 91, 125, 289, 294, 337, 389, 394, 395, 431, 447, 478], "serial": [16, 84, 87, 90, 91, 99, 100, 101, 102, 104, 105, 109, 110, 124, 386, 391, 395, 396, 401, 404, 424, 427, 431, 433, 440, 442, 443, 444, 445, 446, 486, 489, 491, 506], "serialis": [20, 102, 105, 109, 110, 218, 219, 222, 224, 226, 228, 229, 230, 232, 233, 235, 239, 241, 242, 244, 246, 247, 248, 250, 252, 253, 254, 256, 259, 264, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 278, 392, 394, 396, 399, 401, 402, 403, 423, 425, 427, 431, 436, 439, 441, 442, 444, 445, 446, 491, 502, 518, 531, 573], "serializ": [16, 84, 90, 104, 124], "serialize_as_ani": [16, 84, 90, 104, 124], "serialize_method": [87, 91], "serializiaton": 392, "serilis": [26, 220, 221, 223, 225, 231, 234, 236, 237, 238, 240, 249, 251, 255, 260, 261, 262, 263, 265, 272, 275, 277], "sersic": 403, "sersic2d": 403, "sersicspatialmodel": 403, "serv": [87, 91, 380, 385, 392, 396, 404, 410, 433, 479, 522], "server": [402, 412, 414, 498], "servic": 439, "session": [396, 406, 517], "set": [15, 16, 19, 20, 23, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 87, 90, 91, 95, 101, 102, 103, 104, 105, 106, 108, 109, 110, 114, 120, 122, 123, 124, 125, 126, 127, 129, 130, 133, 135, 144, 150, 152, 163, 166, 169, 170, 173, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 211, 214, 215, 216, 217, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 267, 268, 269, 271, 274, 275, 276, 286, 298, 327, 329, 380, 381, 386, 389, 390, 392, 393, 395, 396, 397, 398, 400, 404, 405, 406, 407, 408, 410, 412, 414, 427, 433, 435, 437, 439, 442, 445, 446, 447, 450, 451, 452, 455, 457, 458, 459, 460, 463, 465, 466, 467, 468, 469, 472, 473, 475, 480, 481, 482, 483, 485, 487, 489, 490, 491, 493, 495, 496, 498, 503, 506, 514, 515, 518, 527, 529, 530, 531, 554, 575, 578, 581, 582], "set_by_coord": [193, 194, 196, 202, 205, 206, 486, 530], "set_by_idx": [193, 194, 196, 202, 205, 206, 486, 530], "set_by_pix": [193, 194, 196, 202, 205, 206, 530], "set_label": 477, "set_log": 16, "set_model": [15, 402, 456, 460, 472, 502], "set_models_paramet": 402, "set_parameter_factor": [215, 217], "set_parameters_bound": [224, 247], "set_prior": [247, 408], "set_prop_cycl": 450, "set_slice_arg": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "set_subcovari": 209, "set_titl": [451, 452, 455, 459, 461, 465, 475, 479, 483, 484, 485, 488, 527, 537, 541, 544], "set_unit": [453, 482, 518], "set_xlabel": [450, 451, 452, 455, 458, 475, 477, 483, 490, 491], "set_xlim": [453, 455, 456, 464, 475, 520, 544], "set_xscal": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "set_xtick": [537, 541], "set_ylabel": [450, 451, 452, 455, 469, 475, 477, 479, 483, 490, 544], "set_ylim": [450, 453, 455, 456, 457, 472, 475, 520, 544], "set_yscal": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 469, 479, 520], "set_ytick": [537, 541], "setdefault": 200, "seterr": 380, "setlevel": 465, "setter": [381, 408, 425, 431, 481], "settl": 406, "setup": [13, 382, 383, 384, 387, 392, 393, 397, 400, 408, 437, 441, 498, 578], "setuptool": [432, 578], "sever": [87, 91, 175, 385, 386, 387, 394, 395, 396, 399, 404, 407, 425, 426, 427, 431, 434, 443, 444, 445, 458, 464, 480, 493, 494, 495, 518, 578, 580], "seyfert": 295, "sf": [303, 580], "sgr": 504, "shade": [194, 202, 206, 483, 576], "shall": 383, "shape": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 100, 101, 102, 105, 109, 110, 111, 116, 122, 123, 127, 128, 133, 140, 141, 142, 148, 150, 153, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 209, 237, 287, 307, 320, 336, 391, 394, 398, 429, 444, 447, 453, 455, 457, 459, 460, 465, 468, 469, 473, 477, 478, 480, 481, 482, 484, 485, 486, 487, 489, 493, 494, 504, 516, 530, 531, 532, 537, 541], "shape_ax": [192, 204], "share": [193, 194, 196, 200, 202, 205, 206, 380, 385, 392, 395, 399, 402, 413, 431, 433, 445, 463, 464, 487, 488, 518, 578], "sharp": [238, 370, 371, 535], "she": [390, 395], "shear": 394, "sheet": [415, 518], "shell": [52, 53, 80, 260, 261, 391, 396, 403, 412, 414, 449, 489, 532, 541, 543, 578], "shell2": [260, 449, 489, 532, 543], "shell2d": 52, "shell2spatialmodel": [257, 261, 489, 541], "shellspatialmodel": [80, 257, 260, 403, 431, 489, 540], "sherpa": [107, 110, 150, 197, 198, 201, 202, 211, 291, 297, 379, 380, 389, 397, 398, 400, 401, 411, 412, 414, 421, 435, 436, 437, 438, 440, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 531, 552, 579], "sherpa_opt": 483, "shift": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 275, 416, 447], "shim": 387, "shini": 365, "ship": [387, 388, 397, 420, 438, 458, 471, 475, 489, 518], "shock": [50, 52, 53, 511], "short": [380, 381, 384, 385, 389, 394, 397, 400, 403, 406, 428, 473, 478, 494, 518, 519, 577, 580, 583], "short_observ": [473, 477], "shortcut": [82, 416, 433], "shorten": 431, "shorter": [295, 380, 381, 394, 400, 405, 428, 458, 473, 489, 578], "should": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 87, 90, 91, 102, 104, 105, 108, 109, 110, 113, 115, 117, 123, 124, 125, 126, 130, 133, 136, 137, 138, 139, 145, 151, 152, 155, 161, 163, 166, 178, 183, 184, 189, 191, 192, 193, 194, 196, 198, 200, 201, 202, 204, 205, 206, 214, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 307, 355, 369, 370, 371, 381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 403, 405, 406, 407, 409, 410, 412, 414, 415, 416, 421, 423, 445, 457, 463, 466, 467, 468, 474, 475, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 495, 514, 516, 518, 523, 525, 530, 578, 579, 581, 582], "shoulder": 279, "shouldn": [83, 380, 383], "show": [11, 82, 87, 91, 127, 128, 129, 154, 173, 239, 377, 380, 381, 383, 392, 394, 395, 399, 400, 408, 410, 420, 421, 425, 433, 438, 439, 440, 445, 446, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 510, 511, 512, 518, 520, 521, 522, 524, 525, 527, 529, 535, 544, 563, 576, 578, 580, 583], "show_dtyp": [87, 91], "show_in_brows": [87, 91, 465], "show_in_notebook": [87, 91], "show_nam": [87, 91], "show_progress_bar": 518, "show_row_index": [87, 91], "show_unit": [87, 91], "showcas": 491, "shower": [435, 493, 523], "shown": [19, 20, 26, 83, 161, 201, 202, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 375, 380, 387, 397, 398, 399, 407, 408, 409, 410, 425, 427, 452, 455, 459, 463, 465, 466, 467, 468, 473, 474, 475, 478, 485, 488, 489, 490, 491, 493, 503, 515], "showwarn": 380, "si": [83, 192, 201, 204, 224, 247, 279, 531], "side": [204, 206, 288, 290, 380, 394], "sider": 582, "sidereal_tim": 381, "siejkowski": 440, "sig": [373, 579, 580, 581], "sight": 506, "sigma": [19, 20, 30, 32, 48, 49, 122, 123, 124, 125, 126, 130, 131, 133, 141, 142, 150, 151, 155, 161, 162, 163, 166, 209, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 286, 288, 290, 296, 403, 408, 451, 459, 465, 466, 471, 472, 478, 482, 483, 487, 489, 491, 502, 516, 522, 536, 551, 567, 580], "sigma1": 31, "sigma2": 31, "sigma_": [209, 536], "sigma_1": [31, 49, 154, 484], "sigma_10tev": [403, 489], "sigma_1tev": [403, 489], "sigma_2": [31, 49, 154, 484], "sigma_3": [154, 484], "sigma_err": 466, "sigma_gauss": 237, "sigma_laplac": 237, "sigma_m": 536, "sigma_nod": 489, "sigma_to_t": 580, "sigmav": 506, "sign": [214, 216, 288, 290, 383, 406, 427, 442, 516, 580], "signal": [83, 102, 105, 108, 109, 110, 178, 206, 262, 288, 290, 304, 404, 450, 455, 456, 461, 464, 472, 487, 502, 506, 521, 525, 527, 577, 579, 580, 581], "signif_avg": 504, "signific": [77, 118, 122, 123, 124, 125, 132, 133, 135, 144, 145, 286, 288, 290, 294, 370, 371, 378, 385, 386, 387, 388, 395, 396, 400, 401, 404, 406, 427, 428, 436, 439, 440, 445, 446, 447, 449, 450, 455, 456, 462, 463, 464, 465, 466, 472, 475, 477, 478, 480, 482, 483, 495, 498, 502, 504, 516, 518, 576, 577, 578], "significance_lima": 427, "significance_map": [461, 463], "significance_map_off": 461, "significance_mask": 487, "significance_mask_inv": 487, "significancemapestim": 427, "significantli": [431, 451, 467, 493], "signoff": 383, "silent": [442, 447], "silvia": 423, "simeq": 53, "similar": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 371, 380, 383, 392, 393, 394, 395, 396, 399, 400, 401, 404, 431, 445, 457, 478, 482, 486, 490, 491, 504, 514, 522, 578], "similarli": [386, 388, 404, 407, 431, 480, 483, 484, 486, 487, 489, 531], "simlat": 289, "simon": [444, 445, 446], "simpifi": 389, "simpl": [50, 52, 141, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 279, 380, 381, 392, 393, 394, 395, 396, 399, 404, 407, 408, 421, 431, 435, 439, 440, 445, 450, 452, 453, 455, 456, 457, 458, 460, 463, 475, 477, 478, 482, 483, 486, 487, 490, 496, 502, 503, 504, 508, 518, 576, 577, 578], "simple_norm": 206, "simple_rebin_lc": 395, "simplefilt": 518, "simpler": [181, 388, 393, 394, 402], "simplest": [450, 455, 478], "simplex": [211, 483], "simpli": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 87, 91, 170, 211, 215, 217, 380, 394, 395, 404, 412, 413, 414, 442, 445, 450, 451, 452, 465, 481, 487, 488, 489, 504, 531, 578, 580], "simplic": [464, 467, 483, 489, 491, 494], "simplif": [391, 403, 442], "simplifi": [133, 200, 387, 389, 391, 398, 404, 421, 424, 425, 426, 428, 431, 435, 442, 451, 453, 459, 523, 581], "simu": [471, 474, 491], "simul": [45, 83, 88, 93, 102, 105, 108, 109, 110, 113, 152, 163, 166, 289, 337, 390, 393, 396, 400, 407, 408, 412, 419, 423, 425, 427, 433, 436, 438, 439, 440, 445, 446, 447, 449, 454, 460, 463, 465, 470, 475, 476, 488, 491, 493, 498, 508, 523, 576], "simulate_3d": [400, 440, 449, 470, 471], "simulate_dataset": [421, 425, 426], "simulate_observ": 93, "simulated_d": 457, "simulated_data": 93, "simulated_model": 457, "simultan": [408, 474, 481, 489, 491, 514], "sin": [535, 536, 537, 571], "sinc": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 51, 87, 91, 194, 204, 355, 380, 381, 386, 390, 394, 396, 397, 398, 399, 400, 404, 406, 407, 408, 410, 431, 441, 442, 443, 444, 445, 446, 447, 451, 457, 461, 463, 473, 474, 477, 481, 488, 489, 491, 493, 495, 550, 579, 582], "sine": [262, 391, 449, 532, 574], "sine_model": 571, "sinetemporalmodel": [270, 489, 571], "singl": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 87, 88, 89, 91, 93, 95, 122, 126, 127, 130, 133, 151, 152, 163, 165, 166, 169, 173, 175, 180, 183, 184, 189, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 224, 247, 380, 386, 387, 390, 392, 393, 394, 395, 396, 397, 401, 402, 407, 408, 412, 419, 421, 426, 427, 439, 445, 446, 450, 455, 457, 459, 460, 461, 472, 474, 480, 481, 485, 486, 488, 491, 495, 496, 502, 504, 514, 516, 528, 530, 531, 575, 577], "singleobscubemak": 386, "singleobsimagemak": 386, "singleton": 331, "sinha": [392, 395, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 439, 440, 441, 442, 443, 444, 445, 446, 447], "sink": 397, "sinu": [262, 489], "sinusoid": [262, 571], "sipocz": [397, 421, 423, 425, 427, 436, 437, 438, 439, 440, 441], "sip\u0151cz": [442, 447], "sit": 383, "site": [344, 410, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566, 578], "situat": [394, 395, 397, 523], "six": [399, 405], "size": [19, 20, 26, 46, 47, 67, 72, 80, 87, 88, 91, 102, 103, 105, 108, 109, 110, 112, 113, 114, 115, 117, 128, 133, 136, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 168, 169, 175, 176, 177, 180, 181, 182, 190, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 209, 218, 219, 221, 222, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 298, 329, 330, 334, 335, 336, 337, 368, 380, 388, 391, 393, 394, 412, 414, 444, 446, 450, 457, 461, 463, 467, 473, 475, 480, 485, 486, 487, 489, 493, 494, 495, 496, 504, 514, 529, 535, 536, 582], "skeleton": 396, "sketch": 396, "skill": [383, 416], "skimag": 440, "skip": [16, 82, 84, 90, 104, 124, 161, 368, 381, 383, 392, 394, 400, 438, 477, 488], "skip_miss": [82, 439], "sklearn": 380, "sky": [6, 13, 41, 57, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 83, 88, 96, 102, 105, 108, 109, 110, 118, 141, 151, 152, 163, 166, 186, 192, 193, 194, 196, 201, 202, 204, 205, 206, 224, 247, 263, 275, 279, 281, 309, 313, 314, 338, 340, 342, 367, 379, 380, 381, 393, 399, 412, 421, 423, 437, 438, 440, 451, 455, 456, 458, 459, 461, 471, 474, 475, 480, 486, 489, 493, 494, 498, 500, 502, 503, 504, 506, 513, 514, 515, 518, 523, 524, 527, 529, 531, 535, 536, 540, 541, 542, 576, 577], "sky_circl": [91, 96, 473, 477, 490, 503], "sky_model": [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 115, 117, 395, 451, 472, 473, 477, 480, 488, 489, 503, 546], "sky_model_pntpwl": 467, "sky_reg": 479, "sky_reg_rec": 479, "sky_region": 89, "skycood": 391, "skycoord": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 85, 87, 88, 91, 94, 96, 102, 105, 109, 110, 112, 113, 123, 125, 127, 129, 151, 152, 158, 163, 166, 176, 177, 179, 181, 183, 184, 186, 187, 189, 190, 192, 193, 194, 196, 199, 201, 202, 204, 205, 206, 207, 220, 221, 224, 225, 234, 237, 247, 249, 251, 260, 261, 263, 265, 271, 273, 275, 305, 306, 339, 340, 356, 376, 381, 391, 394, 404, 407, 450, 452, 455, 457, 458, 461, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 493, 494, 495, 496, 503, 504, 518, 522, 527, 529, 531, 539], "skycoord_from_t": 394, "skycoord_to_pixel_scale_angl": 394, "skycoordconfig": 16, "skycub": [386, 399, 437, 438, 439, 440], "skydiffusecub": [391, 403, 422, 427, 428, 440], "skydiffusemap": [391, 422], "skydir": [16, 83, 102, 105, 109, 110, 111, 116, 152, 163, 173, 191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 455, 456, 457, 460, 461, 463, 465, 466, 467, 468, 471, 472, 475, 479, 481, 484, 485, 486, 487, 489, 494, 495, 502, 503, 525, 527, 528, 529, 531, 536, 537, 538, 539], "skydirfunct": 506, "skydisk": 422, "skydiskelong": 391, "skyellips": [421, 422, 423, 424], "skygaussian": 421, "skygaussianelong": 391, "skyimag": [386, 399, 437, 438, 439, 440], "skyimagelist": 437, "skymap": [193, 194, 196, 202, 205, 206, 394, 436, 437, 468], "skymap_band": [468, 573], "skymap_region": 468, "skymask": 438, "skymodel": [67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 101, 102, 105, 109, 110, 115, 117, 123, 125, 131, 133, 134, 143, 170, 211, 224, 243, 247, 281, 286, 391, 392, 393, 395, 401, 403, 404, 421, 425, 426, 427, 431, 440, 446, 451, 452, 453, 455, 456, 457, 458, 459, 460, 463, 464, 465, 466, 467, 468, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 488, 491, 494, 502, 503, 513, 514, 516, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575], "skypointsourc": 424, "skyregion": [100, 102, 105, 109, 110, 127, 151, 152, 158, 163, 166, 176, 177, 181, 196, 201, 202, 206, 224, 247, 338, 341, 394, 452, 467, 469, 487, 489, 522, 527, 531], "skyspatialmodel": [391, 440], "slack": [382, 383, 387, 403, 409, 415, 420, 421, 578], "slew": 95, "slice": [83, 87, 91, 100, 102, 105, 109, 110, 120, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 273, 275, 299, 386, 428, 466, 469, 473, 481, 482, 493, 530], "slice_by_coord": [123, 125, 446], "slice_by_energi": [100, 102, 105, 109, 110, 123, 125, 273, 428, 481], "slice_by_idx": [102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 428, 440, 442, 469, 473, 482, 486, 494], "slice_by_tim": [123, 125], "sliced_ax": 197, "sliced_geom": [191, 192, 201, 204], "sliced_lc": 473, "slide": [389, 459, 480], "slider": 486, "sliderstyl": [463, 471, 486, 502, 503], "slightli": [118, 198], "slope": [27, 422], "slow": [87, 91, 211, 387, 396, 456, 483, 502, 503], "slower": [87, 91, 194, 380, 388, 398], "slowest": 410, "small": [371, 380, 386, 388, 394, 396, 397, 400, 402, 407, 410, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 472, 473, 486, 491, 493, 494, 495, 496, 536, 540, 541, 577, 578], "smaller": [27, 152, 163, 166, 181, 192, 193, 194, 196, 202, 205, 206, 373, 383, 421, 440, 467, 473, 478, 483, 486, 491, 536], "smallest": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 276, 459], "smooth": [102, 105, 109, 110, 118, 128, 129, 141, 194, 206, 225, 264, 372, 375, 431, 436, 437, 438, 440, 441, 449, 461, 463, 465, 469, 471, 475, 481, 485, 486, 488, 494, 502, 503, 504, 532, 535, 564], "smooth_kernel": [102, 105], "smooth_radiu": [102, 105], "smoothbrokenpowerlawspectralmodel": [218, 258, 403, 426, 427, 489, 559], "sn": [45, 50, 52, 53], "sn_rate": [45, 508], "snippet": [381, 400, 518], "snr": [44, 50, 53, 67, 494, 511, 512], "snr_model": 512, "snrcat": [435, 480], "snrtruelovemcke": [50, 511, 512], "so": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 87, 91, 95, 101, 105, 110, 122, 126, 128, 130, 131, 133, 134, 143, 146, 151, 152, 158, 163, 166, 190, 193, 194, 196, 198, 202, 205, 206, 211, 214, 216, 237, 275, 286, 355, 363, 370, 371, 380, 381, 383, 385, 386, 387, 388, 391, 392, 393, 394, 395, 397, 398, 399, 400, 401, 402, 403, 404, 407, 409, 411, 412, 414, 416, 421, 423, 431, 441, 443, 444, 447, 452, 455, 457, 459, 460, 465, 466, 467, 471, 472, 479, 480, 482, 483, 486, 487, 489, 491, 493, 494, 495, 498, 503, 518, 525, 527, 531, 537, 541, 578, 579, 580, 581], "social": 406, "soft": 295, "softwar": [193, 194, 196, 205, 206, 394, 395, 397, 406, 407, 410, 486, 518], "solar": 52, "sole": [390, 406], "solid": [191, 192, 201, 204, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275, 279, 396, 419, 421, 422, 423, 440, 461, 485, 486, 493, 521, 527, 577], "solid_angl": [191, 192, 201, 204, 486, 531], "solut": [19, 20, 26, 52, 134, 143, 150, 218, 219, 222, 226, 228, 229, 230, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 274, 276, 381, 383, 385, 387, 388, 393, 394, 396, 397, 398, 400, 402, 404, 408, 413, 482, 514, 516, 518, 581], "solv": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 383, 388, 390, 391, 392, 393, 433, 518], "some": [13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 72, 77, 82, 84, 87, 90, 91, 104, 124, 179, 200, 307, 315, 383, 385, 386, 387, 388, 389, 394, 395, 396, 397, 398, 399, 400, 401, 404, 405, 406, 407, 410, 412, 413, 414, 415, 416, 417, 419, 421, 423, 431, 432, 434, 436, 438, 439, 440, 445, 450, 452, 453, 455, 457, 459, 460, 461, 464, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 485, 486, 488, 489, 491, 493, 494, 503, 504, 506, 507, 514, 515, 518, 523, 528, 530, 578, 579, 580, 582], "some_class": 380, "some_map": 161, "some_map_convolv": 161, "somehow": [388, 394, 399], "someon": [383, 385, 400], "someth": [87, 91, 380, 381, 382, 383, 385, 388, 394, 397, 398, 400, 410, 412, 414, 458, 480, 531, 578], "sometim": [19, 20, 83, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 358, 380, 383, 387, 394, 400, 410, 412, 483, 518, 577, 582], "somewhat": [397, 493], "somewher": [383, 397, 410], "soon": [383, 394, 410], "sort": [82, 83, 87, 91, 101, 141, 343, 348, 349, 380, 397, 422, 447, 504], "sort_kei": [343, 348, 349], "sortedarrai": [87, 91], "sourc": [6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 380, 381, 383, 385, 388, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 406, 410, 412, 417, 419, 421, 425, 426, 431, 432, 437, 438, 439, 440, 445, 446, 447, 449, 451, 453, 454, 456, 457, 458, 460, 461, 462, 463, 464, 469, 470, 471, 472, 473, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 486, 488, 489, 490, 492, 494, 495, 496, 498, 500, 502, 503, 506, 507, 512, 514, 516, 518, 523, 526, 527, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 579, 580], "source1": 489, "source2": 489, "source_1": [391, 396], "source_2": 391, "source_42": 396, "source_fermi_3fgl": 453, "source_fermi_3fhl": 453, "source_gammacat": 453, "source_irf_model": 391, "source_librari": 493, "source_model": 557, "source_nam": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 480, 504], "source_name_alia": 56, "source_name_kei": 56, "source_po": [461, 465, 485], "source_population_model": [400, 425], "source_posit": [450, 466, 490], "sourcebackground": 391, "sourcecatalog": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 394, 431, 480, 487, 504, 513], "sourcecatalog1lhaaso": [55, 70, 480], "sourcecatalog2fhl": [55, 71, 480, 513], "sourcecatalog2hwc": [55, 72, 480, 513], "sourcecatalog2pc": [55, 480], "sourcecatalog3fgl": [55, 74, 453, 480, 513], "sourcecatalog3fhl": [55, 75, 453, 480, 488, 504, 513], "sourcecatalog3hwc": [55, 76, 480, 513], "sourcecatalog3pc": [55, 480], "sourcecatalog4fgl": [55, 78, 433, 451, 480, 513], "sourcecataloggammacat": [55, 79, 453, 480, 513], "sourcecataloghgp": [55, 80, 81, 480, 513], "sourcecataloglargescalehgp": 67, "sourcecatalogobject": [70, 79, 80, 81, 480, 513], "sourcecatalogobject1lhaaso": 57, "sourcecatalogobject2fhl": 58, "sourcecatalogobject2hwc": 59, "sourcecatalogobject2pc": 60, "sourcecatalogobject3fgl": 61, "sourcecatalogobject3fhl": 62, "sourcecatalogobject3hwc": 63, "sourcecatalogobject3pc": 64, "sourcecatalogobject4fgl": 65, "sourcecatalogobjectfermibas": [71, 74, 75, 78], "sourcecatalogobjectfermipcbas": [73, 77], "sourcecatalogobjectgammacat": 66, "sourcecatalogobjecthgp": [67, 81, 420, 480], "sourcecatalogobjecthgpscompon": 67, "sourcecatalogobjecthwcbas": [72, 76], "sourceevalu": 391, "sources_flux_map": 459, "sourcetempl": 391, "south": [467, 468, 493], "south_z20_50h": [82, 148, 152, 153, 154, 163, 450, 458, 471, 474, 484, 493], "south_z40_50h": 493, "southaz": 493, "southern": 493, "space": [87, 91, 102, 105, 109, 110, 203, 206, 271, 272, 289, 318, 336, 379, 380, 390, 396, 402, 475, 481, 483, 486, 530, 554, 563], "span": 490, "spars": [192, 193, 194, 196, 201, 204, 205, 206, 422, 431, 439, 468, 486], "sparsif": 404, "sparsifi": [193, 194, 196, 205, 206], "spatail": 133, "spatial": [1, 46, 48, 67, 70, 71, 72, 74, 75, 76, 78, 79, 80, 81, 83, 102, 105, 109, 110, 112, 113, 123, 125, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 175, 191, 192, 193, 194, 196, 197, 199, 201, 202, 204, 205, 206, 215, 217, 220, 221, 224, 225, 232, 234, 237, 247, 249, 251, 257, 260, 261, 263, 265, 271, 273, 275, 286, 373, 375, 380, 386, 389, 392, 393, 394, 396, 398, 399, 404, 412, 420, 421, 423, 424, 425, 426, 428, 431, 439, 440, 442, 445, 446, 447, 449, 451, 453, 456, 458, 459, 460, 463, 464, 466, 467, 468, 469, 471, 473, 474, 475, 477, 480, 481, 482, 485, 488, 492, 494, 498, 502, 506, 507, 514, 516, 518, 519, 529, 530, 543, 575, 576, 577], "spatial_bin_s": [112, 113], "spatial_bin_size_min": [112, 113], "spatial_model": [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 115, 117, 133, 225, 232, 263, 273, 286, 395, 425, 451, 459, 463, 465, 466, 467, 468, 471, 472, 473, 477, 480, 481, 488, 489, 494, 503, 534, 535, 536, 537, 538, 539, 540, 541, 542], "spatial_model_point": 467, "spatial_model_registri": 489, "spatial_par": 403, "spatial_typ": 403, "spatial_width": [112, 113], "spatial_width_max": [112, 113], "spatialbackground": 391, "spatialcircleconfig": 16, "spatialconst": 391, "spatialgaussian": 391, "spatialmodel": [70, 71, 72, 74, 75, 76, 78, 79, 80, 220, 221, 225, 232, 234, 237, 249, 251, 260, 261, 263, 271, 273, 275, 391, 403, 425, 440, 444, 480, 489, 503, 506, 513, 532, 575], "spatialtempl": 391, "spatiamodel": 161, "speak": 483, "spec": [80, 110, 380, 394, 436, 463, 468, 480, 493, 503], "spec_model_tru": 475, "special": [87, 91, 237, 380, 390, 392, 394, 395, 403, 406, 407, 420, 447, 460, 480, 481, 482, 488, 489], "specialis": [394, 400], "specif": [15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 86, 87, 91, 94, 102, 105, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 169, 183, 184, 189, 193, 194, 195, 196, 198, 202, 203, 204, 205, 206, 211, 239, 273, 286, 369, 379, 380, 381, 383, 385, 390, 392, 394, 395, 396, 397, 398, 399, 401, 404, 405, 406, 407, 410, 412, 413, 425, 428, 431, 433, 442, 443, 445, 451, 452, 455, 457, 458, 461, 463, 464, 469, 471, 474, 475, 481, 483, 484, 486, 487, 490, 491, 496, 498, 504, 514, 515, 516, 518, 520, 521, 522, 524, 529, 530, 531, 582], "specifi": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 87, 88, 90, 91, 92, 96, 101, 102, 104, 105, 109, 110, 118, 120, 123, 124, 125, 126, 128, 130, 131, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 168, 179, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 204, 205, 206, 224, 239, 247, 286, 307, 309, 313, 318, 367, 390, 397, 402, 405, 413, 424, 427, 431, 447, 451, 457, 460, 461, 463, 466, 469, 471, 481, 482, 483, 484, 485, 486, 488, 489, 493, 503, 514, 516, 529], "spectra": [26, 109, 110, 126, 131, 146, 211, 258, 279, 286, 386, 389, 391, 393, 395, 399, 403, 419, 423, 436, 440, 451, 452, 457, 458, 464, 468, 472, 474, 475, 481, 482, 483, 485, 489, 491, 506, 514, 516, 518, 577], "spectral": [1, 19, 20, 26, 52, 53, 66, 67, 69, 70, 71, 72, 74, 75, 76, 78, 79, 80, 101, 102, 105, 109, 110, 118, 122, 123, 125, 126, 127, 130, 132, 133, 140, 161, 163, 166, 170, 215, 217, 218, 219, 222, 224, 226, 228, 229, 230, 232, 235, 239, 241, 242, 244, 245, 247, 248, 250, 252, 253, 254, 258, 259, 263, 264, 266, 267, 268, 269, 272, 273, 274, 276, 279, 280, 295, 334, 386, 389, 391, 392, 393, 394, 395, 396, 398, 399, 401, 402, 404, 412, 420, 422, 423, 424, 425, 426, 427, 428, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 454, 458, 459, 460, 463, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 485, 487, 488, 491, 492, 493, 494, 502, 503, 506, 507, 513, 514, 516, 517, 518, 519, 525, 526, 527, 534, 535, 536, 537, 538, 539, 540, 541, 542, 560, 561, 562, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 579], "spectral_analysi": [449, 454, 455], "spectral_analysis_hli": [449, 454, 456], "spectral_analysis_rad_max": [449, 454, 457], "spectral_cub": 432, "spectral_index": [19, 20, 26, 52, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276], "spectral_index_error": [19, 20, 26, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 445], "spectral_irf_model": 391, "spectral_model": [66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 101, 109, 110, 115, 117, 118, 122, 127, 131, 132, 133, 140, 161, 163, 166, 170, 211, 224, 232, 245, 247, 263, 273, 286, 395, 398, 402, 403, 404, 408, 428, 447, 450, 451, 452, 453, 455, 457, 458, 459, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 480, 481, 482, 483, 488, 489, 491, 494, 503, 504, 516, 525, 534, 535, 536, 537, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "spectral_model1": 474, "spectral_model2": 474, "spectral_model_pwl": 467, "spectral_model_registri": 489, "spectral_par": 403, "spectral_point": 396, "spectral_typ": 403, "spectralbackground": 391, "spectralbackgroundmodel": 392, "spectralcompoundmodel": 391, "spectralconst": 391, "spectralevalu": 391, "spectralexponentialcutoffpowerlaw3fgl": 399, "spectralgaussian": [391, 423], "spectralmodel": [19, 20, 71, 74, 75, 78, 79, 80, 101, 118, 122, 123, 125, 127, 132, 140, 161, 163, 166, 170, 218, 219, 222, 224, 226, 228, 229, 230, 232, 235, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 263, 264, 267, 268, 269, 272, 273, 276, 279, 391, 392, 395, 398, 404, 428, 431, 438, 445, 447, 480, 489, 503, 504, 513, 532, 575], "spectralregion": 394, "spectraltempl": 391, "spectroscopi": [447, 449, 473, 476, 498, 527], "spectrum": [19, 20, 26, 72, 76, 98, 100, 101, 102, 105, 106, 109, 110, 123, 125, 130, 132, 137, 163, 166, 171, 175, 179, 180, 193, 194, 196, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 280, 289, 295, 377, 386, 391, 392, 395, 396, 399, 400, 401, 412, 422, 423, 424, 425, 427, 431, 433, 436, 437, 438, 439, 440, 442, 444, 447, 449, 452, 453, 454, 456, 463, 464, 467, 468, 469, 474, 479, 480, 481, 487, 489, 493, 494, 498, 502, 504, 506, 514, 518, 523, 531, 545, 548, 549, 551, 552, 556, 557, 559, 560, 561, 562, 578], "spectrum_analysi": 455, "spectrum_dataset": [146, 392, 475, 481], "spectrum_dataset_1": 392, "spectrum_dataset_2": 392, "spectrum_dataset_empti": [475, 485], "spectrum_dataset_mak": [475, 485], "spectrum_dataset_on_off": 475, "spectrum_fitting_with_sherpa": 400, "spectrum_mak": 450, "spectrum_simul": [400, 449, 454, 458], "spectrumanalysisiact": [396, 424, 438], "spectrumdataset": [98, 99, 100, 102, 105, 110, 130, 132, 146, 174, 175, 179, 180, 232, 401, 422, 423, 424, 425, 426, 427, 428, 431, 434, 450, 452, 455, 457, 458, 465, 473, 474, 475, 477, 483, 485, 491, 527, 579], "spectrumdatasetmak": [171, 425, 431, 450, 452, 455, 457, 458, 465, 473, 474, 475, 477, 485, 527], "spectrumdatasetonoff": [98, 105, 106, 107, 109, 131, 132, 146, 174, 175, 211, 286, 377, 395, 422, 423, 424, 426, 427, 443, 444, 445, 450, 451, 452, 455, 456, 458, 464, 465, 472, 475, 477, 481, 482, 483, 485, 491, 514, 516, 579], "spectrumdatasetonoffstack": 424, "spectrumdatasetsonoff": 392, "spectrumenergygroup": 439, "spectrumevalu": 427, "spectrumextract": [395, 422, 425, 438], "spectrumfit": [422, 438, 439, 440], "spectrumobserv": [392, 422, 438], "spectrumobservationlist": [422, 437], "spectrumobservationstack": 437, "spectrumonoffdataset": 395, "spectrumresult": 422, "spectrumsimul": [423, 437, 440], "spectrumstack": 439, "spectrumstat": 423, "specutil": 394, "speed": [133, 307, 383, 413, 423, 425, 433, 439, 440, 447, 483], "spell": [385, 518], "spend": [393, 400], "spent": [387, 485], "sphere": [47, 335, 419, 421, 530, 535, 536, 539], "spherepointpick": 335, "spheric": [47, 380, 421, 530, 576], "sphericalcircleskyregion": [399, 475, 504], "sphinx": [383, 387, 400, 410, 422, 426, 433, 439, 440, 442, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "sphinx_gallery_conf": 410, "sphinx_gallery_thumbnail_numb": [381, 451, 455, 457, 459, 461, 466, 469, 484, 544], "sphinxext": 381, "spill": 485, "spin": [50, 51, 54, 423, 510], "spir": [421, 440], "spiral": [33, 34, 38, 45, 435], "spiralarm": [33, 38, 45, 439, 508], "spiralarm_index": [33, 34, 38], "spirit": 406, "split": [19, 20, 87, 91, 92, 115, 117, 123, 125, 193, 194, 196, 202, 205, 206, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 386, 388, 390, 392, 394, 395, 399, 401, 403, 412, 428, 446, 473, 489, 507, 583], "split_by_axi": [193, 194, 196, 202, 205, 206], "split_template_model": [115, 117], "sporad": 407, "spot": 380, "spread": [82, 88, 154, 163, 166, 380, 402, 428, 450, 459, 484, 523, 577], "spring": [390, 441], "sprint": [388, 389, 393, 396, 397, 398, 399, 401], "spuriou": 141, "sqrt": [19, 20, 30, 31, 32, 67, 101, 102, 105, 109, 110, 118, 123, 125, 128, 133, 193, 194, 196, 198, 202, 205, 206, 209, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 287, 296, 319, 320, 321, 392, 452, 455, 459, 461, 463, 469, 471, 475, 478, 480, 483, 485, 486, 488, 494, 502, 503, 504, 516, 536, 537, 540, 541, 551, 580], "sqrt_space": [399, 425], "sqrt_t": [118, 122, 123, 125, 133, 141, 142, 146, 288, 290, 373, 404, 416, 428, 452, 455, 456, 459, 461, 463, 465, 475, 480, 481, 482, 487, 495, 502, 504, 516, 578, 580], "sqrt_ts_min": [146, 455], "sqrt_ts_threshold_ul": [71, 74, 75, 78, 122, 123, 124, 125, 127, 133, 459, 469, 472, 473, 480, 481, 482, 502, 504], "squar": [17, 18, 21, 22, 24, 25, 27, 46, 102, 105, 123, 124, 150, 151, 152, 158, 163, 166, 169, 190, 204, 206, 273, 293, 395, 398, 428, 487, 491, 506, 516, 530, 578, 579, 580, 581], "squash": [152, 191, 192, 195, 197, 198, 201, 203, 204, 445, 450, 461, 481, 486], "squeez": [450, 484], "sr": [147, 148, 149, 160, 191, 192, 201, 204, 221, 275, 279, 450, 458, 460, 463, 465, 471, 474, 480, 481, 484, 486, 489, 493, 494, 523, 534, 542], "src": [393, 451, 466, 514], "src_above_bkg": 466, "src_event": [467, 468], "src_posit": [467, 468], "srcmap": [192, 193, 194, 196, 205, 206, 486], "ssc": [58, 60, 61, 62, 64, 65, 248, 400, 557], "ssc_model": 248, "st": [53, 483, 494], "stabil": [19, 20, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 405, 471], "stabl": [11, 87, 91, 201, 211, 307, 387, 388, 389, 396, 397, 400, 405, 409, 410, 411, 413, 425, 426, 427, 433, 438, 440, 442, 483, 515], "stack": [16, 83, 86, 92, 100, 101, 102, 104, 105, 109, 110, 122, 123, 125, 134, 143, 151, 152, 158, 163, 166, 169, 193, 194, 195, 196, 201, 202, 205, 206, 209, 215, 217, 273, 350, 380, 392, 395, 396, 402, 407, 421, 424, 425, 428, 431, 436, 437, 442, 443, 445, 447, 451, 452, 456, 460, 464, 465, 472, 475, 481, 483, 485, 490, 491, 502, 503, 515, 516, 525, 528], "stack_dataset": [169, 475, 485], "stack_reduc": [100, 146, 211, 424, 452, 455, 457, 463, 464, 465, 475, 481, 483, 516], "stacked_dataset": [465, 466], "stacked_fit": 455, "stacked_on_off": 461, "stackedobscubemak": 386, "stackedobsimagemak": 386, "stackoverflow": 347, "stage": [383, 396, 461, 463, 474, 481, 514, 577], "stai": [392, 409], "stand": 385, "standard": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 86, 87, 91, 96, 194, 206, 211, 233, 280, 289, 306, 362, 363, 380, 381, 383, 385, 389, 391, 392, 393, 396, 398, 404, 406, 407, 416, 423, 424, 440, 446, 450, 451, 456, 458, 461, 464, 466, 468, 471, 473, 474, 477, 479, 483, 486, 489, 490, 491, 493, 496, 498, 502, 514, 517, 522, 530, 576, 577, 578], "standard_broadcast": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "standard_scal": [96, 305, 490], "standardis": [352, 353, 365, 439], "standardise_unit": [352, 366], "standpoint": 380, "stapel": [446, 447], "star": [36, 40, 226], "starmap": [323, 327, 328], "start": [16, 53, 83, 86, 88, 89, 91, 92, 94, 100, 130, 141, 203, 223, 224, 231, 236, 238, 239, 240, 247, 255, 262, 274, 277, 380, 381, 383, 385, 387, 388, 389, 390, 393, 394, 396, 397, 405, 406, 408, 409, 410, 414, 415, 416, 417, 419, 424, 433, 436, 437, 438, 439, 440, 445, 447, 449, 450, 451, 452, 453, 455, 456, 457, 459, 460, 461, 463, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 479, 480, 482, 486, 489, 493, 494, 495, 498, 502, 504, 505, 518, 522, 576], "start_po": [127, 340, 469], "startswith": 380, "stat": [6, 100, 101, 105, 110, 123, 125, 126, 127, 130, 131, 133, 211, 212, 214, 216, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 373, 380, 392, 400, 408, 410, 416, 423, 425, 426, 427, 428, 431, 437, 440, 441, 442, 446, 447, 452, 453, 455, 456, 457, 459, 461, 463, 464, 465, 466, 469, 473, 475, 477, 478, 482, 483, 491, 494, 502, 503, 516, 578, 579, 580], "stat_arrai": [99, 101, 102, 105, 109, 110, 408, 447], "stat_contour": 211, "stat_kwarg": 101, "stat_max": [288, 290], "stat_nul": [123, 125, 126, 127, 130, 131, 133, 288, 290, 446, 459, 469, 473, 482, 516], "stat_per_bin": 392, "stat_profil": [211, 451, 483, 491, 518], "stat_scan": [101, 123, 125, 126, 127, 130, 131, 133, 134, 143, 211, 287, 447, 451, 455, 473, 482, 483, 491, 516], "stat_sum": [99, 100, 101, 102, 105, 109, 110, 408, 444, 445, 463, 474, 481, 488, 518], "stat_surfac": [211, 428, 518], "stat_typ": [101, 102, 105, 109, 110, 426, 455, 463, 474, 481, 488], "state": [16, 45, 47, 203, 211, 380, 386, 390, 392, 396, 400, 402, 404, 451, 456, 502, 523, 544], "stateless": 407, "statement": [380, 383, 387, 444, 446, 507], "static": [17, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 103, 106, 107, 108, 118, 122, 123, 125, 126, 127, 130, 131, 133, 154, 162, 173, 179, 180, 192, 193, 194, 196, 202, 203, 205, 206, 218, 220, 221, 222, 223, 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 252, 253, 254, 255, 260, 261, 262, 264, 267, 268, 269, 274, 276, 277, 278, 377, 388, 391, 410, 422, 439], "staticmethod": [391, 403, 408, 489, 491], "statist": [6, 19, 20, 26, 79, 99, 100, 101, 102, 105, 109, 110, 122, 123, 125, 126, 127, 130, 131, 133, 142, 146, 173, 211, 213, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 259, 264, 266, 267, 268, 269, 272, 276, 286, 287, 288, 290, 291, 292, 297, 304, 392, 395, 398, 399, 400, 402, 408, 422, 426, 427, 428, 431, 433, 445, 446, 450, 451, 456, 458, 459, 460, 461, 463, 465, 469, 471, 472, 474, 475, 478, 481, 483, 485, 491, 502, 503, 514, 516, 518, 525, 528, 576, 577], "statu": [19, 20, 26, 123, 125, 210, 212, 213, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 380, 383, 384, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 408, 441, 446, 488, 489], "std": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 289, 306, 458, 478, 494], "stddev": 68, "stderr": 380, "stdout": [315, 380], "steadi": 451, "steep": 458, "stefan": [435, 446, 447], "step": [19, 20, 26, 122, 126, 130, 131, 133, 211, 212, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 277, 380, 383, 386, 387, 390, 391, 392, 394, 395, 396, 398, 401, 405, 408, 409, 410, 416, 433, 440, 441, 445, 450, 455, 457, 460, 463, 465, 466, 467, 468, 473, 474, 481, 482, 483, 485, 489, 491, 502, 503, 504, 518, 526, 531], "stepprior": 408, "stepsiz": 168, "steradian": 201, "stewart": [133, 299, 459, 577], "stewart2009": [133, 577, 580], "stick": [383, 403, 421, 440, 483, 577], "still": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 387, 388, 390, 393, 394, 397, 399, 400, 401, 404, 405, 407, 409, 410, 438, 439, 440, 489, 491, 504, 516, 540, 541, 578], "stipul": 406, "stone": [380, 400], "stop": [16, 52, 83, 86, 88, 89, 91, 92, 100, 130, 133, 203, 223, 224, 231, 236, 238, 239, 240, 247, 255, 262, 274, 277, 390, 416, 445, 456, 460, 461, 463, 473, 475, 477, 483, 494, 502], "storag": [82, 518], "store": [11, 15, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 69, 82, 83, 85, 86, 87, 91, 123, 124, 125, 128, 130, 161, 174, 175, 193, 194, 196, 202, 205, 206, 211, 212, 214, 216, 224, 247, 363, 380, 381, 383, 386, 388, 389, 390, 392, 393, 396, 398, 402, 404, 406, 407, 410, 428, 431, 432, 447, 452, 457, 458, 467, 468, 475, 477, 478, 481, 482, 483, 484, 485, 486, 487, 490, 493, 494, 495, 496, 504, 514, 515, 518, 523, 524, 525, 530, 531, 554, 575, 576, 578, 582], "store_per_ob": 396, "store_trac": [211, 483], "str": [15, 16, 19, 20, 26, 50, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 77, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 112, 113, 120, 122, 123, 124, 125, 126, 128, 130, 131, 133, 134, 136, 137, 138, 139, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 164, 165, 166, 167, 170, 173, 174, 179, 180, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 212, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 281, 307, 319, 328, 343, 344, 345, 349, 362, 363, 365, 369, 373, 374, 376, 394, 407, 455, 457, 477, 485, 489], "str3": [87, 91], "straight": [381, 412, 518], "straightforward": [410, 581], "strang": 380, "strategi": [286, 380, 387, 394, 445, 483, 581], "stream": 380, "streil": [408, 444, 445, 446], "strength": [51, 54, 408, 554], "stretch": [193, 194, 196, 202, 205, 206, 370, 371, 375, 459, 463, 469, 471, 485, 486, 488, 494, 502, 503, 504], "strict": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 102, 104, 105, 124, 151, 152, 158, 163, 166, 169, 198, 204, 206, 273, 447], "strict_bound": 198, "strictli": [16, 84, 90, 104, 124, 198], "strike": 514, "string": [15, 16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 90, 91, 93, 104, 123, 124, 125, 126, 127, 130, 133, 154, 160, 162, 164, 169, 192, 193, 194, 196, 198, 199, 201, 202, 204, 205, 206, 214, 216, 224, 247, 307, 325, 369, 380, 393, 394, 397, 399, 406, 407, 419, 423, 431, 433, 456, 480, 487, 489, 502, 530, 531], "strip": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "strip_units_from_tre": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "strong": [52, 393, 400, 455], "stronger": 491, "strongli": [295, 395, 397, 406, 431, 460, 483, 491], "structur": [87, 91, 204, 303, 384, 385, 386, 389, 391, 393, 396, 400, 403, 406, 407, 418, 424, 425, 427, 431, 434, 446, 447, 449, 469, 481, 482, 485, 486, 487, 489, 498, 505, 506, 515, 519, 530, 531, 578], "stuck": 578, "student": 383, "studi": [46, 279, 303, 393, 396, 404, 413, 440, 447, 452, 453, 464, 465, 466, 469, 471, 473, 474, 477, 483, 486, 489, 493, 508, 518, 527, 579], "stuff": [381, 410, 518], "stuff1": 380, "stuff2": 380, "style": [87, 91, 101, 193, 194, 196, 202, 205, 206, 377, 383, 389, 406, 435, 437, 463, 471, 484, 486, 502, 503, 518, 531], "sub": [11, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 102, 105, 109, 110, 115, 117, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 193, 194, 195, 196, 198, 202, 203, 205, 206, 209, 380, 383, 387, 389, 390, 394, 399, 400, 401, 402, 407, 410, 419, 421, 425, 427, 428, 436, 438, 439, 465, 467, 482, 485, 487, 489, 495, 496, 514, 517, 518, 526, 576, 578, 582], "subclass": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 124, 307, 394, 437, 440, 489, 491], "subcompon": [67, 80], "subfold": [388, 431], "submit": [385, 406], "submodul": [388, 421, 422, 427, 486, 504, 516], "subok": 307, "subpackag": [401, 407, 424, 431, 435], "subplot": [66, 67, 193, 194, 196, 202, 205, 206, 450, 452, 453, 455, 456, 457, 458, 459, 461, 463, 464, 465, 469, 472, 474, 475, 477, 479, 482, 483, 484, 486, 487, 488, 490, 491, 503, 518, 520, 527, 537, 541, 544], "subplot_kw": [459, 461, 465, 475, 487, 527], "subplots_adjust": [473, 478, 479, 480], "subsect": [400, 486], "subsequ": [294, 389], "subset": [82, 83, 87, 91, 126, 130, 133, 248, 407, 435, 436, 465, 475, 488, 493, 495, 517, 576], "subspac": 394, "substanti": [87, 91], "substitut": 579, "substr": [224, 247], "subtract": 457, "succeed": 123, "success": [16, 84, 90, 101, 104, 123, 124, 125, 126, 127, 130, 131, 133, 210, 211, 212, 213, 408, 409, 431, 452, 453, 455, 456, 457, 459, 463, 464, 465, 469, 472, 473, 475, 477, 482, 483, 488, 494, 502, 503, 542], "successfulli": [101, 409, 452, 453, 455, 456, 457, 463, 464, 465, 474, 475, 477, 482, 483, 494, 502, 503], "sudo": 413, "suffer": [397, 475], "suffic": 474, "suffici": [383, 386, 393, 406, 445, 518], "suffix": [101, 123, 381, 391, 403, 489, 530, 532], "suggest": [383, 385, 387, 390, 394, 400, 402, 404, 408, 459, 467, 468, 518, 578], "suit": [194, 380, 531], "suitabl": 194, "sum": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 86, 102, 105, 109, 110, 125, 126, 127, 129, 130, 131, 133, 134, 135, 143, 144, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 193, 194, 196, 202, 205, 206, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 279, 288, 290, 292, 376, 380, 390, 391, 393, 402, 404, 408, 422, 446, 459, 463, 467, 475, 479, 481, 491, 494, 502, 503, 504, 514, 524, 577, 579], "sum_": 514, "sum_band": [193, 194], "sum_i": 128, "sum_j": 514, "sum_k": 514, "sum_of_implicit_term": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "sum_over_ax": [193, 194, 196, 202, 205, 206, 368, 440, 461, 463, 469, 475, 481, 485, 487, 488, 494, 503], "sum_over_energy_group": [122, 126, 133, 459, 465, 469], "summar": [389, 506], "summari": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 315, 319, 329, 354, 367, 381, 383, 400, 418, 452, 456, 473, 474, 481, 493, 502, 518], "summaris": [380, 385, 387, 400], "summat": [288, 290, 386], "summer": 388, "sun": 41, "sunpi": [397, 400, 401], "super": [192, 194, 267, 268, 269, 449, 457, 467, 496, 532, 564, 566], "superexpcutoffpowerlaw3fglspectralmodel": [258, 403, 489, 560], "superexpcutoffpowerlaw4fgldr3spectralmodel": [77, 258, 489, 561], "superexpcutoffpowerlaw4fglspectralmodel": [258, 403, 489, 562], "superflu": [390, 475], "supernova": [28, 52, 452, 466, 489, 508, 509], "superpixel": 192, "supersed": [192, 193, 194, 204, 205, 206], "supervisor": 396, "suppli": [19, 20, 26, 87, 91, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 451, 473, 474], "support": [83, 85, 86, 87, 88, 89, 91, 92, 95, 100, 102, 105, 109, 110, 114, 125, 145, 156, 161, 192, 193, 194, 195, 196, 198, 203, 204, 205, 206, 211, 224, 247, 379, 384, 385, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 407, 413, 417, 420, 421, 423, 424, 425, 426, 427, 428, 431, 433, 436, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 456, 458, 460, 463, 465, 471, 474, 479, 480, 481, 486, 491, 493, 494, 495, 496, 502, 517, 523, 530, 531, 573, 575, 576, 578], "suppos": [239, 274, 385, 392, 577, 579], "suppress": [150, 151, 155, 518], "sure": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380, 383, 385, 396, 409, 455, 472, 486, 518, 578], "surfac": [28, 30, 35, 36, 39, 40, 45, 211, 263, 279, 333, 399, 428, 483, 489, 508], "surface_brightness_err": 480, "surprisingli": 394, "surround": [52, 325, 380], "survei": [63, 67, 126, 226, 387, 390, 400, 416, 449, 493, 498, 499, 508, 513, 518, 577], "survey_map": [449, 499, 500], "suspect": 580, "suss": [389, 406], "svg": 380, "svwblbsb": 485, "swap": 192, "swept": 52, "swh": 406, "swhid": 406, "switch": [103, 108, 286, 380, 387, 390, 409, 433, 437], "switcher": 409, "sy": [380, 415], "syllabl": 518, "symbol": 487, "symmetr": [102, 105, 109, 110, 122, 131, 133, 181, 190, 194, 234, 380, 391, 421, 433, 436, 453, 474, 485, 491, 493, 506, 516, 524, 535, 536, 580], "symmetri": [194, 421], "sync": 440, "sync_constraint": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "synchronis": 406, "synchrotron": [248, 427, 554], "syntact": [87, 91], "syntax": [16, 87, 91, 381, 396, 399, 425, 442, 578], "synthesi": [508, 509], "synthet": 419, "system": [11, 83, 87, 91, 112, 113, 148, 156, 157, 192, 193, 194, 196, 199, 201, 204, 205, 206, 224, 247, 380, 386, 391, 393, 397, 400, 401, 405, 406, 408, 413, 421, 439, 445, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 529, 530, 576, 578, 582], "systemat": [391, 404, 406, 407, 428, 455, 472, 485, 516, 577, 579], "t": [16, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 50, 51, 52, 53, 67, 69, 83, 84, 86, 87, 88, 90, 91, 104, 118, 119, 120, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 135, 142, 143, 144, 145, 150, 190, 203, 224, 239, 247, 286, 288, 289, 290, 305, 352, 356, 379, 380, 381, 383, 385, 387, 388, 390, 392, 394, 396, 397, 398, 399, 400, 403, 404, 405, 407, 410, 411, 412, 414, 416, 428, 432, 435, 436, 437, 440, 445, 447, 450, 451, 452, 455, 460, 463, 465, 466, 469, 471, 472, 473, 475, 477, 478, 479, 480, 482, 483, 485, 486, 487, 489, 490, 491, 493, 494, 506, 510, 511, 512, 514, 516, 518, 527, 565, 566, 567, 568, 569, 570, 571, 576, 578, 581, 582], "t0": [231, 255, 467, 473, 474, 477, 566, 570], "t1": [87, 91], "t2": [87, 91], "t_": [52, 53, 294, 523, 566, 567, 568, 569, 570, 571, 579], "t_0": 570, "t_b": 579, "t_decai": [238, 568], "t_delta": [103, 108, 203, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277], "t_i": 294, "t_j": 514, "t_live": [83, 88], "t_max": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 393, 404, 477], "t_min": [223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 393, 404, 477], "t_observ": [83, 88], "t_r": 239, "t_ref": [231, 236, 238, 239, 240, 255, 262, 274, 444, 445, 467, 468, 474, 489, 566, 567, 568, 569, 570, 571, 572, 573], "t_rise": [238, 568], "t_start": [86, 515], "t_stop": [52, 86, 515], "ta": 289, "ta2": 289, "ta3": 289, "tab": [150, 385, 463, 469, 472, 482, 491, 527], "tabl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 481, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583], "table_arrai": [87, 91], "table_associ": 67, "table_bkg_src": 466, "table_class": [87, 91], "table_compon": [67, 480], "table_filenam": 26, "table_format": 125, "table_from_row_data": 445, "table_hdu": 86, "table_identif": 67, "table_large_scale_compon": [67, 480], "table_model": [276, 403], "table_oth": 350, "tableau": 518, "tableclass": [87, 91], "tablegroup": [87, 91], "tableid": [87, 91], "tableiloc": [87, 91], "tableindic": [87, 91], "tableloc": [87, 91], "tablelocindic": [87, 91], "tablemodel": [391, 441], "tablepsf": [401, 419, 421], "tablepsfcheck": 437, "tabul": 506, "tabular": [489, 563], "tackl": 389, "tag": [19, 20, 26, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 84, 87, 90, 91, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 118, 120, 121, 122, 123, 124, 126, 127, 129, 130, 131, 132, 133, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 175, 178, 179, 180, 193, 194, 196, 202, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 267, 268, 269, 271, 272, 273, 274, 275, 276, 278, 405, 408, 409, 428, 442, 484, 489, 491, 537, 541], "tail": [493, 578], "take": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 102, 105, 109, 110, 122, 148, 168, 170, 202, 204, 209, 211, 224, 247, 263, 355, 378, 380, 385, 386, 389, 390, 391, 392, 393, 394, 395, 396, 399, 400, 401, 404, 410, 426, 427, 428, 431, 433, 441, 442, 444, 445, 446, 450, 452, 455, 457, 458, 467, 468, 469, 474, 475, 477, 482, 483, 485, 486, 487, 489, 490, 491, 493, 503, 504, 515, 518, 531, 547, 579, 580, 581], "taken": [15, 27, 87, 91, 102, 105, 109, 110, 123, 125, 153, 161, 180, 186, 188, 202, 203, 206, 211, 297, 381, 385, 389, 393, 444, 451, 455, 463, 464, 475, 477, 482, 484, 487, 488, 493, 504, 514, 516, 527, 528, 580], "talk": [383, 385, 387, 397, 406], "tan": [194, 201, 394, 423, 455, 486, 494, 527], "tandem": 506, "tangent": [176, 221, 225, 234, 237, 249, 260, 261, 265, 271, 275], "tangenti": [192, 531], "tar": [410, 493], "target": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 88, 90, 102, 105, 109, 110, 114, 118, 122, 124, 133, 151, 152, 163, 166, 183, 184, 188, 189, 193, 194, 196, 198, 202, 205, 206, 381, 386, 387, 393, 406, 409, 437, 452, 457, 465, 473, 485, 487, 503], "target_nam": 527, "target_posit": [176, 452, 455, 457, 465, 472, 473, 477, 503], "target_radec": 88, "targetmetadata": [90, 124], "task": [328, 400, 404, 406, 407, 409, 410, 441, 456, 459, 485, 486, 494, 498, 502, 518, 526, 576, 578, 582], "task_nam": 328, "tast": 578, "tau": [26, 51, 54, 136, 298, 408, 479, 544], "tau_0": 51, "taul": [26, 479], "taur": [26, 479], "taylor": [52, 53], "tb00058": [135, 144], "tbl": [87, 91], "tdelta_precis": 303, "team": [385, 389, 397, 400, 402, 406, 418, 439], "technic": [382, 383, 385, 393, 400, 402, 404, 406, 410, 460], "techniqu": [386, 395, 396, 398, 452, 455, 463, 466, 485, 487, 495, 525, 528, 576], "tediou": 480, "tel": [87, 91], "telescop": [82, 83, 85, 91, 95, 104, 153, 393, 394, 407, 412, 416, 417, 467, 472, 475, 490, 493, 494, 496], "tell": 457, "temp": [435, 468], "temperatur": [52, 53], "templat": [16, 26, 57, 70, 84, 90, 104, 105, 110, 115, 117, 124, 170, 178, 192, 193, 194, 196, 197, 198, 204, 205, 206, 212, 224, 239, 247, 271, 272, 273, 274, 275, 276, 283, 285, 299, 302, 385, 391, 392, 396, 403, 428, 442, 445, 446, 449, 458, 459, 461, 468, 486, 487, 488, 489, 506, 527, 532, 543, 550, 553, 558, 564, 572], "template_diffus": [488, 494], "template_extrapol": 563, "template_model": 467, "template_noextrapol": 563, "templatelightcurvetemporalmodel": 442, "templatend": [271, 272, 489], "templatendspatialmodel": [257, 489], "templatendspectralmodel": [26, 258, 433, 444, 489], "templatenpredmodel": [243, 431], "templatephasecurvetemporalmodel": [270, 442, 447, 489, 572], "templatespatialmodel": [67, 257, 402, 403, 428, 442, 443, 445, 446, 447, 467, 488, 489, 494, 542], "templatespectralmodel": [224, 247, 258, 281, 403, 489, 494, 514, 550, 553, 558, 563], "templatetemporalmodel": 442, "tempo2": [475, 518], "tempor": [215, 217, 223, 224, 231, 236, 238, 239, 240, 247, 255, 262, 263, 270, 274, 277, 294, 391, 393, 403, 404, 424, 426, 427, 428, 433, 442, 444, 445, 446, 447, 449, 451, 453, 456, 458, 459, 463, 464, 465, 467, 470, 471, 477, 478, 480, 481, 482, 488, 494, 498, 502, 518, 519, 574, 575, 577], "temporal_model": [263, 393, 467, 468, 474, 489, 565, 566, 567, 568, 569, 570, 571, 572, 573], "temporal_model1": 474, "temporal_model2": 474, "temporal_model_map": 468, "temporal_model_registri": 489, "temporal_typ": 403, "temporalbackground": 391, "temporalmodel": [223, 231, 236, 238, 239, 240, 255, 262, 263, 274, 391, 404, 427, 442, 444, 445, 447, 532], "temporari": 498, "temporarili": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 391], "ten": [386, 400], "tend": [380, 537], "tension": 478, "tensorflow": [398, 400], "tent": 409, "term": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 240, 300, 304, 383, 385, 387, 389, 390, 394, 397, 400, 405, 407, 429, 433, 442, 451, 459, 483, 484, 578, 580, 581], "termin": [87, 91, 101, 396, 411, 412, 413, 414, 415, 452, 453, 455, 456, 457, 463, 464, 465, 475, 477, 482, 483, 494, 502, 503, 578], "terrier": [386, 389, 390, 391, 392, 394, 395, 396, 397, 399, 401, 402, 403, 404, 405, 407, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "test": [6, 16, 84, 90, 94, 101, 104, 115, 117, 120, 122, 123, 124, 125, 126, 127, 130, 131, 133, 142, 161, 163, 166, 193, 194, 196, 202, 205, 206, 239, 286, 287, 288, 290, 293, 337, 354, 355, 356, 357, 358, 359, 360, 381, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 405, 408, 409, 410, 420, 422, 423, 425, 427, 431, 432, 433, 436, 437, 438, 439, 440, 441, 442, 445, 447, 452, 458, 459, 468, 471, 472, 473, 474, 477, 481, 482, 484, 516, 518, 522, 528, 572, 573, 577, 580], "test2": 474, "test_aeff3d": 484, "test_edisp": 484, "test_events_with_gti": 515, "test_gti": 515, "test_person_txt": 380, "test_plot": 380, "test_psf": 484, "test_someth": 380, "test_using_data_fil": 359, "test_using_scipi": 360, "testcod": 381, "testoutput": 381, "testpar": 408, "teststatisticnest": [445, 447], "tev": [16, 19, 20, 26, 44, 52, 53, 66, 67, 71, 75, 83, 96, 101, 102, 105, 109, 110, 111, 116, 118, 123, 125, 126, 141, 142, 147, 148, 150, 152, 153, 154, 155, 160, 161, 162, 163, 164, 166, 173, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 263, 264, 266, 267, 268, 269, 272, 276, 279, 280, 305, 306, 327, 375, 381, 391, 403, 404, 407, 408, 416, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 512, 515, 516, 522, 523, 525, 527, 528, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576], "tevcat": [432, 480], "tevcat_nam": 71, "tevpi": 419, "tevtevtev1": 465, "tex": 381, "texliv": 381, "text": [17, 18, 21, 22, 23, 24, 25, 27, 50, 51, 52, 53, 54, 105, 110, 123, 125, 133, 260, 261, 306, 343, 349, 369, 381, 388, 396, 406, 410, 456, 475, 484, 493, 502, 504, 535, 536, 537, 540, 541, 545, 561, 568, 578, 580], "textcolor": 369, "textkw": 369, "th": 198, "than": [27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 87, 91, 132, 151, 152, 154, 155, 158, 162, 163, 164, 166, 170, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 286, 295, 358, 373, 380, 381, 383, 385, 386, 387, 390, 393, 394, 395, 398, 399, 404, 406, 407, 410, 439, 442, 443, 444, 446, 450, 452, 463, 464, 467, 472, 473, 478, 483, 485, 487, 490, 491, 514, 531, 536, 537, 578, 580], "thank": [404, 425, 426, 431, 433, 447, 485, 518], "thaw": 488, "thei": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 95, 104, 108, 112, 113, 124, 130, 137, 167, 274, 294, 327, 380, 381, 383, 385, 386, 387, 388, 389, 391, 394, 396, 397, 399, 400, 403, 404, 405, 406, 407, 408, 409, 410, 417, 428, 431, 433, 445, 446, 452, 453, 457, 479, 481, 483, 487, 488, 489, 490, 491, 493, 496, 506, 515, 516, 518, 523, 530, 531, 576, 577, 578, 579, 580, 582], "them": [11, 15, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 87, 90, 91, 100, 104, 124, 215, 217, 224, 247, 307, 380, 381, 383, 385, 387, 388, 394, 396, 399, 406, 407, 409, 410, 416, 423, 439, 452, 453, 455, 458, 460, 463, 464, 466, 468, 472, 480, 481, 482, 483, 486, 487, 489, 491, 493, 495, 498, 503, 515, 518, 527, 578, 580], "theme": [433, 440, 447], "themselv": [87, 91, 396, 485, 487, 525], "theorem": [286, 516, 580], "theoret": 491, "therefor": [105, 386, 390, 393, 394, 395, 399, 401, 403, 413, 431, 447, 452, 472, 475, 483, 486, 487, 490, 491, 495, 504, 516, 580, 581], "thereof": 391, "thermal": [19, 554, 577], "thermal_relic_cross_sect": 19, "theta": [33, 34, 38, 52, 53, 154, 160, 162, 164, 168, 176, 190, 199, 308, 311, 380, 428, 457, 494, 504, 535, 536, 540, 541], "theta2": [180, 190, 378, 439], "theta2_axi": 496, "theta2_max": 378, "theta2_min": 378, "theta2_t": 496, "theta_0": [33, 38], "theta_squared_axi": [190, 496], "thew": 480, "thi": [6, 15, 16, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 47, 56, 67, 68, 69, 82, 83, 84, 85, 86, 87, 88, 90, 91, 100, 102, 103, 104, 105, 108, 109, 110, 114, 118, 122, 123, 124, 125, 126, 127, 129, 130, 132, 133, 134, 137, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 170, 173, 175, 176, 177, 179, 181, 183, 184, 187, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 211, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 274, 275, 276, 279, 286, 288, 290, 296, 307, 315, 325, 328, 331, 336, 337, 355, 358, 365, 367, 369, 370, 371, 375, 377, 379, 380, 381, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 416, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 506, 507, 514, 515, 516, 518, 520, 521, 522, 523, 524, 525, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581, 582], "thick": 377, "thin": [56, 319], "thing": [380, 383, 385, 388, 394, 395, 396, 397, 400, 404, 410, 419, 438, 457, 460, 474, 475, 487, 494], "think": [385, 397, 398, 400], "third": [62, 63, 87, 91, 381, 431, 480, 483, 486, 498, 504, 513], "thoma": [406, 439], "thorough": [486, 506], "those": [15, 83, 179, 193, 194, 196, 202, 205, 206, 211, 215, 217, 224, 247, 315, 369, 380, 383, 385, 387, 389, 394, 396, 399, 400, 401, 402, 403, 405, 410, 411, 412, 414, 415, 425, 428, 472, 477, 483, 486, 487, 488, 490, 498, 504, 516, 518, 527, 582], "though": [15, 383, 388, 394, 395, 396, 398, 400, 456, 489, 502], "thought": [385, 394], "three": [87, 91, 161, 289, 380, 389, 392, 394, 406, 409, 447, 465, 467, 472, 478, 486, 491, 498, 523, 530, 577], "threshold": [67, 102, 109, 118, 123, 124, 125, 133, 141, 142, 150, 151, 155, 168, 179, 203, 286, 369, 370, 371, 394, 421, 427, 428, 450, 455, 457, 459, 465, 469, 472, 480, 481, 483, 485, 487, 493, 502, 514, 516], "threshold_alpha": 168, "through": [41, 87, 91, 306, 307, 377, 383, 385, 393, 394, 400, 404, 405, 413, 417, 431, 442, 451, 459, 468, 478, 483, 485, 486, 487, 488, 494, 495, 518, 523, 530, 577, 580], "throughout": [13, 387, 389, 390, 394, 396, 438, 480], "throught": 469, "thrown": 489, "thu": [380, 387, 394, 397, 398, 400, 435, 450, 451, 460, 461, 465, 467, 482, 575, 581], "thumbnail": 431, "ti": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 194, 389, 474], "tibaldo": 436, "tick": [444, 445], "tick_param": 450, "ticker": 369, "tight_layout": [473, 483, 491, 537, 541], "tightli": 399, "tikonov": 408, "tild": [192, 204], "tile": [192, 194], "tilt": [253, 273, 391, 402, 403, 408, 420, 426, 460, 463, 464, 467, 468, 471, 481, 489, 494, 502, 503, 525, 531, 538, 558, 563], "tilt_prior": 408, "tim": 446, "time": [6, 19, 20, 50, 51, 52, 53, 78, 82, 83, 85, 86, 87, 88, 89, 91, 92, 94, 100, 101, 102, 103, 104, 105, 108, 109, 110, 112, 123, 124, 125, 130, 133, 136, 137, 145, 169, 175, 186, 188, 193, 194, 195, 196, 197, 202, 203, 205, 206, 211, 214, 216, 223, 226, 231, 236, 238, 239, 240, 255, 262, 263, 274, 277, 289, 294, 298, 303, 337, 357, 361, 362, 363, 364, 380, 381, 383, 385, 386, 387, 388, 390, 393, 394, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 409, 410, 412, 416, 420, 421, 424, 425, 426, 428, 431, 435, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 451, 455, 457, 458, 459, 461, 463, 465, 466, 468, 469, 472, 475, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 502, 503, 504, 510, 511, 512, 514, 515, 516, 518, 523, 527, 531, 536, 537, 544, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578, 579, 580, 581], "time1": 298, "time2": 298, "time_axi": [193, 194, 196, 197, 202, 205, 206, 289, 468, 477, 486, 531], "time_bin": 395, "time_bin_end": 395, "time_bin_s": 395, "time_bin_start": 395, "time_bound": 203, "time_box": 91, "time_column": 404, "time_delta": [86, 203, 361, 364], "time_edg": [203, 478, 486], "time_filt": 89, "time_format": [125, 203, 445, 474], "time_info": 90, "time_interv": [16, 83, 86, 88, 92, 130, 456, 460, 461, 463, 468, 472, 473, 477, 502], "time_map_axi": [203, 486], "time_map_axis_contigu": 486, "time_max": [100, 123, 125, 203, 394, 395, 396, 468, 472, 477, 480, 486], "time_mid": [203, 478], "time_min": [100, 123, 125, 203, 394, 395, 396, 468, 472, 477, 480, 486], "time_rang": [91, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 468, 565, 566, 567, 568, 569, 570, 571, 572, 573], "time_ref": [83, 85, 86, 91, 94, 197], "time_ref_default": 86, "time_ref_from_dict": 582, "time_relative_to_ref": 582, "time_resolved_spectroscopi": [449, 476, 477], "time_seri": 289, "time_start": [85, 86, 91, 395], "time_step": 395, "time_stop": [85, 86, 91, 395], "time_sum": [86, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277], "timedelta": [87, 91, 94, 203, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 337, 361, 364, 582], "timedelta64": [87, 91], "timeinfometadata": 90, "timelin": [385, 387, 439], "timemapaxi": [125, 145, 195, 197, 431, 446, 447, 473, 474, 477, 478], "timerangeconfig": 16, "timeref": 467, "timescal": [137, 231, 295, 405, 478], "timeseri": 395, "timesi": [94, 443, 445, 467], "timestamp": 380, "timeunit": 467, "timmer": [289, 447], "timmer1995": 289, "tini": [465, 493], "tip": 518, "titl": [385, 469, 479], "tiziani": 437, "tke": 494, "tm": [87, 91], "tmax": 395, "tmid": [88, 445, 465, 485, 490, 503], "tmin": 395, "to_2d": [148, 496], "to_3d": [147, 444, 446], "to_bands_hdu": [191, 192, 201, 204], "to_binsz": [192, 201, 204, 431], "to_binsz_wc": 201, "to_contigu": [203, 486], "to_counts_hdulist": 107, "to_cub": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 428, 461, 531], "to_dict": [19, 20, 26, 99, 101, 102, 105, 109, 110, 210, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 407, 491], "to_edisp_kernel": [155, 447, 522], "to_edisp_kernel_map": [152, 431, 522], "to_energy_dependent_table_psf": 439, "to_even_npix": 204, "to_fits_head": 85, "to_fram": 199, "to_gti": [203, 446], "to_hdu": [193, 194, 205, 206], "to_hdulist": [102, 105, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 193, 194, 200, 201, 202, 205, 206, 486], "to_head": [84, 90, 104, 124, 192, 195, 197, 198, 203, 204, 407], "to_html": 380, "to_imag": [102, 105, 109, 110, 150, 151, 161, 163, 166, 191, 192, 201, 204, 402, 425, 426, 450, 461, 465, 481, 494, 528, 531], "to_json": [16, 84, 90, 104, 124], "to_map": [123, 125], "to_map_dataset": [105, 110], "to_mask": [102, 105, 109, 110, 479], "to_model": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 431, 480], "to_node_typ": 198, "to_nsid": [192, 194], "to_odd_npix": 204, "to_panda": [87, 91], "to_parameters_t": [224, 247, 451, 452, 455, 456, 457, 460, 463, 473, 483, 491, 503], "to_pixel": [394, 455, 465, 479, 485, 489, 527, 535, 536, 537], "to_polygon": 394, "to_psf3d": [154, 162, 164], "to_python": [16, 84, 90, 104, 124], "to_region": [220, 221, 224, 225, 234, 237, 247, 251, 260, 261, 275, 394, 425, 489, 535, 536, 537], "to_region_map_dataset": [102, 105, 109, 110, 481], "to_region_nd_map": [151, 152, 158, 163, 166, 194, 202, 206, 428, 431, 494], "to_region_nd_map_histogram": [206, 445], "to_sed_typ": 404, "to_sherpa": [425, 439, 440], "to_spectrum": 431, "to_spectrum_dataset": [100, 102, 105, 109, 110, 402, 424, 426, 475, 481, 491], "to_st": 445, "to_str": [445, 450], "to_swap": [192, 193, 194], "to_tabl": [101, 125, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 197, 198, 202, 203, 215, 217, 239, 431, 447, 451, 453, 455, 456, 465, 469, 471, 472, 474, 480, 482, 489, 504, 516], "to_table_hdu": [83, 86, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 197, 198, 486], "to_table_psf": 437, "to_template_sky_model": [224, 247], "to_template_spectral_model": [224, 247, 403], "to_unit": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 193, 194, 196, 202, 205, 206], "to_wc": [193, 194], "to_wcs_geom": [192, 201, 531], "to_wcs_til": [192, 194], "to_yaml": [16, 84, 90, 104, 124, 224, 247, 391, 407, 489, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "tob": 456, "todai": 406, "todo": [13, 79, 99, 161, 276, 381, 404, 422, 493, 508, 509, 582], "tof": 160, "togeth": [100, 102, 105, 109, 110, 126, 130, 224, 247, 377, 380, 393, 397, 400, 411, 423, 451, 461, 463, 464, 469, 473, 481, 483, 485, 488, 489, 490, 491, 496, 503, 514, 515, 578], "tol": [286, 483], "toler": [86, 100, 130, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 357, 483], "tolist": 483, "tomato": 451, "toml": 428, "ton": [295, 493], "too": [380, 385, 386, 430, 431, 444, 445, 446, 483, 487], "took": 405, "tool": [6, 13, 193, 194, 196, 205, 206, 379, 383, 387, 389, 391, 393, 396, 397, 400, 406, 417, 425, 436, 439, 440, 466, 469, 474, 481, 483, 486, 490, 493, 494, 496, 506, 518, 552, 576, 577], "toolbox": [396, 436], "top": [109, 110, 367, 376, 380, 385, 396, 400, 402, 413, 439, 457, 459, 465, 469, 472, 474, 478, 480, 485, 504, 518, 531, 576, 578, 582], "top_five_ts_3fhl": 504, "tophat2dkernel": 122, "topic": [385, 389, 400, 408, 504], "total": [51, 67, 99, 101, 102, 105, 109, 110, 126, 127, 130, 131, 140, 173, 188, 192, 212, 223, 231, 236, 238, 239, 240, 255, 262, 274, 277, 304, 388, 404, 408, 412, 414, 446, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 473, 474, 475, 476, 477, 479, 480, 481, 482, 483, 485, 486, 487, 488, 491, 492, 494, 497, 499, 501, 502, 503, 504, 505, 508, 514, 518, 523, 533, 543, 554, 564, 574, 577], "total_jfact": 479, "total_jfact_decai": 479, "total_model": 391, "total_obstim": 485, "total_stat": [212, 213, 451, 477, 483, 579], "touch": [86, 420], "tour": 498, "toward": [325, 387, 394, 400, 441], "tox": [344, 381, 383, 442, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 542, 550, 566], "tqdm": 518, "trace": [211, 212, 213, 428, 483], "traceback": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 380], "track": [85, 94, 380, 389, 395, 406, 433, 488], "tracker": [383, 394, 409, 447], "tradition": [489, 579], "train": 405, "traitlet": [396, 407], "traittyp": 407, "transfer": 407, "transform": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 85, 94, 161, 195, 197, 198, 203, 204, 224, 247, 309, 313, 336, 341, 380, 394, 396, 404, 408, 419, 421, 437, 440, 459, 465, 485, 491, 530, 535, 536, 582], "transit": [27, 370, 371, 387, 420, 421, 439, 495], "transit_map": 495, "transit_numb": 495, "transitsmap_crab": 495, "translat": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 396, 516], "transpar": 395, "transport": 486, "transpos": 440, "trapezoid": [147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 282, 318], "trapz": 318, "trapz_loglog": 426, "trash": 422, "travi": [425, 427, 431], "treat": [95, 412, 444, 445, 455, 467, 581], "treatment": [431, 455, 463, 577], "trend": 467, "tri": [77, 388, 394], "tributor": 406, "tricki": 394, "trigger": [358, 380, 409, 495], "trim": [102, 105, 151, 152, 158, 163, 166, 169, 204, 206, 273], "tripl": 154, "trivial": 387, "troubl": 578, "troubleshoot": [412, 413, 414], "trough": 478, "true": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 45, 80, 82, 83, 84, 86, 87, 88, 90, 91, 93, 96, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 122, 123, 124, 125, 126, 130, 131, 133, 134, 140, 143, 147, 148, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 169, 173, 179, 180, 183, 184, 186, 187, 189, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 208, 211, 212, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 304, 307, 315, 316, 319, 337, 349, 351, 368, 373, 377, 380, 386, 393, 394, 395, 396, 403, 404, 407, 422, 426, 427, 438, 440, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 494, 495, 500, 502, 503, 504, 508, 514, 516, 518, 523, 528, 530, 531, 534, 535, 536, 539, 540, 542, 563, 577, 580], "truelov": 53, "truncat": [133, 325, 431], "truncation_valu": [291, 297], "trust": [16, 84, 90, 104, 124], "trustworthi": 408, "truth": 491, "try": [16, 77, 84, 90, 104, 124, 193, 194, 196, 202, 205, 206, 380, 381, 390, 394, 400, 409, 410, 416, 421, 453, 455, 457, 467, 468, 472, 480, 483, 486, 504, 578], "ts2": 289, "ts3": 289, "ts_image_estim": 465, "ts_scan": [123, 125], "ts_threshold": [145, 286], "ts_threshold_ul": [475, 516], "ts_to_sigma": [466, 580], "tsimageestim": 439, "tsmap": 447, "tsmap_est": 373, "tsmapestim": [119, 143, 144, 373, 401, 404, 426, 427, 429, 431, 445, 447, 459, 465, 518], "tstart": [88, 91, 393, 395, 458, 467, 471, 473, 474, 477, 493], "tstop": [88, 393, 395, 458, 467, 471, 473, 477, 493], "tt": [86, 94, 362, 363, 406, 468, 473, 477, 582], "tth_sec3": 198, "tupl": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 56, 83, 84, 87, 88, 90, 91, 101, 102, 104, 105, 109, 110, 124, 128, 133, 147, 148, 150, 151, 152, 153, 154, 155, 158, 160, 161, 162, 163, 164, 166, 169, 174, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 209, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 276, 288, 290, 293, 319, 329, 336, 380, 486, 530], "turn": [83, 88, 381, 383, 394, 493, 575], "tutori": [82, 99, 120, 130, 132, 178, 380, 383, 384, 389, 392, 393, 394, 395, 396, 397, 398, 401, 410, 414, 415, 416, 417, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 437, 438, 439, 440, 441, 442, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 460, 462, 463, 464, 465, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 480, 481, 482, 483, 484, 486, 488, 489, 490, 491, 492, 494, 496, 497, 499, 501, 502, 503, 504, 505, 518, 519, 521, 530, 575, 578], "tutorials_jupyt": [409, 498], "tutorials_python": 498, "tweak": [396, 431, 447, 486], "twice": [122, 530, 581], "twinx": 450, "two": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 77, 86, 87, 89, 91, 101, 102, 105, 109, 110, 136, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 169, 174, 176, 192, 193, 194, 195, 196, 198, 201, 202, 204, 205, 206, 211, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 337, 347, 369, 374, 377, 379, 380, 381, 383, 387, 389, 390, 391, 392, 394, 395, 396, 397, 398, 400, 401, 404, 405, 406, 408, 409, 410, 412, 433, 439, 441, 445, 447, 456, 457, 463, 464, 466, 469, 474, 480, 481, 482, 483, 484, 486, 487, 489, 490, 491, 493, 495, 502, 503, 508, 514, 515, 516, 518, 527, 530, 531, 546, 580, 581], "txt": [125, 405, 407, 409, 488, 494], "tyler": 433, "type": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 69, 84, 87, 89, 90, 91, 96, 99, 100, 101, 102, 104, 114, 122, 123, 124, 125, 127, 133, 167, 173, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 307, 337, 386, 389, 390, 391, 392, 394, 395, 396, 399, 403, 404, 406, 408, 410, 411, 416, 424, 431, 437, 438, 439, 445, 447, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 477, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 502, 503, 504, 506, 518, 530, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 578], "typeerror": [16, 84, 90, 104, 124, 307, 394, 404, 408], "typic": [123, 386, 389, 391, 398, 402, 403, 404, 405, 407, 409, 412, 413, 452, 457, 461, 469, 471, 472, 473, 480, 481, 482, 484, 487, 489, 490, 506, 513, 514, 515, 523, 527, 576, 577], "typing_extens": [16, 84, 90, 104, 124], "typo": [380, 417, 443, 444, 447], "u": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 66, 83, 85, 87, 91, 96, 102, 105, 109, 110, 115, 117, 118, 123, 125, 127, 129, 133, 141, 142, 150, 152, 161, 191, 192, 193, 194, 196, 197, 201, 202, 203, 204, 205, 206, 218, 219, 222, 226, 228, 229, 230, 235, 239, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 280, 289, 305, 306, 307, 327, 375, 380, 383, 387, 388, 389, 395, 396, 397, 398, 403, 404, 407, 408, 420, 421, 422, 439, 440, 441, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 508, 515, 516, 518, 520, 525, 527, 528, 531, 535, 537, 538, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572], "u03c3": 466, "u18": [33, 38], "uc": [87, 91], "ufunc": [193, 194, 196, 202, 205, 206, 457, 477], "ui": [28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 50, 52, 53, 57, 58, 60, 61, 62, 83, 88, 118, 136, 153, 244, 279, 280, 289, 296, 298], "ukhxwcj8": 477, "uko7ctzt": 477, "ul": [67, 122, 123, 125, 126, 127, 130, 131, 133, 287, 464, 469, 474, 480], "ultim": 380, "un": [392, 406, 428, 488], "unambigu": 489, "unbehaun": 446, "unbin": [392, 393, 440], "unboundlocalerror": 380, "uncertaint": 398, "uncertainti": [52, 102, 105, 109, 110, 288, 290, 384, 397, 438, 453, 455, 475, 483, 491, 503, 576, 577, 579], "unchang": [102, 105, 109, 110, 115, 117, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 162, 163, 164, 165, 166, 191, 192, 193, 194, 196, 197, 201, 202, 204, 205, 206, 439], "uncjdya": 485, "unclear": [380, 390, 391, 397, 407], "uncom": [396, 493], "undefin": 581, "under": [72, 91, 134, 135, 143, 144, 380, 384, 389, 397, 406, 440, 441, 451, 456, 498, 502, 514, 580, 581], "underestim": 516, "underflow": 203, "underli": [87, 91, 201, 393, 453, 480, 486, 491, 504, 506, 515, 527, 530], "underscor": 380, "understand": [396, 417, 425, 426, 452, 455, 456, 457, 460, 467, 468, 473, 474, 478, 486, 487, 488, 493, 502, 503, 578], "undertak": 400, "unevenli": [136, 298], "unexpect": 495, "unfold": 577, "unfreez": [19, 20, 26, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 554], "unfreeze_al": [215, 217, 488], "unfrozen": 525, "unheard": 578, "uni": [408, 409], "uni_prior_stat_sum": 491, "unicod": [87, 91, 380], "unid": 67, "unidimension": 197, "unif": 425, "unifi": [87, 91, 384, 389, 394, 420, 423, 425, 426, 427, 428, 431, 440, 441, 577], "uniform": [161, 211, 278, 336, 380, 389, 391, 392, 402, 404, 408, 422, 423, 427, 431, 447, 452, 486, 491, 576], "uniform_filt": [128, 206], "uniformli": [393, 516], "uniformprior": [408, 447, 491], "uninstal": 379, "union": [86, 89, 102, 105, 201, 342, 394, 395, 406, 407, 423, 514], "uniqu": [87, 91, 100, 150, 192, 193, 194, 195, 196, 202, 204, 205, 206, 215, 217, 224, 232, 247, 263, 273, 373, 390, 391, 392, 393, 403, 406, 426, 447, 456, 481, 489, 495, 531, 575], "unique_id": 489, "unique_paramet": [215, 217], "uniquifi": [87, 91], "unit": [6, 19, 20, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 66, 83, 85, 87, 88, 91, 96, 101, 102, 105, 107, 109, 110, 111, 115, 116, 117, 118, 123, 125, 127, 129, 133, 141, 142, 147, 148, 149, 150, 152, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 173, 176, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 214, 216, 218, 219, 221, 222, 225, 226, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 248, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 272, 273, 274, 275, 276, 279, 280, 289, 298, 305, 306, 307, 337, 351, 352, 353, 355, 364, 365, 366, 369, 370, 371, 375, 381, 389, 391, 394, 396, 398, 403, 404, 408, 420, 421, 423, 431, 433, 439, 440, 442, 443, 444, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 508, 510, 511, 512, 515, 516, 518, 520, 522, 523, 525, 527, 528, 529, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577], "unit_string_format": [445, 450], "unitbas": 307, "uniti": [128, 195, 275, 443, 537], "unitless": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 232, 273], "unitsmap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "unitswarn": [450, 458, 460, 463, 465, 471, 474, 493], "univers": [193, 194, 196, 202, 205, 206, 577], "univsers": 20, "unknown": [101, 290, 459, 483, 579, 580], "unless": [93, 95, 126, 127, 130, 133, 169, 307, 379, 386, 405, 407, 484], "unlik": [87, 91, 286, 387, 398], "unmaintain": 421, "unmask": [87, 91], "unnam": [87, 91, 199], "unnecessari": [431, 442, 463], "unneed": 445, "unphys": 581, "unrealist": 380, "unrel": 582, "unreli": 493, "unsaf": 380, "unstabl": [380, 493], "unsupport": 397, "untar": 493, "until": [380, 383, 387, 394, 405, 438], "unus": [396, 423, 425], "unusu": 385, "unweight": [105, 110], "unzip": 493, "up": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 74, 101, 127, 129, 133, 154, 160, 162, 164, 201, 307, 380, 381, 384, 385, 387, 388, 389, 392, 394, 396, 397, 398, 400, 402, 406, 408, 410, 411, 412, 414, 416, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 435, 437, 438, 439, 440, 441, 447, 455, 456, 463, 466, 467, 491, 493, 494, 531, 578], "upcast": 307, "upcom": [388, 389], "updat": [15, 16, 84, 87, 90, 91, 103, 104, 108, 124, 200, 214, 216, 224, 247, 275, 286, 327, 347, 380, 383, 385, 386, 387, 388, 389, 392, 397, 402, 404, 406, 407, 409, 410, 412, 413, 420, 421, 422, 423, 424, 425, 426, 428, 430, 431, 432, 433, 434, 437, 438, 439, 440, 442, 445, 446, 447, 486, 489, 529, 530], "update_config": 15, "update_forward_ref": [16, 84, 90, 104, 124], "update_from_dict": [214, 216], "update_link_label": [224, 247], "update_parameters_from_t": [224, 247], "upgrad": [192, 379, 405, 413], "upload": [397, 409], "upon": [102, 105, 109, 110, 389, 460, 488, 493, 514], "upper": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 80, 101, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 143, 150, 198, 203, 211, 218, 219, 222, 223, 226, 228, 229, 230, 231, 235, 236, 238, 239, 240, 241, 242, 244, 248, 250, 252, 253, 254, 255, 259, 262, 264, 266, 267, 268, 269, 272, 274, 276, 277, 287, 288, 290, 407, 416, 427, 431, 438, 439, 440, 446, 455, 459, 469, 472, 481, 482, 485, 502, 514, 516, 518], "upper_error": 125, "upsampl": [163, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 422, 442], "upsample_geom": 163, "upstream": [380, 383, 409], "upward": [288, 290], "url": 388, "us": [11, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 46, 47, 53, 56, 57, 59, 65, 69, 70, 71, 74, 75, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 107, 108, 109, 110, 113, 114, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 138, 139, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 280, 282, 287, 289, 291, 303, 305, 307, 315, 318, 319, 320, 327, 328, 331, 336, 337, 344, 347, 363, 364, 366, 367, 369, 370, 371, 373, 374, 375, 376, 377, 379, 381, 382, 383, 385, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 414, 415, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 449, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 468, 469, 471, 473, 474, 475, 477, 478, 479, 480, 482, 485, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 498, 500, 504, 507, 508, 518, 520, 521, 522, 524, 528, 529, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 576, 577, 578, 579, 580, 582, 583], "usabl": 380, "usag": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 90, 104, 120, 124, 130, 132, 178, 191, 192, 201, 204, 331, 386, 390, 391, 393, 395, 399, 404, 424, 445, 446, 480, 485, 487, 488, 578], "use_cach": 248, "use_center_as_plot_label": 198, "use_enum_valu": [16, 84, 90, 104, 124], "use_evaluation_region": [224, 247], "use_fft": 206, "use_local_fil": [87, 91], "use_nullable_int": [87, 91], "use_region_cent": [173, 180, 183, 184, 186, 187, 431, 452], "useless": 493, "user": [15, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 77, 82, 88, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 380, 381, 383, 385, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 417, 424, 431, 432, 438, 439, 440, 442, 456, 459, 466, 467, 468, 481, 482, 484, 486, 487, 488, 489, 490, 498, 502, 515, 516, 517, 518, 523, 527, 530, 533, 539, 543, 564, 574, 575, 578], "userdataset": 392, "usernam": 383, "userwarn": [455, 457, 464, 465, 469, 494], "uses_quant": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "usr": 578, "usual": [29, 82, 83, 123, 141, 147, 148, 149, 161, 202, 315, 380, 381, 383, 385, 386, 387, 388, 394, 395, 400, 406, 410, 445, 450, 451, 452, 453, 455, 457, 458, 460, 461, 465, 467, 468, 471, 472, 473, 474, 477, 478, 479, 481, 487, 490, 495, 503, 506, 514, 518, 520, 521, 522, 524, 527, 531, 536, 575, 577, 578, 579], "ut1": 582, "utc": [86, 88, 104, 124, 361, 467, 472, 473, 477, 486, 489, 565, 566, 567, 568, 569, 570, 571, 572, 573, 582], "utf": [87, 91], "utf8": [16, 84, 90, 104, 124], "util": [6, 96, 104, 111, 115, 116, 117, 124, 125, 127, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 152, 182, 183, 184, 185, 186, 187, 188, 189, 190, 285, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 380, 389, 391, 392, 393, 394, 404, 419, 422, 423, 424, 425, 432, 433, 436, 437, 438, 439, 440, 441, 445, 446, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 506, 507, 518, 577], "utilis": [142, 286, 381, 412, 414, 450, 455, 459, 466, 478, 482, 486, 490, 495, 503, 515, 518, 525], "uuxte90r": 477, "v": [26, 31, 32, 37, 87, 91, 154, 160, 162, 163, 164, 166, 175, 182, 200, 274, 286, 311, 383, 388, 395, 396, 407, 408, 409, 410, 433, 450, 472, 479, 490, 502], "v0": [95, 387, 388, 391, 392, 394, 397, 399, 400, 405, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 440, 441, 442, 467, 468, 484, 488, 493], "v1": [13, 380, 387, 389, 391, 396, 397, 398, 399, 405, 406, 409, 425, 426, 427, 433, 438, 442, 443, 444, 445, 446, 447, 469, 494, 550], "v15": 447, "v2": [406, 407, 431, 439, 446, 463], "v3": [16, 84, 90, 104, 124, 423, 463], "v_0": [37, 49], "v_glat": 314, "v_glon": 314, "va": 535, "vagu": 385, "vain": 383, "val": [87, 91, 193, 194, 196, 202, 205, 206, 215, 217, 486, 530], "valfmt": 369, "valid": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 87, 90, 91, 104, 106, 123, 124, 127, 135, 144, 165, 179, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 307, 325, 379, 380, 389, 393, 396, 397, 406, 425, 433, 442, 452, 455, 477, 483, 485, 486, 489, 494, 516, 518, 523, 577], "valid_hdu_class": [82, 87], "valid_hdu_typ": 87, "valid_interv": 477, "valid_tim": 477, "validate_al": 407, "validate_assign": [16, 84, 90, 104, 124, 407], "validate_default": [16, 84, 90, 104, 124], "validate_loc": 407, "validate_scalar": 90, "validate_zenith_angl": 407, "validationerror": [16, 84, 90, 104, 124, 407], "valle": 38, "valleespir": 508, "valu": [11, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 52, 83, 84, 86, 87, 88, 90, 91, 92, 95, 99, 100, 101, 102, 104, 105, 109, 110, 112, 113, 118, 120, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 141, 142, 143, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 164, 165, 166, 169, 173, 179, 180, 182, 183, 184, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 211, 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 286, 287, 288, 290, 291, 293, 294, 295, 298, 307, 311, 319, 320, 334, 337, 347, 351, 366, 369, 370, 371, 381, 383, 386, 391, 392, 394, 396, 398, 400, 403, 404, 407, 422, 425, 431, 442, 445, 446, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490, 493, 494, 495, 496, 502, 503, 504, 506, 510, 511, 512, 516, 518, 522, 530, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 578, 579, 580, 581], "value_rang": 91, "value_scan": 287, "valueerror": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 72, 87, 91, 92, 100, 224, 247, 380, 394, 407], "values_equ": [87, 91], "values_err": 475, "values_scal": [147, 148, 149, 202, 206, 239, 271, 275, 276, 319, 443, 445, 468, 484], "vanilla": [87, 91], "var": [296, 412, 414], "vari": [68, 103, 108, 130, 161, 211, 319, 347, 392, 394, 395, 405, 425, 428, 449, 451, 460, 465, 466, 468, 476, 477, 485, 489, 491, 494, 498], "variability_amplitud": 478, "variability_amplitude_100": 478, "variability_amplitude_error": 478, "variability_amplitude_signific": 478, "variability_estim": [449, 473, 476, 478], "variabl": [11, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 84, 90, 91, 104, 124, 136, 137, 206, 288, 290, 293, 294, 295, 296, 298, 303, 318, 345, 380, 381, 383, 393, 395, 396, 410, 412, 414, 420, 421, 437, 438, 439, 445, 446, 447, 449, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 468, 469, 472, 473, 474, 475, 476, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 523, 578, 579, 580], "varianc": [96, 138, 139, 295, 296, 306, 395, 446, 490, 525], "variant": 410, "variat": [137, 240, 295, 386, 396, 450, 478, 484, 485, 528, 580], "varieti": [391, 576], "variou": [120, 126, 127, 130, 131, 133, 142, 380, 386, 390, 392, 395, 404, 407, 410, 412, 431, 432, 446, 451, 453, 456, 459, 464, 466, 472, 482, 483, 502, 514, 518, 576, 582], "vasco": 447, "vast": [397, 433], "vaughan": [296, 478], "vaughan2003": 296, "ve": [380, 381, 383, 578], "vector": [191, 192, 193, 194, 196, 201, 202, 204, 205, 206, 486, 522, 530], "vega": 440, "vel": 475, "vel_di": [45, 508], "vela": [66, 419, 453, 475, 504], "veloc": [31, 32, 37, 45, 49, 311, 314], "ver": 486, "verbos": [11, 82, 381, 403, 578, 580], "veri": [63, 87, 91, 141, 211, 370, 379, 380, 381, 382, 385, 386, 391, 393, 394, 395, 396, 397, 398, 399, 400, 403, 404, 407, 410, 441, 450, 451, 458, 478, 480, 482, 483, 486, 491, 494, 504, 514, 518, 531, 540, 541, 575, 577, 578, 579], "verif": [100, 224, 247, 343, 346, 464, 494], "verifi": [215, 217, 237, 286, 380, 393, 480, 518], "verifywarn": 518, "verita": [97, 412, 417, 494], "versa": 192, "version": [11, 78, 85, 87, 91, 125, 181, 379, 381, 383, 384, 387, 388, 389, 390, 394, 397, 400, 406, 407, 408, 410, 411, 412, 413, 415, 417, 419, 420, 421, 422, 424, 425, 430, 432, 433, 435, 438, 439, 440, 442, 443, 445, 446, 447, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 516, 578], "versu": [147, 153, 286, 288, 290, 493, 512], "vert": 254, "vertex": 394, "vhe": [452, 506], "via": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 67, 82, 83, 91, 103, 108, 194, 199, 209, 379, 381, 383, 388, 392, 394, 395, 396, 397, 398, 399, 401, 403, 406, 407, 408, 409, 410, 412, 413, 420, 428, 436, 438, 439, 440, 444, 445, 447, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 500, 502, 503, 504, 518, 522, 527, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 578, 582], "viabil": 407, "vice": 192, "victor": 435, "view": [83, 87, 91, 147, 148, 149, 150, 153, 154, 155, 156, 157, 160, 162, 164, 165, 170, 193, 194, 196, 200, 202, 205, 206, 232, 309, 313, 367, 380, 394, 421, 426, 431, 433, 440, 441, 455, 457, 461, 463, 467, 477, 481, 484, 485, 487, 493, 494, 518, 520, 521, 522, 523, 524, 525, 527, 577], "vika": 431, "vila": 447, "vin\u00edciu": 438, "viridi": [457, 479], "virtual": [383, 410, 412, 413, 414, 578], "visibl": [87, 91, 370, 371, 388, 431, 450, 467, 495, 503, 504, 577], "vision": 385, "visit": 468, "visual": [6, 194, 206, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 394, 426, 427, 445, 446, 447, 455, 457, 461, 463, 465, 468, 483, 484, 490, 496, 503, 504, 518, 527, 532, 535, 576], "visualis": [377, 392, 394, 401, 427, 442, 457, 484, 489, 491, 493, 518], "vline": [512, 535, 536], "vmax": [102, 105, 109, 110, 370, 371, 460, 463, 465, 471, 481, 486, 487, 494, 495, 502, 503, 527], "vmin": [102, 105, 109, 110, 370, 371, 459, 463, 471, 481, 486, 487, 494, 495, 502, 503, 527], "volum": [27, 197, 201, 204], "vorokh": [436, 437], "voruganti": [438, 439], "vstack": [83, 86, 393], "vuillaum": [406, 439], "vx": [311, 314, 405], "vy": [311, 314], "vytfnh1j": 463, "vz": [311, 314], "w": [26, 31, 49, 86, 190, 203, 304, 381, 405, 459, 461, 469, 479, 485, 489, 491, 527, 579, 581], "wa": [16, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 59, 84, 85, 87, 90, 91, 93, 94, 102, 104, 118, 124, 126, 127, 130, 133, 169, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 373, 380, 383, 385, 386, 387, 388, 389, 390, 393, 394, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 410, 420, 423, 424, 425, 426, 427, 428, 435, 439, 440, 441, 442, 443, 444, 445, 451, 453, 455, 461, 463, 465, 469, 485, 491, 493, 494, 495, 496, 504, 578], "wagner": 478, "wai": [33, 38, 83, 87, 91, 198, 289, 331, 337, 379, 380, 381, 383, 385, 386, 387, 388, 390, 391, 392, 394, 395, 396, 397, 400, 401, 404, 406, 412, 413, 414, 416, 419, 423, 439, 440, 453, 455, 457, 460, 463, 478, 480, 481, 482, 483, 485, 486, 487, 488, 490, 493, 494, 495, 496, 498, 508, 515, 517, 518, 522, 531, 576, 578, 580], "wait": [380, 409, 410], "wall": [83, 88], "want": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 84, 90, 104, 107, 124, 150, 176, 201, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 380, 382, 383, 385, 386, 387, 390, 394, 395, 396, 398, 399, 400, 410, 411, 412, 413, 414, 416, 417, 420, 440, 452, 455, 456, 457, 458, 460, 467, 468, 471, 472, 474, 475, 477, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 502, 503, 504, 522, 575, 578, 579, 580, 581, 582], "ward": 305, "warn": [11, 16, 26, 82, 84, 87, 90, 91, 104, 124, 194, 214, 215, 216, 217, 271, 272, 273, 275, 366, 405, 410, 422, 439, 444, 445, 446, 447, 450, 458, 459, 460, 463, 464, 465, 468, 471, 474, 475, 493, 494, 518, 542, 550, 578], "warn_miss": 87, "warn_with_traceback": 380, "wasn": [387, 440], "watch": [494, 582], "water": [412, 495], "watson": 421, "wavelength": 399, "wavelet": [419, 437], "wc": [13, 16, 83, 102, 105, 109, 127, 168, 176, 177, 181, 192, 193, 194, 196, 201, 202, 204, 205, 206, 221, 224, 225, 234, 237, 247, 249, 260, 261, 265, 271, 275, 340, 375, 380, 386, 394, 399, 421, 422, 423, 425, 431, 439, 440, 444, 446, 455, 456, 459, 460, 461, 463, 465, 469, 472, 475, 479, 481, 484, 485, 487, 488, 489, 494, 502, 503, 504, 527, 530, 535, 536, 537, 542], "wcda": [57, 70], "wcs_geom": [201, 224, 247, 486, 531], "wcs_geom_3d": 486, "wcs_geom_cel": 486, "wcs_map": [205, 206, 373], "wcs_tile": [192, 194], "wcsax": [102, 105, 109, 110, 194, 201, 202, 206, 224, 247, 375, 377, 463, 486, 504, 534, 538, 539, 540], "wcsconfig": 16, "wcsgeom": [23, 83, 102, 105, 109, 110, 111, 114, 116, 122, 123, 133, 152, 161, 163, 173, 186, 187, 191, 192, 201, 205, 206, 220, 221, 225, 234, 237, 249, 251, 260, 261, 265, 271, 275, 381, 386, 394, 421, 424, 425, 426, 431, 444, 446, 447, 455, 459, 460, 465, 467, 468, 469, 471, 475, 479, 481, 482, 484, 485, 486, 487, 489, 494, 495, 503, 504, 514, 516, 525, 527, 528, 531, 534, 536, 537, 538, 539], "wcslib": 380, "wcsmap": [193, 194, 196, 206, 442], "wcsndmap": [102, 105, 111, 116, 118, 133, 141, 161, 163, 166, 168, 170, 175, 176, 177, 178, 181, 186, 187, 192, 193, 194, 196, 202, 204, 205, 207, 208, 224, 247, 263, 271, 367, 373, 375, 386, 424, 425, 426, 428, 431, 433, 440, 442, 445, 446, 459, 460, 469, 479, 481, 485, 486, 494, 504, 514, 516, 524, 527], "wcsprm": 542, "wcsshape": 486, "we": [13, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 65, 83, 87, 88, 89, 91, 95, 101, 133, 175, 201, 204, 214, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 280, 355, 380, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 397, 398, 399, 400, 401, 402, 403, 406, 407, 409, 410, 411, 412, 413, 414, 416, 419, 420, 421, 422, 427, 431, 433, 438, 439, 440, 441, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 500, 502, 503, 504, 515, 522, 523, 525, 527, 530, 541, 544, 554, 575, 578, 579, 580, 581, 582], "weak": [399, 482, 491], "weaker": 286, "weakli": 487, "web": [87, 91, 388, 406, 410, 416, 417, 431, 439, 447, 480], "webpag": [382, 388, 400, 406, 409, 439, 442], "websit": 447, "wedg": 394, "week": [383, 388, 398, 400, 405, 409], "weekli": [386, 389, 393, 394, 472], "wegen": [439, 440], "weigh": [163, 166, 491], "weight": [67, 105, 110, 151, 152, 158, 161, 163, 166, 192, 193, 194, 196, 201, 202, 204, 205, 206, 233, 256, 273, 278, 408, 441, 445, 466, 491, 514, 530], "weighted_chi2_paramet": 466, "weighted_kernel": 161, "welcom": [385, 394, 494], "well": [11, 19, 20, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 56, 67, 83, 87, 91, 105, 110, 115, 117, 122, 123, 131, 192, 196, 198, 202, 204, 214, 218, 221, 222, 224, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 247, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 370, 371, 379, 380, 381, 382, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 413, 416, 417, 420, 422, 423, 424, 425, 426, 427, 428, 431, 433, 434, 439, 440, 441, 445, 446, 451, 452, 458, 461, 466, 468, 472, 474, 477, 481, 482, 483, 484, 485, 486, 487, 489, 493, 494, 498, 502, 503, 504, 514, 515, 516, 527, 530, 531, 575, 576, 578, 580], "went": 420, "were": [16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 84, 90, 104, 124, 137, 294, 380, 385, 386, 387, 388, 393, 395, 396, 397, 398, 399, 400, 401, 403, 405, 408, 410, 420, 423, 424, 425, 426, 427, 428, 431, 434, 439, 440, 443, 464, 475, 477, 487, 491, 493, 581], "wg": 409, "what": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 46, 280, 337, 381, 386, 394, 397, 399, 400, 407, 410, 418, 469, 479, 480, 482, 483, 493, 494, 498, 503, 506, 514, 531, 563, 578, 579, 582], "whatev": [394, 396, 397, 578], "wheel": [397, 447], "when": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 53, 83, 84, 86, 87, 88, 89, 90, 91, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 122, 123, 124, 125, 140, 151, 152, 158, 163, 165, 166, 176, 179, 193, 194, 196, 198, 200, 202, 205, 206, 211, 212, 218, 219, 222, 224, 226, 228, 229, 230, 233, 235, 239, 241, 242, 244, 247, 248, 250, 252, 253, 254, 256, 259, 264, 266, 267, 268, 269, 272, 275, 276, 278, 319, 379, 380, 381, 383, 385, 386, 387, 390, 392, 394, 395, 397, 400, 405, 406, 407, 408, 409, 412, 413, 414, 425, 433, 434, 439, 441, 444, 445, 446, 451, 457, 461, 465, 468, 469, 472, 473, 475, 480, 483, 485, 486, 489, 490, 493, 494, 514, 516, 518, 523, 525, 529, 530, 577, 579, 580, 581, 582], "whenev": [87, 91], "where": [11, 16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 52, 69, 83, 84, 87, 88, 90, 91, 104, 123, 124, 125, 128, 133, 150, 151, 152, 158, 163, 166, 168, 179, 191, 192, 193, 194, 196, 198, 201, 202, 204, 205, 206, 207, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 291, 294, 297, 299, 307, 344, 381, 383, 385, 387, 388, 389, 390, 391, 392, 393, 394, 396, 398, 399, 400, 401, 402, 403, 404, 407, 408, 410, 412, 414, 416, 422, 434, 440, 450, 455, 460, 467, 468, 480, 485, 486, 487, 489, 491, 493, 494, 495, 504, 506, 514, 515, 518, 523, 530, 535, 536, 537, 540, 541, 544, 577, 578, 579, 580, 581, 582], "wherea": [386, 394, 397, 578], "whether": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 83, 84, 86, 87, 88, 90, 91, 100, 102, 104, 105, 107, 109, 110, 123, 124, 125, 126, 133, 147, 148, 149, 150, 153, 154, 155, 157, 160, 162, 164, 165, 179, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 211, 218, 219, 222, 224, 226, 228, 229, 230, 235, 239, 241, 242, 244, 247, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 273, 275, 276, 289, 307, 316, 343, 346, 348, 349, 377, 385, 387, 394, 397, 399, 400, 407, 445, 458, 471, 482, 485, 486, 504, 530, 579, 580], "which": [16, 19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 43, 56, 57, 59, 67, 70, 72, 77, 80, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 100, 101, 102, 104, 105, 107, 109, 110, 118, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 137, 141, 142, 143, 147, 148, 149, 150, 153, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 173, 174, 179, 180, 190, 191, 192, 193, 194, 196, 197, 198, 201, 202, 204, 205, 206, 209, 211, 218, 219, 220, 221, 222, 224, 225, 226, 228, 229, 230, 234, 235, 237, 241, 242, 244, 247, 248, 249, 250, 251, 252, 253, 254, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 275, 276, 280, 286, 288, 289, 290, 294, 295, 296, 298, 303, 305, 319, 329, 339, 340, 358, 367, 369, 374, 376, 379, 381, 383, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 408, 409, 410, 411, 412, 414, 415, 417, 421, 422, 423, 425, 426, 427, 428, 431, 434, 440, 442, 445, 447, 450, 451, 452, 455, 458, 459, 460, 461, 463, 466, 467, 468, 469, 472, 474, 475, 477, 478, 480, 481, 482, 483, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 502, 503, 504, 508, 509, 514, 515, 516, 518, 520, 521, 522, 524, 525, 527, 529, 530, 531, 532, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 575, 576, 577, 578, 579, 580, 581], "whichev": [192, 193, 194], "while": [87, 91, 105, 193, 194, 196, 198, 202, 205, 206, 380, 383, 385, 386, 387, 389, 392, 393, 395, 399, 401, 402, 404, 405, 406, 409, 410, 412, 450, 455, 457, 460, 468, 474, 475, 481, 482, 484, 485, 486, 488, 489, 514, 516, 518, 529, 531, 578], "whilst": [381, 490, 498], "whippl": 97, "whirlwind": 498, "white": [295, 369, 370, 465, 475, 483, 488, 506, 531], "whitespac": 325, "who": [406, 479, 506], "whole": [95, 118, 170, 173, 180, 183, 184, 186, 187, 192, 193, 194, 196, 205, 206, 248, 279, 288, 290, 380, 386, 392, 395, 406, 452, 455, 463, 468, 472, 475, 481, 489, 494, 496, 575], "whose": [406, 410, 468, 524, 536], "why": [380, 381, 385, 387, 394, 483, 531], "wide": [387, 406, 407, 421, 440, 453, 464, 577], "wider": [473, 487, 525], "widget": [193, 194, 196, 202, 205, 206, 463, 471, 486, 502, 503], "width": [16, 27, 68, 83, 87, 91, 102, 105, 109, 110, 111, 112, 113, 115, 116, 117, 118, 128, 133, 150, 151, 152, 155, 158, 161, 163, 166, 168, 173, 178, 191, 192, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 206, 221, 224, 225, 234, 236, 237, 247, 249, 260, 261, 263, 265, 271, 273, 275, 370, 371, 396, 403, 441, 456, 457, 459, 460, 461, 463, 465, 466, 467, 468, 469, 471, 472, 475, 479, 480, 481, 484, 485, 486, 487, 489, 494, 495, 502, 503, 504, 525, 527, 528, 529, 530, 531, 535, 536, 537, 539, 540, 541], "width_err": 480, "width_error": 68, "width_min": 201, "width_pix": [192, 193, 194], "widthconfig": 16, "wiki": [34, 83, 88, 431, 496], "wikipedia": [34, 83, 88, 336, 394, 398], "wilei": [135, 144], "wilk": [286, 516, 580], "willing": 383, "wind": [50, 461, 466, 489, 509], "window": [112, 113, 379, 380, 387, 397, 410, 411, 412, 414, 420, 436, 440, 459, 480, 577, 578, 580], "wise": [19, 20, 26, 87, 91, 141, 142, 194, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 408, 433, 447, 461, 463, 514], "wish": [201, 383, 398, 466, 483], "with_bbox": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "with_bounding_box": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "with_units_from_data": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "withdraw": [390, 391, 392, 395, 402, 404], "withdrawn": [384, 385, 390, 391, 392, 395, 402, 404], "within": [126, 129, 141, 192, 206, 223, 224, 225, 231, 236, 237, 238, 239, 240, 247, 255, 260, 262, 263, 274, 277, 379, 380, 381, 385, 389, 394, 396, 397, 398, 399, 400, 403, 405, 406, 408, 409, 410, 411, 412, 414, 434, 437, 439, 443, 445, 447, 456, 457, 463, 466, 472, 473, 474, 477, 480, 482, 484, 485, 486, 489, 490, 494, 498, 504, 514, 517, 518, 577], "without": [13, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 130, 153, 191, 192, 197, 201, 204, 377, 380, 383, 385, 388, 390, 394, 395, 396, 397, 399, 404, 410, 421, 422, 426, 447, 456, 459, 463, 464, 477, 479, 485, 486, 487, 502, 518, 529, 530, 531, 573, 578, 580], "without_units_for_data": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "wl": [26, 479], "wo": 475, "wobbl": [95, 474, 493], "wobbleregionfind": 433, "wobbleregionsfind": 457, "wolfram": [334, 335], "women": 436, "won": [118, 122, 126, 130, 133, 352, 405, 463, 486, 493, 581], "wong": [423, 447], "wood": [387, 437, 439, 440], "word": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 518], "work": [11, 13, 16, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 87, 91, 100, 125, 203, 344, 379, 380, 381, 383, 385, 387, 388, 389, 390, 391, 392, 394, 395, 396, 397, 398, 399, 400, 402, 405, 406, 409, 410, 411, 412, 413, 415, 416, 417, 419, 420, 421, 422, 423, 425, 426, 432, 435, 436, 437, 438, 439, 440, 441, 442, 447, 450, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 479, 480, 481, 483, 484, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504, 514, 518, 528, 530, 542, 544, 550, 566, 572, 573, 578], "workaround": [397, 447], "workflow": [383, 388, 389, 396, 401, 405, 410, 425, 447, 456, 461, 498, 502, 503, 519], "workshop": 389, "workspac": 383, "world": [83, 204, 224, 247, 380, 386, 465, 504, 530], "worst": 383, "worth": [380, 506], "would": [16, 84, 87, 90, 91, 95, 104, 124, 193, 194, 196, 202, 205, 206, 380, 383, 386, 387, 388, 391, 392, 394, 395, 396, 397, 398, 399, 400, 401, 404, 406, 407, 422, 431, 453, 455, 458, 459, 471, 483, 486, 487, 489, 491, 494, 531], "wouldn": 394, "wrap": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 198, 259, 315, 394, 424, 447], "wrap_at": 391, "wrap_coord": 198, "wrapper": [56, 248, 259, 319, 394, 395, 422, 425, 506, 518], "write": [11, 15, 16, 26, 82, 86, 87, 88, 91, 100, 101, 102, 105, 107, 109, 110, 123, 125, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 193, 194, 196, 200, 202, 205, 206, 212, 224, 239, 247, 271, 272, 273, 274, 275, 349, 358, 381, 383, 389, 390, 391, 392, 393, 394, 396, 397, 399, 400, 402, 403, 404, 406, 407, 408, 410, 416, 419, 425, 428, 433, 435, 438, 439, 440, 441, 446, 447, 450, 455, 463, 464, 467, 469, 484, 488, 489, 493, 494, 500, 502, 503, 518, 523, 579, 581], "write_arf": 107, "write_bkg": 107, "write_covari": [15, 100, 212, 224, 247], "write_dataset": 15, "write_ds9": 489, "write_model": 15, "write_pha": 107, "write_rmf": 107, "writeabl": 408, "writer": [87, 91, 400, 407], "writeto": [86, 147, 148, 149, 153, 154, 155, 157, 160, 162, 164, 165, 467], "written": [88, 100, 101, 102, 105, 107, 109, 110, 123, 125, 151, 152, 158, 163, 166, 193, 194, 196, 200, 202, 205, 206, 208, 380, 381, 383, 385, 389, 390, 400, 406, 408, 443, 450, 468, 488, 491, 506, 514, 515, 518, 531, 577], "wrong": [380, 429, 443, 444, 445], "wrote": 406, "wrt": [83, 163, 166, 380, 398, 474, 573], "wstat": [105, 110, 300, 301, 392, 419, 437, 438, 451, 455, 456, 458, 461, 465, 475, 481, 491, 514, 577], "wstatcountsstatist": [475, 580], "wt": [26, 479], "wun": 423, "www": [26, 67, 87, 91, 135, 144, 400, 493, 518], "wyatt": [419, 577], "x": [19, 20, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 46, 67, 68, 87, 91, 102, 109, 128, 135, 141, 142, 144, 148, 198, 202, 203, 211, 214, 216, 218, 221, 222, 225, 226, 228, 229, 230, 231, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 267, 268, 269, 274, 275, 289, 295, 296, 299, 310, 311, 312, 314, 318, 320, 325, 334, 369, 372, 373, 380, 381, 385, 387, 388, 389, 394, 405, 409, 412, 414, 453, 458, 459, 465, 468, 475, 477, 478, 480, 483, 484, 486, 491, 494, 504, 512, 518, 535, 536, 578, 580], "x27": [482, 484], "x6a4hsvk": 477, "x7oxxc8": 485, "x86_64": [450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "x_": 128, "x_0": [193, 194, 196, 202, 205, 206], "x_1": 319, "x_2": 319, "x_3": 319, "x_bkg": 475, "x_edg": 129, "x_high": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "x_i": [193, 194, 196, 202, 205, 206], "x_j": 128, "x_low": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "x_max": [128, 332, 334, 469], "x_min": [128, 332, 334, 469], "x_n": [193, 194, 196, 202, 205, 206], "x_r_0": 237, "x_ref": [128, 469], "x_sigma": 234, "x_stddev": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "x_valu": [211, 483], "xarg": 380, "xaxi": [482, 518], "xerr": [450, 477, 491], "xf": 493, "xfail": 380, "xhu": 477, "xla2ncz": 459, "xlabel": [381, 445, 461, 474, 477, 491, 494, 510, 511, 512, 535, 572], "xlim": [367, 463, 491, 494, 512], "xmax": [17, 18, 21, 22, 24, 25, 27, 202, 408], "xmin": [17, 18, 21, 22, 24, 25, 27, 202, 408], "xml": [389, 390, 391, 424, 438, 440, 493, 506], "xmltodict": [432, 493], "xref": 128, "xspec": [226, 276, 304, 438, 451, 579], "xunit": [457, 544], "xviii": 400, "xx": [391, 406], "xxx": [87, 91, 385, 406], "xxx_by_coord": 486, "xxxx": 518, "xy": [455, 465, 469, 535], "xy_posit": [33, 34, 38], "xytext": 535, "xyz": 409, "xzsiyuu": 485, "y": [19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 46, 68, 87, 91, 141, 142, 148, 198, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 310, 311, 312, 314, 318, 320, 372, 380, 394, 405, 412, 414, 445, 450, 459, 465, 468, 477, 483, 491, 512, 518], "y_high": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "y_low": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "y_stddev": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "y_valu": [211, 483], "yaml": [11, 15, 16, 20, 26, 84, 90, 99, 100, 101, 102, 104, 105, 109, 110, 123, 124, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 286, 343, 346, 348, 349, 379, 388, 389, 391, 392, 393, 396, 397, 402, 407, 408, 409, 410, 411, 423, 424, 425, 428, 433, 442, 446, 447, 450, 452, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 503, 504, 517, 575, 576, 577, 578], "yaml_str": [224, 247, 456], "yaxi": [453, 482, 518], "ye": 410, "year": [45, 61, 65, 78, 380, 385, 387, 388, 390, 397, 400, 401, 405, 407, 410, 437, 439, 440, 464, 466, 480, 493, 510, 511, 512, 513], "yearli": [413, 438], "yellow": 370, "yerr": [475, 477], "yet": [89, 379, 380, 383, 385, 387, 394, 397, 400, 401, 447, 448, 453, 456, 502, 582], "yield": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 82, 83, 88, 92, 193, 194, 196, 202, 205, 206, 344, 387, 393, 394, 399, 401, 403, 408, 487, 579, 580, 581], "yk04": [45, 48], "yk04b": 48, "ylabel": [381, 474, 477, 491, 494, 510, 511, 512, 535, 572], "ylim": [367, 451, 461, 491, 494, 510, 512, 551, 560, 561, 562], "ymax": [535, 536], "ymin": [535, 536], "yml": [383, 397, 409, 410, 411, 412, 414, 439, 447], "you": [16, 19, 20, 26, 67, 82, 83, 84, 87, 90, 91, 94, 101, 104, 107, 124, 125, 141, 148, 150, 153, 176, 193, 194, 196, 202, 205, 206, 211, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 279, 286, 379, 380, 381, 382, 383, 385, 387, 390, 394, 397, 398, 409, 410, 411, 412, 413, 414, 415, 416, 417, 420, 421, 422, 431, 439, 440, 441, 447, 451, 452, 453, 455, 456, 457, 458, 460, 461, 463, 465, 467, 468, 471, 473, 474, 475, 477, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 498, 502, 503, 504, 514, 515, 518, 521, 525, 529, 552, 575, 578, 579, 580, 581, 582], "your": [16, 19, 20, 26, 84, 90, 99, 104, 124, 218, 219, 222, 226, 228, 229, 230, 235, 241, 242, 244, 248, 250, 252, 253, 254, 259, 264, 266, 267, 268, 269, 272, 276, 379, 380, 381, 383, 385, 387, 409, 410, 411, 412, 413, 414, 416, 417, 420, 421, 422, 425, 426, 431, 440, 441, 450, 451, 452, 453, 455, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 513, 518, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 577, 580], "yourself": [578, 579], "yr": [45, 52, 53, 508, 510, 511, 512], "yscale": [461, 570], "yt": 380, "yu": [423, 447], "yunit": [455, 457, 479, 480, 494, 555], "yusifovkucuk2004": [28, 29, 30, 35, 36, 40, 48], "yusifovkucuk2004b": [28, 29, 30, 35, 36, 39, 48], "yve": 439, "yy": 406, "yyyi": 406, "z": [19, 20, 26, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 46, 87, 91, 310, 311, 314, 405, 406, 412, 414, 479, 508, 544], "z_0": 29, "z_high": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "z_low": [28, 29, 30, 31, 32, 35, 36, 37, 39, 40], "zabalza": 435, "zanin": [439, 440], "zd": 83, "zen": 490, "zen_pnt": 490, "zenith": [450, 464, 490, 493, 494, 495, 523], "zenith_angl": [83, 407, 494, 504], "zenodo": [406, 433, 493], "zero": [52, 53, 67, 87, 91, 100, 102, 105, 109, 110, 133, 141, 150, 151, 152, 155, 158, 163, 179, 193, 194, 196, 202, 205, 206, 251, 273, 275, 319, 325, 337, 380, 424, 427, 442, 447, 480, 485, 486, 491, 581], "zgue": 477, "zhao": [27, 446], "zhen": [135, 144], "zip": [395, 408, 409, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 493, 494, 495, 496, 498, 500, 502, 503, 504, 512, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "zl": [26, 479], "zn2a9": 477, "zone": 475, "zqlotdb": 477, "zsh": 381, "zt": [26, 479], "z\u00e9": 438, "\u00e0": 437, "\u0261\u00e6m\u0259pa\u026a": 518, "\u03b3": [137, 506, 577], "\u03c3": 466}, "titles": ["analysis - High level interface", "astro - Astrophysics", "catalog - Source catalogs", "data - DL3 data and observations", "datasets - Reduced datasets", "estimators - High level estimators", "API reference", "irf - Instrument response functions", "makers - Data reduction", "maps - Sky maps", "modeling - Models and fitting", "scripts - Command line tools", "stats - Statistics", "utils - Utilities", "visualization - Plotting features", "Analysis", "AnalysisConfig", "BurkertProfile", "DMProfile", "DarkMatterAnnihilationSpectralModel", "DarkMatterDecaySpectralModel", "EinastoProfile", "IsothermalProfile", "JFactory", "MooreProfile", "NFWProfile", "PrimaryFlux", "ZhaoProfile", "CaseBattacharya1998", "Exponential", "FaucherKaspi2006", "FaucherKaspi2006VelocityBimodal", "FaucherKaspi2006VelocityMaxwellian", "FaucherSpiral", "LogSpiral", "Lorimer2006", "Paczynski1990", "Paczynski1990Velocity", "ValleeSpiral", "YusifovKucuk2004", "YusifovKucuk2004B", "add_observed_parameters", "add_pulsar_parameters", "add_pwn_parameters", "add_snr_parameters", "make_base_catalog_galactic", "make_catalog_random_positions_cube", "make_catalog_random_positions_sphere", "radial_distributions", "velocity_distributions", "PWN", "Pulsar", "SNR", "SNRTrueloveMcKee", "SimplePulsar", "CATALOG_REGISTRY", "SourceCatalog", "SourceCatalog1LHAASO", "SourceCatalog2FHL", "SourceCatalog2HWC", "SourceCatalog2PC", "SourceCatalog3FGL", "SourceCatalog3FHL", "SourceCatalog3HWC", "SourceCatalog3PC", "SourceCatalog4FGL", "SourceCatalogGammaCat", "SourceCatalogHGPS", "SourceCatalogLargeScaleHGPS", "SourceCatalogObject", "SourceCatalogObject1LHAASO", "SourceCatalogObject2FHL", "SourceCatalogObject2HWC", "SourceCatalogObject2PC", "SourceCatalogObject3FGL", "SourceCatalogObject3FHL", "SourceCatalogObject3HWC", "SourceCatalogObject3PC", "SourceCatalogObject4FGL", "SourceCatalogObjectGammaCat", "SourceCatalogObjectHGPS", "SourceCatalogObjectHGPSComponent", "DataStore", "EventList", "EventListMetaData", "FixedPointingInfo", "GTI", "HDUIndexTable", "Observation", "ObservationFilter", "ObservationMetaData", "ObservationTable", "Observations", "ObservationsEventsSampler", "PointingInfo", "PointingMode", "get_irfs_features", "observatory_locations", "DATASET_REGISTRY", "Dataset", "Datasets", "FluxPointsDataset", "MapDataset", "MapDatasetEventSampler", "MapDatasetMetaData", "MapDatasetOnOff", "OGIPDatasetReader", "OGIPDatasetWriter", "ObservationEventSampler", "SpectrumDataset", "SpectrumDatasetOnOff", "apply_edisp", "create_empty_map_dataset_from_irfs", "create_map_dataset_from_observation", "create_map_dataset_geoms", "split_dataset", "apply_edisp", "split_dataset", "ASmoothMapEstimator", "ESTIMATOR_REGISTRY", "EnergyDependentMorphologyEstimator", "Estimator", "ExcessMapEstimator", "FluxMaps", "FluxMetaData", "FluxPoints", "FluxPointsEstimator", "FluxProfileEstimator", "ImageProfile", "ImageProfileEstimator", "LightCurveEstimator", "ParameterEstimator", "SensitivityEstimator", "TSMapEstimator", "combine_flux_maps", "combine_significance_maps", "compute_lightcurve_discrete_correlation", "compute_lightcurve_doublingtime", "compute_lightcurve_fpp", "compute_lightcurve_fvar", "estimate_exposure_reco_energy", "find_peaks", "find_peaks_in_flux_map", "get_combined_flux_maps", "get_combined_significance_maps", "get_rebinned_axis", "resample_energy_edges", "Background2D", "Background3D", "BackgroundIRF", "EDispKernel", "EDispKernelMap", "EDispMap", "EffectiveAreaTable2D", "EnergyDependentMultiGaussPSF", "EnergyDispersion2D", "FoVAlignment", "IRF", "IRFMap", "IRF_REGISTRY", "PSF3D", "PSFKernel", "PSFKing", "PSFMap", "ParametricPSF", "RadMax2D", "RecoPSFMap", "load_irf_dict_from_file", "AdaptiveRingBackgroundMaker", "DatasetsMaker", "FoVBackgroundMaker", "MAKER_REGISTRY", "Maker", "MapDatasetMaker", "PhaseBackgroundMaker", "ReflectedRegionsBackgroundMaker", "ReflectedRegionsFinder", "RegionsFinder", "RingBackgroundMaker", "SafeMaskMaker", "SpectrumDatasetMaker", "WobbleRegionsFinder", "make_counts_rad_max", "make_edisp_kernel_map", "make_edisp_map", "make_effective_livetime_map", "make_map_background_irf", "make_map_exposure_true_energy", "make_observation_time_map", "make_psf_map", "make_theta_squared_table", "Geom", "HpxGeom", "HpxMap", "HpxNDMap", "LabelMapAxis", "Map", "MapAxes", "MapAxis", "MapCoord", "Maps", "RegionGeom", "RegionNDMap", "TimeMapAxis", "WcsGeom", "WcsMap", "WcsNDMap", "containment_radius", "containment_region", "Covariance", "CovarianceResult", "Fit", "FitResult", "OptimizeResult", "Parameter", "Parameters", "PriorParameter", "PriorParameters", "BrokenPowerLawSpectralModel", "CompoundSpectralModel", "ConstantFluxSpatialModel", "ConstantSpatialModel", "ConstantSpectralModel", "ConstantTemporalModel", "DatasetModels", "DiskSpatialModel", "EBLAbsorptionNormSpectralModel", "EBL_DATA_BUILTIN", "ExpCutoffPowerLaw3FGLSpectralModel", "ExpCutoffPowerLawNormSpectralModel", "ExpCutoffPowerLawSpectralModel", "ExpDecayTemporalModel", "FoVBackgroundModel", "GaussianPrior", "GaussianSpatialModel", "GaussianSpectralModel", "GaussianTemporalModel", "GeneralizedGaussianSpatialModel", "GeneralizedGaussianTemporalModel", "LightCurveTemplateTemporalModel", "LinearTemporalModel", "LogParabolaNormSpectralModel", "LogParabolaSpectralModel", "MODEL_REGISTRY", "MeyerCrabSpectralModel", "Model", "ModelBase", "Models", "NaimaSpectralModel", "PiecewiseNormSpatialModel", "PiecewiseNormSpectralModel", "PointSpatialModel", "PowerLaw2SpectralModel", "PowerLawNormSpectralModel", "PowerLawSpectralModel", "PowerLawTemporalModel", "Prior", "SPATIAL_MODEL_REGISTRY", "SPECTRAL_MODEL_REGISTRY", "ScaleSpectralModel", "Shell2SpatialModel", "ShellSpatialModel", "SineTemporalModel", "SkyModel", "SmoothBrokenPowerLawSpectralModel", "SpatialModel", "SpectralModel", "SuperExpCutoffPowerLaw3FGLSpectralModel", "SuperExpCutoffPowerLaw4FGLDR3SpectralModel", "SuperExpCutoffPowerLaw4FGLSpectralModel", "TEMPORAL_MODEL_REGISTRY", "TemplateNDSpatialModel", "TemplateNDSpectralModel", "TemplateNPredModel", "TemplatePhaseCurveTemporalModel", "TemplateSpatialModel", "TemplateSpectralModel", "TemporalModel", "UniformPrior", "create_cosmic_ray_spectral_model", "create_crab_spectral_model", "create_fermi_isotropic_diffuse_model", "integrate_spectrum", "read_hermes_cube", "scale_plot_flux", "read_hermes_cube", "select_nested_models", "stat_profile_ul_scipy", "CashCountsStatistic", "TimmerKonig_lightcurve_simulator", "WStatCountsStatistic", "cash", "cash_sum_cython", "compute_chisq", "compute_flux_doubling", "compute_fpp", "compute_fvar", "cstat", "discrete_correlation", "f_cash_root_cython", "get_wstat_gof_terms", "get_wstat_mu_bkg", "norm_bounds_cython", "structure_function", "wstat", "hierarchical_clustering", "standard_scaler", "D_SUN_TO_GALACTIC_CENTER", "cartesian", "fov_to_sky", "galactic", "motion_since_birth", "polar", "sky_to_fov", "velocity_glon_glat", "HDULocation", "LazyFitsData", "earth_location_from_dict", "trapz_loglog", "ScaledRegularGridInterpolator", "interpolate_profile", "interpolation_scale", "BACKEND_DEFAULT", "METHOD_DEFAULT", "METHOD_KWARGS_DEFAULT", "N_JOBS_DEFAULT", "POOL_KWARGS_DEFAULT", "multiprocessing_manager", "run_multiprocessing", "InverseCDFSampler", "draw", "get_random_state", "normalize", "pdf", "sample_powerlaw", "sample_sphere", "sample_sphere_distance", "sample_times", "compound_region_to_regions", "make_concentric_annulus_sky_regions", "make_orthogonal_rectangle_sky_regions", "region_to_frame", "regions_to_compound_region", "from_yaml", "get_images_paths", "make_path", "read_yaml", "recursive_merge_dicts", "to_yaml", "write_yaml", "hstack_columns", "table_row_to_dict", "table_standardise_units_copy", "table_standardise_units_inplace", "Checker", "assert_quantity_allclose", "assert_skycoord_allclose", "assert_time_allclose", "mpl_plot_check", "requires_data", "requires_dependency", "absolute_time", "time_ref_from_dict", "time_ref_to_dict", "time_relative_to_ref", "standardise_unit", "unit_from_fits_image_hdu", "MapPanelPlotter", "add_colorbar", "annotate_heatmap", "colormap_hess", "colormap_milagro", "plot_contour_line", "plot_distribution", "plot_heatmap", "plot_map_rgb", "plot_npred_signal", "plot_spectrum_datasets_off_regions", "plot_theta_squared_table", "Dependencies", "Developer How To", "Documentation How To", "Developer guide", "How to contribute to Gammapy", "PIGs", "PIG 1 - PIG purpose and guidelines", "PIG 2 - Organization of low level analysis code", "PIG 3 - Plan for dropping Python 2.7 support", "PIG 4 - Setup for tutorial notebooks and data", "PIG 5 - Gammapy 1.0 roadmap", "PIG 6 - CTA observation handling", "PIG 7 - Models", "PIG 8 - Datasets", "PIG 9 - Event sampling", "PIG 10 - Regions", "PIG 11 - Light curves", "PIG 12 - High level interface", "PIG 13 - Gammapy dependencies and distribution", "PIG 14 - Uncertainty estimation", "PIG 16 - Gammapy package structure", "PIG 18 - Documentation", "PIG 19 - Gammapy package structure follow up", "PIG 20 - Global Model API", "PIG 21 - Models improvements", "PIG 22 - Unified flux estimators API", "PIG 23 - Gammapy release cycle and version numbering", "PIG 24 - Authorship policy", "PIG 25 - Metadata container for Gammapy", "PIG 26 - Model Priors API", "How to make a Gammapy release", "Project setup", "Virtual Environments", "Getting started", "Installation", "Recommended Setup", "Troubleshooting", "Using Gammapy", "Gammapy", "Release notes", "0.1 (Aug 25, 2014)", "0.10 (Jan 28, 2019)", "0.11 (Mar 29, 2019)", "0.12 (May 30, 2019)", "0.13 (Jul 26, 2019)", "0.14 (Sep 30, 2019)", "0.15 (Dec 3, 2019)", "0.16 (Feb 1, 2020)", "0.17 (Apr 1, 2020)", "0.18 (Nov 4th, 2020)", "0.18.1 (Nov 6th, 2020)", "0.18.2 (Nov 19th, 2020)", "0.19 (Nov 22nd, 2021)", "0.2 (Apr 13, 2015)", "0.20 (May 12th, 2022)", "0.20.1 (June 16th, 2022)", "0.3 (Aug 13, 2015)", "0.4 (Apr 20, 2016)", "0.5 (Nov 22, 2016)", "0.6 (Apr 28, 2017)", "0.7 (Feb 28, 2018)", "0.8 (Sep 23, 2018)", "0.9 (Nov 29, 2018)", "1.0 (November 10th, 2022)", "1.0.1 (March 14th, 2023)", "1.0.2 (December 6th, 2023)", "1.1 (June 13th 2023)", "1.2 (February 29th 2024)", "1.3 (November 26th, 2024)", "2.0 (unreleased)", "Computation times", "Point source sensitivity", "Account for spectral absorption due to the EBL", "Spectral analysis of extended sources", "Flux point fitting", "Computation times", "Spectral analysis", "Spectral analysis with the HLI", "Spectral analysis with energy-dependent directional cuts", "1D spectrum simulation", "Source detection and significance maps", "2D map fitting", "Ring background map", "Computation times", "3D detailed analysis", "Multi instrument joint 3D and 1D analysis", "Basic image exploration and fitting", "Morphological energy dependence estimation", "Event sampling", "Sample a source with energy-dependent temporal evolution", "Flux Profile Estimation", "Computation times", "3D map simulation", "Light curves", "Light curves for flares", "Simulating and fitting a time varying source", "Pulsar analysis", "Computation times", "Time resolved spectroscopy estimator", "Estimation of time variability in a lightcurve", "Dark matter spatial and spectral models", "Source catalogs", "Datasets - Reduced data, IRFs, models", "Estimators", "Fitting", "Using Gammapy IRFs", "Makers - Data reduction", "Maps", "Mask maps", "Modelling", "Models", "Observational clustering", "Priors", "Computation times", "CTAO with Gammapy", "Fermi-LAT with Gammapy", "HAWC with Gammapy", "H.E.S.S. with Gammapy", "Computation times", "Tutorials", "Computation times", "Survey Map Script", "Computation times", "High level interface", "Low level API", "Data structures", "Computation times", "Dark matter", "Astrophysics", "Astrophysical source population models", "Astrophysical source models", "Pulsar Source Models", "Pulsar Wind Nebula Source Models", "Supernova Remnant Models", "Source catalogs", "Datasets (DL4)", "Data access and selection (DL3)", "Estimators (DL4 to DL5, and DL6)", "High Level Analysis Interface", "How To", "User guide", "Effective area", "Background", "Energy Dispersion", "Instrument Response Functions (DL3)", "Point Spread Function", "FoV background", "Data reduction (DL3 to DL4)", "Reflected regions background", "Ring background", "HEALPix-based maps", "Sky maps (DL4)", "RegionGeom and RegionNDMap", "Model gallery", "Computation times", "Constant spatial model", "Disk spatial model", "Gaussian spatial model", "Generalized gaussian spatial model", "Piecewise norm spatial model", "Point spatial model", "Shell spatial model", "Shell2 spatial model", "Template spatial model", "Computation times", "EBL absorption spectral model", "Broken power law spectral model", "Compound spectral model", "Constant spectral model", "Exponential cutoff power law spectral model", "Exponential cutoff power law spectral model used for 3FGL", "Exponential cutoff power law norm spectral model", "Gaussian spectral model", "Log parabola spectral model", "Log parabola spectral norm model", "Naima spectral model", "Piecewise norm spectral model", "Power law spectral model", "Power law 2 spectral model", "Power law norm spectral model", "Smooth broken power law spectral model", "Super exponential cutoff power law model used for 3FGL", "Super Exponential Cutoff Power Law Model used for 4FGL-DR3", "Super Exponential Cutoff Power Law Model used for 4FGL-DR1 (and DR2)", "Template spectral model", "Computation times", "Constant temporal model", "ExpDecay temporal model", "Gaussian temporal model", "Generalized Gaussian temporal model", "Linear temporal model", "PowerLaw temporal model", "Sine temporal model", "Phase curve temporal model", "Light curve temporal model", "Computation times", "Modeling and Fitting (DL4 to DL5)", "Gammapy analysis workflow and package structure", "Glossary and references", "Command line tools", "Fit statistics", "Statistical utility functions", "Derivation of the WStat formula", "Utility functions", "Visualization"], "titleterms": {"": [420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 456, 468, 496, 502], "0": [389, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 448], "1": [385, 389, 408, 418, 419, 426, 427, 429, 434, 442, 443, 444, 445, 446, 447, 491], "10": [394, 418, 420], "10th": 442, "11": [395, 418, 421], "12": [396, 418, 422], "12th": 433, "13": [397, 418, 423, 432, 435], "13th": 445, "14": [398, 418, 424], "14th": 443, "15": [418, 425], "16": [399, 418, 426], "16th": 434, "17": [418, 427], "18": [400, 418, 428, 429, 430], "19": [401, 418, 431], "19th": 430, "1d": [456, 458, 464, 472, 473, 498], "1dc": 493, "2": [386, 387, 408, 418, 430, 432, 444, 446, 448, 491, 557], "20": [402, 418, 433, 434, 436], "2014": 419, "2015": [432, 435], "2016": [436, 437], "2017": 438, "2018": [439, 440, 441], "2019": [420, 421, 422, 423, 424, 425], "2020": [426, 427, 428, 429, 430], "2021": 431, "2022": [433, 434, 442], "2023": [443, 444, 445], "2024": [446, 447], "21": 403, "2155": 482, "22": [404, 437], "22nd": 431, "23": [405, 440], "24": 406, "25": [407, 419], "26": [408, 423], "26th": 447, "28": [420, 438, 439], "29": [421, 441], "29th": 446, "2d": [460, 498], "3": [387, 408, 418, 425, 435, 447], "30": [422, 424], "304": 482, "32": 380, "3955": 408, "3d": [463, 464, 471, 472, 498], "3fgl": [549, 560], "3fhl": 464, "4": [388, 418, 436], "4122": 408, "4fgl": [561, 562], "4th": 428, "5": [389, 418, 437], "6": [390, 418, 438], "64": 380, "6th": [429, 444], "7": [387, 391, 418, 439], "8": [392, 418, 440], "9": [393, 418, 441], "A": [455, 482], "As": 524, "In": 381, "ON": [452, 457, 464], "On": 458, "The": [386, 410, 464, 466, 482, 483, 491, 515, 527], "To": [380, 381, 400, 518], "about": 491, "abov": 466, "absolute_tim": 361, "absorpt": [403, 451, 544], "abstract": [385, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "accept": 383, "access": [459, 481, 482, 486, 495, 515], "accessor": 530, "account": 451, "action": [380, 400], "ad": 486, "adapt": 459, "adaptiveringbackgroundmak": 168, "add": [391, 488], "add_colorbar": 368, "add_observed_paramet": 41, "add_pulsar_paramet": 42, "add_pwn_paramet": 43, "add_snr_paramet": 44, "addit": [403, 408, 524, 576], "aeff_2d": 520, "against": 457, "aim": 488, "algorithm": 477, "alia": 403, "all": 473, "along": 407, "altern": [388, 391, 393, 394, 395, 396, 397, 398, 400, 401, 404, 407], "amplitud": [408, 491], "an": [380, 450, 467, 468, 481, 487], "anaconda": 413, "analysi": [0, 11, 15, 386, 389, 450, 452, 455, 456, 457, 458, 463, 464, 465, 472, 475, 498, 502, 514, 517, 576], "analysisconfig": 16, "angl": [520, 521, 522, 524], "angular": 531, "annihil": 479, "annotate_heatmap": 369, "api": [6, 380, 381, 402, 404, 407, 408, 442, 445, 446, 447, 482, 498, 503], "apply_edisp": [111, 116], "approach": [395, 452, 453, 456, 458, 459, 460, 461, 464, 467, 468, 469, 471, 472, 473, 474, 477, 478, 483, 487, 488, 490, 502, 503], "apr": [427, 432, 436, 438], "arbitrari": 407, "area": [484, 493, 520], "argument": [380, 394], "arm": 508, "asmoothmapestim": 118, "assert": 380, "assert_quantity_allclos": 355, "assert_skycoord_allclos": 356, "assert_time_allclos": 357, "assess": [463, 483], "assign": [473, 488], "astro": [1, 506, 509], "astronomi": 395, "astrophys": [1, 507, 508, 509], "astropi": [380, 405], "asymmetr": 484, "attribut": [380, 381, 391], "aug": [419, 435], "author": 406, "authorship": 406, "avail": 480, "ax": [486, 531], "axi": [380, 523], "backend_default": 322, "background": [391, 395, 399, 402, 408, 461, 466, 467, 485, 488, 493, 494, 502, 521, 525, 526, 527, 528, 579], "background2d": 147, "background3d": 148, "backgroundirf": 149, "backgroundirfmodel": 391, "backgroundmodel": 391, "backport": 380, "base": [404, 407, 529], "basic": [465, 486], "bayesian": 478, "between": 402, "bin": [395, 450, 466, 531], "binder": 410, "bit": 380, "bkg_2d": 521, "bkg_3d": 521, "block": 478, "boundari": 487, "branch": 409, "break": 380, "broken": [381, 545, 559], "brokenpowerlawspectralmodel": 218, "bsd": 380, "bug": [433, 442, 445, 446, 447], "bugfix": 409, "build": [381, 383, 410, 472, 473], "built": 575, "bullet": 381, "bundl": 380, "burkertprofil": 17, "butterfli": 503, "call": 391, "candid": [409, 459], "caplog": 380, "cartesian": 308, "case": [386, 390, 408, 581], "casebattacharya1998": 28, "cash": [291, 579, 580], "cash_sum_cython": 292, "cashcountsstatist": 288, "catalog": [2, 480, 487, 488, 504, 513], "catalog_registri": 55, "caveat": 579, "cell": 380, "certif": 383, "cff": 406, "chain": [455, 457], "chang": [380, 401, 442, 445, 446, 447], "changelog": 400, "character": 478, "check": [11, 380, 381, 415, 450, 452, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 479, 480, 481, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "checker": 354, "chi": 466, "choos": 381, "citat": 406, "class": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 380, 381, 390, 391, 404, 407, 503, 524, 580], "clean": 399, "cli": 578, "click": 380, "clobber": 380, "clumpi": 506, "cluster": [13, 490], "code": [380, 381, 386, 389, 410], "codemeta": 406, "collect": 406, "colormap": 583, "colormap_hess": 370, "colormap_milagro": 371, "combin": [488, 515], "combine_flux_map": 134, "combine_significance_map": 135, "command": [11, 380, 578], "common": 482, "compar": [457, 472], "compound": [489, 546], "compound_region_to_region": 338, "compoundspectralmodel": 219, "comput": [449, 450, 454, 455, 456, 461, 462, 465, 470, 476, 483, 492, 497, 499, 501, 503, 505, 533, 543, 564, 574], "compute_chisq": 293, "compute_flux_doubl": 294, "compute_fpp": 295, "compute_fvar": 296, "compute_lightcurve_discrete_correl": 136, "compute_lightcurve_doublingtim": 137, "compute_lightcurve_fpp": 138, "compute_lightcurve_fvar": 139, "conda": 411, "confer": 406, "confid": 483, "config": [11, 460, 461, 578], "configur": [456, 463, 469, 472, 482, 502, 576], "constant": [534, 547, 565], "constantfluxspatialmodel": 220, "constantspatialmodel": 221, "constantspectralmodel": 222, "constanttemporalmodel": 223, "contain": 407, "containment_radiu": 207, "containment_region": 208, "content": [481, 531], "context": [452, 453, 455, 456, 457, 458, 459, 460, 461, 464, 466, 467, 469, 471, 472, 473, 474, 477, 478, 487, 490, 491, 502, 503], "contigu": 486, "continu": 410, "contour": 483, "contribut": [383, 406, 488], "contributor": [406, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "conveni": 392, "convent": 380, "convers": [380, 482], "convert": 380, "coordin": [13, 380, 391, 521, 531], "correct": 381, "correl": 461, "count": [482, 488, 494, 514, 580], "covari": [209, 483], "covarianceresult": 210, "creat": [452, 455, 460, 461, 468, 481, 482, 484, 486, 487, 503, 531], "create_cosmic_ray_spectral_model": 279, "create_crab_spectral_model": 280, "create_empty_map_dataset_from_irf": 112, "create_fermi_isotropic_diffuse_model": 281, "create_map_dataset_from_observ": 113, "create_map_dataset_geom": 114, "creation": [452, 456, 473], "cstat": 297, "cta": [390, 493], "ctao": 493, "cube": [386, 486, 498], "cumul": 452, "current": 405, "curv": [395, 472, 473, 474, 482, 572, 573], "custom": [489, 491, 575], "cut": [453, 457], "cutoff": [548, 549, 550, 560, 561, 562], "cutout": 486, "cycl": 405, "cython": [405, 410], "d_sun_to_galactic_cent": 307, "dark": [479, 506], "darkmatt": [1, 506], "darkmatterannihilationspectralmodel": 19, "darkmatterdecayspectralmodel": 20, "data": [3, 8, 380, 386, 388, 389, 395, 407, 410, 451, 452, 455, 456, 457, 463, 464, 466, 469, 472, 473, 475, 477, 481, 485, 486, 495, 498, 502, 503, 504, 515, 526, 578, 579], "dataflow": 407, "dataset": [4, 11, 99, 100, 380, 389, 392, 401, 402, 407, 450, 452, 456, 457, 460, 461, 463, 464, 468, 472, 473, 474, 481, 482, 483, 485, 487, 488, 491, 495, 502, 503, 514], "dataset_registri": 98, "datasetmodel": 224, "datasetsmak": 169, "datastor": [82, 493, 503], "dco": [383, 406], "deal": 381, "dec": 425, "decai": 479, "decemb": 444, "decis": [385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "default": 391, "defin": [450, 452, 455, 457, 465, 467, 468, 472, 473, 487, 503, 531], "definit": [406, 472, 526], "depend": [379, 397, 403, 433, 457, 466, 468, 489], "deprec": [380, 405], "deriv": 581, "detail": [387, 463], "detect": [401, 459, 465, 523], "detector": 521, "develop": [380, 382, 383, 387], "diagram": 390, "differ": [464, 486, 582], "diffus": 494, "dilat": 487, "direct": 457, "discrete_correl": 298, "discuss": 395, "disk": [456, 468, 502, 503, 535], "diskspatialmodel": 225, "dispers": [484, 493, 494, 522], "dissolv": 399, "distribut": [397, 496, 508], "dl3": [3, 464, 496, 515, 523, 526], "dl4": [484, 514, 516, 526, 530, 575], "dl5": [516, 575], "dl6": 516, "dmprofil": 18, "do": 380, "doc": 410, "docstr": 381, "document": [381, 383, 389, 400, 446, 447], "doubl": 478, "download": [11, 410], "downsampl": 531, "dr1": [496, 562], "dr2": 562, "dr3": 561, "draw": 330, "driven": 578, "drop": 387, "due": 451, "durat": 485, "e": 496, "each": 466, "earli": 383, "earth_location_from_dict": 317, "ebl": [451, 544], "ebl_data_builtin": 227, "eblabsorptionnormspectralmodel": 226, "edg": 516, "edisp": 484, "edisp_2d": 522, "edispkernel": 150, "edispkernelmap": 151, "edispmap": 152, "effect": [484, 485, 493, 520], "effectiveareatable2d": 153, "einastoprofil": 21, "elaps": 582, "empti": 481, "encourag": 491, "end": 380, "energi": [403, 450, 457, 466, 468, 484, 487, 489, 493, 494, 516, 520, 521, 522, 524], "energydependentmorphologyestim": 120, "energydependentmultigausspsf": 154, "energydispersion2d": 155, "environ": 411, "eros": 487, "error": [483, 580], "estim": [5, 121, 398, 401, 404, 407, 456, 459, 466, 469, 472, 477, 478, 482, 485, 516, 526, 527, 580], "estimate_exposure_reco_energi": 140, "estimator_registri": 119, "evalu": [391, 392, 393], "event": [389, 393, 467, 468, 475, 486, 493, 494, 496, 504, 515, 523], "eventlist": 83, "eventlistmetadata": 84, "evolut": 468, "exampl": [410, 491, 514, 516, 517, 525, 526, 527, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 579], "excess": [404, 452, 461, 478, 580], "excessmapestim": 122, "exclus": [455, 456, 461, 487, 502], "execut": 578, "exemplari": 408, "exercis": [450, 453, 455, 458, 463, 465, 467, 468, 474, 477, 493, 494, 495, 496, 504], "exist": 386, "expcutoffpowerlaw3fglspectralmodel": 228, "expcutoffpowerlawnormspectralmodel": 229, "expcutoffpowerlawspectralmodel": 230, "expdecai": 566, "expdecaytemporalmodel": 231, "expect": 523, "explor": [452, 456, 465, 498], "exponenti": [29, 453, 548, 549, 550, 560, 561, 562], "expos": 391, "exposur": [484, 494], "extend": [452, 467], "extens": [381, 451], "extern": 380, "extra": 410, "extract": [461, 472, 473, 474], "extrapol": [380, 563], "f_cash_root_cython": 299, "factor": 479, "factori": 486, "factoris": 523, "faucherkaspi2006": 30, "faucherkaspi2006velocitybimod": 31, "faucherkaspi2006velocitymaxwellian": 32, "faucherspir": 33, "favor": 408, "featur": [14, 405, 409, 442, 445, 446, 447, 482], "feb": [426, 439], "februari": 446, "fermi": [464, 494], "fermist": 506, "file": [381, 406, 456, 460, 461, 464, 493, 502, 515, 531], "fill": [486, 531], "filter": 473, "final": [385, 409, 456, 581], "find_peak": 141, "find_peaks_in_flux_map": 142, "finder": 527, "first": [409, 456], "fit": [10, 13, 211, 389, 395, 451, 452, 453, 455, 456, 457, 460, 463, 464, 465, 471, 474, 483, 487, 491, 494, 502, 503, 531, 575, 579, 580, 581], "fitresult": 212, "fix": [380, 433, 442, 445, 446, 447], "fixedpointinginfo": 85, "fixtur": 380, "flare": 473, "float": 380, "flux": [404, 408, 450, 451, 453, 455, 456, 464, 469, 479, 480, 482, 502, 503, 504, 516], "fluxestim": 404, "fluxmap": [123, 404, 482], "fluxmetadata": 124, "fluxpoint": [125, 482], "fluxpointscollect": 404, "fluxpointsdataset": [101, 392, 481], "fluxpointsestim": [126, 516], "fluxprofileestim": 127, "fold": 391, "folder": 410, "follow": 401, "format": [380, 381, 582], "formula": 581, "forward": 391, "found": 578, "fov": [485, 525], "fov_to_ski": 309, "fovalign": 156, "fovbackgroundmak": [170, 525], "fovbackgroundmodel": 232, "fraction": 478, "freez": [405, 409, 488], "from": [380, 473, 486, 487, 488, 531], "from_yaml": 343, "fulli": 482, "function": [1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 380, 381, 493, 520, 521, 522, 523, 524, 580, 582], "further": [395, 451, 579], "galact": [310, 494], "galactocentr": 508, "galleri": [380, 381, 532], "gamlik": 506, "gamma": [395, 479], "gammapi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 380, 383, 386, 389, 397, 399, 400, 401, 405, 406, 407, 409, 410, 416, 417, 484, 493, 494, 495, 496, 506, 509, 513, 514, 515, 516, 517, 523, 525, 526, 527, 530, 575, 576, 582], "gaussian": [536, 537, 551, 567, 568], "gaussianprior": 233, "gaussianspatialmodel": 234, "gaussianspectralmodel": 235, "gaussiantemporalmodel": 236, "gener": [380, 386, 390, 395, 406, 407, 516, 537, 568], "generalist": 404, "generalizedgaussianspatialmodel": 237, "generalizedgaussiantemporalmodel": 238, "geom": 191, "geometri": [452, 465, 472, 473, 486, 487, 502, 503, 529, 531], "get": [383, 400, 412, 451, 460, 461, 486, 507, 508, 509, 515, 530], "get_combined_flux_map": 143, "get_combined_significance_map": 144, "get_images_path": 344, "get_irfs_featur": 96, "get_random_st": 331, "get_rebinned_axi": 145, "get_wstat_gof_term": 300, "get_wstat_mu_bkg": 301, "github": 380, "given": 488, "global": 402, "glossari": 577, "good": 581, "gpl": 380, "group": 490, "gti": [86, 515], "guid": [382, 519], "guidelin": [381, 385, 386, 400], "h": 496, "halv": 478, "handl": [380, 389, 390, 391, 402, 406, 485, 582], "have": [388, 390, 395, 396, 404], "hawc": [464, 495], "hduindext": 87, "hduloc": 315, "healpix": 529, "help": 415, "helper": 392, "hess": 464, "hgp": 480, "hierarch": 490, "hierarchi": 407, "hierarchical_clust": 305, "high": [0, 5, 389, 396, 502, 517], "hli": 456, "how": [380, 381, 383, 400, 409, 486, 518], "hpxgeom": 192, "hpxmap": 193, "hpxndmap": 194, "hstack_column": 350, "i": [380, 383, 385, 469], "idea": 390, "imag": [381, 386, 394, 399, 459, 465, 486, 498], "imageprofil": 128, "imageprofileestim": 129, "implement": [390, 391, 400, 406, 408, 489, 491], "import": [380, 471], "improv": [391, 403, 433, 442, 445, 446, 447], "inbuilt": 484, "includ": [381, 491], "index": [486, 491, 515], "info": [11, 380], "inform": [406, 480, 491, 522], "infrastructur": 447, "input": [380, 407, 459], "inspect": 503, "instal": [400, 412, 413, 415], "instrument": [7, 464, 523], "integr": [13, 410, 450], "integrate_spectrum": 282, "interact": 402, "interest": 466, "interfac": [0, 389, 391, 396, 502, 517, 530], "intern": 482, "interpol": [13, 380, 486], "interpolate_profil": 320, "interpolation_scal": 321, "interv": 473, "intrins": 451, "introduc": [391, 399, 401, 403, 404, 469], "introduct": [391, 394, 395, 397, 398, 400, 404, 406, 407, 450, 455, 457, 465, 475, 479, 480, 481, 485, 486, 493, 494, 495, 496, 498, 504, 506, 508, 509, 579], "inversecdfsampl": 329, "ipython": 416, "irf": [7, 157, 389, 407, 450, 481, 484, 493, 523], "irf_registri": 159, "irfmap": 158, "isothermalprofil": 22, "isotrop": 494, "issu": [415, 447], "iter": 486, "j": 479, "jan": 420, "jfactori": 23, "joint": [463, 464, 514], "json": 406, "jul": 423, "june": [434, 445], "jupyt": [380, 412, 414, 416], "kei": 482, "kernel": 484, "known": 447, "labelmapaxi": [195, 486], "lat": [464, 494], "latest": 493, "law": [453, 545, 548, 549, 550, 556, 557, 558, 559, 560, 561, 562], "lazi": 392, "lazyfitsdata": 316, "lc": 472, "let": 468, "level": [0, 5, 386, 389, 396, 502, 503, 517], "li": 475, "licens": 380, "light": [395, 472, 473, 474, 482, 573], "lightcurv": [395, 467, 474, 478, 480], "lightcurveestim": [130, 516], "lightcurvetemplatetemporalmodel": 239, "like": [467, 482], "likelihood": 581, "limit": 390, "line": [11, 380, 578], "linear": 569, "lineartemporalmodel": 240, "link": 381, "list": [381, 391, 392, 393, 394, 395, 396, 397, 467, 473, 480, 486, 487, 488, 489, 504, 515], "literatur": 457, "livetim": 485, "load": [392, 450, 451, 453, 455, 457, 480, 482, 488, 495], "load_irf_dict_from_fil": 167, "locat": 380, "log": [11, 380, 453, 552, 553], "logparabolanormspectralmodel": 241, "logparabolaspectralmodel": 242, "logspir": 34, "long": 406, "loop": [452, 485, 503], "lorimer2006": 35, "low": [386, 503], "lt": 405, "ma": 475, "mai": [422, 433], "maintain": [387, 406], "mainten": 389, "major": 409, "make": [380, 383, 409, 465, 468, 475, 503], "make_base_catalog_galact": 45, "make_catalog_random_positions_cub": 46, "make_catalog_random_positions_spher": 47, "make_concentric_annulus_sky_region": 339, "make_counts_rad_max": 182, "make_edisp_kernel_map": 183, "make_edisp_map": 184, "make_effective_livetime_map": 185, "make_map_background_irf": 186, "make_map_exposure_true_energi": 187, "make_observation_time_map": 188, "make_orthogonal_rectangle_sky_region": 340, "make_path": 345, "make_psf_map": 189, "make_theta_squared_t": 190, "maker": [8, 172, 401, 407, 452, 473, 485, 502, 503, 525, 526, 527], "maker_registri": 171, "mamba": 413, "manag": [389, 413], "manual": [487, 490], "map": [9, 196, 200, 386, 389, 390, 459, 460, 461, 464, 465, 471, 475, 479, 484, 486, 487, 488, 500, 504, 516, 529, 530, 531], "mapax": 197, "mapaxi": 198, "mapcoord": [199, 530], "mapdataset": [102, 392, 463, 467, 481, 495, 514], "mapdataseteventsampl": [103, 393], "mapdatasetmak": [173, 526], "mapdatasetmetadata": 104, "mapdatasetonoff": [105, 392], "mappanelplott": 367, "mar": 421, "march": 443, "mask": [394, 455, 456, 461, 481, 487, 502], "materi": 406, "matter": [479, 506], "measur": 579, "meet": 389, "messag": 380, "met": 582, "metadata": [406, 407], "method": [381, 392, 393, 408, 478, 486, 516, 530], "method_default": 323, "method_kwargs_default": 324, "meyercrabspectralmodel": 244, "miniconda": 413, "minor": 401, "mission": 582, "model": [10, 245, 247, 389, 391, 399, 402, 403, 407, 408, 451, 452, 455, 456, 457, 460, 463, 464, 465, 467, 468, 472, 473, 474, 477, 479, 480, 481, 483, 488, 489, 491, 493, 502, 503, 504, 508, 509, 510, 511, 512, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 575, 579], "model_registri": 243, "modelbas": 246, "modif": 487, "modifi": [380, 486, 489], "modul": [4, 5, 8, 10, 13], "mooreprofil": 24, "morpholog": 466, "morphologi": 489, "motion_since_birth": 311, "motiv": 408, "mpl_plot_check": 358, "multi": 464, "multipl": [467, 488, 491, 514], "multiprocessing_manag": 327, "n_jobs_default": 325, "naima": 554, "naimaspectralmodel": 248, "name": [380, 391, 523], "nebula": 511, "new": [380, 391, 395, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 442, 445, 446, 447, 473], "next": [453, 455, 456, 459, 465, 472, 493, 495, 496, 502, 504], "nfwprofil": 25, "night": 472, "non": [380, 486, 531], "norm": [403, 489, 538, 550, 553, 555, 558], "norm_bounds_cython": 302, "normal": [332, 502], "notat": 580, "note": [380, 418, 455, 482, 579], "notebook": [11, 380, 388, 416], "nov": [428, 429, 430, 431, 437, 441], "novemb": [442, 447], "now": 395, "nuisanc": 408, "number": [380, 405, 523], "numpi": 405, "o": 469, "object": [380, 381, 390, 402, 460, 461, 467, 468, 480, 482, 490], "observ": [3, 88, 92, 389, 390, 451, 455, 456, 465, 467, 468, 472, 473, 485, 490, 502, 503], "observationeventsampl": 108, "observationfilt": 89, "observationmetadata": 90, "observationseventssampl": 93, "observationt": 91, "observatory_loc": 97, "obtain": [450, 466, 474, 490], "off": [453, 455, 458, 464], "offset": [520, 521, 522, 524], "ogipdatasetread": 106, "ogipdatasetwrit": 107, "old": 410, "one": 482, "onto": 486, "open": 475, "oper": [486, 487], "optimizeresult": 213, "option": [379, 397, 483], "org": 410, "organ": [386, 395], "origin": [380, 383], "other": [380, 381, 390, 410, 413, 506], "outlin": 408, "outlook": [392, 393, 394, 396, 397, 399, 400, 401, 404], "output": 380, "over": 475, "overview": [400, 412, 466, 493, 495, 525, 527, 528], "overwrit": 380, "own": 578, "packag": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 399, 401, 410, 413, 433, 498, 506, 507, 576], "paczynski1990": 36, "paczynski1990veloc": 37, "panel": 583, "paper": 389, "parabola": [453, 552, 553], "parallel": [13, 392], "paramet": [214, 215, 391, 403, 408, 456, 466, 483, 488, 489, 502], "parameterestim": 131, "parametr": 391, "parametricpsf": 164, "pdf": 333, "perform": [393, 452, 493, 503], "person": 406, "perspect": 387, "phase": [475, 572], "phasebackgroundmak": 174, "phasogram": 475, "piecewis": [538, 555], "piecewisenormspatialmodel": 249, "piecewisenormspectralmodel": 250, "pig": [384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "pip": 413, "pixel": [380, 394, 487], "pk": 482, "plan": 387, "plot": [14, 380, 451, 455, 456, 465, 466, 469, 486, 488, 503, 531, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 583], "plot_contour_lin": 372, "plot_distribut": 373, "plot_heatmap": 374, "plot_map_rgb": 375, "plot_npred_sign": 376, "plot_spectrum_datasets_off_region": 377, "plot_theta_squared_t": 378, "png": 381, "point": [381, 408, 450, 451, 453, 455, 456, 464, 465, 467, 478, 480, 482, 493, 502, 503, 504, 516, 524, 539], "pointinginfo": 94, "pointingmod": 95, "pointspatialmodel": 251, "poisson": 579, "polar": 312, "polici": 406, "pool_kwargs_default": 326, "popul": [1, 508], "posit": [408, 491, 522], "possibl": 406, "post": 409, "power": [453, 545, 548, 549, 550, 556, 557, 558, 559, 560, 561, 562], "powerlaw": [453, 570], "powerlaw2spectralmodel": 252, "powerlawnormspectralmodel": 253, "powerlawspectralmodel": 254, "powerlawtemporalmodel": 255, "precis": 393, "predict": 514, "prepar": [395, 405, 450, 452, 468, 503], "prerequisit": [452, 453, 455, 456, 457, 458, 460, 464, 466, 467, 468, 469, 471, 472, 473, 474, 478, 483, 487, 488, 491, 502, 503], "pretti": 480, "primaryflux": 26, "print": 480, "prior": [256, 408, 491], "priorparamet": [216, 217], "produc": 495, "product": [479, 484], "profil": [451, 469, 479, 581], "project": [389, 410], "propag": 407, "propos": [388, 390, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 404, 407, 452, 453, 456, 458, 459, 460, 461, 464, 467, 468, 469, 471, 472, 473, 474, 477, 478, 483, 487, 488, 490, 502, 503], "psf": [484, 494, 524], "psf3d": 160, "psf_tabl": 524, "psfkernel": 161, "psfking": 162, "psfmap": [163, 484], "public": 406, "pull": [380, 383, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "pulsar": [51, 475, 510, 511], "purpos": 385, "pwn": 50, "pydant": 407, "python": [380, 381, 387, 405, 416], "qualiti": [389, 410, 455, 457, 463, 483], "quantiti": [482, 490, 516], "radial": 521, "radial_distribut": 48, "radmax2d": 165, "rai": [395, 479], "random": [13, 380], "rang": [485, 526], "read": [459, 464, 468, 469, 486, 487, 488, 531], "read_hermes_cub": [283, 285], "read_yaml": 346, "recommend": [412, 414], "reconstruct": 521, "recopsfmap": 166, "recursive_merge_dict": 347, "redshift": 451, "reduc": [4, 460, 461, 481, 502, 503], "reduct": [8, 389, 395, 452, 455, 456, 457, 463, 472, 473, 477, 485, 495, 502, 503, 526, 578], "refer": [6, 400, 577, 578, 579], "reflect": [485, 527], "reflectedregionsbackgroundmak": [175, 527], "reflectedregionsfind": 176, "region": [13, 391, 394, 450, 452, 455, 457, 485, 487, 488, 527, 531], "region_to_fram": 341, "regiongeom": [201, 531], "regionndmap": [202, 531], "regions_to_compound_region": 342, "regionsfind": 177, "relat": 531, "releas": [380, 389, 405, 406, 409, 410, 418], "remark": 385, "remnant": 512, "remov": [380, 488], "renam": 380, "repositori": 410, "repr": 380, "represent": [403, 482, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "request": [380, 383, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "requir": [379, 380, 397, 407], "requires_data": 359, "requires_depend": 360, "resampl": 481, "resample_energy_edg": 146, "residu": [455, 457, 463, 503], "resolv": [401, 475, 477], "respons": [7, 523], "restructur": 400, "result": [395, 404, 450, 452, 456, 459, 466, 469, 472, 477, 482, 581], "return": [380, 381], "review": 385, "ring": [461, 485, 528], "ringbackgroundmak": 178, "rmf": 522, "road": 390, "roadmap": 389, "rotat": 394, "rst": 381, "run": [11, 383, 455, 456, 457, 466, 468, 469, 472, 502, 578], "run_multiprocess": 328, "safe": [485, 526], "safemaskmak": 179, "sampl": [393, 467, 468], "sample_powerlaw": 334, "sample_spher": 335, "sample_sphere_dist": 336, "sample_tim": 337, "sampler": 468, "save": [456, 502, 503], "scale": 582, "scale_plot_flux": 284, "scaledregulargridinterpol": 319, "scalespectralmodel": 259, "scenario": 390, "schedul": 405, "scheme": [391, 406], "script": [11, 13, 380, 416, 498, 500], "section": 400, "sed": 516, "select": [452, 456, 465, 472, 473, 477, 480, 488, 502, 503, 515], "select_nested_model": 286, "sensit": 450, "sensitivityestim": 132, "sep": [424, 440], "serial": [392, 407, 464], "serialis": [408, 456, 469, 484, 488, 489, 494, 514], "seril": 391, "set": [383, 456, 486, 502], "setup": [388, 410, 412, 414, 415, 450, 451, 452, 453, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 469, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 485, 486, 487, 488, 489, 491, 493, 494, 495, 496, 502, 503, 504], "sever": 380, "share": 489, "shell": 540, "shell2": 541, "shell2spatialmodel": 260, "shellspatialmodel": 261, "shorter": 403, "should": 380, "show": [465, 466, 490], "signal": 466, "signific": [452, 459, 461, 487, 580], "simplepulsar": 54, "simplifi": 403, "simul": [389, 392, 457, 458, 467, 468, 471, 474], "sine": 571, "sinetemporalmodel": 262, "singl": [381, 458], "size": 531, "skip": 380, "sky": [9, 391, 394, 465, 467, 487, 522, 530], "sky_to_fov": 313, "skycoord": 530, "skymodel": [263, 489], "slice": 486, "small": 383, "smooth": [459, 559], "smoothbrokenpowerlawspectralmodel": 264, "snr": 52, "snrtruelovemcke": 53, "solut": 407, "some": [380, 390, 487], "sourc": [1, 2, 450, 452, 455, 459, 465, 466, 467, 468, 474, 480, 487, 491, 493, 504, 508, 509, 510, 511, 513], "sourcecatalog": 56, "sourcecatalog1lhaaso": 57, "sourcecatalog2fhl": 58, "sourcecatalog2hwc": 59, "sourcecatalog2pc": 60, "sourcecatalog3fgl": 61, "sourcecatalog3fhl": 62, "sourcecatalog3hwc": 63, "sourcecatalog3pc": 64, "sourcecatalog4fgl": 65, "sourcecataloggammacat": 66, "sourcecataloghgp": 67, "sourcecataloglargescalehgp": 68, "sourcecatalogobject": 69, "sourcecatalogobject1lhaaso": 70, "sourcecatalogobject2fhl": 71, "sourcecatalogobject2hwc": 72, "sourcecatalogobject2pc": 73, "sourcecatalogobject3fgl": 74, "sourcecatalogobject3fhl": 75, "sourcecatalogobject3hwc": 76, "sourcecatalogobject3pc": 77, "sourcecatalogobject4fgl": 78, "sourcecatalogobjectgammacat": 79, "sourcecatalogobjecthgp": 80, "sourcecatalogobjecthgpscompon": 81, "sourceirfmodel": 391, "sourcemodel": 391, "spatial": [391, 403, 465, 479, 486, 489, 508, 531, 532, 534, 535, 536, 537, 538, 539, 540, 541, 542], "spatial_model_registri": 257, "spatialirfmodel": 391, "spatialmodel": 265, "special": 581, "specif": [391, 400, 480, 482], "spectra": 479, "spectral": [403, 408, 451, 452, 453, 455, 456, 457, 464, 465, 479, 489, 498, 504, 532, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 563], "spectral_model_registri": 258, "spectralirfmodel": 391, "spectralmodel": 266, "spectroscopi": 477, "spectrum": [451, 455, 457, 458, 465, 475, 485, 503], "spectrumdataset": [109, 392, 481, 514], "spectrumdatasetmak": [180, 526], "spectrumdatasetonoff": [110, 392], "sphinx": [380, 381], "spiral": 508, "split_dataset": [115, 117], "spread": [493, 524], "squar": [466, 496], "stack": [455, 461, 463, 514], "standard_scal": 306, "standardise_unit": 365, "start": [400, 412, 507, 508, 509, 515, 530], "stat": [12, 451], "stat_contour": 483, "stat_profile_ul_scipi": 287, "stat_surfac": 483, "statist": [12, 455, 487, 579, 580], "statu": [385, 390, 399, 405], "step": [456, 493, 495, 496, 576], "store": [395, 456, 522], "str": 380, "structur": [399, 401, 433, 504, 576], "structure_funct": 303, "studi": 395, "style": 386, "sub": [486, 507], "subclass": 408, "subpackag": 386, "subset": 480, "suggest": 406, "summari": [419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 463, 494], "super": [560, 561, 562], "superexpcutoffpowerlaw3fglspectralmodel": 267, "superexpcutoffpowerlaw4fgldr3spectralmodel": 268, "superexpcutoffpowerlaw4fglspectralmodel": 269, "supernova": 512, "support": [380, 387, 405, 406, 408, 484, 514], "survei": [500, 583], "symmetr": 521, "systemat": 408, "t": [459, 580], "tabl": [13, 466, 480, 482, 495, 515], "table_row_to_dict": 351, "table_standardise_units_copi": 352, "table_standardise_units_inplac": 353, "tag": 403, "target": 455, "task": [391, 392, 393, 394, 395, 396, 397], "templat": [467, 542, 563], "templatendspatialmodel": 271, "templatendspectralmodel": 272, "templatenpredmodel": 273, "templatephasecurvetemporalmodel": 274, "templatespatialmodel": 275, "templatespectralmodel": 276, "tempor": [468, 474, 489, 532, 565, 566, 567, 568, 569, 570, 571, 572, 573], "temporal_model_registri": 270, "temporalmodel": 277, "term": 406, "terminologi": 390, "test": [13, 380, 383, 466, 475], "text": 380, "theta": 496, "thi": 383, "through": 482, "thumbnail": 381, "time": [13, 389, 395, 449, 454, 462, 467, 470, 473, 474, 476, 477, 478, 492, 497, 498, 499, 501, 505, 533, 543, 564, 574, 582], "time_ref_from_dict": 362, "time_ref_to_dict": 363, "time_relative_to_ref": 364, "timemapaxi": [203, 486], "timmerkonig_lightcurve_simul": 289, "to_yaml": 348, "tool": [11, 380, 578], "tooltip": 381, "touch": 383, "trapz_loglog": 318, "troubleshoot": [415, 578], "true": [520, 522, 524], "tsmapestim": 133, "tutori": [381, 388, 400, 412, 466, 493, 495, 498], "two": 488, "type": [380, 407, 514, 516], "uncertainti": 398, "underli": [473, 531], "unfold": 408, "unfreez": 488, "unif": 404, "unifi": [391, 404], "uniformprior": 278, "unit": [13, 380], "unit_from_fits_image_hdu": 366, "unix": 380, "unreleas": 448, "up": [383, 399, 401], "upsampl": 531, "us": [380, 390, 408, 413, 416, 456, 466, 467, 472, 481, 483, 484, 486, 502, 503, 506, 509, 513, 514, 515, 516, 517, 523, 525, 526, 527, 530, 549, 560, 561, 562, 575], "user": [387, 519], "util": [4, 5, 8, 10, 13, 399, 576, 580, 582], "valid": 407, "valleespir": 38, "valu": [380, 408, 466, 486, 491], "vari": 474, "variabl": [1, 2, 3, 4, 5, 7, 8, 10, 13, 467, 478], "varianc": 478, "variou": 490, "veloc": 508, "velocity_distribut": 49, "velocity_glon_glat": 314, "venv": 411, "version": [380, 405, 409, 418, 471], "virtual": 411, "visual": [14, 401, 486, 531, 583], "visualis": [459, 477, 482], "volum": 531, "warn": 380, "wc": [486, 531], "wcsgeom": 204, "wcsmap": 205, "wcsndmap": 206, "we": [388, 395, 396, 404, 495], "webpag": 410, "what": [380, 383, 385, 388, 390, 395, 396, 404, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 436, 437, 438, 439, 440, 441, 453, 455, 456, 459, 465, 472, 502, 504], "where": 380, "which": 380, "wind": 511, "wise": 472, "without": 491, "wobbleregionsfind": 181, "work": 515, "workflow": [11, 576], "write": [380, 385, 456, 468, 486, 487, 515, 531, 578], "write_yaml": 349, "wstat": [304, 579, 580, 581], "wstatcountsstatist": 290, "yaml": [403, 456, 502, 534, 535, 536, 537, 538, 539, 540, 541, 542, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573], "your": [415, 456, 578], "yusifovkucuk2004": 39, "yusifovkucuk2004b": 40, "zhaoprofil": 27}}) \ No newline at end of file diff --git a/docs/dev/sg_execution_times.html b/docs/dev/sg_execution_times.html index 8f3bcb9e8cc..c166462701e 100644 --- a/docs/dev/sg_execution_times.html +++ b/docs/dev/sg_execution_times.html @@ -67,7 +67,7 @@ - + @@ -460,7 +460,7 @@

    Computation times#

    -

    09:48.892 total execution time for 84 files from all galleries:

    +

    09:35.198 total execution time for 84 files from all galleries: