[강릉원주대 대기환경과학과] 2016년 2학기 전선 자료분석과 가시화 과제물

 정보

  • 업무명     : 2016년 2학기 전선 자료분석과 가시화 과제물

  • 작성자     : 이상호

  • 작성일     : 2020-03-18

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

  • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.

  • 오늘은 대학원 석사 3학기에 배운 자료분석과 가시화에 대한 내용을 다루고자 합니다.

  • 특히 배운 지식를 활용하여 각 주차별 발표 및 토의는 학술 논문 또는 보고서를 작성 시 많은 도움이 되었습니다.

  • 그에 따른 자료분석과 가시화의 "과제물"을 소개해 드리고자 합니다.

 

[특징]

  • 자료분석과 가시화 수업에 대한 이해를 돕기위해 작성

 

[기능]

  • 과제물

  • 소스 코드

  • 관련 자료

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • Fortran 90

 

 과제물

[미 산란 (Mie Scattering)]

  • QSCAT 소스 코드를 이용하여 다음 조건 하에서 결과 Report를 작성하여 제출하시오.

  • [조건] 엑셀 첨부 파일에서 파장별 굴절률 자료 참조하여 4가지 입자 (Dust-like, Water soluble, Oceanic, Soot)별 굴절률 (실수부, 허수부) 자료 이용

    1. [과제 1] 4가지 입자별, 산란효율 (QSCAT) vs 입자 크기에 관한 그래프 작성 및 비교 설명

    2. [과제 2] Dust-like 입자에 대하여 입자 크기 = 0.1, 1, 5, 10 um, 550 nm인 경우에서의 산란위상함수 (phase function)를 polar plot 작성 및 비교 설명

    3. [과제 3] 4가지 입자에 대하여 각각 파장별, 입자크기별, 산란계수 (Cext) 3D 또는 2D contour 그래프 작성 및 비교 설명

 

WCP112_TABLE 2.4_Refractive indices of basic aerosol components.xlsx
0.02MB

 

etc-image-0

 

[과제 1] 4가지 입자별, 산란효율 (QSCAT) vs 입자 크기에 관한 그래프 작성 및 비교 설명

  • 입자의 산란이론에 의하여 각 입자의 굴절률과 크기분포는 광 산란 및 흡수 효과를 계산할 때 필요하며, 이를 WCP112 Table을 인용하여 사용하였다.  입자의 굴절률은 각 파장에 따라 실수부와 허수부로 나뉘며 이를 입력자료로 하는 미 산란 코드(QSCAT.f)를 통해 이론적으로 계산하였다.  

  • 이때 입자의 모양은 구형으로 가정하였고, 입자 크기는 로 계산하였다.  이러한 구형과 비구형 입자의 광학 특성값은 5-8 % 차이로 보고된 바 있다.

  • 그림 1은 파장 0.55 µm에서 입자크기와 산란 효율을 입자별로 나타냈으며, x축은 입자 크기와 y축은 Log 스케일의 산란 효율이다.  Dust와 Water의 경우 입자 크기가 0~10에서 산란효율이 비슷한 수준을 보였으나 그 이후로 Dust가 Water에 비해 최대 산란효율을 나타내었다.  또한 입자 크기가 증가할수록 산란 효율이 증가하였다.

  • 이와 달리 Soot의 경우, 입자 크기가 20에서 최대 산란효율 나타내며, 입자가 증가할수록 산란효율이 일정하게 나타내었다.  또한 Ocean도 유사한 경향을 띠며 최대 산란효율은 5에서 나타내었다.

  • 이와 같이 WCP112 Table에서 언급된 0.55 µm의 굴절률은 해당 입자간 산란 특성에 차이를 발생시켰으며, 입자 크기가 증가할수록 뚜렷한 차이를 나타내었다.  또한, 0.55 µm을 기준으로 입자크기가 작을 때 레일라이 산란이 발생되며, 입자크기가 클 때 미 산란이 발생되는 특성이 있다.

 

1_size.png
그림 1. 4가지 입자와 입자 크기에 따른 산란효율.

 

[과제 2] Dust-like 입자에 대하여 입자 크기 = 0.1, 1, 5, 10 um, 550 nm인 경우에서의  산란위상함수 (phase function)를 polar plot 작성 및 비교 설명

  • 그림 2a은  파장 0.55 um, Dust-like 입자에 대하여 산란 각도에 따른 Normalized Forward Direction(이하 NFD)로 나타내며 x축은 산란 각도와 y축은 NTD이다.  

  • 또한 산란각이 0~60˚(전방산란; 빨강 음영), 60~120˚(측방산란; 파란 음영), 120~180˚(후방산란; 초록 음영)으로  나타내었다. 

  • 입자 크기가 0.1 um인 경우, NTD는 산란각이 0˚인 경우에 최대이고 산란각이 증가할수록 NTD가 감소하여 60~120˚ 근처에서 최소값이 나타내고 120~180˚ 사이에서 NTD가 오히려 증가하고 있다.  

  • 이때 빛의 파장에 비해 입자 크기가 작기 때문에 레일라이 산란이 발생되며, 전방산란이 된 양만큼 후방 산란되어 나타난다 (그림 2b, 그림 2c 참조). 

  • 이와 달리 빛의 파장에 비해 입자 크기가 비슷하거나 큰 경우, 미 산란이 발생되며 전방산란이 현저하고 상대적으로 작은 에너지가 측방, 후방으로 산란된다 (그림 2b, 그림 2c 참조).  

  • 이때 레일라이 산란과 달리 파장이 길거나 짧거나 파장에 의하여 산란의 강도가 변하지 않고 입자 크기, 종류, 모양에 등에 변화한다.

 

2_2.png
그림 2a. 입자 크기에 따른 산란위상함수에 따른 NFD.

 

2_1.png
그림 2b. 입자 크기에 따른 산란위상함수에 따른 NFD (Polar 2D).

 

2_3.png
그림 2c. 입자 크기에 따른 산란위상함수에 따른 NFD (Polar 3D Contour).

 

[과제 3] 4가지 입자에 대하여 각각 파장별, 입자크기별, 산란계수 (Cext) 3D 또는 2D contour 그래프 작성 및 비교 설명

  • 그림 3은  입자들에 대하여 각 파장, 입자크기에 따른 산란계수를 2D와 3D로 나타내었으며, x축은 파장 (0-40 µm)과 y축은 입자 크기 (0-100) 그리고 z축은 산란 계수이다. 

  • Dust인 경우, 그림 3a와 같이 입자 크기 (0-20)에서 각 파장별 산란계수와 파장 (0-8 µm)에서 각 입자별 산란계수는 일정하게 나타나며 파장이 8 µm 이후에 각 파장별 입자별 산란계수가 증가함을 나타났다.

  • 이와 같이 8 µm에서 산란계수는 변화가 나타나는 이유는 그림 4a와 같이 Dust에서 굴절률의 실수부가 증가 때문이다.  또한 파장이 30 µm 이상 영역과 입자 크기가 20 이상 영역에서 산란계수가 선형적으로 증가를 보였다.

  • Water인 경우, 그림 3b와 같이 Dust와 유사한 경향을 띠며 특히, 8 µm에서 다른 입자에 비하여 최대 산란계수를 나타났으며 이는 앞서 설명된 바와 일치한다.

  • Ocean인 경우, 그림 3c와 같이 Dust, Water와 유사한 경향을 띠며 8 µm에서 다른 입자에 비하여 최소 산란계수를 나타났으며, 이는 굴절률의 실수부가 감소하기 때문으로 기인된다.

  • 이와 달리 Soot은 그림 4a와 같이 굴절률의 실수부가 다른 입자에 비해 큰 폭으로 증가함에도 불구하고 그림 4d에서 입자 크기와 파장별에 따른 산란계수는 뚜렷한 변화없이 선형적으로 증가함을 보였다. 이는 그림 4a, b와 같이 굴절률의 실수부는 증가하고 굴절률의 허수부가 감소하여 두 요소의 상쇄되었기 때문이다.

 

3_dust.png
그림 3a. 각 파장, 입자크기에 따른 Dust 산란계수 (2D, 3D Contour).

 

3_water.png
그림 3b. 각 파장, 입자크기에 따른 Water 산란계수 (2D, 3D Contour).

 

3_ocean.png
그림 3c. 각 파장, 입자크기에 따른 Ocean 산란계수 (2D, 3D Contour).

 

3_soot.png
그림 3d. 각 파장, 입자크기에 따른 Soot 산란계수 (2D, 3D Contour).

 

Sens_2.png
그림 4a. 각 입자에 따른 실수부.

 

Sen_imagenary.png
그림 4b. 각 입자에 따른 허수부.

 

 소스 코드

[미 산란 (Mie Scattering]

  • 미 산란 계산을 위한 포트란 (Fortran) 소스 코드

      program qscat

c     *****************************************************************
c      you must make input file "input.dat"
c      whic included
c      ' nm(i4),1x,ri(f6.4),1x,si(f5.3)
c        wavel(f6.3),refre(f7.3),3x,Refim(f12.10)'
c     ****************************************************************
      real, dimension(80, 10) :: dust, water, ocean, soot
      complex refrel,s1(1000),s2(1000)
c     *********************************************************
!      open(unit=1,file='input.dat')
      open(11, file='WCP112.table', status='old')
      open(unit=5,FILE='miesca.out',status='unknown')
      open(unit=10,FILE='phase.out',status='unknown')
c     *********************************************************
c       refmed = (real) refractive index of surrounding medium
c              =1 (air)
c     **********************************************************
      refmed=1.0
c     **********************************************************
c        read particle size distribution parameter
c     **********************************************************
!      read(1,1)ri
!1     format(f6.3)
!      write(5,*)ri
c2     format(5x,'nm=',f6.3)
c     *********************************************************
c        refractive index of sphere = refre + i*refim
c     *********************************************************
!      read(1,*)wavel,refre,refim
!4     format(f6.3,f6.3,f6.3)

! LSH
      do ii = 1, 61
         read(11,*) wavel, dust(ii,1:2), water(ii,1:2),  
     &                     ocean(ii,1:2), soot(ii,1:2)
         refre = dust(ii,1)
         refim = dust(ii,2)
!         refre = water(ii,1)
!         refim = water(ii,2)
!         refre = ocean(ii,1)
!         refim = ocean(ii,2)
!         refre = soot(ii,1)
!         refim = soot(ii,2)

      write(*,*) wavel, refre, refim

      refrel=cmplx(refre,refim)/refmed
c      write (5,*) wavel,refre,refim
c5     format(5x,'wavelength=',f6.3,2x,'refre=',f7.3,2x,'refim=',f12.10)
c      write (5,11)
!11     format (//,7x,'x',8x,'dp',10x,'QSCAT',8x,'QEXT',10x,'QBACK',8x,
!     +'CSCAT',9x,'CEXT',9x,'CBACK')

! LSH
!	do ri=0.0, 100000.0, 0.1
      do i=1, 1
      ri = 0.55
c     **********************************************************
c          Diameter (nm) and wavelength (wavel) same units
c     **********************************************************
      x=3.14159265*2.0*ri*refmed/wavel
!      write(*,*) x
!      write(*,*) refrel

c     ***********************************************************
c          nang = number of angles between 0 and 90 degrees
c          matrix elements calculates at 2*nang-1 angles
c          including 0, 90, and 180 degrees
c     ***********************************************************
      nang=91
      dang=1.570796327/float(nang-1)

      call bhmie(x,refrel,nang,s1,s2,qext,qsca,qback)

      csca=2.0*3.141592*(ri**2)*qsca
      cext=2.0*3.141592*(ri**2)*qext
      cback=2.0*3.141592*(ri**2)*qback

      write(5,65) x,ri,qsca,qext,qback,csca,cext,cback
65    format (1x,f9.4,1x,f9.5,1x,e12.6,1x,e12.6,1x,e12.6,1x,e12.6,1x,
     +e12.6,1x,e12.6)

c     ************************************************************
c      s33 and s34 matrix elements normalized by s11.
c      s11 is normalized to 1.0 in the forward direction
c      pol=degree of polarization (incident unpolarized light)
c     *************************************************************
C
c      GO TO 500
C
      s11nor=0.5*(cabs(s2(1))**2+cabs(s1(1))**2)
      nan=2*nang-1
      do 355 j=1,nan
      aj=j
      s11=0.5*cabs(s2(j))*cabs(s2(j))
      s11= s11+0.5*cabs(s1(j))*cabs(s1(j))
      s12=0.5*cabs(s2(j))*cabs(s2(j))
      s12= s12-0.5*cabs(s1(j))*cabs(s1(j))
      pol=-s12/s11
      s33=real(s2(j)*conjg(s1(j)))
      s33= s33/s11
      s34=aimag(s2(j)*conjg(s1(j)))
      s34= s34/s11
      s11= s11/ s11nor
      ang=dang*(aj-1)*57.2958
355   write (10,75) ang,s11,pol,s33,s34
75    format (5x,f6.2,2x,e13.6,2x,e13.6,2x,e13.6,2x,e13.6)

C     ************************************************
500   CONTINUE
C     ***********************************************


700   continue

! LSH
      write(99,'(7f15.4)') ri, qsca,qext,qback,csca,cext,cback
      enddo ! i

      enddo ! ii

      stop
      end

c     *****************************************************************
c         subroutine BHMIE calculates amplitude scattering matrix
c         elements and efficiencies for extinction, total scattering
c         and backscattering for a given size parameter and relative
c         refractive index
c     ******************************************************************
      subroutine BHMIE (x,refrel,nang,s1,s2,qext,qsca,qback)

      dimension amu(200),theta(200),pi(200),tau(200),pi0(200),pi1(200)
      complex d(3000),y,refrel,xi,xi0,xi1,an,bn,s1(250),s2(250)
      double precision psi0,psi1,psi,dn,dx
      dx=x
      y=x*refrel
c     **********************************************
c         series terminated after nstop terms
c     **********************************************
      xstop=x+4.*x**.3333+2.0
      nstop=xstop
      ymod=cabs(y)
      nmx=amax1(xstop,ymod)+15
      dang=1.570796327/float(nang-1)
      do 555 j=1,nang
      theta(j)=(float(j)-1.)*dang
555   amu(j)=cos(theta(j))
c     ********************************************************
c        logarithmic derivative d(j) calculated by downward
c        recurrence beginning with initial value 0.0 + i*0.0
c        at j = nmx
c     ********************************************************
      d(nmx)=cmplx(0.0,0.0)
      nn=nmx-1
      do 120 n=1,nn
      rn=nmx-n+1
 120  d(nmx-n)=(rn/y)-(1./(d(nmx-n+1)+rn/y))
      do 666 j=1,nang
      pi0(j)=0.0
 666  pi1(j)=1.0
      nn=2*nang-1
      do 777 j=1,nn
      s1(j)=cmplx(0.0,0.0)
 777  s2(j)=cmplx(0.0,0.0)
c     ****************************************************
c        Riccati-Bessel functions with real argument x
c        calculated by upward recurrence
c     ****************************************************
      psi0=dcos(dx)
      psi1=dsin(dx)
      chi0=-sin(x)
      chi1=cos(x)
      apsi0=psi0
      apsi1=psi1
      xi0=cmplx(apsi0,-chi0)
      xi1=cmplx(apsi1,-chi1)
      qsca=0.0
      gsca=0.0

      n=1
 200  dn=n
      rn=n
      fn=(2.*rn+1.)/(rn*(rn+1.))
      psi=(2.*dn-1.)*psi1/dx-psi0
      apsi=psi
      chi=(2.*rn-1.)*chi1/x-chi0
      xi=cmplx(apsi,-chi)
      an=(d(n)/refrel+rn/x)*apsi-apsi1
      an=an/((d(n)/refrel+rn/x)*xi-xi1)
      bn=(refrel*d(n)+rn/x)*apsi-apsi1
      bn=bn/((refrel*d(n)+rn/x)*xi-xi1)

      qsca=qsca+(2.*rn+1.)*(cabs(an)*cabs(an)+cabs(bn)*cabs(bn))

      do 789 j=1,nang
      jj=2*nang-j
      pi(j)=pi1(j)
      tau(j)=rn*amu(j)*pi(j)-(rn+1.)*pi0(j)
      p=(-1.)**(n-1)
      s1(j)=s1(j)+fn*(an*pi(j)+bn*tau(j))
      t=(-1.)**n
      s2(j)=s2(j)+fn*(an*tau(j)+bn*pi(j))
      if(j.eq.jj) go to 789
      s1(jj)=s1(jj)+fn*(an*pi(j)*p+bn*tau(j)*t)
      s2(jj)=s2(jj)+fn*(an*tau(j)*t+bn*pi(j)*p)
 789  continue
      psi0=psi1
      psi1=psi
      apsi1=psi1
      chi0=chi1
      chi1=chi
      xi1=cmplx(apsi1,-chi1)
      n=n+1
      rn=n
      do 999 j=1,nang
      pi1(j)=((2.*rn-1.)/(rn-1.))*amu(j)*pi(j)
      pi1(j)=pi1(j)-rn*pi0(j)/(rn-1.)
 999  pi0(j)=pi(j)
      if (n-1-nstop) 200,300,300
 300  qsca=(2./(x*x))*qsca
      qext=(4./(x*x))*real(s1(1))
      qback=(4./(x*x))*cabs(s1(2*nang-1))*cabs(s1(2*nang-1))

      return
      end

 

  • 파장별 굴절률을 소프트웨어 입력에 용이한 형태로 변경

0.200    1.530    -0.0700000  1.530    -0.0700000  1.429    -0.0000287  1.500    -0.350 
0.250    1.530    -0.0300000  1.530    -0.0300000  1.404    -0.0000015  1.620    -0.450 
0.300    1.530    -0.0080000  1.530    -0.0080000  1.395    -0.0000006  1.740    -0.470 
0.337    1.530    -0.0080000  1.530    -0.0050000  1.392    -0.0000001  1.750    -0.470 
0.400    1.530    -0.0080000  1.530    -0.0050000  1.385    0.0000000   1.750    -0.460 
0.488    1.530    -0.0080000  1.530    -0.0050000  1.382    0.0000000   1.750    -0.450 
0.515    1.530    -0.0080000  1.530    -0.0050000  1.381    0.0000000   1.750    -0.450 
0.550    1.530    -0.0080000  1.530    -0.0060000  1.381    0.0000000   1.750    -0.440 
0.633    1.530    -0.0080000  1.530    -0.0060000  1.377    0.0000000   1.750    -0.430 
0.694    1.530    -0.0080000  1.530    -0.0070000  1.376    -0.0000001  1.750    -0.430 
0.860    1.520    -0.0080000  1.520    -0.0120000  1.372    -0.0000011  1.750    -0.430 
1.060    1.520    -0.0080000  1.520    -0.0170000  1.367    -0.0000601  1.750    -0.440 
1.300    1.460    -0.0080000  1.510    -0.0200000  1.365    -0.0001410  1.760    -0.450 
1.536    1.400    -0.0080000  1.510    -0.0230000  1.359    -0.0002430  1.770    -0.460 
1.800    1.330    -0.0080000  1.460    -0.0170000  1.351    -0.0003110  1.790    -0.480 
2.000    1.260    -0.0080000  1.420    -0.0080000  1.347    -0.0010700  1.800    -0.490 
2.250    1.220    -0.0090000  1.420    -0.0100000  1.334    -0.0003500  1.810    -0.500 
2.500    1.180    -0.0090000  1.420    -0.0120000  1.309    -0.0023900  1.820    -0.510 
2.700    1.180    -0.0130000  1.400    -0.0550000  1.249    -0.0156000  1.830    -0.520 
3.000    1.160    -0.0120000  1.420    -0.0220000  1.439    -0.1970000  1.840    -0.540 
3.200    1.220    -0.0100000  1.430    -0.0080000  1.481    -0.0669000  1.860    -0.540 
3.392    1.260    -0.0130000  1.430    -0.0070000  1.439    -0.0151000  1.870    -0.550 
3.500    1.280    -0.0110000  1.450    -0.0050000  1.423    -0.0071700  1.880    -0.560 
3.750    1.270    -0.0110000  1.452    -0.0040000  1.398    -0.0029000  1.900    -0.570 
4.000    1.260    -0.0120000  1.455    -0.0050000  1.388    -0.0036900  1.920    -0.580 
4.500    1.260    -0.0140000  1.460    -0.0130000  1.377    -0.0099700  1.940    -0.590 
5.000    1.250    -0.0160000  1.450    -0.0120000  1.366    -0.0095700  1.970    -0.600 
5.500    1.220    -0.0210000  1.440    -0.0180000  1.333    -0.0093100  1.990    -0.610 
6.000    1.150    -0.0370000  1.410    -0.0230000  1.306    -0.0796000  2.020    -0.620 
6.200    1.140    -0.0390000  1.430    -0.0270000  1.431    -0.0691000  2.030    -0.625 
6.500    1.130    -0.0420000  1.460    -0.0330000  1.374    -0.0294000  2.040    -0.630 
7.200    1.400    -0.0550000  1.400    -0.0700000  1.343    -0.0249000  2.060    -0.650 
7.900    1.150    -0.0400000  1.200    -0.0650000  1.324    -0.0279000  2.120    -0.670 
8.200    1.130    -0.0740000  1.010    -0.1000000  1.324    -0.0308000  2.130    -0.680 
8.500    1.300    -0.0900000  1.300    -0.2150000  1.336    -0.0336000  2.150    -0.690 
8.700    1.400    -0.1000000  2.400    -0.2900000  1.366    -0.0356000  2.160    -0.690 
9.000    1.700    -0.1400000  2.560    -0.3700000  1.373    -0.0365000  2.170    -0.700 
9.200    1.720    -0.1500000  2.200    -0.4200000  1.356    -0.0371000  2.180    -0.700 
9.500    1.730    -0.1620000  1.950    -0.1600000  1.339    -0.0368000  2.190    -0.710 
9.800    1.740    -0.1620000  1.870    -0.0950000  1.324    -0.0388000  2.200    -0.715 
10.000   1.750    -0.1620000  1.820    -0.0900000  1.310    -0.0406000  2.210    -0.720 
10.591   1.620    -0.1200000  1.760    -0.0700000  1.271    -0.0522000  2.220    -0.730 
11.000   1.620    -0.1050000  1.720    -0.0500000  1.246    -0.0731000  2.230    -0.730 
11.500   1.590    -0.1000000  1.670    -0.0470000  1.227    -0.1050000  2.240    -0.740 
12.500   1.510    -0.0900000  1.620    -0.0530000  1.208    -0.1900000  2.270    -0.750 
13.000   1.470    -0.1000000  1.620    -0.0550000  1.221    -0.2230000  2.280    -0.760 
14.000   1.520    -0.0850000  1.560    -0.0730000  1.267    -0.2710000  2.310    -0.775 
14.800   1.570    -0.1000000  1.440    -0.1000000  1.307    -0.2920000  2.330    -0.790 
15.000   1.570    -0.1000000  1.420    -0.2000000  1.321    -0.2970000  2.330    -0.790 
16.400   1.600    -0.1000000  1.750    -0.1600000  1.407    -0.3310000  2.360    -0.810 
17.200   1.630    -0.1000000  2.080    -0.2400000  1.487    -0.3410000  2.380    -0.820 
18.000   1.640    -0.1150000  1.980    -0.1800000  1.525    -0.3410000  2.400    -0.825 
18.500   1.640    -0.1200000  1.850    -0.1700000  1.536    -0.3390000  2.410    -0.830 
20.000   1.680    -0.2200000  2.120    -0.2200000  1.560    -0.3240000  2.450    -0.850 
21.300   1.770    -0.2800000  2.060    -0.2300000  1.568    -0.3180000  2.460    -0.860 
22.500   1.900    -0.2800000  2.000    -0.2400000  1.579    -0.3160000  2.480    -0.870 
25.000   1.970    -0.2400000  1.880    -0.2800000  1.596    -0.3130000  2.510    -0.890 
27.900   1.890    -0.3200000  1.840    -0.2900000  1.612    -0.3200000  2.540    -0.910 
30.000   1.800    -0.4200000  1.820    -0.3000000  1.614    -0.3200000  2.570    -0.930 
35.000   1.900    -0.5000000  1.920    -0.4000000  1.597    -0.3830000  2.630    -0.970 
40.000   2.100    -0.6000000  1.860    -0.5000000  1.582    -0.5610000  2.690    -1.000 

 

  • 미 산란 결과를 Origin를 이용하여 가시화

Mie Scattering.7z
7.95MB

 

 관련 자료

  • 미 산란 (QSCAT.f) 소스 코드를 이용하여 4가지 입자 (Dust-like, Water soluble, Oceanic, Soot) 별 굴절률 (실수부, 허수부) 계산 및 가시화

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

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

  • sangho.lee.1990@gmail.com

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

  • saimang0804@gmail.com