Original User: Sotsch
Hallo liebe Leute,
Ich muss wissen wie Ich mein ASCII File in ArcGIS �?berführen kann.
--> ASCII to Raster klappt aber mir verreist es die Dimesnsionen. siehe Unten
Ich habe die Windgeschwindigkeites-Daten aus den NetCDF-Dateien von 2001 bis 2010 mithilfe von Matlab als 10 Jahres- Mittelwert gebildet.
Um diese Rasterdaten einzubinden in ein GIS-System ist es notwendig diese in ein ASCII-File einzufügen.
ArcGIS kann zwar auch NetCDF-Dateien einbinden, aber nur ein delta-t (t = zeit layer)(1ne Matrize von 187x148 von 52600) , wenn ich versuche die Zeitebene miteinzubinden Schafft es ArcGIS nicht. [soweit meine versuche]
Also habe ich die NetCDF-Daten mit Matlab ausgelesen und einen Zeitlichen 10 Jahres Mittelwert gebildet, und das in ein 2-D Raster überführt.
--> siehe unten das Matlab Skript
Wenn ich jetzt mein ASCII-Raster ins Gis System einbinde habe ich folgende Probleme:
1) Das mir in einem Standart-Europa Koordinaten Bezugs-System die ecken weglaufen also x,y unten links (-23,15°|32,77°) oben Links (-65,95°|6361°)
die Gesamtausdehnung von 65,3844° (links unten zu rechts unten) stimmt aber oben rechts in der Karte habe ich (-112,7°|10933,8°),... ist das eine etwas unrealistische Ausdehnung.
2) Wenn ich eine Anpassung annehme damit die Europakarte den Längen und Breitengraden folge, verzerren die Zellen
d.h. ArcGIS nimmt die Ausdehnung über den unteren linken punkt + die Rechteckigen Kacheln (Quadratisch) vor.
-das hat aber zur Folge, wenn die Europa-Karte den Längen und Breitengrade folgt das entweder die Ost-West Ausrichtung stimmt (über die CellSize Grö�?e definiert) oder die Nord-Süd Ausrichtung.
Zudem ich nicht mal sicher bin ob das gewählte Koordinatenbezugssystem richtig ist, da die Standart-KBS nicht funktionieren also WGS 1984.prj, der UTM verbietet sich von selbst da Europ zu breit ist dafür sowie,
die Projectet-KBS wie "Europe Albers Equal Area Conic.prj" ergibt nur Müll,
3) Wenn ich versuche das gleich ins Gis System einzubinden ohne Matlab weis ich nicht genau wie die Karte sich von den Dimensionen verhält, aber wie ich oben erwähnte ist die Zeitachse ein Problem ist.
------------------------------------------------------------------------------------------------------
ASCII-Header
------------------------------------------------------------------------------------------------------
ncols 187
nrows 148
XLLCORNER -1276200
YLLCORNER 3691929
cellsize 21685
NODATA_value -9999
10,3209491216388 10,3067583071857 10,3000149196651 ....
...
...
...
Das sind die Anpassungsversuche ans KBS (Koordinaten Bezugsystem)
Ich hoffe das man das sehen kann.
[ATTACH=CONFIG]18931[/ATTACH][ATTACH=CONFIG]18930[/ATTACH][ATTACH=CONFIG]18932[/ATTACH][ATTACH=CONFIG]18930[/ATTACH]
-----------------------------------------------------------------------------------------------------
Matlab Skript + Anmerkungen
könnte auch sein , das hier schon was falsch lief
-----------------------------------------------------------------------------------------------------
%Hallo Fellas
%1) Ersetzt mit 'Suchen und ersetzen' Filelocation+Filename mit dem
% Dateipfad und Dateinamen der zutreffenden NetCDF-Datei etwa sowas
% " 'M:\zzz_Arbeit RLI\__Winlass\___DAten\wspd.50m.2010.nc' " ,
%2) Ersetz mit"Suchen und Ersetzen" TimeLine durch den Wert den ihr in der
% time-Variablen findet (z-Achse)
%3) und mit "Suchen und Ersetzen" auch 'Laufvariable' duch die, die ihr
% auslesen wollt,... siehe --> 'ncdisp('Filelocation+Filename','/')'
%nc Open
ncid=netcdf.open( 'Filelocation+Filename','NOWRITE')%Nowrite könnt ihr lassen.
%Visually inspect a NetCDF file, hiding the attributes.
ncdisp('Filelocation+Filename','/')% Vorwärts-Shlash steht für 'alle', könnt ihr lassen
%lesen der Daten
data=ncread ('Filelocation+Filename','Laufvariable'); %hier x,y,time
%dann um die Zeitachse zusammenzuschieben
ave=sum(data,3)/TimeLine % data,3 steht für bei data die 3 Achse
% wspd
% Size: 187x148x52560
% Dimensions: x,y,time
% Datatype: int16
% Attributes:
% long_name = '4xDaily wind speed'
% units = 'm/s'
% valid_range = [0.00e+000 2.00e+002]
% var_desc = 'Wind Speed\n'
% scale_factor = 0.01
% add_offset = 100
% missing_value = 3.28e+004
% actual_range = [0.00e+000 5.77e+001]
ave=ave*0.01+100 %also geteilt durch den Scale_factor + add_offset
%nun kann man ave in ein ASCII file übertragen und fertig
% der ASCII HEDAR solle so Ausssehen (ohne Leerzeichen, am Anfang)
% ncols Anzahl Reihen
% nrows Anzahl Spalten (ohne Hedar)
% xllcorner Startpunkt x-Achse
% yllcorner Startpunkt y-Achse
% cellsize 0,00083333333333333 (das 1km, bei 20km halt 0,17142857)
% NODATA_value -9999
%dann eure daten ins ASCII-File schupsen und ab damit in ArcGIS, umwandeln in Rasterdateien etc.
%Als Beispiel:
%
%%nc Open
%ncid = netcdf.open( 'M:\zzz_Arbeit RLI\__Winlass\___DAten\wspd.50m.2010.nc','NOWRITE')
%
%%Visually inspect a NetCDF file, hiding the attributes.
%ncdisp('M:\zzz_Arbeit RLI\__Winlass\___DAten\Windspeed\wspd.50m.2010.nc','/')
%
%%lesen der Daten
%data=ncread ('M:\zzz_Arbeit RLI\__Winlass\___DAten\wspd.50m.2010.nc','wspd');
%
%ave=sum(data,3)/52560;
%ave=ave*0.01+100;
%
%das Simikolon nicht vergessen, sonst dauerst zu lang 😉
% und so habt ihr die NetCDF_Datein sauber ausgeleden.
-------------------------------------------------------------------------------------------------------
hmm.
sowit bin ich nun.
Ich wäre sehr glücklich, wenn mir einer helfen kann.
Mfg Sotsch