K'ak'a taq ruxe'el tzij

We k'o awajwaxïk chi nakusaj jun wuj richin ruxe'el tzij majana xok rub'eyal wuj pa Taqdir, yattikïr natz'ib'aj jun k'ak'a ruwäch ruxe'el tzij.

K'o ka'i' kiwäch ruxe'el tzij pa Taqdir, choj ruxe'el tzij (ذریعہ) chuqa' chuq' ruxe'el tzij (ذریعہ_نکتہ).

Toq nab'an jun wachinäq richin chuq' ruxe'el tzij, awetaman chïk akuchi ruk'olib'äl pa setul. Ruxe'el tzij richin ruwuj DSSAT jun tz'etb'äl kichin ri taq chuq' ruxe'el tzij, roma xtzib'an chïk chupam ri wuj akuchi yepe wi ri tzij k'o chupam. Po chupam jun choj ruxe'el tzij k'o tzij kichin k'iy k'olib'äl, achi'el ruxe'el tzij richin Marksim, ri nitikïr nuya' tzij kichin konojel k'olib'äl pa ruwäch ri ulew.

Toq natz'ib'aj jun k'ak'a ruwäch ruxe'el tzij, k'o chi natz'ib'aj jun k'ak'a rusamaj _کوائف_بنانا() rub'i' (xa junan koma choj chuqa' chuq' taq ruxe'el tzij).

Choj ruxe'el tzij

Achi'el tz'etb'äl niqaya' chuxe wawe ri rusamaj _کوائف_بنانا() rub'i' richin ruxe'el tzij richin rutzij NASA.

class ناسا(ذریعہ):
    """
    یہ ذریعہ ناسا کے `صفحہ <https://power.larc.nasa.gov/cgi-bin/v1/DataAccess.py>`_ سے آوہوا مشاہدات کے کوائف پاتا ہیے۔
    """
    متغیرات = ['بارش', 'شمسی_تابکاری', 'درجہ_حرارت_زیادہ', 'درجہ_حرارت_کم', 'درجہ_حرارت_اوسط']

    def _کوائف_بنانا(خود, سے, تک, عرض, طول, بلندی, خاکے):
        try:
            ذریعہ_ناسا = NASAPowerWeatherDataProvider(latitude=عرض, longitude=طول, force_update=False)
        except (requests.exceptions.ConnectionError, KeyError, JSONDecodeError):
            return

        سے = max(ذریعہ_ناسا.first_date, سے)
        تک = min(ذریعہ_ناسا.last_date, تک)

        اعداد_پاندس = pd.DataFrame(columns=list(متغیرات), index=pd.period_range(سے, تک), dtype=float)

        ستون = {
            'بارش': 'RAIN',
            'شمسی_تابکاری': 'IRRAD',
            'درجہ_حرارت_زیادہ': 'TMAX',
            'درجہ_حرارت_کم': 'TMIN',
            'درجہ_حرارت_اوسط': 'TEMP'
        }

        for تاریخ in اعداد_پاندس.index:
            try:
                ناسا_دن = ذریعہ_ناسا(تاریخ.start_time)
            except WeatherDataProviderError:
                continue
            for س, س_ناسا in ستون.items():
                اعداد_پاندس.loc[تاریخ, س] = getattr(ناسا_دن, س_ناسا)

        اعداد_پاندس.شمسی_تابکاری *= 1e-6

        return اعداد_پاندس

Chuq' ruxe'el tzij

Toq nab'an jun wachinäq richin chuq' ruxe'el tzij k'o chi nab'ij chire akuchi yepe wi ri tzij k'o chupam chuqa' rub'i' ru chojmil richin rujaloj ruwäch q'ij. Roma la' rajwaxïk ta chi natz'u ri k'olib'äl, ri q'ij chuqa' ri chojmil chupam ri rusamaj _کوائف_بنانا() rub'i'. Xu taya' ri tzij e k'o chupam Pandas, k'a ri' Taqdir xtitzu ri q'ij, ri k'olib'äl chuqa' ri chojmil awoma.

Achi'el tz'etb'äl niqaya' chuxe wawe ri rusamaj _کوائف_بنانا() rub'i' richin ruxe'el tzij richin wuj json.

class جےسن(ذریعہ_نکتہ):
    """
    جےسن (``.json``) مسل سے کوائف پڑھتا ہیے۔
    """

    def __init__(خود, مسل, عرض, طول, بلندی=None, خاکے=None, تبديل_عمودی_ستون=None):
        super().__init__(عرض, طول, بلندی, خاکے, تبديل_عمودی_ستون)

        if isinstance(مسل, str):
            ضابطہ = _ضابطہ_بندی(مسل)
            with open(مسل, 'r', encoding=ضابطہ) as م:
                خود.جےسن = json.load(م)
        else:
            خود.جےسن = مسل

    @property
    def متغیرات(خود):
        return [ب for ب in [خود._نام_عمودی_ستون(س) for س in خود.جےسن] if ب != 'تاریخ']

    def _کوائف_بنانا(خود, سے, تک, عرض, طول, بلندی, خاکے):

        کو = {خود._نام_عمودی_ستون(س): قیمت for س, قیمت in خود.جےسن.items()}
        اعداد_جےسن = pd.DataFrame(
            data={م: ق for م, ق in کو.items() if م != 'تاریخ'},
            index=خود._اشاریہ_پانڈا_بنانا(کو['تاریخ'])
        )
        return اعداد_جےسن