7

PythonでGDALを使用して.tifファイルを作成しようとしています。ファイルを作成していますが、ファイルを参照するたびに「プレビューは利用できません」と表示されます。現在、入力ファイルのコピーを作成するために取得しようとしています。これが私のコードです:

gdal.AllRegister()

inDs = gdal.Open("C:\\Documents and Settings\\patrick\\Desktop\\tiff elevation\\EBK1KM\\color_a2.tif")
if inDs is None:
  print 'Could not open image file'
  sys.exit(1)
else:
    print "successfully opened input file"

rows = inDs.RasterYSize
cols = inDs.RasterXSize
myband = inDs.GetRasterBand(1)
elev_data = myband.ReadAsArray(0,0,cols,rows)
driver = inDs.GetDriver()
outDs = driver.Create('C:\\Documents and Settings\\patrick\\Desktop\\tiff elevation\\EBK1KM\\new.tif', cols, rows, 1, GDT_Int32)

if outDs is None:
    print "couldn't open output file"
    sys.exit(1)

outBand = outDs.GetRasterBand(1)
outData = numpy.zeros((rows,cols),numpy.int16)
outBand.WriteArray(elev_data)
outBand.FlushCache()
outBand.SetNoDataValue(-99)
outDs.SetGeoTransform(inDs.GetGeoTransform())
outDs.SetProjection(inDs.GetProjection())
del outData

============================更新===================== ====================いくつかの発見がありました...統計的正規化を使用して、ある数値形式から別の数値形式に変換する方法を研究しました。入力データを処理し、次のアルゴリズムを使用してuint8に変換しました。

std = elev_data.std() #standard dev
avg = elev_data.mean()
arr = numpy.zeros((rows,cols),numpy.uint8)
for _i_ in _range_(_rows_):
    for _j_ in _range_(_cols_):
        arr[i,j] = (((out_elev[i,j]-avg)/std)*127)+128 #normalization formula
        #this puts all vals in range 1 to 255 (uint8)
dr = gdal.GetDriverByName("GTiff")
outDs = dr.Create("name",cols,rows,3,GDT_Byte) 
#creates and RGB file, accepts uint8 for input
outDs.GetRasterBand(1).WriteArray(arr) #write the output as shades of red
#this writes out a format viewable by microsoft products

私がコピーしたかった主な理由は、私が読み取り可能であることを証明し、計算に基づいて更新されたデータを書き出すことでした。

1色の色合いではなく、カラーランプを使用して出力データを書き出す方法は何でしょうか。

4

2 に答える 2

2

TIFF ファイルを画像としてプレビューしようとすると、Windows 画像と FAX ビューア アプリケーションから「プレビューは利用できません」というメッセージが表示されるということですか? (下のスクリーンショットを参照してください。)

プレビュー可能なスクリーンショットはありません

TIFF にはさまざまな種類があり、すべてが同じというわけではないことに注意してください。特に、Windows 画像と FAX ビューアは、すべての種類の TIFF をサポートしているわけではありません。

Microsoft ナレッジベースの記事You Cannot View TIFF Images Using Windows Picture and Fax Viewerには、次のような記述があります。

Windows XP の Windows 画像と FAX ビューアは、Windows Graphics Device Interface (GDI+) を使用します。GDI+ は、FAX 用の多くの標準圧縮アルゴリズムをサポートしています。ただし、頻繁に使用されない一部のエンコード方式とは互換性がない場合があります。

ラスター データ (GeoTIFF ラスターを含む) を表示するためのツールを探している場合は、無料で入手できるOpenEVをお勧めします。これはFWToolsパッケージの一部として入手できます。

于 2011-07-15T18:12:31.703 に答える
1

私が気づいたことのいくつか:

  1. ソース データセットの 1 つのバンドのみをコピーします。カラー イメージの場合は、3 つのバンドまたはカラー マップがある場合があります。カラーマップがある場合は、それもコピーする必要があります。3 バンドまたは 4 バンドの場合は、すべてのデータをコピーする必要があります。
  2. CreateCopy()探していることを行うためのより簡単な方法です。
于 2011-07-29T19:55:11.190 に答える