[GitHub] climate pull request #451: CLIMATE-926 - Metadata Extractors

2017-09-25 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/climate/pull/451


---


[GitHub] climate pull request #451: CLIMATE-926 - Metadata Extractors

2017-09-25 Thread agoodm
GitHub user agoodm opened a pull request:

https://github.com/apache/climate/pull/451

CLIMATE-926 - Metadata Extractors

For now this is only being used for our soon to be shown CORDEX examples, 
but I do plan to make this a more permanent part of OCW with unit tests and 
documentation.

Example usage in an ipython shell:

```python
In [1]: from metadata_extractor import CORDEXMetadataExtractor, 
obs4MIPSMetadataExtractor

In [2]: obs_extractor = obs4MIPSMetadataExtractor('/proj3/data/obs4mips')

In [3]: models_extractor = 
CORDEXMetadataExtractor('/proj3/data/CORDEX/NAM-44/*')

In [4]: obs_extractor.instruments
Out[4]: 
{'AIRS',
 'AMSRE',
 'ATSR',
 'AVISO',
 'CALIOP',
 'CERES-EBAF',
 'GPCP-1DD',
 'GPCP-SG',
 'HIRS',
 'MISR',
 'MLS',
 'MODIS',
 'MODIS-Level',
 'MODIS-level',
 'OISST',
 'QuikSCAT',
 'RO',
 'SSMI-MERIS',
 'SSMI-NH',
 'SSMI-SH',
 'TES',
 'TRMM-L3',
 'ghgcci'}

In [5]: models_extractor.models
Out[5]: {'DMI-HIRHAM5', 'MOHC-HadRM3P', 'SMHI-RCA4', 'UQAM-CRCM5'}

In [6]: obs_extractor.query(variable='pr')
Out[6]: 
[{'filename': '/proj3/data/obs4mips/pr_GPCP-SG_L3_v2.2_*.nc',
  'instrument': 'GPCP-SG',
  'processing_level': 'L3',
  'variable': 'pr',
  'version': 'v2.2'},
 {'filename': '/proj3/data/obs4mips/pr_GPCP-1DD_L3_v1.2_*.nc',
  'instrument': 'GPCP-1DD',
  'processing_level': 'L3',
  'variable': 'pr',
  'version': 'v1.2'},
 {'filename': '/proj3/data/obs4mips/pr_TRMM-L3_*.nc',
  'instrument': 'TRMM-L3',
  'variable': 'pr'}]

In [7]: obs_extractor.group(models_extractor, 'variable')[0]
Out[7]: 
({'filename': '/proj3/data/obs4mips/rlut_CERES-EBAF_L3B_Ed2-8_*.nc',
  'instrument': 'CERES-EBAF',
  'processing_level': 'L3B',
  'variable': 'rlut',
  'version': 'Ed2-8'},
 [{'domain': 'NAM-44',
   'driving_model': 'ECMWF-ERAINT',
   'ensemble': 'r1i1p1',
   'experiment': 'evaluation',
   'filename': 
'/proj3/data/CORDEX/NAM-44/rlut/rlut_NAM-44_ECMWF-ERAINT_evaluation_r1i1p1_MOHC-HadRM3P_v1_mon_*.nc',
   'model': 'MOHC-HadRM3P',
   'time_step': 'mon',
   'variable': 'rlut',
   'version': 'v1'},
  {'domain': 'NAM-44',
   'driving_model': 'ECMWF-ERAINT',
   'ensemble': 'r1i1p1',
   'experiment': 'evaluation',
   'filename': 
'/proj3/data/CORDEX/NAM-44/rlut/rlut_NAM-44_ECMWF-ERAINT_evaluation_r1i1p1_UQAM-CRCM5_v1_mon_*.nc',
   'model': 'UQAM-CRCM5',
   'time_step': 'mon',
   'variable': 'rlut',
   'version': 'v1'},
  {'domain': 'NAM-44',
   'driving_model': 'ECMWF-ERAINT',
   'ensemble': 'r1i1p1',
   'experiment': 'evaluation',
   'filename': 
'/proj3/data/CORDEX/NAM-44/rlut/rlut_NAM-44_ECMWF-ERAINT_evaluation_r1i1p1_SMHI-RCA4_v1_mon_*.nc',
   'model': 'SMHI-RCA4',
   'time_step': 'mon',
   'variable': 'rlut',
   'version': 'v1'},
  {'domain': 'NAM-44',
   'driving_model': 'ECMWF-ERAINT',
   'ensemble': 'r1i1p1',
   'experiment': 'evaluation',
   'filename': 
'/proj3/data/CORDEX/NAM-44/rlut/rlut_NAM-44_ECMWF-ERAINT_evaluation_r1i1p1_DMI-HIRHAM5_v1_mon_*.nc',
   'model': 'DMI-HIRHAM5',
   'time_step': 'mon',
   'variable': 'rlut',
   'version': 'v1'}])

```


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/agoodm/climate CLIMATE-926

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/climate/pull/451.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #451


commit 8217d12f06987d852f9294da94a5af243116e751
Author: Alex Goodman 
Date:   2017-09-25T17:35:20Z

CLIMATE-926 - Metadata Extractors

commit ec81037a21dbf2cf1999422127bbe924e1072c4a
Author: Alex Goodman 
Date:   2017-09-25T17:41:07Z

Fix model attribute in CORDEXMetadataExtractor




---