-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
91 lines (75 loc) · 3.2 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#############################################################
# #
# MODIS: Radiance to Brightness Temperature #
# #
#############################################################
#-----------------------------------------------------------------------
#!F77
#
#!DESCRIPTION:
# Compute brightness temperature for a MODIS infrared band
# on Terra or Aqua.
#
# Spectral responses for each IR detector were obtained from MCST:
# ftp://ftp.mcst.ssai.biz/pub/permanent/MCST in directories
# PFM_L1B_LUT_4-30-99 (Terra) and FM1_RSR_LUT_07-10-01 (Aqua).
#
# An average spectral response for all detectors in each band was
# computed. The detector-averaged spectral response data were used
# to compute the effective central wavenumbers and temperature
# correction coefficients included in this module.
#
# NOTE: The plaform name ('Terra' or 'Aqua') is passed to this
# function via the common block defined in 'platform_name.inc'.
#
#!INPUT PARAMETERS:
# RAD (REAL) Planck radiance (units are determined by UNITS)
# PLATFORM (LONG) Platform Name: Terra=0 or Aqua=1
# BAND (LONG) MODIS IR band number (20-25, 27-36)
# UNITS (LONG) Flag defining radiance units
# 0 => milliWatts per square meter per
# steradian per inverse centimeter
# 1 => Watts per square meter per
# steradian per micron
#
#!OUTPUT PARAMETERS:
# MODIS_BRIGHT Brightness temperature (Kelvin)
# Note that a value of -1.0 is returned if
# RAD .LE. 0.0, or BAND is not in range 20-25, 27-36.
#
#!REVISION HISTORY:
# Liam.Gumley@ssec.wisc.edu
#
#!TEAM-UNIQUE HEADER:
# Developed by the MODIS Group, CIMSS/SSEC, UW-Madison.
#
#!END
#-----------------------------------------------------------------------
I got a hold of Liam's radiance to BT code, and ran it through f2py to make
the python module mod_br.so
I have included the commands I ran in f2py_commands.txt. The first generates
the mod_br.pyf file...
f2py modis_bright.f bright_m.f brite_m.f -m mod_br -h mod_br.pyf --overwrite-signature
which you then edit to put in the "intent" statments in
the variable declarations. The second command generates the module file...
f2py -c mod_br.pyf modis_bright.f bright_m.f brite_m.f
I ended up inlining the included code, and removing Liam's common block. f2py
doesn't seem to know what to do with included code (or I don't know the f2py
command to do it properly).
The main function is modis_bright(radiance,platform,band,units). Check
modis_bright.f for the definitions. But for platform, 0==Terra, 1==Aqua
This is how I used the module...
import mod_br as mod_br
import scipy as spy
import numpy as np
mod_br.modis_bright(12.,1,31,1)
Out[16]: 316.25592041015625
radiance = np.linspace(5.,12.,10)
modBT = np.vectorize(mod_br.modis_bright)
brightTempsAqua = modBT(radiance,1,31,1)
print brightTempsAqua
[ 261.40756226 269.14404297 276.27868652 282.92977905 289.18231201
295.09991455 300.73129272 306.11483765 311.28134155 316.25592041]
----
Geoff Cureton
SSEC, Oct 2008