import arcpy import os arcpy.env.workspace = "C:/data/RAW" arcpy.Copy_management("Avion_komplet.gdb", "C:/data/Avion_komplet.gdb") #Vytvoření geodatabáze PRIPRAVA arcpy.CreateFileGDB_management("C:/data", "PRIPRAVA.gdb") # nastavení pracovního prostředí arcpy.env.workspace = r"C:/data/RAW/DATA50_RAW" arcpy.env.overwriteOutput = True # výběr vstupních SHP pro DATA50 in_features = ["BlokBudov.shp", "ElektrickeVedeni.shp", "LanovaDraha.shp", "SilniceDalnice.shp", "ZeleznicniTrat.shp", "Produktovod.shp"] out_location = "C:/data/PRIPRAVA.gdb" # změna složky na geodatbázi složka DATA50 arcpy.FeatureClassToGeodatabase_conversion(in_features, out_location) arcpy.env.workspace = r"C:/data/RAW/AOPK_DIBAVOD_RAW" # výběr vstupních SHP pro data AOPK a DIBAVOD in_features1 = ["OPVN.shp", "OPVZ.shp", "Zonace_velkoplosnych_zvlaste_chranenych_uzemi.shp", "Maloplosna_zvlaste_chranena_uzemi.shp"] # nástroj pro změnu složky na geodatabázi složka AOPK a DIBAVOD arcpy.FeatureClassToGeodatabase_conversion(in_features1, out_location) #NÁSTROJ BATCHPROJECT- ZMĚNA KOORDINAČNÍCH SYSTÉMŮ # --------------------------------------------------------------- # vytvoření geodatabáze PROJECT arcpy.CreateFileGDB_management("C:/data", "PROJECT.gdb") # určení pracovního prostředí pro BatchProject arcpy.env.workspace = r"C:/data/PRIPRAVA.gdb" # Vstupní data do nástroje input_features = ["BlokBudov" , "ElektrickeVedeni", "LanovaDraha", "SilniceDalnice", "ZeleznicniTrat", "OPVN", "OPVZ", "Zonace_velkoplosnych_zvlaste_chranenych_uzemi", "Maloplosna_zvlaste_chranena_uzemi", "Produktovod"]# seznam souborů # výstupní lokace out_workspace = "C:/data/PROJECT.gdb" # požadovaný koordinační systém ve formátu PRJ out_cs = 'C:/data/RAW/WGS 1984 Web Mercator (auxiliary sphere).prj' # nástroj pro změnu koordinačních systémů arcpy.BatchProject_management(input_features, out_workspace, out_cs) #vymazání dočasného úložiště pro tvorbu datbáze arcpy.Delete_management("C:/data/PRIPRAVA.gdb") #PRÁCE S ATRIBUTOVÝMI TABULKAMI # --------------------------------------------------------------- #nastavení pracovního prostředí arcpy.env.workspace = r"C:/data/PROJECT.gdb" #funkce k načtení všech souborů v geodatabázi fcList = arcpy.ListFeatureClasses() #cyklus for pro smazání všech nepotřebných polí v atributové tabulce for fc in fcList: arcpy.DeleteField_management(fc, ["SHAPE_Leng", "DATA50_K", "KOD", "ZMENA_G", "ZMENA_T", "PREKRYV", "DBID", "SHAPEAREA", "SHAPELEN", "OBJ_GID", "RZH_CJ", "RZH_DTM", "ZADATEL", "STUPEN", "AKT_OVER", "PLATNOST_D", "AKT_DTM", "ZDR_DTM", "RZH", "RZH_ID", "OBEC_NAZ", "OKRES_NAZ", "KRAJ_KOD", "KRAJ_NAZ", "ORP_NAZEV", "ORP_KOD", "AKT_POZN", "POZNAMKA", "PLOCHA", "RZH_URL", "PDF_ZDRJ", "STUP_OPVZ", "POVODI", "TOK", "VYHLASIL", "TYP", "OP_TYP", "IUCN", "ROZLH", "PLATNOST", "JMENO", "ROZL"]) # výběr neevidovaných silnic a následné smazání pomocí kurzoru fc = r"C:/data/PROJECT.gdb/SilniceDalnice" with arcpy.da.UpdateCursor(fc, "TYPSIL") as cursor: for row in cursor: if row[0] == ' ': cursor.deleteRow() # výběr 4. zón CHKO a následné smazání fc2 = r"C:/data/PROJECT.gdb/Zonace_velkoplosnych_zvlaste_chranenych_uzemi" with arcpy.da.UpdateCursor(fc2, "ZONA") as cursor: for row in cursor: if row[0] == 'IV': cursor.deleteRow() #vytvoření sloupců s atributy pro OPVZ a OPVN arcpy.env.workspace = r"C:/data/PROJECT.gdb" arcpy.AddField_management("OPVN", "KAT", "TEXT", "", "", "5") arcpy.CalculateField_management("OPVN", "KAT", '"""OPVN"""', "PYTHON") arcpy.AddField_management("OPVZ", "KAT", "TEXT", "", "", "5") arcpy.CalculateField_management("OPVZ", "KAT", '"""OPVZ"""', "PYTHON") #změna názvu sloupce Data50_P ve vrstvě SilniceDalnice arcpy.AlterField_management(r"C:/data/PROJECT.gdb/SilniceDalnice", 'Data50_P', 'TRIDA_SIL') #PROPOJENÍ POMOCÍ KLÍČŮ # --------------------------------------------------------------- #nastavení cest k souborům arcpy.env.workspace = r"C:/data/PROJECT.gdb" tables = arcpy.ListFeatureClasses()# funkce ListFeatureClass in_data = "C:\data\Avion_komplet.gdb/AKTUALIZACE.dbt" #cyklus for pro provedení procesu Join field pro každou vrstvu v geodatabázi for table in tables: try: arcpy.JoinField_management(table, "Data50_P", in_data, "trida", ["duvod", "vzdalenost"]) except: pass for table in tables: try: arcpy.JoinField_management(table, "TYPSIL", in_data, "trida", ["duvod", "vzdalenost"]) except: pass for table in tables: try: arcpy.JoinField_management(table, "KAT", in_data, "trida", ["duvod", "vzdalenost"]) except: pass #Join Field pro data z Avion arcpy.env.workspace = r"C:/data/AVION_komplet.gdb" in_data = "C:\data\Avion_komplet.gdb/AKTUALIZACE.dbt" tables = arcpy.ListFeatureClasses() for table in tables: try: arcpy.JoinField_management(table, "fclass", in_data, "trida", ["duvod", "vzdalenost"]) except: pass #vytvoření geodatabáze VYSLEDEK arcpy.CreateFileGDB_management("C:/data", "VYSLEDEK.gdb") #OBALOVÉ ZÓNY # --------------------------------------------------------------- #Buffer pro vrstvy z geodatabáze PROJECT arcpy.env.workspace = r"C:/data/PROJECT.gdb" fcs = ["ElektrickeVedeni", "LanovaDraha", "SilniceDalnice", "ZeleznicniTrat", "Produktovod"] for fc in fcs: arcpy.Buffer_analysis(fc, r"C:/data/VYSLEDEK.gdb/" + fc, "vzdalenost", "FULL", "ROUND", "NONE") #Buffer pro vrstvy z geodatbáze AVION arcpy.env.workspace = r"C:/data/Avion_komplet.gdb" fcs = ["Heliport", "Letiste_ATZ", "SLZ_Ultralight"] for fc in fcs: arcpy.Buffer_analysis(fc, r"C:/data/VYSLEDEK.gdb/" + fc, "vzdalenost", "FULL", "ROUND", "NONE") #Kopie souborů bez potřeby vytvoření obalové zóny v geodatabázi PROJECT import os arcpy.env.workspace = "C:/data/PROJECT.gdb" out_workspace = "c:/data/VYSLEDEK.gdb" fc_list = ["BlokBudov", "OPVN", "OPVZ", "Zonace_velkoplosnych_zvlaste_chranenych_uzemi", "Maloplosna_zvlaste_chranena_uzemi"] for fc_copy in fc_list: arcpy.CopyFeatures_management(fc_copy, os.path.join(out_workspace,fc_copy)) #Kopie souborů bez obolavé zóny v geodatabázi AVION arcpy.env.workspace = "C:/data/Avion_komplet.gdb" out_workspace = "c:/data/VYSLEDEK.gdb" fc_list = ["CTR", "LKD_OBLAST_nebezpecne", "LKP_OBLAST_zakazane", "TRA_Oblast", "TSA_Oblast"] for fc_copy in fc_list: arcpy.CopyFeatures_management(fc_copy, os.path.join(out_workspace,fc_copy)) #smazání vytvořených polí v atributové tabulce arcpy.env.workspace = r"C:/data/VYSLEDEK.gdb" #funkce k načtení všech souborů v geodatabázi fcList = arcpy.ListFeatureClasses() #cyklus for pro smazání všech nepotřebných polí v atributové tabulce for fc in fcList: arcpy.DeleteField_management(fc, ["BUFF_DIST", "ORIG_FID"]) #smazání nadbytečných geodatabází project = "C:/data/PROJECT.gdb" avion = "C:/data/Avion_komplet.gdb" arcpy.Delete_management(project, avion)