2016-12-10 3 views
1

Ich habe eine Excel-Datei mit Pixelwerten und ich versuche, es in TIFF oder Raster-Dataset zu konvertieren, um mit Arcgis geöffnet werden. Ich habe hier nach ähnlichen Problemen gesucht und konnte keine finden. Ich habe etwas versucht, aber es gab einen Fehler. Excel-Datei erhalten von DEM enthalten 2098 rows x 2851 columns ohne Überschrift.Konvertieren einer Excel in TIFF-Datei

Hier ist mein Code:

import pandas as pd 
import Image as im  

file = r'C:/Users/owrasa/PycharmProjects/den/demrep2.xlsx' 
size = 2098, 2851 
df = pd.read_excel(file, header=0) 
df2 = pd.np.array(df) 
imarray = im.fromarray(df2) 
imsave = im.SAVE(imarray, "TIFF") 

Hier ist die Fehlermeldung:

TypeError: Cannot handle this data type

Die Excel-Datei wie folgt aussieht:

-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60  60  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60  60  60  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60  60  60  60  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60  60  60  60  60  60 
-32767 -32767 -32767 -32767 -32767 -32767 -32767  60  60  60  60  60  60  60  60 
-32767 -32767 -32767 -32767 -32767 -32767  60  60  60  60  60  60  60  60  60 
-32767 -32767 -32767 -32767  60  60  60  60  60  60  60  60  60  60  60 
-32767 -32767 -32767  60  60  60  60  60  60  60  60  60  60  60  60 
-32767 -32767  59  60  60  60  60  60  60  60  60  60  60  60  60 
-32767  59  59  59  59  60  60  60  60  60  60  60  60  60  60 
    59  59  59  59  59  59  59  59  59  60  60  60  59  60  60 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
    59  59  59  59  59  59  59  59  59  59  59  59  59  59  59 
+0

nur raten, aber ich vermute, dass Sie vielleicht mehr Glück haben, wenn Sie die Datei als CSV aus Excel exportiert. –

+0

Ein TIFF ist nicht automatisch ein GeoTIFF. Wenn Sie die GDAL-Bibliothek verwenden, können Sie eine Projektion, Zellengröße usw. einstellen. – RemcoGerlich

Antwort

2

Ihr Code mehrere Probleme hatte:

  1. Das Modul Image wurde nicht von PIL importiert.
  2. Der Datentyp df2 war int64 anstatt int32.
  3. Der Aufruf an Image.save() war falsch (der Funktionsname muss in Kleinbuchstaben geschrieben sein).

Der folgende Ausschnitt behebt alle diese Probleme und sollte den Job erledigen:

import pandas as pd 
import numpy as np 
import PIL.Image as im 

file = r'C:/Users/owrasa/PycharmProjects/den/demrep2.xlsx' 
df = pd.read_excel(file, header=0) 
df2 = pd.np.array(df).astype(np.int32) 
imarray = im.fromarray(df2) 
imarray.save(r'C:/Users/owrasa/PycharmProjects/den/demrep2.tif') 
+0

Vielen Dank. Ich bin ein neuer Benutzer und ich bin glücklich, meinen Fehler hier zu erfahren. –

Verwandte Themen