Más

Problema al crear un punto IFeatureClass

Problema al crear un punto IFeatureClass


Estoy tratando de crear un IFeatureClass de punto, pero mi código no funciona.

Función pública CreatePointFeatureClass (ByVal featureClassName As String, _ ByVal featureWorkspace como IFeatureWorkspace) Como IFeatureClass 'Crea una instancia de la descripción de la clase de entidad para obtener los campos obligatorios. Dim fcDescription As IFeatureClassDescription = New FeatureClassDescriptionClass () Dim ocDescription As IObjectClassDescription = CType (fcDescription, IObjectClassDescription) Dim fields As IFields = New FieldsClass Dim fieldsEdit As IFieldsEdit = CType (campos, IFieldsEDeditCampo IFDit = Nuevo campo IFieldEdit) CType (fieldUserDefined, IFieldEdit) 'Configura la definición de geometría para el campo Forma. 'No es necesario establecer la referencia espacial, ya que se hereda del dataset de entidades. Dim geometryDef As IGeometryDef = New GeometryDefClass Dim geometryDefEdit As IGeometryDefEdit = CType (geometryDef, IGeometryDefEdit) 'Al establecer el tamaño de cuadrícula en 0, permite que ArcGIS determine los tamaños de cuadrícula apropiados para la clase de entidad. 'Si está en una geodatabase personal, el tamaño de la cuadrícula es 1,000. Si está en un archivo o en una geodatabase de ArcSDE, el tamaño de la cuadrícula se basa en la carga o inserción inicial de entidades. geometryDefEdit.GeometryType_2 = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint 'Establecer propiedades de campo estándar. fieldEdit.Name_2 = "SHAPE" fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry fieldEdit.GeometryDef_2 = geometryDefEdit fieldEdit.IsNullable_2 = True fieldEdit.Required_2 = True fieldsEdit.Add un campo X requerido. Dim field1 As IField = New FieldClass () Dim fieldEdit1 As IFieldEdit = CType (field1, IFieldEdit) fieldEdit1.Name_2 = "X" fieldEdit1.Type_2 = esriFieldType.esriFieldTypeDouble fieldsEdit.AddField (field1) 'Agregue un campo Y Double a los campos obligatorios . Dim field2 As IField = New FieldClass () Dim fieldEdit2 As IFieldEdit = CType (field2, IFieldEdit) fieldEdit2.Name_2 = "Y" fieldEdit2.Type_2 = esriFieldType.esriFieldTypeDouble fieldsEdit.AddField (field2) 'para agregar un campo doble de elevación requerido . Dim field3 As IField = New FieldClass () Dim fieldEdit3 As IFieldEdit = CType (field3, IFieldEdit) fieldEdit3.Name_2 = "Elevation" fieldEdit3.Type_2 = esriFieldType.esriFieldTypeDouble fieldsEdit.AddField (field3) 'Use IFieldChecker para crear una colección de campos validados. Dim fieldChecker As IFieldChecker = New FieldCheckerClass () Dim enumFieldError As IEnumFieldError = Nothing Dim validatedFields As IFields = Nothing fieldChecker.ValidateWorkspace = CType (featureWorkspace, IWorkspace) fieldChecker.Validate (fields, enumFieldError) señalar para determinar qué campos se modificaron durante la validación. 'Cree la clase de entidad. Atenuar featureClass As IFeatureClass = featureWorkspace.CreateFeatureClass (featureClassName, validatedFields, _ ocDescription.InstanceCLSID, ocDescription.ClassExtensionCLSID, esriFeatureType.esriFTSimple, _ "SHAPE", "") Volver featureClass End Function

La documentación dice que debe agregar una referencia espacial válida a su objeto geometryDefEdit.

Agregue estas líneas después de la creación de su objeto geometryDef (tomado de http://resources.esri.com/help/9.3/ArcGISengine/ArcObjects/esriGeodatabase/IFeatureWorkspace.CreateFeatureClass_Example.htm)

Dim spatialReferenceFactory Como ESRI.ArcGIS.Geometry.ISpatialReferenceFactory3 = Nueva ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass () Dim SpatialReference Como ESRI.ArcGIS.Geometry.ISpatialReference = spatialReferenceFactory.CreateProjectedCoordinateSystem (ESRI.ArcGIS.Geometry.esriSRProjCSType.esriSRProjCS_NAD1983UTM_20N) Dim spatialReferenceResolution Como ESRI .ArcGIS. () geometryDefEdit.SpatialReference_2 = SpacialReference

Como dijo Goldorak84, le falta una referencia espacial.

¿Puedo sugerir hacer un método de utilidad? Eso es así. Lo siento usando C # aquí.

ISpatialReference pública estática GetSpatialReference () {ISpatialReference SpacialReference; ISpatialReferenceFactory3 SpatialReferenceFactory = new SpatialReferenceEnvironmentClass (); SpatialReference = SpatialReferenceFactory.CreateSpatialReference ((int) esriRSGeoCSType.esriSRGeoCS_WSG1984); return SpacialReference; }

Obviamente, también querrá establecer su resolución y tolerancia allí.


Error tipográfico menor, reemplace esriSRGeoCSType.esriSRGeoCS_WGS1984 por esriRSGeoCSType.esriSRGeoCS_WSG1984


Problema de lectura de netcdf

Me las he arreglado para leer algunos archivos netcdf y hacer que se muestren correctamente. Algunos otros fallan miserablemente, ya que se ignora la información de coordenadas y el archivo se muestra hacia el sur y el este desde 0,0 & # 8230 ¿Es este un problema conocido? He estado mirando los archivos con ncdump, pero no he podido detectar ninguna diferencia que debería hacer que uno de ellos funcione y el otro falle. Al mirar los metadatos en qgis o arcgis, está claro que faltan muchos archivos que no se muestran correctamente.

Editar:
Al convertir los archivos de netcdf4 a netcdf3, funcionaron bien. ¿Es este un problema conocido en arcgis / qgis? (usando arcgis 10, parece usar gdal, pero no puedo encontrar qué versión, qgis 2.2 de osgeo4w usando gdal 1.10)

Edición 2:
Los archivos originales eran tan grandes que era un poco difícil compartirlos. Ahora he creado un archivo de ejemplo que se comporta de la misma manera: http://sickel.net/div/test.nc & # 8211 se crea a partir de http://sickel.net/div/test.cdl & # 8211 debería, por lo que entiendo, cubrir un área de -160 a -15 E, 20 & # 8211 60 N, es decir, la mayor parte de la tierra principal de EE. UU. y cerca del Reino Unido en el océano Atlántico, pero termina desde 0,0 y hacia el sur y hacia el este en qgis, en arcmap 10.0, termina como un punto en -160,20 & # 8230

2 respuestas

Hay errores en NetCDF en GDAL; consulte la lista al final de http://trac.osgeo.org/gdal/wiki/NetCDF para conocer los conocidos / identificados.

Es un poco difícil decir cuál de esos errores está afectando su situación particular, ya que no describió los datos, pero quizás el problema de soporte del "polo girado" en http://trac.osgeo.org/gdal/ticket/4285 es el "problema conocido" particular que estaba buscando.

Respondido hace 1 mes por BradHards con 2 votos a favor

El mismo problema con archivos netcdf muy simples creados por mí. Las dimensiones / variables lat y lon no se interpretan correctamente cuando están en formato netcdf4. Después de convertir a NetCDF3 con la herramienta ncks, funciona bien:

Ejecución de qgis 2.12.3-Lyon en Windows con gdal 1.11.2

Las dimensiones son lat y lon en grados. En CDL, el encabezado del archivo se ve así:


Cómo la IA falsifica las imágenes de satélite: un problema creciente de la "geografía deepfake"

Lo que puede parecer una imagen de Tacoma es, de hecho, una simulación, creada transfiriendo patrones visuales de Beijing a un mapa de un vecindario real de Tacoma. Crédito: Zhao et al., Cartografía y ciencia de la información geográfica

Un incendio en Central Park parece aparecer como una columna de humo y una línea de llamas en una imagen de satélite. Las luces de colores en la noche de Diwali en India, vistas desde el espacio, parecen mostrar una actividad de fuegos artificiales generalizada.

Ambas imágenes ejemplifican lo que un nuevo estudio dirigido por la Universidad de Washington llama "falsificación de ubicación". Las fotos, creadas por diferentes personas, para diferentes propósitos, son falsas pero parecen imágenes genuinas de lugares reales. Y con las tecnologías de inteligencia artificial más sofisticadas disponibles en la actualidad, los investigadores advierten que tal "geografía falsa" podría convertirse en un problema creciente.

Entonces, utilizando fotos satelitales de tres ciudades y basándose en métodos utilizados para manipular archivos de video y audio, un equipo de investigadores se propuso identificar nuevas formas de detectar fotos satelitales falsas, advertir sobre los peligros de los datos geoespaciales falsificados y pedir un sistema de verificación de hechos geográficos.

“No se trata solo de hacer Photoshopping. Hace que los datos parezcan increíblemente realistas ", dijo Bo Zhao, profesor asistente de geografía en la Universidad de Washington y autor principal del estudio, que se publicó el 21 de abril de 2021 en la revista. Cartografía y ciencia de la información geográfica. “Las técnicas ya están ahí. Solo estamos tratando de exponer la posibilidad de usar las mismas técnicas y la necesidad de desarrollar una estrategia de afrontamiento ".

Esta ilustración simplificada muestra cómo se puede generar una imagen satelital simulada (derecha) colocando un mapa base (Ciudad A) en un modelo de imagen satelital deepfake. Este modelo se crea distinguiendo un grupo de mapas base y pares de imágenes de satélite de una segunda ciudad (Ciudad B). Crédito: Zhao et al., 2021, Cartografía y ciencia de la información geográfica

Como señalan Zhao y sus coautores, las ubicaciones falsas y otras inexactitudes han sido parte de la elaboración de mapas desde la antigüedad. Eso se debe en parte a la naturaleza misma de traducir ubicaciones de la vida real en forma de mapa, ya que ningún mapa puede capturar un lugar exactamente como es. Pero algunas inexactitudes en los mapas son falsificaciones creadas por los cartógrafos. El término "ciudades de papel" describe ciudades, montañas, ríos u otras características falsas colocadas discretamente en un mapa para evitar la infracción de los derechos de autor. En el extremo más alegre del espectro, un mapa de carreteras oficial del Departamento de Transporte de Michigan en la década de 1970 incluía las ciudades ficticias de "Beatosu y" Goblu ", una obra de teatro sobre" Beat OSU "y" Go Blue ", porque el entonces líder del departamento quería dar un saludo a su alma mater mientras protegía los derechos de autor del mapa.

Pero con la prevalencia de los sistemas de información geográfica, Google Earth y otros sistemas de imágenes satelitales, la suplantación de ubicación implica una sofisticación mucho mayor, dicen los investigadores, y conlleva más riesgos. En 2019, el director de la Agencia Nacional de Inteligencia Geoespacial, la organización encargada de suministrar mapas y analizar imágenes satelitales para el Departamento de Defensa de EE. UU., Dio a entender que las imágenes satelitales manipuladas por IA pueden ser una grave amenaza para la seguridad nacional.

Estos son mapas e imágenes de satélite, reales y falsas, de un vecindario de Tacoma. La parte superior izquierda muestra una imagen del software de mapeo y la parte superior derecha es una imagen satelital real del vecindario. Los dos paneles inferiores son imágenes satelitales simuladas del vecindario, generadas a partir de datos geoespaciales de Seattle (abajo a la izquierda) y Beijing (abajo a la derecha). Crédito: Zhao et al., 2021, Cartografía y ciencia de la información geográfica

Para estudiar cómo se pueden falsificar las imágenes de satélite, Zhao y su equipo recurrieron a un marco de inteligencia artificial que se ha utilizado para manipular otros tipos de archivos digitales. Cuando se aplica al campo de la cartografía, el algoritmo esencialmente aprende las características de las imágenes de satélite de un área urbana, luego genera una imagen deepfake al alimentar las características de las características de la imagen de satélite aprendidas en un mapa base diferente, similar a cómo los filtros de imágenes populares pueden hacerlo. mapear las características de un rostro humano en un gato.

A continuación, los investigadores combinaron mapas e imágenes de satélite de tres ciudades, Tacoma, Seattle y Beijing, para comparar características y crear nuevas imágenes de una ciudad, extraídas de las características de las otras dos. Designaron a Tacoma como su ciudad de “mapa base” y luego exploraron cómo las características geográficas y las estructuras urbanas de Seattle (similar en topografía y uso de la tierra) y Beijing (diferente en ambos) podrían incorporarse para producir imágenes deepfake de Tacoma.

En el siguiente ejemplo, se muestra un vecindario de Tacoma en el software de mapeo (arriba a la izquierda) y en una imagen de satélite (arriba a la derecha). Las subsecuentes imágenes de satélite falsas profundas del mismo vecindario reflejan los patrones visuales de Seattle y Beijing. Los edificios de poca altura y la vegetación marcan la versión "Seattle-izada" de Tacoma en la parte inferior izquierda, mientras que los edificios más altos de Beijing, que AI emparejó con las estructuras de los edificios en la imagen de Tacoma, proyectan sombras, de ahí la apariencia oscura de las estructuras en el imagen en la parte inferior derecha. Sin embargo, en ambos, las redes de carreteras y la ubicación de los edificios son similares.

El ojo inexperto puede tener dificultades para detectar las diferencias entre lo real y lo falso, señalan los investigadores. Un espectador casual podría atribuir los colores y las sombras simplemente a una mala calidad de imagen. Para tratar de identificar una "falsificación", los investigadores se centraron en aspectos más técnicos del procesamiento de imágenes, como histogramas de color y dominios espaciales y de frecuencia.

Algunas imágenes satelitales simuladas pueden tener un propósito, dijo Zhao, especialmente cuando se representan áreas geográficas durante períodos de tiempo para, por ejemplo, comprender la expansión urbana o el cambio climático. Puede haber una ubicación para la que no hay imágenes durante un cierto período de tiempo en el pasado, o para pronosticar el futuro, por lo que crear nuevas imágenes basadas en las existentes, e identificarlas claramente como simulaciones, podría llenar los vacíos y ayudar proporcionar perspectiva.

El objetivo del estudio no era mostrar que los datos geoespaciales se pueden falsificar, dijo Zhao. Más bien, los autores esperan aprender a detectar imágenes falsas para que los geógrafos puedan comenzar a desarrollar herramientas de alfabetización de datos, similares a los servicios de verificación de datos actuales, para beneficio público.

"A medida que la tecnología continúa evolucionando, este estudio tiene como objetivo fomentar una comprensión más holística de la información y los datos geográficos, de modo que podamos desmitificar la cuestión de la fiabilidad absoluta de las imágenes de satélite u otros datos geoespaciales", dijo Zhao. “También queremos desarrollar un pensamiento más orientado al futuro para tomar contramedidas como la verificación de datos cuando sea necesario”, dijo.

Referencia: & # 8220 ¿Geografía falsa profunda? Cuando los datos geoespaciales se encuentran con Inteligencia Artificial & # 8221 por Bo Zhao, Shaozeng Zhang, Chunxue Xu, Yifan Sun y Chengbin Deng, 21 de abril de 2021, Cartografía y ciencia de la información geográfica.
DOI: 10.1080 / 15230406.2021.1910075

Los coautores del estudio fueron Yifan Sun, un estudiante de posgrado en el Departamento de Geografía de la Universidad de Washington Shaozeng Zhang y Chunxue Xu de la Universidad Estatal de Oregon y Chengbin Deng de la Universidad de Binghamton.


Martes, 29 de junio de 2010

Semana 7: Decisiones de ubicación: por su cuenta

Los mapas que se muestran en la publicación a continuación se completaron como parte de la clase del programa de certificación GIS en línea de la Universidad de West Florida, Aplicaciones de sistemas de información geográfica (GIS4048 / 5100). Los mapas se completaron para la tarea de la semana 7, que consistía en crear un conjunto de mapas similar a la actividad de la semana pasada, excepto que se adaptaron a una búsqueda de proximidad que los estudiantes desearan.

Elegí hacer un estudio de proximidad similar al de las últimas semanas basado en la búsqueda de una nueva casa en el condado de Marion, Florida, realizada por una pareja, John y Wilma Green. Los verdes ficticios están buscando una casa en el condado de Marion, en su mayoría rural, con la esperanza de encontrar una casa a buen precio que cumpla su sueño de vivir en un lago de tamaño decente, digamos 200 acres o más. El Sr. Green todavía necesita viajar a su trabajo a lo largo de la Interestatal 75 (I-75) y, por lo tanto, también está buscando una ubicación que esté cerca de una entrada / salida a la I-75, aunque no demasiado cerca. Los Verdes también son ávidos ciclistas y están interesados ​​en encontrar propiedades que estén cerca de los senderos designados para bicicletas. Finalmente, los Verdes esperan encontrar una casa que no esté en una zona menos densa del condado.

Se ha preparado un paquete de mapas para que los Verdes les presenten el condado de Marion y resalten las áreas dentro del condado que pueden satisfacer mejor sus necesidades según los criterios antes mencionados.


El primero es un mapa base del condado que destaca algunas de las características más notables, como las ciudades, las carreteras y las tierras públicas, así como los lagos y los senderos para bicicletas. Los Verdes pueden usar este mapa para ayudarlos a orientarse con respecto a dónde se encuentran los lugares y las características mientras continúan buscando un hogar.


El siguiente mapa, el mapa de preferencias personalizadas, se ha preparado utilizando los diversos criterios especificados por los Verdes como importantes en la decisión de ubicación de su casa. Especificaron seis criterios:

1. Proximidad a las rampas de entrada y salida de la Interestatal 75
2. Proximidad a la Interestatal 75, pero no demasiado cerca.
3. Zonas que tienen menor densidad de población.
4. Áreas que tienen valores de propiedad más altos.
5. Proximidad a rutas ciclistas designadas.
6. Proximidad a un lago de tamaño razonable (preferiblemente en el lago).

El mapa muestra los resultados del análisis para determinar qué tan cerca está un área dentro del condado de cada una de las características físicas o cómo se clasifican varias áreas con respecto a la densidad de población y el valor de la vivienda.


Finalmente, el último mapa muestra dos análisis ponderados realizados utilizando el programa GIS ponderando cada una de las prioridades de Green en función de su importancia. En el mapa de la izquierda, los Verdes especificaron que lo más importante para ellos era la proximidad de un lago y, por lo tanto, se clasificó más alto en la superposición (30%). La densidad de población fue la siguiente en importancia (20%), seguida por el valor de la vivienda y la proximidad a los senderos para bicicletas. Los criterios de la carretera se ponderaron cada uno en un 10% con la esperanza de encontrar propiedades a lo largo de ese corredor que fueran buenas apuestas. Las mejores opciones, varias de las orillas del lago realmente contiguas se muestran como las áreas de color azul oscuro.

Para el mapa ponderado de la derecha, la preocupación por la proximidad a la carretera se eliminó por completo como un problema, aunque la proximidad a las salidas se dejó en un 15%. La idea era que el criterio de salida atrajera más áreas de alto rango que estuvieran cerca de la carretera en el norte cerca de la frontera del condado de Alachua alrededor del lago Orange. Sin embargo, sorprendentemente, eso no ocurrió. Más áreas cumplieron con los nuevos criterios, pero más se encontraban en un corredor al este de la carretera, pero el área de Orange Lake aún no se registró como una de las principales prioridades para la búsqueda de viviendas. Es posible que las clasificaciones para las salidas / entradas no se registraron de la manera necesaria para generar el resultado anticipado. Desafortunadamente, el tiempo era esencial y, dado que ambos mapas proporcionaron datos útiles para los Verdes, se incluyeron en el paquete final de búsqueda de viviendas.


Viernes, 21 de noviembre de 2014

Análisis de red

El objetivo de este laboratorio fue presentar, familiarizarse y realizar análisis de redes. Para alcanzar este objetivo, el laboratorio trabajó con datos que giraban en torno al tema de un semestre de la extracción de arena fraccionada. El objetivo del laboratorio era averiguar el daño potencial que se puede hacer a la red de carreteras de Wisconsin por condado debido al aumento de camiones que transportan arena. En la primera parte de este laboratorio, desarrollé un script de Python que ayudó a consultar las minas deseadas en función de un conjunto específico de criterios.

Para averiguar el daño que los camiones están haciendo a las carreteras, primero tenía que averiguar qué rutas tomarían con mayor probabilidad.Para hacer esto, utilicé la herramienta de instalación más cercana dentro de ArcMap que estableció la terminal ferroviaria más cercana a cada mina. Dado que la arena se transporta más fácilmente a través de los ferrocarriles, era seguro decir que los camiones que transportaban la arena probablemente irían a la terminal ferroviaria más cercana. Una vez que se identifica la terminal ferroviaria más cercana, la herramienta puede calcular la ruta más rápida, dentro de la red de carreteras, desde la mina hasta la terminal (Ver Figura 1).

Figura 1: Mapa de rutas de camiones de arena frac

Después de que se estableció la ruta más rápida, necesitaba agregar el conjunto de datos de mi condado para calcular la longitud de la ruta para cada condado. Para hacer esto utilicé la herramienta de identificación, que toma una clase de entidad y le da atributos de otra clase de entidad superpuesta, en este caso fueron las rutas que se superponen a los condados. Después de que se ejecutó la herramienta de identidad, ahora tenía que averiguar cuánto tiempo tenían las rutas en cada condado. Como ya había un campo de longitud para las rutas, todo lo que tenía que hacer era proyectar el conjunto de datos para que la unidad de medida cambiara de grados decimales a una unidad (metros) que pueda realizar operaciones aritméticas. Una vez que mis datos estaban en metros, podía realizar una serie de sumar y calcular campos para descubrir cuánto dinero cuesta tener los camiones de arena en la carretera. A continuación se muestra el modelo de datos que muestra todas las diferentes herramientas utilizadas dentro de este proceso.

  • Los camiones se dirigirán a la terminal ferroviaria más cercana de cada mina.
  • Cada mina de arena lleva 50 viajes en camión a la terminal ferroviaria por año.
  • El daño causado a las carreteras cuesta 2,2 centavos por milla
  • Distancia en millas = Distancia en metros / 1609
  • Millas recorridas por año = Distancia en millas * 100 (50 viajes en camión multiplicados por 2 debido al viaje de regreso)
  • Costo de cada condado por año = Millas recorridas por año * 0.022 (2.2 centavos)




Figura 3: Tabla de cada condado y sus costos estimados de daños causados ​​por el transporte de arena de fractura

Los resultados de la tabla muestran que cada año hay una cantidad significativa de daños a las carreteras dentro de los condados afectados por el transporte de arena fraccionada. Con la industria de la extracción de arena de fracturamiento creciendo rápidamente, se espera que los daños aumenten. Los efectos en las carreteras del transporte de arena pueden ser un tema fácil de pasar por alto y, con suerte, números como este ayudarán a evitar que eso suceda en el futuro. Estos resultados plantean una pregunta importante para que el público en general y los políticos estatales reflexionen al tomar decisiones sobre las minas de fracturamiento de arena. Esa pregunta es, ¿los efectos secundarios de la minería de arena de fracturamiento valen sus beneficios? & # 65279

En general, este laboratorio me mostró cómo realizar análisis de red. El análisis de redes es esencial para comprender si va a ingresar al campo profesional de SIG y este laboratorio me ha ayudado a darme cuenta de eso. Los números que se calcularon en los resultados no significan demasiado debido a todas las suposiciones, pero quizás con una investigación más extensa se podría realizar un estudio para determinar los verdaderos efectos del transporte de arena de fractura. Sin embargo, a pesar de la falta de resultados precisos, el laboratorio brindó la oportunidad de desarrollar mis habilidades de análisis de redes.


Asignación de infraestructura de servicios públicos y migración de aplicaciones de Avenue a VBA

Este documento presenta los consejos y métodos técnicos para el mapeo efectivo de la infraestructura de servicios públicos municipales. Además, se abordan los aspectos específicos del uso de VBA basado en ArcInfo para el desarrollo de aplicaciones. Los usuarios experimentados se beneficiarán de la exposición a la metodología detallada presentada con respecto a la creación de un mosaico de servicios públicos integrado en la estación de trabajo ArcInfo y el posterior mapeo de características en el modelo de datos de la geodatabase personal. El diseño de la interfaz gráfica de usuario se aborda tanto conceptual como técnicamente, con especial atención a la conversión del código Avenue existente al equivalente de VBA. Se proporcionan ejemplos de código extensos en paralelo: utilizando formatos de lenguaje VBA y Avenue.

Introducción

El siguiente documento está dirigido a usuarios experimentados de ArcInfo al presentar los métodos y consejos técnicos que abordan varios problemas específicos relacionados con la aplicación de G.I.S. en un entorno de gobierno local. Además de la presentación de metodologías específicas, este documento se esfuerza por demostrar la viabilidad de que una entidad del gobierno local logre un nivel relativamente sofisticado de G.I.S. desarrollo, sin invertir una pequeña fortuna en la subcontratación de consultores especializados. Al igual que con cualquier decisión involucrada en la implementación de un G.I.S., existen tanto beneficios como costos que resultan.

Los beneficios de realizar internamente los métodos descritos en este documento son numerosos e incluyen los siguientes: a.) Ausencia de costosas "Evaluaciones de necesidades" debido al desarrollo / crecimiento gradual y progresivo del sistema, b.) Facilidad de depuración en el caso de errores del sistema debido a la familiaridad íntima con los datos y las aplicaciones personalizadas, c.) facilidad de adaptación a cambios futuros en la estructura de la base de datos / conjunto de datos, d.) facilidad de personalizaciones de aplicaciones futuras, ye.) familiaridad drásticamente aumentada del personal con cada terreno individual parcela y las características de la infraestructura mapeable. Además, la creación interna de aplicaciones personalizadas da como resultado interfaces de usuario que se adaptan completamente a las necesidades de la organización en particular y, por lo tanto, no contienen módulos y / o métodos "enlatados".

Los costos asociados con estos métodos internos implican la cantidad de tiempo requerido para el desarrollo / crecimiento gradual y progresivo de la evolución de G.I.S. funcionalidad. Se considera que una cantidad de tiempo razonable para G.I.S. El personal para desarrollar e implementar un sistema completamente funcional (mapeo de infraestructura y desarrollo / implementación de GUI) es de aproximadamente 3 a 4 años. Un consultor especializado, por otro lado, probablemente podría lograr un nivel equivalente de desarrollo (o más) en 6-12 meses, dependiendo del alcance de sus aplicaciones "personalizadas" existentes.

Al igual que con cualquier curso de acción que se caracterice tanto por los costos como por los beneficios, se pueden presentar argumentos válidos para ambas partes. Sin embargo, la diferencia entre subcontratar a G.I.S. El desarrollo y la realización de los métodos de este documento, en la empresa, pueden fácilmente suponer un gasto de más de un millón de dólares más las subsiguientes tarifas anuales de mantenimiento. Si bien este proceso es mucho más lento que subcontratar todo, se considera que los beneficios descritos anteriormente son casi inconmensurables.

Métodos

La ciudad de Coconut Creek, Florida, ha tomado la iniciativa de realizar una conversión interna de toda la infraestructura de servicios públicos desde dibujos de mylar a datos espaciales digitales en un Sistema de Información Geográfica (G.I.S.) completamente funcional. Esto incluye la fase inicial de hacer un inventario y catalogar minuciosamente todos los dibujos de registros archivados, seguida del escaneo de cada documento. ArcInfo de Esri (versión 8.0.2 y 8.1) se implementó posteriormente para rotar, escalar, transformar y recortar cada imagen digital mediante un procedimiento de georreferenciación. Una vez que esto se logró, este mismo producto de software se utilizó para mapear toda la información pertinente de puntos y líneas en una geodatabase personal en el sistema de coordenadas del plano de estado.

Además, la ciudad de Coconut Creek ha logrado el desarrollo de aplicaciones internas personalizadas que se requieren para el recién creado G.I.S. los datos sean fácilmente accesibles para los usuarios de la red. Esta interfaz gráfica de usuario (GUI) se desarrolló e implementó inicialmente en ArcView 3.1 utilizando el lenguaje de programación Avenue. Posteriormente, esta aplicación GUI se volvió a crear en ArcInfo 8.0.2 / 8.1 utilizando la versión Esri de Visual Basic [Visual Basic para Aplicaciones (VBA) basado en ArcInfo].

Digitalización de dibujos de registros impresos

Se estima que la ciudad de Coconut Creek tiene más de 3300 dibujos de construcción registrados archivados en dos grandes gabinetes de almacenamiento de mylar. De estos dibujos, el G.I.S. En la actualidad, la sección ha escaneado aproximadamente el 80% de los dibujos de registro mencionados anteriormente utilizando un escáner monocromático (B / N) de gran formato (24 "x36") que posee una sola cámara. Las imágenes resultantes se crearon con una resolución de 500 ppp y se guardaron utilizando un formato de imagen TIFF con compresión LZW. En total, se han escaneado 2.640 archivos y se han organizado en 444 carpetas. El nivel superior de esta estructura de directorio está gobernado por un sistema de cuadrícula rectangular definido por un método Sección-Municipio-Rango (S-T-R). Cada Townhip-Range se compone de 36 secciones, con cada sección de aproximadamente una milla cuadrada de área. El origen de este sistema de cuadrícula se encuentra en Tallahassee, Florida. Las divisiones de municipio aumentan en una orientación Norte-Sur y las divisiones de Rango aumentan en una dirección Este-Oeste. La ciudad de Coconut Creek, por ejemplo, está aproximadamente en el centro de las secciones 19 y 20 del municipio 48 sur, rango 42 este. En total, el nivel superior de la estructura de directorios de archivos escaneados de Coconut Creek se compone de 17 carpetas S-T-R únicas. Debajo de la carpeta de cada sección se encuentra una lista de subdirectorios que corresponden a la lista actual de placas grabadas (o en algunos casos, repeticiones) dentro de esa sección. En el caso de placas que abarcan límites de sección, se utiliza un método ponderado para determinar la sección dominante por porcentaje de área. Los as-construidos escaneados se colocaron en el directorio de la Sección dominante con archivos de texto (Readme.txt) que contenían información de ubicación del directorio en los subdirectorios de la Sección adyacente. Todos los plat mylars escaneados residen en este nivel de nombre de plataforma en la estructura de directorios. En raras ocasiones, el número de folio del Tasador de propiedades del condado de un plano en particular ha sido reemplazado por el de un plano del sitio del condado y, en tal caso, el nombre del plano del sitio se usaría para representar la propiedad. En el nivel de subdirectorio terciario, todas las carpetas corresponden a los nombres de los planos del sitio del condado o los nombres de desarrollo de la comunidad (ver Figura 1).

Figura 1 . Ejemplo de estructura de directorio de archivos escaneados y convenciones de nomenclatura de archivos estandarizadas

Utilidad perfecta Creación Moasic As-Built

El entorno de ArcInfo Workstation se ha utilizado principalmente para la creación del mosaico de utilidad tal como se construyó. Más específicamente, los comandos REGISTRAR y RECTIFICAR se han utilizado para georreferenciar una parte de las aproximadamente 2000 hojas de construcción que pertenecen al área de servicio de Coconut Creek Utility (nota: excluye hojas de construcción escaneadas, como detalles, secciones transversales, portadas, etc.). Antes del registro real, cada imagen de construcción de agua, alcantarillado o drenaje se importaba a Corel PhotoPaint. Luego, las imágenes se volvieron a muestrear a 300 ppp para guardarlas como TIFF sin comprimir. Este paso era necesario ya que la Ciudad no tiene licencia de compresión LZW en ArcInfo y el tamaño del archivo sería inmanejable de otra manera. La herramienta de máscara irregular se usó luego en Corel PhotoPaint para copiar las regiones apropiadas de la imagen muestreada nuevamente y, por lo tanto, eliminar la información no deseada. Dependiendo del contenido del archivo as-built particular, al guardar, la imagen as-built recién re-muestreada y recortada se colocó en uno de los siguientes directorios de archivos: .. ScannedFiles CompositeAsBuilts Water, .. W&S,. . Alcantarillado, o .. Drenaje.

A continuación, la imagen se llevó a ArcInfo Workstation para su registro. El proceso de registro requiere el uso de datos de cobertura existentes para georreferenciar las imágenes ráster. En el caso del proyecto de la ciudad de Coconut Creek, se utilizó un mapa base de alta precisión posicional horizontal como datos de cobertura. Este mapa base de parcelas de grado topográfico fue creado para la ciudad por la oficina del tasador de propiedades del condado de Broward en su esfuerzo por crear un mapa base del condado de 440 millas cuadradas. En el curso de este proyecto de mapeo se implementó un GPS cinemático en tiempo real (precisión subcentimétrica) para establecer una red de puntos de control en todo el condado. Se estima que el mapa base de la parcela resultante utilizado en este proyecto de Coconut Creek tiene un error horizontal de menos de 6 pulgadas en cualquier ubicación dada.

REGISTRO es un comando ARC que inicia una visualización interactiva de múltiples ventanas que permite al usuario georreferenciar una imagen utilizando datos de cobertura existentes. REGISTRO utiliza enlaces definidos por el usuario para aplicar una transformación afín (primer orden, ecuación lineal) para calcular la cantidad de escala, rotación y traslación requerida para alinear la imagen con las coordenadas del mapa. Como tal, la escala y la rotación de la imagen georreferenciada no deben variar a lo largo de la imagen. Se requiere un mínimo de tres enlaces definidos por el usuario, o puntos de control, para el proceso de georreferenciación. En la mayoría de los casos, el registro de láminas según lo construido en el proyecto de la Ciudad de Coconut Creek hizo uso de tres puntos de control, preferentemente a lo largo de tres bordes / esquinas de la imagen. La bondad de ajuste se determinó visualmente bloqueando la imagen transformada y la línea de datos de cobertura en la ventana de superposición del entorno de REGISTRO. En el caso de un registro deficiente (> 3 pies de compensación), el proceso se repitió con hasta cuatro puntos de control definidos por el usuario. Cuando se utilizan más de tres enlaces con REGISTRO, el error se puede evaluar mediante el informe de solución de mínimos cuadrados proporcionado por ArcInfo. En el caso del proyecto de la ciudad de Coconut Creek, la bondad del ajuste quedó por determinar visualmente incluso en el caso de cuatro enlaces. Una vez que el registro fue aceptable (es decir, la superposición que muestra un desplazamiento de línea / imagen de menos de 3 pies), el proceso de registro se completó guardando la transformación en un archivo mundial (* .tfw). Posteriormente, el proceso de registro fue seguido por la rectificación de la imagen original basada en la información guardada en el archivo mundial. RECTIFICAR es el comando ArcInfo que aplica la transformación guardada de forma permanente a la imagen, creando una nueva imagen georreferenciada que se rota, escala y transforma correctamente a las coordenadas del mapa.

Mapeo de características de servicios públicos en la geodatabase personal

El mapeo de características de la utilidad se realizó en el entorno de escritorio de ArcInfo 8.0.2 / 8.1. Se tomó la decisión de crear una GeoDatabase personal (pGDB) para utilizar las capacidades de mapeo avanzadas disponibles en ArcMap. El diseño de la geodatabase, incluidas las propiedades de la clase de entidad, se resume en la Tabla 1. Como puede verse, se asignaron automáticamente varios valores predeterminados a las tablas de atributos de cada entidad recién creada de una determinada clase de entidad. Además, no se crearon reglas de validación de atributos para los subtipos definidos (es decir, no se crearon dominios de atributos, reglas de conectividad ni reglas de relación). Una vez que se crearon todas las clases de entidad y sus propiedades del pGDB, se creó un documento ArcMap separado (* .mxd) para cada una de las tres capas de servicios públicos: agua, alcantarillado y drenaje. En el nivel superior de la leyenda de cada documento, todas las capas de datos de entidades correspondientes se colocaron en el orden: punto, línea, polígono. Debajo de estos conjuntos de datos, se colocó y mostró una fotografía aérea en blanco y negro de alta resolución con una transparencia del 35%. Luego, cada imagen georreferenciada como construida se trajo al documento de ArcMap respectivo y se colocó en el nivel inferior de la leyenda ordenada entre sí para lograr la máxima visibilidad de cada imagen cuando se muestra en el mosaico. De esta manera, la fotografía aérea es lo suficientemente transparente como para ver a través, lo que permite al usuario ver simultáneamente el G.I.S. capas de datos, fotografías aéreas y planos de construcción escaneados.

Tabla 1 . Resumen de las clases de entidades de la geodatabase personal creadas para el mapeo de la infraestructura de servicios públicos en la ciudad de Coconut Creek. Además, se muestran los subtipos definidos y los valores de atributo predeterminados asignados automáticamente.

La digitalización de las características individuales del mapa se realizó posteriormente mediante el seguimiento de la línea de trabajo y las características puntuales indicadas en las construcciones digitales georreferenciadas. La digitalización de nuevas entidades en Desktop ArcInfo se caracteriza porque la nueva entidad se muestra con la simbología correcta en el instante en que se crean. Además, la fotografía aérea transparente se puede mostrar sobre el mosaico de construcción georreferenciado para ayudar aún más en el proceso de digitalización. A medida que se crea cada característica de punto / línea, se realiza cualquier modificación a las asignaciones de atributos predeterminadas. Por ejemplo, si se crea una línea de agua, el atributo predeterminado asignado al campo TIPO es 8 "DIP. Si esta línea principal está delineada como una línea principal de 6" en la imagen georreferenciada como construida, el valor se puede modificar inmediatamente en el " ventana de atributos "iniciada desde la barra de herramientas del editor. En el proyecto Coconut Creek, se decidió digitalizar los símbolos de puntos en un orden específico para lograr la visibilidad de la característica deseada. Los símbolos de puntos creados en un pGDB se colocan en capas en la pantalla de acuerdo con el orden en que se digitalizan. Por lo tanto, fue necesario determinar el orden de digitalización más efectivo para lograr la visibilidad óptima de la simbología de puntos de este proyecto (ver los símbolos en la Figura 2). Por ejemplo, las T se digitalizaron primero, seguidas de las válvulas de compuerta (o válvulas de hidrante), seguidas de reductores y luego hidrantes. Este orden se implementó principalmente debido a la visibilidad, pero también puede indicar la importancia de las diversas funciones.

Figura 2 . Simbología de mapeo actual para entidades puntuales dentro de la GeoDatabase personal de Coconut Creek

El entorno de ajuste dinámico proporciona un medio rápido no solo para cambiar la función de ajuste actual, sino también para cambiar entre conjuntos de datos de funciones. Además, se puede invocar simultáneamente una matriz jerárquica completa de características de instantáneas activas. En el caso de las líneas de alcantarillado, las tuberías principales por gravedad se crearon encajando los extremos de cada arco en las bocas de alcantarillado creadas anteriormente. Posteriormente, los laterales de las alcantarillas se encajaron en los arcos de las tuberías de gravedad recién digitalizadas. De esta manera, las tuberías principales de gravedad no se dividen en segmentos de línea por los laterales de conexión (como en la realidad), y son continuas de boca a boca. No obstante, los laterales de alcantarillado se encajan a presión en la ubicación exacta del borde de la red de gravedad. En el caso del sistema de agua, las redes de distribución se digitalizaron primero, con un ajuste a los puntos finales de la red de agua (nodos). Los arcos principales de transmisión se rompieron en las ubicaciones de construcción de todas las estructuras de agua (tees, válvulas de compuerta, reductores, etc.). La digitalización de la red eléctrica primero permitió a la ciudad aprovechar al máximo las opciones de dibujo paralelo, perpendicular y ángulo especificado disponibles en el entorno de escritorio. Posteriormente, las características de los puntos de agua se ajustaron a los nodos de la red principal de agua, y las líneas de servicio de agua se ajustaron a los bordes del arco de la red para lograr la misma conectividad que se describe para el sistema de alcantarillado.

Migración de la interfaz gráfica de usuario de Avenue a VBA

Los fundamentos necesarios para la migración de Arc Avenue a VBA para ArcInfo se encontraron en la publicación de Esri: ArcObjects Developer's Guide. Este es uno de los numerosos manuales que proporcionó Esri con ArcInfo 8.0.2 (consulte también: ArcGIS Disk # 3: Libros digitales y mapas de muestra "Libros digitales ArcObjects GettingStartedIn VB" y .. ExploringArcObjects "). de estas publicaciones proporcionan ejemplos de conversión de código (de Avenue a VBA), proporciona ejemplos de VBA simples (y complejos) que brindan información sobre la sintaxis y la estructura de la codificación en el nuevo entorno de desarrollo.Estos ejemplos iniciales son esenciales debido al hecho de que ArcGIS 8.1 se basa en un código fuente de lenguaje compilado, lo que hace imposible el examen de textura de los scripts del sistema. Además, algunos de los ejemplos incluidos en esta publicación de la Guía del desarrollador demuestran cómo se puede usar el código VBA para ejecutar los comandos integrados de los menús, botones y herramientas existentes. Las características adicionales del entorno VBA incluyen el uso requerido de subrutinas, módulos y funciones, así como la necesidad de una declaración de variable [definir el tipo de variable (es decir, myVar como entero, cadena, etc.) o establecer la herencia de clase de variable ( pVar como ICollection)]. Las subrutinas y funciones reemplazan la necesidad de los numerosos archivos de script Avenue, y la declaración de variables ya no está simplemente implícita en la interfaz DocGui que se está implementando (es decir, Vista, Diseño, Tabla, etc.). En ArcInfo 8.1, VBA contiene el modelo de objetos basado en COM más grande jamás creado en cualquier aplicación. De ello se deduce que el modelo de objetos también es el más complejo y extenso. La declaración de variable es claramente la parte más difícil de la codificación en VBA para ArcGIS.

De importancia primordial en el proceso de migración de GUI, es la existencia / desarrollo de diagramas de flujo programáticos. Como se muestra en el Apéndice II y IV, la Ciudad de Coconut Creek ha creado un diagrama de flujo programático para el desarrollo actual de GUI utilizando tanto Avenue como VBA. El redesarrollo de la funcionalidad de la GUI se ha logrado emulando la función de cada rutina, una a la vez, en un orden de arriba hacia abajo. Al tener el diagrama de flujo a mano, cada rutina se puede examinar individualmente aislando todos los scripts y diálogos de Avenue asociados. Una vez hecho esto, cada cuadro de diálogo se puede volver a crear gráficamente en el entorno de desarrollo de VBA, con el código adjunto a los eventos de formulario para emular la funcionalidad original de Avenue. La única excepción a esto fue en el caso de la rutina UBICACIÓN del formulario "ParcelSearch". En este caso, era necesario que la aplicación hiciera zoom a la zona de la ciudad seleccionada (haciendo clic en el usuario), seguido inmediatamente por el zoom a la zona seleccionada. El intento inicial implicó la ejecución de la herramienta incorporada "Query_SelectFeatures", seguida de "Query_ZoomToSelected". Esto no puede funcionar ya que la naturaleza multiproceso de VBA en ArcInfo 8.1 hace que el comando de acercamiento se ejecute simultáneamente con el comando de selección de entidad. En este caso, se creó una biblioteca de vínculos dinámicos active-X (* .dll) para construir una herramienta de selección y zoom personalizada. Este método requiere el uso de VB 6.0 para crear un proyecto independiente al que se ha importado el módulo ArcID. En lugar de que este proyecto de VB se compile en un archivo * .exe estándar, se compila en un * .dll que luego se puede agregar como un recurso al proyecto de VBA. A continuación, se describe un ejemplo paso a paso de esta técnica:

De esta manera, el evento de mouse hacia abajo se asigna para seleccionar un polígono mediante el clic del mouse del usuario, mientras que el evento de mouse hacia arriba se asigna para hacer zoom en el polígono seleccionado al soltar el botón del mouse.

Al igual que en el problema de subprocesos múltiples descrito anteriormente, el uso de llamadas a subrutinas o funciones definidas por el usuario puede provocar que el código se ejecute en paralelo cuando se pretende que se ejecute secuencialmente. En estos casos, donde no existe el problema de esperar a que una herramienta reciba información del usuario, el uso de la declaración "DoEvents" es suficiente para producir la ejecución de modo que el sistema operativo pueda procesar otros eventos simultáneamente (ver Apéndice VI ).

Discusión

El objetivo de esta sección es discutir las evaluaciones del autor en cuanto a la aplicabilidad, idoneidad y relevancia del trabajo relacionado con G.I.S. realizado por la ciudad de Coconut Creek. Lo más importante es transmitir al lector una idea de lo que funcionó bien, lo que no funcionó y lo que hubiéramos hecho de manera diferente si tuviéramos la oportunidad de comenzar de nuevo. Es probable que la comprensión del razonamiento detrás de la metodología empleada sea tan importante como la metodología en sí.

Consideraciones en la digitalización de dibujos de registros impresos

Es de suma importancia para la organización que comienza un proceso de escaneo a gran escala, primero hacer un inventario completo de todas las parcelas de propiedad dentro de sus límites legales (ver Apéndice I). La esencia de la estructura del directorio de imágenes escaneadas radica en el hecho de que la ruta del directorio para las construcciones digitales de una parcela es concatenada dinámicamente por la GUI, ya que el sistema es consultado por el usuario (vea el ejemplo de código # 3 en los Apéndices III y VI). . Si el archivo digital está mal construido o lleno de forma inexacta, el resultado final será que los dibujos de registro correspondientes se volverán inaccesibles. En otras palabras, la ubicación final del directorio de un archivo en particular determinará si las aplicaciones GUI posteriores lo encontrarán. Además, la convención de nomenclatura de archivos adoptada determinará la utilidad del archivo para los usuarios finales reales. Con respecto a la parte física del proceso de escaneo, la ciudad de Coconut Creek ha implementado un sistema que utiliza un escáner monocromático (B / N) de gran formato (24 "x 36") con una sola cámara. Las mejoras futuras incluirán el cambio a un escáner digital de dos cámaras para una mayor velocidad de escaneo. Otros cambios serán una reducción de la resolución de la imagen escaneada (300 dpi), para eliminar la necesidad de compresión LZW. Una resolución de archivo escaneado de 500 ppp es excesiva, incluso para el trazado a gran escala.

Creación de mosaicos según lo construido

Con respecto al proceso de creación del mosaico As-Built, los comandos REGISTRAR y RECTIFICAR se han utilizado en ArcInfo Workstation debido a la ausencia de una capacidad de georreferenciación en el entorno de escritorio de ArcInfo 8.0.2. REGISTRO es un comando ARC que utiliza enlaces definidos por el usuario para aplicar una transformación afín para calcular la cantidad de escala, rotación y traslación requerida para alinear la imagen con las coordenadas del mapa. ¡Esta transformación afín no borra la imagen! La rotación, la traslación y la escala se aplican de manera uniforme en toda la imagen. Por lo tanto, se deduce que para que el proceso de registro sea exitoso, los datos de cobertura del mapa base deben poseer un grado relativamente alto de precisión posicional horizontal (preferiblemente mapeo de grado topográfico), para encajar con la ingeniería "a escala" como -imágenes construidas. Es importante tener en cuenta que esta misma metodología se puede adaptar para trabajar en la funcionalidad de georreferenciación proporcionada en el entorno de escritorio del ArcInfo 8.1 recién lanzado. Además, la georreferenciación en 8.1 permite la rectificación de una imagen escaneada a una fotografía aérea rectificada existente. Esta puede ser una capacidad poderosa para las organizaciones que han invertido en fotografía aérea orto-rectificada de alta precisión posicional, a diferencia de un mapa base de parcelas de grado topográfico (como en el caso de la ciudad de Coconut Creek). Sin embargo, debe tenerse en cuenta que si se utiliza ArcInfo 8.1, no se recomiendan las ecuaciones no lineales de segundo / tercer orden. Los dibujos de registros de láminas de caucho no deben adoptarse como metodología donde la precisión horizontal es la principal preocupación.

Con respecto a la metodología de la estación de trabajo, REGISTER calcula el ajuste basándose en el supuesto de que todos los enlaces son de la misma calidad. Por lo tanto, si se utilizan cuatro o más enlaces, el enlace 3 puede mostrar un error alto en el informe de mínimos cuadrados. Usando la suposición anterior, eliminar el enlace 3 debería resultar en un mejor registro general. En realidad, el enlace 3 podría ser un enlace de alta calidad cuya distancia de desplazamiento está siendo influenciada por otros enlaces de baja calidad. Por lo tanto, se determinó que la inspección visual de la bondad del ajuste (examinando gráficamente la cantidad de compensación entre la imagen y la cobertura) era de suma importancia en el proyecto de la Ciudad de Coconut Creek. Por supuesto, aumentar el número de enlaces diluirá el efecto deletéreo de la creación de un enlace de baja calidad. Una opción mucho mejor es confiar en el método de 3 enlaces para señalar inmediatamente la presencia de un enlace erróneo, lo que permite restablecer la transformación y volver a realizarla para lograr la bondad de ajuste necesaria mediante inspección visual.

Justificación del mapeo de características de servicios públicos en la geodatabase personal

Se eligió el mapeo de características para realizarse en el entorno de ArcInfo Desktop sobre la estación de trabajo ArcInfo por varios factores. En primer lugar, la simbología de características avanzadas permitió elementos de mapas temáticos distinguibles visualmente mientras se digitalizaba cada característica. Esta simbología incluye todos los símbolos estandarizados de Ingeniería / AutoCAD, que anteriormente solo estaban disponibles en Arc FM. Ya no era necesario enumerar los valores de los atributos durante el proceso de digitalización para confirmar que una función se había asignado correctamente. En segundo lugar, la población automática de elementos de atributos con valores predeterminados proporcionó un medio para el desarrollo rápido, coherente y preciso de la base de datos. Desktop ArcInfo también posee muchas herramientas de digitalización similares a AutoCAD (es decir, dibujar arcos perpendiculares, paralelos, circulares, etc.) que ayudaron drásticamente en el proceso de digitalización. Además, el entorno de captura dinámica era extenso y rápidamente convertible entre clases de entidades (punto, nodo, borde, etc.) y conjuntos de datos (mapa base de parcelas, redes de agua, estructuras de agua, etc.). La visualización de trama avanzada del entorno de escritorio también permitió la incorporación de una superposición de fotografías aéreas de alta resolución con un 35% de transparencia. Esto permitió que la fotografía aérea se usara simultáneamente en conjunto con el mosaico de imágenes georreferenciadas según lo construido.

Haciendo la migración de Avenue a VBA

A diferencia del entorno de Arc Avenue, el código del sistema de botones, herramientas y comandos de menú existentes no está disponible para el uso directo del programador. Si bien se puede acceder a los botones, herramientas y comandos de menú ejecutando su función, el código del sistema se compila y no se puede ver para aprender a escribir en el entorno de programación VBA. Esto representa una desviación dramática del método común de aprender Avenue. Una desviación aún mayor de Arc Avenue es la necesidad de una declaración de variables en VBA. Este será probablemente el mayor obstáculo que enfrentará un ex programador de Avenue en el proceso de migración. En Avenue, la declaración de variables se definió implícitamente mediante el uso de objetos que pertenecen a una interfaz DocGui en particular (es decir, Vista, Diseño, Tabla, etc.). De manera similar, las referencias a objetos en ArcGIS 8.1 heredan un conjunto específico de métodos según el tipo de interfaz implementada. Una interfaz en VBA consta de un grupo de métodos y propiedades. Si una interfaz hereda de otra, todos los métodos y propiedades del padre están disponibles directamente en el objeto heredado. Cuando se considera la enormidad del modelo de objetos basado en COM de ArcGIS y las matrices multinivel resultantes de interfaces disponibles, la declaración de variables en VBA puede ser una tarea abrumadora. En el siguiente ejemplo se muestra un ejemplo de la importancia de la declaración de variables y las sutilezas de implementar la interfaz correcta.

En ambas partes de este ejemplo, se examina el código de muestra para hacer zoom en la extensión de la vista hasta los límites de una capa de datos de entidades determinada. A la izquierda, el ejemplo de código muestra una subrutina funcional que acerca la ventana de vista de ArcMap a la extensión del mapa de la primera capa en la leyenda del mapa. A la derecha, el correlato no funcional ha sustituido la variable pMap por pActiveView. Esto puede parecer una sustitución válida ya que la referencia de objeto a pMap se había asignado previamente a la variable, pActiveView. La razón por la que esta sustitución no funciona se debe al hecho de que al implementar la interfaz IActiveView a través de la instrucción Set, los métodos, Extent y Refresh, son posibles con respecto a la visualización de la ventana de vista visible.

Es cierto que es extremadamente difícil dominar las complejidades de implementar las diversas interfaces disponibles para la manipulación de objetos ArcMap en VBA. De ello se deduce que, para algunos, es válido continuar el uso de aplicaciones basadas en Avenue en ArcView 3.x. Sin embargo, Arc Avenue y Visual Basic son ambos lenguajes de programación orientados a objetos (object.request) y, por lo tanto, el proceso de migración se facilita un poco. Además, la extensa biblioteca Arc Objects proporciona una gran variedad de funciones de ArcGIS a través de Visual Basic (VBA para ArcInfo) específico de la aplicación. Los programadores de Ex-Avenue se darán cuenta rápidamente de la compacidad de adjuntar código para formar eventos, en lugar de crear docenas de scripts individuales de Avenue. Además, los formularios de VBA poseen un grado de personalización mucho mayor que el de los cuadros de diálogo que podrían crearse mediante ArcView Dialog Designer. Es claramente evidente por qué el script Avenue existente no puede ser, y nunca podrá ser, simplemente transferido a VBA.

Conclusiones

La intención de este documento, desde su inicio, ha sido servir como guía de referencia para las entidades que deseen lograr un sistema G.I.S. diseñado e implementado internamente. Las agencias gubernamentales han sido concebidas como el público objetivo ideal debido a la importante inversión de tiempo requerida para el desarrollo progresivo de un programa de este tipo. Además, se espera que a través de la inclusión de múltiples apéndices detallados, los usuarios experimentados tengan las herramientas necesarias para personalizar ArcGIS en un grado apreciable realizando la migración completa al nuevo entorno de codificación. Claramente, Esri ha desarrollado ArcGIS con el objetivo principal de hacer que su software sea fácilmente expandible y personalizable. Existe un tremendo potencial de crecimiento en G.I.S. funcionalidad, y afortunadamente para este autor, la ciudad de Coconut Creek ha tenido una mentalidad extremadamente progresista y ha alentado su desarrollo interno. La Ciudad tiene actualmente 2 años en su G.I.S. compromiso y se estima que faltan 2 años para poseer un sistema de información geográfica de vanguardia para toda la empresa.

Apéndices

Apéndice I: Ejemplo del inventario documentado existente de todas las parcelas de propiedad dentro de los límites legales de la ciudad de Coconut Creek

Apéndice II: Diagrama de flujo programático que representa el desarrollo de GUI en Avenue

Apéndice III: Ejemplos de códigos de avenidas

Apéndice IV: Diagrama de flujo programático que representa el desarrollo de GUI en VBA

Apéndice V: Ilustración de ejemplo que muestra el uso en pantalla de la GUI de VBA


La elección de esriSpatialRelEnum puede ralentizar el rendimiento de IFeatureCursor NextFeature

¿Alguien ha notado diferencias de rendimiento al recorrer las características devueltas de una búsqueda, según el esriSpatialRelEnum que utilizó? esriSpatialRelIntersects parece ser mucho más rápido que esriSpatialRelContains. Tenga en cuenta que la búsqueda en sí es rápida, pero lo que es lento es recorrer las características del cursor devuelto por la búsqueda. No pensé que esriSpatialRelEnum tuviera nada que ver con IFeatureCursor.NextFeature.

¿Estoy haciendo algo mal con mi configuración del filtro espacial? ¿Existe alguna solución alternativa?

Para probar, cree un complemento con un botón y adjunte este código. Luego agregue una capa de polígono a ArcMap. Usé los datos de Globe de ejemplo en mi computadora en C: Archivos de programa (x86) ArcGIS Desktop10.0 ArcGlobeData continente.shp. Haga clic en el botón y vea cuánto tarda.

El código usa ESRI.ArcGIS.ADF, ESRI.ArcGIS.Carto y ESRI.ArcGIS.Geodatabase.

Estás bien. La parte lenta es la primera llamada a la siguiente función.

Intenté crear nuevas clases de entidades en mi geodatabase personal para jugar con índices espaciales, agregando mis datos existentes a las nuevas clases de entidades para cada prueba. Los datos están en coordenadas geográficas y cubren el Golfo de México. Probé tamaños de cuadrícula de 18, 1 y 0.1, y obtuve aproximadamente el mismo rendimiento deficiente cada vez. Hmmmm.

el tamaño de la cuadrícula depende del tamaño de sus funciones. La consulta espacial suele utilizar las cuadrículas como primer corte para delimitar las características candidatas. Un tamaño de cuadrícula demasiado grande dará como resultado que se evalúen demasiadas características. Un tamaño de cuadrícula demasiado pequeño resultará en demasiadas celdas de cuadrícula que deben evaluarse previamente. Hay pautas para los tamaños de cuadrícula en el documento de ayuda y formas de evaluarlos.

¿Ha probado una geodatabase de archivos en lugar de una geodatabase personal? También debe compactar la geodatabase si ha habido mucha edición o si los datos se cargaron sin colocar la base de datos en modo de solo carga. Las geodatabases personales y de archivos también agregan y eliminan tablas internamente.

Hay otros factores en juego, como la complejidad de la función de búsqueda. Tener una función muy compleja también puede ralentizar las cosas.

por DuncanHornby

No programo en c #, así que cuando miré su código, noté algo que no haría. Entonces, esto podría ser una pista falsa y puede ser que lo que estás haciendo sea simplemente más hábil que la forma en que programo. De todos modos, la línea que me pareció inusual fue:

while ((característica = cursor.NextFeature ())! = null)

No sé si esto es una preferencia, pero lo habría hecho (en VB):

pFeature = pCursor.NextFeature
hacer mientras no pFeature no es nada
contador = contador +1
pFeature = pCursor.NextFeature
lazo

Entonces, la recuperación de la característica que está probando se realiza en el bucle y no en la línea que está evaluando si no es nada.

Seguí los consejos y probé la consulta con y sin múltiples índices, ya que algunas características son miles de veces más grandes que otras en este conjunto de datos. Ninguna mejora real. El archivo GDB tampoco ayudó significativamente. También intenté compactar la base de datos.

Las características son en su mayoría rectángulos, y estoy buscando usando un rectángulo de una de las formas de la característica para propósitos de prueba. Están en un sistema de coordenadas geográficas, pero proyectarlos no ayudó.

Encontré dos cosas que ayudaron significativamente. La expansión de funciones multiparte a funciones únicas (aproximadamente el 2% de las 628 funciones son multiparte) mejoró el rendimiento en un factor de 4. Al abrir una sesión de edición y mover las funciones para que menos de ellas se superpongan, mejoró el rendimiento en un factor de 100. Casi cada característica se superpone a otra característica, como hojas en una pila. Ese parece ser mi mayor problema, pero esa es la naturaleza de este conjunto de datos.

Probablemente debería haber incluido una mejor descripción de este conjunto de datos en mi publicación original. No me di cuenta de que las características superpuestas serían las culpables, así que lástima mi intuición.


Aplicación móvil eBird

Originalmente, la aplicación BirdLog, Cornell la asumió, la renovó y la hizo suya. La clave para Cornell y el proyecto eBird era tener una aplicación de entrada de datos única, gratuita y global para eBird.

Si usa la versión web de eBird, esta aplicación es imprescindible. Lo uso mucho para ingresar a la lista de verificación de eBird: lo han hecho mucho más compatible con Internet y están trabajando en muchas características nuevas y agradables, como vincular su cuenta individual de eBird, etc.Hay una serie de funciones de entrada de listas de verificación, que incluyen el uso de ubicaciones recientes, la selección de un punto de acceso de un mapa (debe estar en línea para que funcione), la creación de su propia ubicación personal y la elección de un punto de acceso cercano o la búsqueda de uno por ciudad. o lugar. Puede crear una lista de verificación para uso sin conexión, pero debe haber creado una lista de verificación de antemano cuando esté en línea para que esto funcione correctamente, y configurar listas de verificación futuras (para viajes en los que está observando aves más allá del alcance del servicio celular) también es un poco torpe . Pero en general, si mantiene una lista y usa eBird (si no es así, ¿por qué no?), Obtenga esta aplicación. Es una obviedad.


Contenido

Los datos, la información, el conocimiento y la sabiduría son conceptos estrechamente relacionados, pero cada uno tiene su propio papel en relación con el otro, y cada término tiene su propio significado. Según una visión común, los datos se recopilan y analizan los datos solo se convierten en información adecuada para la toma de decisiones una vez que se han analizado de alguna manera. [8] Se puede decir que la medida en que un conjunto de datos es informativo para alguien depende de hasta qué punto es inesperado para esa persona. La cantidad de información contenida en un flujo de datos puede caracterizarse por su entropía de Shannon.

El conocimiento es la comprensión basada en una amplia experiencia en el manejo de información sobre un tema. Por ejemplo, la altura del monte Everest generalmente se considera un dato. La altura se puede medir con precisión con un altímetro e introducirse en una base de datos. Estos datos pueden incluirse en un libro junto con otros datos sobre el Monte Everest para describir la montaña de una manera útil para aquellos que deseen tomar una decisión sobre el mejor método para escalarla. Un entendimiento basado en la experiencia de escalar montañas que podría aconsejar a las personas sobre el camino para llegar a la cima del Monte Everest puede verse como "conocimiento". La escalada práctica de la cima del Monte Everest basada en este conocimiento puede verse como "sabiduría". En otras palabras, la sabiduría se refiere a la aplicación práctica del conocimiento de una persona en aquellas circunstancias en las que puede resultar bueno. Así la sabiduría complementa y completa la serie "datos", "información" y "conocimiento" de conceptos cada vez más abstractos.

A menudo se asume que los datos son el concepto menos abstracto, la información el siguiente y el conocimiento el más abstracto. [9] En este punto de vista, los datos se convierten en información por interpretación, p. Ej., La altura del Monte Everest se considera generalmente "datos", un libro sobre las características geológicas del Monte Everest puede considerarse "información" y una guía para alpinistas que contiene información práctica sobre los mejores La forma de llegar a la cima del Monte Everest puede considerarse "conocimiento". "Información" tiene una diversidad de significados que van desde el uso diario hasta el uso técnico. Sin embargo, también se ha argumentado que esta visión revierte la forma en que los datos surgen de la información y la información del conocimiento. [10] En términos generales, el concepto de información está estrechamente relacionado con las nociones de restricción, comunicación, control, datos, forma, instrucción, conocimiento, significado, estímulo mental, patrón, percepción y representación. Beynon-Davies utiliza el concepto de signo para diferenciar entre datos e información. Los datos son una serie de símbolos, mientras que la información se produce cuando los símbolos se utilizan para hacer referencia a algo. [11] [12]

Antes del desarrollo de las máquinas y los dispositivos informáticos, la gente tenía que recopilar datos manualmente e imponerles patrones. Desde el desarrollo de dispositivos y máquinas informáticas, estos dispositivos también pueden recopilar datos. En la década de 2010, las computadoras se utilizan ampliamente en muchos campos para recopilar datos y clasificarlos o procesarlos, en disciplinas que van desde el marketing, el análisis del uso de los servicios sociales por parte de los ciudadanos hasta la investigación científica. Estos patrones en los datos se ven como información que se puede utilizar para mejorar el conocimiento. Estos patrones pueden interpretarse como "verdad" (aunque "verdad" puede ser un concepto subjetivo) y pueden ser autorizados como criterios estéticos y éticos en algunas disciplinas o culturas. Los eventos que dejan restos físicos o virtuales perceptibles se pueden rastrear a través de los datos. Las marcas ya no se consideran datos una vez que se rompe el vínculo entre la marca y la observación. [13]

Los dispositivos informáticos mecánicos se clasifican según los medios por los que representan los datos. Una computadora analógica representa un dato como voltaje, distancia, posición u otra cantidad física. Una computadora digital representa un dato como una secuencia de símbolos extraídos de un alfabeto fijo. Las computadoras digitales más comunes utilizan un alfabeto binario, es decir, un alfabeto de dos caracteres, normalmente denotados "0" y "1". A continuación, se construyen representaciones más familiares, como números o letras, a partir del alfabeto binario. Se distinguen algunas formas especiales de datos. Un programa de computadora es una colección de datos que pueden interpretarse como instrucciones. La mayoría de los lenguajes de computadora hacen una distinción entre programas y otros datos en los que operan los programas, pero en algunos lenguajes, en particular Lisp y lenguajes similares, los programas son esencialmente indistinguibles de otros datos. También es útil para distinguir metadatos, es decir, una descripción de otros datos. Un término similar pero anterior para los metadatos es "datos auxiliares". El ejemplo prototípico de metadatos es el catálogo de la biblioteca, que es una descripción del contenido de los libros.

Siempre que sea necesario registrar datos, los datos existen en forma de documentos de datos. Los tipos de documentos de datos incluyen:

  • repositorio de datos
  • estudio de datos
  • conjunto de datos
  • software
  • papel de datos
  • base de datos
  • manual de datos
  • diario de datos

Algunos de estos documentos de datos (repositorios de datos, estudios de datos, conjuntos de datos y software) están indexados en Data Citation Indexes, mientras que los artículos de datos están indexados en bases de datos bibliográficas tradicionales, por ejemplo, Science Citation Index. Ver más. [14]

Recolección de datos Editar

La recopilación de datos se puede lograr a través de una fuente primaria (el investigador es la primera persona en obtener los datos) o una fuente secundaria (el investigador obtiene los datos que ya han sido recopilados por otras fuentes, como los datos difundidos en una revista científica). Las metodologías de análisis de datos varían e incluyen la triangulación de datos y la filtración de datos. [15] Este último ofrece un método articulado de recopilación, clasificación y análisis de datos utilizando cinco posibles ángulos de análisis (al menos tres) con el fin de maximizar la objetividad de la investigación y permitir una comprensión de los fenómenos bajo investigación lo más completa posible: cualitativo y métodos cuantitativos, revisiones de la literatura (incluidos artículos académicos), entrevistas con expertos y simulación por computadora. A continuación, los datos se "filtran" utilizando una serie de pasos predeterminados para extraer la información más relevante.

Aunque los datos también se utilizan cada vez más en otros campos, se ha sugerido que su naturaleza altamente interpretativa podría estar en desacuerdo con la ética de los datos como "dados". Peter Checkland introdujo el término capta (del latín cabore, “Tomar”) para distinguir entre una inmensa cantidad de datos posibles y un subconjunto de ellos, a los que se orienta la atención. [16] Johanna Drucker ha argumentado que, dado que las humanidades afirman que la producción de conocimiento es "situada, parcial y constitutiva", datos puede introducir supuestos que son contraproducentes, por ejemplo, que los fenómenos son discretos o independientes del observador. [17] El término capta, que enfatiza el acto de observación como constitutivo, se ofrece como una alternativa al datos para representaciones visuales en las humanidades.

Este artículo se basa en material extraído del Diccionario gratuito de informática en línea antes del 1 de noviembre de 2008 e incorporada bajo los términos de "renovación de licencias" de la GFDL, versión 1.3 o posterior.


Insertar función provoca una excepción de memoria insuficiente


¿Puede publicar ejemplos de código para el lugar donde está cargando modelos?

¿Qué idioma estás usando para el desarrollo?

Si está usando un lenguaje .NET, puede intentar usar CLRProfiler para identificar qué está consumiendo más memoria. Si no se trata de un problema de memoria administrada, puede usar UMDH para ver qué se asigna en el montón no administrado.

Hágame saber si puedo ayudar.

¿Puede publicar ejemplos de código para el lugar donde está cargando modelos?

¿Qué idioma estás usando para el desarrollo?

Si está usando un lenguaje .NET, puede intentar usar CLRProfiler para identificar qué consume más memoria. Si no se trata de un problema de memoria administrada, puede usar UMDH para ver qué se asigna en el montón no administrado.

Hágame saber si puedo ayudar.


¡Hola, ScJpike!
Yo uso C # con .NET Framework 4.0

Hay fragmentos de código de mi proyecto para que pruebes:
La carga de cada modelo se realiza con la siguiente instancia de clase (una instancia de clase representa un archivo):

// fragmento de código de implementación de clase
public enum GeoReferencedModelAltitudeType

clase pública GeoReferencedModel
<

// las propiedades se establecen al leer el archivo
Public double Longitude
latitud doble pública
doble altitud pública
public GeoReferencedModelAltitudeType AltitudeType
public double XAngle
public double YAngle
public double ZAngle
público doble ScaleX
Public double ScaleY
público doble ScaleZ

Public GeoReferencedModel (nombre de archivo de cadena)
<
Nombre de archivo = nombre de archivo
EscalaX = EscalaY = EscalaZ = 1
>

get_Placement () de IPoint público
<
// leer archivo y asignar propiedades de clase
// no se utilizan ArcObjects

// solo para probar con un modelo
Longitud = 51.310704
Latitud = 35.731657
Altitud = 0
AltitudeType = GeoReferencedModelAltitudeType.relativeToGround
ZAngle = 0
XAngle = 0
YAngle = 0
EscalaX = 1
EscalaY = 1
ScaleZ = 1

Punto de IPoint = new PointClass ()
point.PutCoords (longitud, latitud)
punto de retorno
>

private void set_ModelAltitude (ubicación de IPoint)
<
cambiar (AltitudeType)
<
case GeoReferencedModelAltitudeType.absolute:
location.Z = Altitud
pausa
caso GeoReferencedModelAltitudeType.clampToGround:
pausa
caso GeoReferencedModelAltitudeType.relativeToGround:
ubicación.Z = ubicación.Z + Altitud
pausa
>
>

public IGeometry get_MultiPatch (ubicación de IPoint, ISpatialReference espacialReferencia)
<
Geometría IGeometry = nulo
IImport3DFile import3DFile = nuevo Import3DFileClass ()
intentar
<
import3DFile.CreateFromFile (Nombre de archivo)
geometría = import3DFile.Geometry
((IImport3DFileRoots) import3DFile) .ReleaseCurrentFile ()
>
captura
<
geometría = nulo
>
por fin
<
System.Runtime.InteropServices.Marshal.ReleaseComObject (import3DFile)
>

si (geometría! = nulo)
<
set_ModelAltitude (ubicación)
IVector3D xVector = constructVector3D (10, 0, 0)
IVector3D yVector = constructVector3D (0, 10, 0)
IVector3D zVector = constructVector3D (0, 0, 10)
((ITransform3D) geometría) .RotateVector3D (xVector, XAngle * (Math.PI / 180))
((ITransform3D) geometría) .RotateVector3D (yVector, YAngle * (Math.PI / 180))
((ITransform3D) geometría) .RotateVector3D (zVector, ZAngle * (Math.PI / 180))
((ITransform3D) geometría) .Move3D (ubicación.X, ubicación.Y, ubicación.Z)
((ITransform3D) geometría) .Scale3D (ubicación, ScaleX, ScaleY, ScaleZ)
geometry.SpatialReference = SpacialReference
geometry.SnapToSpatialReference ()
>

El procesamiento de todos los archivos de modelo con su inserción en la clase de entidad de geodatabase de archivos se realiza mediante el siguiente método:

Herramientas públicas de clase estática
<

public static void Import3DFiles (string GDBFilename, string Dataset, List & ltGeoReferencedModel & gt Files, ISpatialReference DatasetSpatialReference)
<
IWorkspaceFactory wsf = nuevo FileGDBWorkspaceFactoryClass ()
IWorkspace datasetWorkspace = wsf.OpenFromFile (GDBFilename, 0)
System.Runtime.InteropServices.Marshal.ReleaseComObject (wsf)

IFeatureClass objetivoFeatureClass
exist = ((IWorkspace2) datasetWorkspace) .get_NameExists (esriDatasetType.esriDTFeatureClass, Dataset)
si existe)
<

IField shapeField = new FieldClass ()
fieldEdit = (IFieldEdit) shapeField
fieldEdit.Name_2 = "Forma"
fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry

IGeometryDef geometryDef = new GeometryDefClass ()
IGeometryDefEdit geometryDefEdit
geometryDefEdit = (IGeometryDefEdit) geometryDef
geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryMultiPatch
geometryDefEdit.GridCount_2 = 1
geometryDefEdit.set_GridSize (0, 0)
geometryDefEdit.HasZ_2 = true
geometryDefEdit.HasM_2 = falso
if (DatasetSpatialReference! = null) geometryDefEdit.SpatialReference_2 = DatasetSpatialReference else geometryDefEdit.SpatialReference_2 = new UnknownCoordinateSystemClass ()
fieldEdit.GeometryDef_2 = geometryDef

IField oidField = nueva clase de campo ()
fieldEdit = (IFieldEdit) oidField
fieldEdit.Name_2 = "OID"
fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID
fieldEdit.Precision_2 = 0

IFields fcFields = nueva FieldsClass ()
IFieldsEdit fcFieldsEdit = (IFieldsEdit) fcFields
fcFieldsEdit.AddField (shapeField)
fcFieldsEdit.AddField (oidField)

IFieldChecker fieldChecker = nueva FieldCheckerClass ()
IEnumFieldError enumFieldError = null
IFields validatedFields = null
fieldChecker.ValidateWorkspace = datasetWorkspace
fieldChecker.Validate (fields, out enumFieldError, out validatedFields)

IObjectClassDescription objectDescription = new FeatureClassDescriptionClass ()
objectFeatureClass = ((IFeatureWorkspace) datasetWorkspace) .CreateFeatureClass (conjunto de datos, validatedFields, null, objectDescription.ClassExtensionCLSID, esriFeatureType.esriFTSimple, shapeField.Name, "")
>
demás
objectFeatureClass = ((IFeatureWorkspace) datasetWorkspace) .OpenFeatureClass (conjunto de datos)

((ISchemaLock) objectFeatureClass) .ChangeSchemaLock (esriSchemaLock.esriExclusiveSchemaLock)
((IFeatureClassLoad) objectFeatureClass) .LoadOnlyMode = verdadero

ISpatialReferenceFactory srFactory = nueva SpatialReferenceEnvironmentClass ()
IGeographicCoordinateSystem gcs = srFactory.CreateGeographicCoordinateSystem (gcsType)
ISpatialReference geoSR = (ISpatialReference) gcs
ISpatialReferenceResolution srResolution = (ISpatialReferenceResolution) sr
srResolution.ConstructFromHorizon ()
srResolution.SetDefaultMResolution ()
srResolution.SetDefaultXYResolution ()
srResolution.SetDefaultZResolution ()
ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance) sr
srTolerance.SetDefaultMTolerance ()
srTolerance.SetDefaultXYTolerance ()
srTolerance.SetDefaultZTolerance ()
set_ResolutionTolerance (sr)
System.Runtime.InteropServices.Marshal.ReleaseComObject (srFactory)

featureBuffer = objectFeatureClass.CreateFeatureBuffer ()
featureCursor = objectFeatureClass.Insert (verdadero)

foreach (cadena geoReferencedModel en archivos)
<
// lectura de valores lat, long y otros valores de archivos con SketchUpReader propio (para * .skp) y ZipForge, XDocument (para * .kmz)
// no utilice ArcObjects
Ubicación de IPoint = geoReferencedModel.get_Placement ()
location.SpatialReference = geoSR
(IZAware) geometry.ZAware = verdadero
ubicación.Proyecto (DatasetSpatialReference)

// obtener el valor Z de IFunctionalSurface (ráster de relieve)
// solo para prueba
ubicación.Z = 0

if (! ubicación.Z.Equals (doble.NaN))
<
IGeometry multiPatch = nulo
// importar la geometría del archivo
multiPatch = geoReferencedModel.get_MultiPatch (ubicación, DatasetSpatialReference)
si (multiPatch! = null)
<
featureBuffer.Shape = multiPatch
featureCursor.InsertFeature (featureBuffer)

/ * intentó vaciar el cursor y crear nuevas instancias de cursor y búfer
featureCursor.Flush ()
featureBuffer = objectFeatureClass.CreateFeatureBuffer ()
featureCursor = objectFeatureClass.Insert (verdadero)
*/

/ * intentó usar el cursor sin almacenamiento en búfer aquí y en la declaración
featureCursor.Flush ()
featureBuffer = objectFeatureClass.CreateFeatureBuffer ()
featureCursor = objectFeatureClass.Insert (falso)
*/

/ * probé tal variante sin featurebuffer ni featurecursor en absoluto
IFeature newFeature = objectFeatureClass.CreateFeature ()
newFeature.Shape = multiparche
((IFeatureClassWrite) objectFeatureClass) .WriteFeature (newFeature)
*/

// aquí calculo una huella de multiparche y la almaceno en otra clase de característica


Fuentes puntuales y no puntuales de contaminación

A los efectos de la regulación, la Agencia de Protección Ambiental de los Estados Unidos identifica dos categorías amplias de contaminación: contaminación de fuente puntual y contaminación de fuente difusa.

Biología, Ecología, Conservación, Ciencias de la Tierra, Oceanografía

Contaminación del río

El agua llena de desechos se vierte en un río, contaminándola para las personas y los animales que la utilizan como fuente para comer y beber.

Fotografía de Kaentian Street

Aquí se enumeran los logotipos de los programas o socios de NG Education que han proporcionado o contribuido con el contenido de esta página. Energizado por

Casi todo lo que hacen los seres humanos, desde cultivar alimentos hasta fabricar productos y generar electricidad, tiene el potencial de liberar contaminación al medio ambiente. Las agencias reguladoras encargadas de proteger el medio ambiente identifican dos categorías principales de contaminación: contaminación de fuente puntual y de fuente difusa.

La contaminación de origen puntual es fácil de identificar. Como sugiere el nombre, proviene de un solo lugar. La contaminación de origen difuso es más difícil de identificar y más difícil de abordar. Es una contaminación que proviene de muchos lugares, todos a la vez.

La Agencia de Protección Ambiental de los Estados Unidos (EPA) define la contaminación de fuente puntual como cualquier contaminante que ingresa al medio ambiente desde un lugar confinado y fácilmente identificable. Los ejemplos incluyen chimeneas, tuberías de descarga y zanjas de drenaje.

Las fábricas y las centrales eléctricas pueden ser una fuente de contaminación de origen puntual que afecte tanto al aire como al agua. Las chimeneas pueden arrojar monóxido de carbono, metales pesados, dióxido de azufre, dióxido de nitrógeno o "materia particulada" (partículas pequeñas) al aire. Las refinerías de petróleo, las fábricas de papel y las plantas automotrices que utilizan agua como parte de sus procesos de fabricación pueden descargar efluentes y aguas residuales que contienen contaminantes químicos nocivos y mdash en ríos, lagos o el océano.

Las plantas de tratamiento de aguas residuales municipales son otra fuente común de contaminación de origen puntual. El efluente de una planta de tratamiento puede introducir nutrientes y microbios dañinos en las vías fluviales. Los nutrientes pueden provocar un crecimiento desenfrenado de algas en el agua.

La contaminación de fuente difusa es lo opuesto a la contaminación de fuente puntual, y los contaminantes se liberan en un área amplia. Como ejemplo, imagine una calle de la ciudad durante una tormenta eléctrica. A medida que el agua de lluvia fluye sobre el asfalto, elimina las gotas de aceite que se filtraron de los motores de los automóviles, las partículas de goma de los neumáticos, los excrementos de perros y la basura.La escorrentía va a una alcantarilla pluvial y termina en un río cercano. La escorrentía es una de las principales causas de contaminación de fuentes no puntuales. Es un gran problema en las ciudades debido a todas las superficies duras, incluidas las calles y los techos. La cantidad de contaminantes que se lavan de una sola manzana puede ser pequeña, pero cuando sumas las millas y millas de pavimento en una gran ciudad, tienes un gran problema.

En las zonas rurales, la escorrentía puede lavar los sedimentos de las carreteras en un tramo forestal talado. También puede transportar ácido de minas abandonadas y eliminar pesticidas y fertilizantes de los campos agrícolas. Es probable que toda esta contaminación termine en arroyos, ríos y lagos.

Los contaminantes del aire son los principales contribuyentes a la lluvia ácida. Se forma en la atmósfera cuando el dióxido de azufre y los óxidos de nitrógeno se combinan con el agua. Debido a que la lluvia ácida es el resultado del movimiento a largo plazo de esos contaminantes de muchas fábricas y plantas de energía, se considera contaminación de fuente difusa.

En los Estados Unidos, la Ley de Aire Limpio y la Ley de Agua Limpia han ayudado a limitar la contaminación de fuentes puntuales y no puntuales. Gracias a estas dos iniciativas legislativas, vigentes desde hace unos 50 años, el aire y el agua de Estados Unidos están más limpios hoy que durante la mayor parte del siglo XX.

El agua llena de desechos se vierte en un río, contaminándola para las personas y los animales que la utilizan como fuente para comer y beber.