Viac

Priesečník dvoch tabuliek pomocou zhodných hodnôt vo viacerých poliach


Primárne použitie ArcGIS Desktop Basic: Musím nájsť priesečník dvoch tabuliek v tej istej geodatabázi súborov na základe hodnôt vo viacerých poliach. Takmer všetky dotazy, aby ste našli pomoc, sú viaceré poľné dotazy v jednej spojenej tabuľke alebo priestorové údaje. Prvá je proste nesprávna. Pokiaľ ide o druhú, nemôžem predpokladať priestorovú presnosť v tabuľke B (nižšie), niektoré prvky sa už ukázali byť mimo ich geografického rozsahu. A to je nakoniec konečný cieľ projektu: zlepšiť priestorovú presnosť tabuľky B pomocou tabuľky A.

Musím nájsť záznamy v A, ktoré zodpovedajú záznamom v B, ale nie všetky záznamy v B sú v A.

Tabuľky: A (záznamy 0,5 M) B (záznamy 0,4 M)

Polia na návrat: A.1, A.10, A.11 B.1

Polia, ktoré sa majú zhodovať. Ubezpečil som sa, že polia sú rovnakého typu (Text / String, Integer atď.) A že nižšie uvedené párovania sú zhodné s typom a hodnotou. Niektoré zo záznamov v A sa budú zhodovať s niektorými zo záznamov v B.

A.2 = B.2 A.3 = B.3 A.4 = B.4 A.5 = B.5 A.6 = B.6

Pomocou nástroja ESRI „Make Query Table“ v 10.2 basic som to použil ako dopyt:

„A.2 = B.2 a A.3 = B.3 a A.4 = B.4 a A.5 = B.5 a A.6 = B.6“

Nezadali ste žiadne kľúče.

Toto sa vráti so správou, že došlo k chybe použitého výrazu a neplatného príkazu SQL.

Vytvorenie tabuľky iba v poli 6 trvá menej ako sekundu, ale tabuľka sa neotvorí. Pole 6 je najmenej podrobné.

Vynaložil som svoje vedomosti a mám pocit, že na internete nenájdem odpoveď, na ktorú som sa predtým pýtal. Toto je pravdepodobne iba otázka databázy a nie priestorový problém, ale využívam priestorové údaje.

UPDATE: Pracoval som na tom dnes (v nedeľu) ešte viac. Vytvorilo sa nové textové pole (nazvime ho 20) a osídlené úspešným zreťazením všetkých polí, takže 'A.20 = A.2 & A.3 & A.4 & A.5 & A.6 "B.20 = B.2 & B.3 & B.4 & B.5 & B.6 'Zdá sa, že to fungovalo perfektne, ak sa zhodovalo iba jedno pole, až na to, že vrátilo iba 2/3 očakávaných záznamov. Pole 5 má vysokú zrnitosť a jeho odstránenie z úvahy vrátilo 160% očakávaných záznamov. Má nástroj „Vytvoriť dotazovú tabuľku“ obmedzený počet polí, ku ktorým má prístup?


Vytvoril som nástroj (Nástroj s kľúčom viacerých polí na jedno pole - Spojte dve vrstvy na základe viac ako jedného poľa), ktorý bude zodpovedať viacerým poliam, kde každé pole v jednej tabuľke / triede prvkov má zodpovedajúce zodpovedajúce pole v druhej tabuľke / prvku trieda. V každom z nich vytvorí nové dlhé pole s číslom, ktoré predstavuje každú jedinečnú hodnotu v množine polí. Voliteľne môže priradiť čísla ku každej hodnote v jednej tabuľke a iba zodpovedajúce hodnoty v druhej tabuľke, alebo priradiť čísla ku všetkým hodnotám v oboch tabuľkách alebo iba priradiť čísla k hodnotám, ktoré sa zhodujú v oboch tabuľkách (-1 je priradená k nezodpovedajúcim hodnotám pre možnosť 1 a 3).

K dispozícii je verzia 10.2 a 10.3. Rozhrania verzie 10.3 sú lepšie, ale rozhranie verzie 10.2 funguje primerane dobre. Časť rozhrania, ktorá sa zhoduje s poľom, je vo verzii 10.2 o niečo menej intuitívna, ale funguje to.

Keď máte jedinú hodnotu kľúča poľa, môžete na výber záznamov a prenos hodnôt medzi dvoma tabuľkami použiť štandardné operácie spojenia a spojenia. Mali by ste tiež vyskúšať metódy používania kurzorov a slovníkov (Turbo Charging Data Manipulation with Python Cursors and dictionaries) na prenos údajov ešte rýchlejšie ako na spojenie alebo spojenie a na zmenu hodnôt tvarového poľa z jednej tabuľky na druhú.


Pozri si video: Zhodné zobrazenia, otáčanie, rotácia 1 (Október 2021).