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

Save and apply jigsaw adjustments #5419

Merged
merged 17 commits into from
Sep 20, 2024

Conversation

chkim-usgs
Copy link
Contributor

@chkim-usgs chkim-usgs commented Feb 3, 2024

Description

Added the boolean param ADJUSTMENTOUT_H5 that is set to true as default and outputs the bundle adjustment values to an HDF5 file called adjustment_out.h5.

Also created param ADJUSTMENT_INPUT that takes in an HDF5 file that holds the adjustment values to be applied to the cubes. For this functionality to occur, UPDATE must be set to true.

*Note that this new feature only currently support ISIS adjustments. The issue to add CSM support is here.

Related Issue

#4474, #5411

How Has This Been Validated?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Documentation change (update to the documentation; no code change)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Infrastructure change (changes to things like CI or the build system that do not impact users)

Checklist:

  • I have read and agree to abide by the Code of Conduct
  • I have read the CONTRIBUTING document.
  • My change requires a change to the documentation and I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • I have added myself to the .zenodo.json document.
  • I have added my user impacting change to the CHANGELOG.md document.

Licensing

This project is mostly composed of free and unencumbered software released into the public domain, and we are unlikely to accept contributions that are not also released into the public domain. Somewhere near the top of each file should have these words:

This work is free and unencumbered software released into the public domain. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain.

  • I dedicate any and all copyright interest in this software to the public domain. I make this dedication for the benefit of the public at large and to the detriment of my heirs and successors. I intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

* @param tableStr The table string
* @param fieldDelimiter The delimiter to separate fields with
*/
Table::Table(const QString &tableName, const std::string &tableString, const char &fieldDelimiter) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think if we are reading in Jigsaw results we should be able to use the ISIS CSVReader class instead of implementing the reader in Table. I could be missing something about our CSV Reader though.

Something to try when we get back to this

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CSVReader was kind of a mess. I dont mind re-visiting trying it, originally, we wanted to just write out the blobs using with something like Table -> toBlob -> write(stringstream) -> write to HDF5. But that also was a mess. If we revisit I think trying the blob route would be best. She was able to get it work with a quick ghetto method than I was trying to de-tangle Blob writing with streams. Only spent a day on it, but I was getting a bunch of segfaults and stream errors for whatever reason.

@chkim-usgs chkim-usgs marked this pull request as ready for review June 14, 2024 20:26
@amystamile-usgs
Copy link
Contributor

Unable to run tests until merge conflicts have been handled.

@amystamile-usgs
Copy link
Contributor

Running into dependency errors:


[Container] 2024/07/17 17:46:09.707139 Running command conda env create -n isis -f environment.yml
--
100 | Channels:
101 | - conda-forge
102 | - defaults
103 | - usgs-astrogeology
104 | Platform: linux-64
105 | Collecting package metadata (repodata.json): ...working... done
106 | Solving environment: ...working... failed
107 | Channels:
108 | - conda-forge
109 | - defaults
110 | - usgs-astrogeology
111 | Platform: linux-64
112 | Collecting package metadata (repodata.json): ...working... done
113 | Solving environment: ...working... failed
114 |  
115 | LibMambaUnsatisfiableError: Encountered problems while solving:
116 | - package pcl-1.13.1-hd129add_1 requires vtk >=9.2.6,<9.2.7.0a0, but none of the providers can be installed
117 |  
118 | Could not solve for environment specs
119 | The following packages are incompatible
120 | ├─ curl >=8.4.0,<8.5  is installable with the potential options
121 | │  ├─ curl 8.4.0 would require
122 | │  │  ├─ libcurl 8.4.0 hca28451_0, which requires
123 | │  │  │  └─ openssl >=3.1.3,<4.0a0  with the potential options
124 | │  │  │     ├─ openssl [3.1.3\|3.1.4\|3.1.5\|3.1.6], which can be installed;
125 | │  │  │     ├─ openssl 3.2.0 conflicts with any installable versions previously reported;
126 | │  │  │     └─ openssl [3.2.1\|3.2.2\|3.3.0\|3.3.1] conflicts with any installable versions previously reported;
127 | │  │  └─ openssl >=3.1.3,<4.0a0  with the potential options
128 | │  │     ├─ openssl [3.1.3\|3.1.4\|3.1.5\|3.1.6], which can be installed;
129 | │  │     ├─ openssl 3.2.0 conflicts with any installable versions previously reported;
130 | │  │     └─ openssl [3.2.1\|3.2.2\|3.3.0\|3.3.1] conflicts with any installable versions previously reported;
131 | │  └─ curl 8.4.0 would require
132 | │     └─ libcurl [8.4.0 h251f7ec_0\|8.4.0 h251f7ec_1], which requires
133 | │        └─ zlib >=1.2.13,<1.3.0a0 , which can be installed;
134 | ├─ hdf5 >=1.14.2,<1.14.3.0a0  is requested and can be installed;
135 | ├─ libgdal >=3.7,<3.8  is installable with the potential options
136 | │  ├─ libgdal [3.7.0\|3.7.1] would require
137 | │  │  └─ icu >=72.1,<73.0a0 , which can be installed;
138 | │  ├─ libgdal 3.7.1 would require
139 | │  │  └─ icu >=73.2,<74.0a0 , which conflicts with any installable versions previously reported;
140 | │  ├─ libgdal [3.7.2\|3.7.3] would require
141 | │  │  └─ libxml2 >=2.11.5,<3.0.0a0  with the potential options
142 | │  │     ├─ libxml2 [2.11.5\|2.11.6\|...\|2.12.7] would require
143 | │  │     │  └─ icu >=73.2,<74.0a0 , which conflicts with any installable versions previously reported;
144 | │  │     ├─ libxml2 2.12.7 would require
145 | │  │     │  └─ icu >=75.1,<76.0a0 , which can be installed;
146 | │  │     ├─ libxml2 2.13.1 would require
147 | │  │     │  └─ zlib >=1.2.13,<1.3.0a0 , which can be installed;
148 | │  │     └─ libxml2 2.11.5 would require
149 | │  │        └─ icu >=72.1,<73.0a0 , which can be installed;
150 | │  ├─ libgdal 3.7.3 would require
151 | │  │  └─ libcurl >=8.5.0,<9.0a0  with the potential options
152 | │  │     ├─ libcurl 8.5.0 conflicts with any installable versions previously reported;
153 | │  │     ├─ libcurl 8.6.0 conflicts with any installable versions previously reported;
154 | │  │     ├─ libcurl [8.7.1\|8.8.0] conflicts with any installable versions previously reported;
155 | │  │     └─ libcurl [8.4.0\|8.5.0\|8.7.1], which can be installed (as previously explained);
156 | │  ├─ libgdal 3.7.3 would require
157 | │  │  └─ libcurl >=8.6.0,<9.0a0  with the potential options
158 | │  │     ├─ libcurl 8.6.0 conflicts with any installable versions previously reported;
159 | │  │     ├─ libcurl [8.7.1\|8.8.0] conflicts with any installable versions previously reported;
160 | │  │     └─ libcurl [8.4.0\|8.5.0\|8.7.1], which can be installed (as previously explained);
161 | │  ├─ libgdal 3.7.3 would require
162 | │  │  └─ libxml2 >=2.11.6,<3.0.0a0  with the potential options
163 | │  │     ├─ libxml2 [2.11.5\|2.11.6\|...\|2.12.7], which cannot be installed (as previously explained);
164 | │  │     ├─ libxml2 2.12.7, which can be installed (as previously explained);
165 | │  │     └─ libxml2 2.13.1, which can be installed (as previously explained);
166 | │  └─ libgdal 3.7.3 would require
167 | │     └─ libcurl >=8.7.1,<9.0a0  with the potential options
168 | │        ├─ libcurl [8.7.1\|8.8.0] conflicts with any installable versions previously reported;
169 | │        └─ libcurl [8.4.0\|8.5.0\|8.7.1], which can be installed (as previously explained);
170 | ├─ libopencv >=4.7,<4.8  is installable with the potential options
171 | │  ├─ libopencv 4.7.0 would require
172 | │  │  ├─ harfbuzz >=7.3.0,<8.0a0  with the potential options
173 | │  │  │  ├─ harfbuzz 7.3.0 would require
174 | │  │  │  │  └─ icu >=73.2,<74.0a0 , which conflicts with any installable versions previously reported;
175 | │  │  │  └─ harfbuzz 7.3.0 would require
176 | │  │  │     └─ icu >=72.1,<73.0a0 , which can be installed;
177 | │  │  └─ hdf5 >=1.14.1,<1.14.2.0a0 , which conflicts with any installable versions previously reported;
178 | │  ├─ libopencv 4.7.0 would require
179 | │  │  ├─ harfbuzz >=7.3.0,<8.0a0  with the potential options
180 | │  │  │  ├─ harfbuzz 7.3.0, which cannot be installed (as previously explained);
181 | │  │  │  └─ harfbuzz 7.3.0, which can be installed (as previously explained);
182 | │  │  └─ hdf5 >=1.12.2,<1.12.3.0a0  but there are no viable options
183 | │  │     ├─ hdf5 1.12.2 would require
184 | │  │     │  └─ openssl >=1.1.1q,<1.1.2a , which conflicts with any installable versions previously reported;
185 | │  │     ├─ hdf5 1.12.2 conflicts with any installable versions previously reported;
186 | │  │     └─ hdf5 [1.12.2\|1.14.0] would require
187 | │  │        └─ openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported;
188 | │  ├─ libopencv 4.7.0 would require
189 | │  │  ├─ harfbuzz >=7.3.0,<8.0a0  with the potential options
190 | │  │  │  ├─ harfbuzz 7.3.0, which cannot be installed (as previously explained);
191 | │  │  │  └─ harfbuzz 7.3.0, which can be installed (as previously explained);
192 | │  │  └─ hdf5 >=1.14.0,<1.14.1.0a0  but there are no viable options
193 | │  │     ├─ hdf5 [1.12.2\|1.14.0], which cannot be installed (as previously explained);
194 | │  │     ├─ hdf5 1.14.0 would require
195 | │  │     │  └─ openssl >=1.1.1t,<1.1.2a , which conflicts with any installable versions previously reported;
196 | │  │     └─ hdf5 1.14.0 conflicts with any installable versions previously reported;
197 | │  ├─ libopencv 4.7.0 would require
198 | │  │  └─ harfbuzz >=6.0.0,<7.0a0  but there are no viable options
199 | │  │     ├─ harfbuzz 6.0.0 would require
200 | │  │     │  └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported;
201 | │  │     └─ harfbuzz 6.0.0 would require
202 | │  │        └─ icu >=72.1,<73.0a0 , which can be installed;
203 | │  └─ libopencv 4.7.0 would require
204 | │     └─ harfbuzz >=7.3.0,<8.0a0  with the potential options
205 | │        ├─ harfbuzz 7.3.0, which cannot be installed (as previously explained);
206 | │        └─ harfbuzz 7.3.0, which can be installed (as previously explained);
207 | ├─ opencv >=4.7,<4.8  is not installable because there are no viable options
208 | │  ├─ opencv 4.7.0 would require
209 | │  │  └─ libopencv [4.7.0 py310h4120a83_2\|4.7.0 py310h5bd1119_0\|...\|4.7.0 py39hbeb1642_2], which cannot be installed (as previously explained);
210 | │  ├─ opencv 4.7.0 would require
211 | │  │  ├─ libopencv 4.7.0 py310hbab4fdf_3, which cannot be installed (as previously explained);
212 | │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
213 | │  ├─ opencv 4.7.0 would require
214 | │  │  ├─ libopencv 4.7.0 py310h245f934_4, which cannot be installed (as previously explained);
215 | │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
216 | │  ├─ opencv 4.7.0 would require
217 | │  │  ├─ libopencv [4.7.0 py310h3e876cf_5\|4.7.0 py310h3e876cf_6], which cannot be installed (as previously explained);
218 | │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
219 | │  ├─ opencv 4.7.0 would require
220 | │  │  ├─ libopencv 4.7.0 py311hc926134_3, which cannot be installed (as previously explained);
221 | │  │  └─ python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported;
222 | │  ├─ opencv 4.7.0 would require
223 | │  │  ├─ libopencv 4.7.0 py311hfd9f270_4, which cannot be installed (as previously explained);
224 | │  │  └─ python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported;
225 | │  ├─ opencv 4.7.0 would require
226 | │  │  ├─ libopencv [4.7.0 py311h8aafb54_5\|4.7.0 py311h8aafb54_6], which cannot be installed (as previously explained);
227 | │  │  └─ python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported;
228 | │  ├─ opencv 4.7.0 would require
229 | │  │  └─ python_abi 3.8 *_pypy38_pp73, which conflicts with any installable versions previously reported;
230 | │  ├─ opencv 4.7.0 would require
231 | │  │  └─ python_abi 3.8.* *_cp38, which conflicts with any installable versions previously reported;
232 | │  ├─ opencv 4.7.0 would require
233 | │  │  └─ python_abi 3.9 *_pypy39_pp73, which conflicts with any installable versions previously reported;
234 | │  └─ opencv 4.7.0 would require
235 | │     └─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported;
236 | ├─ openssl >=3.1.2,<3.2  is requested and can be installed;
237 | ├─ pcl >=1.13,<1.14  is installable and it requires
238 | │  ├─ vtk [>=9.2.2,<9.2.3.0a0 \|>=9.2.5,<9.2.6.0a0 \|>=9.2.6,<9.2.7.0a0 ], which requires
239 | │  │  ├─ gl2ps >=1.4.2,<1.4.3.0a0  with the potential options
240 | │  │  │  ├─ gl2ps 1.4.2 would require
241 | │  │  │  │  └─ zlib >=1.2.11,<1.3.0a0 , which can be installed;
242 | │  │  │  └─ gl2ps 1.4.2 would require
243 | │  │  │     └─ libzlib >=1.3.1,<2.0a0  with the potential options
244 | │  │  │        ├─ libzlib 1.3.1 would require
245 | │  │  │        │  └─ zlib 1.3.1 *_1, which can be installed;
246 | │  │  │        └─ libzlib 1.3.1 would require
247 | │  │  │           └─ zlib 1.3.1 *_0, which can be installed;
248 | │  │  └─ vtk-base [9.2.6 egl_py310h1234567_10\|9.2.6 egl_py310h1234567_11\|...\|9.2.6 qt_py39h1234567_223], which requires
249 | │  │     └─ gl2ps >=1.4.2,<1.4.3.0a0 , which can be installed (as previously explained);
250 | │  └─ vtk-base >=9.2.6,<9.2.7.0a0 , which can be installed (as previously explained);
251 | ├─ python >=3.10  is installable with the potential options
252 | │  ├─ python [3.10.0\|3.10.1\|...\|3.12.4], which can be installed;
253 | │  ├─ python 3.10.2 would require
254 | │  │  └─ ncurses >=6.2,<6.3.0a0 , which can be installed;
255 | │  ├─ python [3.10.13\|3.11.7] would require
256 | │  │  └─ openssl >=3.2.0,<4.0a0 , which conflicts with any installable versions previously reported;
257 | │  ├─ python [3.10.14\|3.11.8\|3.11.9] would require
258 | │  │  └─ openssl >=3.2.1,<4.0a0 , which conflicts with any installable versions previously reported;
259 | │  ├─ python 3.12.0rc3 would require
260 | │  │  └─ _python_rc, which does not exist (perhaps a missing channel);
261 | │  ├─ python [3.10.0\|3.10.3\|3.10.4] would require
262 | │  │  └─ zlib >=1.2.11,<1.3.0a0 , which can be installed;
263 | │  ├─ python [3.10.10\|3.10.11\|...\|3.12.4] would require
264 | │  │  └─ zlib >=1.2.13,<1.3.0a0 , which can be installed;
265 | │  └─ python 3.10.6 would require
266 | │     └─ zlib >=1.2.12,<1.3.0a0 , which can be installed;
267 | ├─ python_abi >=3.10  is installable with the potential options
268 | │  ├─ python_abi [3.10\|3.12] conflicts with any installable versions previously reported;
269 | │  ├─ python_abi 3.10, which can be installed;
270 | │  ├─ python_abi 3.11 conflicts with any installable versions previously reported;
271 | │  └─ python_abi 3.10 would require
272 | │     └─ python 3.10.* *_native231_graalpy, which conflicts with any installable versions previously reported;
273 | ├─ sqlite >=3.46.0,<3.47  is not installable because it requires
274 | │  └─ ncurses >=6.5,<7.0a0 , which conflicts with any installable versions previously reported;
275 | ├─ texlive-core is installable with the potential options
276 | │  ├─ texlive-core [20160520\|20160523b] would require
277 | │  │  └─ zlib 1.2.* , which can be installed;
278 | │  ├─ texlive-core 20170520 would require
279 | │  │  └─ zlib 1.2.8 , which can be installed;
280 | │  ├─ texlive-core 20170520 would require
281 | │  │  └─ zlib 1.2.11 , which can be installed;
282 | │  ├─ texlive-core [20170520\|20180414] would require
283 | │  │  └─ zlib >=1.2.11,<1.3.0a0 , which can be installed;
284 | │  ├─ texlive-core 20180414 would require
285 | │  │  └─ icu >=68.1,<69.0a0 , which conflicts with any installable versions previously reported;
286 | │  ├─ texlive-core [20180414\|20210325] would require
287 | │  │  └─ icu >=69.1,<70.0a0 , which conflicts with any installable versions previously reported;
288 | │  ├─ texlive-core [20210325\|20230313] would require
289 | │  │  └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported;
290 | │  ├─ texlive-core 20230313 would require
291 | │  │  ├─ harfbuzz >=8.3.0,<9.0a0 , which conflicts with any installable versions previously reported;
292 | │  │  └─ icu >=73.2,<74.0a0 , which conflicts with any installable versions previously reported;
293 | │  ├─ texlive-core 20230313 would require
294 | │  │  ├─ harfbuzz >=7.3.0,<8.0a0  with the potential options
295 | │  │  │  ├─ harfbuzz 7.3.0, which cannot be installed (as previously explained);
296 | │  │  │  └─ harfbuzz 7.3.0, which can be installed (as previously explained);
297 | │  │  └─ icu >=72.1,<73.0a0 , which can be installed;
298 | │  ├─ texlive-core 20230313 would require
299 | │  │  ├─ harfbuzz >=7.1.0,<8.0a0  with the potential options
300 | │  │  │  ├─ harfbuzz 7.3.0, which cannot be installed (as previously explained);
301 | │  │  │  ├─ harfbuzz 7.3.0, which can be installed (as previously explained);
302 | │  │  │  ├─ harfbuzz 7.2.0, which can be installed;
303 | │  │  │  └─ harfbuzz 7.1.0, which can be installed;
304 | │  │  └─ icu >=72.1,<73.0a0 , which can be installed;
305 | │  ├─ texlive-core 20230313 would require
306 | │  │  ├─ harfbuzz >=8.2.1,<9.0a0 , which conflicts with any installable versions previously reported;
307 | │  │  └─ icu >=73.2,<74.0a0 , which conflicts with any installable versions previously reported;
308 | │  └─ texlive-core 20230313 would require
309 | │     ├─ harfbuzz >=7.2.0,<8.0a0  with the potential options
310 | │     │  ├─ harfbuzz 7.3.0, which cannot be installed (as previously explained);
311 | │     │  ├─ harfbuzz 7.3.0, which can be installed (as previously explained);
312 | │     │  └─ harfbuzz 7.2.0, which can be installed;
313 | │     └─ icu >=72.1,<73.0a0 , which can be installed;
314 | └─ zlib >=1.3,<1.4.0a0  is not installable because it conflicts with any installable versions previously reported.


Copy link

github-actions bot commented Aug 6, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Copy link

github-actions bot commented Aug 6, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Copy link

github-actions bot commented Aug 8, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

@@ -486,7 +491,8 @@ TEST_F(ObservationPair, FunctionalTestJigsawCamSolveAll) {
QString outCnetFileName = prefix.path() + "/outTemp.net";
QVector<QString> args = {"fromlist="+cubeListFile, "cnet="+cnetPath, "onet="+outCnetFileName,
"observations=yes", "update=yes", "Cksolvedegree=3",
"Camsolve=all", "twist=no", "Spsolve=none", "Radius=no", "imagescsv=on", "file_prefix="+prefix.path()+"/"};
"Camsolve=all", "twist=no", "Spsolve=none", "Radius=no", "imagescsv=on", "file_prefix="+prefix.path()+"/",
"adjustment_output=adj_temp.h5"};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Were these tests failing because it was looking for adjustment_output? I would assume that this parameter should be optional. Otherwise, this is a breaking change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be changed to optional.

Copy link

github-actions bot commented Aug 8, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

@jlaura
Copy link
Collaborator

jlaura commented Aug 13, 2024

I have done a little bit of testing on this.

Invocation

  • It is weird to have to specify update=yes AND adjustment_output=FILEPATH. Personally, I would rather it either write the H5 if adjustment_output is provided or always write an adjustment output h5 file using the existing path prefix. If update=yes, keep the existing functionality where the cubes are updated.
  • The code worked with a very stripped down invocation (omitting basically everything except the required inputs; the adjustment was trash, but it was because nothing was constrained).
  • The code segfaults when I add constraints, e.g. (sigma0=1.0e-10 maxits=10 twist=yes camsolve=accelerations overexisting=yes radius=yes point_radius_sigma=500 camera_angles_sigma=.25 camera_angular_velocity_sigma=.1 camera_angular_acceleration_sigma=.01). No meaningful logs.

Documentation

When applying the adjustment, what parameters are needed? I assume only: cnet, onet, fromlist, adjustment_input, file_prefix? What happens if I specify other parameters?

Functionality

  • It is not clear if this will work with a CSM adjustment. Pre-merge, I think it needs to because CSM sensors are first-class inside ISIS.

Future Work

I think there is an opportunity in the future for improved interoperability with ASP. In ASP, one can run pc_align and then a single iteration adjustment to update the state of the input sensor. The input to that is the adjustment transformation needed to shift the ephemerides. I assume that is exactly what is being stored in the H5 file. Somehow coordinating and matching formats of the stored adjustments would mean that one could bundle in ISIS and then update CSM state files in ASP.

Copy link

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Copy link

github-actions bot commented Sep 6, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Copy link

github-actions bot commented Sep 9, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Copy link

github-actions bot commented Sep 9, 2024

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

@Kelvinrr
Copy link
Collaborator

Looks like some jigsaw tests are failing

@acpaquette
Copy link
Collaborator

@chkim-usgs Looks like the apollo jigsaw failures are related to HDF5 file writing and the CSM jigsaw test is failing as it's trying to access elements not available on the CSM init'd cube.

Copy link

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Comment on lines 1855 to 1871
<parameter name="ADJUSTMENT_INPUT">
<type>filename</type>
<internalDefault>none</internalDefault>
<fileMode>input</fileMode>
<brief>
Reads in and applies adjustment values
</brief>
<description>
Reads in and applies bundle adjustment values from an HDF5 file,
usually the outputted adjustment_out.h5 file. Along with the three
required parameters, UPDATE must be set to YES for the input values
to be read and applied.
</description>
<filter>
*.h5
</filter>
</parameter>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel we should exclude other files if this is passed in? Things like the adjustment parameters and ADJUSTMENTOUT_H5. See line 1561 on this XML for an example.

Slightly related, @amystamile-usgs has the app XML docs been transferred? I couldn't find it in the docs. If not it's fine it seems like it needs some work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you help specify which params need to be excluded? I was thinking most since we're just applying the adjustment input values and no other calculations should/could be done during this anyway?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeaaaaahhh, it'll pretty much be everything that isn't the input list I think.

@@ -1835,6 +1839,36 @@
<item>no</item>
</default>
</parameter>

<parameter name="ADJUSTMENTOUT_H5">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be more consistent with how ISIS names parameters, for better or worse, maybe name this OutAdjustmentH5

Comment on lines 39 to 42
converges and the <b>UPDATE</b> parameter is selected. In addition to <b>UPDATE</b> being
true and bundle converging, if the <b>ADJUSTMENT_INPUT</b> is set to an HDF5 file containing
bundle adjustment values (usually the HDF5 output file from <b>ADJUSTMENTOUT_H5</b>), those
values can be applied to the <def>cube</def> labels.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would go more into detail about how this file is formatted in case someone wants to open it outside of the context of this app.

Copy link

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_5419".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

@Kelvinrr Kelvinrr merged commit 778abcb into DOI-USGS:dev Sep 20, 2024
2 checks passed
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

Successfully merging this pull request may close these issues.

5 participants