Topologías en una geodatabase en SQL Server

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 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 de Microsoft SQL Server

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 col_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 SQL Server.

T_<ID>_DIRTYAREAS

Esta tabla se crea cuando valida una topología.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

objectid

integer

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

NO NULO

isretired

integer

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

integer

geometry

geography

Campo de forma

T_<ID>_LINEERRORS, T_<ID>_POINTERRORS 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. únicos en la topología, sólo en sus tablas específicas.

NOT NULL

OriginClassID

entero

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

NOT NULL

OriginID

entero

Id. de entidad de la entidad de la clase de entidad de origen que se relaciona 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 de la clase de entidad de destino que se relaciona con el error de topología

TopoRuleType

entero

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

TopoRuleID

entero

El Id. de la regla topológica almacenado en la columna ItemInfo de la tabla GDB_ITEMS

NOT NULL

IsException

entero

Un código que indica si el error de topología se marcó como una excepción

  • 0 = No es una excepción (predeterminado)
  • 1 = Marcado como una excepción

NOT NULL

Shape

entero

Indica el tipo de forma

Las tablas de áreas sin validar y de errores de topología se crean en el esquema del usuario que crea la topología. Las otras tablas se crean en el esquema del usuario administrador de ArcSDE.

Tablas de topología en SQL Server

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

Topologías en un documento 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.RJP.Landbase</CatalogPath>      <Name>sde.RJP.Landbase</Name>    <Children xsi:type="esri:ArrayOfDataElement">     <DataElement xsi:type="esri:DETopology">           <CatalogPath>/V=sde.DEFAULT/FD=sde.RJP.Landbase/TOPO=sde.RJP.Landbase_Topology</CatalogPath>          <Name>sde.RJP.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


3/6/2012