허밍
https://hummingstereo.tistory.com/
MATLAB을 이용한 해양 자료 처리
피드

[matlab] 행렬 변환 (n*3 → a*b)
허밍
서론n*3 되어있는 자료(예: x,y,z 형식의 수심자료)를 aXb형태의 2차원 행렬로 변환하는 방법을 제시한다.이 방법은 산정도 형식의 자료가 아닌, 동일한 간격의 x,y 격자형 구조를 가지는 자료에 적용 가능하다.방법1. x,y의 각 좌표의 고유값 추출하여 격자의 기준 축 구성2. 각 자료 지점이 기준축에 해당하는 x,y 인덱스 값 추출3. 추출한 기준 축을 바탕으로 x,y 격자 프레임 생성4-1. 전체 격자 행렬을 NaN 값으로 정의하여, 자료가 없는지점을 표시4-2. 추출한 인덱스를 sub2ind 함수를 사용하여 1차원 인덱스로 변환 후, 해당위치의 수심값을 삽입* sub2ind2차원 또는 다차원 행렬의 행, 열 인덱스를 1차원 인덱스로 변환하는 함수코드 % 자료 불러오기 origin.data = load('depth_data.csv');origin.x = origin.data(:,1);origin.y = origin.data(:,2);origin.z = origin.data(:,3);% 1. 격자 기준 축 구성tp.axis_x = unique(origin.x);tp.axis_y = unique(origin.y);% 2. 각 좌표 기준 축의 인덱스 값 추출[~,tp.ind_x] = ismember(origin.x,tp.axis_x);[~,tp.ind_y] = ismember(origin.y,tp.axis_y);% 3. 격자 프레임 생성[new.x,new.y] = meshgrid(tp.axis_x,tp.axis_y);% 4. NaN 초기화 및 수심값 삽입new.z = nan(size(new.x));new.z(sub2ind(size(new.x),tp.ind_y,tp.ind_x)) = origin.z;
3달 전

[ matlab ] 구조체형 변수에서 필드 변수 추출
허밍
서론https://hummingstereo.tistory.com/38 구조체형 배열 자동 생성이전에 나는 구조체형 배열 (struct)을 생성시 eval 함수를 이용하여 생성하였다. 과거 방식과 새로운 방식을 기술한다. num = 1:2:19; % old 1 for ii = 1:10 eval(['old.list_',num2str(ii,'%02d'),' = num(',num2str(ii),');'])hummingstereo.tistory.com이전에 구조체형 변수 배열을 반복문으로 만드는 방법을 작성했다.그렇다면 구조체형 배열을 반대로 꺼낼 수 있는 방법 또한 찾아봤다. 방법assignin: 지정된 공간에 변수값 할당 적용clc; clear; close all;% set valuedata.name = 'John Doe';data.age = 30;data.height = 180;data.weight = 75;% get structure value's field valueid = fieldnames(data);for i = 1:length(id) % rename assignin('base', id{i}, data.(id{i}));end참고https://kr.mathworks.com/help/matlab/ref/assignin.html assigninYou clicked a link that corresponds to this MATLAB command: Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.kr.mathworks.com
5달 전

[ matlab ] datetime 연산
허밍
서론매트랩을 사용하여 datetime 형식의 날짜 자료와 시간 자료를 합치던 중 다음과 같은 오류가 발생되었다. "다음 사용 중 오류가 발생함: datetime형 배열 간의 덧셈은 정의되지 않았습니다." 방법시간 자료를 timeofday 사용했습니다.timeofday : datetime 형식의 자료중 날짜를 제외한 시간 자료를 duration 형식으로 변환 적용 이를 조위관측소 1년치 1시간 조위 자료를 처리하는데 사용되었습니다.clc; clear; close all;% pathinp.in = '01_data\인천_2023년 _1시간 조위.txt';% readfid = fopen(inp.in);format = '%{yyyy/MM/dd}D %{HH:mm}D %f';o = textscan(fid,format,'HeaderLines',5,'Delimiter',' ');% renamedate = o{1};time = o{2};dt = date+timeofday(time);elev = o{3};
5달 전

[ matlab ] 정해진 시간 간격으로 데이터 보정
허밍
목표아래 사진과 같이 시간 간격이 오차가 있는 데이터를 원하는 시간 간격으로 모정코드% dt: time data (datetime format)% 1. datetime -> timetabled1 = timetable(dt,nan(length(dt),1));% 2. retime (set time interval)d2 = retime(d1,'regular','nearest','TimeStep',minutes(10));% 3. timetable -> datetimed3 = d2.dt(1:end-1);
일 년 전

[ matlab ] yyaxis
허밍
목표1. 설명2. 설정 방법설명yyaxis는 좌, 우 두개의 축으로 구성된 그래프를 쓸 때 사용한다.yyaxis를 통해 생성한 우측그래프는 figure 창의 설정값은 공유되지만, 좌측에서 설정한의 x,y 축 제한을 적용받지 않기 때문에 따로 지정해주어야 한다. 설정방법코드 진행 순서는 아래와 같이 진행된다.왼쪽 축의 그래프 그리기와 설정yyaxis로 오른쪽 축의 그리기를 선언오른쪽 축의 그래프 그리기와 설정예시figurehold on; grid on% 왼쪽 그래프plot(data1(1:1000),'k')% 왼쪽 설정xticks(0:200:1000)ylabel('Zeta (m)')xlabel('Days')% 오른쪽 축 색깔 설정colororder({'r'})% 오른쪽 선언yyaxis right% 오른쪽 그래프plot(data2,'--r')% 오른쪽 설정ylabel('Height (cm)') 참고https://kr.mathworks.com/help/matlab/ref/yyaxis.html 두 개의 y축이 있는 차트 생성 - MATLAB yyaxis - MathWorks 한국좌표축의 특정 측면에 연결된 플롯은 해당 y축과 같은 색을 사용합니다. 측면에 선이 여러 개 있으면 선 스타일 순서대로 선에 스타일이 적용됩니다. 왼쪽 y축에는 Axes 객체의 색 순서 중 첫 번째kr.mathworks.comhttps://kr.mathworks.com/matlabcentral/answers/451917-black-axes-for-yyaxis-not-default-blue-and-orange Black axes for yyaxis (not default blue and orange)I'm having a hard time making the two y axes in my yyaxis plot black instead of the default blue left axis and orange left axis. I think I need to call the axis handle f
일 년 전

[ matlab ] cellfun
허밍
목표1. 설명2. 사용법3. 주의점설명각 배열이 cell 형태로 이루어진 자료를 반목문 없이 한번에 처리할 때 사용한다.보통 textscan 함수를 통해 나온 문자(char) 자료를 처리할 때 유용하다.사용법cellfun 뒤에 처리하고자 하는 방식의 함수와 자료를 넣으면 된다. 1_1. 매트랩 기본 함수 같은 경우는 @뒤에 원하는 함수를 입력하면 된다.data = {'1','2','3','4','5'};% 형식: cellfun(@함수,값); num_data = cellfun(@str2double,data); 1_2. 결과 2_1. 자신이 지정한 익명 함수를 사용 시, 지정한 함수를 '@' 없이 넣은 다음 사용한다.str = {'월','화','수','목','금'};% 익명 함수 지정method = @(s) strcat(s,'요일');day = cellfun(method,str,'UniformOutput',0); 2_2. 결과주의점예를 들면 다음과 같이 cell로 묶여있는 데이터가 있다.* 이 때 주의할 점은 배열의 자료가 한 cell에 묶여있는 것이 아닌 각각의 cell로 묶여있어야 한다.
일 년 전

특정 형식 시간 데이터 처리 'T'
허밍
시간 데이터를 불러들일 때, 시간 텍스트에 T가 들어가는 경우가 있다. 이럴 때, 중간에 텍스트를 제거할 필요없이 바로 읽어 들일 수 있다.dt = datetime(t,"InputFormat",'yyyy-MM-dd''T''HH:mm:SS.ssssss');
2년 전

t_tide 메뉴얼
허밍
해양 조석의 분조 데이터 추출을 위해 조화상수 추출 목표1. t_tide 파일 적용2. t_tide 사용법 t_tide 파일 적용1. 아래 사이트의 zip 파일 링크 클릭을 통해 다운로드https://www.eoas.ubc.ca/~rich/#T_Tide Rich Pawlowicz's Matlab StuffM_Map is a collection of routines that allow you to draw publication-quality maps in 18 different projections. M_Map includes a simple coastline and elevation database, and allows you to add your own data to those maps. Requires Matlab version 5 (or higherwww.eoas.ubc.ca 2. 압축 해제 후, matlab tool_box 경로에 파일 추가t_tide 사용법1. 입력값amplidue : 진폭time_interval : 시간 간격 ( 1 = 1hour )start : 시작 시간latitude : 위도 ( degree )'synthesis' : 필터링 계수 ( 계수 ∝ 필터링 파워(?) )* 이외에도 더 많은 파라미터들이 있지만 제가 현재 사용하는 설정 위주로 설명했습니다. 더 많은 정보는 t_tide 함수의 주석을 통해 알 수 있습니다.* 시간 입력값은 datenum 형식 이어야 합니다.* 진폭 입력값은 결측 구간이 존재할 시, 생략하지 말고 nan으로 입력해야 합니다. 2. 결과값tide_structname : 분조 이름freq : 주기tidecon분조 조위분조 조위의 95% 신뢰구간분조 위상분조 위상의 95% 신뢰구간3. 코드% t_tidetide_struct = t_tide(amplitude, ... 'interval',time_interval, ... 'start',start_time, ... 'latitude',latitude, ... 'synt
2년 전

[ 환경 자료 ] 국내 사이트 정리
허밍
제가 국내 환경 데이터를 수집하기위해 주로 이용했던 사이트를 간단하게 정리했습니다.일반이용자도 쉽게 접근해서 이용할 수 있습니다.해양1. 해양환경정보지도국내 해양환경 정보 및 위치정보를 한눈에 확인가능한 사이트 입니다.해당 사이트를 통해 간단한 데이터 및 해당 데이터의 출처확인이 가능합니다. 해양환경 정보지도 www.meis.go.kr2. 바다누리 해양정보 서비스 (KHOA) ☆국립해양조사원에서 관측하는 실시간, 비실시간 데이터를 제공합니다.간단한 메뉴얼입니다. 바다누리 해양정보 서비스조위관측소, 해양관측부이, 해양과학기지 등에서 관측된 해양 정보를 다운로드하여 활용할 수 있습니다.www.khoa.go.kr3. 국가해양위성센터 (NOSC)국내 해양위성자료를 얻을 수 있습니다. 국립해양조사원 국가해양위성센터 www.nosc.go.kr4. 국립해양조사원 개방海국내 연안의 좀더 일상생활과 밀접한 데이터를 얻을 수 있습니다. 국립해양조사원 개방海출방항구와 동일 신규선택 클릭검색 직접입력 수산청검색 시도검색 위치를 선택후 검색 수산청 검색 시도 선택하여 검색 선택하세요.www.khoa.go.kr5. 국립수산과학원 | 한국해양자료센터(KODC) ☆국내 정점, 정선 관측사료를 제공합니다. KODC www.nifs.go.kr6. 국립수산과학원 | 어장환경모니터링전국 어장 수질환경 정보를 실시간 모니터링하여 제공합니다. 어장환경모니터링어장환경모니터링 전국의 어장환경을 실시간 알 수 있는 어장환경모니터링 어장환경모니터링정보 -->www.nifs.go.kr 담수1. 물환경정보시스템 ☆국내 하천의 자세한 수질 정보를 볼 수 있습니다. 물환경정보시스템 water.nier.go.kr2. My water 물정보포털 ☆국내 댐/보의 실시간 관리현황을 조회 할 수 있습니다. MyWater 물정보포털MyWater 물정보포털www.water.or.kr3. 한강홍수통제소한강과 연결될 수계의 강수량, 유량, 수위 데이터가 자세하게 제공됩니다.(일부 관측소는 데이터가 누락되어 있습니다.) 한강홍수통
2년 전