Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIXSensorModel::getValidImageRange() and SIXSensorModel::getValidHeightRange() methods do not have valid implementations. #278

Closed
johnpdpkarp opened this issue May 28, 2019 · 3 comments

Comments

@johnpdpkarp
Copy link

SIXSensorModel::getValidHeightRange() should return the minimum and maximum height for which the model is valid. For some sensor models, these values does have much impact. For active sensors, the MINIMUM height is especially important, as it is entirely possible that the range arc does not intersect the Earth for heights below a certain value.

Similarly, csm::RasterGM is always supposed to provide results relative to "full image" coordinates. If a particular SICD / SIDD comprises a sub-image, and the metadata can only accomodate that sub-image, that should be reflected in getValidImageRange(). Otherwise, getValidImageRange() should reflect the size of the full image. Currently both of these methods are coded to return values from (-99999, 99999) .

@asylvest
Copy link
Contributor

I believe the guidance we received originally was that these were low priority methods to implement and the 99999 value was the recommended way to essentially say "everything".

We can provide your comments to the customer to recommend that we provide legit implementations for these.

@johnpdpkarp
Copy link
Author

That is unfortunate. getValidHeightRange() was specifically added to the API to support active sensors like SAR which have a very definite valid "minimum" height. The "guidance" value is probably okay for the maximum height...
getValidImageRange() should never be returning these default values. If the whole image is valid, it should be equivalent to asking for getImageStart() and getImageSize(). In some instances, the sensor model may be valid over the entire image, or just over some AOI. For example, if you had a scan image that was 2000x2000 pixels which was chipped out of a larger image (3000x10000) starting at location (1000,1000), and the metadata provided only provided information to process over that chip, getImageStart() should give (1000,1000), getImageSize() should give (2000,2000), and getValidImageRange() should give (1000,1000),(3000,3000). If the metadata actually supported the entire image, getImageStart() and getImageSize() would be the same, but getValidImageRange() could actually give (0,0), (3000,10000). The purpose of the method is to let the user know (without having to depend on a warning or error being returned), which image coordinates can be successfully converted to ground.

JonathanMeans added a commit that referenced this issue Jun 12, 2019
a11c529 Merge pull request #281 from mdaus/xerces-parser-hang
afb64a1 Set feature flags to prevent hanging on DTDs
b070887 Merge pull request #278 from mdaus/getReturnType
33b26bd Fix return type for getter
c451ef2 Merge pull request #277 from mdaus/fix_nautical_mile_conversion
845eb13 Fixed bug in nautical miles to feet conversion
8070a11 Merge pull request #274 from mdaus/scratchReleaseTesting
d8a3c9c created two new tests cases for edge cases
8a36a71 Merge pull request #276 from mdaus/gpotts
900837f Added stdc++ explicit operator bool syntax for ScopedCopyablePtr for testing the PTR object to true fals in a boolean expression.
76ac669 Merge pull request #275 from mdaus/fix_library_call
c5860a5 Add missing include in unit test
d68f315 spacing
1bf2d73 removed unecessary code
e4fe1a8 new updated and fixed version of scratch release with generated test cases
ce63ddb Merge pull request #273 from mdaus/buffer_stream
6d73e8c Add include for memcpy
02a2776 Make inherited interface work with bytes instead of elements
3dfba21 Fix bugs when working with larger types
daa41bf Add BufferViewStream

git-subtree-dir: externals/coda-oss
git-subtree-split: a11c52941cd117ec72e0c78d2a0976c10f95378c
@JonathanMeans
Copy link
Contributor

Addressed in #285

JonathanMeans pushed a commit that referenced this issue Feb 24, 2020
e570202 Merge pull request #283 from mdaus/waf_vs_2017
553e238 Try to use default MSVC paths
35ab94b Make gitignore hide generated waf on Windows
3171da1 Update waf to work with VS 2017
5e1b88e Merge pull request #282 from mdaus/buffer_view_stream_niceties
0c2d4c3 Merge pull request #279 from mdaus/scratchVisualization
7410abe Pass BufferView in by const ref and hold onto a copy of it.  Adding another 'using' since we're overloading read()
21050ea Code review fixes, copyright, numBytes
a11c529 Merge pull request #281 from mdaus/xerces-parser-hang
afb64a1 Set feature flags to prevent hanging on DTDs
7e46953 ScratchVisualization, fixed errors from lack of C++11
b070887 Merge pull request #278 from mdaus/getReturnType
33b26bd Fix return type for getter
c451ef2 Merge pull request #277 from mdaus/fix_nautical_mile_conversion
845eb13 Fixed bug in nautical miles to feet conversion
8070a11 Merge pull request #274 from mdaus/scratchReleaseTesting
d8a3c9c created two new tests cases for edge cases
8a36a71 Merge pull request #276 from mdaus/gpotts
900837f Added stdc++ explicit operator bool syntax for ScopedCopyablePtr for testing the PTR object to true fals in a boolean expression.
76ac669 Merge pull request #275 from mdaus/fix_library_call
c5860a5 Add missing include in unit test
d68f315 spacing
1bf2d73 removed unecessary code
e4fe1a8 new updated and fixed version of scratch release with generated test cases
ce63ddb Merge pull request #273 from mdaus/buffer_stream
6d73e8c Add include for memcpy
02a2776 Make inherited interface work with bytes instead of elements
3dfba21 Fix bugs when working with larger types
daa41bf Add BufferViewStream
72669b0 Merge pull request #272 from mdaus/fix_python
3832ca3 Regenerate python bindings with correct version
617a279 Merge pull request #271 from mdaus/scratch_release
2ef97d7 moved brackets
345e305 fixed test case
b79f3cb merge request changes, moved release to .cpp
3582bfc style
f50c173 Merge pull request #270 from mdaus/sio_lite_complex_double
7bb6dd3 working scratch memory release
4db3625 Read SIOs of type complex<double> (reuses the complex<float> case)
7ffca13 Merge pull request #268 from mdaus/scratchmemory
df54917 Remove redundant namespace specifiers.
b92cb27 Add convenience methods to get buffer view of scratch segment.
97c0c16 Merge pull request #267 from mdaus/scratchmemory
d75e067 Refactor the const and non-const get method implementations for ScratchMemory.
5a75b15 Resolve review comments.
c020d26 Add class to handle reservation of scratch memory segments with optional alignment.
754a840 Merge pull request #265 from mdaus/include_stddef
24bfce5 Need stddef.h for size_t
f32c072 Merge pull request #264 from mdaus/allow_bytes
9aee9f2 Allow io to read from bytes object in Python3
f529fea Merge pull request #263 from mdaus/add_range_overlaps
4ad80dc Adding Range::overlaps() convenience methods
faa6f3f Merge pull request #262 from mdaus/assert_header
7c0405b Include header for assert

git-subtree-dir: externals/coda-oss
git-subtree-split: e570202c471fc839a31111a266e83d248891ebfb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants