Más

Updatecursor devuelve con 'variable no definida'

Updatecursor devuelve con 'variable no definida'


Estoy peleando un poco con la función del cursor desde esta mañana. Gracias a la ayuda de la gente aquí y algunos tutoriales encontré que llegué tan lejos

import arcpy arcpy.env.workspace = "C:  Users  Documents  Scoring  Ecodis_clip_split" # establecer el espacio de trabajo en la carpeta con valores value = [] #create list for the return value of searchCursor eco = arcpy.SearchCursor ( "Anagance.shp", "", "", "area_ha", "") # buscar el valor en la tabla de atributos para la fila en eco: value.append (fila) #escribir el valor en la lista arcpy.env.workspace = "C:  Users  Documents  Scoring  Wetland" # establecer el espacio de trabajo en la carpeta con valores diss = arcpy.UpdateCursor ("diss_1.shp", "", "", "area_eco", "") para la fila in diss: row.setValue (area_eco, row.getValue (value)) #identificar todas las filas y actualizar el campo die field area_eco con el valor extraído del cursor de búsqueda fuera de la lista cursor.updateRow (fila) del eco del diss

Rebota con

area_eco no está definido

Lo que significa, si entendí correctamente el concepto de Python, que esto no es una variable. Ture, es mi campo el que necesita actualizarse. ¿Qué estoy haciendo mal?


Si solo hay 1 valor en su tabla inicial, esto funcionará, pero si hay más, se requerirá otro código.

import arcpy arcpy.env.workspace = "C:  Users  Documents  Scoring  Ecodis_clip_split" # establecer espacio de trabajo en carpeta con valores # USTED NO necesita hacer esto para 1 valor - valor = [] # cree una lista para el valor de retorno de searchCursor ## SI TIENE MÚLTIPLES CAMPOS, entonces debe ponerlos en una lista o diccionario, y puede hacer referencia a ellos en UpdateCursor. eco = arcpy.SearchCursor ("Anagance.shp") # recorrer - esto asignará el último valor de fila AREA_ECO a la variable 'valor' como dijiste que querías. para la fila en eco: value = row.AREA_ECO arcpy.env.workspace = "C:  Users  Documents  Scoring  Wetland" diss = arcpy.UpdateCursor ("diss_1.shp", "", "", "area_eco", "") para la fila en diss: row.setValue ("AREA_ECO", value) diss.updateRow (fila) del eco del diss

¿Por qué la variable ambiental no devuelve ninguno en Linux?

En Windows, para establecer una nueva variable = valor, simplemente podemos agregarla a la variable ambiental. Sin embargo, en Linux, parece un poco complicado. este es el procedimiento que seguí:

luego presione el teclado "i" y luego defina la variable de la siguiente manera:

después de $ echo veo la variable:

pero en mi texto sublime devuelve Ninguno.

Incluso revisé todos los os.environ disponibles pero no puedo encontrar mi Test_MyVariable. Además, también probé con

/.profile y se les agregó una variable, pero el mismo resultado. ¿Podría decirme qué estoy haciendo mal?


La forma más rápida es probablemente agregar estas dos líneas al inicio del script:

La primera línea establece la opción de conjunto de nombres en el shell que ejecuta el script, que se cancela si intenta expandir una variable no establecida, la segunda expande $ BATCHNUM en el contexto de una operación no operativa, para activar la cancelación antes de hacer cualquier otra cosa.

Si desea un mensaje de error más útil, puede escribir en su lugar:

Aquí desea verificar que BATCHNUM esté establecido y no sea nulo.

El shell POSIX proporciona una expansión de parámetros para este trabajo. Simplemente agregue esta línea antes de usar BATCHNUM:

o mejor para establecer el valor predeterminado para BATCHNUM si el usuario no proporcionó uno:

Esto funcionará en bash y en POSIX sh. Prefiero no diferenciar entre variables vacías y variables indefinidas (es decir, no me gusta set -u, pero soy solo yo).

compruebe si hay $ BATCHNUM vacío. Con $ PPID puedes hacerle el daño que quieras a tu padre (matar a $ PPID). Para asesinar a su abuelo, debe obtener la identificación del proceso por otros medios, como mirar los datos en / proc / $ PPID.

Sin embargo, si su padre muere, le envía una señal (SIGHUP), por lo que debe atraparlo antes de comenzar a matar a alguien:

Actualizar: Si crees que tienes que matar a tus padres, lo estás haciendo mal. Simplemente devuelva un código de salida significativo. La secuencia de comandos principal debe verificar el código de retorno de la secuencia de comandos llamada y reaccionar en consecuencia.

Para probar si BATCHNUM está definido y salir si no lo está:

Si también desea rechazar el caso donde BATCHNUM está vacío, use $ en lugar de $ . Para obtener información sobre el $ construcción de expansión de parámetros, ver p. ej. el manual de bash.

No mates el proceso padre. No sabes cuál es el proceso principal. Si algún script que llama a este necesita abortar si este script aborta, haga que verifique el estado de salida de este script. P.ej. en el guión n. ° 2:

o use set -e para abortar el script si algún comando devuelve un estado de falla (distinto de cero).


1 respuesta 1

Scott Meyers publicó en comp.lang.c ++ (agosto de 2010) sobre un problema en el que la generación implícita de constructores de movimientos podría romper invariantes de clase C ++ 03:

Aquí el problema es que en C ++ 03, X tenía un invariante que su miembro v siempre tenía 5 elementos. X::

X () contaba con ese invariante, pero el constructor de movimiento recién introducido se movió de v, estableciendo así su longitud en cero.

Esto está relacionado con su ejemplo, ya que el invariante roto solo se detecta en el destructor de X (como usted dice, es posible que un destructor de un objeto local haga referencia al objeto que se mueve implícitamente y, por lo tanto, vea inesperadamente un vacío objeto).

C ++ 11 intenta lograr un equilibrio entre romper parte del código existente y proporcionar optimizaciones útiles basadas en constructores de movimientos.

El Comité decidió inicialmente que los constructores de movimientos y los operadores de asignación de movimientos deberían ser generados por el compilador cuando no los proporciona el usuario.

Luego decidió que esto era realmente motivo de alarma y restringió la generación automática de constructores de movimiento y operadores de asignación de movimiento de tal manera que es mucho menos probable, aunque no imposible, que se rompa el código existente (por ejemplo, un destructor definido explícitamente).

Es tentador pensar que prevenir la generación de constructores de movimientos implícitos cuando un destructor definido por el usuario está presente es suficiente, pero no es cierto (N3153 - Implicit Move Must Go para más detalles).


No se puede obtener la variable de salida del procedimiento de Oracle utilizando el servidor vinculado Sql

Creé una conexión heterogénea entre SQL Server y Oracle e intenté llamar a un procedimiento de Oracle desde SQL Server. Recibí el siguiente error cuando intenté ejecutar el procedimiento.

El proveedor OLE DB "ORAOLEDB.Oracle" para el servidor vinculado "TESTORACLE" devolvió el mensaje "ORA-06502: PL / SQL: error numérico o de valor: búfer de cadena de caracteres demasiado pequeño ORA-06512: en" TESTUSER.PKG_TEST ", línea 1744". Msg 7215, nivel 17, estado 1, procedimiento SQLSTOREDPROCEDURE, línea 75 [Batch Start Line 0] No se pudo ejecutar la instrucción en el servidor remoto 'TESTORACLE'.

Revisé el código y descubrí que el error ocurre solo al asignar el valor para el parámetro OUT.

PROCEDIMIENTO DEL SERVIDOR SQL

PROCEDIMIENTO ORACLE

Luego busqué en Google y modifiqué el procedimiento especificando el parámetro OUTPUT en SQL Server.

Después de eso, obtengo el siguiente error,

Msg 7215, nivel 17, estado 1, procedimiento SQLSTOREDPROCEDURE, línea 75 [Batch Start Line 0] No se pudo ejecutar la instrucción en el servidor remoto 'TESTORACLE'.

Ayúdame a superar este error.

Aunque el servidor SQL devuelve un mensaje de error, se llamó al procedimiento de Oracle. Comprobado con inserto falso en la tabla de registro de la aplicación.


¿Por qué la variable de entorno ClientName no se actualiza durante el script de inicio de sesión?

Ejecuto un script de inicio de sesión de PowerShell al abrir una sesión RDS en Windows 2012 R2 Server. También ejecuto un script de PowerShell en la carpeta de inicio.

  • Cuando solicito la variable de entorno CLIENTNAME en el script de inicio de sesión, obtengo el nombre del cliente de sesión abierto anteriormente, no el actual. Si elimino la propiedad del registro HKCU Environment Clientname antes de cerrar la sesión anterior, obtengo un valor nulo para ClientName durante el inicio de sesión.
  • Cuando pregunto la variable ClientName en el script que se inicia después de que se abre la sesión, obtengo el nombre del cliente actual (como se esperaba).

El servidor RDS es SRV-XA01.

También utilizo una pequeña utilidad llamada gettscip.exe para obtener la dirección IP del cliente

Me conecto a TestClient1 y luego cierro la sesión. Luego comienzo una sesión desde TestClient2 (las fechas están en formato francés dd / mm / YYYY).

29/12/2016 10:57:07: --- Apertura de nueva sesión en SRV-XA01 ---
29/12/2016 10:57:07: * Nombre del cliente (de env: CLIENTNAME):
29/12/2016 10:57:10: * Dirección IP: 10.100.20.202
29/12/2016 10:57:11: * ClientName de [Environment] :: GetEnvironmentVariables ("usuario"). ClientName: TestClient1
29/12/2016 10:57:11: --- ¡El script de inicio de sesión finalizó correctamente! ---

29/12/2016 10:57:25: --- Script que se ejecuta después de que se abre la sesión ---
29/12/2016 10:57:25: * Nombre del cliente (de env: CLIENTNAME): TestClient2
29/12/2016 10:57:25: --- Script terminado ---

En el script de inicio de sesión, env: CLIENTNAME devuelve un valor nulo, [Environment] :: GetEnvironmentVariables ("usuario"). ClientName devuelve el nombre del cliente anterior. Después de iniciar sesión, todo está bien.

La dirección IP que obtengo es la correcta del cliente actual.

Entonces, ¿por qué no se actualiza la variable de entorno ClientName en el momento en que se ejecuta el script de inicio de sesión?


1 respuesta 1

Hay bastantes problemas con este código:

Llamadas consecutivas de selecto. en el resultado no acumula filas en el resultado, cada una sobrescribe lo que estaba anteriormente en el resultado.

Una variable escrita después de una tabla (el resultado del tipo result_load_status aquí) debe contener solo una fila de este tipo, no un conjunto de resultados completo. Para un conjunto de resultados completo, use CREAR TABLA TEMPORAL o un cursor si es posible.

select * from name_of_a_variable no existe como una construcción válida. Una tabla temporal en lugar del nombre de una variable funcionaría.

De todos modos, dado que la acumulación de resultados ya está integrada en RETURN QUERY, no necesita nada de lo anterior.

RETURN QUERY agrega los resultados de la ejecución de una consulta al conjunto de resultados de la función


Preguntas frecuentes (FAQ)

El Sistema de datos estadísticos para científicos e ingenieros (SESTAT) es una base de datos que proporciona datos demográficos, educativos, laborales y de ingresos sobre científicos e ingenieros de EE. UU. Los científicos e ingenieros de esta base de datos se definen como personas que han obtenido un título postsecundario en ciencias, ingeniería o, en encuestas posteriores, ciencias de la salud. Las personas que ejercen una ocupación relacionada con la ciencia o la ingeniería, aunque no tengan un título postsecundario en ciencias o ingeniería, se incluyen en el archivo SESTAT.

La base de datos está compuesta por personas que cumplen con estos criterios de tres encuestas realizadas por la Fundación Nacional de Ciencias: la Encuesta Nacional de Graduados Universitarios, la Encuesta de Recipientes de Doctorados y la Encuesta Nacional de Graduados Universitarios Recientes. Las tres encuestas se realizan al mismo tiempo, las preguntas comunes entre las encuestas tienen el mismo período de referencia y tienen una población objetivo similar (personas no institucionalizadas menores de 76 años con título de licenciatura o superior).
Cada encuesta del componente SESTAT fue diseñada para ser una representación transversal de la población objetivo para ese año. Sin embargo, algunos encuestados en el SESTAT son entrevistados en múltiples encuestas a lo largo del tiempo, lo que permite una investigación longitudinal limitada. Para obtener más información sobre la vinculación de datos longitudinales, visite la página de datos longitudinales.

Los archivos SESTAT están compuestos por microdatos. Cada registro es una persona, con todas las características codificadas numéricamente. A diferencia de otros proyectos de datos de IPUMS, los registros de SESTAT no están organizados por hogares. Debido a que los datos son individuos y no tablas, los investigadores deben usar un paquete estadístico para analizar los millones de registros en la base de datos. Un sistema de extracción de datos permite a los usuarios seleccionar solo las muestras y variables que necesitan.

¿Cuál es la diferencia entre SESTAT y SDR? [cima]

La Encuesta de destinatarios de doctorados (SDR) es una de las tres encuestas de subcomponentes del Sistema de datos estadísticos para científicos e ingenieros. El marco de muestreo para el SDR incluye a todos los beneficiarios de doctorados que residen en los EE. UU. Y que recibieron un título de doctorado en investigación de una institución de EE. UU. En un campo de ciencias o ingeniería. Todos los encuestados en SDR están incluidos en la versión SESTAT de los datos. La muestra de SDR completa original tiene algunas variables que no se incluyeron en la versión de SESTAT. Consulte nuestra Nota de usuario sobre diseños de encuestas para obtener información sobre las encuestas que componen los archivos SESTAT.

Cuando utilice uno de los conjuntos de datos de muestra de SESTAT agrupados, utilice la variable PESO. Si está utilizando la muestra de encuesta SDR completa, utilice la variable WTSURVY.

¿Son los datos de educación superior representativos a nivel nacional? [cima]

La población objetivo de las encuestas de SESTAT son las personas no institucionalizadas menores de 76 años con una licenciatura o un título superior, o una ocupación, en un campo de la ciencia, la ingeniería o la salud. Las ponderaciones proporcionadas con los datos hacen que las estimaciones resultantes sean representativas a nivel nacional de la población objetivo en los Estados Unidos en el año de la encuesta.

¿Quién se considera científico o ingeniero? [cima]

En los marcos de muestreo de las encuestas SESTAT, un científico o ingeniero es una persona que tiene una licenciatura o un título superior en ciencia, ingeniería o salud, o en un campo relacionado con la ciencia, la ingeniería o la salud. Más específicamente, la siguiente lista describe los campos de grado que la National Science Foundation anida debajo de la ciencia y la ingeniería o los campos relacionados con la ciencia y la ingeniería.

Ciencia e Ingenieria

Ciencias de la computación y matemáticas
Ciencias biológicas, agrícolas y ambientales.
Ciencias físicas (Física, química, geociencias
Ciencias sociales (psicología, economía, ciencias políticas)
Ingeniería

Relacionados con la ciencia y la ingeniería

Salud (Medicina, audiología, enfermería, fisioterapia)
Formación de profesores de ciencias y matemáticas
Campos tecnológicos y técnicos (tecnología de la ingeniería)

Otros campos relacionados con la ciencia y la ingeniería

Ciencia actuarial, diseño arquitectónico o ambiental

Los encuestados que tienen un título en un campo que no sea ciencia, ingeniería o campo relacionado con la salud también podrían incluirse en el SESTAT si tuvieran una ocupación en un campo de ciencias, ingeniería o ciencias de la salud.

¿Qué tipo de datos están disponibles? [cima]

Las encuestas de SESTAT recopilan información relacionada con la demografía, la participación en la fuerza laboral, el historial educativo, la familia y las actividades profesionales. Por motivos de confidencialidad, la información geográfica, como el lugar de nacimiento, la ubicación de la institución académica o la residencia actual, a veces se suprime o solo está disponible a nivel de región.

¿Cuáles son las diferencias entre el salto lógico, los espacios en blanco, los que faltan y la exclusión / confidencialidad de la encuesta? [cima]

En los datos NSF originales, había tres tipos de respuesta no válida. También hubo espacios en blanco inexplicables, a los que IPUMS Higher Ed asignó un valor de respuesta no válido.

Salto lógico: según la respuesta que dio un encuestado a una pregunta de la encuesta, es posible que las instrucciones de la encuesta le hayan indicado que se salte una pregunta. En este caso, una falta de respuesta se consideró un salto lógico. Otra forma de enmarcar esto es que el encuestado no se encontraba dentro del universo de una pregunta de la encuesta.

Falta: un código que falta indica que el encuestado estaba en el universo para una pregunta pero no respondió una pregunta de la encuesta.

Exclusión / Confidencialidad de la Encuesta: En los archivos NSF originales, si una pregunta de la encuesta se hizo en una sola encuesta, las observaciones de los encuestados en las otras dos encuestas se codificarán con un "97". En algunos casos, las respuestas como el origen étnico o la ubicación del encuestado pueden suprimirse para evitar la identificación del individuo.

En blanco: en los archivos NSF originales, había valores en blanco inexplicables que hemos elegido codificar de manera diferente a los casos identificados explícitamente como faltantes.

En IPUMS Higher Ed, hemos impuesto el siguiente esquema de codificación consistente para estos valores:

96: en blanco
97: Exclusión / confidencialidad de la encuesta
98: salto lógico
99: Desaparecido

¿Los nombres de las variables de educación superior de IPUMS son los mismos que los nombres de las variables de uso público originales? [cima]

Cuando es posible, los nombres de las variables de educación superior de IPUMS son idénticos a los nombres de las variables originales. En algunos casos, los nombres de las variables cambiaron con el tiempo y normalmente mantenemos el nombre de la variable más reciente. Consulte nuestra Nota de usuario para conocer la correspondencia de nombres de variables.

¿Es posible el análisis de datos longitudinales con IPUMS Higher Ed? [cima]

Sí, debido a que algunos encuestados son encuestados varias veces en las encuestas de NSF, existen algunas oportunidades para el análisis longitudinal. La variable PERSONID identifica a las personas a lo largo de los años de la encuesta. (Reemplaza la variable original, REFID, que contiene valores no numéricos en algunas muestras). IPUMS Higher Ed no proporciona archivos longitudinales vinculados; sin embargo, los usuarios pueden descargar las muestras que deseen y vincularlas fácilmente usando un programa estadístico, fusionando por PERSONID . Puede encontrar información más detallada sobre los patrones de las encuestas de seguimiento en nuestra Nota de usuario sobre datos longitudinales.

¿Hay pesos longitudinales que pueda usar para las encuestas de componentes de SESTAT? [cima]

Los pesos longitudinales fueron creados por la NSF, pero aún no están disponibles públicamente.

¿Es posible vincular a los encuestados del NSCG con la ACS? [cima]

Tanto los datos de la encuesta ACS como los NSCG están protegidos por el Código de los EE. UU., Título 13, por lo que a través de las técnicas para evitar la divulgación utilizadas por la Oficina del Censo, no es posible vincular a los encuestados de la ACS con los encuestados del NSCG. Para los investigadores que deseen crear estos vínculos, comuníquese con la administración del Centro Federal de Datos de Investigación Estadística (FSRDC) para solicitar el uso de la versión restringida de los datos del NSCG.

¿Puedo vincular los datos de educación superior de IPUMS con los datos SESTAT de uso público originales? [cima]

Sí, el número de identificación personal original REFID está disponible para cada muestra de educación superior de IPUMS.

¿Dónde debería empezar un nuevo usuario? [cima]

El punto de partida natural son los enlaces "Seleccionar datos" o "Examinar y seleccionar datos" en la barra de navegación izquierda y en el banner superior. Estos enlaces abren la página de variables: la herramienta principal para explorar los contenidos de IPUMS Higher Ed. De forma predeterminada, la página de variables muestra un grupo de variables a la vez para todas las muestras de la serie de datos. Puede cambiar la opción de vista para mostrar todos los grupos simultáneamente, pero la página puede volverse muy grande y lenta de cargar. Sin embargo, puede filtrar la información en cualquier momento para incluir solo las muestras que le interesen ("Seleccionar muestras").

Cuando seleccione muestras, la página mostrará solo las variables presentes en esas muestras. Una "x" indica la disponibilidad de una variable para una muestra en particular.

En la página de variables, al hacer clic en el nombre de una variable, aparece su documentación. La información sobre la variable está contenida en varias pestañas. La pestaña predeterminada es la breve descripción de la variable. Por lo general, hay más información disponible en la pestaña "comparabilidad". La página de variables también tiene enlaces directos a la página de códigos para cada variable (también son accesibles como una pestaña en la descripción de la variable). La página de códigos muestra los códigos y etiquetas de la variable y la disponibilidad de categorías en las muestras. Estas categorías pueden sugerir los tipos de investigación posibles con una muestra determinada.

En todo el sistema de documentación variable hay botones para "Agregar al carrito". Todas las variables que seleccione de esta manera se colocan en su carrito de datos para incluirlas en un extracto de datos. Sus selecciones solo duran para la sesión web actual.

El carrito de datos en la parte superior derecha realiza un seguimiento de sus selecciones de variables y muestras. Una vez que haya realizado algunas selecciones, puede hacer clic en "Ver carrito" para revisar sus opciones. Si ha seleccionado variables y muestras, puede ingresar al sistema de extracción de datos. Para realizar una extracción de datos, debe estar registrado para usar IPUMS Higher Ed. Si ya está registrado para usar IPUMS Higher Ed, puede hacer clic en "crear un extracto" y usar el sistema de acceso a datos. Las instrucciones para el sistema de extracción están aquí.

¿Cómo obtengo acceso a los datos de educación superior de IPUMS? [cima]

El acceso a la documentación está disponible de forma gratuita y sin restricciones; sin embargo, los usuarios deben registrarse antes de extraer datos del sitio web.

Los microdatos se componen de registros individuales que contienen información recopilada sobre personas. La unidad de observación es el individuo. Las respuestas de cada persona a las diferentes preguntas se registran en variables separadas.

Los microdatos contrastan con los datos "resumidos" o "agregados" más familiares. Los datos agregados son estadísticas compiladas, como una tabla de estado civil por sexo para alguna localidad. No existen tales estadísticas tabulares o resumidas en los datos de SESTAT.

Los microdatos son intrínsecamente flexibles. No es necesario depender de las estadísticas publicadas que se compilan de cierta manera, si es que lo hacen. Los usuarios pueden generar sus propias estadísticas a partir de los datos de la forma que deseen, incluidos los análisis multivariados a nivel individual.

Todos los conjuntos de datos de educación superior de IPUMS incluyen una variable de ponderación. Cada individuo tiene un peso que varía de 1 a 13,508.49, que se ajusta a la frecuencia con la que los individuos con características que coinciden con el encuestado ocurren en la población objetivo real. La mayoría de los programas estadísticos tienen funciones para utilizar automáticamente los pesos para ajustar los análisis estadísticos.

La variable de ponderación WTSURVY debe usarse para muestras de encuestas completas, es decir, las muestras de encuestas SDR originales en contraposición a las muestras SESTAT agrupadas. La variable apropiada para analizar archivos SESTAT es PESO. Debido a que es posible que la misma persona esté en la población objetivo para más de una encuesta NSF, la NSF ajusta WTSURVY de cada encuesta para su uso cuando se combinan en un archivo SESTAT. Para obtener más información sobre los diseños de encuestas y la estructura de archivos de SESTAT, consulte nuestra Nota de usuario sobre el diseño de encuestas.

¿Qué significa & quotuniverso & quot en las descripciones de las variables? [cima]

El universo es la población a la que se le da la oportunidad de responder una pregunta de encuesta en particular, o que tiene un valor válido para una variable. La población está determinada por características individuales o respuestas particulares a preguntas anteriores. Por ejemplo, a los niños no se les suelen hacer preguntas sobre el empleo, y a los hombres y los niños no se les hacen preguntas sobre fertilidad. Los casos que están fuera del universo para una variable se etiquetan como "Salto lógico" en la página de códigos. Las diferencias en el universo de una variable entre muestras son un problema común de comparabilidad de datos. La etiqueta "Salto lógico" es comparable a "NIU" en otros proyectos de datos de IPUMS.

Todos los datos de IPUMS se entregan a través de nuestro sistema de extracción de datos. Los usuarios seleccionan las variables y las muestras que les interesan y el sistema crea un extracto personalizado que contiene solo esta información. Para comenzar, los usuarios pueden consultar nuestras instrucciones para el sistema de extracción de datos y las instrucciones para abrir un extracto de IPUMS en su computadora.

Los datos se generan en nuestro servidor. El sistema envía un mensaje de correo electrónico al usuario cuando se completa la extracción. El usuario debe descargar el extracto y analizarlo en su máquina local. El acceso a la documentación está disponible de forma gratuita y sin restricciones; sin embargo, los usuarios deben registrarse antes de extraer datos del sitio web.

¿En qué formato están los datos? [cima]

IPUMS produce datos ASCII de columna fija. Los datos son completamente numéricos. Además del archivo de datos ASCII, el sistema crea un archivo de sintaxis de paquete estadístico para acompañar cada extracto. El archivo de sintaxis está diseñado para leer los datos ASCII mientras aplica las etiquetas de valor y variable adecuadas. Se admiten SPSS, SAS y Stata. Debe descargar el archivo de sintaxis con el extracto o no podrá leer los datos. El archivo de sintaxis requiere una pequeña edición para identificar la ubicación del archivo de datos en su computadora local.

También se crea un archivo de libro de códigos con cada extracto. Registra las características de su extracto y debe descargarse para llevar un registro.

Todos los archivos de datos se crean en formato comprimido gzip. Debe descomprimir el archivo para analizarlo. La mayoría de las utilidades de compresión de datos manejarán los archivos.

¿Cuánto tiempo lleva una extracción de datos? [cima]

El tiempo necesario para realizar un extracto varía según la cantidad y el tamaño de las muestras solicitadas, si se realiza la selección del caso y la carga en nuestro servidor. Los extractos suelen tardar unos minutos. El sistema envía un correo electrónico cuando se completa la extracción, por lo que no es necesario permanecer activo en el sitio de IPUMS mientras se realiza la extracción.

¿Cómo funciona la & quot selección de muestras & quot en el sitio web de educación superior de IPUMS? [cima]

Cuando un usuario ingresa por primera vez al sistema de documentación de variables, todas las muestras se seleccionan de forma predeterminada. Cada variable del sistema se mostrará en todas las pantallas relevantes.

Los usuarios pueden filtrar la información que se muestra seleccionando solo las muestras que les interesan. Solo las variables disponibles en una de las muestras seleccionadas aparecerán en las listas de variables. Las páginas de códigos y descripciones de variables integradas también se filtrarán para mostrar solo el texto y las columnas correspondientes a las muestras seleccionadas. Las selecciones de muestra se pueden modificar en cualquier momento de su sesión. Las selecciones no persisten más allá de la sesión actual.

Cuando un usuario ingresa al sistema de extracción después de seleccionar muestras, esas selecciones se llevan al sistema de extracción de datos.

¿Qué significa "añadir al carrito"? [cima]

Mientras navega por las variables en el sistema de documentación, puede colocarlas en su carrito de datos. Las casillas de verificación y los botones etiquetados "Agregar al carrito" están disponibles en diferentes contextos para este propósito. Cualquier variable que identifique de esta manera será seleccionada cuando ingrese al sistema de extracción de datos. Una vez en el sistema de extracción, puede volver a la lista de variables para realizar más selecciones.

¿Por qué no puedo abrir el archivo de datos? [cima]

Hay dos posibles explicaciones:

1) Los datos producidos por el sistema de extracción están comprimidos con gzip (el archivo tiene una extensión .gz). Debe utilizar una utilidad de compresión de datos para descomprimir el archivo antes de poder analizarlo.

2) No puede abrir el archivo de datos directamente con un paquete estadístico. El archivo es un archivo ASCII simple, no un archivo de sistema en el formato de un paquete estadístico. Sin embargo, el sistema de extracción genera un archivo de sintaxis (configuración) para leer el archivo ASCII en su paquete estadístico. Debe descargar el archivo de sintaxis junto con el archivo de datos de nuestro servidor, abrir el archivo de sintaxis con su paquete estadístico y editar la ruta en el archivo de sintaxis para apuntar a la ubicación de los datos en su computadora local. Ahora está listo para leer los datos.

¿Existe un paquete estadístico preferido para utilizar IPUMS? [cima]

IPUMS es compatible con SPSS, SAS y Stata. El sistema no crea archivos de datos en esos formatos, pero genera archivos de sintaxis con los que leer los datos ASCII.

¿Puedo obtener los datos originales? [cima]

Los archivos de datos de encuestas originales de uso público SESTAT y NSF completos se encuentran en la siguiente página web del Centro Nacional de Estadísticas de Ciencia e Ingeniería.

¿Cómo se identifica un registro de forma única? [cima]

Las variables REFID y PERSONID (una recodificación de REFID) representan a un encuestado individual, aunque los encuestados pueden aparecer en diferentes muestras. La combinación de PERSONID / REFID y SAMPLE constituye un identificador único para cada registro individual en IPUMS Higher Ed.

¿Hay aspectos delicados de los datos de IPUMS de los que se deba estar especialmente atento? [cima]

Las muestras de Educación Superior de IPUMS están ponderadas: cada individuo no representa el mismo número de personas en la población. Es importante utilizar las variables de peso al realizar análisis con estas muestras.

Es importante examinar la documentación de las variables que está utilizando. Los códigos y etiquetas de las categorías de variables no cuentan toda la historia. En otras palabras, las etiquetas de sintaxis no son suficientes. Hay dos cosas a las que se debe prestar especial atención. El universo de una variable, la población en riesgo de responder a la pregunta, puede diferir sutil o marcadamente entre las muestras. Además, lea las discusiones sobre comparabilidad de variables para las muestras que le interesan. Allí se deben mencionar cuestiones importantes de comparabilidad. Si una variable es de particular importancia en su investigación (por ejemplo, es su variable dependiente), también puede leer el texto de enumeración asociado con ella. Este texto está vinculado directamente a la variable, por lo que es bastante fácil recuperarlo.

¿Cuáles son las principales limitaciones de los datos? [cima]

IPUMS se compone en su totalidad de datos de muestra y algunas subpoblaciones pueden ser demasiado pequeñas para estudiar con los datos de muestra.

Dado que los datos son de uso público, se han tomado medidas para garantizar la confidencialidad. Se suprimen los nombres y otra información de identificación. Lo que es más importante para muchos investigadores, la información geográfica es limitada.

¿Puedo encontrar personas concretas en los datos? [cima]

No. Se han tomado varias medidas para garantizar la confidencialidad de los datos. Fundamentalmente, las muestras no contienen nombres ni direcciones. Los datos son solo muestras, por lo que no hay garantía de que un individuo determinado esté en el conjunto de datos.

¿Cómo cito IPUMS Higher Ed? [cima]

Los informes y publicaciones que utilicen datos de educación superior de IPUMS deben citarse de forma adecuada. La cita es:

Centro de población de Minnesota. IPUMS Higher Ed: Versión 1.0. [Base de datos legible por máquina]. Minneapolis: Universidad de Minnesota, 2016.

Cualquier publicación, informe de investigación, presentación o material educativo que haga uso de los datos o la documentación debe agregarse a nuestra Bibliografía. El financiamiento continuo para IPUMS depende de nuestra capacidad para mostrar a nuestras agencias patrocinadoras que los investigadores están utilizando los datos con fines productivos.

Utilice el menú "Variables" para explorar o buscar variables:
Temas: variables por grupo
A-Z: variables integradas por letra
Buscar: muestra solo las variables que contienen texto especificado en campos particulares

Utilice los enlaces en el lado derecho del menú para:
Seleccionar muestras: limitar la visualización de información variable a muestras seleccionadas
Ayuda: lo dirige a nuestras preguntas frecuentes para obtener instrucciones sobre el sistema de extracción.
Opciones de visualización: modifique cómo se muestra la lista de variables u obtenga ayuda para esta página
Clave de etiqueta de muestra: muestra una clave descriptiva de las etiquetas de muestra y cómo se corresponden con las diferentes encuestas de NSF

El menú
La página de variables le permite buscar variables mientras limita y controla cómo se muestra la información.

El menú "Seleccionar variables" sirve para examinar las variables. También puede buscar variables especificando términos de búsqueda para campos específicos de metadatos variables. El sistema devolverá una lista de variables que incluyen cualquiera de los términos de búsqueda que indique.

Cuando "Selecciona Muestras", limita la lista de variables para mostrar solo las variables que están disponibles en al menos una de esas muestras. Pero el efecto de seleccionar muestras se extiende a todas las páginas de códigos y descripciones de variables a las que puede acceder a través del sistema de variables. Solo la información relevante para las muestras seleccionadas se mostrará en cualquier contexto mientras navega por las variables. Puede cambiar sus selecciones de muestra en cualquier momento.

La selección de muestras es una buena práctica cuando se explora el IPUMS, porque la cantidad de información puede ser difícil de manejar. Por otro lado, a veces es necesario ver todo para determinar qué tipos de investigación son posibles utilizando la base de datos.

Las opciones finales son "Opciones" y "Ayuda". El elemento "Opciones de visualización" muestra una pantalla que ofrece una serie de opciones con respecto a la visualización de la lista de variables. Cada selección tiene una opción predeterminada.

Grupos de encuestas
Cambie entre la versión larga de una etiqueta de muestra y la versión corta. For example, the long version of the SESTAT NSCG file in 1993 is S-NSCG 1993, while the short version is S-CG 1993.

Variable groups
Switch between viewing one variable group at a time and viewing all variable groups on one screen. Unless you have a limited number of samples selected, your browser may be slow to display all groups. The default view is one group at a time.

Variable availability information
Switch between displaying the full sample-specific availability matrix, and a view that only displays the total number of samples that contain each variable. Both views only display or sum the samples that the user has selected in "Select samples." The default view is the detailed availability information.

Variables that are not available for the selected samples
Switch between a view that only displays variables present in one of your selected samples, and a view that displays every variable, even if they are not available. The default view is to only display available variables.

Ordering of sample columns
Display the samples columns indicating variable availability in chronological order (oldest to newest) or reverse chronological order (newest to oldest). The default is reverse chronological (newest to oldest).

As you browse the variables, they are displayed in a list containing a number of columns. The variable name links to the variable description, which includes detailed comparability discussions, universes, and enumeration text. The variable codes -- and their associated labels -- can be accessed directly using the "codes" links.

In the area to the right of the "codes" column is a column for every sample that the user chose in "Select samples." By default, the most commonly requested samples from each year are selected. The country abbreviation and last two digits of the sample year identify each sample at the top of every column. Hover over the year with the mouse to see the full country name. If a variable is available in a given sample, an "x" is printed in that column.

Each variable has a box on the far left in the column labeled "Add to cart." Use these to identify variables you wish to include in a data extract.


Using the data extract system

You must be logged in to use the data extract system. If you are not registered, you must apply for access.

At the top right corner of the variables page is a summary of your data cart. This box displays the number of variables and samples you have selected. Clicking the yellow circle next to a variable places it in your data cart. You can view your data cart at any time by clicking "View Cart." The "View Cart" link only becomes operative when you have selected a variable or sample.

You data cart lists the variables pre-selected by the extract system as well as any variables you selected while browsing the documentation. As with the variable selection page, you can remove variables from your extract in this step by clicking the checkbox next to the variable in the "Add to cart" column. If you chose a variable but subsequently altered your sample selections in such a way that the variable is no longer available, it is indicated by an "i" icon.

The data cart also includes record type, links to codes pages, and sample availability for the variables in your cart.

Buttons are provided to return to the variable list to make more selections or to alter your sample choices. If you return to the variable list, click on "View Cart" again to return to the data cart.

When you are satisfied with your data selections, click "Create Data Extract" to finalize your extract request.

Why are some variables in my data cart preselected? [top]

Certain variables appear in your data cart even if you did not select them, and they are not included in the constantly updated count of variables in your data cart.

Unless you are absolutely certain you will not need one of these variables, we recommend that you not remove them from your data cart.

When you click "Create data extract" in the Data Cart, you come to the Extract Request page. All of the actions on this page are optional. If you wish, you can simply hit the "Submit" button and create your data extract. You will be prompted to log in if have not done so already.

The page summarizes your data extract and provides a number of options for customizing it. A link at the top expands to show the samples you selected. If any samples have notes associated with them, a message will appear on the samples bar to encourage you to review that information. Click the appropriate links to go back to the variable browsing and sample selection pages to alter your choices. You return to the extract request page via the data cart, where you can review the availability matrix for selections and easily drop variables by unchecking them.

When you submit an extract, there will be a short delay, rarely longer than a few minutes. You do not need to wait on our site for the job to be completed. The system will send you an email when your extract is ready.

The definitions of every extract will remain on our server indefinitely, but the data files are subject to deletion after three days. However, the screen where you download extracts has a feature that lets you revise old extracts. When you click on "revise," all your selections for that extract will be loaded into the system, after which you can edit or regenerate it. Note, however, that each successive data release can create difficulties for recreating old extracts, because codes might change.

Extract option: Select cases [top]

The "select cases" feature allows users to limit their dataset to contain only records with specific values for selected variables, such as persons age 65 and older. Multiple variables can be used in combination during case selection. Selections for multiple variables are additive, each being implicitly connected by a logical "AND" for processing purposes. You can only perform case selection on either the general or the detailed version of a variable, not both.

Users should be careful with the case selection feature. It is possible to select a specific variable category that does not exist across all the samples in your extract, thereby inadvertently excluding those samples from your dataset.

Extract option: Describe your extract [top]

You can describe your extract for future reference. Our system will display the description on the page where you download your data extract.


4 respuestas 4

When reviewing code, I apply the following rules:

Always use const for function parameters passed by reference where the function does not modify (or free) the data pointed to.

Always use const for constants that might otherwise be defined using a #define or an enum. The compiler can locate the data in read-only memory (ROM) as a result (although the linker is often a better tool for this purpose in embedded systems).

Never use const in a function prototype for a parameter passed by valor. It has no meaning and is hence just 'noise'.

Where appropriate, use const volatile on locations that cannot be changed by the program but might still change. Hardware registers are the typical use case here, for example a status register that reflects a device state:

Other uses are optional. For example, the parameters to a function within the function implementación can be marked as const.

or function return values or calculations that are obtained and then never change:

These uses of const just indicate that you will not change the variable they don't change how or where the variable is stored. The compiler can of course work out that a variable is not changed, but by adding const you allow it to enforce that. This can help the reader and add some safety (although if your functions are big or complicated enough that this makes a great difference, you arguably have other problems). Edit - eg. a 200-line densely coded function with nested loops and many long or similar variable names, knowing that certain variables never change might ease understaning significantly. Such functions have been badly designed or maintened.

Problems with const . You will probably hear the term "const poisoning". This occurs when adding const to a function parameter causes 'constness' to propagate.

Edit - const poisoning: for example in the function:

if we change str to const , we must then ensure that fuction_b also takes a const . And so on if function_b passes the str on to function_c , etc. As you can imagine this could be painful if it propagates into many separate files/modules. If it propagates into a function that cannot be changed (eg a system library), then a cast becomes necessary. So sprinkling const around in existing code is perhaps asking for trouble. In new code though, it is best to const qualify consistently where appropriate.

The more insidious problem of const is that it was not in the original language. As an add-on it doesn't quite fit. For a start it has two meanings (as in the rules above, meaning "I'm not going to change this" and "this cannot be modified"). But more than that, it can be dangerous. For example, compile and run this code and (depending upon the compiler/options) it may well crash when run:

strchr returns a char* not a const char* . As its call parameter is const it must emitir the call parameter to char* . And in this case that casts away the real read-only storage property. Edit: - this applies generally to vars in read-only memory. By 'ROM', I mean not just physical ROM but any memory that is write-protected, as happens to the code section of programs run on a typical OS.

Many standard library functions behave in the same way, so beware: when you have verdadero constants (ie. stored in ROM) you must be very careful not to lose their constness.


5 respuestas 5

The magic word in the X window system is DISPLAY. A display consists (simplified) of:

A display is managed by a server program, known as an X server. The server serves displaying capabilities to other programs that connect to it.

The remote server knows where it has to redirect the X network traffic via the definition of the DISPLAY environment variable which generally points to an X Display server located on your local computer.

The value of the display environment variable is:

hostname is the name of the computer where the X server runs. An omitted hostname means the localhost.

D is a sequence number (usually 0). It can be varied if there are multiple displays connected to one computer.

S is the screen number. A display can actually have multiple screens. Usually, there's only one screen though where 0 is the default.

hostname:D.S means screen S on display D of host hostname the X server for this display is listening at TCP port 6000+D.

host/unix:D.S means screen S on display D of host host the X server for this display is listening at UNIX domain socket /tmp/.X11-unix/XD (so it's only reachable from host).

:D.S is equivalent to host/unix:D.S, where host is the local hostname.

:0.0 means that we are talking about the first screen attached to your first display in your local host

From the user's perspective, every X server has a display name of the form:

hostname:displaynumber.screennumber

This information is used by the application to determine how it should connect to the server and which screen it should use by default (on displays with multiple monitors):

hostname The hostname specifies the name of the machine to which the display is physically connected. If the hostname is not given, the most efficient way of communicating to a server on the same machine will be used. displaynumber The phrase "display" is usually used to refer to a collection of monitors that share a common keyboard and pointer (mouse, tablet, etc.). Most workstations tend to only have one keyboard, and therefore, only one display. Sin embargo, los sistemas multiusuario más grandes suelen tener varias pantallas para que más de una persona pueda realizar trabajos gráficos a la vez. Para evitar confusiones, a cada pantalla de una máquina se le asigna un número de pantalla (que comienza en 0) cuando se inicia el servidor X para esa pantalla. The display number must always be given in a display name. screennumber Some displays share a single keyboard and pointer among two or more monitors. Since each monitor has its own set of windows, each screen is assigned a screen number (beginning at 0) when the X server for that display is started. If the screen number is not given, screen 0 will be used.

The existing answers fail to address the broader picture.

If you are not using a graphical environment (i.e. you are logging in on the system console with no windows etc or you are logging in remotely from a text-only terminal over SSH or similar, such as from a Windows computer running PuTTY) then no GUI is involved, and DISPLAY will typically be unset. Your only means of communicating with the computer is the command line (though there may be ways to pivot into a GUI session if you know how).

If you are logging in on the console with a graphical interface (on Ubuntu, typically the GDM greeter is used) or using a graphical terminal (such as from a Windows computer running eXceed or mobaX, or remote desktop software like a VNC client) the DISPLAY variable is set up by the program which manages your graphical session to indicate to graphical clients which I/O devices to connect to.

Traditionally, the GUI on an Ubuntu computer was running X.org, an X11 implementation, though more recently, a modernized replacement called Mir was introduced by Canonical and even more recently, I believe Mir will be abandoned in favor of another project with broadly similar goals called Wayland. These replacements are intended to reduce the complexity of a full X11 stack, which we will not be going into here -- they adhere to the same DISPLAY convention, which is after all what we are discussing here.

On X11, the host part of DISPLAY could be a remote server, and you would use your Ubuntu computer as a "graphical terminal" to access files and programs on that remote server (in which case your computer is the "server" which serves a keyboard, a mouse, and one or more display devices to "client" programs running on the remote . server). More commonly, the X11 (or Mir, or Wayland) server and the client programs (a desktop manager and various graphical clients such as a web browser, an email client, a calendar program, etc) all run on your computer. This is indicated by the "server" part of the DISPLAY value, which in the latter case is typically empty (which implies the default value, localhost ).

An X11 server may run one or more graphical sessions -- for example, your console login and a remote VNC session could be running at the same time. In this case (if they are managed by the same X11 server instance) you have more than one "display" in X11 terms. In practice, one session (one login event and the desktop instance spawned from this) is one display in X11.

One such display can have one or more screens. Traditionally, this meant one monitor, though the original architecture had some unfortunate traits such as the inability to move a window from one screen to another. Add-ons like Xinerama and Xrandr further muddied the situation to the point where one screen often connects multiple monitors in various ways.

If you have played with multiple-monitor systems, you have probably discovered that you can arrange monitors in various ways and end up with a rectangular area where your monitors display some parts of it and other parts are not assigned to any monitor. This is the "screen" that X11 creates, and if you have more than one display card, you can have multiple of these screens, each assigned to one or more monitors (or in theory, running without a monitor Xvfb exploits this to allow you to run X11 without any monitors, simply mapping the GUI to a memory region for whatever purpose).