J'ai plusieurs gros rasters au format GeoTIFF.Comment écrire de gros rasters dans une table ou une base de données en utilisant R?
Les dimensions sont 34565, 116908, 4 040 925 020 (nrow, ncol, Ncell) de chaque (recouvrement parfait), les valeurs sont de différents types: entier, flotteur ...
Comment puis-je écrire ces raster valeurs dans une table ou une base de données en utilisant R (ou un autre logiciel), donc plus tard je peux l'analyser en utilisant Spark, python ou R?
je vais devoir traiter plusieurs rasters, donc la table idéalement sortie ressembler à:
row column raster1.value raster2.value raster3.value
1 1 56 76 100
1 2 18 45 89
... ... ... ... ...
34656 116908 23 39 43
j'évaluer dans le calcul de l'installation avec 32 cœurs et 128 Go de RAM. Ainsi, le calcul parallèle est également possible.
Je serai très reconnaissant pour votre aide!
Merci pour votre réponse! _quelqu'un a supprimé son commentaire_ J'ai besoin que les données soient dans un format de table, parce que ** (1) ** Je veux utiliser le paquetage data.table de R avec ses propriétés 'pass-by-reference' (ou, peut-être, même Spark) ; ** (2) ** J'ai besoin de sous-ensembles d'enregistrements basés sur une clé (indexation), ce que je ne peux pas faire efficacement, si les données sont dans un format raster; ** (3) ** travailler avec des tables, des matrices, des bases de données est beaucoup plus rapide qu'avec des rasters. ** A propos du format long-large. ** Je préfère le format large car je veux effectuer un calcul pour chaque cellule en utilisant des valeurs de tous les rasters (par exemple, raster1.value + raster2.value/raster3.value). – enya
J'ai supprimé le commentaire après avoir relu votre question: je pense que c'est clair comme ça. Juste une question, vos rasters sont-ils uniques ou multi-bandes ?, sont-ils aussi nommés de telle sorte que leur ordre peut être déterminé à partir du nom seul? Bravo – shekeine
Vos opérations seraient beaucoup plus efficaces si elles étaient effectuées dans le paquet raster. Je comprends votre besoin d'indexation, mais il y a aussi la possibilité de le faire dans raster (par exemple., X [i, j] où i = row, j = col). La façon dont vous envisagez les données est très inefficace et produirait un tableau absurdement grand. Lorsque vous entrez dans les données, les avantages d'utiliser quelque chose comme data.table sont perdus. En outre, vous pouvez avoir beaucoup de RAM, mais vous devez toujours tenir compte de l'exploitation sur les données et ne pas simplement le persister. –