Viac

Arcpy ListFeatureClasses v rovnakom pracovnom priestore sa líši pri spustení z ArcMap VS IDLE


Toto funguje

Nasledujúci skript pythonu funguje pri pripájaní k môjmu serveru dev ArcGIS z okna pythonu ArcMap aj GUI/shellu IDLE python spusteného na mojej pracovnej stanici dev:

import arcpy arcpy.env.workspace = "Pripojenie k databáze/Pripojenie k 172.20.0.XX.sde" str (arcpy.ListFeatureClasses ("*"))

Tvorba: Vytlačí zoznam všetkých tried funkcií v Enterprise GeoDB


Toto NEFUNGUJE

Nasledujúci python skript, ktorý je rovnaký ako vyššie, ale okrem hodnoty env.workspace, NEFUNGUJE pri pripájaní k môjmu prod ArcGIS serveru z GUI/shellu IDLE python bežiaceho na tom istom serveri ArcGIS, ale Funguje z ArcMap okno pythonu na tomto serveri ...

Pri spustení z okna pythonu ArcMap 10.2.1:

import arcpy arcpy.env.workspace = "Pripojenie k databáze/Pripojenie k 172.20.0.XX.sde" str (arcpy.ListFeatureClasses ("*"))

Tvorba: Vytlačí zoznam všetkých tried funkcií v Enterprise GeoDB


Pri spustení z IDLE python GUI/shell:

import arcpy arcpy.env.workspace = "Pripojenie k databáze/Pripojenie k 172.20.0.XX.sde" str (arcpy.ListFeatureClasses ("*"))

Zlyháva: Vytlačí „Žiadne“


Používateľ systému Windows, s ktorým som prihlásený na server prod ArcGIS, je správca, ale jediné, s čím môžem prísť, je

Poznámky

Poznámka: Pri nastavovaní pracovného priestoru som vyskúšal všetky nasledujúce variácie:

  • arcpy.env.workspace = r "Pripojenie databázy Pripojenie k 172.20.0.49.sde"
  • arcpy.env.workspace = "Pripojenie databázy Pripojenie k 172.20.0.49.sde"
  • arcpy.env.workspace = "Pripojenie k databáze" + os.sep + "Pripojenie k 172.20.0.49.sde"
  • arcpy.env.workspace = os.path.join („Pripojenia k databáze“, „Pripojenie k 172.20.0.49.sde“)
  • Atď…

Odpoveď, ktorú som našiel včera a na ktorú PolyGeo odkazoval vo svojom komentári vyššie, bola použiť relatívnu cestu k sde namiesto relatívnej cesty. Stále nerozumiem, prečo IDLE GUI/shell nemôže používať relatívnu cestu, keď to môže okno python ArcMap.


CHYBA 000301: Pracovný priestor je nesprávneho typu

Tento skript nie je ani zďaleka dokonalý, ale zobrazuje sa mi veľmi podivné chybové hlásenie a dúfal som, že mi niekto pomôže problém vyriešiť. Ďakujem za Tvoj čas:

CHYBA 000301: Pracovný priestor je nesprávneho typu

import arcpy
import sys
import os
čas importu, dátum a čas
#import pyodbc
importovať spätné sledovanie

# Constant Vars
# Pripojenie k databáze
editDB = "Pripojenie k databáze/EdnaRoad_Admin.sde"
# Aktuálny deň
Deň = čas.strftime ("%m-%d-%Y", time.localtime ())
# Aktuálny čas
Čas = čas.strftime ("%I:%M:%S%p", time.localtime ())

# pyodbc.connect vars
#sqlsvrname = 'gisavglis'
#sqldbname = 'Arden'
loggingTableName = "dbo.PYTHON_SCRIPT_LOGGING"

# Nastaviť pracovný priestor
pracovný priestor = editDB

# Nastavte prostredie pracovného priestoru
arcpy.env.workspace = pracovný priestor
arcpy.env.overwriteOutput = True

def log_messages (názov skriptu, stav, kód chyby):
runDate = datetime.datetime.fromtimestamp (time.time ()). strftime ('%Y-%m-%d%H:%M:%S')
egdb_conn = arcpy.ArcSDESQLExecute (pracovný priestor)
sql = "INSERT INTO <4> (ScriptName, RunDate, Status, ErrorCode) VALUES ('<0>', '<1>', '<2>', '<3>')". format (scriptName, runDate , Status, ErrorCode, loggingTableName)
skús:
egdb_conn.startTransaction ()
print ("Pokus o spustenie príkazu SQL: <0>" .format (sql))
egdb_return = egdb_conn.execute (sql)
egdb_conn.commitTransaction ()
okrem výnimky ako chyby:
vytlačiť (chyba)
egdb_return = Nepravda

skús:
# Doba spustenia
vytlačiť 'Proces zahájený' + str (deň) + "" + str (čas)

# blokovať nové pripojenia k fungujúcej a produkčnej databáze.
vytlačiť „Blokovanie pripojení“.
arcpy.AcceptConnections (editDB, False)

# odpojte všetkých používateľov od pracovnej a výrobnej databázy.
vytlačiť „Odpojenie používateľov“.
arcpy.DisconnectUser (editDB, "ALL")

# Získajte zoznam všetkých verzií okrem QAQC a DEFAULT, ktoré prejdete do nástroja ReconcileVersions.
ver1List = [ver1.name pre ver1 v arcpy.da.ListVersions (editDB) if ver1.name! = 'DBO.Quality Control' a ver1.name! = 'dbo.DEFAULT']

# Spustite nástroj ReconcileVersions s cieľovou verziou QAQC a potom odstráňte všetky verzie okrem QAQC
vytlačiť „Zosúladiť/odoslať verzie na kontrolu kvality“.
arcpy.ReconcileVersions_management (editDB, "ALL_VERSIONS", "DBO.Quality Control", ver1List, "LOCK_ACQUIRED", "NO_ABORT", "BY_OBJECT", "FAVOR_EDIT_VERSION", "POST", ""))

# Extrahujte verziu QAQC zo zoznamu verzií, ktoré chcete odovzdať nástroju ReconcileVersions.
ver2List = [ver2.name pre ver2 v arcpy.da.ListVersions (editDB) if ver2.name == 'DBO.Quality Control']

# Spustite nástroj ReconcileVersions s DEFAULT cieľovou verziou a odstráňte verziu QAQC
vytlačiť „Zosúladiť/odoslať kontrolu kvality na VÝCHOZÍ“.
arcpy.ReconcileVersions_management (editDB, "ALL_VERSIONS", "dbo.DEFAULT", ver2List, "LOCK_ACQUIRED", "NO_ABORT", "BY_OBJECT", "FAVOR_EDIT_VERSION", "POST", "")

# Ak chcete zahrnúť všetky tabuľky do databázy, použite namiesto toho toto:
# pre tbs v arcpy.ListTables ():
# vytlačiť tbs
# arcpy.UnregisterAsVersinted_management (tbs, „NO_KEEP_EDIT“, „COMPRESS_DEFAULT“)

vytlačiť ("========================================= Začnite zrušiť registráciu tried funkcií /
tlač ("================================" *, "Funkcia")
pre množinu údajov v množinách údajov:
fcList = arcpy.ListFeatureClasses ("*", "", množina údajov)
pre fc vo fcList:
tlač fc
arcpy.UnregisterAsVersinted_management (fc, "NO_KEEP_EDIT", "COMPRESS_DEFAULT")

# Spustite nástroj na kompresiu.
vytlačiť „Komprimujúca databáza“.
arcpy.Compress_management (editDB)

okrem:
vytlačiť „Vyskytla sa chyba“
failMsg = ' nZRUŠENIE SKRIPTU V INICIATÍVE SKRIPTU ALEBO PROCESU RECONCILU POST, n'
failMsg += 'Najnovšie správy od praktického lekára nižšie. n'
failMsg += arcpy.GetMessages () +' n'
failMsg += ' nSpätné správy nižšie. n'
failMsg += traceback.format_exc (). delené čiary () [-1]
neúspešná tlač
#zapisujte informácie z denníka chýb
vytlačiť 'Chyba pri protokolovaní do databázy. '
# TÁTO SEKCIA CHYB PRI ZÁPISE DO TABUĽKY DB
log_messages ('ReconcilePost_AssetIDs_QAQC', 'Failure', failMsg)
sys.exit ()

# Ak chcete zahrnúť všetky tabuľky do databázy, použite toto:
# pre tbs v arcpy.ListTables ():
# vytlačiť tbs
# arcpy.RegisterAsVersinted_management (tbs, „NO_EDITS_TO_BASE“)

vytlačiť ("================================ registrácia triedy funkcií je spustená")
tlač ("================================" *, "Funkcia")
pre množinu údajov v množinách údajov:
fcList = arcpy.ListFeatureClasses ("*", "", množina údajov)
pre fc vo fcList:
tlač fc
arcpy.RegisterAsVersinted_management (fc, „NO_EDITS_TO_BASE“)


# vytvárať verzie
#print „Vytváranie verzií“.
#arcpy.CreateVersion_management (editDB, 'dbo.DEFAULT', 'QAQC', 'PRIVATE')
#arcpy.CreateVersion_management (editDB, 'DBO.QAQC', 'MICHAEL', 'PUBLIC')
#arcpy.CreateVersion_management (editDB, 'DBO.QAQC', 'KAREN', 'PUBLIC')
#arcpy.CreateVersion_management (editDB, 'DBO.QAQC', 'COLLECTOR', 'PUBLIC')

# POZNÁMKA: Znova zostavené indexy môžu akceptovať zoznam množín údajov v Pythone.

# Získajte zoznam všetkých množín údajov, ku ktorým má používateľ prístup.
# Najprv získajte všetky samostatné tabuľky, triedy funkcií a rastre.
dataList = arcpy.ListTables () + arcpy.ListFeatureClasses () + arcpy.ListRasters ()

# Ďalej, pre množiny údajov funkcií získate všetky množiny údajov a triedy funkcií
# zo zoznamu a pridajte ich do hlavného zoznamu.
pre množinu údajov v arcpy.ListDatasets ("*", "Feature"):
arcpy.env.workspace = os.path.join (pracovný priestor, množina údajov)
dataList + = arcpy.ListFeatureClasses () + arcpy.ListDatasets ()

# resetujte pracovný priestor
arcpy.env.workspace = pracovný priestor

# Spojte všetky množiny údajov do zoznamu
datasetList = [ds pre ds v dataList]

vytlačiť „prestavba indexov“
# Vykonajte obnovu indexov
# Poznámka: Ak chcete použiť možnosť „SYSTÉM“, používateľ pracovného priestoru musí byť správcom.
arcpy.RebuildIndexes_management (pracovný priestor, „SYSTEM“, datasetList, „ALL“)
vytlačiť ('Prestavba dokončená')

vytlačiť „analyzovanie množín údajov“
arcpy.AnalyzeDatasets_management (pracovný priestor, „SYSTEM“, datasetList, „ANALYZE_BASE“, „ANALYZE_DELTA“, „ANALYZE_ARCHIVE“)
vytlačiť „analýza dokončená“

#Nechajte databázu znova začať prijímať pripojenia
vytlačte „Nastaviť databázy tak, aby umožňovali pripojenia“.
arcpy.AcceptConnections (editDB, True)

vytlačiť 'Údaje boli úspešne synchronizované a zapísané do sledovacej databázy'


1 odpoveď 1

Funkcia arcpy.GetParameterAsText (#) načíta vstupný parameter z nástroja ArcGIS.

Počas skriptovania a ladenia je najjednoduchšie naprogramovať vstupné premenné funkcie na hardvér a overiť, či funkcia funguje. Keď je nástroj (v zásade) taký, ako ho chcete, vytvorte v ArcMapu nástrojovú sadu a skriptovací nástroj.

Ak chcete prijať vstupné parametre z dialógového okna spustenia nástroja, budete musieť vytvorte ich pri vytváraní skriptovacieho nástroja (a zmeňte kód tak, aby akceptoval vstupy GetParameterAsText). Najlepším návodom na to je skutočne centrum zdrojov ArcGIS.

V rámci skriptu Python zvyčajne najskôr si prečítajte vstupné parametre - tak sú k dispozícii ako premenné pre celý zvyšok skriptu. Hodnota indexu udáva, ktorý parameter je ktorý.


Existuje nástroj na prepočítanie rozsahov funkcií

Mám stovky súborov údajov o funkciách, ktoré majú nesprávne XY (neznámy dôvod, prečo), ale dúfam, že ušetrím čas automatizáciou stlačenia tlačidla „Prepočítať“, ako je uvedené nižšie:

Vie niekto o nástroji, ktorý môžem spustiť s iterátorom na spustenie v každej z mojich tried funkcií.

od XanderBakkera

V tomto vlákne Recalculate Extent jake ponúka niekoľko spôsobov, ako to urobiť (pre triedy funkcií sídliace v SDE a iných geodatabázach).

od NeilAyresa

Viete, prečo je to nesprávne?

Ste si istí, že niekde v dohľade nie je žiadna vata?

Vytvorenie priestorového indexu môže rozsah aktualizovať, ale nie ste si istí.

od DanPatterson_Re unavený

Neil má pravdu, ak pamäť slúži, bolo to riešenie problémov pri spracovaní na súboroch tvarov (myslím si, že preklad) sa neodrazili, kým sa neprepočítal index poľa tvaru.

A skontrolujte nastavenia svojho prostredia

od DougBrowning

Mal som 0,0 bodu. Vymazal som a rozsah stále nebude správne pripomínať. Skúsil som odstrániť priestorový index a stále sa to neprepočíta.

DB je súčasťou repliky, ale replikoval som niekoľkokrát.

Nejaké ďalšie nápady? Robí to na 3 FC.

V minulosti som mal také, ktoré som sa roky snažil opraviť, ale nikdy som ich nedostal. Ak exportujem do nového GDB, rozsah je správny.

od XanderBakkera

V tomto vlákne Recalculate Extent jake ponúka niekoľko spôsobov, ako to urobiť (pre triedy funkcií sídliace v SDE a iných geodatabázach).

Na triedu funkcií budete stále potrebovať exkluzívny zámok, ale mal by robiť presne to isté ako kliknutie pravým tlačidlom myši na funkciu prostredníctvom grafického používateľského rozhrania.

Ospravedlňujeme sa, mám lístok pomoci pre rovnakú vec a to je to, čo navrhli, ale práve som to skúsil a zdá sa, že nie sú k dispozícii do 10.4. Mali by byť k dispozícii každý deň.

Tiež zábavný fakt. Ak ide o geodatabázu Enterprise, zdá sa, že práve aktualizujete stĺpec tvaru v tabuľke GDB_Items.

Bolo by skutočne jednoduché aktualizovať túto tabuľku. ale pravdepodobne nejde o podporovaný pracovný postup. Aspoň viete, čo aktualizuje, a môžete to sledovať.

Mám napríklad veľa tried funkcií, ktoré nemajú informácie o rozsahu. Viem to nájsť podľa

od DanPatterson_Re unavený

pre verziu 10.4 áno. ale nie na 10,3 alebo predtým

Čísla verzií pomoci sú predvolene nastavené na 10.4

Áno, takže ak je možné dosiahnuť 10,4, môžete použiť nástroj arcpy. Teraz to používam. Je to trochu pomalé, ale práca je hotová.

Tu je nejaký kód, ktorý som vyrazil rýchlo. Prebehne cez každú triedu funkcií v pracovnom priestore a pre všetky vypočíta nové rozsahy.

Používam databázu Oracle bez súborov údajov. Všetky triedy funkcií sú najvyššej úrovne, takže si nie som istý, či to bude prechádzať množinami údajov. Malo by, ale nemal som to s kým testovať. Tiež filtrujem iba tabuľky, ktoré vlastní aktuálny používateľ (napr. Current_user.table_name). Môžete sa toho zbaviť na riadkoch 11 a 16. Nie som si istý, ako to všetko zvláda SQL Server.

Zdá sa tiež, že veľa chybuje, takže sa nekonečne opakujem, kým sa to nepodarí, aby to mohlo navždy zostať na zlej triede funkcií, ale zatiaľ som to neurobil. Len si uvedomte, že ak tlačí stále rovnakú triedu funkcií, je zaseknutý.


Piatok 25. októbra 2013

Geocoding Frac Sand Mines vo Wisconsine

Cieľ/cieľ

Toto laboratórium je rozšírením predchádzajúceho príspevku a jeho cieľom je ukázať ťažbu piesku frac v západnom Wisconsine prostredníctvom inej šošovky. Cieľom tohto laboratória bolo stiahnuť údaje z okresu Trempealeau z okresného webu. Konečným výsledkom tohto laboratória je geokódovaná mapa vytvorená v programe ArcMap a tabuľka programu Excel zobrazujúca vzdialenosti mojich bodov v porovnaní s inými geokódovanými mínami s rovnakou adresou ako mám.

1. Stiahnite si údaje zo záznamov Trempealeau County Land.
2. Stiahnite si aktualizovaný zoznam mín z Wisconsin Watch.
3. Pripojte sa k geokódovacím službám poskytovaným spoločnosťou ESRI.
4. Stiahnuté míny geokódujte na adresy, s ktorými sa spájajú.
5. Manuálne geokódujte míny systémom PLSS.
6. Porovnajte naše výsledky s našimi kolegami z triedy.

Metódy

Úvodnou časťou tohto laboratória bolo stiahnutie údajov z Trempealeau County z ich geodatabázy. Údaje sa potom použili v našom laboratóriu na koncentráciu na náš región v porovnaní so stavom. Kraj Trempealeau má jednu z najvyšších koncentrácií baní v západnom Wisconsine a údaje, ktoré boli zhromaždené, to ukázali. Ďalšou metódou použitou v tomto laboratóriu bolo stiahnutie údajov zo súboru nášho učiteľa, ktorý obsahoval aktualizované míny vo Wisconsine. Každý študent v našom kurze mal priradené jedinečné číslo, ktoré bolo vyplnené niekoľkými mínami. Potom boli míny normalizované v súbore Excel, aby bolo možné, že budú geokódované. Tabuľka bola potom vložená do ArcMap v súbore dbf. Niektoré adresy baní sa nezhodovali správne, takže ste ich mohli buď ručne zmeniť, alebo ísť s navrhovanou adresou oblúka. Po dokončení geokódovania trieda odoslala svoje geokódované údaje vo forme súboru tvarov do priečinka kurzu. Všetky údaje z shapefiles boli zlúčené pomocou zlučovacieho nástroja ArcToolboxu. Po geoprocese boli míny požiadané o nájdenie baní s rovnakým UNIQUE_ID ako v baniach, v ktorých bol každý jednotlivec pôvodne geokódovaný. Z vyhľadávaných baní sa potom vytvorilo vlastné zariadenie. Nakoniec bol použitý nástroj na určenie vzdialenosti bodov, aby sme zistili, ako ďaleko sú naše body od rovnakých mínových bodov našich kolegov.

Výsledky

Na nižšie uvedených obrázkoch môžete vidieť normalizované súbory programu Excel, súbory programu Excel s konečným súčinom vzdialeností a mapu baní vo Wisconsine. Na obrázku 1 boli adresy normalizované, aby sa uľahčilo geokódovanie. Údaje, ktoré nám boli poskytnuté, nám poskytli určité adresy alebo rady k adresám, ale neboli vo forme, ktorú by Arc mohol geokódovať. Obrázok 2 zobrazuje vzdialenosti a spôsob, akým môžu geokódovanie a manuálna normalizácia vytvárať rozdiely v bodoch, ktoré majú takmer rovnaké údaje. Nakoniec, obrázok 3 je mapa baní, ktoré som urobil, a tých, ktoré boli rovnaké ako moje.

Postava 1:

Vzdialenosti vyššie sú v kilometroch. Vzdialenosti zodpovedajú priestoru medzi mojimi bodmi a mojimi kolegami.

Diskusia

Keď sa pozrieme na obrázok 3, je veľmi zrejmé, ako môže manuálna normalizácia údajov medzi jednotlivcami vytvoriť v geokódovaných údajoch predel medzi vzdialenosťami. Vďaka ručnému umiestňovaniu adries na banské weby je pri geokódovaní takmer nemožné získať perfektne korelované body medzi kolegami. V budúcnosti mám teraz možnosť poznať účinnejšie spôsoby normalizácie údajov, najmä pri práci s ostatnými. Toto laboratórium mi tiež poskytlo znalosti o tom, ako pracovať s ostatnými a nájsť najlepší spôsob, ako normalizovať údaje tam, kde bude fungovať s údajmi všetkých. K inherentným aj prevádzkovým chybám dochádza bežne podľa Lo. Vrodené chyby sú chyby, ku ktorým dochádza pri vytváraní vašich údajov, zatiaľ čo prevádzkové chyby sú chyby, ku ktorým dochádza pri práci na vašich údajoch. Kvôli týmto chybám nemusia byť vaše údaje úplne správne a mali by byť veľmi starostlivo analyzované. Jedným z príkladov prevádzkovej chyby je, keď som svoju baňu umiestnil do určitého okresu, zatiaľ čo moji kolegovia ich umiestnili inde. V prípade, že by som údaje nepromítal v správnom súradnicovom systéme, v mojich údajoch by sa vyskytovali inherentné chyby.

Záver

Pri našom skúmaní fracských pieskových baní vo Wisconsine sme sa doteraz dozvedeli o tom, prečo sa piesok frac používa, ako sťahovať údaje z vládnych serverov a ako geokódovať adresy. Medzi ďalšie zručnosti, ktoré som získal z našich laboratórií, patrí schopnosť normalizovať údaje, navigovať v súboroch dbf, prevádzať súbory dbf na súbory exel, využívať užitočný online zdroj, porovnávať údaje s obrázkami atď. Ako pokračujeme v objavovaní ďalších informácií o udržateľnosť frac pieskových baní, do tohto blogu bude pridaných viac údajov.


1 odpoveď 1

Najprv nastavte iteráciu tried funkcií tak, aby sa v pracovnom priestore prechádzali všetkými vašimi triedami funkcií, čím sa budú kŕmiť jeden po druhom do vášho ďalšieho procesu, ale ak dáte ako ďalší krok vo svojom procese Zhromažďovať hodnoty, „zhlukuje“ všetky jednotlivé triedy funkcií do súdržného vstupu pre zlúčenie.

Tento pracovný postup vytvoril zlúčenú triedu funkcií z všetky triedy funkcií v pracovnom priestore Area11_14.


Moje prvé stretnutie s arcpy.da.UpdateCursor

Používam arcpy prerušovane za posledný rok a pol hlavne na automatizáciu a reťazenie dávkového spracovania, aby som si ušetril nespočetné hodiny opakovania. Tento týždeň som však musel implementovať aspekt arcpy že som ešte nemal príležitosť využiť – modul na prístup k údajom.

Scenár
Geodatabáza súborov so 75 triedami funkcií, z ktorých každá obsahuje stovky až tisíce funkcií. Tieto triedy funkcií boli výsledkom konverzií CAD (Bentley Microstation) na GIS prostredníctvom SjF s údajmi pochádzajúcimi z viac ako 50 súborov CAD. V dôsledku prevodu mohla každá trieda funkcií obsahovať prvky s rôznymi atribútmi z jedného alebo viacerých súborov CAD, ale každá trieda funkcií obsahovala rovnakú schému, ktorá bola užitočná.

Hlavným problémom bolo, že číslo verzie pre časť súborov CAD nebolo opravené. Je potrebné opraviť dve veci: i) atribút ‘REV_NUM ’ pre všetky triedy funkcií, ktoré musia byť ‘Ver2 ’, bude existovať mix ‘Ver1 ’ a ‘Ver2 ’, a ii) v súhrne ‘MODEL_SUMMARY ’, ak sa ‘Ver1 ’ nachádzalo kdekoľvek v texte, bolo potrebné ho nahradiť výrazom ‘Ver2 ’. Vyskytol sa ešte jeden problém, ktorý pramenil z vytvárania nových funkcií a ich nepripisovania. V poli ‘MODEL ’ (a ďalších poliach) by tak zostala hodnota ‘NULL ’. Všetky funkcie museli mať štandardizované atribúty. Skript ich neopraví, iba zvýrazní triedy funkcií.

Dobre, takže rýchla rekapitulácia …
1. Nastaviť ‘REV_NUM ’ pre každú funkciu na ‘Ver2 ’
2. Nájdite a nahraďte ‘Ver1 ’ za ‘Ver2 ’ v textovom reťazci ‘MODEL_SUMMARY ’ pre všetky funkcie.
3. V poli ‘MODEL ’ vyhľadajte všetky triedy funkcií, ktoré majú ‘NULL ’.

Scenár
Pozrime sa na trinásť riadkov kódu potrebných na dokončenie misie.

Rozpis
Importujte súbor arcpy knižnica (potrebujete ArcGIS nainštalovaná a platná licencia na používanie)

Nastavte cestu pracovného priestoru k príslušnej geodatabáze súborov

Vytvorte zoznam všetkých tried funkcií v rámci geodatabázy súborov.

Poznáme názvy polí, ku ktorým chceme mať prístup, a preto ich pridáme do zoznamu.

Pre každú triedu funkcií v geodatabáze chceme získať prístup k atribútom každej funkcie pre príslušné polia.

Ak má atribút ‘MODEL ’ hodnotu reťazca None (NULL) alebo prázdny, vytlačte na obrazovku názov triedy funkcií. Hneď ako sa jeden nájde, môžeme vyraziť a prejsť do ďalšej triedy funkcií.

Vieme, že existuje zoznam tried funkcií, pomocou ktorých môžeme atribúty opraviť ručne.

Ďalej nájdeme ľubovoľný prípad ‘Ver1 ’ v ‘MODEL_SUMMARY ’ textových reťazcoch a nahradíme ho ‘Ver2 ’ ….

…a aktualizovať všetky ‘REV_NUM ’ atribúty na ‘Ver2 ’ bez ohľadu na to, čo už je priradené. Je to ako používať Poľná kalkulačka aktualizovať.

Vykonajte a potvrďte vyššie uvedené aktualizácie pre každú funkciu.

Je veľmi praktické aktualizovať potrebné údaje a tento skript je určite možné rozšíriť tak, aby zvládal zložitejšie operácie pomocou súboru arcpy.da.UpdateCursor modul.


Arc Python v ArcGIS 10.1

  1. Balíček stránok, ktorý do Pythonu pridáva funkciu ArcGIS
  2. Prístup k bohatej súprave nástrojov na geoprocesing
  3. Funkcie, triedy a moduly
  4. Pomocné funkcie ako ListFeatureClasses, Describe
  5. Triedy, ktoré je možné použiť na vytváranie komplexných objektov, ako sú priestorová referencia, mapa polí
  6. Moduly, ktoré poskytujú špecializované funkcie ako Mapping, SpatialAnalyst, NetworkAnalyst, DataAccess

Export triedy funkcií do formátu CSV


Záleží na tom, či sú triedy funkcií v geodatabáze súborov rôznymi údajmi a projekciami? Môžem zmeniť súradnicový systém pre každú triedu funkcií v geodatabáze súborov naraz? Je možné nastaviť relatívne cesty pre celý model?

Vytvoril som geodatabázu súboru pre projekt v nástroji na tvorbu modelov a myslel som si, že som geodatabázu nastavil na konkrétny súradnicový systém, ale niektoré triedy funkcií majú vo vlastnostiach rôzne systémy. Zdá sa, že všetko v mojom projekte je pekne zoradené a nemám žiadne problémy. Je dôvod sa tým znepokojovať?

Pri skúmaní tohto som tiež našiel odporúčaný súradnicový systém (systémy) pre môj štát na základe mierky a chcel by som zmeniť svoju databázu a konečný súbor .mxd na jeden z týchto systémov, ak je to možné.

Nakoniec sa musím podeliť o svoj model s niekoľkými rôznymi ľuďmi a zaujímalo by ma, či existuje spôsob, ako nastaviť relatívne cesty pre všetky parametre v modeli. Týmto spôsobom nepotrebujú zmeniť všetky cesty sami.


Niekoľko myšlienok k testovaniu v GIS: časť 1

Prekvapuje ma, že pri hľadaní testovania GIS na internete nedosiahnete veľa relevantných výsledkov. Testovanie je základnou súčasťou akéhokoľvek odvetvia GIS v oblasti IT systémov alebo pracovných tokov, zdá sa však, že testovanie neberie vážne. Je úplne bežné, že mnohé organizácie majú zle definované plány testovania alebo ich nemajú vôbec. Je to niečo, čo môže byť čiastočne kvôli pozadiu, ktoré môžu mať ľudia hrajúci úlohu správcov GIS. Takáto osoba môže byť samouk geograf, ktorý vykonáva povinnosti analytika GIS, na tom nie je nič zlého, ale bez riadneho porozumenia operáciám IT existuje veľká šanca, že len niektoré ad hoc rýchle testy integrity údajov a dymu sa vykonávajú testy výrobných údajov a pracovných tokov. Bez toho, aby mala a dodržiavala prísny plán testovania GIS, sa však organizácia vystavuje veľkému riziku: nesprávny pracovný tok GIS alebo nekonzistentné množiny údajov môžu viesť k nesprávnej interpretácii výsledkov analýzy GIS a môžu mať aj finančný vplyv, ak by chyby údajov viedli k priamemu straty zisku.

V tejto sérii príspevkov by som chcel štruktúrovať niektoré z osvedčených postupov testovania GIS, ktoré som za tie roky zozbieral. Pevne verím, že rozvoj solídnej metodiky testovania GIS je zásadný pre úspech akejkoľvek organizácie v odvetví GIS. V stratégiách návrhu systému od spoločnosti Esri je k tomu vyhradená časť.

Aby som bol konkrétnejší, rád by som testovanie GIS rozdelil do niekoľkých dosť nezávislých tém. Začnime klasifikáciou týchto tém.

Testovanie softvéru GIS

Tento druh testovania znamená, že chceme overiť, či softvér GIS funguje správne a či je možné úspešne vykonávať operácie, ktoré prinášajú očakávané a správne výsledky.

Bez ohľadu na pôvod softvéru GIS –, či už ide o komerčný produkt, program s otvoreným zdrojovým kódom alebo interný systém a#8211, chceme zaistiť, aby s novým vydaním naďalej bežali zavedené pracovné postupy. normálne a predtým vyriešené problémy sa nevyskytnú. To znamená, že by nemalo dochádzať k aktualizácii softvéru bez overenia, že zavedené pracovné postupy budú naďalej fungovať. Môžete si myslieť, že predajca softvéru by sa o to mal postarať a overiť, či sa správanie programu s novým vydaním nezmení. Skutočne nie je potrebné testovať všetky funkcie a funkcie softvéru, ale pred aktualizáciou vašich výrobných strojov je nevyhnutné prejsť všetkými vašimi pracovnými tokmi v postupnom prostredí. Určitá funkcia alebo nástroj, ktorý je súčasťou väčšieho procesu, môže byť zastaraný alebo upravený, čo môže narušiť váš pracovný postup.

Toto môže znieť ako regresné testovanie, ak overíte, že sa predtým existujúce problémy, ktoré boli vyriešené v predchádzajúcom vydaní, v nasledujúcom vydaní znova nezobrazia. Ide však aj o to, aby ste sa uistili, že veci, ktoré fungovali v predchádzajúcom, budú naďalej fungovať aj v novom vydaní a pracovné postupy sa dajú úspešne vykonať. Samozrejme, ak váš úspech pracovného toku závisel od opravy chýb alebo opravy v predchádzajúcej verzii, bolo by vhodné preskúmať, či tento problém nemožno v novom vydaní znova reprodukovať.

Na softvérovom alebo skriptovacom rámci, ktoré sa používa na spustenie testov, nezáleží - pokiaľ ich dokážete spustiť automatizovane a naplánovať beh.

Testovanie údajov GIS

Dátové súbory GIS sú pravdepodobne jedným z najcennejších aktív, ktoré môže organizácia mať, a preto je zásadne dôležité, aby boli priestorové údaje presné, topologicky správne a konzistentné.

Existuje nekonečné množstvo obchodných pravidiel, ktoré môže organizácia presadzovať vo svojich údajoch GIS. Niektoré z nich môžu byť pre organizáciu jedinečné, ale väčšina ostatných bude relevantná pre každú organizáciu, ktorá používa GIS na zber, správu alebo analýzu údajov.

Všeobecné pravidlá často súvisia s geografickými pravidlami vynútenými realitou a zdravým rozumom. To znamená, že bodové prvky v triede funkcií Školy sa nikdy nemusia nachádzať geograficky v rámci funkcie jazera z triedy prvkov Jazier, počet pruhov pre cesty nemôže byť negatívny a obmedzenia rýchlosti na cestách by pravdepodobne nemali prekročiť určitú hodnotu. Je na vás a vašej organizácii, aby ste definovali tieto obchodné pravidlá, ktoré musia vaše údaje GIS dodržiavať.

Ak ste používateľom ArcGIS, existuje skvelé rozšírenie s názvom Data Reviewer. To vám umožní definovať tieto druhy pravidiel veľmi pohodlným spôsobom. Je to skvelý nástroj pre QA/QC, ktorý som používal v posledných rokoch. Pozrite sa na kurz Esri vedený inštruktorom o QA/QC pre údaje GIS. Ak k tomu nemáte prístup, môžete zvážiť vytvorenie vlastných testov založených na rámci geoprocesingu v ArcGIS s využitím modelov ModelBuilder alebo Python. Majte na pamäti, že je možné publikovať služby ArcGIS for Server na základe dávkových úloh Data Reviewer, kde každá úloha predstavuje skupinu kontrol. Budete môcť spúšťať svoje skripty plánovaným spôsobom (povedzme každú polnoc) a k dispozícii je dokonca aj miniaplikácia Kontrola údajov pre Web App Builder, vďaka ktorej je overovanie údajov vykonávané operátormi GIS veľmi efektívne a intuitívne. Tím Esri Data Reviewer odvádza vynikajúcu prácu, je to skvelý softvér, ktorý poskytuje bohaté rozhranie na automatizáciu vašich pracovných tokov údajov GIS QA/QC. K dispozícii je tiež bezplatný školiaci seminár Esri o používaní rozšírenia Data Reviewer, ktorý stojí za zváženie.


Pozri si video: Change Projection - Coordinate System in ArcMap (Október 2021).