miércoles, diciembre 22, 2010

Nuevos algoritmos (I)

Como parte de algunos proyectos que estamos llevando a cabo, hemos desarrollado algoritmos nuevos en SEXTANTE que pueden ser de interés para la comunidad. Aquí cuento algunos de los más destacables que se han añadido últimamente. Aun falta testeo y documentación, pero los encontrareis más o menos operativos en el SVN y la versión diaria.

-Cálculo de ejes de polígonos. Extrae el denominado "medial axis" de un polígono. Útil, por ejemplo, para reducir una carretera expresada como un polígono a una línea.
-Teselación de Voronoi. El dual de la triangulación de Delaunay que ya estaba implementada. Aprovechamos que el algoritmo está en la última versión de JTS (1.11), en la que ahora nos apoyamos (escribiré en breve algo más sobre esto). También he modificado el algoritmo de esa triangulación para que sea la propia JTS quien lo haga, en lugar de una clase externa contribuida por un colaborador.
-Disolver múltiple. La disolución de polígonos ahora se puede efectuar en base a varios campos, no solo uno de ellos.
-Buffer múltiple. Un buffer con anillos de diferentes tamaños, que se introducen mediante una pequeña tabla.
-Localización óptima con tabla de distancias. Las distancias, en lugar de calcularse como distancias euclídeas o de Manhattan, se incorporan mediante una tabla, permitiendo así que reflejen distancias a través de una red. Las funcionalidades de análisis de redes de gvSIG pueden emplearse para generar las tablas correspondientes. Este algoritmo ha surgido a raíz de un capítulo sobre SEXTANTE que voy a escribir para un libro sobre localización óptima que Joaquín Bosque está editando, y esta es solo una pequeña ampliación que nos ha parecido buena idea hacer.

martes, diciembre 21, 2010

Reclutando

Tanto el propio proyecto SEXTANTE como otros proyectos que llevamos, también relacionados con análisis de datos espaciales, y en particular con datos 3D y análisis 3D, están creciendo últimamente bastante. Esta gran noticia nos lleva a la necesidad de buscar nuevos colaboradores que trabajen con nosotros y que puedan integrarse en nuestro equipo.

Actualmente, estamos ofertando un puesto de trabajo para un programador Java, preferiblemente con conocimientos de SIG y análisis espacial, para trabajar aquí en la Universidad. Todos aquellos interesados pueden ponerse en contacto con nosotros enviando un email a volaya ARROBA unex PUNTO es. La oferta se ha publicado también por otros medios, pero seguro que entre los lectores del blog puede haber algún candidato, o bien alguien que puede difundir el anuncio.


jueves, diciembre 09, 2010

Jornadas gvSIG

Algunos apuntes rápidos sobre las Jornadas de gvSIG:

  • Es probable que nos traigamos algunos proyectos interesantes que intentaremos poner en marcha lo antes posible. Entre ellos, la integración de procesos de R en SEXTANTE. Iré informando por aquí a medida que vayamos avanzando.
  • El taller de SEXTANTE fue perfecto. Llegué apurado de tiempo a una sala llena hasta arriba, pero todo lo demás fue sobre ruedas y me divertí como nunca. Espero que la gente disfrutara tanto como yo y no se aburriera con algunas de mis locuras de geo-flipado.
  • Estamos perfilando cursos de SEXTANTE para darle un empujón a la actividad docente sobre el programa. Tuvimos algunas reuniones en las Jornadas, y esperemos que a partir de este punto podamos ponernos ya en marcha para organizar cursos frecuentes.
  • Aunque Manuel Madrid tenia intención de usar música mía para la clausura, al final no tuvo tiempo de hacerlo. Pese a ello, Jorge Sanz dijo que la música sí que era mía, convencido de ello. Por si acaso, aclaro que no lo era. El que tenga curiosidad, puede echar un ojo a volaya.es para escuchar algunas de mis canciones.

martes, noviembre 30, 2010

gvSIG Code Sprint

Aquí va una entrada desde el Code Sprint que precede a las Jornadas de gvSIG, y donde estamos unos cuantos tratando de solucionar problemas y mejorar funcionalidades para ir calentando motores. Yo, como es de esperar, estoy trabajando en cosas relacionadas con SEXTANTE, entre las que cabe mencionar las siguientes:
  • Problemas con la representación de ciertas capas generadas por SEXTANTE. Esto afectaba a las máscaras y ya hemos detectado la razón. Al parecer, gvSIG asume que toda capa de tipo BYTE es una banda de una imagen RGB, y establece la representación en función de ello. Esto no es siempre cierto, y SEXTANTE genera capas BYTE en muchas situaciones distintas a esa. Hemos encontrado una solución rápida pero eficaz, así que ya hemos aportado una mejor directa a gvSIG :-)
  • Capas ráster grandes. Hemos aclarado un par de cosas, y creo que tengo una buena línea de trabajo ahí... Lógicamente, esto no lo voy a acabar hoy, pero voy enfocando el problema cada vez mejor y creo que puede verse una solución pronto...
  • Análisis de capas WMS. Más difícil de lo que parece, así que por ahora estamos pensando y reflexionando más que otra cosa. Aun así, el jueves haré un ejemplo de WMS y SEXTANTE, para ir abriendo boca...
Más noticias en breve, sobre todo el jueves después de mi taller, que esta vez es algo diferente a otros que he hecho, y en el que enseñaré algunas cosas nuevas.



lunes, noviembre 15, 2010

Región de análisis

La funcionalidad de "Salida ráster" que permitía, en caso de que un algoritmo generara algún resultado de tipo ráster, definir las características de este (tamaño de celda y extensión), se aplica ahora a todo tipo de resultados. Algo similar al concepto de región de análisis de GRASS, pero en este caso establecido en cada ejecución del algoritmo en lugar de para toda la sesión de trabajo de forma global.

Lógicamente, el tamaño de celda no es necesario para el caso de capas vectoriales. La región no es necesariamente la de salida de los datos, sino que el algoritmo puede emplearla como considere más oportuno. Por ejemplo, para el caso de interpolación, el establecer una región puede ser empleado para los datos de salida, pero en los de entrada se puede coger un margen más amplio para incluir más datos. En otros casos, se usa como filtro para los datos de entrada, y luego es el propio algoritmo el que marca la extensión de los datos de salida (por ejemplo, si se efectúa una traslación).

He adaptado ligeramente algunos algoritmos (sobre todo vectoriales) para que hagan uso de esta nueva capacidad de SEXTANTE. Por ejemplo, los algoritmos de generar una rejilla o una capa aleatoria requerían antes la entrada de cuatro valores para establecer las dos coordenadas de las esquinas opuestas del rectángulo de salida deseado. Ahora esos valores se toman de la región de análisis.

Aprovecho esta entrada para comentar que esta funcionalidad, junto con otra más novedosa sobre la que escribiré aquí en un par de días, las presentaré dentro del taller de SEXTANTE que realizaré en las jornadas de gvSIG de este año, el 2 de diciembre. Es decir, que el taller contendrá novedades...y alguna que otra sorpresa que seguro que gusta ;-) Ya sabéis, nada de perdérselo...

viernes, octubre 15, 2010

Una solución para el problema de los rasters grandes

Como muchos ya sabéis, SEXTANTE no hace gestión de datos (lectura, escritura y creación de capas) por sí mismo, sino que delega en la aplicación que tiene debajo para estas tareas. Esto quiere decir que, por ejemplo, si se va a crear una capa raster de gran tamaño, SEXTANTE no la crea, sino que se la pide al SIG que tiene debajo y después la rellena de valores, y es el SIG quien luego se encarga de guardarla en el fichero correspondiente.

Como muchos ya sabréis, esto también significa que, si el SIG no es capaz de hacer estas cosas eficientemente, el uso de este tipo de funcionalidades en SEXTANTE no va a salir bien. El problema es que, por el momento, esto no parece estar solucionado en los SIG que usan SEXTANTE, así que se presentan frecuentemente problemas de memoria.

En el caso de gvSIG, se ha hecho algo para manejo de grandes capas en escritura, pero la solución está por mejorarse para contemplar más casos posibles (los algoritmos de SEXTANTE tienen una casuística variada en lo que al acceso en escritura respecta), y por el momento no se está usando desde SEXTANTE. Existe, asimismo, el problema en lectura, en el que espero un día de estos poder ponerme a trabajar junto a la gente de gvSIG para solucionarlo.

Intentando dar una solución genérica a esto, he empezado a pensar en una alternativa en la que, saltándome un poco la arquitectura independiente de SEXTANTE, sea el propio SEXTANTE quien escriba los datos y los gestione cuando estos son muy voluminosos. Para ello estoy usando una librería que permite imágenes tileadas con caché en disco, de forma que, combinada con JAI, me permitiría hacer yo mismo todo eso. Despues, cuando SEXTANTE le pida a la InputFactory correspondiente una capa raster, si esta es grande, devuelva una de estas imágenes tileadas.

No sé muy bien como va a quedar esto, pero es interesante probar. Obviamente, el rendimiento será peor, pero si funciona, va a permitir crear capas de gran tamaño sin los problemas actuales.

Iré contando por aquí como va la cosa.

lunes, septiembre 27, 2010

Artículo OSGeo Journal

Después de mucho tiempo, por fin está listo el número del OSGeo Journal en el que aparece un artículo que escribí sobre SEXTANTE. Se trata de una presentación general del proyecto y de la librería y sus componentes. Los interesados lo podéis descargar de la siguiente dirección:


A ver si esto nos va dando más popularidad por ahí fuera. Creo que llega en un buen momento, justo después del FOSS4G. Veremos a ver.

martes, septiembre 14, 2010

FOSS4G Barcelona

Aquí van mis impresiones sobre el FOSS4G de Barcelona, donde estuve la semana pasada compartiendo experiencias con la comunidad del SIG libre.

  • La organización fue buena en lo que al aspecto científico se refiere, pero algo menos en lo que respecta al social. Sin ánimo de criticar demasiado, la falta de un cocktail de bienvenida (el clásico "icebreaker cocktail" que en todos los demás FOSS4G se hace) o similar me pareció un grave error. ¿Por qué? Pues porque al final del primer día todo el mundo se va a tomar cañas, pero meter a 900 tíos en un mismo sitio es básicamente imposible, con lo que acabas con los 10 conocidos de siempre y no haces contactos nuevos. Poniendo un sitio con algo que picar y que beber donde pueda estar todo el mundo, se promueve el intercambio de ideas y conversaciones mucho más que con ninguna otra actividad. Como no todo van a ser críticas en este sentido, debo decir que la colocación de mesas y enchufes por todo el edificio fue un enorme acierto (sobre todo ahora que mi portátil está ya viejuno y no le duran las pilas más de una hora)
  • No fui a muchas charlas, pero el nivel me pareció algo más flojo que otros años. Me pareció que estaban menos elaboradas, aunque, afortunadamente, sigue habiendo buenas ideas y desarrollos interesantes.
  • Como dijo alguien, el congreso me ha hecho ver que SEXTANTE goza de buena salud, ya que hay interés y gente con proyectos de incorporar SEXTANTE de uno u otro modo a su trabajo, además de aquellos que ya lo usan. Se vio mucho WPS, y creo que el año que viene va a ser algo todavía más presente, por lo que durante este año tengo que trabajar duro para colocarlo en la medida de lo posible en los servidores y para que el cliente sea todavía más operativo. Sigo pensando que ahí hay mucho futuro y que SEXTANTE está en una posición muy buena para jugar un papel importante en este campo.
  • Hubo buena acogida de la charla sobre la integración de GRASS y SEXTANTE, con Markus Neteler y Helena Mitasova entre el público. Lo ejecuté sobre linux y la verdad es que el funcionamiento es intachable. Una pena que Benjamin Ducke, autor de parte del código, no pudiera estar allí y dar parte de la charla conmigo.

martes, julio 27, 2010

Productividad

Un par de semanas antes de irme de vacaciones (en teoría sigo en ellas, aunque este año no me he ido lejos, y con el ordenador cerca es difícil resistirse a programar...) empecé a buscar nuevas fórmulas para intentar mejorar la productividad en mi trabajo. Los resultados y conclusiones a los que he llegado son peculiares, y los pongo aquí para que compartirlos con quien pueda estar interesado. No se ha de olvidar, no obstante, que yo soy un programador, no un usuario de SIG como probablemente una buena parte de los lectores de este blog, aunque de cualquier modo creo que estas ideas pueden ser interesantes para todos.

La idea fundamental en la que he basado mis mejoras (que creo que funcionan notablemente) es la siguiente: el problema que reside detrás de la pérdida de productividad (al menos en mi caso), no es hacer las cosas lentamente, sino perder la concentración y no mantener un flujo de trabajo constante. En otras palabras, las soluciones que uno puede encontrar que automatizan procesos y proporcionan atajos para realizar diversas tareas añaden algo más de productividad, pero esta es en realidad muy poca, y a veces incluso se pierde por otras consecuencias negativas asociadas. Tratándose de un trabajo muy concreto y que se realiza con una única herramienta (el 99% de mi trabajo en SEXTANTE se hace única y exclusivamente usando Eclipse), es mucho más útil tratar de mantener de un modo u otro la concentración en esa herramienta, evitando las distracciones y el uso (sea para lo que sea) de cualquier otra.

Como consecuencia de esto, he modificado mi sistema con algunas de acciones que pueden parecer poco lógicas, pero que me están permitiendo rendir más, al menos en lo que a SEXTANTE y a la programación respecta. Son las siguientes:

* Mi ordenador es difícil de usar: Todas las cosas que antes hacía con suma facilidad, ahora cuestan algo más. Por ejemplo, mi menú de inicio no tiene ahora ningún acceso directo a ninguna aplicación, y mi variable de entorno PATH está prácticamente vacía, así que para lanzar cualquier aplicación tengo que ir a la línea de comandos, llegar hasta el directorio donde está instalada y ejecutarla. Suficiente tedio como para que no me apetezca lanzar chrome cada vez que me viene a la cabeza el nombre de un tío que toca el saxofón y quiero saber en que día nació, o chorradas similares. Mi correo lo leo muchas menos veces, y pierdo mucho menos tiempo.

Por supuesto, esto quita productividad si tengo que estar cambiando de aplicaciones y abriendo una tras otra, pero como digo, rara es la vez en que tengo que hacer eso. Lo que hago normalmente es sentarme delante de Eclipse y escribir código. Punto.

Para limitar más aún las ganas de tener muchas aplicaciones abiertas y utilizarlas a la vez pasando de una a otra, he desactivado el Alt+Tab. Para cambiar entre aplicaciones, tengo que lanzar el administrador de tareas, y ahí ir a la aplicación que quiera dentro de la lista de las disponibles. Estaréis pensando que también puedo hacerlo con el ratón, pero no, porque

*No tengo ratón. No es que lo use poco, es que directamente no hay. Como estoy en el portatil, he desactivado el touchpad. De hecho, para evitar tentaciones de activarlo dándole al botón (demasiado fácil), he desinstalado el driver de synaptics. Esto tiene dos consecuencias principales: por un lado, todos sabemos que las teclas son mas rápidas, pero el ratón es una comodidad que saca nuestro lado más vago. Ahora, cuando estoy en Eclipse, soy más productivo porque tan solo puedo hacer las cosas con teclas. Por otra parte, es más engorroso hacer otro tipo de cosas, como por ejemplo caer en todas esas miles de distracciones que Internet (el verdadero agujero negro de productividad...) ofrece.

Me he instalado una extensión para chrome (gleeBox) que permite navegar fluidamente sólo con teclas, y activando los atajos de teclado GMail se maneja sin problemas (salvo para borrar mensajes, que hay que remapear una tecla por un fallo en chrome). Pero si, después de superar el engorro de lanzar el navegador, me apetece cotillear en Facebook, ir a alguna página de videos o, especialmente, entrar en algo que use flash...entonces la cosa es algo más farragosa, así que no suelo hacerlo. Las páginas web que uso para algo profesional (consultar algo sobre Java, leer un blog sobre GIS, etc) son sencillas y se accede a ellas casi más rápido con teclas que con ratón. Las que no son de ese tipo y tienen mas distracciones que otra cosa, generalmente no están muy pensadas para usarse sin ratón.

En resumen, tengo un ordenador que va muy bien para usar una cosa a la vez (como digo, casi siempre Eclipse, aunque también mejora el uso de mi entorno de LaTeX, por ejemplo), ya que te fuerza a concentrarte realmente en eso que estás haciendo. Esto lo estoy aplicando en mi portátil, aunque cuando vuelva al ordenador de sobremesa lo aplicaré igual. Y estoy pensando en quitar el segundo monitor, que, a pesar de que he sido un ferviente defensor de él (al igual que muchos otros programadores), empiezo a pensar que permite tener muchas distracciones a la vista. Con una pantalla de 22 pulgadas panorámica puesta en vertical (ideal para leer mucho código) como la que tengo ahora como monitor principal, creo que es suficiente para trabajar a pleno rendimiento.

Por si alguno está pensando "y si alguna vez quieres divertirte y hacer otras cosas con el ordenador, ¿qué haces?", la respuesta es sencilla. Cuando quiero divertirme, o bien programo(¡y ademas ahora es más divertido, porque programo más!)...o bien me alejo del ordenador y me voy de cañas con los colegas, que es mucho mejor que andar haciendo el tonto mirando webs sin sentido :-)

Feliz verano a todos!

miércoles, junio 23, 2010

Anticipo SEXTANTE v0.6

Todo esta más o menos listo para sacar la próxima version de SEXTANTE, que será la 0.6. Aquí van algunas de las cosas que incluye.

  1. Menos módulos: Sí, este SEXTANTE trae menos cosas y menos algoritmos. Hemos eliminado algunos paquetes procedentes de contribuciones externas, ya que no hemos podido testearlos lo suficiente y hemos constatado que su uso no estaba muy extendido, así que preferimos esperar a que sean más estables. Algunos de ellos tienen bugs o comportamientos extraños y, como era predecible, sus correspondientes autores andan ocupados y no pueden dedicarles tiempo a las correcciones, por lo que no hemos podido estabilizarlos. Buscando tener un SEXTANTE lo más estable posible, hemos optado por retirar todos esos algoritmos por el momento, aunque esperamos recuperarlos para futuras versiones.
  2. Integración GRASS completa. Hemos contado con la ayuda de Benjamin Ducke, de Oxford Archaeology, quien ha hecho un increible trabajo puliendo la interfaz y testeando casi individualmente que los modulos de GRASS funcionen correctamente desde SEXTANTE, tanto en Mac como Linunx como Windows.
  3. Mejores traducciones. Tambien con la ayuda de Benjamin Ducke, la traducción al inglés ahora es más precisa.
  4. Cambios internos que facilitan la integración y la labor de otros programadores. Esta última etapa de desarrollo de SEXTANTE ha sido muy intensa en cuanto a colaboraciones con otros proyectos, así que hemos hecho mucho para facilitar su labor e incorporar ideas.
  5. Menos bugs ;-)
  6. Nueva licencia. No es definitivo, pero es probable que esta versión salga con licencia MIT. Hemos iniciado una ronda de contactos con la gente que ha contribuido código, con objeto de tener su permiso para hacer este cambio, y casi todos han respondido ya favorablemente. Nuestra intención era realizar este cambio más adelante, en otra version posterior, per viendo que es posible hacerlo ahora, es de prever que la version 0.6 de SEXTNATE se distribuya bajo licencia MIT

miércoles, junio 02, 2010

Mini Jornadas Trabajo SEXTANTE

Al final, las anunciadas Sesiones de Trabajo de SEXTANTE, previstas para hace un par de semanas, no pudieron llevarse a cabo porque falló gran parte de la gente, pero conseguimos sacar adelante un pequeño pero productivo encuentro entre algunos de los que sí pasaron por aquí. Durante tres días estuvimos reunidos aquí con Nacho Brodín (Prodevelop), Nacho Varela (Cartolab Coruña) y Ruth Schonenbucher (CSGIS, Alemania). Trabajamos principalmente en la integración de gvSIG 2.0 y SEXTANTE, en pulir bugs y pequeños fallos de SEXTANTE y en preparar materiales para un módulo de UNIGIS sobre SEXTANTE. Completamos la mayor parte de lo que teníamos pensado hacer, así que podemos decir sin lugar a dudas que nuestra reunión fue un éxito rotundo.

Algunos cambios que se han hecho en el núcleo de SEXTANTE para la integración con gvSIG son de interés para todos los usuarios de SEXTANTE, en especial lo relativo a paneles de parámetros. Ahora la ventana de parámetros por defecto (la que crea SEXTANTE automáticamente al ejecutar cada algoritmo para rellenar los datos que necesita) es configurable en función de la aplicación. Esto permitira, sobre todo, que gvSIG no ofrezca sólo la opción de seleccionar un fichero de salida, sino tambien otro tipo de "destino" para los datos resultantes, como puede ser una base de datos o cualquier otro soportado por su arquitectura de datos.
Publicar entrada

En resumen, días productivos y muy divertidos que esperemos que se repitan pronto.

lunes, mayo 10, 2010

Manual uDig/SEXTANTE

Hace ya tiempo que comenzamos timidamente a integrar SEXTANTE en uDig. El problema es que yo no tengo mucha idea de cómo funciona uDig y de cómo se desarrollan aplicaciones con SWT, así que mi capacidad era bastante limitada y lo único que pude hacer fue ayudar a Jesse Eichar, cabeza del equipo de desarrollo de uDig, para que él integrará SEXTANTE con vistas a tenerlo incorporado en una próxima versión. Aunque se hizo bastante trabajo, la cosa quedó parada y no hay novedades desde hace mucho, pero parece que las cosas puden volver a ponerse en marcha.

La gente de Axios, empresa española que trabaja con uDig y desarrolla sobre el programa, ha publicado un interesante manual titulado "Reutilizando procesos espaciales existentes. Integrando SEXTANTE", en el que explican la programación de extensiones de análisis para uDig y cómo aprovechar los algoritmos de SEXTANTE para ello. Yo por mi parte voy a echarle un vistazo con detalle, a ver si me empiezo a enterar de algo más acerca de la mecánica interna de uDig y puedo contribuir a la integración plnea de SEXTANTE en uDig. Para todo el que esté interesado, el manual se puede descargar en la sección de documentos de la web de la empresa, en la siguiente dirección:

http://www.ntclick.com/web/axios/frmManuales.aspx

jueves, abril 22, 2010

Twitter y SEXTANTE

A Manuel de la Calle se le ha ocurrido la idea de hacer un cliente de Twitter (y en el futuro tambien de otras redes sociales) montado sobre WorldWind. La idea, a la que llama GeoSocial, no es del todo nueva, ya que hay muchos mashups por ahí que recogen información de Twitter y la ponen en algun tipo de mapa, e incluso una de ellas (Twittearth) que lo hace en 3D, pero usar un globo 3D en un escritorio es un paso más y surgen nuevas posibilidades. A mi se me había ocurrido usar su desarrollo para montar ese cliente de Twitter sobre el globo 3D con capacidades de análisis que venimos desarrollando últimamente (y al que llamamos S3XTANTE), de forma que una vez recuperados los datos se puedan analizar con SEXTANTE. Esto abre posibilidades para hacer un geo data mining interesante contra toda la información que Twitter acumula, y aunque hay muchas aplicaciones y sitios que analizan de mil formas distinas los datos de Twitter, no he encontrado nada que use la parte geográfica y haga análisis serios con ella. Es decir, que la cosa es más o menos novedosa.

Como me estoy divirtiendo mucho con esto (aunque no le estoy dedicando demasiado tiempo...), le ando dando vueltas y me he dado cuenta de que hay una forma mejor de hacer esto: meter el cliente de Twitter directamente en SEXTANTE. En el fondo, cumple con lo que tiene que tener un algoritmode SEXTANTE, ya que tiene unos parámetros de entrada (los de la conexión a la API de Twitter), y general una capa de salida (de puntos, con los tweets localizados). Dicho y hecho. Ahora cualquier aplicación que tenga SEXTANTE incorporado puede usarse para llamar a la API de Twitter, recoger datos y crear con ellos una capa, que despues puede ser analizada como uno quiera con el resto de algoritmos.

Por el momento solo hay un algoritmo que hace una busqueda genérica, igual que si la hicieramos desde la página de busqueda que Twitter ofrece. A ver si hago otro en el que puedas autenticarte con tu usuario y ver cosas de la gente a la que sigues, y otros inventos similares. Más noticias en breve.

jueves, marzo 11, 2010

Software libre junto a software propietario

Se ha mencionado alguna que otra vez en este blog la intención que tenemos (o al menos hemos pensado en ello alguna vez) de hacer que SEXTANTE pueda ejecutarse desde aplicaciones propietarias, desarrollando los bindings correspondientes igual que ya hemos hecho (o han hecho otros) con aplicaciones libres. Esto ha desatado discusiones y comentarios más o menos "intensos", y ha hecho aparecer algo de división entre aquellos con los que hemos comentado esta idea.

Estoy ahora en la presentación que abre las Jornadas de SIG libre de Girona, a cargo de Agustín Lobo, y como ejemplo de software open source exitoso menciona a R. Uno de los síntomas de ese éxito es, según él, que exista software propietario que enlaza con R. Y en otra transparencia mencioa explicitamente al enlace entre R y ArcGIS

¿Qué pensais de ésto? ¿Estáis en el lado de Agustín (y nuestro), o pensáis que más que un éxito es un mal síntoma y algo contraproducente para el software libre?

Para que quede más claro, repito que esto es para nosotros sólo una idea, y que no vamos a ponerla en práctica por el momento, ya que hay otras tareas que consideramos más importantes, pero eso no implica que no esté ahí y nos resulte interesante.

jueves, febrero 11, 2010

Nuevos algoritmos de visibilidad

Algunas colaboraciones externas aportan a SEXTANTE nuevas funcionalidades que no existían. Otras, por el contrario, mejoran lo que ya tenemos, haciéndolo más robusto o eficiente. El trabajo de Aviad Segev (Israel) está en este segundo grupo, ya que ha implementado unos algoritmos de aproximación para cuencas visuales que mejoran enormemente el tiempo de proceso de los antiguos algoritmos de SEXTANTE gracias a una optimización que disminuye sensiblemente el volumen de calculos necesarios a realizar. Hay dos algoritmos: el primero de ellos emplea un 3% de tiempo de proceso del algoritmo original de SEXTANTE con un 98% de precisión, mientras que el segundo emplea sobre el 0.4% del tiempo y tiene una precision media del 95% (datos aportados por el autor, todavía no comprobados por mí de forma rigurosa...)

Para quien quiera saber más, el artículo en el que se describen estos nuevos algoritmos está en este enlace.:

Approximating the visible region of a point on a terrain' by B. Ben-Moshe, P. Carmi, and M.J. Katz (http://cg.scs.carleton.ca/~paz/papers/radar5-1-04.pdf)

Y por supuesto, se puede mirar el código en el SVN de SEXTANTE, que contiene abundantes comentarios.

jueves, febrero 04, 2010

Reseña OSOR

Y vamos con un poco de autobombo... Ahí os dejo otro articulito de la gente de OSOR, comentando que ya son mas de 2000 los programas que albergan, y con un enlace a nosotros y menciones como:

"The three most popular projects that are hosted on OSOR itself are Sextante, geospatial analysis software, Wollmux, which add office template functionality to OpenOffice and GvSig, software to manage, analyse and use geographic information."

Para el que quiera leerlo entero:

http://www.osor.eu/news/two-thousand-open-source-applications-for-the-public-sector

Nueva política de distribución

Tras pensarlo detenidamente (es una decisión importante y con consecuencias notables), hemos decidido cambiar la forma de distribuir SEXTANTE a partir de la siguiente versión (a publicar en un mes más o menos). La razón principal es que cada vez resulta mas complejo el mantenimiento de las versiones y de las distintas modalidades (un instalador con ayuda en español, otro en inglés, uno para gvSIG, otro para OpenJump...). Además, para rematarlo, la versión 0.5 tiene problemas para ejecutarse en gvSIG, ya que algunos algoritmos requieren java 1.6, mientras que éste va con 1.5. Para evitar todos estos problemas hemos decidido comportarnos como lo que realmente somos: una librería. A partir de ahora enfocaremos nuestro trabajo a los desarrolladores y distribuiremos un zip con todo SEXTANTE (núcleo, algoritmos, bindings varios, ayuda...), y serán los responsables de aplicaciones los que serán responsables de incorporar SEXTANTE en éstas si así lo desean, de la misma forma que ahora emplean otras librerías como JTS, Log4J, etc.

Una gran parte de los usuarios de SEXTANTE ya lo hacen así (por ejemplo, 52N o GearScape), sin necesidad de que nosotros tengamos que publicar versiones específicas para sus usuarios. Son ellos los que piensan en sus usuarios y se apoyan en SEXTANTE para darles más funcionalidad. Las restantes aplicaciones esperemos que se adapten a nuestra nueva filosofía, y estamos en contacto con ellos para que así sea, por supuesto dispuestos a echar una mano en lo que sea necesario. Creemos que a largo plazo esto será mejor para todos, y sin duda repercutirá en un mejor producto.

Aunque anunció esto ahora por aquí como un anticipo, es probable que esta noticia haya que reproducirla en listas y similares más adelante, ya que cuando se publique la nueva versión de SEXTANTE habrá un aluvión de preguntas del tipo "¿y dónde esta la version para gvSIG?" o "¿y cómo instalo ahora SEXTANTE en OpenJUMP". Esperemos que la comunidad también preste ayuda para este cambio y sigamos trabajando como hasta ahora, o mejor aún.

lunes, febrero 01, 2010

Integración con GearScape, traducciones y más

Hace dos semanas organizamos una pequeña reunión familiar de 3 días entre Nacho Varela (Cartolab, SEXTANTE), Fernando González (GearScape) y yo, trabajando intensamente sobre algunos aspectos de SEXTANTE y, sobre todo, compartiendo un tiempo muy productivo y muy divertido que ha todos nos ha dejado muy buen recuerdo y esperamos repetir pronto. Como este blog es (o intenta ser...) serio y basado en SEXTANTE, me ahorraré comentar las cosas divertidas que hicimos mientras no trabajábamos, y me centraré en los avances que hemos hecho, que son sólo dos principalmente, aunque bien es cierto dos muy importantes:

1) Todas las claves de traducción de SEXTANTE han sido traducidas al inglés. Eso quiere decir que ahora en el código solo hay texto en inglés, y desarrolladores que no hablen español pueden entenderlo sin problemas. Nacho trabajó en un script para automatizar esto, y el resultado es perfecto.

2) GearScape ya ejecuta en su consola y con su SQL extendido una buena parte de algoritmos de SEXTANTE. Una descripción más detallada la estamos preparando para el articulo de la presentación que haremos en Girona Fernando y yo, y que creo que va a ser de gran interés. Para que veais en directo lo novedoso que esto es, y echéis un vistazo al fantástico aspecto de GearScape, ahí os dejo un par de gifs animados que lo muestran


En resumen, tres días fantásticos que ojalá podamos repetir pronto. Gracias a Fernando y Nacho por haber pasado estos días aquí. Con gente así, da gusto trabajar (y hacer otras cosas, más todavía).

p.d: Para el que tenga interés en saber a qué dedicamos nuestro tiempo libre, no puedo resistir la tentación de hablar de la fiesta de Jarramplas, en Piornal, a la que acudimos la tarde del miércoles para ver como una horda de paisanos enfervorecidos se dedica a tirarle nabos a otro paisano del pueblo durante casi una hora. Viendo la mala leche con la que Nacho disparaba nabos del tamaño de una cabeza, creo que puedo decir que programar genera algo de tensión :-P Para los que no se imaginen de qué va la cosa, dejo un enlace a un video:

http://www.youtube.com/watch?v=ypNNPVEadi0

lunes, enero 25, 2010

Video Jornadas gvSIG

Este año no he hecho comentario en el blog sobre las jornadas de gvSIG (falta de tiempo, y ahora creo que ya queda demasiado atrás como para hcerlo), pero para los que no pudisteis estar y quereis saber qué contamos de SEXTANTE por esas tierras, aquí os dejo el enlace al video que la organización ha puesto de la charla que yo di.

http://www.viddler.com/explore/gvsig/videos/77

Un magnífico trabajo, sin duda (el que hacen ellos poniendo el video, por supuesto, no el que yo hago en la charla, que es más cuestionable :-P )

viernes, enero 15, 2010

Reestructuración SVN

Un aviso breve para todos aquellos que usan el SVN de SEXTANTE. Hemos cambiado su estructura y ahora los niveles superiores son trunk, branches y tags. La versión más actual la encontrareis ahora en trunk, mientras que en tags tenemos por el momento una única etiqueta, que corresponde a la version 0.5 recién publicada. Esto encaja un poco mejor con la estructura más habitual de un repositorio SVN, y esperemos que ayude a hacerlo más útil.

lunes, enero 04, 2010

Recubriendo gvSIG

Aunque el desarrollo sobre el que trata esta entrada es algo que añadí antes de Navidad, no he tenido tiempo antes para anunciarlo y ahora es un buen momento para hacerlo, para empezar el año con fuerza. Como mucha gente ya ha comentado, sería buena idea poder aglutinar todos los geoprocesos que tiene gvSIG (geoprocesos vectoriales, análisis ráster, redes...), así como los aportados por SEXTANTE, dentro de un marco único que dé una cierta homogeneidad y haga más fácil la vida al usuario. Siendo SEXTANTE un marco de geoprocesos más elaborado que los otros existentes en gvSIG (no en vano, SEXTANTE es sólo eso, un entorno para desarrollar geoprocesos), y disponiendo de herramientas de productividad que no presentan estos (modelizador, etc), parece lógico que sea SEXTANTE el que defina las características de ese marco final bajo el que han de llamarse todos los procesos de análisis. Desde el punto de vista técnico, la cosa no es trivial, pero tampoco es excesivamente compleja, y no requeriría un trabajo excesivo (máxime considerando que podemos trabajar conjuntamente los equipos de SEXTANTE y gvSIG).

Hasta aquí todo bien. El problema no viene, sin embargo, por la parte técnica, sino por la organizativa, y es que no debemos olvidar que un software tiene programadores detrás, pero tambien gente que coordina, organiza, etc., en especial si se trata de un proyecto grande como gvSIG. Y es a nivel organizativo donde no acabamos de encontrar todo el entendimiento necesario, y tras varios intentos de poner nuestro trabajo en común seguimos sin avanzar mucho. Es facilmente comprensible si se considera que todos esos otros geoprocesos de gvSIG han sido financiados por gvSIG, desarrollados por equipos distintos, y cada uno de ellos posee una identidad que en cierta medida se perdería tras una supuesta integración. Es dificil de entender si se piensa en las muchas ventajas que traería la integración, como bien nos han hecho saber a lo largo de este tiempo muchos usuarios. Sea como fuere, la cosa anda algo estancada y no parece que vaya a avanzar mucho, así que desde el lado de SEXTANTE hemos tomado una decisión salomónica: integrarlo todo nosotros, de forma que pueda accederse a todos los algoritmos de gvSIG desde SEXTANTE.

Los aspectos técnicos son similares a la integración de GRASS o la de procesos remotos WPS. El algoritmo SEXTANTE actúa únicamente como un recubrimiento, recogiendo las entradas del usuario y gestionando las salidas, dejando el proceso al algoritmos de gvSIG, que es llamado de forma transparente y puede por tanto incorporarse en los elementos de SEXTANTE como el modelizador o el proceso por lotes. Éstos algoritmos, sin embargo, no pueden ya correr sobre cualquier SIG, sino sólo sobre gvSIG, así que he abierto una nueva carpeta en el SVN llamada app-specific, donde se guardan algoritmos exclusivos para una otra aplicación, a diferencia de los restantes de la librería, que corren sobre cualquier SIG y son independientes. Por el momento solo hay para gvSIG, pero pudiera ser que existiera algo similar en un futuro para alguna otra aplicación.

Para los curiosos, únicamente existe por ahora un algoritmo de reproyecciones, que hace uso de las librerias de gvSIG para estas tareas, y gracias al cual se puede ya, por ejemplo, reproyectar todo un directorio lleno de capas o incluir una reproyección como parte de un modelo complejo. El trabajo para hacer ese algoritmo ha sido más bien poco, así que auguro que, siguiendo a un ritmo similar, en breve podrán encontrarse en SEXTANTE todos los algoritmos de análisis de gvSIG, teniendo además en cuenta que una buena parte de ellos ya está en SEXTANTE (replicados, con la consiguiente duplicidad de esfuerzos que ello implica, aunque eso ya es motivo de otra entrada...).

¿A dónde nos lleva todo esto? Pues en principio hay que ver cómo vamos a gestionar SEXTANTE para gvSIG una vez que SEXTANTE sea capaz de hacer todo lo que gvSIG hace en términos de análisis. La opción 1 es seguir como hasta ahora, con SEXTANTE en gvSIG y con los geoprocesos y demás elementos de gvSIG también ahí, aunque no sean estrictamente necesarios ya puesto que SEXTANTE ofrece todo lo necesario. La opción 2 es darle algo más de homogeneidad y coherencia y dejar esas extensiones de gvSIG por debajo (son necesarias porque son las que procesan) pero desactivarlas de cara al usuario. Es fácil de hacer, y el usuario sólo vería SEXTANTE una vez que lo instale, no el resto de elementos de análisis de gvSIG ni sus interfaces. La opción 3 que consideramos pasa por crear nuestra propia distribución de gvSIG pensada para el análisis, que incluya lo del paso 2 más modificaciones extras que nos interesan y echamos de menos en gvSIG, así como, por ejemplo, una maquina virtual propia (como la distribución para Windows Vista, de la que somos grandes fans por su sencillez a la hora de instalar) y una versión de GRASS ya preparada, ahorrando al usuario la necesidad de instalar todo por separado. Esta opción última podría convivir con las interiores y estamos pensando mucho la forma de llevar esto a cabo. Mas información en breve...

Ah, y feliz año a todos.