Espacio en disco y número de mosaicos para la capa mundial


9

Estoy pensando en probar la generación de mosaicos de una capa mundial para mapeo web.

En este contexto, quiero saber cómo puedo calcular el número de mosaicos (256x256 para tilecache, si lo recuerdo). Necesitaré n niveles en las coordenadas WGS84.

Tal vez usaré una solución compuesta con mosaicos pregenerados y sobre la marcha, pero tengo que saber al final el espacio disponible en disco si se generan cada mosaico y la cantidad de archivos que representará.

Hay dos objetivos, el tiempo que tomará y el espacio en disco necesario.

Cualquier información es bienvenida

Editar:

Encontré este script para calcular la cantidad de mosaicos a generar según los niveles de zoom y la extensión de sus datos. Ver esta esencia https://gist.github.com/1675606


Respuestas:



5

Hice una hoja de trucos que enumera el número total de mosaicos para niveles de zoom dados.

Tiene dos mesas. Uno que muestra la cantidad de niveles de zoom necesarios para mostrar cosas a una determinada escala, comenzando desde un mosaico que muestra a las personas.

level 1: 1 # Person
level 2: 5 # Car
level 3: 21 # House building
level 4: 85 # Square
level 5: 341 # Small neighbourhood
level 6: 1,365 # Football stadium
level 7: 5,461 # Small farm
level 8: 21,845 # Central park New York
level 9: 87,381 # Entire airport
level 10: 349,525 # Small city (Copenhagen)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Large city (London)
level 13: 22,369,621 # Medium Island (Mallorca)
level 14: 89,478,485 # Large Island (Sicily)
level 15: 357,913,941 # Small country (Denmark, Estonia, Taiwan)
level 16: 1,431,655,765 # Medium Country (Korea, Greece)
level 17: 5,726,623,061 # Region (Southern Europe, Arabian Peninsula)
level 18: 22,906,492,245 # Small continent or large country (China)
level 19: 91,625,968,981 # Medium continent (Africa) or huge country (Russia) 
level 20: 366,503,875,925 # Asia
level 21: 1,466,015,503,701 # The World

El otro muestra la cantidad de niveles de zoom necesarios si se comienza con un mapa mundial y niveles de detalle progresivos:

level 1: 1 # The World
level 2: 5 # Large contenents
level 3: 21 # Medium continents, huge countries
level 4: 85 # Small continents, large countries
level 5: 341 # Region (Southern Europe, Arabian Peninsula)
level 6: 1,365 # Medium Country (Korea, Greece)
level 7: 5,461 # Small country (Denmark, Estonia, Taiwan)
level 8: 21,845 # Large Island (Sicily)
level 9: 87,381 # Medium Island (Mallorca)
level 10: 349,525 # Large city (London)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Small city (Copenhagen)
level 13: 22,369,621 # Entire airport
level 14: 89,478,485 # Central park New York
level 15: 357,913,941 # Small farm
level 16: 1,431,655,765 # Football stadium
level 17: 5,726,623,061 # Small neighbourhood
level 18: 22,906,492,245 # Square
level 19: 91,625,968,981 # House building 
level 20: 366,503,875,925 # Car
level 21: 1,466,015,503,701 # Person

1

Esta es una pregunta muy antigua, pero hay (al menos) dos advertencias importantes, dependiendo de la tarea en cuestión.

  1. La tarea puede dar como resultado una (muy) gran cantidad de mosaicos vacíos sin una administración específica del proceso de creación de mosaicos.
  2. El tamaño en el disco de una pirámide de mosaico puede ser mucho (más del 100%) más grande de lo esperado de la suma de los tamaños de archivo de sus componentes, debido al tamaño mínimo de clúster de 4KB (también conocido como tamaño de bloque) en la mayoría del almacenamiento.

(2) ya se ha explicado, pero como ejemplo tengo una pirámide de mosaicos donde el tamaño total del archivo es de 168 MB, pero su tamaño en el disco es superior a 600 MB. Hace que sea mucho más importante acertar (1).

En cuanto a (1): considere si su trabajo de 'archivo mundial' involucra solo límites de países.

Cualquier mosaico que no sea un límite puede servirse con uno de dos mosaicos 'alt': un mosaico 'mar' (azul) para cualquier lugar que no esté dentro de un país, o un mosaico 'bloque' (relleno) para mosaicos que están completamente dentro de un frontera nacional. Solo se deben procesar los mosaicos que incluyen un segmento de borde; el resto se puede 'omitir'.

¿Por qué es esto? Porque todos los bloques de un tipo específico (tipo (mar, tierra) o tipo (mar, país a, país b, etc.) serán idénticos.

El mosaico 'bloque' podría ser de un color para cada país, o un color para todo el mundo, o un mosaico en blanco (si está superponiendo los contornos del país sobre un fondo).

Los mosaicos de 'bloque' solo necesitan renderizarse una vez (por ejemplo, 1 mosaico de 256x256, completamente lleno con el color deseado).

Cuando se crean los mosaicos, puede probar

(a) si su 'padre' - el mosaico en un nivel de zoom menos - existe; y

(b) si es un mosaico de 'bloque' (es decir, está completamente lleno de un color).

En el caso (a) el mosaico no necesita ser renderizado; si el padre no existe es porque el padre era completamente un bloque de mosaico y fue eliminado.

En el caso (b) (donde el padre existe, por lo que el mosaico necesita ser probado), si se trata de un mosaico de bloques, entonces se puede eliminar de forma segura de la pirámide de mosaicos. (La prueba de block-tile-ness se basa simplemente en el tamaño del archivo. Un mosaico de 256x256 enteramente de un color es un tamaño muy preciso, y la probabilidad de que un mosaico de 'contenido adecuado' sea del mismo tamaño es cero).

Eliminar estos mosaicos durante el proceso de creación agrega un tiempo mínimo al ciclo de representación de mosaicos, pero ahorra grandes cantidades de espacio en disco. La alternativa es renderizar todo y luego buscar recursivamente la pirámide para bloques de bloques y eliminarlos: esto lleva más tiempo.

Una vez que se construye la pirámide, el procedimiento de llamada de mosaico puede ser predeterminado al mosaico de 'bloque' si va a buscar mosaicos / z / x / y y obtiene un 404.

Para ver por qué este es el caso, considere renderizar un zoom de 256x256 = 1 donde el cuadrante superior está completamente vacío. Usted sabe con certeza que las 4 fichas con zoom = 2 que cubren la misma área también estarán vacías. Del mismo modo, las 16 fichas con zoom = 3 y así sucesivamente.

Por lo tanto, en cualquier momento durante el proceso de mosaico donde el mosaico es un color de bloque (o está vacío), se pueden ignorar todos los tiempos a niveles más altos de zoom.

Esto ahorra grandes cantidades de almacenamiento y mucho tiempo en el proceso de mosaico.

Una advertencia a estas advertencias: un trabajo de mosaico más complejo activará diferentes capas a diferentes niveles de zoom. Si este es el caso, se debe tener mucho cuidado para garantizar que la prueba 'principal' no se realice cuando el nivel de zoom es uno donde se incluye una nueva capa en el conjunto de renderizado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.