#1 Tue 07 October 2025 12:11
- Yan
- Juste Inscrit !
- Date d'inscription: 7 Oct 2025
- Messages: 1
QGIS: Fusion de plusieurs Raster
Bonjour
Lorsque je fusionne des rasters à l'aide d'un script python le raster de sortie est systématiquement en int alors que je le voudrais en float32 avez-vous déjà rencontré ce problème et comment le régler ?
Ma version de Gdal est la 3.11.3 et mes données de départ son elle en Float32
Voici le script :
from qgis.core import QgsProject, QgsRasterLayer
import processing
import os
project = QgsProject.instance()
raster_layers = [layer for layer in project.mapLayers().values() if isinstance(layer, QgsRasterLayer)]
raster_paths = [layer.source() for layer in raster_layers]
print("Couches raster détectées :", [layer.name() for layer in raster_layers])
output_dir = os.path.expanduser("~/Documents") #
Hors ligne
#2 Wed 08 October 2025 15:35
- LPlante
- Participant occasionnel
- Date d'inscription: 17 Nov 2021
- Messages: 48
Re: QGIS: Fusion de plusieurs Raster
Bonjour, D'après la doc gdal, la format de sortie est parametrable avec -ot <type> Mais avec une codification qui n'est pas precisé, curieux ..
Force the output image bands to have a specific data type supported by the driver, which may be one of the following: Byte, Int8, UInt16, Int16, UInt32, Int32, UInt64, Int64, Float32, Float64, CInt16, CInt32, CFloat32 or CFloat64.
Le chat corrigerait ton script comme ca , tu retrouves bien le data_type en parametre
from qgis.core import QgsProject, QgsRasterLayer
import processing
import os
project = QgsProject.instance()
# Récupération des couches raster
raster_layers = [layer for layer in project.mapLayers().values() if isinstance(layer, QgsRasterLayer)]
raster_paths = [layer.source() for layer in raster_layers]
print("Couches raster détectées :", [layer.name() for layer in raster_layers])
output_dir = os.path.expanduser("~/Documents")
output_path = os.path.join(output_dir, "raster_fusion.tif")
# Fusion des rasters avec type de données forcé
processing.run(
"gdal:merge",
{
"INPUT": raster_paths,
"PCT": False,
"SEPARATE": False,
"NODATA_INPUT": None,
"NODATA_OUTPUT": None,
"OPTIONS": "",
"DATA_TYPE": 5, # ⚠️ 5 = Float32
"OUTPUT": output_path
}
)
print("Raster fusionné créé :", output_path)
Pour info, la codif du type
| Code | Type GDAL | Description |
| ---- | --------- | -------------------------- |
| 0 | Byte | 8 bits entiers non signés |
| 1 | Int16 | 16 bits entiers signés |
| 2 | UInt16 | 16 bits entiers non signés |
| 3 | Int32 | 32 bits entiers signés |
| 4 | UInt32 | 32 bits entiers non signés |
| 5 | Float32 | 32 bits flottants |
| 6 | Float64 | 64 bits flottants |
Hors ligne