Spaces:
Sleeping
Sleeping
import gradio as gr | |
import subprocess | |
import os | |
import time | |
def run_script(script_name, *args): | |
command = ['python', script_name] + list(args) | |
start_time = time.time() | |
result = subprocess.run(command, capture_output=True, text=True) | |
end_time = time.time() | |
elapsed_time = end_time - start_time | |
if result.returncode != 0: | |
return f"Error running {script_name}: {result.stderr}" | |
else: | |
pass | |
def process_files(xml_file, output_path): | |
# Define file paths | |
bez_dict_file = "bez_dict.json" | |
flurstueck_shapefile = os.path.join(output_path, "flurstueck.shp") | |
nutzung_shapefile = os.path.join(output_path, "nutzung.shp") | |
nutzung_flurstueck_shapefile = os.path.join(output_path, "nutzungFlurstueck.shp") | |
gebauede_bauwerk_shapefile = os.path.join(output_path, "gebauedeBauwerk.shp") | |
verwaltungs_einheit_shapefile = os.path.join(output_path, "verwaltungsEinheit.shp") | |
kataster_bezirk_shapefile = os.path.join(output_path, "katasterBezirk.shp") | |
# Ensure the output directory exists | |
os.makedirs(output_path, exist_ok=True) | |
# Run scripts in the correct order | |
results = [] | |
results.append(run_script('flurstueck.py', xml_file, flurstueck_shapefile)) | |
results.append(f"Generated: {flurstueck_shapefile}") | |
results.append(run_script('nutzung.py', xml_file, bez_dict_file, nutzung_shapefile)) | |
results.append(f"Generated: {nutzung_shapefile}") | |
results.append(run_script('nutflu.py', flurstueck_shapefile, nutzung_shapefile, nutzung_flurstueck_shapefile)) | |
results.append(f"Generated: {nutzung_flurstueck_shapefile}") | |
results.append(run_script('guby.py', xml_file, gebauede_bauwerk_shapefile)) | |
results.append(f"Generated: {gebauede_bauwerk_shapefile}") | |
results.append(run_script('ver.py', flurstueck_shapefile, xml_file, verwaltungs_einheit_shapefile)) | |
results.append(f"Generated: {verwaltungs_einheit_shapefile}") | |
results.append(run_script('kat.py', flurstueck_shapefile, kataster_bezirk_shapefile)) | |
results.append(f"Generated: {kataster_bezirk_shapefile}") | |
results.append("CONVERSION COMPLETED") | |
return "\n".join(results) | |
# Create Gradio interface | |
iface = gr.Interface( | |
fn=process_files, | |
inputs=[ | |
gr.File(label="Input XML File"), | |
gr.Textbox(label="Output Path", placeholder="Enter the output directory path") | |
], | |
outputs="text", | |
title="NAS-ALKIS Conversion", | |
description="Upload an XML file and specify the output path to generate conversion." | |
) | |
# Launch the app | |
if __name__ == "__main__": | |
iface.launch(share=True) |