WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hypsometrie erstellen

 

Attila
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 29.05.23
Wohnort: ---
Version: R2022b
     Beitrag Verfasst am: 02.06.2023, 13:30     Titel: Hypsometrie erstellen
  Antworten mit Zitat      
Guten Tag liebes Forum,
ich habe mehrere Anliegen.

Zum einen möchte ich eine Hypsometrie anlegen von verschiedenen Tif dateien über 4 Jahre. In diesen Tif dateien sind tophografie daten in drin, welche ich in bestimme raster unterteilen möchte. In der ersten Datei zeige ich euch mal wie ich mir das mit den Verschiedenen Auflösungen (i=) vorstelle und wie ich es in meine Hypsometrie routine eingearbeitet habe. Das problem ist, die grafik müsste sich bei verschiedenen i's verändern denke ich, das tut es aber nicht.

Hoffe Ihr könnt mir da irgendwie helfen.
LG
Attila





1: wo ich i ändere und sich alles ändert

%% AUFRAEUMEN VOM WORKSPACE, SCHLIESSEN VON FENSTERN, ETC.
clear all; close all; clc; warning off;

%% EINLESEN VON SHAPE-DATEI MIT
s = shaperead('Koordinaten_UTM32N.shp'); % Datei mit Koordinaten der Messstandorte
loc = 'Bantsbalje'; % Name des Messstandorts, der betrachtet werden soll (hier: Name jeweils anpassen)
ia = strcmp({s.Name},loc); % Heraussuchen des Indizes von betrachtetem Standort in Shapefile
xs = s(ia).X; % X-Koordinate von betrachtetem Standort
ys = s(ia).Y; % Y-Koordinate von betrachtetem Standort

%% EINLESEN VON GEOTIFF-DATEI
[za,R] = readgeoraster('M15 2015.tif'); % Einlesen der Geotiff-Datei (hier: Dateiname jeweils anpassen)
% za: Matrix mit Z-Werten
za(za<-3e38) = NaN;
xa = R.XWorldLimits(1)+R.CellExtentInWorldX/2:R.CellExtentInWorldX:... % X-Vektor
R.XWorldLimits(2)-R.CellExtentInWorldX/2;
ya = R.YWorldLimits(2)-R.CellExtentInWorldY/2:-R.CellExtentInWorldY:... % Y-Vektor
R.YWorldLimits(1)+R.CellExtentInWorldY/2;
[xa,ya] = meshgrid(xa,ya); % Erstellen der Matrizen mit X- und Y-Werten (xa und ya)

i=50/10
ib = find(ya==5937210 & xa==368540);
[M,N] = ind2sub(size(xa),ib);

xa_small= xa(M-i:M+i,N-i:N+i);
ya_small= ya(M-i:M+i,N-i:N+i);
za_small= za(M-i:M+i,N-i:N+i);

mean_value = mean (za_small, "all"); % gibt den Mittelwert über alle Elemente der Matrix an
std_value = std (za_small, 0, 'all'); % gibt die Standardabweichung über alle Elemente der Matrix an


%Andere Parameter:
quantiles = quantile (za_small(Smile,[0.25, 0.5, 0.75]);

median_value = median (za_small(Smile);




2: wo ich eine hypsometrie erstellen möchte mit den selben auflösungen i aber sich in der grafik nie etwas ändert:


%Bathymetrie einzeln darstellen mittels Hypsometrie für Bantsbalje

%% AUFRAEUMEN VOM WORKSPACE, SCHLIESSEN VON FENSTERN, ETC.
clear all; close all; clc; warning off;

j=1000

%% EINLESEN VON GEOTIFF-DATEI
[za,R] = readgeoraster('M15 2015.tif'); % Einlesen der Geotiff-Datei (hier: Dateiname jeweils anpassen)
% za: Matrix mit Z-Werten
za(za== 0) = NaN;
xa = R.XWorldLimits(1)+R.CellExtentInWorldX/2:R.CellExtentInWorldX:... % X-Vektor
R.XWorldLimits(2)-R.CellExtentInWorldX/2;
ya = R.YWorldLimits(2)-R.CellExtentInWorldY/2:-R.CellExtentInWorldY:... % Y-Vektor
R.YWorldLimits(1)+R.CellExtentInWorldY/2;
[xa,ya] = meshgrid(xa,ya); % Erstellen der Matrizen mit X- und Y-Werten (xa und ya)
za_sort = sort(za(Smile);
za_sort(isnan(za_sort))=[];

i=j/10
ib = find(ya==5937210 & xa==368540);
[M,N] = ind2sub(size(xa),ib);


ProzentA=(0:100/(numel(za_sort)-1):100)';



[zb,R] = readgeoraster('M15 2016.tif'); % Einlesen der Geotiff-Datei (hier: Dateiname jeweils anpassen)
% za: Matrix mit Z-Werten
zb(zb== 0) = NaN;
xb = R.XWorldLimits(1)+R.CellExtentInWorldX/2:R.CellExtentInWorldX:... % X-Vektor
R.XWorldLimits(2)-R.CellExtentInWorldX/2;
yb = R.YWorldLimits(2)-R.CellExtentInWorldY/2:-R.CellExtentInWorldY:... % Y-Vektor
R.YWorldLimits(1)+R.CellExtentInWorldY/2;
[xb,yb] = meshgrid(xb,yb); % Erstellen der Matrizen mit X- und Y-Werten (xa und ya)
zb_sort = sort(zb(Smile);
zb_sort(isnan(zb_sort))=[];

i=j/10
ib = find(yb==5937210 & xb==368540);
[M,N] = ind2sub(size(xa),ib);


ProzentB=(0:100/(numel(zb_sort)-1):100)';




[zc,R] = readgeoraster('M15 2017.tif'); % Einlesen der Geotiff-Datei (hier: Dateiname jeweils anpassen)
% za: Matrix mit Z-Werten
zc(zc== 0) = NaN;
xc = R.XWorldLimits(1)+R.CellExtentInWorldX/2:R.CellExtentInWorldX:... % X-Vektor
R.XWorldLimits(2)-R.CellExtentInWorldX/2;
yc = R.YWorldLimits(2)-R.CellExtentInWorldY/2:-R.CellExtentInWorldY:... % Y-Vektor
R.YWorldLimits(1)+R.CellExtentInWorldY/2;
[xc,yc] = meshgrid(xc,yc); % Erstellen der Matrizen mit X- und Y-Werten (xa und ya)
zc_sort = sort(zc(Smile);
zc_sort(isnan(zc_sort))=[];

i=j/10
ib = find(yc==5937210 & xc==368540);
[M,N] = ind2sub(size(xa),ib);


ProzentC=(0:100/(numel(zc_sort)-1):100)';



[zd,R] = readgeoraster('M15 2018.tif'); % Einlesen der Geotiff-Datei (hier: Dateiname jeweils anpassen)
% za: Matrix mit Z-Werten
zd(zd== 0) = NaN;
xd = R.XWorldLimits(1)+R.CellExtentInWorldX/2:R.CellExtentInWorldX:... % X-Vektor
R.XWorldLimits(2)-R.CellExtentInWorldX/2;
yd = R.YWorldLimits(2)-R.CellExtentInWorldY/2:-R.CellExtentInWorldY:... % Y-Vektor
R.YWorldLimits(1)+R.CellExtentInWorldY/2;
[xd,yd] = meshgrid(xd,yd); % Erstellen der Matrizen mit X- und Y-Werten (xa und ya)
zd_sort = sort(zd(Smile);
zd_sort(isnan(zd_sort))=[];

i=j/10
ib = find(yd==5937210 & xd==368540);
[M,N] = ind2sub(size(xa),ib);



ProzentD=(0:100/(numel(zd_sort)-1):100)';


%Hier alles plotten
plot(ProzentA,za_sort); hold on;
plot(ProzentB,zb_sort); hold on;
plot(ProzentC,zc_sort); hold on;
plot(ProzentD,zd_sort); hold on;

%Legende hinzufügen
legend('2015', '2016', '2017', '2018');
xlabel('Prozentuale Höhe');
ylabel('Elevation');
title('Hypsometrie Bantsbalje');
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.453
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.06.2023, 16:34     Titel:
  Antworten mit Zitat      
Hallo,

wo ist denn der Zusammenhang zwischen 1 und 2? Du löscht ja jeweils den Workspace etc., also sind alle Variablen inkl. i weg.

In Teilen wie diesen wird i zwar definiert, aber in den folgenden Zeilen nicht verwendet:
Code:
i=j/10
ib = find(ya==5937210 & xa==368540);
[M,N] = ind2sub(size(xa),ib);


ProzentA=(0:100/(numel(za_sort)-1):100)';


Somit ist ProzentA unabhängig von i, und soweit ich das überblicke entsprechen für die anderen geplotteten Daten.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.