Espace disque et nombre de tuiles pour la couche mondiale

9

Je pense à tester la génération de tuiles d'une couche mondiale pour la cartographie Web.

Dans ce contexte, je veux savoir comment je peux calculer le nombre de tuiles (256x256 pour tilecache si je me souviens) dont j'ai besoin pour n niveaux en coordonnées WGS84.

Peut-être que j'utiliserai une solution composite avec des tuiles prégénérées et à la volée mais je dois savoir à la fin l'espace disque disponible si chaque tuile est générée et le nombre de fichiers qu'elle représentera.

Il y a deux objectifs, le temps que cela prendra et l'espace disque requis.

Toutes les informations sont les bienvenues

Éditer:

J'ai trouvé ce script pour calculer le nombre de tuiles à générer en fonction des niveaux de zoom et de l'étendue de vos données. Voir cet essentiel https://gist.github.com/1675606

ThomasG77
la source

Réponses:

5

J'ai fait une feuille de triche qui répertorie le nombre total de tuiles pour les niveaux de zoom donnés.

Il a deux tables. L'un montrant le nombre de niveaux de zoom nécessaires pour montrer les choses à une certaine échelle, à partir d'une tuile montrant des personnes.

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

L'autre montre le nombre de niveaux de zoom nécessaires si vous commencez avec une carte du monde et des niveaux de détail progressifs:

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
Pimin Konstantin Kefaloukos
la source
1

C'est une question très ancienne, mais il y a (au moins) deux mises en garde importantes, selon la tâche à accomplir.

  1. La tâche peut entraîner le rendu d'un (très) grand nombre de tuiles vides sans gestion spécifique du processus de création de tuiles.
  2. La taille sur le disque d'une pyramide de tuiles peut être beaucoup (plus de 100%) plus grande que prévu à partir de la somme de ses tailles de fichier de composant, en raison de la taille minimale de cluster de 4 Ko (aka taille du bloc) sur la plupart des stockages.

(2) est à peu près déjà expliqué, mais à titre d'exemple, j'ai une pyramide de tuiles où la taille totale du fichier est de 168 Mo, mais sa taille sur le disque est supérieure à 600 Mo. Il est donc beaucoup plus important d'avoir raison (1).

En ce qui concerne (1): demandez-vous si votre travail de «fichier mondial» ne concerne que les frontières des pays.

Toute tuile qui n'est pas une frontière peut être servie avec l'une des deux tuiles «alt» - une tuile «mer» (bleue) pour n'importe où hors d'un pays, ou une tuile «bloc» (remplissage) pour les tuiles qui sont entièrement dans un frontière nationale. Seules les tuiles qui incluent un segment de bordure doivent être rendues - le reste peut être `` par défaut ''.

Pourquoi est-ce? Parce que toutes les tuiles de bloc d'un type spécifique (saisissez (mer, terre) ou saisissez (mer, pays a, pays b, etc.)) seront identiques.

La tuile «bloc» peut être une couleur pour chaque pays, ou une couleur pour le monde entier, ou une tuile vierge (si vous superposez les contours du pays sur un arrière-plan).

Les tuiles «bloc» ne doivent être rendues qu'une seule fois (par exemple, 1 tuile 256x256, entièrement remplie de la couleur souhaitée).

Lorsque les tuiles sont en cours de création, vous pouvez tester

(a) si son «parent» - la tuile à un niveau de zoom en moins - existe; et

(b) s'il s'agit d'une tuile «bloc» (c'est-à-dire qu'elle est entièrement remplie d'une seule couleur).

Dans le cas (a) la tuile n'a pas besoin d'être rendue; si le parent n'existe pas c'est parce que le parent était entièrement une tuile bloc et a été supprimé.

Dans le cas (b) (où le parent existe donc la tuile doit être testée), s'il s'agit d'une tuile bloc, elle peut être supprimée en toute sécurité de la pyramide de tuiles. (Le test de bloc-tuile-ness est simplement basé sur la taille du fichier. Une tuile 256x256 entièrement d'une seule couleur est une taille très précise, et la probabilité qu'une tuile «bon contenu» soit de la même taille est nulle).

La suppression de ces tuiles pendant le processus de création ajoute un temps minimal à la boucle de rendu des tuiles, mais économise d'énormes quantités d'espace disque. L'alternative est de tout rendre, puis de rechercher récursivement dans la pyramide des tuiles de bloc et de les supprimer: cela prend plus de temps.

Une fois la pyramide construite, la procédure d'appel de tuile peut par défaut être la tuile `` bloc '' si elle cherche des tuiles / z / x / y et obtient un 404.

Pour voir pourquoi c'est le cas, pensez à rendre un zoom 256x256 = 1 où le quadrant supérieur est entièrement vide. Vous savez avec certitude que les 4 tuiles à zoom = 2 qui couvrent la même zone seront également vides. De même, les 16 tuiles à zoom = 3 et ainsi de suite.

Ainsi, à tout moment pendant le processus de mosaïque où la mosaïque est une couleur de bloc (ou est vide), toutes les heures à des niveaux de zoom plus élevés peuvent être ignorées.

Cela permet d'économiser de grandes quantités de stockage et beaucoup de temps dans le processus de carrelage.

Une mise en garde à ces mises en garde: un travail de tuilage plus complexe basculera sur différentes couches à différents niveaux de zoom. Si tel est le cas, il faut veiller à ce que le test «parent» ne soit pas effectué lorsque le niveau de zoom est celui où un nouveau calque est inclus dans le jeu de rendu.

GT.
la source