TU ANUNCIO / YOUR PUBLICITY

AQUÍ PODRÍA ESTAR TU ANUNCIO: / HERE COULD BE YOUR AD E-mail

viernes, 27 de febrero de 2015

Optimized GIS for linear projects XIX (Consultas de seguimiento) / SIG optimizado para obras lineales XIX (Monitoring form)

Previamente: / Previously:

Optimized GIS for linear projects XVIII (Consultas de inspecciones) 
SIG optimizado para obras lineales XVIII (Inspection queries)

Índice Index

1.- Introducción
   1.1.- Situación actual
   1.2.- Problemática detectada y justificación del trabajo
   1.3.- Objetivos
   1.4.- Estructura del estudio
2.- Estado del conocimiento
   2.1.- La topografía en la obra lineal
      2.1.1.- Elementos básicos de documentación topográfica
      2.1.2.- Composición de los elementos básicos del trazado
      2.1.3.- Software habitual para definición de trazados en obras lineales
   2.2.- Formatos de dibujo
      2.2.1.- El formato dxf
      2.2.2.- El formato vml
      2.2.3.- El formato svg
      2.2.4.- El formato dwg
   2.3.- La información documentada de obra
   2.4.- Sistemas de información geográfica
      2.4.1.- Revisión de programas de gis estándar
      2.4.2.- Revisión de programas de gis que no siguen los estándares
   2.5.- Tipos de lenguajes de programación
      2.5.1.- Lenguajes de bajo nivel
      2.5.2.- Lenguajes de nivel medio
      2.5.3.- Lenguajes de alto nivel
   2.6.- Tipos de bases de datos
      2.6.1.- Sql, la comunicación entre bases de datos relacionales
   2.7.- Los sistemas de representación gráfica tradicionales
   2.8.- Normativa aplicable
3.- Solución
   3.1.- Lectura de elementos topográficos: trazado y estructuras
      3.1.1.- Elementos topográficos del trazado: eje
      3.1.2.- Elementos topográficos del trazado: terreno
      3.1.3.- Elementos topográficos del trazado: plataforma
      3.1.4.- Elementos topográficos anejos al trazado: las estructuras
   3.2.- Lectura de bases de datos
      3.2.1.- Bases de datos de ensayos e inspección
         3.2.1.1.- Bases de datos de ensayos, suelos
         3.2.1.2.- Bases de datos de ensayos, densidades
         3.2.1.3.- Bases de datos de ensayos, mezclas bituminosas
         3.2.1.4.- Bases de datos de ensayos, hormigones
         3.2.1.5.- Bases de datos de inspección, control
         3.2.1.6.- Bases de datos de inspección, diario
         3.2.2.- Bases de datos extras
         3.2.2.1.- Bases de datos extras, fotos
         3.2.2.2.- Bases de datos extras, definición de estructuras
         3.2.2.3.- Bases de datos extras, definición de la capa de firme
         3.2.2.4.- Bases de datos extras, localización extra
    3.3.- El dibujo del trazado
        3.3.1.- El dibujo en planta
        3.3.2.- El dibujo en perspectiva
            3.3.2.1.- El dibujo con superficies planas
            3.3.2.2.- El dibujo en el navegador
    3.4.- La unión del trazado con las bases de datos
        3.4.1.- La unión de las estructuras al trazado
        3.4.2.- La unión de los ensayos de suelos al trazado
        3.4.3.- La unión de los ensayos de densidades al trazado
        3.4.4.- La unión de los ensayos de hormigones al trazado
        3.4.5.- La unión de los ensayos de firmes al trazado
        3.4.6.- La unión de los inspecciones de control al trazado
        3.4.7.- La unión del diario al trazado
        3.4.8.- La unión de la documentación fotográfica al trazado
    3.5.- La unión de la documentación y otras inspecciones
        3.5.1.- La unión pasiva
        3.5.2.- La unión activa
    3.6.- Base matemática novedosa utilizada
        3.6.1.- Pseudo-bases de datos
        3.6.2.- Redes de taylor multidimensionales
        3.6.3.- Sintegrales
    3.7.- Consultas a la información a través de formularios
        3.7.1.- Formularios de ensayos de suelos
        3.7.2.- Formularios de ensayos de densidades
        3.7.3.- Formularios de ensayos de hormigones
        3.7.4.- Formularios de ensayos de firmes
        3.7.5.- Formulario de inspecciones, control
        3.7.6.- Formulario de inspecciones, diario
        3.7.7.- Formulario de inspecciones, fotos
        3.7.8.- Formulario de seguimiento en dxf y kml
    3.8.- Resultados finales
4.- Conclusiones, futuras lineas de trabajo
5.- Bibliografía


3.7.8.- FORMULARIO DE SEGUIMIENTO, EN DXF Y KML / MONITORING FORM IN DXF and KML

En ocasiones las demandas de las direcciones de obra llegan al punto de querer ver en un plano de papel las inspecciones que ya se han visto en la pantalla con lo que no queda más remedio que programar la salida no por la pantalla sino con el formato DXF. Como ya se viera en el apartado 2.1.1. dentro del bloque ENTITIES del fichero.

Para ello crearemos 3 bloques. El inicial hasta el bloque ENTITIES, el propio bloque ENTITIES y desde este al final. El primero y el último se dejan fijos y el intermedio se crea hasta formar el archivo DXF completo:

Sometimes the demands of work management reach the point of wanting to see in a paper plane inspections already seen on screen with no choice but to program the output no screen but with the DXF format . As you saw in section 2.1.1. ENTITIES block within the file.

To do this, create 3 blocks. The initial ENTITIES to block, block ENTITIES own and from this the end. The first and last are left fixed and the intermediate is created to form the complete DXF file:


Public Sub Exporta_Dxf()
Bloque = 0 : DXF_1 = "" :DXF_2 = ""
EscDXF = 0.25 ' escala del dxf es buena para planos a escala 1:2000
iLayer = "G-Enma 2006"
For i = 1 To Max_iDXF
GiroDXF = Tutto_DXF(i).Giro
XDD = Tutto_DXF(i).X + 150 * EscDXF * Cos(GiroDXF)
YDD = Tutto_DXF(i).Y - 150 * EscDXF * Sin(GiroDXF)
XDDD = XDD - 150 * EscDXF * Sin(GiroDXF)
YDDD = YDD - 150 * EscDXF * Cos(GiroDXF)
DXF_Linea iLayer, Tutto_DXF(i).X, Tutto_DXF(i).Y, 0, XDD, YDD, 0
DXF_Texto Tutto_DXF(i).Texto , XDD, YDD, 0, XDDD, YDDD, 0
Next
'Lugar donde se guardará
DXF_guarda "c:\G-Enma.dxf"
End Sub

Private Sub DXF_Linea(ByVal iLayer As String, ByVal X1 As Single, ByVal Y1 As Single, ByVal Z1 As Single, ByVal X2 As Single, ByVal Y2 As Single, ByVal Z2 As Single)
DXF_Cuerpo = DXF_Cuerpo & "LINE|8|" & iLayer & _
"| 10|" & X1 & "| 20|" & Y1 & "| 30|" & Z1 & _
"| 11|" & X2 & "| 21|" & Y2 & "| 31|" & Z2 & "|0|"
End Sub

Private Sub DXF_Text(ByVal iLayer As String, ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal Height As Single, ByVal iText As String)
DXF_Cuerpo= DXF_Cuerpo & "TEXT|8|" & iLayer & _
"| 10|" & X & "| 20|" & Y & "| 30|" & Z & _
"| 40|" & Height & "|1|" & iText & "| 50| 0|0|"
End Sub

Private Function DXF_Cabecera() As String
Dim HS(19) As String
HS(0) = " 0|SECTION| 2|HEADER| 9"
HS(1) = "$ACADVER| 1|AC1009| 9"
HS(2) = "$INSBASE| 10|0.0| 20|0.0| 30|0.0| 9"
HS(3) = "$EXTMIN| 10| 0| 20| 0| 30| 0| 9"
HS(4) = "$EXTMAX| 10|368| 20|326| 30|0.0| 9"
HS(5) = "$LIMMIN| 10|0.0| 20|0.0| 9"
HS(6) = "$LIMMAX| 10|100.0| 20|100.0| 9"
HS(7) = "$ORTHOMODE| 70| 1| 9"
HS(8) = "$DIMSCALE| 40|8.0| 9"
HS(9) = "$DIMSTYLE| 2|STANDARD| 9"
HS(10) = "$FILLETRAD| 40|0.0| 9"
HS(11) = "$PSLTSCALE| 70| 1| 0"
HS(12) = "ENDSEC| 0"
HS(13) = "SECTION| 2|TABLES| 0"
HS(14) = "TABLE| 2|VPORT| 70| 2| 0|VPORT| 2|*ACTIVE| 70| 0| 10|0.0| 20|0.0| 11|1.0| 21|1.0| 12|50.0| 22|50.0| 13|0.0| 23|0.0| 14|1.0| 24|1.0| 15|0.0| 25|0.0| 16|0.0| 26|0.0| 36|1.0| 17|0.0| 27|0.0| 37|0.0| 40|100.0| 41|1.55| 42|50.0| 43|0.0| 44|0.0| 50|0.0| 51|0.0| 71| 0| 72| 100| 73| 1| 74| 1| 75| 0| 76| 0| 77| 0| 78| 0| 0|ENDTAB| 0"
HS(15) = "TABLE| 2|LTYPE| 70| 1| 0|LTYPE| 2|CONTINUOUS| 70| 0| 3|Solid Line| 72| 65| 73| 0| 40|0.0| 0|ENDTAB| 0"
HS(16) = "TABLE| 2|LAYER| 70| 3| 0|LAYER| 2|0| 70| 0| 62| 7| 6|CONTINUOUS| 0|LAYER| 2|CLOCK_FACE| 70| 0| 62| 7| 6|CONTINUOUS| 0|LAYER| 2|DEFPOINTS| 70| 0| 62| 7| 6|CONTINUOUS| 0|ENDTAB| 0"
HS(17) = "TABLE| 2|VIEW| 70| 0| 0|ENDTAB| 0"
HS(18) = "TABLE| 2|DIMSTYLE| 70| 1| 0|DIMSTYLE| 2|STANDARD| 70| 0| 3|| 4|| 5|| 6|| 7|| 40|1.0| 41|0.18| 42|0.0625| 43|0.38| 44|0.18| 45|0.0| 46|0.0| 47|0.0| 48|0.0|140|0.18|141|0.09|142|0.0|143|25.4|144|1.0|145|0.0|146|1.0|147|0.09| 71| 0| 72| 0| 73| 1| 74| 1| 75| 0| 76| 0| 77| 0| 78| 0|170| 0|171| 2|172| 0|173| 0|174| 0|175| 0|176| 0|177| 0|178| 0| 0|ENDTAB| 0"
HS(19) = "ENDSEC| 0|"
DXF_Header = Join$(HS(), "|")
End Function

Private Sub DXF_Constructor()
DXF_Constructor = DXF_Cabecera & "BLOCK| 8|0| 2|*D" & BlockIndex & "|70| 1| 10|0.0| 20|0.0| 30|0.0| 3|*D" & BlockIndex & "| 1||0|ENDBLK| 8|0|0|"
BlockIndex = BlockIndex + 1
End Sub

Private Function DXF_Pie() As String
DXF_BlockFooter = "ENDSEC| 0|"
End Function

Private Sub DXF_guarda(ByVal Fichero As String)
DXF_Salida = DXF_Cabecerar & DXF_Cuerpo & DXF_Pie
DXF = Split(strDXF_Salida, "|")
Open Fichero For Output As #1
Print #1, Replace(strDXF_Output, "|", Chr(13) & Chr(10))
'El carácter | se ha estado usando de comodín para poder colocar al final los saltos de línea.
Close #1
End Sub 

En otros casos, la demanda fue para archivos KML (con estructura similar a XML). Éstos se van definiendo con líneas e iconos e inspecciones, que formarán el archivo KML para poder ser abierto por Google Earth.

En ambos casos, en la pantalla de preselección se habrá especificado el entorno de fechas y la búsqueda, y ello será, en todas las bases de datos, incluida la tablas "Otros". Se seleccionas a través del formulario de la figura 3.7.8.a.

In other cases, the demand was for KML files (with XML-like structure). These are defining with lines and icons and inspections, which will form the KML file to be opened by Google Earth.

In both cases, the display will preselection environment specified dates and search, and this will in all databases, including tables "Other". You can choose through the form of Figure 3.7.8.a.

Las órdenes SQL son:
The SQL commands are:


SELECT * FROM BD-Suelos WHERE FECHA>[fecha inicial] AND FECHA<[fecha final]
SELECT * FROM BD-Densidad WHERE FECHA>[fecha inicial] AND FECHA<[fecha final]
SELECT * FROM BD-Hormigon WHERE FECHA>[fecha inicial] AND FECHA<[fecha final]
SELECT * FROM BD-Aglomerado WHERE FECHA>[fecha inicial] AND FECHA<[fecha final]
SELECT * FROM BD-Otros WHERE FECHA>[fecha inicial] AND FECHA<[fecha final]

A este conjunto de órdenes también se les podría haber unido con la inclusión del comando JOINT
El texto que se vaya generando de incorporas estas consulta se incluye dentro de las variables: Tutto_DXF(i). Tutto_DXF(i).Y y Tutto_DXF(i).Texto . Paso previo a la composición del DXF (o KML).

This set of commands also could have joined them with the inclusion of JOINT command
The text that is generated to incorporate these consultation is included in the variables: Tutto_DXF (i). Tutto_DXF (i) .and and Tutto_DXF (i) .Text. Prior to the composition of DXF (or KML) Paso.
Figura 3.7.8.a: Preselección del conjunto de bases de datos que integrarán la consulta y el entorno
Figure 3.7.8.a: Preset set of databases that integrate the query and environment
Figura 3.7.8.b: Detalle de la inspección/ensayo detallado y colocado en las coordenadas reales
Figure 3.7.8.b: Detail of the detailed inspection / testing and placed in the actual coordinates
Al fichero DXF generado, figura 3.7.8.b, se le pueden integrar por referencia los planos del trazado, figura 3.7.8.c, (o a la inversa) y el resultado definitivo es este:
Al DXF file generated, figure 3.7.8.b, you can incorporate by reference the layout drawings, Figure 3.7.8.c (or vice versa) and the final result is this:
Figura 3.7.8.c: Unión del archivo anterior (azul) a la traza de la obra
Figure 3.7.8.c: Union of the previous file (blue) to the trace of the work
Para la creación del archivo KML las reglas son iguales en cuanto a la lectura, la diferencia es la composición de la cadena cuyo resultado debe ser:
To create the KML file rules are equal in reading, the difference is the composition of the string whose result should be:
Figura 3.7.8.d: Visualización del fichero KML
Figure 3.7.8.d: Viewing the KML file

3.8.- RESULTADOS FINALES / FINAL RESULTS


El resultado final es un sistema de información geográfica que:


  • Lee los datos topográficos directamente.
  • Lee los datos de ensayos desde tablas que igualmente serían necesarias de realizar por el propio sistema de calidad.
  • Interactúa con el resto de información si ésta está guardada coherentemente con el archivo maestro a modo de gestor documental georefenciado o no.

No se puede hablar de un lenguaje de programación utilizado sino de un variopinto sistema de programación variado. Para la solución local se ha programado en Visual Basic (con subrutinas en C). Para la versión web, la programación base es en PHP, (con llamadas a comandos del S.O. y otros programas en C), presentado en HTML  con scripts de javascript y AJAX.

La salida de información es por pantalla, impresora (informes) y archivos (pdf, tablas, dxf y kml).

Entre todos estos sistemas existe completa compatibilidad ya que los datos son leídos de igual manera independientemente del programa que vaya a acceder a ellos, esto permite que el acceso pueda ser directo, en red, a través de ftp, o incluso más recientemente, he creado un sistema satélite en el que algunas obras, debido a su relevancia, disponen de su servidor propio y el acceso es tutorado por el servidor principal. De esta manera la información es siempre actual y accesible.

En la figura 3.8, se ha incluido un diagrama de flujo del proceso a modo de resumen metodológico de la solución de sistema de información geográfica propuesto en el presente artículo.


The end result is a system of geographical information that:
  • Read topographic data directly.
  • Read test data from tables that also would be required to perform the quality system itself.
  • Interact with other information if it is filed coherently with the master file as a document manager georefenciado or not.

You can not speak of a programming language used but a motley system varied programming. For local solution is programmed in Visual Basic (with subroutines in C). For web version, based programming in PHP (with calls to OS commands and other programs in C), presented in HTML with javascript and AJAX scripts.

The output information is on screen, printer (reports) and files (pdf, tables, dxf and kml).

Among all these systems there is full support since the data are read in the same way regardless of the program to be accessed, this allows access can be direct, networked via ftp, or even more recently, I've created a satellite system in which some works because of its relevance, have their own server and access is tutored by the master server. This way the information is always current and accessible.

In Figure 3.8, we have included a flow chart of the process as a methodological summary of the solution proposed in this thesis GIS.

Continuará ...
To be continued ...

No hay comentarios:

Publicar un comentario