Mostrando entradas con la etiqueta Jnx Customizer. Mostrar todas las entradas
Mostrando entradas con la etiqueta Jnx Customizer. Mostrar todas las entradas

domingo, 16 de marzo de 2014

Garmin y los BirdsEye JNX (3).

Hoy toca explicar un proceso alternativo para generar hipermapas JNX para los dispositivos Garmin compatibles (unidades más modernas y con firmware parcheado). Si en el post anterior vimos como hacerlos usando solamente Global Mapper y jnxCustomizer (hilo oficial), ahora usaremos además jnxmerge y JNXer, dos utilidades adicionales. Para compensar esa desventaja inicial de usar cuatro pasos en vez de dos, nuestro JNX resultante nos ocupará muchos menos megas de esta manera. La razón es que jnxCustomizer necesita para unir dos JNX que ambos tengan las mismas teselas, lo que nos obliga a generar los JNX topo con el mismo número de mosaicos que el JNX orto (que es el que realmente aumenta el peso final del archivo dada su resolución). Con jnxmerge esto no es necesario por lo que podemos generar los JNX topo sin la ortofoto de fondo, consiguiendo un gran ahorro de tamaño como veremos. Y, en cualquier caso, ¿no os gusta trastear como a mi? Jaja... Pues a trastear.
La primera parte (generar los JNX de las capas que queramos con Global Mapper) no difiere apenas del post anterior. Simplemente exportaremos la orto sola por un lado, y después los mapas topo sin la orto cargada. El ahorro de teselas es brutal (una ortofoto de unos 11000 mosaicos puede ocupar unos 60 en mapa topográfico para el mismo terreno), lo que se traduce en un menor peso global del JNX.
Una vez tenemos los tres JNX que queremos unir abrimos jnxmerge, una sencillísima utilidad para unirlos. De interfaz básica, pinchamos en open file 1 y seleccionamos el topo50; pinchamos en open file 2 seleccionando el topo25 y le damos a merge, dándole nombre y ubicación al nuevo JNX dos niveles. En breves segundos lo tendremos hecho. Como la interfaz de jnxmerge es tan básica que sólo permite cargar dos mapas, para unir el tercero repetimos la operación cargando esta vez el JNX unión de los dos topo anteriores, más la orto y volvemos a unirlos dándole nombre.
Pantalla resultante de la unión de los dos primeros jnx: topo50 y topo25.

El problema de jnxmerge es que nuestro JNX resultante tendrá los niveles al zoom que le de la gana y además genera un JNX versión 3, algo ya caduco que no entienden los nuevos firmwares de los dispositivos Garmin. Y para colmo jnxCustomizer no los puede cargar y actualizar (aunque en teoría está concebido para ambas versiones).
Error de jnxCustomizer al intentar abrir un jnx generado con jnxmerge.

Por ello necesitamos JNXer. Es JNXer un programilla mucho más atractivo visualmente; abrimos nuestro JNX de 3 niveles generado con jnxmerge (de nombre mapa3niveles). En la pantalla principal podemos movernos visualizando los distintos niveles así como información detallada de cada uno (mosaicos, draworder, nivel de zoom, etc...). Se observa como el DrawOrder es erróneo por completo (-1).

En la pantalla secundaria (Lista de Mapas) aún mucha más información. Aquí es donde cambiáremos los niveles de zoom de cada capa y actualizaremos el JNX a la versión 4. Después actualizaremos el mapa (UpdateMap) -el draworder cambiará a 30 y se mantendrán los zoom elegidos para cada nivel- y lo salvaremos (SaveMap). El programa salva por defecto añadiendo el sufijo _saved al nombre del archivo original.

Lamentablemente este archivo resultante sigue sin ser visible en BaseCamp, por lo que el último paso es cargarlo en jnxCustomizer 1.0.24 (la 1.0.28 no me lo ha hecho), activar las casillas de los niveles 1, 2 y 3 y guardarlo (el sufijo _new se añade al nombre del archivo original). Podemos añadir también el número de Grupo y su descripción para ir creando una familia de mapas que luego pueden encenderse o apagarse a la vez en nuestro gps.
Con esto nuestro JNX debería ser perfectamente visible en BaseCamp y en los dispositivos Garmin compatibles. ADVERTENCIA: ESTE PROCEDIMIENTO DE GENERAR JNX MULTINIVEL ES BASTANTE CAPRICHOSO E IMPREDECIBLE. ME HA PASADO DE TODO EN LAS PRUEBAS: DESDE QUE FUNCIONEN A LA PRIMERA, A QUE UNAS VECES SI, OTRAS NO O DEPENDA DEL ORDENADOR EN EL QUE TRABAJE. Así que tomaos esto como unas prácticas y no desesperéis tanto como yo sino os resulta, porque es para enloquecer.

Ayer me harté de hacer pruebas siguiendo EXACTAMENTE los pasos de este artículo y ninguna de las pruebas se veía en BaseCamp (Windows 7). Hoy acabo de hacer otra prueba siguiendo EXACTAMENTE los pasos de este artículo (Windows XP, no se si tendrá algo que ver...) y aquí os dejo las capturas. A la primera.
Topo50 a 1km de zoom
Topo25 a 300m de zoom

Ortofoto a 100m de zoom

De hecho este JNX elaborado de forma tan artesanal es perfectamente visible en Global Mapper, funcionando perfectamente los distintos niveles de zoom del hipermapa, como se ve en las siguientes capturas con su correspondiente nivel de zoom:
JNX elaborado según este artículo abierto en Global Mapper. Estructura del archivo en el Control Center.

Como veis, un proceso distinto, algo más laborioso pero con un resultado de un JNX mucho más ligero. Eso si es que funciona, claro... La decisión de cómo hacerlos es vuestra. Lo que parece que nunca falla es cargar en la carpeta BirdsEye un jnx individual de cada capa y que vayan entrando dependiendo del nivel de zoom configurado para cada uno.
Se agradecen comentarios de los resultados a los que probéis este sistema, que de editar el post con los nuevos descubrimientos siempre hay tiempo.


viernes, 14 de marzo de 2014

Garmin y los BirdsEye JNX (2).

Seguimos indagando en el complicado y caprichoso asunto de los JNX, el formato para introducir mapas raster en dispositivos Garmin compatibles, también conocido como BirdsEye. En este artículo nos proponemos crear un JNX de varios niveles, es decir, que contenga mapa topográfico y ortofoto y que, dependiendo del nivel de zoom se visualice el uno o el otro (hipermapa para los amigos). 
Este efecto se puede conseguir también con dos mapas individuales: un JNX de mapa topográfico con nivel de zoom 800 metros -por ejemplo-  y otro JNX de ortofoto con nivel de zoom 200 metros -por ejemplo-. Colocados ambos en la carpeta BirdsEye de nuestro Garmin se visualizará uno u otro cuando entremos en el nivel de zoom establecido. Pero ya puestos en harina, y dado que el formato BirdsEye lo permite, busquemos eso mismo en un único archivo.
Lo primero es preparar los jnx que vamos a necesitar con Global Mapper. Vamos a rizar el rizo y hacer un jnx de tres niveles: topo50, topo25 y orto. Como es fundamental que los tres mapas tengan la misma extensión de terreno (más exactamente el mismo número de mosaicos) para luego unirlos con éxito, os explico en un vídeo la manera infalible de recortar los tres mapas de un golpe:

Os recomiendo que no seleccionéis zonas demasiado extensas pues los tiempos de exportación y tamaños de los archivos se pueden disparar. Y si cada JNX se compone de x teselas, al unir los tres el resultado será de x por 3 teselas, con lo que podríamos superar el máximo de teselas permitidas para el JNX (unas 50000 sino recuerdo mal). De nuevo el probar varias veces es el mejor maestro. Preparamos una carpeta ("JNX Garmin" por ejemplo) para alojar las exportaciones y con los tres mapas activados y visibles (el topo50 en la capa superior) exportamos el JNX con los parámetros habituales y le llamamos mapa1 topo50. Os recomiendo también reducir la calidad de las teselas jpg a 75-80, pues la diferencia de calidad es poca y el peso en megas del JNX se reduce bastante.

A continuación "apagamos" el topo50 dejando visible el topo25 y volvemos a exportar a jnx (le llamo  mapa2 topo25). Y por último "apagamos" el topo25 dejando visible la orto y exportamos a JNX con nombre mapa3 orto.
Con nuestros tres JNX en nuestra carpeta abrimos el JNX Customizer (versión 1.0.24) y en el modo Batch, con la carpeta de nuestros mapas seleccionada en el árbol de carpetas, pinchamos en Cargar para que el programa nos muestre los JNX disponibles en esa carpeta. Debemos tener delante una pantalla como esta:

Se nos muestran los tres JNX generados (mapa1 topo50, mapa2 topo25 y mapa3 orto) con las características con las que Global Mapper ha exportado por defecto, esto es: draw order de 30, 11451 teselas de mosaico, y el número de niveles (1) y nivel de zoom de cada mapa (en este caso 80 metros para todos pues prima la orto que teníamos de fondo para conseguir en los tres JNX el mismo número de teselas). El nombre de los archivos JNX generados no es casualidad, pues tras 47000 pruebas y varios ataques de locura, descubrí que la unión de JNX sólo funciona bien si tenemos los mapas en el orden alfabético correcto (primero el topo50, luego el topo25 y luego la orto; sólo así jnxCustomizer asigna en nivel 1 al topo50, el 2 al topo25 y el 3 a la orto). Si habéis puesto unos nombres de archivo a los JNX que no corresponden alfabéticamente simplemente renombradlos con otros que cumplan el orden alfabético necesario.
Con los tres mapas seleccionados (marquita en el lado izquierdo) rellenamos las opciones de exportación: familia 15 "hipermapa 3 niveles" (o el nombre y la familia identificativos que queráis -dos dígitos-), nivel 0 a 3 kms (para el topo50), nivel 1 a 1,2 kms (para el topo25), y nivel 2 a 200 metros (para la orto). DrawOrder lo podemos dejar por defecto, pues en 30 es seguro que no tapa los mapas Garmin. Pinchamos en Unir mapas y se nos genera un nuevo JNX en la misma carpeta de nombre joinxxxxxx (siendo xxxxxx la fecha de generación del archivo).

Cerramos la ventana Batch y cargamos el nuevo JNX en la vista normal del Customizer para asegurarnos que contiene los parámetros deseados de niveles de zoom; si no es así (que no será pues un bug del programa pone el número 1 en todos los niveles) los cambiamos y guardamos. Aquí debo confesaros que, en mi maratón de prueba-error-prueba-error, muchos niveles de zoom no me han funcionado y luego no era capaz de ver el JNX en BaseCamp; por lo que hasta que sepa porqué (probablemente algo relacionado con el desfase entre zoom de BaseCamp y zoom del gps) he decidido poner los niveles 200 metros para la orto, 1,2 kms para el topo25, y 3 kms para el topo50. Aparte de que así me funciona, la verdad son niveles bastante razonables para un visionado decente. De cualquier forma lo mejor es que hagáis varias pruebas hasta dar con la combinación que más os satisfaga y funcione. También os comento que haciendo el proceso con jnxCustomizer 1.0.28 no me ha resultado  (vaya usted a saber por qué) y los JNX no se veían en BaseCamp, así que he trabajado con la versión 1.0.24.

Puede parecer un proceso algo complicado, pero os aseguro que la alternativa que conozco (usar aparte de jnxCustomizer, jnxmerge -para unir mapas- y JNXer -para rectificar niveles y la versión del JNX-) es aún peor, aunque JNXer me ha parecido un programa muy apañado y con bastante utilidad y tendríamos la ventaja de conseguir un JNX de mucho menos peso ya que jnxmerge no requiere el mismo número de teselas para unir los mapas con lo que los mapas topo constan de muy pocos mosaicos. Quizá en el próximo artículo os explique este otro sistema...
En la web de IOGREA, donde tenéis disponibles los JNX de toda España, también se explica el proceso que han seguido ellos, aunque parece que ese sistema se ha complicado bastante desde que las últimas versiones de MOBAC ya no traen acceso a los servidores con ortofotos. Probablemente no compense para nada elaborar uno mismo estos JNX teniéndolos en la web de IOGREA de toda España y por una simple donación simbólica (y seguro que mejor trabajados y mucho más maximizados en tamaño y rendimiento); pero entre la curiosidad de cómo hacerlos y que es bonito trastear, nació este tutorial.

Sólo nos resta pegar el nuevo JNX en la carpeta BirdsEye del dispositivo Garmin y arrancar BaseCamp para comprobar que todo ha salido bien. De nuevo os recuerdo que vuestras propias pruebas os llevarán a encontrar la combinación idónea (es muy posible que sea mejor bajar el zoom del topo50 a 2kms y el del topo25 a 800 metros, por ejemplo... O que queráis usar otro tipo de mapas, o más niveles, o menos...). Os dejo capturas:
Zoom a 3 kms mostrando el Topo50. Mapa cargado OSM España para BaseCamp.
Zoom a 300 metros mostrando el Topo25. Mapa cargado TopoHispania 2.04 para BaseCamp.
Zoom a 100 metros mostrando la ortofoto. Mapa cargado Topo España v5 PRO para BaseCamp.
Y, por supuesto, pasar el hipermapa JNX a un dispositivo Garmin real con firmware parcheado (yo trabajo con un pen drive emulando un Montana 650) para la última comprobación sobre el terreno. Ahí es donde comprobaréis cuales son los niveles de zoom que realmente van bien. Como datos específicos os diré que el JNX  de 3 niveles resultante de este artículo tiene una extensión de 19 kms cuadrados de terreno, 34353 teselas (11451x3), y exportado a una calidad de mosaico de 80, me ha salido con un peso de 200 megas. Usando el proceso con jnxmerge y JNXer se queda en la mitad.


jueves, 6 de marzo de 2014

Garmin y los BirdsEye JNX.

Ha llegado el momento de solucionar el asunto de los BirdsEye (JNX) de Garmin; después de investigar todo lo que he visto por la red creo estar en condiciones de publicar uno de los artículos probablemente más demandados del mundillo de los gps y la cartografía  digital.
Como sabréis las posibilidades de introducir mapas raster en las unidades modernas de Garmin (Colorado, Oregon, Dakota, Montana, ...) se reducen a dos:
- Hacerlo en formato kmz como ya explicamos AQUÍ, con las limitaciones propias de este sistema (un solo mapa de máximo 100 teselas y siempre que cada tesela no exceda de 3 megas). Estos mapas deben ser alojados en la carpeta "Custom Maps" del dispositivo.
- O hacerlo en el formato JNX (las llamadas BirdsEye) con lo que el límite de teselas por mapa es de 50.000 y el número de mapas simultáneos en el gps puede ser de unos 200. Estos mapas deben ser alojados en la carpeta "BirdsEye" del dispositivo.
El sistema BirdsEye está concebido por Garmin como un servicio de suscripción de descargas de pago, por lo que para poder visualizar los JNX en el dispositivo es imprescindible instalarle un firmware "parcheado" como muy bien explica la web de IOGREA. Una vez cumplido ese paso podemos ponernos al lío y fabricar nuestros JNX de usuario con el mapa u ortofoto que queramos, incluso especificar el nivel de zoom al que queremos que se visualice uno u otro tipo de raster.
Para cualquiera de las dos opciones mencionadas Global Mapper vuelve a ser una herramienta imprescindible, sobre todo a partir de su versión 14 que nos permite exportar directamente en el formato BirdsEye JNX de Garmin. Como no dispongo para mi desgracia de una unidad Garmin moderna que admita estos mapas, todas mis pruebas están hechas con un dispositivo virtual en un pendrive que "engaña" a BaseCamp como si realmente tuviera un gps Garmin compatible conectado (detalles AQUÍ).
El paso más común es transformar una ortofoto al formato JNX e introducirla en el gps para que la visionemos como fondo de cualquiera de los vectoriales img clásicos de Garmin. Recuerdo de nuevo que para una orto pequeña, de una zona concreta o para una ocasión puntual, no es necesario para nada pasarla a JNX ni parchear el firmware de vuestro gps, pues metiéndola en kmz la tendréis perfectamente disponible como explicamos en ESTE POST. Ahora, si queremos amplias zonas, o tener zonas distintas, o manejar a nuestro gusto el nivel de zoom al que se visionará la orto, debemos meternos con los JNX.
Abrimos en Global Mapper la orto que queramos pasar al Garmin; en este ejemplo yo usaré un recorte de zona de una de las ortofotos que cualquiera podemos descargar del IGN. Simplemente en el menú Exportar/ Raster/Image Format seleccionamos la opción Garmin Raster Maps (KMZ/JNX). Elegimos JNX dejando las opciones por defecto aunque os pongo una breve explicación de las mismas:

Elegimos el nombre y la carpeta donde exportar el JNX y esperamos que termine el proceso, que puede alargarse un tanto dependiendo de la extensión a convertir (en mi ejemplo la imagen consta de 3440 celdas jpg a una calidad del 80% como veis en la zona naranja y un tamaño del JNX de 23,7 megas para una extensión real de terreno de unos 4 x 2,4 kilómetros). Una vez creado nuestro JNX es el momento de personalizarlo, tanto en el nivel de trazado (DrawOrder), el nivel de zoom, y la "familia" a la que va a pertenecer. Para ello necesitamos el programa JNX Customizer, creado por el forero de elgps.com "jagmagana", y cuya versión 1.0.24 os dejo en mi repositorio para descarga. (Enlace también a la versión 1.0.28). Instalado y abierto cargamos el JNX y vemos esto:
Lo que sustituimos por esto (o al gusto):

Pulsamos en Guardar JNX y se nos genera un nuevo archivo en la misma carpeta del original con el mismo nombre mas la extensión _new. Copiamos y pegamos dicho archivo en la carpeta "BirdsEye" de nuestro gps (en caso de tenerla siempre mejor en la tarjeta de memoria externa que en la memoria interna del Garmin), y arrancamos BaseCamp. Come veis justo debajo, tenemos abierto el TopoHispania, el programa ha reconocido nuestro dispositivo simulado (Montana 650) y el BirdsEye generado se nos muestra en el árbol de datos dentro del Almacenamiento interno del gps (barjas orto_new) y también con su marco en el mapa; el JNX no es visible aún porque estamos en un zoom de 500 metros.
Haciendo doble click sobre el JNX se nos muestran sus propiedades en las que vemos su nombre, que se compone de 3338 imágenes, el área de terreno que cubre, el producto según nuestro etiquetado (Ortofotos),  o el famoso Orden de trazado situado en 25 como nosotros habíamos puesto (y que ahora podemos aumentar o reducir a nuestro gusto: por encima de 50 el TopoHispania queda "sepultado" por la orto; por debajo de 50 el TopoHispania queda superpuesto sobre la orto).

Por supuesto lo siguiente es aumentar el nivel de zoom para que quede constancia de que a un zoom por debajo de los 200 metros que configuramos en JNX Customizer la ortofoto JNX es perfectamente visible y queda integrada estupendamente con los vectores de TopoHispania (o del mapa que carguemos). Helo aquí a zoom 150m:

Siguiendo este sencillo proceso podemos generar todos los raster JNX que queramos (orto o mapa) y pasarlos a nuestro Garmin con firmware parcheado. Y si alguno tenéis un Garmin moderno y con firmware parcheado y tenéis el detalle de hacer la prueba en el dispositivo, hasta que yo pueda, y ver si funciona, os dejo el JNX de este artículo en mi repositorio para que lo descarguéis y podáis confirmarme si se ve en el gps. Descargadlo AQUÍ.
Me despido con otro ejemplo de JNX, esta vez de mapa raster 25k en vez de orto. Muy agradecido.