2016-12-10 2 views
1

У меня есть файл Excel с пиксельными значениями, и я пытаюсь преобразовать его в TIFF или растровый набор данных, который будет открыт Arcgis. Я искал здесь похожие проблемы, и я не мог найти их. Я попробовал что-то, но это дало ошибку. Файл Excel, полученный от DEM, включает 2098 rows x 2851 columns без заголовка.Преобразование файла Excel в TIFF

Вот мой код:

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") 

Вот сообщение об ошибке:

TypeError: Cannot handle this data type

Файл Excel выглядит следующим образом:

-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

Просто угадывание, но я подозреваю, что вы могли бы иметь больше удачи, если вы экспортировали файл в формате CSV из Excel. –

+0

TIFF не является автоматически GeoTIFF. Если вы используете библиотеку GDAL, вы можете установить размер проекции, размер ячейки и т. Д. – RemcoGerlich

ответ

2

Ваш код было несколько проблем:

  1. Модуль Image не был импортирован из PIL.
  2. Тип данных df2 был int64, а не int32.
  3. Требование к Image.save() было неправильным (имя функции должно быть строчным).

Следующий фрагмент кода фиксирует все эти вопросы и должны получить работу:

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

Большое спасибо. Я новый пользователь и я счастлив узнать мою ошибку здесь. –

Смежные вопросы