[701] | 1 | |
---|
| 2 | from dreqPy import dreq |
---|
| 3 | import collections, json, time |
---|
| 4 | |
---|
| 5 | dq = dreq.loadDreq() |
---|
| 6 | rvgUsage = collections.defaultdict( set ) |
---|
| 7 | rvUsage = {} |
---|
| 8 | cmvUsage = collections.defaultdict( set ) |
---|
| 9 | vUsage = collections.defaultdict( set ) |
---|
| 10 | for i in dq.coll['requestVarGroup'].items: |
---|
| 11 | for u in dq.inx.iref_by_sect[i.uid].a['requestLink']: |
---|
| 12 | rl = dq.inx.uid[u] |
---|
| 13 | rvgUsage[i.uid].add( rl.mip ) |
---|
| 14 | |
---|
| 15 | for i in dq.coll['requestVar'].items: |
---|
| 16 | rvUsage[i.uid] = rvgUsage[i.vgid] |
---|
| 17 | |
---|
| 18 | for i in dq.coll['CMORvar'].items: |
---|
| 19 | for u in dq.inx.iref_by_sect[i.uid].a['requestVar']: |
---|
| 20 | if u in rvUsage: |
---|
| 21 | for x in rvUsage[u]: |
---|
| 22 | cmvUsage[i.uid].add(x) |
---|
| 23 | |
---|
| 24 | for i in dq.coll['var'].items: |
---|
| 25 | for u in dq.inx.iref_by_sect[i.uid].a['CMORvar']: |
---|
| 26 | if u in cmvUsage: |
---|
| 27 | for x in cmvUsage[u]: |
---|
| 28 | vUsage[i.uid].add(x) |
---|
| 29 | |
---|
| 30 | vars = {i.label: {'long_name':i.title, 'standard_name':i.sn, 'units':i.units, 'usage':sorted(list(vUsage[i.uid])), 'prov':'%s {%s}' % (i.prov,i.provmip)} for i in dq.coll['var'].items if i.uid in vUsage } |
---|
[744] | 31 | info = {'version':dq.version, 'source':'Data Request', 'author':'Martin Juckes (martin.juckes@stfc.ac.uk)', 'creation_date':time.ctime()} |
---|
[701] | 32 | oo = open( 'CV_var.json', 'w' ) |
---|
[744] | 33 | json.dump( {'info':info, 'variable':vars}, oo, indent=4, sort_keys=True ) |
---|
[701] | 34 | oo.close() |
---|