Blog

Prodevelop at the Port of #Rotterdam for the Second Year Review of the APPS project #Research #Innovation

Prodevelop ha participado en la Revisión del Segundo Año del proyecto APPS (ITEA). Amelia del Rey y yo mismo hemos acudido a Rotterdam (Países Bajos) para la reunión de revisión y para participar en una demostración en tiempo real llevada a cabo en una torre de control prestada por la Autoridad Portuaria de Rotterdam.

La contribución de Prodevelop consiste sobre todo en un motor de reglas provisto de una cómoda aplicación de configuración de reglas para la detección de anomalías en el puerto. También se ha desarrollado un visor 3D que muestra los movimientos en tiempo real de los buques (vía AIS), así como los objetos detectados por los sensores (cámaras/micrófonos) en un contexto de modelo 3D del puerto.

Los revisores de ITEA se mostraron satisfechos con los progresos y propusieron mejoras en la orientación comercial del proyecto. En próximas entradas de blog se detallarán las funcionalidades de los componentes aportados por Prodevelop.

Pinche sobre las imágenes para verlas a mayor tamaño.
Prodevelop has attended the Second Year Review of the APPS project (ITEA). Amelia del Rey and myself have been in Rotterdam (Netherlands) for the review meeting and a real-time demonstration in a Radar post kindly offered by the Port Authority of the Port of Rotterdam.

Prodevelop's contribution consists of a Rule Engine with a user-friendly Configuration Application and a 3D visualization application, including real-time movements of ships and objects detected by sensors (cameras/microphones).

The ITEA reviewers were satisfied with the progresses and gave us some feed-back in order to optimize the business opportunities deriving from this project. In future blog posts, we will provide details about the components contributed by Prodevelop.

Click on images to see full size.



Preparing the demo at the Radar post.


Juan Lucas explains the functionalities of the components provided by Prodevelop to the ITEA reviewers.


Juan Lucas explains the functionalities of the components provided by Prodevelop to the ITEA reviewers.


Screenshots of the Rule Engine Administration Application.


An expert in the VTS currently used in the Port of Rotterdam explains how the APPS system can communicate with it.


The review meeting took place also in the premises of the Port of Rotterdam.


One of the modern bridges surrounding the Radar post where the demo took place.

Automatic detection of complex operations in a port using #AIS and #Drools

Prodevelop ha desarrollado un Procesador de Eventos Complejos (CEP) basado en reglas de Drools y alimentado con mensajes AIS, capaz de detectar eventos relevantes de un puerto, tales como atraques, desatraques, fondeos, infracciones de límites de velocidad, etc. Opcionalmente, es capaz de detectar operaciones más complejas que involucran a dos buques, como las operaciones de practicaje y remolcaje. Aquí hay un ejemplo de operación de practicaje detectada automáticamente en el puerto de La Coruña. El círculo verde marca el inicio, el círculo rojo marca el final de la operación: Prodevelop has implemented a Drools-based Complex Event Processor (CEP) which receives AIS messages and is able to automatically detect relevant port operations such as docking, undocking, anchoring, speed limit violations, etc. It also detects more complex operations involving two ships, such as pilot and towing operations. Here is an example of a pilot operation automatically detected in the port of A Coruña (NW Spain). Green circle is the start, red circle is the end of the operation:


Pinche para ampliar - Click to enlarge


Detalle del inicio - Detail of the start


20 minutes of #AISHub TCP #AIS flow around #Majorca #Spain provides 1 msg/min/ship

20 minutos de conexión a AISHub alrededor de Palma de Mallorca. Un mensaje por minuto y buque:

Histogram of AIS messages delay, Ibiza, Spain, 28 Sep 2015

Delay in seconds between two consecutive AIS messages from the same ship. The Y axis is in quadratic scale. Click to see full version:

Procesamiento de mensajes #AIS con #JBoss #Drools para detección automática de eventos en un puerto

El sistema de comunicación AIS proporciona, a través de mensajes transmitidos mediante ondas de radio, información sobre ubicación, velocidad, identificación, etc. de los buques. Su objetivo es facilitar la gestión y coordinación de flotas, optimización en las operaciones portuarias, etc.

Dichos mensajes se redirigen a un flujo de información que puede integrarse fácilmente en un Sistema de Información. A partir de ahí, el software se encarga de filtrar y procesar los mensajes según convenga.

El paquete Drools de JBoss es un sistema de gestión de reglas de negocio que utiliza un motor de reglas basado en inferencia. Utilizando los mensajes AIS como entrada para una aplicación basada en Drools, es posible detectar automáticamente los eventos relevantes en la gestión portuaria: inicio y fin de atraque y fondeo, entrada y salida de puerto, operación de bunkering (repostaje de combustible), etc.

Aquí vemos la detección de los eventos de atraque (punto rojo, a las 13:30) y desatraque (punto verde, a las 15:30) del buque CASTAVI JET en el muelle I082 (de tipo RO-RO) de Ibiza, el día 21 de junio de 2015:



Aquí puede verse un fragmento de los eventos detectados automáticamente por la aplicación. Las dos primeras columnas son el IMO y el MMSI (identificadores) del buque:

A data-range-independent color ramp in my #Geoserver #heatmap

Geoserver proporciona un modo sencillo de generar mapas de calor, pero la especificación de los parámetros y los resultados obtenidos parecen indicar que se generan colores en función del valor máximo que se encuentra en la zona concreta del mapa que estamos pidiendo, por tano en cualquier caso aparecerá el color asociado al máximo: Geoserver provides a simple way to generate heatmaps, but the meaning of the available parameters and the results seem to indicate that the colors used depend on the highest value found within the limits of the requested map, so in all cases the color for the maximum value will be visible:
Esto es un inconveniente si queremos generar varios mapas de calor (de zonas diferentes o con datos diferentes) conservando la coherencia entre el significado de los colores. Un modo de conseguir esto es añadir a nuestra tabla un elemento con un peso muy alto, de modo que el color máximo siempre corresponderá a ese punto del mapa: This is not good if we intend to generate various heatmaps (from different areas or from different data) and still preserve some kind of consistency in the meaning of the colors. A way to prevent this issue is by adding a record to our source table, in which the relevant field will have a very high value, so it will always get the highest-value color:
Habrá que elegir un lugar del mapa en el que no haya nada (por ejemplo en el mar) para poder cortarlo después: We'll put that element in an empty place of our map, so we can cut it off afterwards:
Tras recopilar información con la ayuda de POIProxy, aquí puede verse una animación que muestra la actividad en las redes sociales en la ciudad de Valencia. Puede apreciarse que el color del valor máximo sólo se alcanza en momentos concretos, y cada madrugada la actividad baja muchísimo, sobre todo en torno a las 6: By using POIProxy, we can gather some timestamped, georeferenced data about social networks activity in Valencia (Spain). We can see that the color for maximum value (red) only appears in some cases, and the heatmap fades out almost completely every morning at about 6am:
[12 MB]

Three libraries to decode #Base64 data in #Java

org.springframework.util.Base64Utils
com.migcomponents.migbase64.Base64
javax.xml.bind.DatatypeConverter

Location-based queries on #DBpedia using #SPARQL

DBpedia es un proyecto de colaboración abierta para extraer información estructurada de la Wikipedia y hacerla pública de nuevo en internet. Los datos están accesibles vía SPARQL. Para realizar consultas basadas en ubicación, tenemos dos opciones: DBpedia is a crowd-sourced community effort to extract structured information from Wikipedia and make this information available on the Web. Data can be accessed via an online SPARQL endpoint. When it comes to location-based queries, we can use two approaches:
1. Consultas geométricas. SPARQL permite el uso de funciones geométricas siempre y cuando el artículo de la Wikipedia tenga atributos de ubicación (coordenadas): 1. Geometric queries. SPARQL allows using geometric functions as long as the Wikipedia item has location attributes:
Esto es un fragmento del predicado SPARQL usado: This is a piece of the SPARQL predicate:
...
FILTER( bif:st_intersects(?geometry, bif:st_geomfromtext(
'POLYGON ((-16.36235 28.434162, -16.220214 28.434162,
-16.220214 28.5, -16.36235 28.5, -16.36235 28.434162))')) )
...
2. Usando propiedades de ubicación. Entre las propiedades almacenadas para cada elemento de la DBpedia, podemos usar las propiedades de ubicación para obtener los elementos asociados a un cierto topónimo: 2. Using location properties. Among the properties stored for each DBpedia item, we can use the location properties to retrieve data associated with a certain place:
...
?node <http://dbpedia.org/ontology/location> <http://dbpedia.org/resource/Berlin>
...

#gvSIG Lab: Using PDF files as templates in Map Sheets in gvSIG 2.1.0

El plugin Map Sheets permite usar plantillas para generar series de mapas en varios rectángulos definidos por el usuario. Una posible mejora consiste en permitir que el usuario use archivos PDF ya existentes como base sobre la cual generar los nuevos mapas en formato PDF. De esta manera, es posible usar plantillas con un aspecto más profesional, con logotipos oficiales de alta calidad, etc, sin tener que pasar por el maquetado convencional de gvSIG. En este vídeo puede verse un pequeño ejemplo en el que se usa un PDF que ya contiene un mapa. Idealmente, usaríamos un PDF en el que el área para el mapa está vacío: The Map Sheets plugin lets you use map templates to generate series of maps based on a grid of customizable rectangles. A possible improvement consists in using pre-existing PDF files as templates. In this case the user would have to indicate the area to be used by the map. More professional-looking maps can be achieved like this (high-quality logos, etc) without dealing with gvSIG's conventional layout composer. This video shows an example, where the template PDF already has a map. Ideally we would use a PDF file where the map area is blank:
...

#gvSIG Lab: The Molodensky-Badekas transformation in gvSIG 2.1.0

Es posible, mediante un plugin, añadir un nuevo tipo de operación que aplica la transformación de Molodensky-Badekas (10 parámetros) a una capa vectorial presente en la vista de gvSIG. El resultado sería un nuevo shapefile. Este vídeo muestra el prototipo del plugin: We can add a new type of vector operation with a plugin. The operation would be the Molodensky-Badekas transformation (10 parameters) and the result would be a new shapefile. This short video shows the prototype:
...
Distribuir contenido