ASCII To Raster

Hallo zusammen,

ich habe eine .asc-Datei und würde diese gerne in ein Raster umwandeln. Beim Laden in das Skript wird eine Schema.ini erzeugt, in der 'Format=csvdelimited' steht. Die Werte in der Datei haben als Dezimalzeichen einen Punkt(.) und sind durch Leerzeichen getrennt.

Die Ausführung des Skripts misslingt mit folgender Fehlermeldung:
'An error was encountered while executing ASCIIToRaster.
("esriGeoAnalyst.GridEngine") Fehler beim Ausführen des Rasterausdrucks
Fehler beim Ausführen von (ASCIIToRaster_1).'

Stimmt die Schema.ini nicht? Und wenn ja, wie muss ich diese abändern?

Dank & Gruß
Jens
Die ASCII-Datei muss Header-Informationen mit einer Reihe von Schlüsselwörtern und Zellwerten in zeilenweise aufsteigender Reihenfolge enthalten. Das Dateiformat sieht wie folgt aus:

<NCOLS xxx>
<NROWS xxx>
<XLLCENTER xxx | XLLCORNER xxx>
<YLLCENTER xxx | YLLCORNER xxx>
<CELLSIZE xxx>
{NODATA_VALUE xxx}
row 1
row 2
.
.
.
row n
Hierbei steht "xxx" für eine Zahl. Das Schlüsselwort "nodata-value" ist optional und standardmäßig auf "-9999" eingestellt. Zeile 1 der Daten befindet sich oben in dem Grid, Zeile 2 direkt unter Zeile 1, etc.

LLCENTER verwendet den Mittelpunkt der Zelle ganz unten links als Position für das Raster. LLCORNER verwendet die untere linke Ecke der Zelle ganz unten links. Beachten Sie, dass das Werkzeug Raster zu ASCII ausschließlich LLCORNER-ASCII-Dateien generiert. Beispiel:


ncols 480
nrows 450
xllcorner 378923
yllcorner 4072345
cellsize 30
nodata_value -32768
43 2 45 7 3 56 2 5 23 65 34 6 32 54 57 34 2 2 54 6
35 45 65 34 2 6 78 4 2 6 89 3 2 7 45 23 5 8 4 1 62 ...

Der Wert "nodata_value" wird in der ASCII-Datei den Zellen zugewiesen, deren wahrer Wert unbekannt ist. Im Raster wird den Zellen NoData zugewiesen.

Zellenwerte müssen durch Leerzeichen begrenzt sein. Am Ende jeder Zeile in dem Grid müssen keine Absatzzeichen gesetzt werden. Anhand der Spalten in der Kopfzeile wird festgelegt, wann eine neue Zeile beginnt.

Die Anzahl der Zellenwerte muss der Anzahl der Zeilen mal der Anzahl der Spalten entsprechen. Ist dies nicht der Fall, wird eine Fehlermeldung ausgegeben

Gruß P
Das war für mich nicht sehr erhellend bzw. bekannt.
Die Frage, die ich mir (oder hier) stelle, entspricht der Eintrag in der Schema.ini der Trennung durch Leerzeichen bzw. Punkt als Dezimalzeichen? Wird in der Schema.ini schon unterschieden, ob die Zahlenwerte FLOAT oder INTEGER sind/verwendet werden?
Sagt die Fehlermeldung etwas bestimmtes aus, oder ist sie aussagefrei?

Gruß
Jens
Hallo Jens,

CSVDelimited heißt kommagetrennt. Die Schema.ini wird von AG automatisch erzeugt und zwar für alle TXT-, ASC-, oder CSV-Dateien als CSVDelimited, für Dateien mit TAB-Endung als TABDelimited. Du kannst die Schema.ini aber entsprechend deiner Daten ändern:

[dein.asc]
Format=Delimited( )
DecimalSymbol=.

oder du ersetzt die Leerzeichen in der Datei mit Kommas. Für die Schema.ini oben sollte deine Datei etwa so aussehen:

X Y Z
1.1 2.2 3.3
4.4 5.5 6.6
7.7 8.8 9.9
...

Eine schema.ini kann auch noch weitere Parameter enthalten, z.B.:

[dein.asc]
ColNameHeader=False
Format=Delimited( )
DecimalSymbol=.
MaxScanRows=10
CharacterSet=1252
Col1=X Float
Col2=Y Float
Col3=Z Float

Näheres zur Schema.ini unter Schema.ini File (Microsoft),

Grüße, Mx.
Hallo Maxilla

[mein.asc]
Format=Delimited( )
DecimalSymbol=.
dieses hatte ich mir auch schon zusammengedichtet, leider bleibt die Fehlermeldung. Anzahl der Zeilen und Reihen habe ich auch schon überprüft. :-(
Entweder hakt mein ArcGIS (9.1 mit SP2 und deutschem Supplement) oder mit der Datei stimmt etwas nicht.

Gruß
Jens
Wie sieht die Datei denn aus? Kopier doch mal'n Stückl hier rein...

Wenn du das Tool 'ASCII to Raster' benutzen willst, muss deine Datei ja wirklich so aussehen wie von P. beschrieben. Wenn die Datei aber so aussieht, wie von mir beschrieben, musst du 'Tools | Add XY Data' benutzen...
ncols 1600
nrows 1490
xllcenter 2533305.000
yllcenter 5682205.000
cellsize 10.000
nodata_value -9999.000
17.590 17.590 17.596 17.596 17.596 17.580 17.580 17.580 usw.

Sieht aus meiner Sicht aus, wie es sollte. Wie gesagt, Spalten und Reihen stimmen überein.
Asciigrid von Aris zeigt es an, aber eine Umwandlung in ein Rasterformat schlägt fehl.
Ersetzt mit einem Text Editor die Punkte in Kommas. Es müsste dann klappen!
Unglaublich, es funktioniert. Wieso muss ich die Punkte ersetzen, wenn ich in der schema.ini mit 'DecimalSymbol=.' den Punkt festsetzen kann?

Gruß
Jens
Weiss nich!
Aber merk Dir einfach "Ascii to Raster" ==> Komma! (Zumindest in Deutschland)
Aha, das ist interessant. 'Ascii to Raster' übernimmt einfach den Dezimaltrenner, der in den System-Ländereinstellungen angegeben ist...

Bei mir funktioniert 'Ascii to Raster' nämlich nur mit Punkt als Trenner. Hab ich mir bislang keine Gedanken drum gemacht. Dass das aber daran liegt, dass ich den Punkt als Dezimaltrenner in den Ländereinstellungen eingestellt habe weil ich meist mit dem Original-ArcGis arbeiten muss, da wäre ich nun nicht drauf gekommen...
Und das löst gleichzeitig noch einige andere Probleme. Danke für den Hinweis, Obi.
Freut mich geholfen zu haben!
Ja, schönen Dank auch.

Bedeutet das, die Einträge in der Schema.ini sind irrelevant?

Gruß
Jens
Beim Tool "Ascii to Raster" offensichtlich.
Im Falle der anderen Formatierung
(RW, HW, ZValue
3546667, 5467359, 0815)

natürlich nicht!