Example #1
0
def ptf(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        rename_tr=True):
    """
    İlgili tarih aralığı için saatlik gün öncesi piyasası (GÖP) piyasa takas fiyatlarını (PTF) vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Saatlik PTF (₺/MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "day-ahead-mcp" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["dayAheadMCPList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str, columns={"price": "PTF"}, inplace=True)
                df = df[["Tarih", "Saat", "PTF"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #2
0
def smf(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığı için saatlik sistem marjinal fiyatını (SMF) ve sistem yönünü vermektedir.

    Parametreler
    ----------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi   : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    ------
    Sistem Marjinal Fiyatı, Sistem Yönü
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "smp" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["smpList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={
                          "price": "SMF",
                          "smpDirection": "Sistem Yönü"
                      },
                      inplace=True)
            df = df[["Tarih", "Saat", "SMF", "Sistem Yönü"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #3
0
def sekonder_frekans_rezerv_miktari(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        rename_tr=True):
    """
    İlgili tarih aralığı için saatlik primer frekans rezerv miktar bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    SFK Yükümlülük (MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "sfc-amount" + "?startDate=" + baslangic_tarihi + "&endDate=" + \
                             bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["frequencyReservePriceList"])
            df["Saat"] = df["effectiveDate"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(
                df["effectiveDate"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str,
                          columns={"totalAmount": "SFK Yükümlülük (MWh)"},
                          inplace=True)
                df = df[["Tarih", "Saat", "SFK Yükümlülük (MWh)"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #4
0
def aof(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        rename_tr=True):
    """
    İlgili tarih aralığı için gün içi piyasası (GİP) saatlik ağırlıklı ortalama fiyat (AOF) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Saatlik Ağırlıklı Ortalama Fiyat (₺/MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "intra-day-aof" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["idmAofList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str, columns={"price": "AOF"}, inplace=True)
                df = df[["Tarih", "Saat", "AOF"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #5
0
def katilimci_sayisi(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                     bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığına tekabül eden dönemler için EPİAŞ sistemine kayıtlı katılımcıların lisans tipine göre sayısını
    vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Katılımcı Sayısı
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        ilk = __dt.datetime.strptime(baslangic_tarihi[:7], '%Y-%m')
        son = __dt.datetime.strptime(bitis_tarihi[:7], '%Y-%m')
        date_list = []
        while ilk <= son:
            date_list.append(ilk.strftime("%Y-%m-%d"))
            ilk = ilk + __rd.relativedelta(months=+1)
        with __Pool(__mp.cpu_count()) as p:
            df_list = p.map(__katilimci_sayisi, date_list)
        return __pd.concat(df_list, sort=False)
Example #6
0
def tum_uevcb_eak(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                  bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"), rename_tr=False):
    """
    İlgili tarih aralığı için Emre Amade Kapasite (EAK) girebilecek olan tüm organizasyonların uzlaştırmaya esas
    veriş-çekiş birimlerinin saatlik KGUP bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    KGÜP Girebilen Organizasyonların UEVCB KGUP Değerleri (Tarih, Saat, KGUP)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        org_uevcb = tum_organizasyonlar_veris_cekis_birimleri()
        list_org_uevcb = org_uevcb[["Org EIC Kodu", "UEVÇB EIC Kodu", "UEVÇB Adı"]].to_dict("records")
        list_org_uevcb_len = len(list_org_uevcb)
        list_date_org_uevcb_eic = list(
            zip([baslangic_tarihi] * list_org_uevcb_len, [bitis_tarihi] * list_org_uevcb_len, list_org_uevcb))
        list_date_org_uevcb_eic = list(map(list, list_date_org_uevcb_eic))
        with __Pool(__mp.cpu_count()) as p:
            list_df_unit = p.starmap(__eak_uevcb, list_date_org_uevcb_eic, chunksize=1)
        list_df_unit = list(filter(lambda x: len(x) > 0, list_df_unit))
        df_unit = __red(lambda left, right: __pd.merge(left, right, how="outer", on=["Tarih", "Saat"], sort=True),
                        list_df_unit)
        return df_unit
Example #7
0
def __eak_uevcb(baslangic_tarihi, bitis_tarihi, org_uevcb):
    """
    İlgili tarih aralığı ve uzlaştırmaya esas veriş çekiş birimi için emre amade kapasite (EAK) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi
    org              : dict formatında organizasyon EIC Kodu, Kısa Adı

    Geri Dönüş Değeri
    -----------------
    UEVCB EAK değerleri
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        try:
            particular_url = __first_part_url + "aic" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi \
                             + "&organizationEIC=" + org_uevcb["Org EIC Kodu"] + "&uevcbEIC=" + org_uevcb[
                                 "UEVÇB EIC Kodu"]
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["aicList"])
            df["Saat"] = df["tarih"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["tarih"].apply(lambda d: d[:10]))
            df.rename(index=str, columns={"toplam": org_uevcb["UEVÇB Adı"]}, inplace=True)
            df = df[["Tarih", "Saat", org_uevcb["UEVÇB Adı"]]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #8
0
def islem_hacmi(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                rename_tr=False):
    """
    İlgili tarih aralığı için gün içi piyasası (GİP) arz/talep işlem hacmi bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Arz/Talep İşlem Hacmi (₺)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "intra-day-income" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["incomes"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str,
                          columns={"income": "İşlem Hacmi"},
                          inplace=True)
                df = df[["Tarih", "Saat", "İşlem Hacmi"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #9
0
def primer_sekonder_fiyat_miktar(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığı için saatlik primer/sekonder frekans rezerv fiyat/miktar bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    PFK/SFK Fiyat/Yükümlülük
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            pfk_miktar = primer_frekans_rezerv_miktari(baslangic_tarihi,
                                                       bitis_tarihi)
            pfk_fiyat = primer_rezerv_fiyati(baslangic_tarihi, bitis_tarihi)
            sfk_miktar = sekonder_frekans_rezerv_miktari(
                baslangic_tarihi, bitis_tarihi)
            sfk_fiyat = sekonder_rezerv_fiyati(baslangic_tarihi, bitis_tarihi)
            df = __red(
                lambda left, right: __pd.merge(
                    left, right, how="outer", on=["Tarih", "Saat"], sort=True),
                [pfk_miktar, pfk_fiyat, sfk_miktar, sfk_fiyat])
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #10
0
def tum_organizasyonlar_eak(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                            bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"), rename_tr=False):
    """
    İlgili tarih aralığı için Emre Amade Kapasite (EAK) girebilecek olan tüm organizasyonların saatlik EAK bilgilerini
    vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    EAK Girebilen Organizasyonların EAK Değerleri (Tarih, Saat, EAK)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        org = organizasyonlar()
        list_org = org[["EIC Kodu", "Kısa Adı"]].to_dict("records")
        org_len = len(list_org)
        list_date_org_eic = list(zip([baslangic_tarihi] * org_len, [bitis_tarihi] * org_len, list_org))
        list_date_org_eic = list(map(list, list_date_org_eic))
        with __Pool(__mp.cpu_count()) as p:
            list_df_unit = p.starmap(__eak, list_date_org_eic, chunksize=1)
        list_df_unit = list(filter(lambda x: len(x) > 0, list_df_unit))
        df_unit = __red(lambda left, right: __pd.merge(left, right, how="outer", on=["Tarih", "Saat"], sort=True),
                        list_df_unit)
        return df_unit
Example #11
0
def gerceklesen(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığı için saatlik gerçek zamanlı tüketim bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Gerçek Zamanlı Tüketim (Tarih, Saat, Tüketim)

    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "real-time-consumption" + "?startDate=" + baslangic_tarihi + \
                             "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["hourlyConsumptions"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={"consumption": "Tüketim"},
                      inplace=True)
            df = df[["Tarih", "Saat", "Tüketim"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #12
0
def serbest_tuketici_sayisi(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığına tekabül eden uzlaştırma dönemleri için profil abone grubuna göre serbest tüketici hakkını
    kullanan serbest tüketici sayıları bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Profil Abone Grubuna Göre Serbest Tüketici Sayıları (Tarih, Aydınlatma,  Diğer,  Mesken,  Sanayi,  Tarimsal,
    Sulama, Ticarethane, Toplam)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        ilk = __dt.datetime.strptime(baslangic_tarihi[:7], '%Y-%m')
        son = __dt.datetime.strptime(bitis_tarihi[:7], '%Y-%m')
        date_list = []
        while ilk <= son:
            date_list.append(ilk.strftime("%Y-%m-%d"))
            ilk = ilk + __rd.relativedelta(months=+1)
        with __Pool(__mp.cpu_count()) as p:
            df_list = p.map(__profil_serbest_tuketici_sayisi,
                            date_list,
                            chunksize=1)
        df_st = __pd.concat(df_list, sort=False)
        df_toplam = __serbest_tuketici_sayisi()
        return __pd.merge(df_st, df_toplam, how="left", on=["Dönem"])
Example #13
0
def tum_santraller_gerceklesen(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                               bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"), rename_tr=False):
    """
    İlgili tarih aralığı için tüm lisanslı santrallerin gerçek zamanlı üretim bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Tüm lisanslı santrallerin gerçek zamanlı üretim Değerleri (Tarih, Saat, Santral Üretimleri)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        sant = __santraller.gercek_zamanli_uretim_yapan_santraller()
        list_sant = sant[["Id", "Kısa Adı"]].to_dict("records")
        list_sant_len = len(list_sant)
        list_sant = list(
            zip([baslangic_tarihi] * list_sant_len, [bitis_tarihi] * list_sant_len, list_sant))
        list_sant = list(map(list, list_sant))
        with __Pool(__mp.cpu_count()) as p:
            list_df_unit = p.starmap(__gerceklesen_santral, list_sant, chunksize=1)
        list_df_unit = list(filter(lambda x: len(x) > 0, list_df_unit))
        df_unit = __red(lambda left, right: __pd.merge(left, right, how="outer", on=["Tarih", "Saat"], sort=True),
                        list_df_unit)
        return df_unit
Example #14
0
def uecm_serbest_tuketici(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığına tekabül eden uzlaştırma dönemleri için serbest tüketici hakkını kullanan serbest
    tüketicilerin saatlik Uzlaştırmaya Esas Çekiş Miktarı (UEÇM) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Serbest Tüketici UEÇM (Tarih, Saat, Tüketim)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        ilk = __dt.datetime.strptime(baslangic_tarihi[:7], '%Y-%m')
        son = __dt.datetime.strptime(bitis_tarihi[:7], '%Y-%m')
        date_list = []
        while ilk <= son:
            date_list.append(ilk.strftime("%Y-%m-%d"))
            ilk = ilk + __rd.relativedelta(months=+1)
        with __Pool(__mp.cpu_count()) as p:
            df_list = p.map(__uecm_serbest_tuketici, date_list, chunksize=1)
        return __pd.concat(df_list, sort=False)
Example #15
0
def uecm_donemlik_tedarik(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığına tekabül eden uzlaştırma dönemleri için tedarik yükümlülüğü kapsamındaki dönemlik bazlı toplam
    Uzlaştırmaya Esas Çekiş Miktarı (UEÇM) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Tedarik Yükümlülüğü Kapsamındaki UEÇM (Dönem, Tüketim)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        ilk = __dt.datetime.strptime(baslangic_tarihi[:7], '%Y-%m')
        son = __dt.datetime.strptime(bitis_tarihi[:7], '%Y-%m')
        date_list = []
        while ilk <= son:
            date_list.append(ilk.strftime("%Y-%m-%d"))
            ilk = ilk + __rd.relativedelta(months=+1)
        with __Pool(__mp.cpu_count()) as p:
            df_list = p.map(__uecm_tedarik, date_list, chunksize=1)
        return __pd.concat(df_list, sort=False)
Example #16
0
def __kgup(baslangic_tarihi, bitis_tarihi, org):
    """
    İlgili tarih aralığı ve organizasyon için  kesinleşmiş günlük üretim prgoramı (KGÜP) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi
    org              : dict formatında organizasyon EIC Kodu, Kısa Adı

    Geri Dönüş Değeri
    -----------------
    Organizasyonel KGUP değerleri
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        try:
            particular_url = __first_part_url + "dpp" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi \
                             + "&organizationEIC=" + org["EIC Kodu"]
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["dppList"])
            df["Saat"] = df["tarih"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["tarih"].apply(lambda d: d[:10]))
            df.rename(index=str, columns={"toplam": org["Kısa Adı"]}, inplace=True)
            df = df[["Tarih", "Saat", org["Kısa Adı"]]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #17
0
def kurulu_guc(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
               bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığına tekabül eden aylar için EPİAŞ sistemine kayıtlı santrallerin toplam kurulu güç bilgisini
    vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Kurulu Güç Bilgisi (Tarih, Kurulu Güç)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        ilk = __dt.datetime.strptime(baslangic_tarihi[:7], '%Y-%m')
        son = __dt.datetime.strptime(bitis_tarihi[:7], '%Y-%m')
        date_list = []
        while ilk <= son:
            date_list.append(ilk.strftime("%Y-%m-%d"))
            ilk = ilk + __rd.relativedelta(months=+1)
        with __Pool(__mp.cpu_count()) as p:
            df_list = p.map(__kurulu_guc, date_list)
        return __pd.concat(df_list, sort=False)
Example #18
0
def primer_rezerv_fiyati(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığı için saatlik primer frekans kontrol (PFK) kapasite bedeli bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    PFK Fiyat (TL/MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "pfc-price" + "?startDate=" + baslangic_tarihi + "&endDate=" + \
                             bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["frequencyReservePriceList"])
            df["Saat"] = df["effectiveDate"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(
                df["effectiveDate"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={"price": "PFK Fiyat (TL/MWh)"},
                      inplace=True)
            df = df[["Tarih", "Saat", "PFK Fiyat (TL/MWh)"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #19
0
def gddk(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
         bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"), rename_tr=False):
    """
    İlgili tarih aralığı için geriye dönük düzeltme kalemine (GDDK) ait değerleri vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Dönemlik GDDK (₺)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi, bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "gddk-amount" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["gddkAmountList"])
            df["Dönem"] = df["id"].apply(
                lambda x: str(__pd.to_datetime(x["date"][:10]).month_name(locale='tr_TR.UTF-8')) + "-" + str(
                    __pd.to_datetime(x["date"][:10]).year))
            df["Versiyon"] = df["id"].apply(
                lambda x: str(__pd.to_datetime(x["version"][:10]).month_name(locale='tr_TR.UTF-8')) + "-" + str(
                    __pd.to_datetime(x["version"][:10]).year))
            df.rename(index=str,
                      columns={"gddkCreditAmount": "Alacak GDDK Tutarı (TL)", "gddkDebtAmount": "Borç GDDK Tutarı (TL)",
                               "gddkNetAmount": "Net GDDK Tutarı (TL)"}, inplace=True)
            df = df[["Dönem", "Versiyon", "Alacak GDDK Tutarı (TL)", "Borç GDDK Tutarı (TL)", "Net GDDK Tutarı (TL)"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #20
0
def tahmin(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
           bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
           rename_tr=False):
    """
    İlgili tarih aralığı için saatlik yük tahmin plan bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Yük Tahmin Planı (Tarih, Saat, Tüketim)

    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "load-estimation-plan" + "?startDate=" + baslangic_tarihi + \
                             "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["loadEstimationPlanList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str, columns={"lep": "Tüketim"}, inplace=True)
                df = df[["Tarih", "Saat", "Tüketim"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #21
0
def uecm(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
         bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığı için saatlik Uzlaştırmaya Esas Çekiş Miktarı (UEÇM) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Uzlaştırmaya Esas Çekiş Miktarı (Tarih, Saat, UEÇM)

    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "swv" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["swvList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            df.rename(index=str, columns={"swv": "UEÇM"}, inplace=True)
            df = df[["Tarih", "Saat", "UEÇM"]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #22
0
def kudup(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
          bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
          organizasyon_id="",
          uevcb_id=""):
    """
    İlgili tarih aralığı için gün içi piyasasının kapanışından sonra yapılan güncellemeyle kaynak bazlı Kesinleşmiş
    Uzlaştırma Dönemi Üretim Planı (KUDÜP) bilgisini vermektedir.
    Not: "organizasyon_eic" değeri girildiği, "uevcb_eic" değeri girilmediği taktirde organizasyona ait tüm uevcb'lerin
    toplamı için kgüp bilgisini vermektedir. Her iki değer de girildiği taktirde ilgili organizasyonun ilgili uevcb'si
    için kgüp bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)
    organizasyon_id  : metin formatında organizasyon id (Varsayılan: "")
    uevcb_id         : metin formatında uevcb id (Varsayılan: "")

    Geri Dönüş Değeri
    -----------------
    KUDÜP (Tarih, Saat, Doğalgaz, Barajlı, Linyit, Akarsu, İthal Kömür, Rüzgar, Fuel Oil, Jeo Termal, Taş Kömür,
    Biyokütle, Nafta, Diğer, Toplam)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "sbfgp" + "?startDate=" + baslangic_tarihi + "&endDate=" + \
                             bitis_tarihi + "&organizationId=" + organizasyon_id + "&uevcbId=" + uevcb_id
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["dppList"])
            df["Saat"] = df["tarih"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["tarih"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={
                          "akarsu": "Akarsu",
                          "barajli": "Barajlı",
                          "biokutle": "Biyokütle",
                          "diger": "Diğer",
                          "dogalgaz": "Doğalgaz",
                          "fuelOil": "Fuel Oil",
                          "ithalKomur": "İthal Kömür",
                          "jeotermal": "Jeo Termal",
                          "linyit": "Linyit",
                          "nafta": "Nafta",
                          "ruzgar": "Rüzgar",
                          "tasKomur": "Taş Kömür",
                          "toplam": "Toplam"
                      },
                      inplace=True)
            df = df[[
                "Tarih", "Saat", "Doğalgaz", "Barajlı", "Linyit", "Akarsu",
                "İthal Kömür", "Rüzgar", "Fuel Oil", "Jeo Termal", "Taş Kömür",
                "Biyokütle", "Nafta", "Diğer", "Toplam"
            ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #23
0
def ariza_bakim_bildirimleri(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        rename_tr=False):
    """
    İlgili tarih aralığı için santrallerin bildirmiş oldukları arıza/bakımların bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Santral Arıza/Bakım Bildirimleri(Olay Bildirim Tarihi, Santral Adı, UEVCB Adı, Şehir, Olay Balangıç Tarihi,
                 Olay Bitiş Tarihi, İşletmedeki Kurulu Güç, Olay Sırasında Kapasite, Yakıt Tipi, Gerekçe,
                 Gerekçe Tipi)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "urgent-market-message" + "?startDate=" + baslangic_tarihi + \
                             "&endDate=" + bitis_tarihi + "&regionId=1"
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["urgentMarketMessageList"])
            df["caseAddDate"] = __pd.to_datetime(df["caseAddDate"])
            df["caseStartDate"] = __pd.to_datetime(df["caseStartDate"])
            df["caseEndDate"] = __pd.to_datetime(df["caseEndDate"])
            df["Gerekçe Tipi"] = df["messageType"].map({
                0: "Arıza",
                2: "Bakım"
            })
            df.rename(index=str,
                      columns={
                          "capacityAtCaseTime": "Olay Sırasında Kapasite",
                          "powerPlantName": "Santral Adı",
                          "city": "Şehir",
                          "operatorPower": "İşletmedeki Kurulu Güç",
                          "uevcbName": "UEVCB Adı",
                          "reason": "Gerekçe",
                          "caseStartDate": "Olay Balangıç Tarihi",
                          "caseEndDate": "Olay Bitiş Tarihi",
                          "caseAddDate": "Olay Bildirim Tarihi",
                          "fuelType": "Yakıt Tipi"
                      },
                      inplace=True)
            df = df[[
                "Olay Bildirim Tarihi", "Santral Adı", "UEVCB Adı", "Şehir",
                "Olay Balangıç Tarihi", "Olay Bitiş Tarihi",
                "İşletmedeki Kurulu Güç", "Olay Sırasında Kapasite",
                "Yakıt Tipi", "Gerekçe", "Gerekçe Tipi"
            ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #24
0
def hacim(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
          bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
          rename_tr=False):
    """
    İlgili tarih aralığı için dengeleme güç piyasası YAL/YAT talimat miktar bilgilerini vermektedir.

    Parametreler
    ----------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi   : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    ------
    YAL/YAT Talimat Miktarları (MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "bpm-order-summary" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["bpmorderSummaryList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str,
                          columns={
                              "net": "Net",
                              "upRegulationZeroCoded": "YAL (0)",
                              "upRegulationOneCoded": "YAL (1)",
                              "upRegulationTwoCoded": "YAL (2)",
                              "downRegulationZeroCoded": "YAT (0)",
                              "downRegulationOneCoded": "YAT (1)",
                              "downRegulationTwoCoded": "YAT (2)",
                              "upRegulationDelivered": "Teslim Edilen YAL",
                              "downRegulationDelivered": "Teslim Edilen YAT",
                              "direction": "Sistem Yönü"
                          },
                          inplace=True)
                df["Sistem Yönü"] = df["Sistem Yönü"].map({
                    "IN_BALANCE":
                    "Dengede",
                    "ENERGY_SURPLUS":
                    "Enerji Fazlası",
                    "ENERGY_DEFICIT":
                    "Enerji Açığı"
                })
                df = df[[
                    "Tarih", "Saat", "Net", "YAL (0)", "YAL (1)", "YAL (2)",
                    "Teslim Edilen YAL", "YAT (0)", "YAT (1)", "YAT (2)",
                    "Teslim Edilen YAT", "Sistem Yönü"
                ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #25
0
def ozet(
    baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
    bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
    rename_tr=False,
):
    """
    İlgili tarih aralığı için gün içi piyasasına dair özet bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi   : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Özet (Tarih, Saat, Id, Kontrat Adı, Teklif Edilen Alış/Satış Miktarları, Eşleşme Miktarı, İşlem Hacmi,
    Min. Alış/Satış Fiyatları, Max. Alış/Satış Fiyatları, Min./Max. Eşleşme Fiyatları)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "intra-day-summary" + "?startDate=" + baslangic_tarihi + "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["intraDaySummaryList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str,
                          columns={
                              "id": "Id",
                              "contract": "Kontrat Adı",
                              "quantityOfAsk": "Teklif Edilen Talep Miktarı",
                              "quantityOfBid": "Teklif Edilen Arz Miktarı",
                              "volume": "Eşleşme Miktarı",
                              "tradingVolume": "İşlem Hacmi",
                              "minAskPrice": "Min. Talep Fiyatı",
                              "maxAskPrice": "Max. Talep Fiyatı",
                              "minBidPrice": "Min. Arz Fiyatı",
                              "maxBidPrice": "Max. Arz Fiyatı",
                              "minMatchPrice": "Min. Eşleşme Fiyatı",
                              "maxMatchPrice": "Max. Eşleşme Fiyatı"
                          },
                          inplace=True)
                df = df[[
                    "Tarih", "Saat", "Id", "Kontrat Adı",
                    "Teklif Edilen Talep Miktarı", "Teklif Edilen Arz Miktarı",
                    "Eşleşme Miktarı", "İşlem Hacmi", "Min. Talep Fiyatı",
                    "Max. Talep Fiyatı", "Min. Arz Fiyatı", "Max. Arz Fiyatı",
                    "Min. Eşleşme Fiyatı", "Max. Eşleşme Fiyatı"
                ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #26
0
def uevm(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
         bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d")):
    """
    İlgili tarih aralığı için saatlik Uzlaştırmaya Esas Variş Miktarı (UEVM) bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Uzlaştırmaya Esas Veriş Miktarı (Tarih, Saat, UEVM)

    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = __first_part_url + "ssv-categorized" + "?startDate=" + baslangic_tarihi + "&endDate=" + \
                             bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["ssvList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={
                          "asphaltite": "Asfaltit Kömür",
                          "river": "Akarsu",
                          "dam": "Barajlı",
                          "biomass": "Biyokütle",
                          "naturalGas": "Doğalgaz",
                          "fueloil": "Fuel Oil",
                          "importedCoal": "İthal Kömür",
                          "geothermal": "Jeo Termal",
                          "lignite": "Linyit",
                          "naphtha": "Nafta",
                          "lng": "LNG",
                          "wind": "Rüzgar",
                          "stonecoal": "Taş Kömür",
                          "international": "Uluslararası",
                          "total": "Toplam",
                          "other": "Diğer"
                      },
                      inplace=True)
            df = df[[
                "Tarih", "Saat", "Doğalgaz", "Barajlı", "Linyit", "Akarsu",
                "İthal Kömür", "Rüzgar", "Fuel Oil", "Jeo Termal",
                "Asfaltit Kömür", "Taş Kömür", "Biyokütle", "Nafta", "LNG",
                "Uluslararası", "Diğer", "Toplam"
            ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #27
0
def tum_gorevli_tedarik_hacim(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        rename_tr=False,
        hacim_tipi="NET"):
    """
    İlgili tarih aralığı için tüm görevli tedarik şirketleri için saatlik net hacim bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)
    hacim_tipi       : metin formatında hacim tipi ("NET", "ARZ", yada "TALEP") (varsayılan: "NET")

    Geri Dönüş Değeri
    -----------------
    Tüm Organizasyonların Saatlik GÖP Hacmi (Tarih, Saat, Hacim)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        org = __organizasyonlar()
        org = org[(org["Adı"].str.contains("K1")) |
                  (org["Adı"].str.contains("K2")) |
                  (org["Adı"].str.contains("K3"))].reset_index(drop=True)
        list_org = org[["EIC Kodu", "Kısa Adı"]].to_dict("records")
        org_len = len(list_org)
        list_date_org_eic = list(
            zip([baslangic_tarihi] * org_len, [bitis_tarihi] * org_len,
                list_org))
        list_date_org_eic = list(map(list, list_date_org_eic))
        with __Pool(__mp.cpu_count()) as p:
            if hacim_tipi.lower() == "net":
                list_df_unit = p.starmap(__organizasyonel_net_hacim,
                                         list_date_org_eic,
                                         chunksize=1)
            elif hacim_tipi.lower() == "arz":
                list_df_unit = p.starmap(__organizasyonel_arz_hacim,
                                         list_date_org_eic,
                                         chunksize=1)
            elif hacim_tipi.lower() == "talep":
                list_df_unit = p.starmap(__organizasyonel_talep_hacim,
                                         list_date_org_eic,
                                         chunksize=1)
            else:
                __logging.error(
                    "Lütfen geçerli bir hacim tipi giriniz: Net, Arz, Talep",
                    exc_info=False)
        list_df_unit = list(filter(lambda x: len(x) > 0, list_df_unit))
        df_unit = __red(
            lambda left, right: __pd.merge(
                left, right, how="outer", on=["Tarih", "Saat"], sort=True),
            list_df_unit)
        return df_unit
Example #28
0
def __gerceklesen(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                  bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
                  rename_tr=False):
    """
    İlgili tarih aralığı için saatlik YEKDEM kapsamındaki lisanslı santrallerin kaynak bazında gerçek zamanlı üretim
    bilgisini  vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Saatlik YEKDEM Lisanslı UEVM (MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "renewable-sm-licensed-real-time-generation" + "?startDate=" + baslangic_tarihi + \
                "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(
                json["body"]["renewableLicencedGenerationAmount"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={
                          "canalType": "Kanal Tipi",
                          "riverType": "Nehir Tipi",
                          "biogas": "Biyogaz",
                          "biomass": "Biyokütle",
                          "lfg": "Çöp Gazı",
                          "sun": "Güneş",
                          "geothermal": "Jeotermal",
                          "reservoir": "Rezervuarlı",
                          "wind": "Rüzgar",
                          "total": "Toplam",
                          "others": "Diğer"
                      },
                      inplace=True)
            df = df[[
                "Tarih", "Saat", "Rüzgar", "Jeotermal", "Rezervuarlı",
                "Kanal Tipi", "Nehir Tipi", "Çöp Gazı", "Biyogaz", "Güneş",
                "Biyokütle", "Diğer", "Toplam"
            ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #29
0
def min_max_fiyatlar(
        baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
        rename_tr=False,
        teklif_tipi="SAATLIK"):
    """
    İlgili tarih aralığı ve teklif tipi için gün içi piyasasında (GİP) teklif edilen ve eşleşme fiyatlarının minimum ve
    maksimum değerlerinin bilgilerini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)
    teklif_tipi      : metin formatında teklif tipi ("SAATLIK" ya da "BLOK") (Varsayılan: "SAATLIK")

    Geri Dönüş Değeri
    -----------------
    GİP Teklif Edilen ve Eşleşen Tekliflerin Min./Max. Fiyat Değerleri (₺/MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            bid_types = {"saatlik": "HOURLY", "blok": "BLOCK"}
            particular_url = \
                __first_part_url + "intra-day-min-max-price" + "?startDate=" + baslangic_tarihi + "&endDate=" \
                + bitis_tarihi + "&offerType=" + bid_types[teklif_tipi.lower()]
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["minMaxPriceList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            if rename_tr:
                df.rename(index=str,
                          columns={
                              "minAskPrice": "Min. Alış Fiyatı",
                              "maxAskPrice": "Max. Alış Fiyatı",
                              "minBidPrice": "Min. Satış Fiyatı",
                              "maxBidPrice": "Max. Satış Fiyatı",
                              "minMatchPrice": "Min. Eşleşme Fiyatı",
                              "maxMatchPrice": "Max. Eşleşme Fiyatı"
                          },
                          inplace=True)
                df = df[[
                    "Tarih", "Saat", "Min. Alış Fiyatı", "Max. Alış Fiyatı",
                    "Min. Satış Fiyatı", "Max. Satış Fiyatı",
                    "Min. Eşleşme Fiyatı", "Max. Eşleşme Fiyatı"
                ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df
Example #30
0
def uevm(baslangic_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
         bitis_tarihi=__dt.datetime.today().strftime("%Y-%m-%d"),
         rename_tr=False):
    """
    İlgili tarih aralığı için YEKDEM kapsamındaki santrallerin kaynak bazında uzlaştırmaya esas veriş miktarı (UEVM)
    bilgisini vermektedir.

    Parametreler
    ------------
    baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi (Varsayılan: bugün)
    bitis_tarihi     : %YYYY-%AA-%GG formatında bitiş tarihi (Varsayılan: bugün)

    Geri Dönüş Değeri
    -----------------
    Saatlik YEKDEM UEVM (MWh)
    """
    if __dogrulama.__baslangic_bitis_tarih_dogrulama(baslangic_tarihi,
                                                     bitis_tarihi):
        try:
            particular_url = \
                __first_part_url + "renewable-sm-production" + "?startDate=" + baslangic_tarihi + \
                "&endDate=" + bitis_tarihi
            json = __make_requests(particular_url)
            df = __pd.DataFrame(json["body"]["renewableSMProductionList"])
            df["Saat"] = df["date"].apply(lambda h: int(h[11:13]))
            df["Tarih"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10]))
            df.rename(index=str,
                      columns={
                          "canalType": "Kanal Tipi",
                          "riverType": "Nehir Tipi",
                          "biogas": "Biyogaz",
                          "biomass": "Biyokütle",
                          "landfillGas": "Çöp Gazı",
                          "geothermal": "Jeotermal",
                          "dammedHydroWithReservoir": "Rezervuarlı",
                          "wind": "Rüzgar",
                          "total": "Toplam",
                          "others": "Diğer"
                      },
                      inplace=True)
            df = df[[
                "Tarih", "Saat", "Rüzgar", "Jeotermal", "Rezervuarlı",
                "Kanal Tipi", "Nehir Tipi", "Çöp Gazı", "Biyogaz", "Biyokütle",
                "Diğer", "Toplam"
            ]]
        except (KeyError, TypeError):
            return __pd.DataFrame()
        else:
            return df