Topologías de una geodatabase en PostgreSQL

Las topologías son reglas que aplican la integridad de datos y administran el comportamiento de las clases de entidad relacionadas espacialmente. Una topología de geodatabase almacena información sobre las clases de entidad (que deben estar en el mismo dataset de entidades) que participan en la topología, la tolerancia cluster asignada a la topología, la clasificación relativa de cada clase de entidad en la topología y una lista de reglas que se aplican a esa topología.

Para obtener más información sobre los conceptos relacionados con las topologías, consulteConceptos básicos de topología yTopología en ArcGIS.

Topologías en ArcGIS for Desktop

En el árbol de catálogo, las topologías aparecen en el dataset de entidades en que residen las clases de entidad participantes. La topología está representada con el siguiente icono:

Icono de topología

Puede ver qué clases de entidad en una dataset de entidades participan en la topología si busca en la pestaña Clases de entidad del cuadro de diálogo Propiedades de topología.

El cuadro de diálogo Propiedades de topología

Si hace clic en la pestaña Reglas, se visualizan las reglas que se aplican a la topología. Una vez que la topología se valida, puede generar una lista de errores y excepciones para cada regla desde la pestaña Errores.

Topologías en una base de datos PostgreSQL

En el DBMS, las topologías se almacenan en la tabla gdb_items. Las reglas asociadas a la topología se almacenan en la columna definition.

Cuando valida una topología, los errores de topología y las áreas sin validar que se encuentran y que están asociados con cada topología se almacenan en un conjunto de tablas en el esquema del usuario conectado a la geodatabase. Son las tablas t_<id>_dirtyareas, t_<id>_lineerrors, t_<id>_pointerrors y t_<id>_polyerrors. El Id. en los nombres de tabla corresponde al Id. de topología en el campo datasetsubtype1 de la tabla gdb_items. Cada tabla de errores almacena la regla infringida en el campo toporuleid. El campo está vinculado al campo iteminfo de la tabla gdb_items.

Lo siguiente es una definición de las tablas de los errores de topología y las áreas sin validar, y un ejemplo de las tablas de topología como aparecen en PostgreSQL.

t_<id>_dirtyareas

Esta tabla se crea cuando valida una topología.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

ID de objeto

entero

Identificador único de la entidad del área sin validar en la topología

NO NULO

isretired

entero

Este código indica si el área sin validar ha alcanzado la cantidad máxima de vértices (250).

Cuando se alcanza ese límite, se crea una nueva entidad de área sin validar y se retira la existente (el valor cambia a 1).

0 = Aún no se alcanzó el límite máximo de vértices o 1 = Límite máximo de vértices

NO NULO

dirtyarea

st_geometry

geometry

Campo de forma

t_<id>_pointerrors, t_<id>_lineerrors y t_<id>_polyerrors

Las infracciones a las reglas de topología se representan como entidades de error. Como sucede con las áreas sin validar, estas entidades de error también se almacenan y se administran en tablas de error de topología separadas. Todas estas tablas comparten una definición de esquema casi idéntica, a excepción de los campos adicionales específicos al tipo de forma del error de topología. Como se indica en los nombres de tabla, almacenan información sobre los errores de topología basados en el tipo de entidad en la que ocurre el error: línea, punto o polígono.

Estas tablas no existen en la base de datos hasta que haya validado la topología.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

objectid

entero

Id. único de la entidad de error de topología en la tabla de errores de topología especificada; los errores de topología no tienen Id. exclusivos en la topología, solo en sus tablas específicas.

NO NULO

originclassid

entero

Id. de clase de objeto de la clase de entidad de origen

NO NULO

originid

entero

Id. de entidad de la entidad desde la clase de entidad de origen que está en relación con el error de topología.

destclassid

entero

Id. de clase de objeto de la clase de entidad de destino

destid

entero

Id. de entidad de la entidad procedente de la clase de entidad de destino que está en relación con el error de topología.

toporuletype

entero

El tipo de regla topológica; corresponde a un valor de la constante esriTopologyRuleType

NO NULO

toporuleid

entero

El Id. de la regla topológica almacenado en la columna iteminfo de la tabla gdb_items

NO NULO

isexception

entero

Se trata de un código que indica si un error de topología se ha marcado como excepción o no. 0 = No es una excepción (el predeterminado); 1 = Marcado como excepción

NO NULO

forma

st_geometry o geometría

Indica el tipo de forma

Las tablas de los errores de topología y las áreas sin validar se crean en el esquema del usuario que creó la topología, a diferencia de la otra tabla, que es una tabla del sistema almacenada en el esquema del usuario administrador de la geodatabase.

El siguiente es un diagrama de las tablas de una topología validada:

Tablas de topología en PostgreSQL

Las líneas discontinuas indican relaciones implícitas entre las columnas.

Topologías en un documento de espacio de trabajo XML

Las topologías son tipos de datasets, por lo que aparecen en un documento XML en una etiqueta DataElement del tipo FeatureDataset. Las reglas de topología están incluidas y agrupadas con una etiqueta TopologyRule. Para una topología, u_topo, en un dataset de entidades, water, la entrada en el documento XML se muestra de la siguiente manera:

<DatasetDefinitions xsi:type="esri:ArrayOfDataElement"> - <DataElement xsi:type="esri:DEFeatureDataset">     <CatalogPath>/V=sde.DEFAULT/FD=sde.sasha.Landbase</CatalogPath>      <Name>sde.sasha.Landbase</Name>    - <Children xsi:type="esri:ArrayOfDataElement">     - <DataElement xsi:type="esri:DETopology">           <CatalogPath>/V=sde.DEFAULT/FD=sde.sasha.Landbase/TOPO=sde.sasha.Landbase_Topology</CatalogPath>          <Name>sde.sasha.Landbase_Topology</Name>          <DatasetType>esriDTTopology</DatasetType>          <DSID>-1</DSID>          <Versioned>true</Versioned>          <CanVersion>true</CanVersion>        - <Extent xsi:type="esri:EnvelopeN">            <XMin>503924.656249088</XMin>             <YMin>680110.56250334</YMin>             <XMax>512514.562497088</XMax>             <YMax>689084.187511697</YMax>          - <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">   <WKT>PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101", GEOGCS["GCS_North_American_1927", DATUM["D_North_American_1927", SPHEROID["Clarke_1866",6378206.4,294.9786982]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["False_Easting",500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian", -85.83333333333333], PARAMETER["Scale_Factor",0.99996], PARAMETER["Latitude_Of_Origin",30.5], UNIT["Foot_US",0.3048006096012192]]</WKT>               <XOrigin>489871.255812</XOrigin>               <YOrigin>665787.099562</YOrigin>               <XYScale>499999.999534338</XYScale>               <ZOrigin>0</ZOrigin>               <ZScale>1</ZScale>               <MOrigin>0</MOrigin>               <MScale>1</MScale>               <XYTolerance>6.56166666666667E-04</XYTolerance>               <ZTolerance>2</ZTolerance>               <MTolerance>2</MTolerance>               <HighPrecision>true</HighPrecision>            </SpatialReference>        </Extent>      - <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">   <WKT>PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101", GEOGCS["GCS_North_American_1927", DATUM["D_North_American_1927", SPHEROID["Clarke_1866",6378206.4,294.9786982]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["False_Easting", 500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian", -85.83333333333333], PARAMETER["Scale_Factor",0.99996], PARAMETER["Latitude_Of_Origin",30.5], UNIT["Foot_US",0.3048006096012192]]</WKT>               <XOrigin>489871.255812</XOrigin>               <YOrigin>665787.099562</YOrigin>               <XYScale>499999.999534338</XYScale>               <ZOrigin>0</ZOrigin>               <ZScale>8192</ZScale>               <MOrigin>0</MOrigin>               <MScale>8192</MScale>               <XYTolerance>6.56166666666667E-04</XYTolerance>               <ZTolerance>2</ZTolerance>               <MTolerance>2</MTolerance>               <HighPrecision>true</HighPrecision>        </SpatialReference>       <ClusterTolerance>0.5</ClusterTolerance>        <ZClusterTolerance>-1</ZClusterTolerance>        <MaxGeneratedErrorCount>-1</MaxGeneratedErrorCount>      - <FeatureClassNames xsi:type="esri:Names">          <Name>sde.RJP.Blocks</Name>           <Name>sde.RJP.Parcels</Name>        </FeatureClassNames>     - <TopologyRules xsi:type="esri:ArrayOfTopologyRule">       - <TopologyRule xsi:type="esri:TopologyRule">            <HelpString />             <RuleID>183</RuleID>             <Name />             <GUID>7D3E7075-16CF-47AD-A8F4-842B921B1E1E</GUID>             <TopologyRuleType>esriTRTAreaNoOverlap</TopologyRuleType>             <OriginClassID>100</OriginClassID>             <OriginSubtype>0</OriginSubtype>             <DestinationClassID>100</DestinationClassID>             <DestinationSubtype>0</DestinationSubtype>             <TriggerErrorEvents>false</TriggerErrorEvents>             <AllOriginSubtypes>true</AllOriginSubtypes>             <AllDestinationSubtypes>true</AllDestinationSubtypes>          </TopologyRule>       - <TopologyRule xsi:type="esri:TopologyRule">            <HelpString />             <RuleID>184</RuleID>             <Name />             <GUID>6F58891D-5BD9-4848-802E-90458152B0CE</GUID>             <TopologyRuleType>esriTRTAreaCoveredByArea</TopologyRuleType>             <OriginClassID>100</OriginClassID>             <OriginSubtype>1</OriginSubtype>             <DestinationClassID>98</DestinationClassID>             <DestinationSubtype>1</DestinationSubtype>             <TriggerErrorEvents>false</TriggerErrorEvents>             <AllOriginSubtypes>false</AllOriginSubtypes>             <AllDestinationSubtypes>false</AllDestinationSubtypes>          </TopologyRule>     </TopologyRules> </DataElement>

Temas relacionados

2/20/2014