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
def __gerceklesen_santral(baslangic_tarihi, bitis_tarihi, santral): """ İlgili tarih aralığı ve santral için gerçek zamanlı üretim bilgisini vermektedir. Parametreler ------------ baslangic_tarihi : %YYYY-%AA-%GG formatında başlangıç tarihi bitis_tarihi : %YYYY-%AA-%GG formatında bitiş tarihi santral_id : metin yada tam sayı formatında santral id Geri Dönüş Değeri ----------------- Santral Bazlı Gerçek Zamanlı Üretim("Tarih", "Saat", "Toplam") """ try: particular_url = __first_part_url + "real-time-generation_with_powerplant" + "?startDate=" + \ baslangic_tarihi + "&endDate=" + bitis_tarihi + "&powerPlantId=" + str(santral["Id"]) json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["hourlyGenerations"]) 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={"total": santral["Kısa Adı"]}, inplace=True) df = df[["Tarih", "Saat", santral["Kısa Adı"]]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
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
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
def organizasyon_veris_cekis_birimleri(eic): """ İlgili eic değeri için Kesinleşmiş Gün Öncesi Üretim Planı (KGÜP) girebilecek olan organizasyonun uzlaştırmaya esas veriş-çekiş birim (UEVÇB) bilgilerini vermektedir. Parametreler ------------ eic : metin formatında organizasyon eic kodu Geri Dönüş Değeri ----------------- KGÜP Girebilen Organizasyonun UEVÇB Bilgileri(Id, Adı, EIC Kodu) """ if __dogrulama.__kgup_girebilen_organizasyon_dogrulama(eic): try: particular_url = __first_part_url + "dpp-injection-unit-name?organizationEIC=" + eic json = __make_requests(particular_url) df_unit = __pd.DataFrame(json["body"]["injectionUnitNames"]) df_unit.rename(index=str, columns={"id": "Id", "name": "Adı", "eic": "EIC Kodu"}, inplace=True) df_unit = df_unit[["Id", "Adı", "EIC Kodu"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df_unit
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
def __uecm_tedarik(tarih=__dt.datetime.today().strftime("%Y-%m-%d")): """ İlgili tarihe tekabül eden uzlaştırma dönemi için tedarik yükümlülüğü kapsamındaki 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 (Tarih, Saat, UEÇM) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = __first_part_url + "under-supply-liability-consumption" + "?startDate=" + tarih + \ "&endDate=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["swvList"]) df["Dönem"] = df["date"].apply(lambda d: d[:7]) df.rename(index=str, columns={"swv": "Tedarik Yükümlülüğü Kapsamındaki UEÇM"}, inplace=True) df = df[["Dönem", "Tedarik Yükümlülüğü Kapsamındaki UEÇM"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
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
def arz_talep_egrisi( tarih=__dt.datetime.today().strftime("%Y-%m-%d"), rename_tr=False): """ İlgili tarih için saatlik arz-talep eğrisinde bulunan fiyat-miktar ikililerini vermektedir. Kabul edilen blok ve esnek tekliflerin eklenmiş halidir. Parametreler ------------ tarih : %YYYY-%AA-%GG formatında tarih (Varsayılan: bugün) Geri Dönüş Değeri ----------------- Arz-Talep Eğrisi Fiyat ve Alış/Satış Miktarı (₺/MWh, MWh) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = \ __first_part_url + "supply-demand-curve" + "?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["supplyDemandCurves"]) df["Saat"] = df["date"].apply(lambda x: int(x[11:13])) if rename_tr: df.rename(index=str, columns={ "demand": "Talep", "supply": "Arz", "price": "Fiyat" }, inplace=True) df = df[["Saat", "Talep", "Fiyat", "Arz"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def gercek_zamanli_uretim_yapan_santraller(): """ İsteğin yapıldığı tarihte gerçek zamanlı üretim yapan UEVÇB bazında santral bilgilerini vermektedir. Parametre ---------- Geri Dönüş Değeri ----------------- Santral Bilgileri(Id, Adı, EIC Kodu, Kısa Adı) """ try: particular_url = __first_part_url + "real-time-generation-power-plant-list" json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["powerPlantList"]) df.rename(index=str, columns={ "id": "Id", "name": "Adı", "eic": "EIC Kodu", "shortName": "Kısa Adı" }, inplace=True) df = df[["Id", "Adı", "EIC Kodu", "Kısa Adı"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def santraller(tarih=__dt.datetime.now().strftime("%Y-%m-%d")): """ İlgili tarihte EPİAŞ sistemine kayıtlı santrallerin bilgilerini vermektedir. Parametre ---------- tarih : %YYYY-%AA-%GG formatında tarih (Varsayılan: bugün) Geri Dönüş Değeri ----------------- Santral Bilgileri(Id, Adı, EIC Kodu, Kısa Adı) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = __first_part_url + "power-plant?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["powerPlantList"]) df.rename(index=str, columns={ "id": "Id", "name": "Adı", "eic": "EIC Kodu", "shortName": "Kısa Adı" }, inplace=True) df = df[["Id", "Adı", "EIC Kodu", "Kısa Adı"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
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
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
def __katilimci_sayisi(tarih): """ İlgili tarih için EPİAŞ sistemine kayıtlı katılımcıların lisans tipine göre sayısını vermektedir. Parametre ---------- tarih : %YYYY-%AA-%GG formatında tarih (Varsayılan: bugün) Geri Dönüş Değeri ----------------- Katılımcı Sayısı """ try: particular_url = __first_part_url + "participant?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["participantList"]) columns = __pd.MultiIndex.from_product( [["Özel Sektör", "Kamu Kuruluşu"], list(df["licence"]) + ["Toplam"]], names=['', '']) df = __pd.DataFrame([list(df["privateSector"]) + list( df["privateSectorOfSum"].unique()) + list(df["publicCompany"]) + list( df["publicCompanyOfSum"].unique())], index=[tarih], columns=columns) df["Toplam"] = df["Kamu Kuruluşu"]["Toplam"] + df["Özel Sektör"]["Toplam"] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def profil_abone_grubu( tarih=__dt.datetime.today().strftime("%Y-%m-%d"), distribution_id=""): """ İlgili tarihe tekabül eden uzlaştırma dönemi ve ağıtım bölgesi için profil abone grup listesini vermektedir. Parametreler ------------ periyot : %YYYY-%AA-%GG formatında tarih (Varsayılan: bugün) Geri Dönüş Değeri ----------------- Serbest Tüketici, Tedarik Kapsamındaki ve Toplam Uzlaştırmaya Esas Çekiş Miktarı (Tarih, Saat, UEÇM, Serbest Tüketici UEÇM, Tedarik Yükümlülüğü Kapsamındaki UEÇM) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = __first_part_url + "subscriber-profile-group" + "?period=" + tarih + "&distributionId=" \ + str(distribution_id) json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["subscriberProfileGroupList"]) df.rename(index=str, columns={ "id": "Id", "name": "Profil Adı" }, inplace=True) except (KeyError, TypeError): return __pd.DataFrame() else: return df
def kptf(tarih=(__dt.datetime.today() + __dt.timedelta(days=1)).strftime("%Y-%m-%d"), rename_tr=False): """ İlgili tarih için saatlik gün öncesi piyasası kesinleşmemiş piyasa takas fiyatını vermektedir. Parametreler ------------ tarih : %YYYY-%AA-%GG formatında tarih (Varsayılan: yarın) Geri Dönüş Değeri ----------------- Kesinleşmemiş Piyasa Takas Fiyatı (₺/MWh) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = __first_part_url + "day-ahead-interim-mcp" + "?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["interimMCPList"]) df["Saat"] = df["date"].apply(lambda x: int(x[11:13])) if rename_tr: df.rename(index=str, columns={"marketTradePrice": "KPTF"}, inplace=True) df = df[["Saat", "KPTF"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def sayac_okuma_tipi(): """ Sayaç okuma tip bilgileri vermektedir. Parametreler ------------ Geri Dönüş Değeri ----------------- Sayaç Okuma Tipleri (Id, Dağıtım Bölgesi) """ try: particular_url = __first_part_url + "meter-reading-type" json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["meterReadingTypeList"]) df.rename(index=str, columns={ "id": "Id", "name": "Sayaç Tipi" }, inplace=True) except (KeyError, TypeError): return __pd.DataFrame() else: return df
def __organizasyonel_talep_hacim(baslangic_tarihi, bitis_tarihi, org): """ İlgili tarih aralığı ve organizasyon için gün öncesi piyasası saatlik talep eşleşme miktar 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 Talep Eşleşme Miktarı (MWh) """ try: particular_url = __first_part_url + "day-ahead-market-volume" + "?startDate=" + baslangic_tarihi + \ "&endDate=" + bitis_tarihi + "&eic=" + org["EIC Kodu"] json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["dayAheadMarketVolumeList"]) 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={"matchedBids": "Talep Eşleşme Miktarı"}, inplace=True) df[org["Kısa Adı"]] = df["Talep Eşleşme Miktarı"] df = df[["Tarih", "Saat", org["Kısa Adı"]]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def __uecm_serbest_tuketici(tarih=__dt.datetime.today().strftime("%Y-%m-%d")): """ İlgili tarihe tekabül eden uzlaştırma dönemi için serbest tüketici hakkını kullanan serbest tüketicilerin saatlik Uzlaştırmaya Esas Çekiş Miktarı (UEÇM) bilgisini vermektedir. Parametreler ------------ periyot : %YYYY-%AA-%GG formatında tarih (Varsayılan: bugün) Geri Dönüş Değeri ----------------- Serbest Tüketici Uzlaştırmaya Esas Çekiş Miktarı (Tarih, Saat, Tüketim) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = __first_part_url + "swv-v2" + "?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["swvV2List"]) df["Saat"] = df["vc_gec_trh"].apply(lambda h: int(h[11:13])) df["Tarih"] = __pd.to_datetime( df["vc_gec_trh"].apply(lambda d: d[:10])) df.rename(index=str, columns={"st": "Serbest Tüketici UEÇM"}, inplace=True) df = df[["Tarih", "Saat", "Serbest Tüketici UEÇM"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def __santral_veris_cekis_birimleri(tarih, santral): """ İlgili tarih ve santral için santralin altında tanımlanmış uzlaştırmaya esas veriş-çekiş birim (UEVÇB) bilgilerini vermektedir. Parametreler ------------ tarih : %YYYY-%AA-%GG formatında tarih santral : dict formatında santral id, Adı, EIC Kodu, Kısa Adı Geri Dönüş Değeri ----------------- İlgili UEVÇB Bilgileri(Santral Id, Santral Adı, Santral EIC Kodu, Santral Kısa Adı, UEVÇB Id, UEVÇB Adı, UEVÇB EIC Kodu) """ try: particular_url = __first_part_url + "uevcb?period=" + tarih + "&powerPlantId=" + str(santral["Id"]) json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["uevcbList"]) df["Santral Id"] = santral["Id"] df["Santral Adı"] = santral["Adı"] df["Santral EIC Kodu"] = santral["EIC Kodu"] df["Santral Kısa Adı"] = santral["Kısa Adı"] df.rename(index=str, columns={"id": "UEVÇB Id", "name": "UEVÇB Adı", "eic": "UEVÇB EIC Kodu"}, inplace=True) df = df[["Santral Id", "Santral Adı", "Santral EIC Kodu", "Santral Kısa Adı", "UEVÇB Id", "UEVÇB Adı", "UEVÇB EIC Kodu"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def __serbest_tuketici_sayisi(): """ İlgili tarih aralığına tekabül eden uzlaştırma dönemleri için serbest tüketici hakkını kullanan serbest tüketicilerin aylık toplam sayısını vermektedir. Parametreler ------------ Geri Dönüş Değeri ----------------- Serbest Tüketici Sayısı (Tarih, Serbest Tüketici Sayısı, Artış Oranı) """ try: particular_url = __first_part_url + "eligible-consumer-quantity" json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["eligibleConsumerQuantityList"]) df["Dönem"] = __pd.to_datetime(df["date"].apply(lambda d: d[:10])) df.rename(index=str, columns={ "meterQuantity": "Serbest Tüketici Sayısı", "meterIncreaseRate": "Artış Oranı" }, inplace=True) df = df[["Dönem", "Serbest Tüketici Sayısı", "Artış Oranı"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def santral_veris_cekis_birimleri(tarih=__dt.datetime.today().strftime("%Y-%m-%d"), santral_id=""): """ İlgili tarih ve santral ID için santralin altında tanımlanmış uzlaştırmaya esas veriş-çekiş birim (UEVÇB) bilgilerini vermektedir. Parametreler ------------ tarih : %YYYY-%AA-%GG formatında tarih (Varsayılan: bugün) santral_id : metin yada tam sayı formatında santral id (Varsayılan: "") Geri Dönüş Değeri ----------------- İlgili UEVÇB Bilgileri(Id, Adı, EIC Kodu) """ if __dogrulama.__tarih_id_dogrulama(tarih, santral_id): try: particular_url = __first_part_url + "uevcb?period=" + tarih + "&powerPlantId=" + str(santral_id) json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["uevcbList"]) df.rename(index=str, columns={"id": "Id", "name": "Adı", "eic": "EIC Kodu"}, inplace=True) df = df[["Id", "Adı", "EIC Kodu"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def organizasyonlar(): """ Kesinleşmiş Gün Öncesi Üretim Planı (KGÜP) girebilecek olan organizasyon bilgilerini vermektedir. Parametreler ------------ Geri Dönüş Değeri ----------------- KGÜP Girebilen Organizasyon Bilgileri(Id, Adı, EIC Kodu, Kısa Adı, Durum) """ try: particular_url = __first_part_url + "dpp-organization" json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["organizations"]) df.rename(index=str, columns={"organizationId": "Id", "organizationName": "Adı", "organizationETSOCode": "EIC Kodu", "organizationShortName": "Kısa Adı", "organizationStatus": "Durum"}, inplace=True) df = df[["Id", "Adı", "EIC Kodu", "Kısa Adı", "Durum"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def sehir(): """ Şehir ve şehirlere ait ilçelerin bilgisini vermektedir. Parametreler ------------ Geri Dönüş Değeri ----------------- Şehir ve Şehirlere Ait İlçeler (Şehir Id, İlçe Id, Şehir İsmi, İlçe İsmi) """ try: particular_url = __first_part_url + "city" json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["cityList"]) df.rename(index=str, columns={ "cityId": "Şehir Id", "districtId": "İlçe Id", "cityName": "Şehir İsmi", "districtName": "İlçe İsmi" }, inplace=True) except (KeyError, TypeError): return __pd.DataFrame() else: return df.drop_duplicates().reset_index(drop=True)
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
def sayac_okuyan_kurum(tarih=__dt.datetime.today().strftime("%Y-%m-%d")): """ Sayaç okuyan kurumların bilgisini vermektedir. Parametreler ------------ Geri Dönüş Değeri ----------------- Serbest Tüketici Sayısı (Tarih, Serbest Tüketici Sayısı, Artış Oranı) """ if __dogrulama.__tarih_dogrulama(tarih): try: particular_url = __first_part_url + "meter-reading-company" + "?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["meterReadingCompanyList"]) df.rename(index=str, columns={ "id": "Id", "name": "Şirket Adı", "status": "Durum" }, inplace=True) except (KeyError, TypeError): return __pd.DataFrame() else: return df
def __organizasyon_cekis_birimleri(org): """ İlgili eic değeri için Kesinleşmiş Gün Öncesi Üretim Planı (KGÜP) girebilecek olan organizasyonun uzlaştırmaya esas veriş-çekiş birim (UEVÇB) bilgilerini ve organizasyona dair bilgileri vermektedir. Parametreler ------------ org : dict formatında organizasyon Id, Adı, EIC Kodu, Kısa Adı, Durum Geri Dönüş Değeri ----------------- KGÜP Girebilen Organizasyon Bilgileri(Org Id, Org Adı, Org EIC Kodu, Org Kısa Adı,Org Durum, UEVÇB Id, UEVÇB Adı, UEVÇB EIC Kodu) """ try: particular_url = __first_part_url + "dpp-injection-unit-name?organizationEIC=" + org["EIC Kodu"] json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["injectionUnitNames"]) df["Org Id"] = org["Id"] df["Org Adı"] = org["Adı"] df["Org EIC Kodu"] = org["EIC Kodu"] df["Org Kısa Adı"] = org["Kısa Adı"] df["Org Durum"] = org["Durum"] df.rename(index=str, columns={"id": "UEVÇB Id", "name": "UEVÇB Adı", "eic": "UEVÇB EIC Kodu"}, inplace=True) df = df[["Org Id", "Org Adı", "Org EIC Kodu", "Org Kısa Adı", "Org Durum", "UEVÇB Id", "UEVÇB Adı", "UEVÇB EIC Kodu"]] except (KeyError, TypeError): return __pd.DataFrame() else: return df
def dagitim_bolgeleri(): """ Dağıtım bölgelerine dair bilgileri vermektedir. Parametreler ------------ Geri Dönüş Değeri ----------------- Dağıtım Bölgeleri (Id, Dağıtım Bölgesi) """ try: particular_url = __first_part_url + "distribution" json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["distributionList"]) df.rename(index=str, columns={ "id": "Id", "name": "Dağıtım Şirket Adı" }, inplace=True) except (KeyError, TypeError): return __pd.DataFrame() else: return df
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
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