Abfrage-Layer erstellen (Data Management)

Zusammenfassung

Erstellt auf Grundlage einer Eingabe-SQL-Select-Anweisung einen Abfrage-Layer aus einer DBMS-Tabelle.

Verwendung

  • Abfrage-Layer funktionieren nur mit Enterprise-Datenbanken. File-Geodatabases sind kein gültiger Eingabe-Workspace für dieses Werkzeug.

  • Der vom Werkzeug erstellte Layer ist ein temporärer Layer, der nach Sitzungsende nicht beibehalten wird. Zum Speichern der Daten müssen Sie das Projekt speichern oder mithilfe von Zeilen kopieren bzw. Features kopieren eine Kopie erstellen.

  • Wenn das Ergebnis der eingegebenen SQL-Abfrage eine räumliche Spalte zurückgibt, ist die Ausgabe ein Feature-Layer. Wenn die SQL-Abfrage keine räumliche Spalte zurückgibt, ist die Ausgabe eine Standalone-Tabelle.

  • Die für dieses Werkzeug notwendigen Verbindungsdateien können mit dem Werkzeug Datenbankverbindung erstellen erstellt werden.

  • Wenn das Ergebnis der SQL-Abfrage keine Zeilen zurückgibt, ist der Ausgabe-Abfrage-Layer leer und enthält nur das Schema der Spalten, die von der Abfrage zurückgegeben wurden. In diesem Fall erstellt das Werkzeug, wenn die zurückgegebenen Spalten eine räumliche Spalte enthalten, den Abfrage-Layer mithilfe der folgenden Standards:

    • Geometrietyp: PUNKT
    • SRID: 1
    • Raumbezug: NAD1983

    Danach müssen Sie ermitteln, ob vor der Ausführung des Werkzeugs einer dieser Werte geändert werden soll.

  • Für geographische Daten sollte jeder Datensatz im von der SQL-Anweisung zurückgegebenen Ergebnis eine zugeordnete Raumbezugskennung (SRID) haben. Der SRID-Wert wird von der Datenbank verwendet, um den Raumbezug für die Daten zu bestimmen. Die spezifischen funktionalen Unterschiede für die SRID ändern sich bei jeder DBMS-Plattform. Einige DBMS-Plattformen unterstützen mehrere SRID-Werte innerhalb der gleichen Tabelle; ArcGIS unterstützt nur einen Wert. Dieses Werkzeug bietet die Möglichkeit, den SRID-Wert auszuwählen oder es legt standardmäßig die SRID im Ergebnissatz des ersten Datensatzes fest.

Syntax

arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
ParameterErklärungDatentyp
input_database

Die Datenbankverbindungsdatei, die die abzufragenden Daten enthält.

Workspace
out_layer_name

Der Ausgabename des Feature-Layers oder die Tabellensicht, der/die erstellt werden soll.

String
query

Die SQL-Anweisung, die die Select-Abfrage definiert, die von der Datenbank ausgegeben werden soll.

String
oid_fields
[oid_fields,...]
(optional)

Ein oder mehrere Felder aus der SELECT-Liste der SELECT-Anweisung, die verwendet werden können, um eine dynamische, eindeutige Zeilenkennung zu generieren.

String
shape_type
(optional)

Gibt den Shape-Typ des Abfrage-Layers an. Nur Datensätze aus dem Ergebnissatz der Abfrage, die dem angegebenen Shape-Typ entsprechen, werden im Ausgabe-Abfrage-Layer verwendet. Mit der Werkzeugvalidierung wird versucht, diese Eigenschaft auf Grundlage des ersten Datensatzes im Ergebnissatz festzulegen. Dies kann vor dem Ausführen des Werkzeugs geändert werden, wenn es nicht der gewünschte Ausgabe-Shape-Typ ist. Dieser Parameter wird ignoriert, wenn der Ergebnissatz der Abfrage kein Geometriefeld zurückgibt.

  • POINTDer Ausgabe-Abfrage-Layer verwendet Punktgeometrie.
  • MULTIPOINTDer Ausgabe-Abfrage-Layer verwendet Multipoint-Geometrie.
  • POLYGONDer Ausgabe-Abfrage-Layer verwendet Polygongeometrie.
  • POLYLINEDer Ausgabe-Abfrage-Layer verwendet Polyliniengeometrie.
String
srid
(optional)

Der SRID (Spatial Reference Identifier)-Wert für Abfragen, von denen Geometrie zurückgegeben wird. Nur Datensätze aus dem Ergebnissatz der Abfrage, die dem angegebenen SRID-Wert entsprechen, werden im Ausgabe-Abfrage-Layer verwendet. Mit der Werkzeugvalidierung wird versucht, diese Eigenschaft auf Grundlage des ersten Datensatzes im Ergebnissatz festzulegen. Dies kann vor dem Ausführen des Werkzeugs geändert werden, wenn es nicht der gewünschte SRID-Wert ist. Dieser Parameter wird ignoriert, wenn der Ergebnissatz der Abfrage kein Geometriefeld zurückgibt.

String
spatial_reference
(optional)

Das Koordinatensystem, das vom Ausgabe-Abfrage-Layer verwendet wird. Mit der Werkzeugvalidierung wird versucht, diese Eigenschaft auf Grundlage des ersten Datensatzes im Ergebnissatz festzulegen. Dies kann vor dem Ausführen des Werkzeugs geändert werden, wenn es nicht das gewünschte Ausgabekoordinatensystem ist. Dieser Parameter wird ignoriert, wenn der Ergebnissatz der Abfrage kein Geometriefeld zurückgibt.

Spatial Reference
spatial_properties
(optional)

Gibt an, wie die räumlichen Eigenschaften für den Layer definiert werden.

Während des Validierungsvorgangs werden Dimensionalität, Geometrietyp, Raumbezug, SRID und eindeutige Kennungseigenschaften für den Abfrage-Layer festgelegt. Diese Werte basieren auf der ersten Zeile, die in der Abfrage zurückgegeben wurde. Wenn diese Eigenschaften manuell definiert und nicht vom Werkzeug aus der Tabelle abgerufen werden sollen, verwenden Sie den Standardwert für diesen Parameter.

  • DEFINE_SPATIAL_PROPERTIESDie räumlichen Eigenschaften des Layers werden manuell definiert. Dies ist die Standardeinstellung.
  • DO_NOT_DEFINE_SPATIAL_PROPERTIESDie Layer-Eigenschaften werden anhand der ersten in der Abfrage zurückgegebenen Zeile festgelegt.
Boolean
m_values
(optional)

Gibt an, ob der Layer M-Werte enthält.

  • INCLUDE_M_VALUESDer Layer enthält M-Werte.
  • DO_NOT_INCLUDE_M_VALUESDer Layer enthält keine M-Werte. Dies ist die Standardeinstellung.
Boolean
z_values
(optional)

Gibt an, ob der Layer Z-Werte enthält.

  • INCLUDE_Z_VALUESDer Layer enthält Z-Werte.
  • DO_NOT_INCLUDE_Z_VALUESDer Layer enthält keine Z-Werte. Dies ist die Standardeinstellung.
Boolean
extent
(optional)

Die Ausdehnung des Layers. Dieser Parameter wird nur verwendet, wenn Räumliche Eigenschaften für den Layer definieren aktiviert ist (spatial_properties = DEFINE_SPATIAL_PROPERTIES in Python). Die Ausdehnung muss alle Features in der Tabelle enthalten.

  • MAXOF: Die maximale Ausdehnung aller Eingaben wird verwendet.
  • MINOF: Die kleinste gemeinsame Fläche aller Eingaben wird verwendet.
  • DISPLAY: Die Ausdehnung entspricht der sichtbaren Anzeige.
  • Layer-Name: Die Ausdehnung des angegebenen Layers wird verwendet.
  • Extent-Objekt: Die Ausdehnung des angegebenen Objekts wird verwendet.
  • Durch Leerzeichen getrennte Koordinatenzeichenfolge: Die Ausdehnung der angegebenen Zeichenfolge wird verwendet. Die Koordinaten werden in der Reihenfolge X-Min, Y-Min, X-Max, Y-Max ausgedrückt.
Extent

Abgeleitete Ausgabe

NameErklärungDatentyp
out_layer

Der Ausgabe-Abfrage-Layer.

Tabellenansicht

Codebeispiel

MakeQueryLayer - Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie das Werkzeug MakeQueryLayer im unmittelbaren Modus verwendet wird.

import arcpy

sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Slickrock",
                                "select * from moabtrails where name = 'slickrock'",
                                "OBJECTID",
                                "POLYLINE",
                                "32611",
                                sr)
MakeQueryLayer - Beispiel 2 (eigenständiges Skript)

Im folgenden eigenständigen Skript wird veranschaulicht, wie das Werkzeug MakeQueryLayer verwendet wird.

# Name: MakeQueryLayer.py
# Description: Creates an output query layer based on a where clause.
#   This example shows how to create a spatial reference object using the
#   name of a coordinate system. It also demonstrates how to use two fields
#   to generate a dynamic unique row identifier for the query layer.


# Import system modules
import arcpy

# Create the spatial reference for the output layer.
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

# Run the tool
arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Single Track",
                                "select * from moabtrails where type = 'single'",
                                "UID;name",
                                "POLYLINE",
                                "32611",
                                sr)

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen