Ortofoto de Barcelona a resolución 22K x 20K píxeles
27 de Noviembre de 2006 en Linux, PHP
Lecturas: 7,472

Plaça CatalunyaLlevo un par de años recopilando mapas topográficos por internet (por la web y por la mula) y mi gran ilusión siempre ha sido tener una ortofoto de Barcelona colgada de la pared de mi comedor. Los que trabajen con gráficos sabrán que imprimir algo así con una calidad medio-decente implica una imagen de tamaño enorme... Pues bién, ya tengo el proyecto en fase de pre-impresión: tengo un CD con un archivo JPG de 140 MB!! Y una resolución de unos 22000x20000 píxeles.

Pero claro, no ha sido una tarea fácil. Con la aventura he descubierto cómo seleccionar una porción de foto del Institut Cartogràfic de Catalunya con sus parámetros de zoom y tamaño de la imagen, y he aprendido a modificar imágenes con la instrucción de línea de comandos convert, del paquete ImageMagick.

En éste artículo explico mis pasos hasta conseguir un enorme JPG con la ortofoto de Barcelona más grande que he visto.

Valoración de Opciones

En primer lugar cabe decir que he valorado varias opciones antes de optar por la que he tomado. Primero probé a guardar una imagen capturada de Google Earth, pero la resolución máxima ronda los 1000 píxeles de anchura y éso no me da para imprimir a un gran tamaño. Luego indagué un poco en la posiblidad de usar la API de Google Maps... si puedo sacar una imagen de 1000 píxeles de ancho, podría hacer un programa que dada una posición latitud x longitud vaya guardando fotos a máximo zoom como celdas en una tabla, es decir, sectorizando toda la zona de Barcelona en pequeñas porciones cuadradas. Pero sin llegar a mirarla, un compañero de trabajo familiarizado con la API (hola Víctor Guardiola ;) ) me lo quita de la cabeza dándome una posiblidad mejor: usar los mapas del Institut Cartogràfic de Catalunya, que él usó en su momento para hacer algo parecido con Sant Cugat y las URLs de las imágenes son más bonitas y fáciles de usar... pues manos a la obra!

Búsqueda y pruebas de la URL para las ortofotos

El problema era que sólo tenía una pista: el ICC. Ninguna URL, ninguna sección que visitar... nada. Tal como entras en el ICC hay un buscador e introduciendo "Barcelona" te lleva al Visor Raster dónde tenemos una interficie al estilo Google Maps pero algo más simple (no permite rotar la imagen). Jugando un poco con él ves que puedes conseguir ortofotos de buena calidad pero el problema es el mismo: guardas la imagen a 500 píxeles de anchura. Entonces miré el código fuente de la página y busqué la URL de la imagen a ver si podía referirme sólo a la imagen. Después de asustarme con la inmensa cantidad de Javascript encontré ésto:

HTML:
  1. <img width="500" style="border: 0px none " id="imgView" name="imgView" src="http://shagrat.icc.es/lizardtech/iserv/getimage?cat=mtc50m&item=iserv-catalog-index&cp=398985,4617056&lev=8&wid=500&hei=375&oif=jpg&geo=true" />

que limpiándolo un poco tenemos la URL de la imagen:

http://shagrat.icc.es/lizardtech/iserv/getimage?cat=mtc50m&item=iserv-catalog-index&cp=398985,4617056&lev=8&wid=500&hei=375&oif=jpg&geo=true

Si nos fijamos bién en la URL, tenemos varios parámetros que nos van a ser útiles para nuestros propósitos:

  • cat: Éste es el tipo de imagen. Si queremos la ortofoto deberemos poner "orto5m" en vez de "mtc50m".
  • cp: Aquí van las coordenadas separadas por una coma
  • lev: Éste es el nivel de zoom. 8 es el menor zoom y 1 es el mayor
  • wid: Es la resolución de la anchura en píxeles de la foto resultante. El valor máximo es 1200.
  • hei: Es la resolución de la altura en píxeles de la foto resultante. El valor máximo es 1000.

Entonces, con unas pruebas más, vemos que podríamos hacer unas cuantas llamadas al servidor para que nos dé algunas fotos de la porción de terreno que le pedimos, y que éste responde bién.

Capturar todas las fotos necesarias.

Si lo pensamos un poco, como he dicho antes, podríamos coger la imagen de Barcelona y separarla en subzonas del tamaño que nos da cada imagen, como si fuera una cuadrícula. Para ello necesitamos saber sólamente las coordenadas de las esquinas para realizar un par de bucles anidados que pida imagen por imagen y se recalcule la siguiente coordenada a pedir. En mi caso, busqué las coordenadas siguientes:

  • Esquina NO: 415867x4592290
  • Esquina NE: 436155x4592290
  • Esquina SO: 415867x4572066
  • Esquina SE: 436155x4572066

Sabiendo ésto, podemos definir un pequeño script PHP que capture las imágenes. Primero, setaremos el tiempo límite del script a una cantidad razonablemente alta, para que no se nos interrumpa a media captura:

PHP:

Luego, definiré las variables que utilizaré durante el proceso:

PHP:
  1. $x_ini            = 415867;
  2. $x_fin            = 436155;
  3. $y_ini            = 4592290;
  4. $y_fin            = 4572066;
  5. $zoom             = 1; //1 més petit, 8 més gran
  6. $ample            = 1200; //max 1200
  7. $alt              = 1000; //max 1000
  8.  
  9. $amplada_logo_icc = 60;
  10. $offset_x         = $ample - $amplada_logo_icc;
  11. $offset_y         = $alt;

Cabe decir que cada imagen lleva el logo del ICC. Si vamos a realizar una composición de éstas características el logo nos molesta porque estará presente en todas las fotos descargadas. Por éso, lo que hago es calcular el tamaño del logo (60 píxeles) y restarlo del offset horizontal. Así, todas las fotos se bajarán 60 píxeles más a la izquierda. Más adelante haremos unas preparaciones con las fotos para comernos el lado izquierdo (sólo 60 píxeles) quedando entonces todo perfecto.

Ahora, defino una función que me permita guardar en el disco las fotos a las que hacen referencia las URLs que voy a generar. Dicha función recibirá la URL a capturar y usaremos la función file_get_contents() para recoger los datos de la imagen y pasarlos a una cadena, que a su vez serán los datos que le pasaremos a file_put_contents() para que lo guarde en el disco. Además, necesitaremos definir un nombre de imagen descriptivo, ya que si no luego tendremos un lío de imágenes que no veas:

PHP:
  1. function saveImage($url, $nombre)
  2. {
  3. $cadena = "";
  4. $cadena = file_get_contents($url);
  5. $bytes = file_put_contents($nombre,$cadena);
  6. return $bytes;
  7. }

Y ya para acabar, el bucle en sí. Se trata de dos Fors, uno para las filas y otro para las columnas de celdas. Usaremos un contador en cada una de ellas para calcular las coordenadas necesarias:

PHP:
  1. $contador = 0;
  2. $bytes_escritos = 0;
  3. //bucle per files
  4.  
  5. for($y=0;$y<=ceil(($y_ini-$y_fin)/$offset_y);$y++)
  6. {
  7. $coord_y = $y_ini - ($y * $offset_y);
  8. //bucle per columnes
  9. for($x=0;$x<=ceil(($x_fin-$x_ini)/$offset_x);$x++)
  10. {
  11. $coord_x = $x_ini + ($x * $offset_x);
  12.  
  13. //guardar el archivo
  14. $bytes_escritos+= saveImage("http://shagrat.icc.es/lizardtech/iserv/getimage?cat=orto5m&item=iserv-catalog-index&cp=".$coord_x.",".$coord_y."&lev=".$zoom."&wid=".$ample."&hei=".$alt."&oif=jpg&geo=true","ortobarna_col_".$x."_fila_".$y.".jpg");
  15.  
  16. //realizamos una pausa, para no liarla con el servidor
  17. sleep(2);
  18.  
  19. $contador++;
  20. }
  21. }

Como siempre, lo primero de todo es inicializar las variables contadoras generales (aunque sólo sirven a nivel de resumen). Lo realmente complejo aquí es el cálculo del final del bucle y el cálculo de las coordenadas. Cojo por ejemplo el cálculo de las Xs:

PHP:
  1. $coord_x = $x_ini + ($x * $offset_x);

Lo que hacemos es coger la coordenada inicial como base para todas las coordenadas, a la que le sumaremos el resultado de multiplicar el número de iteración con la anchura que cada foto tendrá. Así, la primera iteración, la zero, será sólamente la coordenada inicial, pero la segunda será la coordenada inicial más una vez el offset, la tercera será la coordenada inicial más dos veces el offset, y así sucesivamente... Para saber el final del bucle debemos saber el espacio que cruzaremos con el bucle y por éso restamos la coordenada final menos la coordenada inicial (ojo, en el eje de las Ys va al revés porque el eje está invertido). Luego, el resultado de la resta lo dividimos por la anchura de cada celda y así tendremos el número de iteraciones necesarias. Como ésta operación puede dar un número decimal debemos convertirlo a un entero (las coordenadas no aceptan decimales) y usamos ceil() para convertirlo al entero mayor (y así le damos algo de margen ;) ):

PHP:
  1. for($x=0;$x<=ceil(($x_fin-$x_ini)/$offset_x);$x++)

Para acabar debo mencionar que se me pasó por la cabeza que desde el lado del servidor, al ejecutar el script, van a recibir un montón de peticiones en un mismo instante, y puede que el servidor tenga algún tipo de seguridad que nos bloquee el acceso. Para que ésto no ocurra o simplemente para prevenir una sobrecarga que nos dé alguna imagen errónea, le inserté un tiempo de espera entre cada celda. Por éso el sleep(2); para que se espere un par de segundos entre petición y petición.

Ya por último, yo soy de los que acostumbran a printar por pantalla resúmenes finales del proceso, para enterarme del trabajo realizado mediante unas estadísticas:

PHP:
  1. print "Columnas: ".ceil(($x_fin-$x_ini)/$offset_x)."
  2. ";
  3. print "Filas: ".ceil(($y_ini-$y_fin)/$offset_y)."
  4. ";
  5. print "Totales: ".ceil(($x_fin-$x_ini)/$offset_x) * ceil(($y_ini-$y_fin)/$offset_y)."
  6. ";
  7. print "Valor del contador: ".$contador."
  8. ";
  9. print "Bytes Escritos: ".$bytes_escritos."
  10. ";

Al ejecutar el script entero vamos a tener guardado en el disco (jeje, al cabo de unos cuantos minutos) todas las imágenes que necesitamos, como piezas de un puzzle.

Limpiar el logo de todas las fotos

Tenemos todas las fotos en el disco... pero todas llevan el logo! Tenemos que quitarlo... Lo que haremos es recortar 60 píxeles por la derecha en todas las fotos. Éso está ya planeado porque hemos calculado el offset de todas las fotos 60 píxeles más a la izquierda... quedará perfecto...

Pero cómo lo hacemos? Si abrimos las fotos una a una en el Photoshop nos vamos a morir del asco... Como somos usuarios de Linux (o deberíamos serlo ;) ) tenemos a nuestra disposición una herramienta llamada convert procedente del paquete ImageMagick. Gracias a éste podremos realizar los cambios en todas las imágenes a la vez, que nos ahorrará un tiempo precioso:

for i in `ls *.jpg`;do convert $i -crop 1140x1000+0+0 +repage out/$i;done;

Hemos mostrado todas las imágenes JPG en el directorio (espero que no tuviérais ninguna que no fuera una pieza del mapa...) y para cada una de ellas recorta la imagen quedándose con una área de 1140x1000 (o lo que es lo mismo, eliminando 60 píxeles por la derecha), y lo guarda en un directorio llamado out dentro del actual, con las fotos recortadas usando el mismo nombre de foto.

Juntando las piezas del puzzle

Ahora ya sólo nos queda juntar las piezas. Sabemos que tenemos filas y columnas. Usaremos otra vez la herramienta convert, ya que permite adjuntar una foto con otra. Si usamos el modificador append con un signo de suma delante va a juntar las fotos horizontalmente, y si lo usamos con un signo de resta lo hará verticalmente. Yo uní las piezas primero en columnas para luego proceder a juntarlas todas en una sola fila.

Para juntar las fotos en columnas:

convert -append ortobarna_col_0_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_0.jpg
convert -append ortobarna_col_1_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_1.jpg
convert -append ortobarna_col_2_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_2.jpg
convert -append ortobarna_col_3_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_3.jpg
convert -append ortobarna_col_4_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_4.jpg
convert -append ortobarna_col_5_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_5.jpg
convert -append ortobarna_col_6_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_6.jpg
convert -append ortobarna_col_7_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_7.jpg
convert -append ortobarna_col_8_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_8.jpg
convert -append ortobarna_col_9_fila_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}.jpg col_9.jpg

Vale, vale, se podría haber bucleado ésto, pero ya eran unas horas que mis neuronas no me dejaban pensar demasiado... Aquí que cada uno aporte un poquito ;)

Ahora tenemos 18 columnas de fotos. Podemos verlas... es gracioso ver una foto de Barcelona a base de secciones verticales... Pero nos queda la tarea más ardúa... Juntar las columnas. No es que sea difícil... de hecho es igual de fácil que juntar fotos en columnas, pero tenemos que pensar que el tamaño en memoria de éstas fotos es importante y si juntar 21 fotos 500K en una columna no es mucho, juntar 18 columnas de 9 MB no es una tontería. En mi caso probé de utilizar la misma herramienta de la misma forma pero para juntarlo en una fila:

convert +append col_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}.jpg barcelona.jpg

Pero al cabo de cierto tiempo mi Ubuntu me cerraba el proceso por exceso de memoria. Tenía que buscarme algun truco... Y lo encontré. Resulta que el convert tiene un parámetro para limitar el uso de memoria. Cuando ésa memoria se sobrepasa se usa memoria de disco, que irá más lento, pero almenos acabará el proceso. En mi caso usé 200 MB como límite de memoria:

convert -limit memory 200 +append col_{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}.jpg barcelona.jpg

Et Voilà, ya tenemos ortofoto de Barcelona a resolución gigante. Cuando lo tenga impreso y colgado a la pared haré una foto para demostrarlo ;)

Salud!

Edito: La función encargada de capturar la imagen de una URL y guardarla en el disco utiliza una instrucción sólo para PHP 5 y superiores. La función se puede construir usando otras instrucciones para que funcione en versiones anteriores de PHP. Gracias a xaumet! ;)

PHP:
  1. function saveImage($url, $nombre)
  2. {
  3. $cadena = "";
  4. $cadena = file_get_contents($url);
  5. $bytes = fopen($nombre,"w");
  6. fputs ($bytes, $cadena);
  7. fclose ($bytes);
  8. return $bytes;
  9. }

Bueno, pues os cuelgo parte del resultado. La imagen resultante está orientada al Norte, situando Barcelona en diagonal con el mar. Yo quería tener el mar debajo y la montaña arriba, así que está rotado, cropado y escalado para que quepa aquí. La  idea es hacer el cuadro más o menos así... Puede que quite el Llobregat, pero quiero que salga el aeropuerto ;)

Ortofoto Barcelona 400x232

 Enviar a Fresqui

Leer los Comentarios

[ # 9 ] Pingback desde La Dragonera :: Informática, Motos, Lletres de Cançons :: » Ortofoto de Barcelona a gran resolució [27 de Noviembre de 2006, 11:57]

[…] Podeu veure l’article de com ho he fet a SyntaxError: Ortofoto de Barcelona a resolución 22K x 20K píxeles. […]

[ # 10 ] Comment desde sdfsdf [30 de Noviembre de 2006, 12:41]

cuelgala! en rapidshare por ejemplo…

[ # 11 ] Comment desde marc [30 de Noviembre de 2006, 01:49]

Genial!! Ets el tiu més friki que he vist en molt temps, amb tot el carinyo!!

Marc.

[ # 12 ] Comment desde wiki [30 de Noviembre de 2006, 02:48]

Genial, de todas formas creo que hay un minúsculo problemilla (que no afecta en nada ni desmerece, ojo)
print “Totales: “.ceil(($x_fin-$x_ini)/$offset_x) * ceil(($y_ini-$y_fin)/$offset_y).”

No contaría ni las filas ni columnas 0. ¿Me equivoco?

[ # 13 ] Comment desde Xavi [30 de Noviembre de 2006, 09:08]

En principio no la iba a colgar… expongo el método por si alguien lo quiere hacer, pero la foto podría infringir la propiedad intelectual de blablabla… ya me entiendes ;)

Marc? Friki jo? jejejeje

wiki: No sé a qué te refieres. A la resta de $y_ini-$y_fin? Ésto es porque las coordenadas “Y” en el hemisferio superior van decrementando a medida que bajas. Si lo hago al revés me sale un número negativo ;) Si no te refieres a éso, a qué?

[ # 14 ] Comment desde Xavi [30 de Noviembre de 2006, 12:43]

En la notícia meneada, SergioZgz se ha currado una transformación del código a un script en VB6:

http://meneame.net/story/ortofoto-barcelona-resolucion-22k-x-20k-pixeles

Private Declare Function URLDownloadToFile Lib “urlmon” Alias _
“URLDownloadToFileA” (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long

Private Sub Command1_Click()

Dim Photo, X_ini As Long, X_fin As Long, Y_ini As Long, Y_fin As Long, Zoom As Long, Ample As Long, Alt As Long, Amplada_logo_icc As Long
Dim Offset_x As Long, Offset_y As Long, Coord_x As Long
Dim Y As Integer
Dim x As Integer

X_ini = 415867
X_fin = 436155
Y_ini = 4592290
Y_fin = 4572066
Zoom = 1
Ample = 1200
Alt = 1000

Amplada_logo_icc = 60
Offset_x = Ample - Amplada_logo_icc
Offset_y = Alt

Coord_x = X_ini + (x * Offset_x)

contador = 0
bytes_escritos = 0

MsgBox (CInt((Y_ini - Y_fin) / Offset_y) + 1) * (CInt((X_fin - X_ini) / Offset_x) + 1)

For Y = 0 To CInt((Y_ini - Y_fin) / Offset_y) + 1
coord_y = Y_ini - (Y * Offset_y)
For x = 0 To CInt((X_fin - X_ini) / Offset_x) + 1
Coord_x = X_ini + (x * Offset_x)
Photo = “shagrat.icc.es/lizardtech/iserv/getimage?cat=orto5m&item=iserv-catalog-index&cp=” & Coord_x & “,” & coord_y & “&lev=” & Zoom & “&wid=” & Ample & “&hei=” & Alt & “&oif=jpg&geo=true”
Text1.Text = Photo
errcode = URLDownloadToFile(0, Photo, App.Path & “” & “OrtoBarta_Col_” & x & “Fila” & Y & “.jpg”, 0, 0)
contador = contador + 1
Next x
Label1.Caption = contador
DoEvents
Next Y
End Sub

[ # 15 ] Comment desde wiki [30 de Noviembre de 2006, 12:51]

Xavi: Me refiero a que cuando presenta los resultados al final del script no cuenta ni la fila ni la columna 0, por ejemplo si hay de la columna 0 a la 7 hay 8 columnas (y no 7 como cuenta el software). Lo mismo para las filas. Eso si, el valor del contador es el correcto.

[ # 16 ] Comment desde wiki [30 de Noviembre de 2006, 12:56]

Xavi: Lo acabo de probar y te digo lo que me sale (lo esperado). La zona que he bajado numera de la columna 0 a la 7 y de la fila 0 a la 7 (8×8). El software cuenta solo como 7 filas y 7 columnas (y en total 49), cuando realmente son 8 filas, 8 columnas y 64 celdas. Eso sí, el valor del contador es correcto.

PD: Es una tontería, el script es genial.

[ # 17 ] Comment desde Xavi [30 de Noviembre de 2006, 12:59]

wiki: tienes toda la razón. Ahora entiendo lo que dices ;) Como se usa el mismo código que para sacar el límite de los For’s, y éstos empiezan desde 0, acaba saliendo 7 en vez de ocho. mmm… le falta un “+1″ en las “x” y las “y” en el print final… ;)

[ # 18 ] Comment desde wiki [30 de Noviembre de 2006, 01:18]

Xavi: lo dicho, era una soberana tontería que no desmerece el script (yo ya he capturado el de mi ciudad, Sabadell). Comentar el detalle del sleep (2), a algunos les puede parecer un detalle sin importancia, pero es la diferencia entre un hack responsable y elegante, y un script chupa-ancho de banda. Un 10.

[ # 19 ] Comment desde Xavi [30 de Noviembre de 2006, 01:41]

Muchas gracias ;) La verdad es que con tanta imagen a bajar me preocupaba los problemas de sobrecarga de su servidor. Por un lado, algunos servidores muestran una imagen estándar de “Sobrecarga” y tienes que repetir el script (o peor, bajarte imágenes sueltas). Por otro lado, ya que aprovecho una construcción de la URL, no es plan de tumbarles el servidor a base de peticiones. yo quería un póster de mi ciudad, no petarles el servidor ;) Me alegro mucho que te haya gustado ;)

[ # 20 ] Comment desde Sergio Gasca [30 de Noviembre de 2006, 02:34]

Cuando tenga la foto impresa y colgada hago una foto para que tengas un agradecimiento por tu curro ;)

[ # 21 ] Comment desde wiki [30 de Noviembre de 2006, 02:44]

Yo también :) La verdad es que podría haber hecho una simple batería con sus coordenadas pero ha decidido hacer algo modular para que cualquiera pueda utilizarlo. Ahora una pregunta… ¿A que resolución (dpi) vais a imprimir? (creo que tengo un cacao con ese asunto)

[ # 22 ] Comment desde Xavi [30 de Noviembre de 2006, 02:58]

Pues no lo sé… según tengo entendido 300dpi es el mínimo de calidad para el ojo humano. A mi me gustaría una anchura entre 1,5 y 2,5 metros… tengo que hacer cálculos…

[ # 23 ] Comment desde Sergio Gasca [30 de Noviembre de 2006, 03:19]

[ # 24 ] Comment desde xaumet [30 de Noviembre de 2006, 07:08]

jeje, que basto eres, creo que será mejor hacer un *.bat con lo siguiente:

@for %%i in (0,1,2,3,4,5,6,7,8,9) do @for %%j in (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19) do convert c:\ORTOBCN\OrtoBarta_Fila_%%i_Col_%%j.jpg -crop 1140×1000+0+0 +repage c:\orto2\OrtoBarta_Fila_%%i_Col_%%j.jpg

Ponerlo todo en un linea dentro de un archivo *.bat y al ejecutar hara lo mismo que la lista de Sergio, con la facilidad de que si teneis que modificar las carpetas, etc será mucho más facil.

[ # 25 ] Comment desde xaumet [30 de Noviembre de 2006, 07:17]

Me acabo de dar cuenta que al subir qualquier mensaje que contenga una “x” por aquí, luego se muestra como un carácter diferente.

Es decir… si yo escribo aquí:

1140×1000+0+0 (como es el caso en el post anterior)

y envío el formulario; luego, cuando vea el mensaje, si copio el texto y lo pego dentro de un archivo *.bat, las “x” que contenga me aparecen como un símbolo diferente al ejecutar el archivo.

Os aviso para que, cuando hagais el archivo *.bat, os acordeis de editar en el bloc de notas o el programa que utiliceis todas las “x” que veais (es decir, que las borreis y las volvais a escribir)

No se si me he expliado bien ;)

Ta lueg !

[ # 26 ] Comment desde Xavi [30 de Noviembre de 2006, 08:18]

Perfectamente… Este Wordpress… Tendré que pulirlo un poco más… :D ;)

He ido a editar el comentario pero allí printa la “x” normal. Debe ser algun filtro… m’cachis…

Gracias por avisar! Investigaré un poco. ;)

Ciao!

[ # 27 ] Comment desde Queteden [07 de Diciembre de 2006, 07:58]

y para pegar los catxos con http://www.stitchmaps.com/

Quete Den

[ # 28 ] Comment desde Xavi [07 de Diciembre de 2006, 09:46]

Hombre, el stitch maps abre las imágenes y el convert no… para un mapa inmenso como éste, mejor el convert que usará menos memoria…

[ # 31 ] Comment desde Queteden [10 de Diciembre de 2006, 10:29]

de todas formas esta parece la ruta mas larga y con peores resultados:
en http://www.icc.cat/web/content/ca/prof/cartografia/cartografia_geoserveis_newserver.html (la version español no tiene imagenes) explican como hacer peticiones WMS (mayor extension por imagen), y en http://www.icc.cat/vissir/ se puede descargar la imagen a plena resolucion para convertir en TIF (y luego pasar por gimp o photoshop y tener un poster guapo).

Quete Den

[ # 32 ] Comment desde Xavi [10 de Diciembre de 2006, 08:41]

La primera URL no la conocía. Me hubiera ahorrado bastante tiempo porque la en esta URL le puedes indicar un cuadro, mejor que un sólo punto… Pero no sé hasta qué resolución me dejarían bajar…

La segunda es la que utilicé. Abrí el código fuente de esa página y me dediqué a buscar algo utilizable. Lo que pasa es que el archivo que te bajas es un .sid, y encima te tienes que registrar… Dónde has visto lo de “plena resolución”?

Saludos (y queteden a ti ;) )

[ # 33 ] Comment desde Queteden [11 de Diciembre de 2006, 10:57]

lo he visto con estos ojitos :-D

Como registro solo te piden una dirección de correo donde mandar el link del archivo SID.
Y una vez descargado si miras las geopropiedades de la imagen verás que tiene mucha resolución (50 cm) y la puedes convertir a TIF (cuidado: 100 MB por imagen) con las herramientas de Lziardtech Mrsid Decode (http://www.lizardtech.es/download/dl_options.php?page=tools)

Quete Den

[ # 34 ] Comment desde Xavi [11 de Diciembre de 2006, 12:02]

Pues muchas gracias majete! Lo probaré en breve.

Salut!

[ # 35 ] Comment desde Queteden [12 de Diciembre de 2006, 11:19]

cuando lo hayas probado lo podrás comentar aquí ?
Sólo para confirmar que llevaba razón…..o no 0:-)

Quete Den

[ # 36 ] Comment desde Xavi [13 de Diciembre de 2006, 09:00]

Fale, sin problemas, sólo que hasta el finde poca cosa podré hacer… acaban de brownearme 8-|

Salut!

[ # 46 ] Pingback desde La Dragonera :: Informática, Motos, Lletres de Cançons :: » Segona actualització de PageRank de Gener [26 de Enero de 2007, 12:53]

[…] Per un altre costat, l’altra web que tinc i que ara estic potenciant especialment, Syntax Error, manté el PageRank de 4 que va rebre a la primera passada de Gener, però no s’acaba aquí… És el primer cop que aconsegueixo que un article en concret tingui PageRank propi: ara tenen un 3 els articles sobre la Ortofoto de Barcelona, la Galeria de Fotos Ràpida, el de les instruccions de Control de PHP… en definitiva, totes les que tenen com a mínim 1 mes d’antiguitat… Molt bé!! […]

[ # 9857 ] Pingback desde La Dragonera » SyntaxError.es cumple un año. Análisis de un blog técnico. :: Informatica, Motos, Lletres de Cançons [24 de Noviembre de 2007, 12:41]

[…] aprendergratis.com: 82 Una nota acerca de meneame.net Mucho se ha hablado del efecto meneame, y existe. El sólo hecho de aparecer en cola ya te aporta muchas visitas (ver los tres picos pronunciados del anterior gráfico). Y cabe mencionar las aportaciones de sus búsquedas y tags. Por último, emocionalmente hace mucho ver tu noticia y cómo se desenvuelve con sus votos y comentarios [para curiosear: el hilo de la Ortofoto de Barcelona]. La publicidad No se puede vivir de la publicidad en una página web. No, almenos que inviertas mucho tiempo y dinero. Mi caso es de llevar un blog técnico fuera de horas, así que doy gracias que todas mis webs en conjunto estan automantenidas. La publicidad de Google AdSense en SyntaxError no produce más de 1 dólar al mes. En cambio otros sistemas de publicidad como TextLinksAds producen una media de 10 euros. Por otro lado, debo agradecer el trabajo que está llevando a cabo Jose Manuel de SmallSquid.com, consiguiendo buenos tratos de sponsors decentes. Decididamente, hay un nicho en el sector de la gestión de publicidad… por muy internacional que sea internet, prefiero un contrato de un banner con Electrónica Juan que un link a The Error of Lingual Syntax Book de AdSense. Las puntuaciones y ránkings Este tema ha soltado muchos ríos de tinta digital… Que si el PageRank, que si listarte en directorios, que si algoritmos… La verdad es que una puntuación que “una entidad†da a tu web y encima va a ser usada para valorar el potencial de la misma en tratos publicitarios… suena muy goloso… Y preocupante! En los primeros pasos Syntax Error estuvo enlazada con LaDragonera para aprovecharse de algo de su PageRank 4. Al cabo de poco la integré dentro de la Red de Blogs de SmallSquid… Un par de semanas después de haber arrancado ya tenía un PageRank 4. Queda muy bién pero todos saben que es una puntuación fictícia… Alexa me puntuaba sobre el millón y pico y Technorati recuerdo el primer número por encima de 600 mil. Los avances fueron muy duros. No había mucho tráfico y las puntuaciones no mejoraban. Pero poco a poco, con paciencia, van saliendo artículos que la gente acepta y agradece y progresivamente van mejorando los ránkings. Alexa no tardó en situarme sobre el puesto 600 mil y Technorati en el 400 mil. A partir de la inclusión del Ultimate Tag Warrior los números mejoraron notablemente. Con Alexa estoy a punto de llegar al límite psicológico de 300 mil y en Technorati el de 200 mil. Hay quien no le da ningún peso a estos ránkings. Personalmente, lo tomo como una pista de la popularidad y el tráfico que genera SyntaxError. Sinceramente, si el objetivo no es demasiado publicitario, los ránkings no sirven de gran cosa. Miden tu producto en comparación con los demás, y como mucho alimentan el ego Conclusión Ha sido un año de ver crecer de cero un blog objetivo y técnico. He seguido las pistas y técnicas que he ido descubriendo y que he visto interesantes sin llegar a hacer trampas ni cosas ilegales. El producto final comparado con hace un año es gratificante, todo un premio para seguir trabajando con el proyecto e intentar mantener un mínimo de calidad, que creo que ha sido la clave de la buena evolución. Saludos! Posts Relacionats […]

Escribe un Comentario





Estadísticas