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 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 __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 tum_dagitimlar_profil_gruplari( tarih=__dt.datetime.today().strftime("%Y-%m-%d")): """ İlgili tarih aralığı için Kesinleşmiş Gün Öncesi Üretim Planı (KGÜP) girebilecek olan tüm organizasyonların 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 KGUP Değerleri (Tarih, Saat, KGUP) """ if __dogrulama.__tarih_dogrulama(tarih): dist = dagitim_bolgeleri() list_dist = list(dist["Id"]) org_len = len(list_dist) list_date_dist = list(zip([tarih] * org_len, list_dist)) list_date_dist = list(map(list, list_date_dist)) with __Pool(__mp.cpu_count()) as p: list_df_unit = p.starmap(profil_abone_grubu, list_date_dist, 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=["Id"], sort=True), list_df_unit) df_unit.columns = ["Id"] + list(dist["Dağıtım Şirket Adı"]) return df_unit
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 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 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 tum_santraller_veris_cekis_birimleri( tarih=__dt.datetime.today().strftime("%Y-%m-%d")): """ İlgili tarih için EPİAŞ sistemine kayıtlı tüm santrallerin 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) Geri Dönüş Değeri ----------------- EPİAŞ Sistemine Kayıtlı Santraller ve UEVÇB Bilgileri("Santral Id, "Santral Adı", "Santral EIC Kodu", "Santral Kısa Adı", "UEVÇB Id", "UEVÇB Adı", "UEVÇB EIC Kodu") """ if __dogrulama.__tarih_dogrulama(tarih): list_santral = santraller()[["Id", "Adı", "EIC Kodu", "Kısa Adı"]].to_dict("records") santral_len = len(list_santral) list_date_santral_id = list(zip([tarih] * santral_len, list_santral)) list_date_santral_id = list(map(list, list_date_santral_id)) with __Pool(__mp.cpu_count()) as p: list_df_unit = p.starmap(__santral_veris_cekis_birimleri, list_date_santral_id, chunksize=1) return __pd.concat(list_df_unit).reset_index(drop=True)
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 __uecm_donemlik(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, tedarik yükümlülüğü kapsamındaki ve toplam 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, 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 + "consumption" + "?period=" + tarih json = __make_requests(particular_url) df = __pd.DataFrame(json["body"]["consumptions"]) df["Dönem"] = df["period"].apply(lambda d: d[:7]) df.rename(index=str, columns={ "consumption": "UEÇM", "eligibleCustomerConsumption": "Serbest Tüketici UEÇM", "underSupplyLiabilityConsumption": "Tedarik Yükümlülüğü Kapsamındaki UEÇM" }, inplace=True) df = df[[ "Dönem", "UEÇM", "Serbest Tüketici UEÇM", "Tedarik Yükümlülüğü Kapsamındaki UEÇM" ]] except (KeyError, TypeError): return __pd.DataFrame() else: return df