정보
-
업무명 : 쉘 스크립트 분광반응함수를 이용한 각 채널별 파장 및 파수에 따른 반응도 특성 분석
-
작성자 : 이상호
-
작성일 : 2019-08-25
-
설 명 :
-
수정이력 :
내용
[특징]
-
분광반응함수(SRF: Spectral Response Function)는 파장 또는 파수의 함수로써 광원으로부터 입사된 복사에너지에 대하여 반사된 에너지의 비(ration)로 정의
-
이러한 SRF는 위성 센서에 따라 특성이 다르며, 각각의 파장 또는 파수대역에 대한 물리적인 특성이 반영하기 때문에 효과적인 위성자료의 활용을 위해서는 SRF의 특성 분석이 필요
[기능]
-
입력자료 (Himawari-8/AHI 센서의 SRF)를 이용하여 각 채널에 따른 파장 및 파수의 반응함수와 특성 분석 (시작/끝 파장 및 파수, 자료의 개수, 파장/파수 간격, 중심 파장/파수, 중심 파장/파수의 SRF)을 계산
[사용법]
-
INPUT, OUTPUT 디렉터리를 생성하고 INPUT에 입력자료를 저장
-
동일 디렉터리 안에 Read.csh 파일을 저장
-
소스 코드 (csh Read.csh) 실행을 통해 INPUT 안에 채널별 SRF 파일을 읽기
-
각 채널에 따른 파장, 파수, 반응도는 OUTPUT 디렉토리에 저장
-
또한 동일 디렉토리에 각 채널에 따른 파장 및 파수에 대한 특성 분석은 readme로 출력
[사용 OS]
-
Linux
[사용 언어]
-
Fortran
-
ShellScript (csh)
소스 코드
#!/bin/csh | |
rm -f readme | |
set fn = `ls INPUT/*` | |
foreach fn1 ($fn) | |
set srf_lines = `cat -n $fn1 | tail -1 | awk '{print $1}'` | |
cat >! 1.f90 << EOF | |
integer, parameter :: srf_lines = $srf_lines | |
integer :: N | |
real(8), dimension(srf_lines) :: wavelength, wavenumber, srf | |
real :: Range_start_wavelength, Range_end_wavelength | |
real :: Interval_wavelength, Central_wavelength | |
real :: Range_start_wavenumber, Range_end_wavenumber | |
real :: Interval_wavenumber, Central_wavenumber | |
real :: Central_wavelength_srf | |
open(10, file='${fn1}') | |
do i=1, srf_lines | |
read(10,*) wavelength(i), srf(i) | |
wavenumber(i) = 10000.d0/wavelength(i) | |
write(11,*) wavelength(i), wavenumber(i), srf(i) | |
enddo | |
Range_start_wavelength = minval(wavelength(:), dim=1) | |
Range_start_wavenumber = minval(wavenumber(:), dim=1) | |
Range_end_wavelength = maxval(wavelength(:), dim=1) | |
Range_end_wavenumber = maxval(wavenumber(:), dim=1) | |
N = count(srf(:) /= -999.0) | |
Interval_wavelength = (Range_end_wavelength - Range_start_wavelength + 1)/N | |
Interval_wavenumber = (Range_end_wavenumber - Range_start_wavenumber + 1)/N | |
Central_srf = maxval(srf(:), dim=1) | |
Central_wavelength = wavelength(maxloc(srf(:), dim=1)) | |
Central_wavenumber = wavenumber(maxloc(srf(:), dim=1)) | |
write(12,*) '==================== wavelength =====================' | |
write(12,*) ' Start End N Interval & | |
Central_wave, srf' | |
write(12,'(2i10, i10, 3f10.2)') & | |
int(Range_start_wavelength), int(Range_end_wavelength), N, & | |
Interval_wavelength, Central_wavelength, Central_srf | |
write(12,*) '==================== wavelength =====================' | |
write(12,*) ' Start End N Interval & | |
Central_wave, srf' | |
write(12,'(2f10.2, i10, f10.5 ,2f10.2)') & | |
Range_start_wavenumber, Range_end_wavenumber, N, & | |
Interval_wavenumber, Central_wavenumber, Central_srf | |
end | |
EOF | |
pgf90 1.f90 ; a.out | |
#=========================================== | |
# OUTPUT move | |
#============================================ | |
mv -f fort.11 OUTPUT/${fn1:t}_out | |
echo $fn1:t > 1.dat | |
cat 1.dat fort.12 >> readme | |
echo >> readme | |
echo >> readme | |
end # fn1 | |
rm -f 1.f90 1.dat fort.12 |
결과
-
저장 결과 (readme)
AHI_Sep2013_CH01.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
19552 25000 5449 1.00 20790.00 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
0.40 0.51 5449 0.00020 0.48 1.00
AHI_Sep2013_CH02.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
18103 21381 3279 1.00 19418.00 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
0.47 0.55 3279 0.00033 0.51 1.00
AHI_Sep2013_CH03.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
13870 18012 4143 1.00 15408.00 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
0.56 0.72 4143 0.00028 0.65 1.00
AHI_Sep2013_CH04.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
10931 12397 1467 1.00 11561.00 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
0.81 0.91 1467 0.00076 0.86 1.00
AHI_Sep2013_CH05.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
5963 6469 507 1.00 6196.00 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
1.55 1.68 507 0.00223 1.61 1.00
AHI_Sep2013_CH06.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
4296 4571 276 1.00 4433.00 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
2.19 2.33 276 0.00413 2.26 1.00
AHI_Sep2013_CH07.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
2431 2787 3557 0.10 2580.70 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
3.59 4.11 3557 0.00043 3.87 1.00
AHI_Sep2013_CH08.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
1421 1841 4201 0.10 1556.30 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
5.43 7.04 4201 0.00062 6.43 1.00
AHI_Sep2013_CH09.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
1345 1545 2001 0.10 1453.70 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
6.47 7.43 2001 0.00098 6.88 1.00
AHI_Sep2013_CH10.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
1297 1431 1332 0.10 1368.40 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
6.99 7.70 1332 0.00129 7.31 1.00
AHI_Sep2013_CH11.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
1102 1231 1291 0.10 1150.10 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
8.12 9.07 1291 0.00151 8.69 1.00
AHI_Sep2013_CH12.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
990 1089 991 0.10 1026.10 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
9.18 10.10 991 0.00194 9.75 1.00
AHI_Sep2013_CH13.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
912 1010 981 0.10 962.70 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
9.90 10.96 981 0.00210 10.39 1.00
AHI_Sep2013_CH14.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
821 970 1491 0.10 905.50 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
10.31 12.18 1491 0.00193 11.04 1.00
AHI_Sep2013_CH15.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
732 895 1631 0.10 831.90 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
11.17 13.66 1631 0.00214 12.02 1.00
AHI_Sep2013_CH16.SRF
==================== wavelength =====================
Start End N Interval Central_wave, srf
716 793 771 0.10 756.90 1.00
==================== wavelength =====================
Start End N Interval Central_wave, srf
12.61 13.97 771 0.00306 13.21 1.00
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'프로그래밍 언어 > Shell Script' 카테고리의 다른 글
[ShellScript] 쉘 스크립트 sed 문자열 치환 시 "echo" 대신 "Here String (<<<)" 사용 방법 (2) | 2020.01.19 |
---|---|
[Shell Script] 쉘 스크립트 템플릿 파일에서 변수 확장 방법 (0) | 2020.01.19 |
[Shell Script] 쉘 스크립트 기초 (0) | 2019.08.28 |
[Shell Script] 쉘 스크립트 복사 전달 모수화 모델의 투과율 계산을 위한 온도보정 계수 산출 (0) | 2019.08.25 |
[Shell Script] 쉘 스크립트 그누플롯 (Gnuplot) stats 결과를 Fortran/Shell Script으로 읽기 (0) | 2019.08.25 |