데이터 처리

[open api] 바다누리 해양정보 서비스

humming_stereo 2023. 1. 30. 14:41

1. 바다누리 해양정보 서비스 회원가입/로그인

http://www.khoa.go.kr/oceangrid/khoa/intro.do

 

바다누리 해양정보 서비스

조위관측소, 해양관측부이, 해양과학기지 등에서 관측된 해양 정보를 다운로드하여 활용할 수 있습니다.

www.khoa.go.kr


2. 상단 메뉴 중, open api 클릭


3_1. 약관동의

3_2. 개인 인증키 발급

3_3. 좌측 마이페이지에서 인증키 확인 가능


4_1. 좌측 open api 탭클릭

4_2. 원하는 데이터 선택

4_3. 요청변수 형식 확인

4_4. 원하는 관측지점 확인

4_4. 양식에 따라 url 작성


코드 구성

1. input 리스트 작성

2. output 폴더 생성

3_1. open api 요청

3_2. 데이터 처리      * 데이터를 처리하고 가공하는 방식은 개인차가 있기 때문에 상세히 기술 하지 않았습니다.

3_3. 데이터 저장


%% open api tide by 바다누리 %%
clc; clear; close all;
 
%% input
inp.data_type = 'tideObsPre';
inp.key = 'type your key';
inp.loc = 'DT_0052'; % 인천송도 37.338 126.586
inp.date = '20230130';
inp.type = 'json';
 
%% output
output = fullfile(pwd,'02__Output');
if isfolder(output) == 0
mkdir(output)
end
 
% dir{1} = fullfile(pwd,'output');
% if isfolder(dir{1}) == 0
% mkdir(dir{1})
% end
 
%% download data
tp.url = ['http://www.khoa.go.kr/api/oceangrid/',inp.data_type,'/search.do?' ...
'ServiceKey=',inp.key,'&' ...
'ObsCode=',inp.loc,'&' ...
'Date=',inp.date,'&' ...
'ResultType=',inp.type];
 
% original data
tp.d1 = webread(tp.url,'options','json');
 
% split hour
tp.d2 = split(tp.d1,'},{');
tp.d2{1} = tp.d2{1}(end-(length(tp.d2{2})-1):end);
tp.d2{end} = tp.d2{end}(1:length(tp.d2{2}));
 
% erase str
for ii = 1:length(tp.d2)
tp.d3{ii,1} = erase(tp.d2{ii},['"',"tide_level","record_time",":"]);
end
 
% split value/time
tp.d4 = split(tp.d3,",");
 
out.tide_level = cellfun(@str2num,tp.d4(:,1));
format = 'yyyy-mm-dd HHMMSS';
for ii = 1:length(tp.d2)
out.dnum(ii,1) = datenum(tp.d4{ii,2},format);
end
 
out.dvec = datevec(out.dnum);
 
save([output,'/tide_level_pre.mat'],'out')

* open api 관련 기본 이론 정보

https://hummingstereo.tistory.com/24

 

open api 데이터 이용 (공공데이터포털)

1-1. 공공 데이터 포털 접속 : https://www.data.go.kr/index.do 1-2. 검색 버튼 클릭 2. json 형식 데이터 검색 3-1. 참고문서 칸의 파일을 통해 manual 정보 취득 3-2. 회원가입/로그인 후 활용신청 클릭 4. 입력값,

hummingstereo.tistory.com