Comments (3)
If I remember correctly, the behaviour in MapDataset.stack
is intentional. It was the cleanest way to be able to stack maps during the data reduction process while handling the safe mask correctly.
This is included in the Note here https://docs.gammapy.org/1.2/user-guide/datasets/index.html#stacking-multiple-datasets - "To properly handle masks, it is necessary to stack onto an empty dataset."
Datasets.stack_reduce
was introduced to avoid users stacking onto non-empty maps. The idea was general users should only use Datasets.stack_reduce
and not MapDataset.stack
. I guess we did not expose these consistently.
Not sure what is happening in MapDatasetOnOff
.
from gammapy.
Using MapDataset.stack the mask is not applied to self, the assumption being that the first dataset used is empty.
If I remember correctly, the first implementation of MapDataset.stack()
had the in-place application of the mask. This lead to a lot of complex code, because one needed to apply the mask to all quantities in the dataset. The same code was then repeated for the "other" dataset. It was much simpler to introduce the .to_masked()
method, with all the mask application in a single place.
Applying the mask for in-place stacking would mean to always apply it, because one cannot know whether the stacking happens the first time. This means, except for the first time, one would un-necessarily apply the (stacked) mask over and over again.
But independently, stack_reduce()
is the higher level method anyway. So I think there is no need for consistency. However the behavior of the on-off dataset should be fixed.
from gammapy.
OK thanks. Not re-masking all the time seems a reasonable approach indeed. While solving #5245 , I try to adapt the docstring and the behaviour of MapDatasetOnOff.stack()
from gammapy.
Related Issues (20)
- Returning Alpha Map from 'ExcessMapEstimator' HOT 2
- Consistency with 'references' in docstrings
- Exposure correction for `MapDataset.to_region_map_dataset()`
- FluxPoints.write() is ignoring overwrite when file extension is not FITS
- Writing `EventList` with `Observation.write` set `MJDREFI` and `MJDREFF` to 0
- MapDatasetOnOff Conversion - Issues with Definition of Alpha
- FluxPointsEstimator fails if no edisp is set HOT 3
- Adapt code style and formatting CI to use precommit.ci HOT 1
- Simplify the Sensitivity Estimator Notebook HOT 1
- Is lgtm.yml being used? HOT 1
- FluxPointsEstimator fails on list of multiple stacked datasets because meta_table cannot be created HOT 4
- Fit.stat_contour and stat_surface yield incorrect parameter names HOT 4
- `coord_to_pix()` returns unexpected results for WcsGeom in AIT projection HOT 1
- Update docs for `JFactory` integral calculation
- Expose `FitResults` in the documentation HOT 6
- Remaining issues with numpy 2.0
- y-axis value not visible in RadMax2D.plot_rad_max_vs_energ
- Hide spectrum x-axis tick labels in `plot_fit`
- Task list for Sensitivity estimations HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gammapy.