forked from NOAA-ORR-ERD/PyGnome
-
Notifications
You must be signed in to change notification settings - Fork 1
/
todo.txt
101 lines (83 loc) · 4.38 KB
/
todo.txt
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
92
93
94
95
96
97
98
99
100
WIP - finish by 5/12/2015:
===========================
x currently WeatheringData() updates all 'mass_balance', let SpillContainer/map update 'beached',
'off_maps'
x remove particles that go off maps
WeatheringData() and spreading objects automatically added:
x must be the last thing we do in weather_elements() -- before age is incremented
x make sure spreading works fine
x Langmuir must happen in weather_elements, but it must get initialized after spreading initializes 'area'
x Maybe include 'area', remove 'fay_area' and
include 'frac_coverage' data array
x fix broken tests in test_weathering_data()
Documentation:
x added ipynb analyses to gnome/documenatation/.
- API documentation for movers, weatherers (Process). Save/Load
Incomplete/comments:
--------------------
- SpillContainer should update 'amount_released', 'floating' as well instead of WeatheringData() doing this work
- update spills to end_position equals start_position, end_release_time, release_time
- WeatheringData() and spreading classes should always set active_start and active_stop to -inf and inf.
Other weatherers require these - in the most common case, these will be automatically constructed and
active_start/stop will default to -inf/inf.
- add tests for Langmuir integrated into model.
See ipynb in gnome/documentation/weathering/evaporation/spreading_langmuir.ipynb
was testing it manually though maybe good to include it in test_persist.py and test_model.py
- clean up Model to set 'iscollection' attribute for (movers, weatherers, environment, outputters),
and use base class serialize/deserialize. The model will still need to override base class serialize/
deserialize. (NOTE: low priority, model already works as is)
- tried this but got errors so abandoned the idea. It works as it is and will reduce code by a
few lines but not much so abandoned this refactor for now.
======================
ISSUES:
-------
oil_library:
- get_oil_props() not working for some oils
Model:
------
- cleanup Model code - lots of rewinds. Maybe we can skip rewinding all objects if model
hasn't even started running yet.
Model validation:
- double check lat/long - do validation in Model for lat/long of Wind
- model needs to check if spill is in the Map's spillable area - add to validate()
- also check if spill is onland
Model exceptions:
- added exceptions, though not used everywhere - need to raise gnome exceptions
Colander schemas/save/load:
- revisit serialize/deserialize NumpyArraySchema + inefficiency in serial/deserial wind structure
- scale_refpoint not being deserialized if only (long, lat) is given! Works if (long, lat, z) is given
- maybe just need to add missing=drop in WorldPoint() (look in base_schema.py)
Misc stuff - low priority:
- could refactor and make serialize/deserialize more general and put it in base class
- colander.drop doesn't seem to work for LocalDateTime() objects - need to dig into this with simple example
Weathering:
- BIODEGRADATION
- once LEs get marked for cleanup, should they be included for updating intrinsic - ask?
Mostly effects spreading
- automatically stop when 'mass' % reaches X%
- added split_element() but is incomplete. Currently only required for cleanup.
__eq__:
--------
- want a way to tell which objects and which attributes are different when eq fails
need something like diff()
pytest issues:
---------------
- py.test -n 4 --runslow --basetemp=dump fails, but
py.test -n 4 --runslow passes .. need to figure out why
- some way for pytest to skip tests for missing data
- maybe start adding conftest.py for test subdirectories so pytest works from unit_tests/. and
from test_*/ subdirectories. See test_weatherers/. as an example.
Big refactors/todos:
====================
SpillContainer:
Generalize concept of subselecting LE data:
-------------------------------------------
- revisit concept of FateDataView() in SpillContainer integrate 'status_codes' and 'fate_status'
- want a bit array for 'status' of each LE which includes weathering
- movers or weatherers should be able to get LE data by 'status' or by 'substance' and 'status'
- new code in there without adequate tests
outputters/netcdf_outputter
----------------------------
- want ability to get data at specified timesteps
- for Renderer, change images_dir to output_dir - consistent w/ other outputters
- active_start = active_stop only raises exception on __init__ .. make it so it always raises exception?