climix issueshttps://git.smhi.se/groups/climix/-/issues2019-11-20T15:03:10Zhttps://git.smhi.se/climix/climix/-/issues/81index function temperature_sum [was degreesum]2019-11-20T15:03:10ZLars Bärringindex function temperature_sum [was degreesum]0.10.0Lars BärringLars Bärringhttps://git.smhi.se/climix/climix/-/issues/82Machinery to allow index_functions based on two or more input streams2020-02-04T15:38:45ZLars BärringMachinery to allow index_functions based on two or more input streamsSome of the more advanced indices are based on multiple input variables. E.g. dtr tn#tx# et al. all based on (tasmax,tasmin), and the ECAD ww,wd,cw,cd (tas, pr), and several more complex indices like spi, spei ....Some of the more advanced indices are based on multiple input variables. E.g. dtr tn#tx# et al. all based on (tasmax,tasmin), and the ECAD ww,wd,cw,cd (tas, pr), and several more complex indices like spi, spei ....0.11.0Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/83"European" test dataset2022-12-07T14:55:14ZLars Bärring"European" test datasetPrepare a "European" test dataset that we are familiar with, and will be submitted to CLIMPACT2 and then to climixPrepare a "European" test dataset that we are familiar with, and will be submitted to CLIMPACT2 and then to climix0.16https://git.smhi.se/climix/climix/-/issues/84(Re)activate sphinx documentation2023-04-23T13:41:48ZLars Bärring(Re)activate sphinx documentationWe initiated some documentation efforts for the utility functions. We c/should expand this to the index_functions. Decision needed on documentation structure and splitting this general issue into specific issues for concrete implementati...We initiated some documentation efforts for the utility functions. We c/should expand this to the index_functions. Decision needed on documentation structure and splitting this general issue into specific issues for concrete implementation activities.0.18 (Gull Olle)Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/85index function thresholded_percentile2020-02-20T14:48:28ZLars Bärringindex function thresholded_percentile0.12.0Lars BärringLars Bärringhttps://git.smhi.se/climix/climix/-/issues/86index function running_statistics2021-08-04T16:35:37ZLars Bärringindex function running_statistics0.15Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/87Accept input files without creation_date and /or tracking_id2019-07-02T14:23:51ZLars BärringAccept input files without creation_date and /or tracking_idclimix currently trips if either of these global metadata attributes are missingclimix currently trips if either of these global metadata attributes are missing0.6.0https://git.smhi.se/climix/climix/-/issues/88index last_spring_frost2019-09-13T11:25:21ZLars Bärringindex last_spring_frostThe `last_spring_frost` is the last day during January-June (day_of_year: `unit = days`) when `tasmin < 0.0 degC` (northern hemisphere --- let's forget about SH for now). Index function is `last_occurrence. This is not one of the ETCCDI/...The `last_spring_frost` is the last day during January-June (day_of_year: `unit = days`) when `tasmin < 0.0 degC` (northern hemisphere --- let's forget about SH for now). Index function is `last_occurrence. This is not one of the ETCCDI/ET-SCI core indices, but requested in B4EST.0.8.0Lars BärringLars Bärringhttps://git.smhi.se/climix/climix/-/issues/89index first_autumn_frost2019-09-06T11:38:20ZLars Bärringindex first_autumn_frostThe `first_autumn_frost` is the first day in July-December (day_of_year: `unit = days`) when `tasmin < 0.0 degC` (northern hemisphere --- let's forget about SH for now). Index function is `first_occurrence`. This is not one of the ETCCDI...The `first_autumn_frost` is the first day in July-December (day_of_year: `unit = days`) when `tasmin < 0.0 degC` (northern hemisphere --- let's forget about SH for now). Index function is `first_occurrence`. This is not one of the ETCCDI/ET-SCI core indices, but requested in B4EST.0.7.0Renate WilckeRenate Wilckehttps://git.smhi.se/climix/climix/-/issues/90Typo: CountOccurences2019-07-02T14:44:42ZLars BärringTypo: CountOccurencesCurrently wrong spelling. This needs to be corrected to avoid propagation to upcoming index functions.
Correct (and slightly adjusted) spelling should be `CountOccurrence` (singular)and to make it consistent with the upcoming `FirstOccur...Currently wrong spelling. This needs to be corrected to avoid propagation to upcoming index functions.
Correct (and slightly adjusted) spelling should be `CountOccurrence` (singular)and to make it consistent with the upcoming `FirstOccurrence` and `LastOccurrence`0.5.1https://git.smhi.se/climix/climix/-/issues/91Index function SpellLength is broken2019-07-02T14:27:52ZKlaus ZimmermannIndex function SpellLength is brokenIn 6ddf6358571f9783367569c320276e7ab979f70c calculations where moved to the index functions, but spell_length was not treated properly.In 6ddf6358571f9783367569c320276e7ab979f70c calculations where moved to the index functions, but spell_length was not treated properly.0.5.1Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/92Error when no standard name in FirstOccurrence2019-07-08T12:07:06ZLars BärringError when no standard name in FirstOccurrenceDescribes first bullet point of !52 :
iris throws the error below when the standard_name is `None` (I have tried removing the dict entry, as well as setting it to `''` to similar effect)
```python
(climix-devel) ~/CODE/climix/data >cli...Describes first bullet point of !52 :
iris throws the error below when the standard_name is `None` (I have tried removing the dict entry, as well as setting it to `''` to similar effect)
```python
(climix-devel) ~/CODE/climix/data >climix -x faf /home/rossby/prod/201116/netcdf/day/tasmin_EUR-44_ECMWF-ERAINT_evaluation_r1i1p1_SMHI-RCA4_v1_day_*.nc
Cluster ready; starting main program.
Traceback (most recent call last):
File "/home/sm_lbarr/.conda/envs/climix-devel/bin/climix", line 11, in <module>
load_entry_point('climix', 'console_scripts', 'climix')()
File "/home/sm_lbarr/CODE/climix/climix/main.py", line 182, in main
args.output_template, args.sliced_mode)
File "/home/sm_lbarr/CODE/climix/climix/main.py", line 169, in do_main
result = index(input_data, sliced_mode=sliced_mode)
File "/home/sm_lbarr/CODE/climix/climix/index.py", line 22, in __call__
aggregated = sub_cube.aggregated_by(coord_name, self.aggregator)
File "/home/sm_lbarr/.conda/envs/climix-devel/lib/python3.7/site-packages/iris/cube.py", line 3473, in aggregated_by
coords, **kwargs)
File "/home/sm_lbarr/CODE/climix/climix/aggregators.py", line 30, in post_process
standard_name = self.output_metadata['standard_name']
KeyError: 'standard_name'
```
@a002160 I need you iris insight on this one ....0.7.0Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/93No occurrence <> missing data2019-08-06T08:38:06ZLars BärringNo occurrence <> missing dataAs I closed the merge request (cf #64) having the relevant comments, and closed MRs are gone forever, I restate the reference to [Jim's suggestion](http://mailman.cgd.ucar.edu/pipermail/cf-metadata/2017/019238.html) here
````python
I w...As I closed the merge request (cf #64) having the relevant comments, and closed MRs are gone forever, I restate the reference to [Jim's suggestion](http://mailman.cgd.ucar.edu/pipermail/cf-metadata/2017/019238.html) here
````python
I went ahead and used 'days since YYYY-MM-DD 00:00:00' for my first and
last frost dates, since they are valid dates. My files are structured as
(example for first frost date):
dimensions:
time = UNLIMITED ; // (56 currently)
lon = 960 ;
lat = 490 ;
bnds = 2 ;
variables:
double time(time) ;
time:standard_name = "time" ;
time:long_name = "time" ;
time:axis = "T" ;
time:units = "days since 1900-01-01 00:00:00" ;
time:calendar = "gregorian" ;
time:bounds = "time_bounds" ;
double time_bounds(time, bnds) ;
double lon(lon) ;
lon:standard_name = "longitude" ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
lon:modulo = 360. ;
lon:axis = "X" ;
lon:bounds = "lon_bounds" ;
double lon_bounds(lon, bnds) ;
double lat(lat) ;
lat:standard_name = "latitude" ;
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
lat:bounds = "lat_bounds" ;
double lat_bounds(lat, bnds) ;
float first_freeze_date(time, lat, lon) ;
first_freeze_date:_FillValue = 1.e+20f ;
first_freeze_date:missing_value = 1.e+20f ;
first_freeze_date:comment = "Date of the first day ...." ;
first_freeze_date:flag_meanings = "No_Freeze_Following" ;
first_freeze_date:long_name = "First freeze date" ;
first_freeze_date:valid_min = 0. ;
first_freeze_date:flag_values = -2. ;
first_freeze_date:units = "days since 1900-01-01 00:00:00" ;
first_freeze_date:calendar = "standard" ;
```0.7.0Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/94day-of-year is counted for beginning of season rather than beginning of year2019-09-06T11:27:32ZLars Bärringday-of-year is counted for beginning of season rather than beginning of yeare.g. in first_autumn_frost. This is one example, the issue will appear in several other indicese.g. in first_autumn_frost. This is one example, the issue will appear in several other indices0.7.0Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/95annual indices based on part of the year are not seasonal2023-01-25T16:04:29ZLars Bärringannual indices based on part of the year are not seasonalCurrently they have to handled as `seasonal` to allow the season (i.e. relevant part of the year) to be specified. As result, the global variable `frequency = "sem"` rather than the correct `frequency = "ann"`
Could the code interpreti...Currently they have to handled as `seasonal` to allow the season (i.e. relevant part of the year) to be specified. As result, the global variable `frequency = "sem"` rather than the correct `frequency = "ann"`
Could the code interpreting the `metadata.yml` entry
```yaml
period:
allowed:
annual:
monthly:
seasonal: JASOND
default: seasonal
```
be changed to **either** output `frequency = "ann"` when there is just one entry (string) and not a list of strings, **or** to allow something like
```yaml
period:
allowed:
annual: JASOND
monthly:
seasonal:
default: annual
```0.16Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/96Merge requests2019-08-06T08:38:06ZLars BärringMerge requestsI cannot create a MR from my fork (the button does not appear). Would like to create this one:
```markdown
WIP: Index function first occurrence
This branch was tested by merging with branch `first_autumn_frost`. The following issues re...I cannot create a MR from my fork (the button does not appear). Would like to create this one:
```markdown
WIP: Index function first occurrence
This branch was tested by merging with branch `first_autumn_frost`. The following issues remains:
* [ ] create and output proper metadata to distinguish between missing data and no occurrence (#93)
* [ ] day-of-year is counted from beginning of the season, not beginning of the year (#94)
* [ ] the first_autumn_frost is an annual index (not a seasonal one) (#95)
```
When the associated issues have been resolved, then the branch `first_autumn_frost` should go to a MR.Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/97Index function last_occurrence2019-09-13T11:11:20ZLars BärringIndex function last_occurrence0.8.0Klaus ZimmermannKlaus Zimmermannhttps://git.smhi.se/climix/climix/-/issues/98How to deal with individual missing/invalid/masked timesteps?2019-09-12T11:15:50ZKlaus ZimmermannHow to deal with individual missing/invalid/masked timesteps?Ideally, the behavior with missing points in timeseries should be configurable.Ideally, the behavior with missing points in timeseries should be configurable.https://git.smhi.se/climix/climix/-/issues/99Add valid_range to index functions2023-01-31T22:32:59ZKlaus ZimmermannAdd valid_range to index functionsFor many/most/all index functions it is straight-forward to give a valid_range. Including this in the output metadata will improve data consistency.For many/most/all index functions it is straight-forward to give a valid_range. Including this in the output metadata will improve data consistency.https://git.smhi.se/climix/climix/-/issues/100Allow for post processing by index functions2019-08-05T14:49:09ZKlaus ZimmermannAllow for post processing by index functionsSometimes it is useful if the index function can do post processing.
This is particularly so because in the normal iris aggregator workflow, at time of processing the index function will only see the data, not the coordinates etc.Sometimes it is useful if the index function can do post processing.
This is particularly so because in the normal iris aggregator workflow, at time of processing the index function will only see the data, not the coordinates etc.0.7.0Klaus ZimmermannKlaus Zimmermann