Spaces:
Sleeping
Sleeping
| import os | |
| import pandas as pd | |
| import geopandas as gpd | |
| import glob | |
| def get_data_path(): | |
| # Ermittelt immer den absoluten Pfad zum "Data"-Ordner (relativ zum Projektroot) | |
| return os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'data')) | |
| def load_heatingsystem_csv(filename): | |
| data_path = get_data_path() | |
| csv_path = os.path.join(data_path, filename) | |
| return pd.read_csv(csv_path, delimiter=';') | |
| def load_scenario_table(): | |
| data_path = get_data_path() | |
| csv_path = os.path.join(data_path, 'Szenario-Input.csv') | |
| df = pd.read_csv(csv_path, delimiter=';', encoding='latin1', skip_blank_lines=True) | |
| # Nur Zeilen, bei denen mindestens eine Szenario-Spalte belegt ist | |
| scenario_cols = [col for col in df.columns if col.startswith("Szenario_")] | |
| df = df.dropna(subset=scenario_cols, how="all") | |
| return df | |
| def load_data_from_parquet(parquet_dir, bbox_geom, columns): | |
| parts = [] | |
| files = glob.glob(os.path.join(parquet_dir, "*.parquet")) | |
| for f in files: | |
| gdf = gpd.read_parquet(f, columns=columns) | |
| # Filter nach Bounding Box! | |
| gdf = gdf[gdf.geometry.intersects(bbox_geom)] | |
| parts.append(gdf) | |
| if parts: | |
| return gpd.GeoDataFrame(pd.concat(parts, ignore_index=True), crs=parts[0].crs) | |
| else: | |
| return gpd.GeoDataFrame(columns=columns) | |
| def load_data(_bbox_geom): | |
| cols = [ | |
| "Fest_ID", "Strasse", "HAUSNR", "HAUSNR_Zusatz", "GEBAEUDETYP", | |
| "NF", "RW_WW", "JAZ_Luft", "geometry" | |
| ] | |
| parquet_dir = "LANUK_Daten" | |
| return load_data_from_parquet( | |
| parquet_dir=parquet_dir, | |
| bbox_geom=_bbox_geom, | |
| columns=cols | |
| ) | |
| # def load_data(_bbox_geom): | |
| # cols = [ | |
| # "Fest_ID", "beheizt", "Strasse", "HAUSNR", "HAUSNR_Zusatz", "GEBAEUDETYP", "sanierungsstand", | |
| # "NF", "RW_WW", "JAZ_Luft", "San_Jahr", "San_Niveau", "San_Tiefe", "geometry" | |
| # ] | |
| # return gpd.read_file( | |
| # "Warmebedarf_NRW.gdb", | |
| # layer="Raumwaermebedarf_ist", | |
| # engine="pyogrio", | |
| # use_arrow=True, | |
| # columns=cols, | |
| # bbox=_bbox_geom | |
| # ) | |