Skip to content

Commit 37aec1d

Browse files
committed
adding draft paper.md and minor changes to sensors.py
1 parent 12641d2 commit 37aec1d

File tree

8 files changed

+394
-20
lines changed

8 files changed

+394
-20
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ HyPlan helps scientists and engineers design remote sensing flight missions. It
2323

2424
- **Flight planning** — Define flight lines, generate multi-line coverage patterns, and compute complete mission plans with takeoff, transit, data collection, and landing segments
2525
- **Flight optimization** — Automatically order flight lines with multi-day scheduling, endurance constraints, and refueling stops
26-
- **Sensor modeling** — Pre-configured NASA instruments (AVIRIS-3, AVIRIS-4, HyTES, PRISM, MASTER, and more) with ground sample distance and swath calculations
26+
- **Sensor modeling** — Pre-configured NASA instruments (AVIRIS-3, AVIRIS-5, HyTES, PRISM, MASTER, and more) with ground sample distance and swath calculations
2727
- **Lidar & radar** — LVIS full-waveform lidar and UAVSAR L/P/Ka-band SAR sensor models
2828
- **Solar glint prediction** — Predict glint angles across flight lines for water observation missions
2929
- **Solar illumination** — Compute solar position and daily data-collection windows for any site and date
@@ -178,7 +178,7 @@ gdf.to_file("glint_results.geojson", driver="GeoJSON")
178178
| `flight_plan` | Compute complete mission plans with timing and altitude profiles |
179179
| `flight_optimizer` | Graph-based flight line ordering with multi-day and refueling support |
180180
| `aircraft` | Aircraft performance models (14 pre-configured research aircraft) |
181-
| `sensors` | Sensor definitions (AVIRIS-3, AVIRIS-4, HyTES, PRISM, MASTER, etc.) |
181+
| `sensors` | Sensor definitions (AVIRIS-3, AVIRIS-5, HyTES, PRISM, MASTER, etc.) |
182182
| `frame_camera` | Frame camera modeling with ground footprint calculations |
183183
| `lvis` | LVIS full-waveform scanning lidar sensor model |
184184
| `radar` | Side-looking SAR sensor models (UAVSAR L/P/Ka-band) |

docs/api/sensors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
.. autoclass:: hyplan.sensors.AVIRISClassic
1717
.. autoclass:: hyplan.sensors.AVIRISNextGen
1818
.. autoclass:: hyplan.sensors.AVIRIS3
19-
.. autoclass:: hyplan.sensors.AVIRIS4
19+
.. autoclass:: hyplan.sensors.AVIRIS5
2020
.. autoclass:: hyplan.sensors.HyTES
2121
.. autoclass:: hyplan.sensors.PRISM
2222
.. autoclass:: hyplan.sensors.MASTER

hyplan/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
AVIRISClassic,
7373
AVIRISNextGen,
7474
AVIRIS3,
75-
AVIRIS4,
75+
AVIRIS5,
7676
HyTES,
7777
PRISM,
7878
MASTER,
@@ -121,7 +121,7 @@
121121
"find_nearest_airport", "find_nearest_airports", "airports_within_radius",
122122
# Sensors
123123
"Sensor", "LineScanner",
124-
"AVIRISClassic", "AVIRISNextGen", "AVIRIS3", "AVIRIS4",
124+
"AVIRISClassic", "AVIRISNextGen", "AVIRIS3", "AVIRIS5",
125125
"HyTES", "PRISM", "MASTER",
126126
"GLiHT_VNIR", "GLiHT_Thermal", "GLiHT_SIF",
127127
"GCAS_UV_Vis", "GCAS_VNIR", "eMAS", "PICARD",

hyplan/sensors.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"AVIRISClassic",
1313
"AVIRISNextGen",
1414
"AVIRIS3",
15-
"AVIRIS4",
15+
"AVIRIS5",
1616
"HyTES",
1717
"PRISM",
1818
"MASTER",
@@ -219,23 +219,12 @@ def __init__(self):
219219
frame_rate=216 * ureg.Hz
220220
)
221221

222-
class AVIRIS4(LineScanner):
223-
"""AVIRIS-4 imaging spectrometer (39.6° FOV, 1234 pixels, 216 Hz)."""
224-
225-
def __init__(self):
226-
super().__init__(
227-
name="AVIRIS 4",
228-
fov=39.6,
229-
across_track_pixels=1234,
230-
frame_rate=216 * ureg.Hz
231-
)
232-
233222
class AVIRIS5(LineScanner):
234223
"""AVIRIS-5 imaging spectrometer (40.2° FOV, 1239 pixels, 148 Hz)."""
235224

236225
def __init__(self):
237226
super().__init__(
238-
name="AVIRIS 4",
227+
name="AVIRIS 5",
239228
fov=40.2,
240229
across_track_pixels=1239,
241230
frame_rate=148 * ureg.Hz
@@ -378,9 +367,13 @@ def create_sensor(sensor_type: str) -> Sensor:
378367

379368
SENSOR_REGISTRY: Dict[str, Type[Sensor]] = {
380369
"AVIRISClassic": AVIRISClassic,
370+
"AVIRIS Classic": AVIRISClassic,
381371
"AVIRISNextGen": AVIRISNextGen,
372+
"AVIRIS-NG": AVIRISNextGen,
382373
"AVIRIS3": AVIRIS3,
383-
"AVIRIS4": AVIRIS4,
374+
"AVIRIS-3": AVIRIS3,
375+
"AVIRIS5": AVIRIS5,
376+
"AVIRIS-5": AVIRIS5,
384377
"HyTES": HyTES,
385378
"PRISM": PRISM,
386379
"MASTER": MASTER,

notebooks/sensor_comparison.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"outputs": [],
7373
"source": [
7474
"altitudes_m = np.arange(1000, 20001, 1000)\n",
75-
"sensors_to_compare = [\"AVIRIS-3\", \"AVIRIS-4\", \"AVIRIS-NG\", \"HyTES\", \"PRISM\", \"MASTER\"]\n",
75+
"sensors_to_compare = [\"AVIRIS-3\", \"AVIRIS-5\", \"AVIRIS-NG\", \"HyTES\", \"PRISM\", \"MASTER\"]\n",
7676
"\n",
7777
"fig, ax = plt.subplots(figsize=(10, 6))\n",
7878
"\n",

paper/paper.bib

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
@article{dubins1957curves,
2+
title={On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents},
3+
author={Dubins, Lester E.},
4+
journal={American Journal of Mathematics},
5+
volume={79},
6+
number={3},
7+
pages={497--516},
8+
year={1957},
9+
doi={10.2307/2372560}
10+
}
11+
12+
@phdthesis{walker2011dubins,
13+
title={Hard Real-Time Motion Planning for Autonomous Vehicles},
14+
author={Walker, Andrew},
15+
year={2011},
16+
school={Swinburne University of Technology}
17+
}
18+
19+
@article{vincenty1975direct,
20+
title={Direct and inverse solutions of geodesics on the ellipsoid with application of nested equations},
21+
author={Vincenty, Thaddeus},
22+
journal={Survey Review},
23+
volume={23},
24+
number={176},
25+
pages={88--93},
26+
year={1975},
27+
doi={10.1179/sre.1975.23.176.88}
28+
}
29+
30+
@article{cox1954glint,
31+
title={Measurement of the roughness of the sea surface from photographs of the sun's glitter},
32+
author={Cox, Charles and Munk, Walter},
33+
journal={Journal of the Optical Society of America},
34+
volume={44},
35+
number={11},
36+
pages={838--850},
37+
year={1954},
38+
doi={10.1364/JOSA.44.000838}
39+
}
40+
41+
@inproceedings{thompson2022aviris3,
42+
title={{AVIRIS-3}: {N}ext-generation airborne visible infrared imaging spectrometer},
43+
author={Thompson, David R. and Brosnan, Ian and Gao, Bo-Cai and Green, Robert O. and Gross, Barry and Kalashnikova, Olga and Sullivan, Patrick},
44+
booktitle={2022 IEEE Aerospace Conference (AERO)},
45+
pages={1--7},
46+
year={2022},
47+
organization={IEEE},
48+
doi={10.1109/AERO53065.2022.9843565}
49+
}
50+
51+
@article{johnson2011hytes,
52+
title={{HyTES}: {T}hermal emission spectrometer on a new generation airborne platform},
53+
author={Johnson, William R. and Hook, Simon J. and Foote, Michael and Mouroulis, Pantazis Z.},
54+
journal={Proceedings of SPIE},
55+
volume={8154},
56+
pages={81540V},
57+
year={2011},
58+
doi={10.1117/12.894361}
59+
}
60+
61+
@article{mouroulis2014prism,
62+
title={Portable {R}emote {I}maging {S}pectrometer coastal ocean sensor: design, characteristics, and first flight results},
63+
author={Mouroulis, Pantazis and Van Gorp, Byron E. and Green, Robert O. and Dierssen, Heidi and Wilson, Daniel W. and Eastwood, Michael and Boardman, Joseph and Gao, Bo-Cai and Cohen, David and Franklin, Brent and Loya, Frank and Lundeen, Sarah and Mazer, Alan and McCubbin, Ian and Motell, Craig and Terzian, Jackson},
64+
journal={Applied Optics},
65+
volume={53},
66+
number={7},
67+
pages={1363--1380},
68+
year={2014},
69+
doi={10.1364/AO.53.001363}
70+
}
71+
72+
@article{blair1999lvis,
73+
title={The {L}aser {V}egetation {I}maging {S}ensor: a medium-altitude, digitisation-only, airborne laser altimeter for mapping vegetation and topography},
74+
author={Blair, J. Bryan and Rabine, David L. and Hofton, Michelle A.},
75+
journal={ISPRS Journal of Photogrammetry and Remote Sensing},
76+
volume={54},
77+
number={2--3},
78+
pages={115--122},
79+
year={1999},
80+
doi={10.1016/S0924-2716(99)00002-7}
81+
}
82+
83+
@article{hensley2008uavsar,
84+
title={Status of a {UAVSAR} designed for repeat pass interferometry for deformation measurements},
85+
author={Hensley, Scott and Wheeler, Kevin and Sadowy, Gregory and Jones, Cathleen and Shaffer, Scott and Zebker, Howard and Miller, Timothy and Heavey, Brandon and Chuang, Eric and Chao, Robert and Vines, Katherine and Nishimoto, Dennis and Prater, Jennifer and Carrico, Brock and Chamberlain, Nicky and Shimada, Joanne and Perkovic, Dusan and Lu, Yunling},
86+
journal={IEEE Aerospace Conference Proceedings},
87+
pages={1--8},
88+
year={2008},
89+
doi={10.1109/AERO.2008.4526385}
90+
}
91+
92+
@article{gorelick2017gee,
93+
title={{G}oogle {E}arth {E}ngine: {P}lanetary-scale geospatial analysis for everyone},
94+
author={Gorelick, Noel and Hancher, Matt and Dixon, Mike and Ilyushchenko, Simon and Thau, David and Moore, Rebecca},
95+
journal={Remote Sensing of Environment},
96+
volume={202},
97+
pages={18--27},
98+
year={2017},
99+
doi={10.1016/j.rse.2017.06.031}
100+
}
101+
102+
@misc{pint,
103+
title={Pint: Operate and manipulate physical quantities in {P}ython},
104+
author={Grecco, Hernan E.},
105+
year={2024},
106+
url={https://pint.readthedocs.io}
107+
}
108+
109+
@article{harris2020numpy,
110+
title={Array programming with {NumPy}},
111+
author={Harris, Charles R. and Millman, K. Jarrod and van der Walt, St\'{e}fan J. and Gommers, Ralf and Virtanen, Pauli and Cournapeau, David and Wieser, Eric and Taylor, Julian and Berg, Sebastian and Smith, Nathaniel J. and Kern, Robert and Picus, Matti and Hoyer, Stephan and van Kerkwijk, Marten H. and Brett, Matthew and Haldane, Allan and del R\'{i}o, Jaime Fern\'{a}ndez and Wiebe, Mark and Peterson, Pearu and G\'{e}rard-Marchant, Pierre and Sheppard, Kevin and Reddy, Tyler and Weckesser, Warren and Abbasi, Hameer and Gohlke, Christoph and Oliphant, Travis E.},
112+
journal={Nature},
113+
volume={585},
114+
number={7825},
115+
pages={357--362},
116+
year={2020},
117+
doi={10.1038/s41586-020-2649-2}
118+
}
119+
120+
@inproceedings{mckinney2010pandas,
121+
title={Data structures for statistical computing in {P}ython},
122+
author={McKinney, Wes},
123+
booktitle={Proceedings of the 9th Python in Science Conference},
124+
pages={56--61},
125+
year={2010},
126+
doi={10.25080/Majora-92bf1922-00a}
127+
}
128+
129+
@software{jordahl2020geopandas,
130+
title={{GeoPandas}: {P}ython tools for geographic data},
131+
author={Jordahl, Kelsey and Van den Bossche, Joris and Fleischmann, Martin and others},
132+
year={2020},
133+
publisher={Zenodo},
134+
doi={10.5281/zenodo.3946761}
135+
}
136+
137+
@software{gillies2007shapely,
138+
title={Shapely: manipulation and analysis of geometric objects},
139+
author={Gillies, Sean and others},
140+
year={2007},
141+
publisher={Zenodo},
142+
doi={10.5281/zenodo.5597138}
143+
}
144+
145+
@article{hirsch2018pymap3d,
146+
title={{PyMap3D}: {3-D} coordinate conversions for terrestrial and geospace environments},
147+
author={Hirsch, Michael},
148+
journal={Journal of Open Source Software},
149+
volume={3},
150+
number={23},
151+
pages={580},
152+
year={2018},
153+
doi={10.21105/joss.00580}
154+
}
155+
156+
@misc{rhodes2019skyfield,
157+
title={Skyfield: High precision research-grade positions for planets and {E}arth satellites generator},
158+
author={Rhodes, Brandon},
159+
year={2019},
160+
url={https://rhodesmill.org/skyfield/}
161+
}
162+
163+
@inproceedings{hagberg2008networkx,
164+
title={Exploring network structure, dynamics, and function using {NetworkX}},
165+
author={Hagberg, Aric A. and Schult, Daniel A. and Swart, Pieter J.},
166+
booktitle={Proceedings of the 7th Python in Science Conference},
167+
pages={11--15},
168+
year={2008},
169+
doi={10.25080/TCWV9851}
170+
}
171+
172+
@article{reda2004sunposition,
173+
title={Solar position algorithm for solar radiation applications},
174+
author={Reda, Ibrahim and Andreas, Afshin},
175+
journal={Solar Energy},
176+
volume={76},
177+
number={5},
178+
pages={577--589},
179+
year={2004},
180+
doi={10.1016/j.solener.2003.12.003}
181+
}
182+
183+
@software{gdal2024,
184+
title={{GDAL/OGR} Geospatial Data Abstraction software Library},
185+
author={{GDAL/OGR contributors}},
186+
year={2024},
187+
publisher={Open Source Geospatial Foundation},
188+
doi={10.5281/zenodo.5884351},
189+
url={https://gdal.org}
190+
}
191+
192+
@misc{mco1999,
193+
title={{M}ars {C}limate {O}rbiter mishap investigation board phase {I} report},
194+
author={{NASA}},
195+
year={1999},
196+
url={https://llis.nasa.gov/llis_lib/pdf/1009464main1_0641-mr.pdf}
197+
}
198+
199+
@misc{qgroundcontrol,
200+
title={{QGroundControl}: Intuitive and powerful ground control station for the {MAVLink} protocol},
201+
author={{Dronecode Project}},
202+
year={2024},
203+
url={http://qgroundcontrol.com}
204+
}
205+
206+
@article{cardoso2025bioscape,
207+
title={The biodiversity survey of the {C}ape ({BioSCape}), integrating remote sensing with biodiversity science},
208+
author={Cardoso, Ana W. and Hestir, Erin L. and Slingsby, Jasper A. and others},
209+
journal={npj Biodiversity},
210+
volume={4},
211+
number={1},
212+
pages={5},
213+
year={2025},
214+
publisher={Nature Publishing Group},
215+
doi={10.1038/s44185-024-00071-5}
216+
}
217+
218+
@article{chadwick2025shift,
219+
title={Unlocking ecological insights from sub-seasonal visible-to-shortwave infrared imaging spectroscopy: {T}he {SHIFT} campaign},
220+
author={Chadwick, K. Dana and Cawse-Nicholson, Kerry and Thompson, David R. and others},
221+
journal={Ecosphere},
222+
volume={16},
223+
number={3},
224+
pages={e70194},
225+
year={2025},
226+
doi={10.1002/ecs2.70194}
227+
}
228+
229+
@article{miller2025above,
230+
title={Airborne imaging spectroscopy surveys of {A}rctic and boreal {A}laska and northwestern {C}anada 2017--2023},
231+
author={Miller, Charles E. and Green, Robert O. and Thompson, David R. and Thorpe, Andrew K. and Eastwood, Michael L. and McCubbin, Ian B. and Olson-Duvall, Winston and Bernas, Michael A. and Sarture, Charles M. and Rios, Luis M. and Hernandez, M. A. and Bue, Brian D. and Lundeen, Sarah R. and Pavlick, Ryan and Chapman, John W. and Brodrick, Philip G. and Eckert, Regina F. and Coleman, R. Willow and Baskaran, Latha and Elder, Clayton D.},
232+
journal={Scientific Data},
233+
volume={12},
234+
pages={692},
235+
year={2025},
236+
publisher={Nature Publishing Group},
237+
doi={10.1038/s41597-025-04898-w}
238+
}
239+
240+
@software{leblanc2018movinglines,
241+
title={Moving Lines: {NASA} airborne research flight planning tool},
242+
author={LeBlanc, Samuel E.},
243+
year={2018},
244+
publisher={Zenodo},
245+
doi={10.5281/zenodo.1478126},
246+
url={https://github.com/samuelleblanc/fp}
247+
}

0 commit comments

Comments
 (0)