Diego Sarmentero: Into The Light DEMO is here!!

After a couple of months of hard work, I'm finally able to release a DEMO for "Into The Light", an indie game I'm developing and I plan to publish around August! :D




Explore a Sci-Fi world full of puzzles

Wake up into a strange world, everything around you is completely dark, looks like an empty place, but, is it really?
Travel around this world, exploring a series of mazes, avoiding the dangers the mazes have, while you try to solve the different puzzles using a diverse sets of mechanics that your flare (the only resource you have) provides you.



“Into The Light”, is an upcoming indie game for PC, Mac and Linux. The worlds are full of mystery and suspense, with only an anonymous entity that speak to you from an unidentified place. Those questions and messages from that strange voice are the only clues you have about why are you in this place, and even more, who you really are.

What is this thing that the voice keeps asking about? Why is it so important for you to remember?


Into The Light, tries to take the player into a journey of wondering, letting the player discover the meaning and importance behind the words of this strange voice.

Would you be able to find your way out?

Try it out: Download "Into The Light" DEMO!

Manuel Kaufmann (Humitos): #PyDayApostoles: cambiando el futuro

Con una concurrencia que superó todas nuestras expectativas, el Jueves 7 de Mayo se llevó a cabo el primer PyDay (#PyDayApóstoles) en la ciudad de Apóstoles, Misiones.

Hace más de 4 meses, Eugenio Knoll, se puso en contacto con nosotros interesado en la idea de organizar un PyDay en la ciudad donde vive. Desde entonces, hemos estado trabajando juntos y coordinando la organización de este PyDay para que salga lo mejor que se pueda. Eugenio y un grupo de amigos y conocidos de la Universidad, trabajaron en equipo con todas las cuestiones que se requieren hacer físicamente en el lugar, pero además, también hicieron el logo del evento, el sitio web, el diseño de las remeras, las remeras, el material de difusión e incluso, el mismo día del evento, estuvieron a las corridas para que todo sea un éxito. Entonces, antes que nada, tenemos que agradecer a estos chicos por el laburazo que han venido haciendo durante todo este tiempo. ¡Felicitaciones a ellos!

logo.jpg

Logo del PyDay Apóstoles

Yo, desde el Lunes pasado que estoy con una gripe que me tiene en cama, con mucho malestar y bastante chinchudo. Esto también hizo que me embronque porque se venía el PyDay y yo no sabía si iba a estar en estado aceptable para hablar en frente de los chicos o no. Sin embargo, llegamos el Miércoles por la tarde a la casa de Eugenio y, dejando la gripe de lado, organizamos todas las cosas que se podían hacer con anterioridad desde la casa de él (sobre todo, el tema de la venta de remeras).

7:45hs - Me comentan que ya hay chicos que vienen desde otra ciudad en la Universidad

Así, el Jueves de mañana temprano con un frío que había cubierto todo el auto con escarcha, nos fuimos para la Universidad a montar el equipo de sonido y ultimar los detalles para la registración y demás. Siendo que teníamos 25 inscriptos en el sitio web, no pintaba ser un día complicado sino más bien tranquilo y para disfrutar en su plenitud.

Para nuestra sorpresa, la mayoría de los chicos que empezaban a llegar a la registración, donde teníamos nuestra secretaria estrella (@EllaQuimica), no estaban registrados en el sitio web y teníamos que tomar los datos manualmente, comentarles de qué se trataba el evento y explicarles cómo era la dinámica del día. Esto hizo que se generen algunos tiempos muertos en la registración, ya que todos sus apellidos eran algo complicados de pronunciar (descendientes de Ucranianos, Alemanes y demás) y Johanna no daba a basto sola...

¡Finalmente, tuvimos una asistencia de más de 60 chicos, cuando esperábamos como máximo (si es que iban todos) unos 25!

El cronograma de charlas era prometedor. Para empezar tuvimos una "Introducción a Python" que la daba un pibe que la tenía re clara y me encantó cómo arrancó su charla: bien arriba y con mucha energía. Explicó cosas básicas de la estructura del lenguaje y su contexto más que nada, pero se terminó muy rápido. Le había sobrado tiempo y "para mi gusto" no había mostrado nada de código en el intérprete interactivo. Así que, en la parte de preguntas, y como le había sobrado tiempo le dije: "¿Podrías mostrar un poco de código en la terminal? ¿Cómo se crea una lista/diccionario, por ejemplo? Que eso es sorprendente". Así fue que, con el tiempo que le quedaba, mostró algunas cositas en el interprete interactivo, me dejó contento e hizo que su charla tenga todo lo que a mi me gusta :)

Seguida a esta introducción, vino la mejor charla de todo el PyDay (a mi entender): la de Catherin sobre Scrapy. Si bien siempre que he tenido que hacer scrapping utilicé BeautifulSoup, Catherin hizo que cambie un poco mi forma de pensar y que le de una oportunidad a Scrapy, ya que mostró cómo era su lógica de uso y me atrapó mucho. Además, dió su charla con una soltura y una seguridad que hacía bastante que no veía. Encima, después me dijo que era su primera charla en público: ¡ídola!

IMG_20150507_115001.thumbnail.jpg

Nuestra disertante estrella

También invitamos a Catherin a participar del Curso de Python para mujeres para alentar a otras mujeres a que sean unas estrellas como ella y nos ayude a nosotros en la convocatoria y el dictado del curos.

La charla de "Python y Azure" no me gustó. Me pareció una venta de un producto de Microsoft que poco tenía que ver con Python, el PyDay, la filosofía del Software Libre ni nada. No me gustó. Es una opinión personal.

Esta charla ya no me había gustado cuando la habían propuesto por ser de un producto de Microsoft, pero como el PyDay es un evento de Python y no de Software Libre, me parecía que tenía que dejar de lado mi ideología y evaluarla por su contenido. Además, la charla había sido enviada por una mujer y contaba con la participación de un hombre y otra mujer más. Entonces, teniendo en cuenta el tema de la diversidad en el ámbito de la informática: aceptarla era un must aunque a mí no me guste.

Cuando empezó la charla dejé de ayudar en las tareas del evento y le presté un poco de atención, hasta que me di cuenta que de Python no tenía nada más que: "Podés subir tu app Python a nuestro Cloud" y la seguí mirando de reojo cuando podía (además estaba con la gripe en su punto máximo). Como si fuera poco, ninguna de las dos chicas que figuraban entre los disertantes dijeron una sola palabra: me sentí defraudado.

Después vino el almuerzo y yo le comentaba a Eugenio: "¿Qué te parece que podemos hacer en mi charla? Yo no estoy como para darla", mientras quitaba el último pedazo de papel higiénico del rollo que había llevado exclusivamente para eso...

Te vas a poner bien -me dijo

Volvimos del almuerzo y siguió "Python Una Experiencia Academica", de la que me perdí una gran parte ya que estaba con otras cosas y no terminé de entender el porqué del nombre del título :P . Alejandro habló sobre TCP, UDP y mostró cómo hacer una aplicación Cliente-Servidor para replicar archivos en la red utilizando la librería socket. Lo poco que pude ver (sobre todo la parte del final), me pareció muy buena y bien explicada.

Vino mi charla y en ese momento salieron algunos alumnos de las materias que se dictaban en la Universidad, se amontonaron todos en la registración y esperamos un poco a que se puedan acomodar... Yo, tranquilo, ya había anticipado que tenía una gripe mortal y me habían escuchado mi penosa voz durante toda la mañana cada vez que agarraba el micrófono. Yo creo que nadie esperaba ver una buena charla... Ni yo...

Como buen gallina, empecé mi charla atajándome nuevamente de que estaba enfermo y pidiendo disculpas por eso. Para ir anticipando el terreno...

¡Largamos!

DSCF0010.thumbnail.JPG

Empezando la charla

Por suerte, y para sorpresa de todos (menos de Eugenio y Johanna), la gripe no se hizo notar ni una sola vez durante todo lo que duró mi charla. No tuve que sonarme nunca la naríz y apenas tomé agua una o dos veces. Aunque parezca raro, me sentí muy cómodo, veía a los asistenten acentar algunas cosas que yo decía con la cabeza e incluso reírse de los chistes que iba haciendo. Me pareció que había un ida y vuelta durante la charla y también hubo muy buenas preguntas al final.

Yo estoy seguro que si me pasa algo grave y necesito cualquier tipo de ayuda, mi mamá o Python Argentina van a hacer cualquier cosa para poder traerme de vuelta.

—Manuel Kaufmann

Así, con gripe y todo, creo que fue una de las charlas más emotivas y que mejor me ha salido en el último tiempo.

Después de mi charla vino el sorteo, en dónde como habíamos tenido muy poca consola interactiva durante todo el día, tomé el mando y me puse la máscara de fisa para hacer el script Python del sorteo utilizando la lista de asistentes.

Abrí la consola, luego el intérprete de Python y comencé a explicar porqué Python está buenísimo. Les dije que íbamos a hacer en menos de 10 minutos un programa para hacer el sorteo de todas las cosas utilizando ese programa, que iba a estar hecho por nosotros y que iba a ser confiable...

Empecé a codear este pequeño script explicando línea por línea:

listings/pydayapostoles-cambiando-el-futuro/sorteo.py

import csv
import random

asistentes = []

with open('asistentes-pyday-apostoles.csv', 'r') as fh:
    for l in csv.reader(fh):
        asistentes.append(l[0:2])

print len(asistentes)

random.shuffle(asistentes)
print asistentes.pop()
print asistentes.pop()

Al finalizar, luego del sorteo y del cierre del evento, se me acercaron algunos chicos:

Tu charla no es sobre Python, es sobre motivación personal -me dijo uno

Eso es Python -contesté

También se me acercó un Genetista y me dijo que lo que había dicho durante la charla lo había tocado de cerca, ya que él no tiene conocimientos de programación y hoy en día está aprendiendo a programar para poder hacer una aplicación para interpretar los resultados de los datos que obtienen en los laboratorios, ya que a la fecha, no existe ninguna herramienta apta para eso...

Esos chicos, en las charlas finales me tocaron profundamente. Fue un placer hablar con ellos ese rato y poder haberles transmitido el confiar en uno mismo, seguir adelante en los peores momentos y así poder cumplir nuestros sueños.

DSCF0020-1.thumbnail.jpg

El equipo completo

Creo que todos y cada uno los disertantes y organizadores del PyDay Apóstoles dejaron un mensaje en esa Universidad que cambió la cabeza de esos chicos sedientos de aprendizaje para siempre.

Luego de este evento, queda abierta la puerta para que todos los estudiantes de informática en Apóstoles, Misiones empiecen a generar esa comunidad local de la que hablamos en mi charla, en los pasillos y con varios de los chicos durante todo el evento. Suscribiéndose a la lista de Python Argentina, organizando Meetups, Sprint y otro tipos de reuniones. ¡Sigan adelante sabiendo que tienen una comunidad enorme que los va a respaldar!

¡Felicitaciones a todos ellos!


En los pasillos, se escuchaba de algunos docentes de la universidad:

Yo no quería que vengan mis alumnos de primero porque les van a cambiar la cabeza. Y yo, ¿cómo les digo después que tienen que usar variables privadas para que no venga cualquier hacker y les modifique todo?

Difusión

También vale destacar el enorme trabajo de difusión que hicieron los organizadores sobre del PyDay Apóstoles. Durante mi estadía en Posadas me llegó un SMS a mi celular de Guillermo, un profesor del politécnico Jenssen con la idea de ir a dar una charla ahí. Se había enterado de mi presencia en la ciudad por el PyDay.

Como si esto fuera poco, al día siguiente, me llamó Luis de Radio Libertad para hacerme una entrevista sobre toda esta movida que se estaba generando en Misiones y charlar un rato.

Manuel Kaufmann (Humitos): Entrevista Argentina en Python - PyDay Asunción

Durante el PyDayAsunción, Pablo Santa Cruz (programador en Roshka, uno de los Sponsors del PyDay Asunción) me hizo una entrevista para conversar un poco sobre la movida de Python en Argentina, el proyecto Argentina en Python y también cómo alentar a las empresas a qué migren a Python en sus dessarrollos.

Aquí la entrevista:

Podés encontrar el programa completo (donde salió publicada esta entrevista) en Mangocast, aquí.

¡Muchas gracias Pablo por la buena onda!

Manuel Kaufmann (Humitos): Manuel Kaufmann y Python en Argentina

Nota

Esta es una traducción realizada por Martín Chait del post "Manuel Kaufmann and Python in Argentina" by Mary Ann Sushinsky.

Lunes, 16 de Marzo de 2015-04-13 Manuel Kaufmann y Python en Argentina

Varios post recientes del blog se han centrado en actividades relacionadas con Python y financiadas por la PSF (Python Software Foundation) en África y el Medio Oriente. Pero la comunidad Python es verdaderamente global, y ha sido emocionante ser testigo de su crecimiento continuo. Nuevos grupos de personas se están introduciendo a Python y la programación con tanta frecuencia que es difícil mantenerse al día con las noticias. No sólo eso, sino que el alcance y el impacto duradero del trabajo hecho por Pythonistas con una asistencia financiera muy modesta de la PSF es asombrosa.

Un ejemplo es el trabajo reciente en Suramérica de Manuel Kaufmann. El proyecto de Manuel es promover el uso de Python para “resolver problemas cotidianos en usuarios comunes”. Su elección de Python como el mejor lenguaje para lograr este fin se debe a su compromiso con "la filosofía del Software Libre", en particular, la colaboración y no la competencia, así como la capacidad de Python “para desarrollar un software potente y complejo de una manera fácil".

Con este fin, hace un año, Manuel comenzó su propio proyecto, gastando su propio dinero y brindando su propio tiempo, viajando a diferentes ciudades de América del Sur en su auto (de nuevo, su propio auto), la organización de meet-ups, tutoriales, sprints, y otros eventos para difundir la palabra sobre Python y su potencial para resolver problemas cotidianos (ver Argentina en Python).

Esto sin duda llamó la atención de la PSF, por lo que en enero de 2015, el PSF le otorgó un subsidio de USD 3.000. Con este premio, Manuel ha sido capaz de continuar su trabajo, realizando eventos que han establecido nuevos grupos y que en la actualidad se están expandiendo más allá. Este efecto de una pequeña inversión, es algo que el PSF ha visto una y otra vez.

El 17 de Enero en Resistencia, Chaco, Argentina fue el escenario de su primer Sprint de Python. Fue un event de perfil bajo, que tuvo lugar en un pub/restaurante “con buen acceso a Internet”. Había aproximadamente 20 asistentes (entre ellos 4 mujeres jóvenes), que en su mayoría eran principiantes. Tras una introducción general, se dividieron en 2 grupos de trabajo, con Manuel conduciendo el grupo de los principiantes (véase Resistencia, Chaco Sprint), guiándolos a través de algunos materiales introductorios y tutoriales (por ejemplo, Aprendiendo Python desde el wiki de PyAr).

foto-grupal-sprint-chaco.thumbnail.jpg

Foto grupal con todos los asistentes

Como puede suceder, con el impulso adquirido, el Sprint fue seguida de una Meetup el 30 de Enero para consolidar las ganancias y empezar a construir una comunidad local. El grupo de 15 personas pasó el tiempo explorando las capacidades de Python, Brython , Javascript, Django, PHP, OpenStreet Maps, y más, en relación con los proyectos necesarios, y una nueva comunidad Python nació (ver Meetup en Resistencia, Chaco).

El próximo evento en Argentina, fue la primera reunión de Python en la provincia de Formosa, se llevó a cabo el 14 de Febrero que según Manuel, fue un gran éxito, al que asistieron alrededor de 50 personas. El día fue estructurado para tener más tiempo para la discusión libre, lo que permitió una mayor interacción e intercambio de ideas. En la opinión de Manuel, esta estructura realmente ayudó a forjar y fortalecer la comunidad. El enfoque explícito en aplicaciones del mundo real, con la discusión de una aplicación de software Python/Django desarrollado para, y actualmente en uso, en la Oficina de Información Turística de Formosa, fue especialmente convincente y de gran interés para los asistentes. Ver PyDay Formosa y para las fotos, ver PyDay fotos .

Parece como si estos éxitos son sólo el comienzo: Manuel tiene muchos más eventos programados :

  • 28 Marzo - PyDay en Asunción (Gran Asunción, Paraguay y PyDay Asunción); Manuel informa que la inscripción para este evento ya ha superado las 100 personas después de sólo 3 días de apertura. Además, los organizadores del evento están trabajando para establecer una comunidad permanente "Python Paraguay"
  • 7 de Mayo - PyDay en Apóstoles, Misiones
  • 20 a 22 Mayo - Track educativo para estudiantes secundarios en SciPy LA 2015, Posadas, Misiones, Argentina (SciPy LA y Track Teen SciPyLA 2015)
  • 30 de Mayo - PyDay en Encarnación, Itapúa, Paraguay

Pueden leer más y seguir el proyecto de Manuel en los enlaces proporcionados y en Twitter. Además, estén atentos a este blog, porque tengo la intención de cubrir más de su emocionante viaje a través de Python, de código abierto, y del empoderamiento de código a muchos más sudamericanos.

Me encantaría leer comentarios de los lectores. Por favor envíe sus comentarios, observaciones, o las ideas de blog a mí en msushi@gnosis.cx

Mariano Draghi (cHagHi): Tina Turner

Tina Turner nació en 1939. Hoy tiene 75 años. Cuando en 2009 grabó esto, tenía 70.

70 años, ¿entendés?

Te puede gustar o no su música, pero en un mundo donde tantas "divas" que con la mitad de la edad de Tina pretenden huir del tiempo a base de cirugías y maquillaje, y que su única capacidad especial es poder armar escándalos en el programa de chimentos de turno, no podés dejar de admirar a Tina Turner por su autenticidad, profesionalismo, talento y sus casi 50 años de carrera artística.

Mariano Draghi (cHagHi): Tina Turner

Tina Turner nació en 1939. Hoy tiene 75 años. Cuando en 2009 grabó esto, tenía 70.

70 años, ¿entendés?

Te puede gustar o no su música, pero en un mundo donde tantas "divas" que con la mitad de la edad de Tina pretenden huir del tiempo a base de cirugías y maquillaje, y que su única capacidad especial es poder armar escándalos en el programa de chimentos de turno, no podés dejar de admirar a Tina Turner por su autenticidad, profesionalismo, talento y sus casi 50 años de carrera artística.

Facundo Batista: Cambiando un poco la estrategia


Me está costando ponerme a escribir algo en el blog. Más que nada porque no tengo mucho tiempo libre, y cuando lo tengo (y no lo aprovecho con la familia), me alejo un poco de la compu y veo series o pelis, o en la compu estoy sólo programando.

Tampoco tengo nada puntual que escribir, entonces me da fiaca hacer una recopilación de cosas, o detalles que sucedieron, etc.

Pero para ver si logramos vencer esta "inercia a arrancar", vamos a probar un nuevo esquema.  El otro día estaba escuchando una entrevista a Dolina, en el programa de Alivertii "Decime quien sos vos", y me enteré que a él le resulta más fácil, para escribir o producir textos, dictarlos. Entonces, la idea es dictarme yo mismo, grabando con el teléfono, y después voy a transcribir eso.

Obviamente lo voy a editar bastante, lo voy a toquetear, pero la idea es a ver si se logra que fluya más las cosas para contar y no terminar con dos o tres descripciones parcas y nada más.

Grabador de voz

En tren de contar algo de lo que fue sucediendo, el mes pasado hice el asado geek, que aunque es sólo un asado un domingo, realmente hay que ir a comprar un montón de cosas, y acomodar cosas en la casa, preparar todo, un largo etc. Después es un par de días de reorganizar todo de nuevo.

Se vino también el cumple de Malena, que implicó organizar la fiesta en el salón, la reunión en casa, etc. Y estamos armando una fiesta de cumpleaños con Moni, lo cual también lleva su tiempo de coordinación.

A nivel programación, estoy avanzando con varios proyectos, puntualmente CDPedia, fades, y Encuentro.

Con respecto a CDPedia, había preparado hace unos meses una imagen nueva para Huayra, que me pidió Karucha, pero revisando lo que se había armado nos dimos cuenta que había problemas en la búsqueda (vos ponías una palabra y jamás te traía un resultado).

Empecé a analizar el problema, y ví que no era algo que había salido mal en esa imagen, sino que teníamos un problema a nivel código, era algo a arreglar, así que me puse con eso y encontré que estábamos sacando mal títulos de las páginas (habían cambiado el formato interno).

Lo mejoré, y ahora no sólo saca bien los títulos sino que los saca en una etapa anterior, lo que es más eficiente. También metí un par de mejoras con respecto a la internacionalización.  En este momento estoy generando una imagen beta para ver si está todo bien, y ahí armar un set completo de imágenes, para distribuirlos. Luego, saldrá una beta en portugués, a ver cómo anda :)

El otro programa en el que estoy metiendo tiempo, como decía, es Encuentro. Cuando Humitos estuvo en casa (en esos días antes y después del asado geek) le metimos unas horas a este programa porque él está haciendo lo que es la integración con el backend de CDA, y ayudándolo y probando algunas cosas me di cuenta que la autenticación de Conectate cambió con lo cual no se podían bajar bien los videos.

Eso ya lo arreglé, pero todavía no lo liberé. Mi idea era esperar a Humitos para ver si metemos lo de CDA, pero creo que no lo va a tener para las próximas semanas, así que voy a hacer un release estos días, no sólo con ese fix sino también con otras mejoras y pequeñas correcciones que fui haciendo.

Finalmente, el otro fin de semana pasé un rato por FLISOL y luego me fui para la casa de Gilgamezh donde le estuvimos metiendo tiempo a fades, porque queremos hacer un release pronto con algunos features realmente copados ahí. Ya tenemos planeado con qué queremos llegar a la v3, nos falta poco :)

Facundo Batista: Búsqueda por prefijos tolerante a errores


Hace un tiempo les hablé de un árbol que hice para sacar prefijos de palabras.

En el laburo estoy estudiando la forma de hacer un autocompletador. Entonces, luego de leer cosas por ahí, decidí probar ese árbol que ya tenía hecho.

Nunca le había tirado tantos datos, pero la verdad es que salió andando de perlas.

Por otro lado, tenía un detalle que necesitaba solucionar: yo quería que la búsqueda de palabras soportara errores en la escritura. O sea, que si uno buscara "maise", encontrara "maizena".

Encontré un paper bastante loco, Efficient Error-tolerant Query Autocompletion, pero que mostraba la forma de soportar errores al buscar palabras completas, no prefijos. Igual, apliqué ideas de ahí, y en un par de días de laburo conseguí lo que quería. Pero, al cargar el millón y medio de registros que tengo que cargar, ¡explotaba por memoria!

Luego de algunas optimizaciones obvias, se me ocurrió lo de deduplicar los subtrees internos. ¿Qué es deduplicar? Deduplicar es la acción por la cual si tengo un objeto A, y luego tengo otro B, que resulta ser igual a A, puedo usar el A directamente en ambos casos, descartando B (libera memoria), y listo.

Deduplicar diccionarios no es un asunto trivial. Tiré el asunto en la lista de PyAr, y en pocas horas logré que todo funcione correctamente. Ahora no sólo no explota, sino que ocupa bastante poca memoria!

    Memory usage after loading the tree: rss: +586 MB  vms: +586 MB
    Time to load the tree: 327190.99 msec
    <WordTree at 3068071276 [tau=1]: 1478347 words 30015540 (2201293) nodes (unique)>

Millón y medio de palabras, 30 millones de nodos (de los cuales 2.2 millones son únicos), ocupando 590 MB de memoria. Nada mal, ¿no? Que tarde 5.5 minutos en armar toda la estructura es un problema, la semana que viene voy a mirar eso bien.

Todo el código, acá.

Marcos Dione: processing-huge-DEM-datasets

As I mentioned in one of my lasts posts about it, I started using SRTM 1 arc data for rendering my maps. So far, with the 3 arc dataset, I was able to generate a huge image by stitching the tiles with gdal_merge.py, then generating the 3 final images (height, slope and hill shade) plus one intermediary for the slope, all with gdaldem. Now this is no longer possible, as the new dataset is almost 10x the old one, so instead of going that way, I decided to try another one.

With gdalbuildvrt it is possible to generate an XML file that 'virtually' stitches images. This means that any attempt to access data through this file will actually make the library (libgdal) to find the proper tile(s) and access them directly.

So now the problem becomes processing each tile individually and then virtual stitching them. The first part is easy, as I just need to do the same I was doing to the huge stitched image before. I also took the opportunity to use tiled files, which instead of storing the image one scan line at a time (being 1 arc second resolution, each scan line has 3601 pixels; the extra one is for overlapping with the neighbors), it stores the file in 256x256 sub-tiles, possibly (that is, no tested) making rendering faster by clustering related data closer. The second step, with gdalbuildvrt, should also be easy.

The first block on the way is the fact that SRTM tiles above 50°N are only 1801 pixels wide, most posibly because it makes no sense anyways. This meant that I had to preprocess the original tiles so libgdal didn't have to do the interpolation at render time (in fact, it already has to do it once while rendering, using the lanczos scaling algorithm). This was done with gdalwarp.

The second one came from slope and hill shading tiles. As the algortihm goes, it generates some 'fade out' values in the edges, and when libgdal was stitching them, I could see it as a line in the seam. This was fixed by passing -compute_edges to gdaldem.

Finally, for some reason gdalbuildvrt was generating some very strange .vrt files. The format of these files is more or less the following:

  • For each band in the source tiles it creates a band in the result.
    • For each source tile, it describes:
      • The source file
      • The source band
      • The size and tiling of the source (3601², 256²)
      • The rectangle we want from the source (0², 3601²)
      • The rectangle in the result (x, y, 3601²)

The problem I saw was some weird declararions of the rectangles in the result, where the coordinates or the sizes didn't match what I expected. I will try to figure this out with the GDAL poeple in the following weeks, but first I want to make sure that the source tiles are easily downloadable (so far I have only found download options through USGS' EarthExplorer, which requires you to be logged in in order to download tiles, which means that it is not very scriptable, so not very reproducible).

So for the moment I'm using my own .vrt file generator, completely not generic enough for release, but soon. I also took the opportunity to make the rectangles in the result non-overlapping, being just 3600² in size. I know that the generated file works because I'm also generating smaller samples of the resulting layers (again, height, slope and hill shading) for rendering smaller zoom levels.

The only remaining question about huge DEM datasets is contour generation. So far I had just generated contour lines for each tile and lived with the fact that they too look ugly at the seams.


gdal gis srtm

Mariano Guerra: Making a GIF out of a folder of PNGs (plus resizing)

I need to update the gif from the Event Fabric landing page and I forgot how I did it last time.

So this time I will write it here as a reminder.

First take the screenshots, I do it the good ol' way by using the browser fullscreen and hitting the screeshot key at almost regular intervals.

That leaves me with a set of screenshots I want to resize, so I run:

mogrify -path small -resize 800x450 *.png

Note

This requires imagemagick to be installed

This will resize all the *.png files in the current folder to 800x450 and write the results into a folder called small.

Now we go to the small folder and generate the gif:

cd small
convert -delay 100 -loop 0 *.png animation.gif

This will greate a gif that transitions every second from the png images and save it in the animation.gif file.