Je travaille sur une application qui doit créer des tuiles (jpeg) à partir d'un ensemble de données raster donné. Mon inclination initiale était d'utiliser gdal2tiles.py, mais ses performances semblent pouvoir être améliorées.
Cela m'amène à poser la question suivante: quel serait le moyen le plus rapide de couper une «image en mosaïque» d'un jeu de données raster à l'aide de GDAL? Et par «image en mosaïque», je veux dire juste un simple jpeg ou png.
Dans mon prototype, j'utilise les liaisons MapScript Serveur C # pour faire le travail. C'est-à-dire que je crée un objet de carte, parcourt toutes les limites de tuiles que je dois couper, définit l'étendue des objets de carte, puis enregistre l'image résultante. Les performances de cette approche sont nettement meilleures que celles de gdal2tiles.py, mais je me demande si j'utilise directement GDAL si je ne peux pas le rendre encore plus rapide. Quelqu'un peut-il suggérer un flux de travail similaire avec les méthodes GDAL?
EDIT: Après quelques recherches supplémentaires aujourd'hui, j'ai trouvé la réponse juste en face de moi. Si vous avez téléchargé FWTools, les dossiers csharp \ apps contiennent un certain nombre de classes pour illustrer les liaisons C # GDAL. Dans mon cas, les GDALRead.cs et GDALReadDirect.cs étaient ce que je cherchais.
Réponses:
Quelqu'un a passé du temps à faire en sorte que gdal2tiles.py utilise plusieurs processeurs: gdal parallèle
Je l'ai utilisé et cela semble fonctionner. Il utilise avec succès les 4 cœurs à 100% et réduit le temps total pour créer les carreaux au 1 / 4e du temps d'origine.
la source
Avez-vous essayé cela? http://www.klokan.cz/projects/gdal2tiles/
la source
Dans ma société, nous avons écrit des scripts python personnalisés, en utilisant gdal_warp (c'était avant que nous sachions que gdal2tiles existait). Il était plus rapide que g2t, surtout lorsque nous l'avons réécrit pour qu'il s'exécute sur de nombreux cœurs (en utilisant python threadpool). Il a également produit des tuiles de meilleure qualité (l'interpolation lanczos sur g2t semble mal fonctionner, dans gdal_warp, les tuiles résultantes étaient étonnantes).
Il faut un peu d'effort pour écrire les scripts, vous devez calculer manuellement les boîtes de délimitation résultantes, configurer certaines options pour les projections, etc.
la source
MapCruncher
http://research.microsoft.com/en-us/um/redmond/projects/mapcruncher/
fonctionne bien et peut être utilisé pour découper des images
la source
Une autre option utilise TileCache (WMS-C). Bien que je n'aie jamais utilisé gdal2tiles, je ne m'attendrais pas à ce que TileCache apporte de meilleures performances.
Quoi qu'il en soit, les stratégies suivantes peuvent accélérer le pavage:
la source
Le script gdal_tiler.py de http://code.google.com/p/tilers-tools pourrait être une option utile.
Habituellement, il présente de très bonnes performances par rapport à gdal2tiles.py et il devrait fonctionner avec n'importe quelle source GDAL (ensemble de données), en particulier, il ne nécessite pas de conversion d'un ensemble de données source en RVB.
la source
Gdal2tiles_parallel https://gitlab.com/GitLabRGI/erdc/geopackage-python Si le géopackage ou MBTILES ne nécessite aucun python qui est fait nativement avec gdal_translate.EXE. vous devez également exécuter gdaladdo pour ajouter plusieurs niveaux de zoom. j'utilise également qtiles / qmetatiles pour qgis desktop. Toujours rien ne peut rivaliser avec le logiciel commercial maptiler pro. Si vous avez besoin d'un dossier de tuiles, convertissez simplement MBTILES en TMS OU XYZ avec mbUtil python
la source