¿Recalcular la extensión completa de la clase de entidad de la geodatabase de archivos?

17

Tengo una featureclass en una geodatabase de archivos Esri. Cuando edito las funciones usando el editor en ArcMap, y elimino la mayoría de mis funciones y mantengo solo las que están en el medio, el comando de zoom a capa no funciona como se esperaba. En lugar de hacer zoom en la extensión de las características que permanecen en la clase de entidad, la extensión será la primera (que contiene todas las características eliminadas). Al revisar los valores de extensión en el cuadro de diálogo de propiedades para la clase de entidad, puedo ver claramente los valores antiguos. Así que la sesión de edición no parece alterar los valores de la extensión completa.

¿Hay alguna forma de recalcular estos valores?

Estoy bastante seguro de que este problema debería ocurrir a todos los que editen funciones en ArcMap ...

    
pregunta offermann 02.05.2012 - 16:24

7 respuestas

5

Esri ahora tiene una herramienta para esto en 10.4 (hooray): Recalculate Feature Class Extent.

Me estaba topando con este problema cuando estaba creando una clase de entidad y escribiendo geometría en ella con arcpy. Al parecer, esas herramientas no actualizan la extensión (probablemente una buena idea por razones de rendimiento).

He restablecido correctamente la extensión en 10.2.2 con la sugerencia de @Lou:

arcpy.CompressFileGeodatabaseData_management(output_workspace)
arcpy.UncompressFileGeodatabaseData_management(output_workspace)
    
respondido por el Curtis Price 12.04.2016 - 19:02
18

Haga clic derecho en la clase de entidad en ArcCatalog y vaya a las Propiedades. En la pestaña Extensión de la característica, haga clic en Recalcular. Y voilà!

Estoy usando ArcGIS 10.2.1

    
respondido por el Geoffroy Richer-Lalonde 02.10.2014 - 19:36
6

Compactar la geodatabase ordenará tu índice espacial

"Si agrega y elimina datos con frecuencia, debe compactar su archivo o geodatabase personal mensualmente. También debe compactar una geodatabase después de cualquier cambio a gran escala. Compensar el almacenamiento ordenando los registros y eliminando espacio no utilizado. Después de compactar, se puede acceder a los datos de cada archivo de manera más eficiente. La compactación también reduce el tamaño de cada archivo: es posible reducir el tamaño de una geodatabase a la mitad o más. "

enlace

Compacto (Gestión de datos)

"Se recomienda compactar geodatabases personales cuando tengan más de 250 MB. Si la entrada, eliminación o edición general de datos se realiza con frecuencia en una base de datos, la base de datos debe compactarse regularmente para garantizar un rendimiento óptimo. "

enlace

    
respondido por el Mapperz 02.05.2012 - 16:52
6

Aquí hay un complemento de ArcCatalog para ArcGIS 10 que agrega un comando para actualizar la extensión de la clase de entidad, probablemente utilizando el mismo método que el código VBA de @ Ragi's:

respondido por el blah238 02.05.2012 - 23:28
5

La extensión GeoDatabase siempre se expande, nunca se acorta automáticamente. La compactación y la compresión solo optimizan el almacenamiento y la fragmentación, pero no la extensión en sí. Probaría recreando primero el índice espacial y veré si hace el truco.

Actualización:

Ya que la reconstrucción del índice espacial no funciona, estoy seguro de que el siguiente código VBA hará:

Public Sub reCalcExt()
  Dim pGXApplication As IGxApplication
  Set pGXApplication = Application

  Dim pGxObject As IGxObject
  Set pGxObject = pGXApplication.SelectedObject

  If Not TypeOf pGxObject.InternalObjectName Is IFeatureClassName Then
    Exit Sub
  End If

  Dim pName As IName
  Set pName = pGxObject.InternalObjectName
  Dim pSchemaLock As ISchemaLock
  Set pSchemaLock = pName.Open

  pSchemaLock.ChangeSchemaLock esriExclusiveSchemaLock
  Dim pFeatureClassManage As IFeatureClassManage
  Set pFeatureClassManage = pSchemaLock
  pFeatureClassManage.UpdateExtent

  Exit Sub

ErrHandler:
  pSchemaLock.ChangeSchemaLock esriSharedSchemaLock
End Sub

Puede hacer esto en cualquier otro lenguaje de programación compatible con ESRI. El truco consiste en obtener un Schemalock y utilizar IFeatureClassManage :: Método UpdateExtent .

    
respondido por el Ragi Yaser Burhum 02.05.2012 - 21:03
4

No sé exactamente qué lo causa en las Geodatabases de archivos, pero sí puedo replicarlo y es algo que enfrenté antes. La única forma en que pude descubrir cómo evitarlo es Comprimir la geodatabase de archivos. Eso arreglará el problema de la extensión. Deberá descomprimirlo cuando haya terminado, porque no puede editar una geodatabase de archivos comprimidos.

Durante una sesión de edición / ArcMap cuando realmente está usando los datos, siempre puede seleccionar todos | zoom a seleccionado como una solución. No es genial, pero lo he usado en mi flujo de trabajo hasta que llegué a un punto de ruptura en el que podía hacer ese truco de compresión / descompresión.

Nota, la compactación no funcionará (al menos, no de manera confiable). Reconstruirá sus índices, pero lo he encontrado poco confiable para solucionar problemas de extensión. Todavía es algo que debes hacer de vez en cuando. Lo volví a intentar ahora mismo y no funcionó en mi conjunto de datos de muestra. YMMV.

    
respondido por el Lou 02.05.2012 - 16:56
3

Si desea actualizar la extensión de la clase de características en su documento mxd, esta porción de código podría ayudarlo:

Dim pLayer As ILayer
        Dim pEnumLayer As IEnumLayer
        Dim pFeatureLayer As IFeatureLayer
        Dim pFeatureClass As IFeatureClass
        Dim pFeatureClassManage As IFeatureClassManage


        pEnumLayer = pMap.Layers
        pLayer = pEnumLayer.Next

        Do Until pLayer Is Nothing
            If TypeOf pLayer Is FeatureLayer Then
                pFeatureLayer = pLayer
                pFeatureClass = pFeatureLayer.FeatureClass
                pFeatureClassManage = pFeatureClass
                pFeatureClassManage.UpdateExtent()
            End If
            pLayer = pEnumLayer.Next
        Loop
    
respondido por el Radek M. 13.11.2012 - 13:28

Lea otras preguntas en las etiquetas