Note
La documentación de esta extensión, salvo pequeños cambios en la imagen gráfica (iconos básicamente), es válida tanto para la extensión en gvSIG 1.1.2 como superiores. En el caso de introducirse novedades para versiones más recientes de gvSIG se indicará convenientemente en la misma documentación.
La normalización de una cadena de texto consiste en sustraer de ésta un conjunto de subcadenas que poseen sentido por sí solas. En el caso de una dirección postal, la normalización consiste en obtener de forma separada los distintos elementos que la forman, como puede ser el nombre de la calle, el código postal, el número de portal, el municipio, la provincia, etc. Este proceso de partición de la cadena original en distintas subcadenas con sentido propio se realiza gracias a la definición de los distintos caracteres que actúan como puntos de ruptura entre cadenas de texto.
Esta extensión permite realizar, por una parte, la normalización de cadenas que se encuentren en un fichero de texto plano (txt,*csv*, etc.), guardandolas posteriormente en los registros de una nueva tabla en formato dbf. Por otra parte, también se normalizan cadenas de texto que se encuentran en los registros de un campo de un tabla, almacenandose en la misma tabla en nuevos campos o en una tabla nueva, con la posibilidad de añadir campos comunes con la original para poder realizar una posterior unión de tablas (Join).
Ejemplos de normalización:
Conde Salvatierra de Álava#34#10#46004#Valencia Calle. Conde Salvatierra de Álava Número. 34 Puerta. 10 CP. 46004 Ciudad. Valencia
533002.5;4757999.5;778.77 X UTM. 533002.5 Y UTM. 4757999.5 h. 778.77
Esta extensión añade a la interfaz de gvSIG dos botones en la barra de herramientas y dos nuevas funcionalidades en el menú Tabla. Por una parte, está la funcionalidad de Normalizar fichero de texto, y por otra parte, Normalizar una campo de tabla.
La funcionalidad de Normalizar fichero de texto está disponible cuando se encuentre en una vista o tabla, mientras que la funcionalidad de Normalizar una campo de tabla está disponible cuando trabaje sobre una tabla en gvSIG.
Y para finalizar, añadir un nuevo concepto, patrón de normalización, que es la definición de una serie de parámetros que definidos por el usuario para poder realizar la separación de cadenas de texto. Esta configuración podrá ser almacenada en un archivo xml. De esta forma posteriormente se podrá cargar de nuevo y repetir las operaciones de normalización si tener que definir de nuevo todo el patrón.
La ventana principal de normalización es válida tanto para normalizar un fichero de texto plano, como para normalizar los registros de un campo de una tabla. Mediante esta ventana va a poder configurar fácilmente la separación de las diferentes subcadenas.
Esta ventana principal de esta extensión está compuesta por distintas secciones:
En esta sección se le indica el nombre del fichero o tabla que contiene las cadenas de texto que pretende normalizar y además se muestra sus tres primeros registros, de esta forma se facilita mucho la creación del patrón de normalización.
En el caso que desee realizar el proceso con un fichero de texto que posea una cabecera, formada por distintas filas de texto, puede activar la opción de No normalizar la primera fila para evitar la normalización de estas primeras cadenas. Esta opción permite definir el número de filas de texto que hay que ignorar.
En esta lista se crean los nuevos campos de la tabla de salida necesarios para almacenar las nuevas subcadenas que se obtengan después del proceso de normalización. Por ejemplo, si pretende obtener 4 subcadenas de la cadena de texto inicial es necesario que genere al menos 4 campos. Debe tener presente que el proceso de recorte genera tantas cadenas como campos haya generado y además no elimina la cadena sobrante de caracteres por la parte derecha, en el caso de que existan. Esto significa que el último campo va a contener su subcadena más el sobrante de la cadena inicial. Si quiere realizar recortes precisos de cadenas y dejar el sobrante de caracteres en un campo a parte es necesario que genere un campo de más.
La lista de campos se gestiona mediante los botones de añadir capa (+), eliminar capa (-) y, subir y bajar la posición (orden) en el listado de capas mediante los botones de arriba y abajo.
Una vez creado un campo y seleccionado en la lista, puede definir todas sus propiedades:
Nombre. Nombre del nuevo campo en la tabla de salida.
No importar. Puede definir si ese campo no será importado posteriormente a la tabla resultado.
Tipo de campo. En función del tipo de elemento de la subcadena de texto se puede definir el tipo de campo (String, Integer, Decimal o Date) en la tabla. Si el nuevo campo es de tipo Date puede escoger del listado disponible un formato adecuado para la fecha. Además puede definir un nuevo patrón de fecha que se ajuste a sus necesidades. En el siguiente enlace se muestran las variables y estructura de un patrón de fecha en Java, http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html.
Definir delimitadores entre campos. Para separar las subcadenas de texto se pueden definir caracteres especiales o únicamente indicar un ancho fijo.
En el caso de seleccionar la separación por caracteres hay que indicar qué caracteres se deben utilizar para realizar la separación. Puede escoger alguno de los que vienen en la interfaz como es la separación por tabuladores Tab, por espacios, por coma, por punto y coma, o definir un carácter especifico en Otros. Además puede activar la posibilidad de unir en uno solo los separadores que aparecen consecutivos en la cadena de texto inicial en la opción Unir delimitadores consecutivos.
Definir identificadores dentro de un campo. En esta subsección puede definir los caracteres que representan la parte decimal, los miles y las cadenas de texto dentro de una subcadena.
Una vez definidos todos los campos y sus propiedades para realizar la normalización, puede realizar una prueba previa para ver cual es el resultado del proceso de configuración. Al presionar el botón Testear se visualiza en la sección Muestra de salida las tres primeras filas normalizadas, con las subcadenas en su respectivo campo. Si los resultados obtenidos no son los deseados deberá revisar la configuración de cada nuevo campo.
Esta sección le permite definir la ubicación de los nuevos campos generados. Las posibilidades son dos:
La consola de información le muestra información de cada uno de los procesos de normalización que se realizan. Su principal funcionalidad es mostrar errores en el proceso.
Cualquier definición de un patrón de normalización realizada, puede ser guardada en un fichero xml, para posteriormente reutilizarlo. Mediante el botón de Guardar... se guarda su configuración y mediante el botón de Cargar... se recupera.
Para lanzar el proceso de normalización debe presionar el botón de Ejecutar. Los resultados aparecerán en una nueva tabla o en la tabla origen.
La extensión de normalización le permite normalizar un fichero de texto plano del tipo txt, csv , etc.
Para ello debe seleccionar en gvSIG la funcionalidad de Normalizar fichero de texto en la barra de herramientas o en el menú Tabla.
A continuación se muestra una nueva ventana donde seleccionar el fichero de texto a normalizar.
Después de cargar el fichero de texto, se muestra la ventana de normalización. En la sección de Fuente de datos podrá ver las tres primeras cadenas del fichero. Es importante recodar que en los archivos que poseen títulos de columnas o cabecera, tiene la posibilidad de no normalizar las primeras filas con la función No normalizar las primeras filas. Cuando active esta funcionalidad pude definir el número de filas que no desea normalizar.
Posteriormente debe de realizar todo el proceso de definición de los nuevos campos y sus atributos para poder realizar una normalización correcta. En el proceso de configuración de nuevos campos puede ayudarse de la funcionalidad de testeo para ver en todo momento como resulta la partición de las cadenas de texto.
Cuando el archivo de entrada es un fichero de texto, la opción de salida es única. Las nuevas subcadenas se introducen en los registros de una nueva tabla, que posee los campos que usted ha definido.
Y para terminar solo resta lanzar el proceso con el botón de Ejecutar. El resultado de la normalización será una tabla dbf con el nombre y la ubicación que usted desee.
La otra posibilidad es normalizar cadenas de texto que se encuentren en registros de un campo de una tabla.
Para ello, debe indicar explícitamente que tabla y que campo de esa tabla pretende normalizar. Por eso debe cargar la capa en el ToC de gvSIG, visualizar la tabla de atributos de la capa y seleccionar el campo a normalizar. De esta manera la funcionalidad de Normalizar un campo de tabla se activará.
Una vez la herramienta este activa y el campo seleccionado, debe presionar el botón de Normalizar un campo de tabla en la barra de botones o en menú Tabla. Y a continuación se mostrará la ventana principal de normalización.
El siguiente paso a realizar consiste en generar una patrón de normalización que sea válido para realizar la separación en cadenas.
Cuando trabaja con tablas las opciones de salida dependen si la tabla origen se encuentra en edición. Si la tabla se encuentra en edición puedes añadir los nuevos campos a la tabla con la opción En la tabla actual o guardar los nuevos campos en una nueva tabla, para ello debe seleccionar la opción En una nueva tabla. A esta nueva tabla también se van añadir unos campos que viene de la tabla original. Estos campos los tiene que elegir usted en el listado de campos inferior, por defecto no se copia ningún campo. Con estos campos copiados de la tabla original se puede realizar posteriormente procesos de unión entre tablas. Si por el contrario la tabla original no esta en edición solo podrá crear una nueva tabla.
Finalmente debe ejecutar la normalización mediante el botón Ejecutar. En este ejemplo se ha elegido la opción de añadir los nuevos campos a la tabla original y el resultado es el siguiente.
Por último, la extensión posee en la ventana de Preferencias de gvSIG una ventana de configuración.
La ventana de Preferencias, Normalización, posee la posibiladad de definir un carpeta donde usted guardará todos los patrones de normalización. De esta manera, cuando intente cargar un patrón desde la ventana de normalización, el primer lugar donde se buscarán patrones será la ruta definida.
Por defecto, se crea un carpeta para almacenar patrones denominada normalization junto a los ficheros de persistencia de gvSIG.