forked from SpatioTemporal/STARE
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNOTES
More file actions
251 lines (158 loc) · 7.93 KB
/
NOTES
File metadata and controls
251 lines (158 loc) · 7.93 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
2020-09-13 Version 0.16.2
Fix test/CUTE/tests segfault arising when STARE_SRC_HOME not set.
2020-09-12 Version 0.16.1
Add default constructor to LatLonDegrees64.
2020-09-01 Version 0.16.0
Add SpatialRange::intersects that checks if a single spatial index value is contained therein. Performance scaling is not as expected.
2020-05-30 Version 0.15.6
Added an in-place adaptive resolution function for STARE spatial index value arrays.
2020-05-30 Version 0.15.5
Nonconvex now produces the complement when the input polygon is CW.
Needs more testing.
Fixed subtle error in nonconvex that dropped trixels when not enough
of the pixel intersected the ROI.
2020-05-28 Version 0.15.4
Removing polygon parity seems to introduce other ambiguities. Now we
require that polygons processed by non-convex hull be counter-clockwise,
i.e. areal normal pointing outward from sphere (right-hand sense).
2020-05-27 Version 0.15.3
Removed restriction on polygon parity.
* 2020-05-22 Version 0.15.0, 0.15.1, 0.15.2
Added a non-convex hull routine. Correction because of polygon parity needed more care.
Fixed problems with non-convex hull. Removed dependence on convex hull.
Found bug in index counting. Switched to older less precise point-in-triangle solve.
* 2020-05-20 Version 0.14.3
Small change to tests. Added in-place data-driven data resolution estimation
& coercion for STARE spatial indexing.
* 2020-05-01 Version 0.14.2
Extended domain of TriangleFromValue and LatLonDegreesFromValue to cover
terminators. LatLons are calculated by converting to resolution level of 27.
* 2020-04-10 Version 0.14.1
Add range in SpatialRange was implicitly destructing (a complex) SpatialRange
input, leading to a double-freeing of certain objects. Fixed by changing
signature to const&. We should look for other places where we pass complex
objects that require such treatment. Perhaps I'm not getting value- or
copy-semantics right.
* 2020-03-27 Version 0.14
PySTARE removed.
* 2020-03-20 Version 0.13
Added box_cover_from_latlon to PySTARE, also checked effect of correct varlen
signature in convex hull routines.
* 2020-03-19 Version 0.12
Adding STARE_Stash for a basic persistence mechanism, writing to binary files.
* 2020-03-11 Version 0.11.3
Fixed a bad 'off-by-one' array size declaration in STARE_Covers_test. Led to
segfault on CentOS 7 but not on Fedora 31.
* 2020-02-27 Version 0.11.2
htmInterface::convexHull failed for a case involving a moderate number of points.
RangeConvex::simplify0 removes the N-i constraint where N is the number of
constraints and i is identified earlier in the routine. The error was simplify0
was using the current length of the constraint vector for N rendering the
index values i invalid.
Note: MLR: I do not understand the construction of the RangeConvex constraint
list so that ruling out constraint(i) leads to the deletion of constraint(N-i-1).
* 2020-02-13 Version 0.11.1
htmInterface::convexHull failed for a case involving several colinear points.
ConvexHull did not correctly determine and eliminate internal points, sending
bad (colinear) segments to simplify0. Relaxing the tolerance (tol2) in
SpatialInterface::setPolyCorner and RangeConvex::simplify0 may help.
* 2020-02-07 Version 0.11
- STARE::adaptSpatialResolutionEstimates
- STARE::cmpSpatialResolutionEstimate and STARE::cmpSpatialResolutionEstimateI
- STARE::cmpSpatialDistanceCosine
- STARE::cmpSpatialDistanceRadians
* 2020-02-05 Version 0.10.3
Fixed: Q0 (root level) not handled correctly by STARE interface.
* 2019-12-20 Version 0.10.2
PySTARE triangulate for Matplotlib support was improperly cut & pasted.
* 2019-12-18 Version 0.10.1
- Bugfix. PySTARE.i _intersect_multiresolution broken during
analysis. Unit test and fix added.
* 2019-12-18 Version 0.10.0
- Shapely and Geopandas support.
- Valgrind analysis and leak patching.
* 2019-11-14 Version 0.9.1
Diagnostic "iFuse" loop counter set to low value of 12 during testing
of "infinite" looping in RangeConvex::simplify0. This guaranteed that
large enough sets of points sent to ConvexHull would overstep this
loop limit, which would then exit 1 the app.
* 2019-11-14 Version 0.9.0
Many improvements, most to pystare.
In pystare...
- Circular covers
- Support for matplotlib.tri.Triangulate
- A toe in the water of exceptions
In the library...
- Subtle bug corrected in terminator construction
* 2019-09-23 Version 0.8.2
Replacing math.h with cmath seems to help builds on CentOS 7 and later gcc.
* 2019-09-22 Version 0.8.1
Made change to STARE.h not STARE.h.in in 0.8.0 that
broke compilation and hid problem with STARE::ValueFromSpatialVector.
* 2019-09-21 Version 0.8.0
Many improvements to pystare.
- Vertices & Centroids
- ConvexHull
- SpatialRange interval lists
- Expand intervals into spatial id values
- Intersection
- Visualization examples
Some use is made of the STARE spatial index as a way to convey location information,
however there is some difficulty going back and forth to SpatialVectors. Note
that vertices and edges are not the easiest points to determine.
There was a bug in expandIntervals due to the confusing nature of
EmbeddedLevelNameEncoding with its native and SciDB formats.
Added a number of tests using Constraint.
Improved intersection behavior by injecting dependency on varlen, i.e.
interior vs. boundary calculation. Setting varlen to false tends to
force calculation all the way down to leaf, whereas varlen true
stops on reaching a fully enclosed trixel, leading to the multi-resolution
partitioning.
Corrected bug in SetPolyCorner of ConvexHull calculation. 2-corner list would
throw out co-linear third point without checking if it extended the side
or not.
Changed HtmRangeMultiLevel::RangeFromIntersection to eliminate iteration over
the range in favor of using the SkipList's findMAX. Also eliminated superfluous
iteration after intersection is found.
Added SpatialRange to use SkipList to generate intersections. Note the intersect
doesn't use find or search, so it's not clear we're getting the benefit of the SkipLists.
* 2019-09-05 Version 0.7.0
Added Griessenbaum's new apps and python interface.
* 2019-08-27 Version 0.6.3
Older versions of cmake that don't have the two policies used in the
if(SWIG_FOUND) section are now supported (i.e., the build doesn't break).
However, the python bindings don't build for those versions of cmake,
even if swig is present.
* 2019-09-03 Version 0.6.3
Convex hull fixes. Note that the convex hull is still producing triangles in the interior.
* 2019-08-17 Version 0.6.2
Improved build. Python include directories now controlled by environment
variable PYTHON_INCLUDE_DIRS.
* 2019-08-08 Version 0.6.2*
- Rename PySTARE1 to PySTARE.
- PySTARE has a slightly different usage and no tuple/list support
currently depending on Numpy. (See contrib/python examples.)
* 2019-08-06 Version 0.6.1
Minor modifications. Build improvements. PySTARE and Boost removed.
Corrected NOTES and INSTALL documentation.
* 2019-07-03 Version 0.5.0
- Added ERFA single file and CUTE. Cf. 6/19.
- Tests for SWIG.
- Added integer-based "contains," i.e. cmpSpatial.
- ERFA provides datum mappings for precise positioning in time. We should
take advantage of this when we need to associate longitude and time.
* 2019-06-19
** TODOs
- Add ERFA and CUTE to the root directory of the distribution.
- Update the CMakeLists.txt to reflect those changes and reduce hardcoding.
- A number of classes & files have a "1" at the end of their names This
generally indicates a need to refactor as the "1" is either a
derived class or an evolution meant to replace older code.
- The TemporalIndex hierarchy of classes needs more thought. Currently
the default type is #2 and different implementations for the other
types is left for the future.
** ODDITIES
- The HTM spatial libraries, in particular the SkipList code used for
spatial ranges and covers expects negative index values to indicate
invalid indices. Therefore the STARE spatial index must be positive
and the most significant bit is not used.