Source code for تقدیر.ذرائع.مرکسم٥_جال

import calendar
import os
import time
import zipfile

from selenium import webdriver
from selenium.common.exceptions import WebDriverException

from tradssat import WTHFile
from .مرکسم۵ import مرکسم۵_سانچہ


[docs]class مرکسم۵_جال(مرکسم۵_سانچہ): """ یہ ذریعہ مرکسم ۵ کے `جلبینی صفحہ <http://gisweb.ciat.cgiar.org/MarkSimGCM/#tabs-3>`_ سے آوہوا تبدیلی کے کوائف پاتا ہیے۔ """ def _مسل_کوائف_بنانا(خود, سلسلہ_سال, چوڑائی, طول, بلندی, خاکے, سانچے_نمونہ): # پراگما: مت دکھنا جگہ = 'TQDR' راستہ_نتیجہ = خود.راستے.راستے_پانا(چوڑائی, طول, بلندی) راستہ_مسل = os.path.join(راستہ_نتیجہ, '{}.zip'.format(جگہ)) for سال in سلسلہ_سال: try: اختیار_فایئرفاکس = webdriver.FirefoxProfile() except WebDriverException: return اختیار_فایئرفاکس.set_preference('browser.download.folderList', 2) اختیار_فایئرفاکس.set_preference('browser.download.manager.showWhenStarting', False) اختیار_فایئرفاکس.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip') اختیار_فایئرفاکس.set_preference('browser.download.dir', راستہ_نتیجہ) try: with webdriver.Firefox(firefox_profile=اختیار_فایئرفاکس) as فایئرفاکس: فایئرفاکس.get("http://gisweb.ciat.cgiar.org/MarkSimGCM/#tabs-3") راستہ_کا_نام = خود._راستہ_نتیجہ(چوڑائی, طول, بلندی, سال=سال, خاکے=خاکے, نمونے=خود.نمونے) if خود._راستہ_بھری_ہیے(راستہ_کا_نام): continue os.makedirs(راستہ_کا_نام) فایئرفاکس.find_element_by_name('latitude').send_keys(str(چوڑائی)) فایئرفاکس.find_element_by_name('longitude').send_keys(str(طول)) فایئرفاکس.find_element_by_name('place').send_keys(جگہ) if سانچے_نمونہ == '۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰': فایئرفاکس.find_element_by_link_text('None').click() else: if سانچے_نمونہ == '۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱': فایئرفاکس.find_element_by_link_text('Select All Models').click() else: ف_نمونہ = [ 'bcc1', 'bcc2', 'CSIR', 'FIOE', 'GFD1', 'GFD2', 'GFD3', 'GIS1', 'GIS2', 'HadG', 'IPS1', 'IPS2', 'MIR2', 'MIR3', 'MIR1', 'MRIC', 'NorE' ] for ن, نام in zip(سانچے_نمونہ, ف_نمونہ): if int(ن): فایئرفاکس.find_element_by_id('chkbx_' + نام).click() فایئرفاکس.find_element_by_xpath('//input[@value="{}"]'.format(خاکے)).click() فایئرفاکس.find_element_by_name('yearsimulation').send_keys(str(سال if سال >= 2010 else 2010)) فایئرفاکس.find_element_by_name('numrep').send_keys(str(12 if not calendar.isleap(سال) else 40)) فایئرفاکس.find_element_by_id('BtnRun').click() if os.path.isfile(راستہ_مسل): os.remove(راستہ_مسل) while فایئرفاکس.find_element_by_id('td_results').get_attribute('style') == 'display: none;': time.sleep(1) while not فایئرفاکس.find_element_by_xpath('//a[img/@src="images/zip-icon.jpg"]') \ .find_element_by_xpath('.').get_attribute('href'): time.sleep(1) time.sleep(1) فایئرفاکس.find_element_by_xpath('//a[img/@src="images/zip-icon.jpg"]').click() while not os.path.isfile(راستہ_مسل): pass فایئرفاکس.close() except WebDriverException: return with zipfile.ZipFile(راستہ_مسل) as زیپ: زیپ.extractall(path=راستہ_کا_نام) os.remove(راستہ_مسل) for م in os.listdir(راستہ_کا_نام): نام, توسیع = os.path.splitext(م) if WTHFile.matches_file(م) and calendar.isleap(2000 + int(نام[-4:-2])) != calendar.isleap(سال): os.remove(os.path.join(راستہ_کا_نام, م))