Eins-zu-viele-Verknüpfungen einer Feature-Class zu einer Tabelle

10

Ich verwende ArcMap 10.2.2 mit einer erweiterten Lizenz. Ich habe ArcMap für andere grundlegende Analysen verwendet, bin jedoch ziemlich neu im Programm und habe nur grundlegende Codierungsfähigkeiten, ohne SQL-Erfahrung außerhalb sehr grundlegender Abfragen mit den SQL-Code-Buildern in ArcMap.

Ich habe Polygone der geografischen Bereiche der Arten und eine Tabelle mit einer Liste der von diesen Arten übertragenen Krankheitserreger / Krankheiten. Bestimmte Arten tragen mehrere Krankheitserreger. In einer idealen Welt würde ich die Polygone der Bereiche mit der Tabelle der Arten + Krankheitserreger verbinden und die Polygon- / Geodaten behalten, aber es scheint nicht, dass es ein GIS-Tool gibt, um dies zu tun (ich werde es tun) Später werden überlappende Krankheitserreger gezählt. Daher ist es wichtig, dass jede Art-Krankheitserreger-Kombination ein eigenes Merkmal aufweist und nicht ein Merkmal, das Informationen für mehrere Krankheitserreger enthält. So sehen meine Daten aus (Nr. 1 & Nr. 2, Nr. 3 für später):

Attributtabelle für räumliche Merkmale:

Attributtabelle für räumliche Merkmale

Tabelle ohne räumliche Daten:

Tabelle ohne räumliche Daten

(Bitte beachten Sie, dass dies keine realen Daten sind und die Pathogen-Spezies-Kombinationen möglicherweise nicht real sind. Ich habe tatsächlich 115 Polygone und 519 Tabellenzeilen. Spezies tragen irgendwo zwischen 1-40 Pathogene und somit haben Spezies irgendwo zwischen 1-40 Reihen in mein Tisch)

Als zusätzlichen Bonus möchte ich aufgrund zukünftiger Analysen, die ich durchführen muss, diesen Eins-zu-Viele-Join idealerweise durchführen, damit ich eine zusätzliche Datenspalte aus der Tabelle behalten kann (siehe unten für ein Beispiel von wie das aussehen könnte). Dies ist jedoch weniger wichtig, da ich die Analyse nur wiederholen kann, wenn ich herausfinden kann, wie der Join ausgeführt wird.

Tabelle ohne Geodaten, mit zusätzlichem Feld

Es gibt einige Lösungen, die ich für dieses Problem gefunden habe, aber sie haben aus den unten aufgeführten Gründen bei mir nicht funktioniert:

Lösung 1: David Aalbers Blog - Ich bin zu ein Anfänger, um herauszufinden, wie das neuere Skript bearbeitet und in ArcMap importiert werden kann. Ich habe das ältere Skript ausprobiert und es hat nur eine Menge leerer Polygone mit den Titeln test, test_1, test_1_1, test_1_1_1 usw. generiert.

Lösung 2: Eins-zu-viele-Verknüpfung - Ich habe versucht, das Tool "Abfragetabelle erstellen" zu verwenden (und ich habe keine SQL-Kenntnisse, obwohl ich den Ausdrucksgenerator verwendet habe), und ich habe den FEHLER 000383 erhalten: Problem mit einer Tabelle, Arbeitsbereich & kann nicht gefunden werden Fehler beim Ausführen (MakeQueryTable). Alle meine Dateien befinden sich im selben Ordner, aber nicht in einer Geodatabase.

MooseGirl
quelle
1
Make Query Table funktioniert nur mit der Datenbank
FelixIP
1
Abfragetabelle erstellen erfordert alle Daten in derselben fgdb.
Klewis

Antworten:

22

Führen Sie dies aus, um die Funktionen zu multiplizieren (verfügbar für Benutzer mit ArcGIS 10.1 oder höher).

  1. Platzieren Sie die Features und die Tabelle in derselben Datei-Geodatabase (Sie müssen Shapefiles / Excel / DBF-Dateien in die Geodatabase konvertieren, damit dies funktioniert).
  2. Stellen Sie sicher, dass Ihre Polygone über ein eindeutiges ID-Feld verfügen, das beibehalten wird (Sie können ein langes Feld erstellen und die ObjectID darin berechnen, damit der ObjectID-Wert nicht verloren geht).
  3. Führen Sie eine Standardverknüpfung der Tabelle (Attribute, keine räumlichen Daten) mit den Features (räumlichen Daten) im übereinstimmenden Feld durch. Beachten Sie, dass die Attributtabelle der Features (Geodaten) dieselbe Anzahl von Features aufweist wie zuvor. Machen Sie sich jedoch keine Sorgen, sie werden alle im nächsten Schritt angezeigt.
  4. Exportieren Sie die Features in dieselbe Geodatabase wie eine neue Feature-Class (klicken Sie mit der rechten Maustaste auf den Layer im Inhaltsverzeichnis und wählen Sie Exportieren). Beachten Sie, dass die Anzahl der Features in der Attributtabelle der exportierten Features jetzt die richtige Anzahl von Features aufweist, die der ursprünglichen Tabelle (mit Attributen, keinen räumlichen Daten) oder im Fall eines Joins von vielen zu vielen einem vollständigen Satz entspricht von Features für alle Kombinationen von Features und zugehörigen Datensätzen.

Die Features werden in einer neuen Feature-Class multipliziert, in der jedes Feature vorhanden ist (auch wenn es keine Übereinstimmung in der Tabelle gab) und in der zuvor eine 1: M-Übereinstimmung stattgefunden hat. Die Features werden zu einem 1: 1 multipliziert Übereinstimmung jedes Features mit allen Tabelleneinträgen. Mit dem in Schritt 2 erstellten Feld "Eindeutige ID" können Sie die multiplizierten Polygone mit dem ursprünglichen Satz einzelner Polygone verknüpfen. Mit der neuen Feature-Class mit multiplizierten Features können Sie eine Auswahl für Tabellenfelder, Zusammenfassungen, räumliche Verknüpfungen usw. treffen.

Wenn Sie einen eindeutigen ID-Wert generieren möchten, der jede eindeutige Kombination aus Art und Krankheit darstellt, können Sie die 10.2-Version des in diesem Blogbeitrag beschriebenen Tools verwenden . Mit diesem Schlüsseltyp können Sie Standardverknüpfungen für Übersichtstabellen und Statistiken basierend auf einer Mehrfeldbeziehung erstellen, um eine tatsächliche Mehrfeldbeziehung mithilfe einer Einrichtung zum Erstellen einer Abfragetabelle zu erstellen.

Hier ist eine gute Referenz von esri: https://support.esri.com/de/technical-article/000001228

Richard Fairhurst
quelle
Funktioniert perfekt beim Export in die Geodatabase!
MooseGirl
1
Ich habe Schritt 4 dahingehend geändert, dass der Export in eine neue Feature-Class in derselben Geodatabase wie die Originaldaten erfolgen soll. Das Befolgen dieses Verfahrens sollte immer funktionieren, obwohl es möglich ist, dass auch einige Variationen des Speicherorts der Quell- und Ausgabedaten zulässig sind.
Richard Fairhurst
Es war vorher klar (obwohl zukünftige verzweifelte Leute es sicherlich zu schätzen wissen, dass es buchstabiert wird), aber ursprünglich hatte ich keine ordnungsgemäße Verbindung zum Geodatabase-Ordner (oder etwas anderem) hergestellt, da ich dadurch nicht in die Geodatabase exportieren konnte. Ich habe neu gestartet und es hat gut funktioniert.
MooseGirl
1
Ich habe hinzugefügt, dass die verknüpften Features nicht die richtige Anzahl von Attributen haben und die exportierten Features. Das hat mich sehr frustriert, als ich es versuchte, bis ich alle Schritte durchlaufen habe.
Nittyjee
Es liest sich so, als ob in # 3 ein "Nicht" fehlt, "... wird notdie gleiche Anzahl von Funktionen haben ..."
matt wilkie
-2

SQL-Abfrage:

SELECT spp, disease, type
FROM table1, table2
WHERE table1.bimonial = table2.spp;
Cy T.
quelle