Beginner level projection |
Beginner level projection |
Nov 6 2019, 11:50 PM
Post
#1
|
|
Junior Member Group: Members Posts: 31 Joined: 31-October 19 Member No.: 8699 |
Hi,
I'm trying to do the mapping just using SPICE for the Junocam images rather than going through ISIS. It might seem like I'm making life difficult for myself but I just wanted to make sure I'm doing the bare minimum amount of processing so it looks as close to a non-spinny-push-frame image as I can. I'm making all the beginner mistakes but I can't seem to figure out what they are so I was hoping someone might give me a hint? First I want to figure out how far Jupiter is because I want to have anything that didn't hit Jupiter get mapped to a sphere that hits Jupiter. This means any lens effects can get mapped in space near where they originated from which should hopefully make the edges of the planet seem less processed: [jupiterPos, jupiterLt] = spice.spkpos('JUPITER', et0, 'JUNO_SPACECRAFT', 'NONE', 'JUNO') jupiterDistance = np.linalg.norm(jupiterPos) Then I go through all the undistorted Junocam pixel vectors and figure Jupiter intercept points in the IAU_JUPITER frame so now I have a point cloud of all the planet mapped pixels: [point, trgepc, srfvec, found ] = spice.sincpt( 'Ellipsoid', 'JUPITER', et, 'IAU_JUPITER', 'LT+S', 'JUNO_SPACECRAFT', 'JUNO_JUNOCAM', v) If it didn't find an intersection then I figure out where that invisible sphere is going to be by extending out the pixel vector by the separation and move that to the IAU_JUPITER frame: direction = np.array(v) pos = direction*jupiterDistance/np.linalg.norm(direction) rotationMatrix = spice.pxform('JUNO_JUNOCAM','IAU_JUPITER',et-jupiterLt) pos = spice.mxv(rotationMatrix, pos) It works terribly! I seem to have a timing error in the frame offsets that seems suspiciously close to the light time between Jupiter and Juno and the sphere that catches all the sincpt misses is completely miles off. I've been staring at the code for a while and not figuring my mistake, I was hoping someone might point out where I've gone wrong. Many thanks Adam |
|
|
Nov 9 2019, 12:15 AM
Post
#2
|
|
Junior Member Group: Members Posts: 31 Joined: 31-October 19 Member No.: 8699 |
We're totally on the same page Brian.
The help funtion returns sincpt(method, target, et, fixref, abcorr, obsrvr, dref, dvec) which matches the C spice documentation so the penultimate item is the frame for the direction vector which is JUNO_JUNOCAM. While I wait for the Mathematica viewer to download I'm going with mcaplinger's suggestion of forgetting about light correction for a first pass and your suggestion of working in the IAU_JUPITER frame. I couldn't tell if you were doing some clever way of intercepting so I just subtracted the scaled pixel vector from the planet-juno separation. I do think my frames weren't right before so I'm refactoring it now to go into the IAU_JUPITER mostly because sincpt says it only works with the body centered frame so that's the least amount of jiggering. I didn't correct for the limb thinking it would only give a smallish error but I see everyone pointing out how far off this will be. In my defence you see all these planet sphere type pictures so I had no idea how close that thing gets! Just to share, the black thing is the sphere that intersects with the middle of Jupiter and has an origin at Juno and you can see how far away the limb is from there. I switched to open3d rather than matplotlib as a viewer and I have to say being able to rotate the point cloud in real time is pretty awesome. Thanks for everyone being so helpful and that other post is very interesting. |
|
|
Lo-Fi Version | Time is now: 28th May 2024 - 07:29 PM |
RULES AND GUIDELINES Please read the Forum Rules and Guidelines before posting. IMAGE COPYRIGHT |
OPINIONS AND MODERATION Opinions expressed on UnmannedSpaceflight.com are those of the individual posters and do not necessarily reflect the opinions of UnmannedSpaceflight.com or The Planetary Society. The all-volunteer UnmannedSpaceflight.com moderation team is wholly independent of The Planetary Society. The Planetary Society has no influence over decisions made by the UnmannedSpaceflight.com moderators. |
SUPPORT THE FORUM Unmannedspaceflight.com is funded by the Planetary Society. Please consider supporting our work and many other projects by donating to the Society or becoming a member. |