Más

Script para exportar tablas de líneas de matriz OD para entidades de puntos individuales

Script para exportar tablas de líneas de matriz OD para entidades de puntos individuales


Tengo un dataset de red y me gustaría saber la distancia de la red (no euclidiana) desde cada punto de característica en un shapefile hasta cada otro punto en otro shapefile con el mismo número de puntos. Sin embargo, me gustaría tener tablas separadas para cada función, en lugar de una tabla grande.

¿Es posible iterar a través de las entidades de puntos en un archivo de forma, agregar el punto individual como el "Origen" a una Matriz de Costos OD (que ya tiene las ubicaciones de "Destino" agregadas), resolver la Matriz y exportar las líneas o el tabla de líneas, luego pasar al siguiente punto y hacer lo mismo? ¿O quizás hay una forma más sencilla de hacer esto?

Sé que terminaré con un montón de tablas, pero espero ejecutar un análisis de las tablas individuales.

Aquí hay un modelo gráfico de ModelBuilder en el que estaba trabajando:


Sí, hay dos enfoques posibles para usar.

Una es usar la herramienta Matriz de costos de OD y simplemente dividir la tabla resultante. Seleccionaría todos los registros con el mismo punto de origen y los exportaría a una nueva tabla. Hay al menos una herramienta personalizada Dividir por atributos para ArcGIS (a la que se hace referencia aquí, pero el enlace 10.x no está actualmente roto) que puede hacer esto para shapefile / clase de entidad, sin embargo, no estoy seguro si funcionaría solo con tablas (es decir, sin geometría). Por supuesto, puede generar líneas rectas con OD Cost Matrix y esa podría ser una solución. También puede haber límites si intenta hacer esto en una salida de shapefile dependiendo del número de coincidencias para cada origen. Es probable que este sea el más rápido de los dos enfoques en términos de procesamiento. Encontré otra herramienta similar (creo que es diferente) aquí: http://www.umesc.usgs.gov/management/dss/split_by_attribute_tool.html

El segundo enfoque es construir su modelo para iterar a través de los puntos de origen, pero en lugar de usar la Matriz de costos OD, usaría la instalación más cercana. Como solo hay una instalación (origen seleccionado), obtendrás las distancias y línea de ruta a todos los destinos. Sin embargo, esto sería considerablemente más intensivo en procesamiento que la Matriz de costos de OD; consulte el Consejo en la página de ayuda de OD o la página de ayuda de CF Tenga en cuenta que un iterador ejecuta el completo modelo con cada iteración - usted mayo Necesito crear un submodelo para contener parte del proceso.


¿Cómo colorear celdas específicas en un marco de datos / tabla en R?

Me gustaría colorear celdas específicas en el siguiente marco de datos. Por ejemplo, en la columna inputval, me gustaría resaltar las celdas en el rango de [0.8, 0.9) magenta y las celdas en esa misma columna en el rango de [0.7, 0.8) azul. Del mismo modo, me gustaría que las celdas de la columna de salida con un valor de 1 fueran de color magenta y las que tienen el valor 4 de color azul. Para el resto de las celdas del marco de datos, me gustaría que permanecieran en blanco.

Tengo el siguiente código reproducible que resalta solo por fila y me limita a colorear solo en magenta y blanco. ¿Cómo puedo agregar otro color y hacerlo por celda?

Me doy cuenta de que el problema para agregar diferentes colores es con la llamada ifelse que me limita a solo magenta y blanco. ¿Cómo puedo agregar otra condición aquí?

Si bien sé qué está causando el problema de múltiples colores, no tengo ni idea de cómo colorear solo celdas específicas.

Este es el mismo ejemplo que la respuesta aceptada a esta pregunta. ¡Gracias!


1 respuesta 1

Tanto T-SQL como MySQL y soportan la cláusula VALUES. Entonces, haga clic derecho en la base de datos y seleccione Generar scripts desde Tareas:

Entonces puedes elegir objetos:

y luego asegúrese de haber seleccionado obtener los datos también:

Incluso puede obtener el esquema y cambiarlo un poco para que coincida con la sintaxis de MySQL.

Para una pequeña cantidad de datos, esto es bastante bueno. Si está exportando tablas grandes, será mejor utilizar otra herramienta. Por ejemplo, con bcp puede exportar sus datos en formato CSV y luego importarlos a la base de datos MySQL.


Descripción del paquete

Descripción general

El paquete camtrapR, ahora en la versión 0.99.1, está escrito en el lenguaje R (R Core Team 2015) y se lanzó por primera vez en CRAN en julio de 2015. Se puede usar en la versión R 3.1 (R Core Team 2015) y superior en Windows, MacOS y Linux. Las funciones clave del paquete hacen uso del software de línea de comandos gratuito ExifTool (Harvey 2015) a través de llamadas al sistema para extraer metadatos de imágenes de cámaras trampa en formato JPEG. camtrapR proporciona una amplia automatización de los procesos, realiza rigurosos controles de coherencia en los datos de entrada y no tiene ninguna limitación inherente en cuanto al número de imágenes almacenadas en el sistema de gestión de datos.

camtrapR fue diseñado para estudios que utilizan conjuntos de estaciones de cámara trampa, cada una de las cuales consta de una o más (a menudo dos) unidades de cámara trampa (denominadas cámaras en aras de la simplicidad). Las cámaras dentro de una estación se establecen en una proximidad relativa entre sí en comparación con las distancias entre estaciones.

Organización y gestión de imágenes

La organización de imágenes comienza con el almacenamiento de imágenes sin procesar en los directorios de estaciones de cámaras trampa (por ejemplo, myStudy / rawImages / stationA). Los directorios de las estaciones pueden contener subdirectorios de cámaras (por ejemplo, myStudy / rawImages / stationA / camera1) si se utilizó más de una cámara en una estación. La función createStationFolders puede crear estos directorios.

La fecha y la hora de las imágenes se pueden cambiar usando la función timeShiftImages, por ejemplo, si los valores de fecha y / o hora de la cámara interna se configuraron incorrectamente, se restablecieron accidentalmente o si los usuarios desean sincronizar pares de cámaras. Utiliza el módulo de cambio de fecha / hora de ExifTool.

Si lo desea, todas las imágenes se pueden renombrar automáticamente con la identificación de la estación, la identificación de la cámara, la fecha y la hora con la función imageRename.

Metadatos de imágenes y etiquetado de metadatos

Las imágenes digitales contienen metadatos en formato Exif estandarizado, por ejemplo, fecha y hora, geoetiquetas, configuración de la cámara, datos ambientales, número de evento de activación y muchos más. Además, los usuarios pueden asignar información a las imágenes a través de etiquetas de metadatos personalizadas en el software de gestión de imágenes, por ejemplo, identificación de especies o individuos, sexo, comportamiento, conteos de tamaño de grupo o pertenencia a grupos de individuos. Estas etiquetas de metadatos pasan a formar parte de las imágenes y son portátiles sin depender de una estructura de base de datos relacional. Ambos tipos de metadatos se pueden extraer, tabular y utilizar posteriormente, por ejemplo, para el filtrado de datos antes de los análisis. Las viñetas del paquete contienen una estimación del rendimiento para la extracción de metadatos mediante ExifTool.

Recomendamos el software gratuito y de código abierto DigiKam (www.digikam.org) para el etiquetado porque proporciona una estructura de etiqueta jerárquica y personalizable y tiene potentes capacidades de filtrado, consulta y etiquetado por lotes. Adobe Lightroom y Adobe Bridge también son adecuados.

Identificación de especies

La identificación de especies es un paso laborioso pero crucial en el flujo de trabajo porque todos los análisis se basan en la identificación correcta de especies y muchos modelos son sensibles a los falsos positivos (Miller et al. 2011). También es la única tarea que no se puede automatizar fácilmente (tanto en este como en otros paquetes de software), ya que las herramientas de identificación automática todavía son demasiado poco confiables y necesitan datos de referencia para todas las especies potencialmente presentes en el área de estudio (Yu et al. 2013 pero vea McShea et al. 2016). camtrapR admite dos formas diferentes de identificar especies: (i) asignando etiquetas de especies a las imágenes en el software de gestión de imágenes, y (ii) moviendo imágenes a directorios de especies [arrastrar y soltar, un enfoque también utilizado por Harris et al. (2010) y Sanderson y Harris (2013)].

Los usuarios son libres de usar cualquier nombre de especie (o abreviaturas o códigos) que deseen. Si se utilizan nombres científicos o de especies comunes, la función checkSpeciesNames puede compararlos con la base de datos taxonómica ITIS (www.itis.gov) y devolver sus contrapartes coincidentes (utilizando el paquete R taxize (Chamberlain & Szöcs 2013) internamente), asegurándose de que los nombres y ortografía de las especies estén estandarizados y taxonómicamente sólidos, es más fácil combinar conjuntos de datos de diferentes estudios.

Para mejorar la confiabilidad de la identificación de especies, múltiples observadores pueden replicar la asignación de especies (si se utilizan etiquetas de metadatos para la identificación de especies). Con el fin de conciliar sus asignaciones de especies, y debido al alcance de la asignación incorrecta de especies incluso por un observador, la función checkSpeciesIdentification encuentra asignaciones de especies en conflicto de múltiples observadores y evalúa la proximidad temporal entre imágenes asignadas a diferentes especies dentro de la misma estación.

Después de la identificación de especies, la función appendSpeciesNames opcionalmente agrega nombres de especies a los nombres de los archivos. La función getSpeciesImages puede crear un informe de imágenes de especies copiando todas las imágenes de una especie focal en un directorio de especies separado (por ejemplo, myStudy / speciesImages / Malay Civet), lo que facilita los controles sobre la identificación de especies o recopila imágenes para la identificación de expertos. Si la identificación de la especie cambia en un momento posterior (por ejemplo, después de la identificación de un experto), estas imágenes se pueden copiar fácilmente en la estructura del directorio de imágenes y las funciones se pueden volver a ejecutar.

Identificación individual

La identificación individual es un requisito previo para los análisis de captura-recaptura espaciales (así como tradicionales, no espaciales). Después de identificar imágenes a nivel de especie y recolectar imágenes de la especie focal, la identificación individual se realiza de la misma manera que la identificación de especies descrita anteriormente, utilizando etiquetas de metadatos o directorios para la identificación individual.

Extracción de datos de imágenes

Después de la identificación de especies, la función recordTable organiza los registros de especies en una tabla que contiene (como mínimo) las ID de las estaciones, los nombres de las especies, la fecha y la hora de los registros (ver Tabla 2). La función recordTableIndividual ofrece capacidades análogas para animales identificados individualmente. Para utilizar las capacidades de camtrapR en tablas de registros de trabajos anteriores (creados manualmente o con otro software), estos conjuntos de datos se pueden convertir fácilmente al formato de datos simple proporcionado por el recordTable funciones.

Estación Especies DateTimeOriginal Fecha Hora delta.time.secs delta.time.mins delta.time.hours delta.time.days
StationA PBE 2009-04-21 00:40:00 2009-04-21 00:40:00 0 0 0·0 0·0
StationA PBE 2009-04-22 20:19:00 2009-04-22 20:19:00 157140 2619 43·6 1·8
StationA PBE 2009-04-23 00:07:00 2009-04-23 00:07:00 13560 226 3·8 0·2
StationA PBE 2009-05-07 17:11:00 2009-05-07 17:11:00 1270920 21182 353·0 14·7
StationA VTA 2009-04-10 05:07:00 2009-04-10 05:07:00 0 0 0·0 0·0
StationA VTA 2009-05-06 19:06:00 2009-05-06 19:06:00 2296740 38279 638·0 26·6

Ambas funciones pueden extraer etiquetas de metadatos personalizadas y específicas del fabricante de las imágenes. Como los nombres de las etiquetas de metadatos generalmente se desconocen, la función exifTagNames devuelve etiquetas de metadatos y nombres de etiquetas, lo que ayuda a los usuarios a identificar las etiquetas relevantes que desean incluir en las tablas.

Se implementa un filtro de independencia temporal entre imágenes de la misma especie en la misma estación (argumento minDeltaTime, en minutos). Si se establece en 0, el recordTable las funciones devuelven todos los registros. Cualquier número mayor solo devolverá los registros que se tomaron al menos minutos minDeltaTime después del último registro de la misma especie / individuo en la misma estación o, alternativamente, minutos minDeltaTime después del último registro independiente de la misma especie / individuo. Todas las funciones para análisis posteriores dependen de los resultados de recordTable / recordTableIndividual y así en el argumento minDeltaTime.

Información de la estación de cámara trampa

Se utiliza un marco de datos simple para almacenar información sobre las estaciones de cámaras trampa y, si corresponde, las cámaras individuales (consulte la Tabla 3). Contiene ID de estación / cámara, coordenadas geográficas, fechas de configuración y recuperación, y posiblemente covariables a nivel de estación. Puede crearse en un software de hoja de cálculo estándar e importarse a R. Se pueden definir períodos en los que las cámaras funcionan mal (una vez o repetidamente). El usuario puede especificar tanto el formato como los nombres de las columnas de fecha y coordenadas.

Estación utm_y utm_x setup_date fecha_recuperación Problema1_de Problema1_a
StationA 604000 526000 02/04/2009 14/05/2009
StationB 606000 523000 03/04/2009 16/05/2009
StationC 607050 525000 04/04/2009 17/05/2009 12/05/2009 17/05/2009

Según las fechas de instalación, recuperación y mal funcionamiento, la función cameraOperation calcula una matriz de operación de la cámara día por estación, codificando si las estaciones estaban operativas, parcialmente operativas, no operativas (mal funcionamiento) o no configuradas. La matriz de operación de la cámara refleja el esfuerzo de captura diario por estación, es decir, el número de cámaras activas por estación y día. Dependiendo de su ubicación, varias cámaras dentro de un punto de muestreo pueden aumentar la probabilidad de detectar un animal. Si las cámaras se colocan directamente una frente a la otra, pueden considerarse una unidad operativa. Si se colocan más separados, puede ser conveniente contarlos como dos unidades que acumulan esfuerzo de forma independiente. Por lo tanto, la matriz de funcionamiento de la cámara puede devolver el número de cámaras operativas (si el esfuerzo se acumula de forma independiente) o un indicador de la operatividad de la estación (si el esfuerzo no se acumula de forma independiente). La matriz de operación de la cámara se utiliza para crear historiales de detección para análisis de ocupación y captura-recaptura espacial (ver descripción de las funciones detecciónHistoria y spaceDetectionHistory debajo).

Exploración y visualización de datos

camtrapR puede trazar mapas de registros de especies (número de especies observadas por estación y número de detecciones independientes por especie, ver Fig.1) con la función mapas de detección. La función permite la exportación de archivos de forma para su uso en software SIG. Los patrones de actividad de una sola especie se pueden visualizar de tres formas diferentes: como histogramas de actividad por hora, estimaciones de densidad del núcleo de actividad y gráficos radiales (funciones actividadHistograma, actividadDensidad y actividad Radial). Las superposiciones de actividad de dos especies (Ridout & Linkie 2009) se estiman y se grafican con la función activityOverlap. Estas funciones usan código de los paquetes que se superponen y plotrix (Meredith & Ridout 2014 Lemon et al. 2015 ).

Exportación de datos para análisis de ocupación

Los modelos de ocupación se utilizan para obtener información sobre las asociaciones de hábitats de especies y, al mismo tiempo, tienen en cuenta la detección imperfecta. La función detecciónHistoria calcula matrices de detección / no detección de especies para su uso en modelos de ocupación, por ejemplo, en paquete sin marcar (Fiske & Chandler 2011) o presencia de programa (Hines 2006) combinando la tabla de registros creada con la función recordTable y la matriz de operación de la cámara creada con la función cameraOperation. En las matrices de detección / no detección, las filas representan las estaciones y las columnas de las ocasiones de levantamiento. Las ocasiones de la encuesta constan de uno o más días. La celda de la matriz se convierte en 1 si se detectó una especie en una estación durante una ocasión, 0 en caso de no detección y NA si la estación no estaba operativa. Los usuarios tienen total libertad sobre las fechas y horas de inicio de la ocasión, la duración de la ocasión (en días) y la duración del período de captura por estación. Las ocasiones pueden comenzar en una fecha fija, el día en que se instaló la primera estación o la fecha de instalación individual de cada estación (opcionalmente con un búfer entre la fecha de instalación y el comienzo de la primera ocasión).

El esfuerzo de captura por estación y ocasión se puede devolver junto con los historiales de detección de especies para su uso como una covariable / compensación en la probabilidad de detección. Las ocasiones incompletas (ocasiones en las que las cámaras solo funcionaban parcialmente) pueden contener registros en la matriz de detección / no detección si se devuelve el esfuerzo. De lo contrario, cualquier ocasión incompleta provocará que las correspondientes células de la matriz de detección sean NA.

Exportación de datos para análisis de captura y recuperación (espacial)

Los métodos de captura-recaptura espacial utilizan detecciones repetidas de individuos marcados de una especie en una variedad de ubicaciones de muestreo (estaciones de cámaras trampa) para estimar la densidad de especies y al mismo tiempo tener en cuenta la detección imperfecta y el movimiento de individuos en sus áreas de distribución (Efford 2004 Royle & Young 2008 Royle et al. 2014). Con el fin de preparar datos de especies para análisis espaciales de captura-recaptura, la función spaceDetectionHistory puede construir objetos capthist como se define en el paquete secr (Efford 2015), que contiene información sobre dónde (estación) y cuándo (ocasión) se detectaron individuos. La tabla de la estación de cámara trampa, la matriz de operación de la cámara y la tabla de grabación se combinan para ese propósito. La tabla de registros debe contener ID individuales (consulte las secciones 3.5 y 3.6) y puede contener covariables individuales (de etiquetas de metadatos). Las coordenadas geográficas de las estaciones y las covariables a nivel de estación se leen de la tabla de estaciones de cámara trampa. La matriz de operación de la cámara proporciona información sobre las fechas de operación de la estación y el esfuerzo de captura. Al crear los objetos capthist, proporcionamos la misma flexibilidad con respecto a la duración de la ocasión y la hora de inicio que en la función detecciónHistoria. El esfuerzo de captura (uso de trampa) también se puede devolver en el objeto capthist. Para análisis de captura-recaptura no espaciales, la función también puede devolver un marco de datos RMark, que contiene solo información individual por ocasión sin el componente espacial.

Crear un informe de encuesta

La función reporte de encuesta resume las encuestas de captura con cámara. Devuelve el funcionamiento de la estación y los rangos de fechas de las imágenes, el número de días de trampa (total y por estación), el número observado de especies y el número de observaciones independientes por especie y estación. Se puede generar un archivo zip que contiene datos y tablas esenciales, mapas de detección y diagramas de actividad. También contiene un script de ejemplo para reproducir todos estos y para crear la entrada para los análisis de ocupación. El informe resumido y el archivo zip también se pueden utilizar para compartir y archivar datos, por ejemplo, en repositorios en línea como Knowledge Network for Biocomplexity (KNB https://knb.ecoinformatics.org/).


Un procedimiento para la generación de matrices OD de transporte público utilizando datos de transacciones de tarjetas inteligentes

La mayoría de los sistemas de cobro de tarifas se instalan inicialmente como dispositivos de un solo propósito que solo se utilizan para cobrar tarifas; sin embargo, muchos planificadores de tránsito los consideran una rica fuente de datos necesarios para estudiar las tendencias de viaje de los pasajeros. Aunque, por lo general, no se realiza ninguna transacción en la parada de destino, hacer algunas suposiciones puede ayudarnos a inferir el destino. En este estudio presentamos un procedimiento integrado que puede generar matrices origen-destino y perfiles de carga de pasajeros como herramientas esenciales para los procesos de planificación del transporte público. Además, este procedimiento se puede utilizar para detectar y analizar viajes que incluyen transferencias. En un intento de emplear el algoritmo propuesto en la red de tránsito rápido de autobuses de Teherán, el 52% de las transacciones podrían usarse para rastrear los viajes en un formato de origen-destino. Los viajes que incluyen traslados se reconocen y analizan más a fondo. Nuestros resultados detallados de la aplicación del método indican que el algoritmo propuesto es un método de planificación del transporte público productivo y económico.

Esta es una vista previa del contenido de la suscripción, acceda a través de su institución.


Estructura de la matriz

Este ejemplo de estructura organizativa híbrida intenta combinar una estructura organizativa funcional con una basada en matrices. En este caso, el negocio también se basa en proyectos, pero el equipo sigue una estructura funcional.

A cada líder de equipo se le asigna un representante o equipo de cada área funcional tradicional que se aplicaría al proyecto y su equipo. Este miembro del equipo funcional reporta tanto al líder del proyecto como al gerente funcional en su área de especialización. Así es, hay dos "jefes". Puede funcionar, pero también puede presentar desafíos.

El trabajo del gerente funcional es ver que los empleados y las actividades se alineen con las políticas y los estándares de la empresa. El trabajo del líder del equipo es asegurarse de que el equipo complete el proyecto según lo planeado.


Reflexiones finales sobre cómo escribir una SOW sólida

Ya sea que esté creando un nuevo producto desde cero, pasando por un rediseño o simplemente haciendo un poco de trabajo de ilustración, un SOW es una herramienta poderosa para mantener a todos responsables y concentrados. Puede parecer mucho trabajo por hacer por adelantado, pero cuanto más aclare, más fácil será el flujo del resto del proyecto.

Dicho esto, hay algunos consejos finales que pueden ayudar a marcar la diferencia entre una SOW eficaz y una que no da en el blanco:

  • Ser breve: Los detalles son importantes, pero no se exceda. Escribir un SOW de más de 30 páginas inevitablemente significará que su contratista tendrá que pasar tiempo revisándolo línea por línea (tal vez con su abogado) ralentizando todo el proceso y costándole dinero. Cuanto más locas sean las exclusiones, cláusulas y excepciones que escriba, más tiempo les llevará y más preocupados estarán.
  • Escriba en las primeras etapas de un proyecto: Nunca es demasiado pronto para empezar a escribir una SOW. Comenzar temprano significa que el documento tiene la oportunidad de evolucionar junto con su comprensión del proyecto y sus necesidades.
  • Traiga a otras personas para que le ayuden: Si no tiene la experiencia para escribir ciertas secciones, pida ayuda. Esto podría significar contratar a un redactor técnico si no está seguro de cómo expresar exactamente los requisitos y la infraestructura.
  • Sea claro sobre lo que es el proyectonoincluir: Especialmente en el desarrollo de software ágil, los requisitos pueden ser vagos, por lo que debe tener claro qué caminos no tomar tanto como cuáles bajar.

¡Ahí tienes! Ya sea que esté contratando una agencia para que lo ayude a crear una nueva aplicación o remodelar su casa, esto debería ayudarlo a armar un SOW completo y claro que mantendrá a todos al día y responsables.

¡Escriba su propia SOW usando nuestra plantilla!

Hemos preparado una plantilla gratuita para ayudarlo a escribir su propio Alcance de trabajo. Descárguelo ahora para poner en marcha su propia escritura SOW.