geologyidea.com
Viac

Zabráňte arcpy. Ak sú údaje pre pole príliš dlhé, zobrazí sa zlyhanie

Zabráňte arcpy. Ak sú údaje pre pole príliš dlhé, zobrazí sa zlyhanie


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.


Pripájame kopu informácií z databázy niekoho iného do našej. Veľa z nich sú textové informácie a zdá sa, že pôvodná databáza nemá veľké obmedzenie dĺžky týchto reťazcov. Náš bol nastavený do veľkej miery s predvolenými limitmi 50 pre textové polia.

Takže prirodzene niekedy zlyhá import, čo spôsobí chybu ako:

ExecuteError: ERROR 001156: Zlyhanie na vstupe OID 69838, do výstupného poľa sa nepodarilo zapísať hodnotu „James Island - nie je uvedené ďalšie rozdelenie, žiadna značka“
Zlyhalo vykonanie (Pripojiť).

ROZDELENIEmôže mať 50 znakov a ArcPy sa pokúsil vložiť 51 znakov, a tak zlyhal a havaroval.

Krátko po zvýšení dĺžky všetkých textových polí našej databázy (čo sa zdá, že to bude fungovať skvele, kým nenarazím na ďalší superdlhý reťazec, ktorý presahuje novo rozšírený limit), existuje elegantný spôsob riešenia takýchto prípadov a stále si údaje pridať? Inými slovami, existuje spôsob, ako povedať funkcii Append, že by som chcel, aby iba skrátil reťazce, ktoré sa nezmestia (ideálne pri hodení správy, ktorá mi dáva vedieť, že sa to stalo)?


Nie som s ním príliš oboznámený arcpy.append ale myslím, že by si mohol iterovať cez svoju množinu údajov predtým použitím pridať a skrátiť všetky záznamy, ktoré sú príliš dlhé.

Na iteráciu vášho súboru údajov by ste museli použiť UpdateCursor a potom by ste skontrolovali dĺžku každého záznamu pomocou len (). Ak dĺžka presahuje 50 znakov, nasekali by ste ju.

Kód by vyzeral takto:

yourFC = "pathToYourFeatureClass" fields = ('toBeChecked') s arcpy.da.UpdateCursor (yourFC, polia) ako kurzor: pre riadok v kurzore: if len (riadok [0])> 50: longEntry = riadok [0] riadok [ 0] = longEntry [: 50] cursor.updateRow (riadok)

(Momentálne to nemôžem otestovať a zapisujem z pamäti; možno budete musieť urobiť malé úpravy; zajtra to môžem otestovať)

To priamo nezmení nič na vašom pridať kód, ale určite by to zabránilo zlyhaniu. Áno, jeho spustenie môže chvíľu trvať, v závislosti od toho, aký veľký je váš súbor údajov, ale nakoniec to bude trvať kratšie ako rozčuľovanie sa nad havarovaným nástrojom :-)

Ak sa rozhodnete pre toto, nezabudnite, že by ste mali zavolať kurzor z modulu Data Access, napríklad arcpy.da.SearchCursor, pretože je oveľa rýchlejší ako pôvodný kurzor!

UPRAVIŤ:
Práve som mal možnosť otestovať útržok kódu, ktorý som zverejnil včera večer, a funguje to dobre.

Na ilustráciu slúži táto tabuľka:

Premení sa na toto:


Ak pri použití nástroja na pridanie pomocou grafického používateľského rozhrania použijete pre typ schémy možnosť „NO_TEST“, môžete použiť ovládací prvok Field map. Rozbaľte strom mapy poľa pre textové pole, s ktorým máte problémy, a uvidíte uzol pre každú vstupnú množinu údajov. Ak kliknete pravým tlačidlom myši na každý uzol a kliknete na formát, získate možnosti, ako určiť začiatočnú a konečnú pozíciu toho, čo budete čítať z tohto vstupného poľa. Ak váš cieľový súbor údajov prijme iba 50 znakov, nastavte koncovú pozíciu na 50 znakov a mali by ste byť v poriadku.

Používate však arcpy. Dalo by sa hodiť append do modelu a exportovať model do python skriptu, ale argument mapovania poľa skončí s veľkým dlhým reťazcom. Ak je váš pracovný tok statický, môžete reťazec manuálne upraviť a to by malo fungovať. Ak sú údaje, ktoré pripájate, trochu dynamickejšie, možno budete musieť programovo zostaviť svoje mapovanie poľa. Pozrite si témy pomocníka arcgis pre FieldMapping a FieldMap. FieldMap má volanie metódy setEndTextPosition, ktoré by bolo ekvivalentom toho, čo som popísal v GUI.

Nie som si istý, akú verziu aplikácie arcgis používate, ale moja kópia aplikácie arcgis je trochu stará na 10.0 vďaka IT mojej spoločnosti, takže témy pomoci, na ktoré som odkazoval, sú pre 10.0. Nezabudnite pre svoju verziu použiť tému pomocníka.


Týka sa to odpovede @ BritishSteel a ich kódu.

Používanie kurzora a tohto podrobného kódu sa zdá byť pre toto trochu prehnané.

Ak chcete iba skrátiť pole na 50 znakov pre všetky záznamy / funkcie, stačí použiť nástroj CalculateField (alebo v skripte arcpy.CalculateField_Management).

To nakoniec bude skriptom jednej linky! Niečo ako…

arcpy.CalculateField_management (featureClass, "FIELD_NAME", "'! FIELD_NAME! [: 50]'", "PYTHON_9.3")

Ale odpoveď @ MWrenn o použití možnosti vstavaného formátu nástroja Append na čítanie iba niekoľkých prvých znakov poľa je ešte lepšia. Týmto spôsobom nemusíte upravovať všetky svoje zdrojové údaje.


Zrušil by som funkciu „each“ v prospech slučky for, pretože je rýchlejšia. Tiež by som pridal nejaké čakania pomocou „setTimeout“, ale iba každé tak často a iba v prípade potreby. Nechcete zakaždým čakať 5 ms, pretože potom by spracovanie 3 500 záznamov trvalo asi 17,5 sekundy.

Ďalej uvádzame príklad použitia cyklu for, ktorý spracováva 100 záznamov (môžete ich doladiť) v intervaloch 5 ms, čo dáva réžiu 175 ms.

Tiež by som porovnal rôzne časti spracovania xml, aby som zistil, či niekde nie je úzke miesto, ktoré by sa dalo opraviť. Môžete porovnávať vo Firefoxe pomocou profilovača Firebug a vypísaním na konzolu takto:

Nastavte timeOut medzi spracovaním, aby cyklus cyklu nevyčerpal všetky zdroje prehľadávača. Celkovo by spracovanie a prepracovanie všetkého trvalo iba pár sekúnd, čo je pre 3 500 prvkov nerozumné.

Zvážil by som prevedenie 3 500 prvkov z xml na stranu servera JSON alebo ešte lepšie nahranie na server prevedený, aby bol natívny pre JS z getga.

Takto by sa minimalizovalo vaše načítanie a tiež by sa zmenšila veľkosť súboru.

môžete setTimeout () s trvaním NULA a prinesie sa podľa želania

S rámcom Turboid sú možné dlhé slučky bez zmrazenia prehľadávača. Pomocou neho môžete napísať kód ako:

Viac podrobností v tomto článku na stránke turboid.net: Skutočné cykly v jazyku Javascript

Javascript je jednovláknový, takže okrem setTimeout nie je toho veľa, čo môžete urobiť. Ak je pre vaše stránky možné použiť Google Gears, poskytujú možnosť spúšťať javascript v skutočnom vlákne na pozadí.

Môžete použiť API pracovníkov HTML5, ale to bude fungovať iba v bankomatoch Firefox 3.1 a Safari 4 beta.

Mal som rovnaký problém, aký sa vyskytoval, keď používateľ stránku obnovoval postupne. Dôvodom boli dve vnorené slučky, ktoré sa stali viac ako 52 000-krát. Tento problém bol vo Firefoxe 24 tvrdší ako v Chrome 29, pretože Firefox by sa zrútil skôr (asi o 2000 ms skôr ako Chrome). To, čo som jednoducho urobil, a fungovalo to bolo, že som používal slučky „pre“ namiesto každej a potom som upravil kód tak, že som celé pole slučiek rozdelil na 4 oddelené hovory a výsledok som potom spojil do jedného. Toto riešenie preukázalo, že fungovalo.

Ďalším riešením, ktoré pre mňa tiež fungovalo, bolo rovnaké riešenie implementované s rozhraniami Worker API z HTML5. Používajte rovnaký koncept u pracovníkov, pretože sa vyhýbajú zmrazeniu prehľadávača, pretože sú spustené na pozadí vášho hlavného vlákna. Ak iba použitie tohto s Workers API nefungovalo, umiestnite každú z inštancií loopForSubset do rôznych pracovníkov a zlúčte výsledok do hlavného volajúceho Worker.

Myslím, že to nemusí byť dokonalé, ale toto fungovalo. Môžem pomôcť s reálnejšími blokmi kódu, ak si niekto stále myslí, že by mu to mohlo vyhovovať.


12 odpovedí 12

moja chyba opravená odstránením priečinka build (vo vnútri systému Android / aplikácie) a spustením

Názov svojej aplikácie nájdete v súbore package.json pod poľom názvu.

Tiež pri hľadaní chýb, ktoré sa konkrétne týkajú reagovania natívnych, skúste spustiť

Týmto spôsobom nemusíte skenovať celý protokol.

Na svojom počítači so systémom Linux som mal spustený projekt Android, potom som na ňom urobil nejaké zmeny v počítači so systémom MacOS a keď som git stiahol projekt de späť do systému Linux, čelil som zlyhaniu

v priečinku Android stačí spustiť:

a potom to skúste spustiť znova.

Moja aplikácia RN predtým fungovala správne, náhle jedného dňa nefunguje, neustále havaruje bez protokolu chýb. Všetko, čo musím urobiť, je: odstrániť priečinok build a .gradle v priečinku Android, potom znova spustiť, funguje to. Dúfam, že to niekomu môže pomôcť.

Môže to byť spôsobené tým, že SOLoader chýba.

sa pridáva pod závislosti v android / app / build.gradlle

vyčistite svoje zostavenie cd android ./gradlew čisté

Skúste zoskupiť ./gradlew bundleUvoľniť

Skúste spustiť npx react-native run-android --variant = release

môj problém vyriešili dva ľahké kroky.

otvorte android studio a odstráňte offline balík zo src / main / assest .. (** ak existuje) otvorte MainApplication.java a odstráňte nasledujúci import .. import com.facebook.react.BuildConfig

Mal som rovnaký problém, možno ste urobili rovnaké chyby ako ja.

Uistite sa, že ste nezmenili názov balíka aplikácie (napr. Com.myapp.app).

Stratil som tým veľa času. Zdá sa, že niekto iný zverejnil aplikáciu s rovnakým názvom v službe Google Play a ja som ju na svojom mieste, kde by som mal, správne nezmenil.


V MySQL Workbench sa pomocou & ldquoTable Sprievodcu importom dát & rdquo na import súboru CSV vytvorí prázdna tabuľka

Pokúšam sa importovať súbor CSV do tabuľky MySQL pomocou Sprievodcu importom údajov tabuľky. Vzorová časť v dolnej časti obrazovky Konfigurovať nastavenia importu vyzerá dobre a po spustení importu sa zobrazuje, že všetky moje položky boli úspešne načítané. Keď si však idem pozrieť obsah tabuľky, sú tam iba stĺpce a nenačítajú sa žiadne moje skutočné údaje. Vie niekto, prečo sa to môže stať a ako to napraviť?

Toto je niekoľko riadkov z môjho súboru CSV:

STATION, STATION_NAME, ELEVATION, LATITUDE, LONGITUDE, DATE, MLY-TAVG-NORMAL, MLY-TMAX-NORMAL, MLY-TMIN-NORMAL, priemerná teplota, maximálna teplota, minimálna teplota GHCND: USW00094085, PIERRE 24 S SD US, 647,4, 44.0194, -100.353,201001,218,322,113,21,8,32,2,11,3 GHCND: USW00094085, PIERRE 24 S SD USA, 647,4,44.0194, -100,353,201002,246,354,137,24,6,35,4,13,7 GHCND, USW000940 647,4,44,0194, -100,353,201003,339,451,226,33,9,45,1,22,6 GHCND: USW00094085, PIERRE 24 S SD USA, 647,4,44.0194, -100,353,201004,463,588,337,46,3,58,8,33,7 GHCND: USW00094085, USA, 647,4,44,0194, -100,353,201005,573,696,450,57,3,69,6,45

Tu je niekoľko obrázkov procesu importu:

A tu je to, čo vidím, keď sa pokúšam zobraziť novo vytvorenú tabuľku:


9 odpovedí 9

Mali by ste byť schopní spustiť kompaktnú funkciu z vášho kódu VBA.

Nižšie uvedený úryvok som mal záložku z dávnej minulosti, keď som robil prácu s prístupom.

Môžete to vložiť do svojho kódu, aby ste to obišli.

POZNÁMKA: Ak máte tieto typy problémov so škálovaním, môžete tiež uvažovať o rozšírení na väčší systém db.

S akými veľkosťami máte do činenia? Aký je chybový kód pri páde? Bol by som prekvapený, keby to bolo jednoducho preto, lebo ten súbor je „príliš veľký“, ale myslím si, že existuje nejaký limit. Z vášho popisu všetkých dočasných vecí znie, že môžu existovať vylepšenia dizajnu, ktoré by vám mohli pomôcť.

EDIT: Očakávam, že si uvedomíte, že nie je triviálne nahrádzať databázu niečím iným - aj keď sa pokúsite okrem tabuliek uchovať čokoľvek iné v mdb. Access querydefs sú jedinečné, Access SQL je neštandardný a v podstate by ste začínali odznova.

Väčšina aplikácií Access, ktoré som videl, má veľa príležitostí na refaktoring a zvyčajne to nie je také ťažké, ak a) rozumieš logike a obchodným pravidlám ab) dobre rozumieš programovaniu v Accesse. To by však viac-menej platilo pre akékoľvek alternatívy. Keby som bol na vašom mieste a ste v oboch oblastiach trochu málo, možno by vám mohla pomôcť. Najprv by som sa však pokúsil zachrániť aplikáciu Access.

Z iného plagátu tiež existuje návrh na presunutie tabuliek do jedného alebo viacerých pripojených MDB. To je všeobecne solídna a osvedčená technika. Najskôr by som však dostal vysvetlenie, čo je skutočnou príčinou problému.

Presunul by som dáta do MS SQL (permanentné dáta a prechodné tabuľky) a časť kódu v MS Access môžete zatiaľ nechať.

Toto rieši dva veľké problémy:

  1. Dáta budú vo svojej podstate stabilnejšie / spoľahlivejšie (neviem vám povedať, koľkokrát som mal poškodenú databázu MS Access).
  2. Vaša databáza Access sa nebude veľmi zväčšovať / meniť (mala by dosiahnuť rovnováhu po spustení a kompilácii celého kódu).

Oboje znamená, že už nemusíte komprimovať alebo opravovať databázu, môžete získať bezplatnú verziu (Express Edition) MS SQL a nie je to také ťažké urobiť.

Ak nechcete prepnúť na SQL Express alebo podobný program, môžete kopať nasledujúce nápady:

  • Otvorte ďalšiu „externú“ prístupovú databázu (súbor mdb) pre všetky dočasné tabuľky, aby ste mohli do externého súboru vložiť všetky dočasné údaje a po zatvorení aplikácie súbor mdb vyhodiť. Potom vo svojom kóde budete manipulovať s objektom 'currentDb' a inou databázou, ktorú vytvoríte pri štarte a ku ktorej sa pripojíte prostredníctvom spojenia jet, OLEDB alebo ODBC.
  • Oddeľte svoje trvalé tabuľky od kódu a v prípade potreby preneste údaje do miestneho rozhrania klienta, aby ste vytvorili dočasné tabuľky. To je možné urobiť napríklad prepojením externej databázy s lokálnym / klientským súborom pomocou „DoCmd.transferDatabase acLink“. To možno vykonať aj pripojením k trvalým údajom prostredníctvom pripojenia OLEDB, otvorením potrebných záznamových súborov a lokálnym uložením ako súbory XML. Tu je možné implementovať mnoho ďalších riešení.

Stav vecí, pokiaľ ide o veľkosť súborov Jet, je pre mňa nekonečne problematický.

Momentálne sledujem kúsok svojho vlastného kódu VBA z databázy Accessu A, pretože robí sériu polí s jedným záznamom aktualizácie použitie ADO na tabuľku v databáze Access B (prostredníctvom odkazu na aktualizovateľný dotaz v databáze A). Jedno pole je CHAR (8). S každou ďalšou aktualizáciou 4 rastie databáza B asi o 8 kB. Žiadna dobrá výhovorka. Prírastok veľkosti súboru v tomto smere výrazne spomaľuje výkon s každým pribúdaním súborov. Aktualizácie sa pomaly zvyšujú z približne jednej za sekundu (v tabuľke približne 30–40 000 záznamov pomocou vyhľadávania pomocou jedného záznamu SQL a bez indexov kdekoľvek) na jednu za 5–10 sekúnd. Teraz, pripúšťam, som vykonal kompaktizáciu / opravu databázy B pred spustením tohto aktualizačného kódu, možno keby som to neurobil, výkon by nebol taký zlý. Keby bolo cieľové pole pre aktualizáciu povedzme typu Memo, potom by som to čakal. Ale vykonať aktualizáciu poľa CHAR () a získať tento výsledok nie je jednoducho rozumné.

Väčšina z vyššie uvedených (nijaká konkrétna kritika pre konkrétne riešenie nie je zamýšľaná) sa javí ako platné riešenie pre aplikácie, ktoré využívajú relatívne trvalé usporiadanie podnikových aplikácií (neustále hovorte s rovnakými cieľovými databázami). Môj nie je taký. . . Cieľovú databázu (databázu B) nemôžem zmeniť, pretože je generovaná a spotrebovaná nástrojom dodávateľa, ktorý používame na export a import údajov z ich aplikácií.

Rozumiem a odporúčam uvedeným autorom, že prišli s riešením problémov používateľov. Nemôžem to však nechať stáť, keď chudobný softvérový dizajn / implementácia prekáža používateľom pri používaní produktu v podobe, v akej ho očakávajú.


Nájdenie ťažiska medzi dvoma bodmi

Ahoj, mám veľmi veľkú množinu údajov, ktorá obsahuje dve sady šírky / dĺžky. Jedna sada lat / long je pre začiatočný bod a druhá pre koncový bod konkrétnej udalosti. Čo musím urobiť, je nájsť ťažisko každého začiatočného a koncového bodu pre každý riadok (udalosť) nájdený v množine údajov, v každom zo 6 hárkov pre tento konkrétny projekt sa nachádza viac ako 26 000 riadkov.

Znie to, akoby ste to dokázali aj bez pytóna. V tabuľke môžete vytvoriť dve nové polia pre stred Lat a Long a na výpočet hodnôt použiť poľnú kalkulačku.

Ak by ste radšej používali python, mohli by ste urobiť niečo také.


Môžu byť užitočné, ak sa rozhodnete pre cestu python.

od DanPatterson_Re unavený

Ahoj Jane, zverejňujem úryvok jazyka Python. veľmi základné veci, žiadne zachytávanie chýb, ale je ľahké ho upraviť tak, aby sa z neho stal skriptový nástroj, ako uznáte za vhodné. Myslím si, že je dobré najskôr uverejniť aspoň „ukážkový kód“, aby ste ukázali myšlienku alebo techniku, a potom ju v prípade potreby vylepšite.

Nie som si istý parametrami projekcie - veľmi zaujímavá téma a veľmi dôležitá pre správne nastavenie. Zmeňte prosím tieto parametre, aby ste zlepšili svoje výsledky.

Toto jednoducho načíta program Excel pre dáta, ktoré sú definované (iba pomenované rozsahy), vytvorí viacnásobnú udalosť xy pomocou poľa a triedy viacerých bodov. Trik, ktorý nemusí byť hneď zrejmý, spočíva v tom, že je potrebné komentovať 5 riadkov, ak nechcete 'premietnuť' centroidy vypočítané pred premietnutím. bolo ľahké to nechať v súvislosti s komentárom Dana Pattersona o chybe spojenej s nájdením skutočného centra. Je to oveľa zložitejšie z hľadiska súradnicových systémov a transformačných metód, ako sa spočiatku môže zdať. . prečo bolo opodstatnené porovnanie. S týmito údajmi pravdepodobne nemôžete určiť nič presvedčivé, ale existujú rozdiely v 2 súboroch údajov (pozrite si priložený zip, obsiahnutý gdb - skript je uvedený nižšie aj na účely prezerania):

multipointPCS_1 (projektovaný výsledok GCS, ťažisko vypočítané pred premietnutím)
multipointPCS_2 (výsledok PCS, ťažisko vypočítané po premietnutí vrstvy udalostí)

Ahoj Jane, zverejňujem úryvok jazyka Python. veľmi základné veci, žiadne zachytávanie chýb, ale je ľahké ho upraviť tak, aby sa z neho stal skriptový nástroj, ako uznáte za vhodné. Myslím si, že je dobré najskôr uverejniť aspoň „ukážkový kód“, aby ste ukázali myšlienku alebo techniku, a potom ju v prípade potreby vylepšite.

Nie som si istý parametrami projekcie - veľmi zaujímavá téma a veľmi dôležitá pre správne nastavenie. Zmeňte prosím tieto parametre, aby ste zlepšili svoje výsledky.

Toto jednoducho načíta program Excel pre dáta, ktoré sú definované (iba pomenované rozsahy), vytvorí viacnásobnú udalosť xy pomocou poľa a triedy viacerých bodov. Trik, ktorý nemusí byť hneď zrejmý, spočíva v tom, že je potrebné komentovať 5 riadkov, ak nechcete 'premietnuť' centroidy vypočítané pred premietnutím. bolo ľahké to nechať v súvislosti s komentárom Dana Pattersona o chybe spojenej s nájdením skutočného centra. Je to oveľa zložitejšie z hľadiska súradnicových systémov a transformačných metód, ako sa spočiatku môže zdať. . prečo bolo opodstatnené porovnanie. S týmito údajmi pravdepodobne nemôžete určiť nič presvedčivé, ale existujú rozdiely v 2 súboroch údajov (pozrite si priložený zip, obsiahnutý gdb - skript je uvedený nižšie aj na účely prezerania):

multipointPCS_1 (projektovaný výsledok GCS, ťažisko vypočítané pred premietnutím)
multipointPCS_2 (výsledok PCS, ťažisko vypočítané po premietnutí vrstvy udalostí)

Ďakujem Wayne, veľmi si vážim vašu pomoc. Urobil som jeden hárok pridaním dvoch stĺpcov a potom pomocou poľa cal St_lat + End_lat / 2 našiel centroidy, ale je to časovo náročné .. takže ďakujem za skript, nemôžem sa dočkať, až to vyskúšam.

Samozrejme. len premýšľam, ale ak dostanem čas, možno vám ukážem, ako ho správne implementovať ako skriptový nástroj, samozrejme s niekoľkými malými úpravami.
Ak chcete, pošlite kópiu xlsx obsahujúcu niekoľko skrátených pracovných hárkov, ktoré ste ešte neurobili - ak je veľkosť súboru príliš veľká, zipsujte ho a pripojte sem.
Hovorím „skrátene“ z dôvodu obmedzenia veľkosti, ktoré môžete úspešne pripojiť. je rýchle a ľahké pripojiť asi 1 000 záznamov na 2 listy. (2 listy sú lepšie ako 1, pretože potom uvidíte výsledok zalomenia na listoch - mohol by som to rozdeliť sám, ale bol by som radšej, keby ste to urobili tak, aby bol čo najoriginálnejší. Všimnem si všetko, čo môžem musíte 'opraviť', aby bol beh úspešný.)

Máte tiež 10.0, takže čokoľvek, čo zazipujem a pripojím, by ste mali byť schopní rozbaliť a spustiť, jednoduché. Súpravu nástrojov nastavím na „relatívnu cestu“, aby som našiel skript py aj väčšiu sadu vzorových údajov, ktoré posielate, bez ohľadu na to, kam ich umiestnite. Uvidíte, ako to beží, a použijete to na zvyšok svojich údajov xlsx.

Ako to znie? Som na to zvedavý, pretože by to mohlo byť mimoriadne užitočné na účely tréningu - novší používatelia sú oveľa pohodlnejší (a niekedy menej podozriví z ArcGIS), keď môžu použiť svoje údaje týmto bezprostrednejším spôsobom, údajmi, na ktorých pracovali v programe Excel. Takže je to skoro ako keby ArcGIS „vyhovoval“ použitiu údajov v inom prostredí interoperabilným spôsobom, než aby vyžadoval úplnú konverziu vopred. Stále je to technicky konverzia na dokončenie spracovania, ale myslím si, že sa to používateľovi zdá prinajmenšom menej rušivé.

Samozrejme. len premýšľam, ale ak dostanem čas, možno vám ukážem, ako ho správne implementovať ako skriptový nástroj, samozrejme s niekoľkými malými úpravami.
Ak chcete, pošlite kópiu xlsx obsahujúcu niekoľko skrátených pracovných hárkov, ktoré ste ešte neurobili - ak je veľkosť súboru príliš veľká, zipsujte ho a pripojte sem.
Hovorím „skrátene“ z dôvodu obmedzenia veľkosti, ktoré môžete úspešne pripojiť. je rýchle a ľahké pripojiť asi 1 000 záznamov na 2 listy. (2 listy sú lepšie ako 1, pretože potom uvidíte výsledok zalomenia na listoch - mohol by som ich rozdeliť sám, ale bol by som radšej, keby ste to urobili tak, aby bol čo najoriginálnejší. Všimnem si všetko, čo môžem musíte 'opraviť', aby bol beh úspešný.)

Máte tiež 10.0, takže čokoľvek, čo zazipujem a pripojím, by ste mali byť schopní rozbaliť a spustiť, jednoduché. Súpravu nástrojov nastavím na „relatívnu cestu“, aby som našiel skript py aj väčšiu sadu vzorových údajov, ktoré posielate, bez ohľadu na to, kam ich umiestnite. Uvidíte, ako to beží, a použijete to na zvyšok svojich údajov xlsx.

Ako to znie? Som na to zvedavý, pretože by to mohlo byť mimoriadne užitočné na účely tréningu - novší používatelia sú oveľa pohodlnejší (a niekedy menej podozriví z ArcGIS), keď môžu použiť svoje údaje týmto bezprostrednejším spôsobom, údajmi, na ktorých pracovali v programe Excel. Takže je to skoro ako keby ArcGIS „vyhovoval“ použitiu údajov v inom prostredí interoperabilným spôsobom, než aby vyžadoval úplnú konverziu vopred. Stále je to technicky konverzia na dokončenie spracovania, ale myslím si, že sa to používateľovi zdá prinajmenšom menej rušivé.

Ahoj Wayne, ďakujem za tvoj trvalý záujem. Tu je excel s hárkami obsahujúcimi niektoré vzorové údaje. Teším sa, až sa vám v tejto veci ozvem.

Jane, príloha pointCentroidTest.zip (príspevok č. 5 vyššie) obsahuje toto:

- skript pointCentroidTest.py.
- súbor geodatabáza, stage.gdb.
- testovacia tabuľka programu Excel, avePairCoords.xlsx.

Keď stiahnete a rozbalíte obsah, skript je navrhnutý na prístup k súboru xlsx ako vstupu a gdb ako výstupu, musia však zostať „vedľa seba“ alebo v rovnakom koreňovom priečinku. Z tohto sa dá veľmi dobre urobiť skriptový nástroj, ale mne to neprekážalo - dôležitejšou úlohou v tejto chvíli je, či to zvládne váš vstup a vytvorí centroidy v projekcii NAD 1983 BC Environment Albers.

Aby som to „prispôsobil“ vzorke, ktorú ste poskytli, stiahol som a skopíroval súbor Wayne_exel.xls do rovnakého priečinka ako skript a gdb (a samozrejme pôvodný testovací súbor xlsx). Potom som musel zmeniť vstupný súbor, ku ktorému skript pristupuje. Jediný riadok v skripte, ktorý sa musí zmeniť, aby sa dal spustiť na novej vzorke, by mal byť tam, kde je nastavený pracovný priestor:

arcpy.env.workspace = os.path.join (rootpath, 'Wayne_exel.xls')

To však nebude fungovať - ​​Prečo? Pretože zadaná vzorka nie je v očakávanom formáte, ktorý sme už vytvorili - tento skript sa spustí na záznamoch nasledujúceho explicitného formátovania poľa, kde „n“ predstavuje n-tú množinu súradníc lat / lon tej istej „stanice“ zhromaždených na niektoré zodpovedajúce n dátum:

ID, DATE1, LAT1, LON1, DATE2, LAT2, LON2,. , DATEn, LATn, LONn

Chýbali vám informácie o hlavičke a počiatočné polia 1. a 2. tabuľky mi nedávali žiadny zmysel. Takže to, čo som vlastne urobil, bolo zadanie fiktívnej hlavičky a zabezpečenie toho, aby existovali potrebné polia pre hárky 2 a 3 (a odstránený hárok 1). Tiež som definoval názvy rozsahov na každom pracovnom hárku a uložil ich do nového súboru Wayne_exel.xlsx, ktorý sa má použiť v skripte. Prebehlo to bez chyby - prikladám malé PDF s popisom postupu.

Pripájam tiež revidovaný skript na „kopírovanie“ centroidov iba do nového fc (s použitím rovnakého gdb ako predtým). . myslím, že sa tiež pokúsim priložiť tvoju revidovanú tabuľku, ktorú som uložil do xlsx. príkazový riadok v skripte odráža revidovaný vstup:

arcpy.env.workspace = os.path.join (rootpath, 'Wayne_exel.xlsx')

Ak to chcete použiť, skopírujte poskytnutý súbor xlsx aj skript do rovnakého koreňového umiestnenia, z ktorého bola rozbalená predchádzajúca príloha - bude sa vyžadovať súbor gdb. Viac informácií nájdete v priloženom PDF.


Záver

Úspešnosť zásahov do presadzovania práva v doprave musí byť spojená s kontextom krajín, pretože existujú rozdiely v účinnosti administratívnych a právnych systémov v krajinách na africkom kontinente. Úroveň zdrojov populácie je tiež rozhodujúca pri použití pokút. Dopad by bol zanedbateľný, skutočne by zhoršil životné podmienky, ak by sa použil na najviac znevýhodnené obyvateľstvo. Napokon sa zdá, že vzdelávanie v oblasti bezpečnosti cestnej premávky, ako aj zvyšovanie povedomia o ochrane dopravy sú intervenciami, ktoré sa najviac prispôsobujú africkým krajinám, aj keď je potrebné prijať stratégiu zmeny správania zodpovedajúcu každému sociálno-ekonomickému a národnému kultúrnemu kontextu. Celková analýza tohto preskúmania rozsahu ukazuje, že v oblasti bezpečnosti cestnej premávky na kontinente chýbajú intervencie, aj keď svetová dekáda bezpečnosti cestnej premávky a veľa vedeckých komunít zdôrazňovalo naliehavosť situácie. Dostupné financovanie zamerané osobitne na túto tému je určite nedostatočné na získanie nových poznatkov z výskumu. Posledným bodom, ktorý je potrebné vziať do úvahy, je, že niekoľko uskutočnených zásahov by sa dalo lepšie vyhodnotiť, aby bolo možné získať prvky replikácie, aby sa experimenty mohli nasmerovať na iné miesta a na iných škálach.


5 ZHRNUTIE A ZÁVERY

Náš výskum vyvinul novú metodiku na hodnotenie vplyvu dizajnu križovatky na bezpečnosť cestnej premávky, ktorá je založená na počítačovom videní a hlbokom učení. Najskôr boli identifikované všetky miesta križovatiek v Austrálii a boli zhromaždené zodpovedajúce satelitné snímky. Bola vyvinutá séria krokov predspracovania na mieru, aby sa zdôraznili vlastnosti surových satelitných snímok, ktoré súvisia s bezpečnosťou na cestách. Z kondenzovaného zobrazenia v hlbokej AE sa potom extrahovali funkcie na vysokej úrovni. Bola formulovaná funkcia straty, aby sa presadila riedkosť vo vrstve úzkeho profilu AE, pričom sa uprednostnila kvalita funkcií pred dokonalou rekonštrukciou obrazu. Obrázky boli zoskupené pomocou t-SNE na základe extrahovaných funkcií. Nakoniec sa správanie pri vedení vozidla preskúmalo pomocou zaznamenaných telematických údajov. Zistilo sa, že udalosti HA (na vozidlo) boli častejšie na jednoduchých štvorcestných ako na trojcestných križovatkách. T-križovatky zaznamenali jednu z najnižších frekvencií HD (proxy pre udalosti typu crash and near-miss). Ďalej boli na kruhových objazdoch zaznamenané trvalo nízke priemerné rýchlosti, čo prispievalo k nižšej závažnosti nárazu pozorovanej v predchádzajúcich štúdiách. V zhlukoch podobných križovatiek bolo navyše identifikovaných niekoľko obzvlášť nebezpečných prvkov dizajnu.


2 odpovede 2

Stručné otázky sú odporúčané na Stack Exchange. Oceňujem, ako poukazujete na to, že Stack Exchange možno považovať za úložisko otázok v prospech budúcich používateľov. Z tohto dôvodu sa očakáva, že všetky otázky budú v súlade s pokynmi pre webové stránky. Naše centrum pomoci má stránku s touto témou:

Ako položím dobrú otázku?

Radi vám pomôžeme. Tu je niekoľko rád, ako zvýšiť svoje šance na odpoveď.

Hľadajte a skúmajte

Pred položením otázky ste dôkladne hľadali odpoveď? Zdieľanie vášho výskumu pomáha všetkým. Povedzte nám, čo ste našli a prečo nevyhovoval vašim potrebám. Toto dokazuje, že ste si našli čas, aby ste si pomohli sami. Chráni nás to od opakovania zrejmých odpovedí a predovšetkým vám pomáha získať konkrétnejšiu a relevantnejšiu odpoveď!

Buďte na tému

Našu komunitu definuje konkrétny súbor tém, ktoré si môžete pozrieť v centre pomoci. Držte sa týchto tém a vyhýbajte sa pýtaniu názorov alebo otvorenej diskusii. Ak sa vaša otázka týka samotnej stránky, opýtajte sa na našej meta-diskusnej stránke. Ak hľadáte inú tému, možno by sa mohla venovať inej stránke Stack Exchange.

Byť špecifický

Ak položíte nejasnú otázku, dostanete nejasnú odpoveď. Ak nám však dáte podrobnosti a kontext, môžeme vám poskytnúť užitočnú odpoveď.

Urobte to relevantným pre ostatných

Radi pomáhame čo najväčšiemu počtu ľudí, ako môžeme. Ujasnite si, ako je vaša otázka relevantná pre viac ľudí ako iba pre vás. Viac z nás bude mať záujem o vašu otázku a bude ochotných sa ňou zaoberať.

Majte otvorenú myseľ

Odpoveď na vašu otázku nemusí byť vždy tá, ktorú ste chceli, ale to neznamená, že je nesprávna. Nie vždy je možná jednoznačná odpoveď. Ak máte pochybnosti, požiadajte ľudí, aby uviedli svoje zdroje alebo vysvetlili, ako / kde sa niečo dozvedeli. Aj keď s vami nesúhlasíme alebo vám nepovieme presne to, čo ste chceli počuť, nezabudnite: iba sa snažíme pomôcť.

Všeobecne povedané, otázky týkajúce sa kódovania s otázkou „Tu je môj problém, môžete mi napísať kód?“ alebo „Potrebujem vykonať úlohu A, B, C, D, E, F. - existuje môj kód na vykonanie A, ako môžem urobiť B, C, D, E, F.“ nie sú dobre prijaté.

Ak hľadáte na stránkach Google alebo GIS SE a neviete nájsť odpoveď, je to pravdepodobne dobrý kandidát na naše fórum.


Záverečné slovo

Je ľahké cítiť sa ohromení, keď sa stanete učiteľom vášho dieťaťa. Namiesto toho to považujte za príležitosť raz za život a využite ju na vytvorenie silnejšieho puta s dieťaťom, čím získate niekoľko spomienok, na ktoré nikdy nezabudne. Nachádzame sa na nezmapovanom území pre všetkých - nikto z nás nezažil pandémiu ako je táto za našich životov. S prístupom k akademikom vášho dieťaťa teda môžete byť veľmi flexibilní.

Namiesto toho, aby ste sa na domácu školskú dochádzku pozerali ako na zoznam hodín, ktoré musíte absolvovať, ponorte sa do učenia so svojimi deťmi. Pýtajte sa, spoločne skúmajte predmety, spolupracujte na písaní a kreslení grafického románu, vyskúšajte niektoré praktické aktivity a nezabudnite sa hrať.

Škola môže vyzerať ako veľa vecí, nielen ako pracovné listy a matematické kvízy, ale aj pečenie, maľovanie, hranie hier, objavovanie na záhrade alebo stavba s Legosom. Všetko sa počíta, tak do toho a bavte sa.

Bojíte sa domácich školení svojich detí alebo sa tešíte? Ak ste veterán domáci školák, máte nejaké tipy?


Pozri si video: GIS Skills: ArcGIS Pros Explore Tool