From ff08e4cd17b4b86e6ae77db058207d5e5dc7fa7b Mon Sep 17 00:00:00 2001 From: TaufiqHassan Date: Sun, 3 Nov 2019 01:21:13 -0800 Subject: [PATCH] Added new features --- acccmip6/access_cm.py | 2 +- acccmip6/utilities/CMIP6_database.py | 32 +++++++++++++++++++++++ acccmip6/utilities/checkers.py | 3 ++- acccmip6/utilities/data/var_list.xlsx | Bin 0 -> 47032 bytes acccmip6/utilities/util.py | 36 ++++++++++++++++---------- setup.py | 2 +- 6 files changed, 58 insertions(+), 17 deletions(-) create mode 100644 acccmip6/utilities/data/var_list.xlsx diff --git a/acccmip6/access_cm.py b/acccmip6/access_cm.py index 2a65c6f..78ac489 100644 --- a/acccmip6/access_cm.py +++ b/acccmip6/access_cm.py @@ -23,7 +23,7 @@ def SearchCmip6(**kwargs): _mod_help() if (_var == 'show') or (_var == 'Show'): ModDB = CMIP6DB() - print(ModDB.CMIP6_variables()) + print(ModDB.var_stdName()) if (_mod == 'show') or (_mod == 'Show'): ModDB = CMIP6DB() print(ModDB.available_models()) diff --git a/acccmip6/utilities/CMIP6_database.py b/acccmip6/utilities/CMIP6_database.py index d11293a..377b8f5 100644 --- a/acccmip6/utilities/CMIP6_database.py +++ b/acccmip6/utilities/CMIP6_database.py @@ -137,6 +137,25 @@ def available_realmns(self): self._holder.append(self._fdata.split('checkbox_realm_')[zz+2].split('" name="')[0]) print("Available frequencies: \n\n") return self._holder + + def var_stdName(self): + try: + with _fetch_url(self._set_curl(self._Curl)) as self._fdata: + self._avail = len(re.findall('id="checkbox_cf_standard_name_',self._fdata)) + print("\nCurrently ", self._avail," variables has outputs!\n") + for zz in range(self._avail): + self._holder.append(self._fdata.split('checkbox_cf_standard_name_')[zz+2].split('" name="')[0]) + print("Available variables: \n\n") + return self._holder + except: + self._Curl=_choose_server() + with _fetch_url(self._set_curl(self._Curl)) as self._fdata: + self._avail = len(re.findall('id="checkbox_cf_standard_name_',self._fdata)) + print("\nCurrently ", self._avail," variables has outputs!\n") + for zz in range(self._avail): + self._holder.append(self._fdata.split('checkbox_cf_standard_name_')[zz+2].split('" name="')[0]) + print("Available frequencies: \n\n") + return self._holder @staticmethod def _get_definition(exp): @@ -150,4 +169,17 @@ def _get_definition(exp): if (exp_name.values[zz]==exp): definition=(exp_def.values[zz][0]).split('\n')[0].strip() return definition + + @staticmethod + def _get_longName(var): + resource_package = __name__ + resource_path = '/'.join(('data', 'var_list.xlsx')) + tmp = pkg_resources.resource_stream(resource_package, resource_path) + did=pd.read_excel(tmp) + v=pd.DataFrame(did,columns=['variable']) + v_long=pd.DataFrame(did,columns=['Long_name']) + for zz in range(len(v.values)): + if (v.values[zz]==var): + longName=v_long.values[zz][0] + return longName \ No newline at end of file diff --git a/acccmip6/utilities/checkers.py b/acccmip6/utilities/checkers.py index 5f8d962..4aab475 100644 --- a/acccmip6/utilities/checkers.py +++ b/acccmip6/utilities/checkers.py @@ -67,7 +67,8 @@ def _check_var(self): if self.val.upper() in s: n=n+1 s = var_av[m_u.index(s)] - print('\nOption ', n, s) + LN = CMIP6DB()._get_longName(str(s)) + print('\nOption ', n, s,'(',LN,')') if (n==0): raise ValueError() else: diff --git a/acccmip6/utilities/data/var_list.xlsx b/acccmip6/utilities/data/var_list.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..28c16b322d0e5cd011636939986ac8c5ef6fb0b8 GIT binary patch literal 47032 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 m2kBY)-?zYD<&KTN$p5_|LiNarvrFVf5}z>Q>> will generate a list of all currently available models in the CMIP6 database.") -def _get_rlzn_links(rlzn,all_rlzn,links): +def _get_rlzn_links(r,all_rlzn,links): new_links=[] - if rlzn in str(all_rlzn): - new_links=[] - for url in links: - try: - if (int(rlzn) == int(url.split('/')[len(url.split('/'))-1].split('_r')[1][0:2])): - new_links.append(url) - except: - if (rlzn == (url.split('/')[len(url.split('/'))-1].split('_r')[1][0])): - new_links.append(url) - return new_links - else: - print(color.LRED+"\nSelected realzation is not available!"+color.END) - raise SystemExit + for rlzn in r: + if rlzn in str(all_rlzn): + for url in links: + try: + try: + if (int(rlzn) == int(url.split('/')[len(url.split('/'))-1].split('-r')[1][0:2])): + new_links.append(url) + except: + if (rlzn == (url.split('/')[len(url.split('/'))-1].split('-r')[1][0])): + new_links.append(url) + except: + try: + if (int(rlzn) == int(url.split('/')[len(url.split('/'))-1].split('_r')[1][0:2])): + new_links.append(url) + except: + if (rlzn == (url.split('/')[len(url.split('/'))-1].split('_r')[1][0])): + new_links.append(url) + else: + print(color.LRED+"\nSelected realzation is not available!"+color.END) + raise SystemExit + return new_links def _get_skipped_links(links,val): skipped_items = [x.strip() for x in val.split(',')] diff --git a/setup.py b/setup.py index 76d2098..fff8d0d 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ setup( name='acccmip6', - version='2.0.4', + version='3.0.0', description="Package for accessing CMIP6 database in real-time", long_description=readme, author="Taufiq Hassan",