정보

    • 업무명    : Himawari-8/AHI (2 km)을 CERES (20 km)로 공간 해상도 일치

    • 작성자    : 이상호

    • 작성일    : 2019-08-28

    • 설   명    :

    • 수정이력 :

     

     

     내용

    [특징]

    • 정지궤도와 극 궤도 위성에서의 공간 일치를 위한 소프트웨어가 필요하며 이 프로그램은 이러한 목적을 이러한 목적을 달성하기 위해 고안된 소프트웨어

     

    [기능]

    • 아스키 형태인 정지궤도 기상위성인 Himawari-8/AHI 자료 읽기

    • 아스키 형태인 극궤도 기상위성인 Terra/CERES 자료 읽기

    • Terra/CERES의 위경도를 기준으로 10 km 반경 내의 Himawari-8/AHI 자료에 대한 평균 수행

     

    [사용법]

    • 입력 자료 (Himawari-8/AHI와 Terra/CERES)를 동일 디렉터리에 저장

    • 소스코드를 컴파일 (pgf90 Matching_Spatial_Resolution_AHI_And_CERES_Satellite_Data.f90)

    • 소스코드를 실행 (./a.out)

     

    [사용 OS]

    • Linux

     

    [사용 언어]

    • Fortran

     

     소스 코드

    [전체]

          real, parameter :: ceres_dim =  500000  !  CERES 20km x 20km
          real, parameter :: hima_dim  =  30250000  ! HAMAWARI-8/AHI 2km x 2km
          integer, parameter :: cols   =  6
       
          real, dimension(5) :: time
          real, dimension(ceres_dim, 8) :: ceres
          real, dimension(hima_dim, 11) :: hima
          integer :: i, j, k
          real :: dist, dist_min, w, wz, idw, near
          real :: lat, lon
          real, dimension(12) :: mean, wa, cc
    
          open(10, file='0125~0134.dat')
    !      open(11, file='201508180130_interp.RSR')
          open(11, file='201508180130.dat')
          open(12, file='hima_ceres_25-34.dat')
          open(13, file='../TOTAL/hima_ceres_25-34.dat')
    
          do i=1, hima_dim               
             read(11, *) hima(i, 1:cols)
          enddo
       
          do i=1, ceres_dim                 
             read(10,*) time(1:5), lon, lat, ceres(i, 1:5)
             if( ceres(i,1) == -999.0 .or. ceres(i,2) == -999.0 .or.  &
                 ceres(i,3) == -999.0 .or. ceres(i,4) == -999.0 .or.  &
                 ceres(i,5) == -999.0 ) cycle
    
             do k=3, cols
                wa(k)=0  
                cc(k)=0
             enddo
    
             do j=1, hima_dim
                if( hima(j,1) == -999.0 .or. hima(j,2) == -999.0 ) cycle
                dist = sqrt( ((hima(j,1)-lat)**2) + ((hima(j,2)-lon)**2) )
    
                do k=3, cols
                   if( hima(j,k) > 0.0 .and. hima(j,k) /= -999.0 .and. dist <= 0.1 )  then
                      wa(k) = wa(k) + hima(j,k)
                      cc(k) = cc(k) + 1
                   endif
                enddo  ! k
             enddo  !  j
    
             do k=3, cols
                mean(k) = wa(k)/real(cc(k))
             enddo
    
             if(cc(3)/=0 .and. cc(4)/=0 ) then
                write(12,'(6f15.5, 4f15.5, 2f15.5)')  &
                      lon, lat, ceres(i,1:3), ceres(i,2)/ceres(i,3), &
                      mean(3:cols), ceres(i,4:5)
                write(13,'(6f15.5, 4f15.5, 2f15.5)')  &
                      lon, lat, ceres(i,1:3), ceres(i,2)/ceres(i,3), &
                      mean(3:cols), ceres(i,4:5)
             endif
    
          enddo  ! i
          
          end

     

    [GitHub GIST]

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기