Spaces:
Runtime error
Runtime error
import urllib.request | |
import json | |
link = "https://klimalog.die-gdi.de/ndc/open-data/dataset.json" | |
def get_document(country_code: str): | |
""" | |
read the country NDC data from | |
https://klimalog.die-gdi.de/ndc/open-data/dataset.json | |
using the country code. | |
Params | |
------- | |
country_code:""" | |
with urllib.request.urlopen(link) as urlfile: | |
data = json.loads(urlfile.read()) | |
categoriesData = {} | |
categoriesData['categories']= data['categories'] | |
categoriesData['subcategories']= data['subcategories'] | |
keys_sub = categoriesData['subcategories'].keys() | |
documentType= 'NDCs' | |
if documentType in data.keys(): | |
if country_code in data[documentType].keys(): | |
get_dict = {} | |
for key, value in data[documentType][country_code].items(): | |
if key not in ['country_name','region_id', 'region_name']: | |
get_dict[key] = value['classification'] | |
else: | |
get_dict[key] = value | |
else: | |
return None | |
else: | |
return None | |
country = {} | |
for key in categoriesData['categories']: | |
country[key]= {} | |
for key,value in categoriesData['subcategories'].items(): | |
country[value['category']][key] = get_dict[key] | |
return country | |
def countrySpecificCCA(cca_sent:dict, threshold:int, countryCode:str): | |
""" | |
based on the countrycode, reads the country data from | |
https://klimalog.die-gdi.de/ndc/open-data/dataset.json | |
using get_documents from utils.ndc_explorer.py | |
then based on thereshold value filters the Climate Change Adaptation | |
targets assigned by NDC explorer team to that country. Using the sentences | |
create by Data services team of GIZ for each target level, tries to find the | |
relevant passages from the document by doing the semantic search. | |
Params | |
------- | |
cca_sent: dictionary with key as 'target labels' and manufactured sentences | |
reflecting the target level. Please see the docStore/ndcs/cca.txt | |
threshold: NDC target have many categoriees ranging from [0-5], with 0 | |
refelcting most relaxed attitude and 5 being most aggrisive towards Climate | |
change. We select the threshold value beyond which we need to focus on. | |
countryCode: standard country code to allow us to fetch the country specific | |
data. | |
""" | |
temp = {} | |
doc = get_document(countryCode) | |
for key,value in cca_sent.items(): | |
id_ = doc['climate change adaptation'][key]['id'] | |
if id_ >threshold: | |
temp[key] = value['id'][id_] | |
return temp | |
def countrySpecificCCM(ccm_sent, threshold, countryCode): | |
""" | |
see the documentation of countrySpecificCCA. This is same instead of | |
this gets the data pertaining to Adaptation | |
""" | |
temp = {} | |
doc = get_document(countryCode) | |
for key,value in ccm_sent.items(): | |
id_ = doc['climate change mitigation'][key]['id'] | |
if id_ >threshold: | |
temp[key] = value['id'][id_] | |
return temp | |