IPB

Welcome Guest ( Log In | Register )

Beginner level projection
adamg
post 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
Brian Swift
post Nov 8 2019, 07:17 AM
Post #2


Member
***

Group: Members
Posts: 411
Joined: 18-September 17
Member No.: 8250




Hi Adam, Welcome to/from the JunoCam raw processing community.

Mapping pixels that don’t intercept Jupiter to an “invisible” sphere is a cool idea, it’s what my processing pipeline does. ;-) I refer to this sphere as the backstop surface. As far as I know, none of the other JunoCam pipelines use this technique.

My pipeline is implemented as a Mathematica notebook available as Juno3D at https://github.com/BrianSwift/JunoCam/tree/master/Juno3D
While my software is permissively free, unfortunately Mathematica’s licensing costs create a significant barrier to its usability.

On your sincpt, double check that 'JUNO_SPACECRAFT',
'JUNO_JUNOCAM' are in the correct parameter position. My calling sequence is
CODE
  sincpt["Ellipsoid", targetName, frameTime, fixref, "CN+S", "JUNO", "JUNO_SPACECRAFT" , pixVecSC ]

but my bridge from Mathematica to the SPICE library may have a different calling sequence than python’s. (Note, don't try substituting "JUNO", for "JUNO_JUNOCAM". I don't use JUNO_JUNOCAM because my pipeline uses a different camera model than found in SPICE.)

With respect to projecting non-intercepting imagery onto a backstop sphere,
rather than moving a point intersecting the backstop sphere into the IAU_JUPITER frame
I define my backstop sphere in the IAU_JUPITER frame and then just compute where the pixel vector intercepts the backstop.

Also, my backstop sphere radius is set to intersect just inside the limb rather than at Jupiter's core to avoid a camera distance discontinuity between intercepting and non-intercepting imagery.

Also note Jupiter’s visible limb can be at a higher altitude (by tens of km) than the SPICE 1-bar limb. This is noticeable with imagery collected near perijove.

Finally, you’ll find a lot of processing discussion under the “Juno PDS data” topic at http://www.unmannedspaceflight.com/index.php?showtopic=8143
Go to the top of the page
 
+Quote Post
mcaplinger
post Nov 8 2019, 03:27 PM
Post #3


Senior Member
****

Group: Members
Posts: 2517
Joined: 13-September 05
Member No.: 497



QUOTE (Brian Swift @ Nov 7 2019, 11:17 PM) *
Mapping pixels that don’t intercept Jupiter to an “invisible” sphere is a cool idea... As far as I know, none of the other JunoCam pipelines use this technique.

Most cartographic pipelines map lat/lon on the target into pixel coordinates on the detector, and the mapping in the other direction is typically only used to determine the lat/lon range of the output map. Of course when doing the lat/lon->x,y mapping you have to account for points that are hidden from the camera by the planet itself.

As for the height of the actual limb relative to the 1-bar spheroid -- this is possibly a factor, but the limb is pretty far away even near perijove so it doesn't make a huge difference. For our timing corrections we ignore this.


--------------------
Disclaimer: This post is based on public information only. Any opinions are my own.
Go to the top of the page
 
+Quote Post

Posts in this topic
- adamg   Beginner level projection   Nov 6 2019, 11:50 PM
- - Gerald   Hi Adam, I'm not even using the SPICE library....   Nov 7 2019, 03:21 AM
- - Bjorn Jonsson   In addition to what Gerald mentioned, I'd star...   Nov 7 2019, 06:41 PM
- - mcaplinger   QUOTE (adamg @ Nov 6 2019, 03:50 PM) It w...   Nov 7 2019, 10:53 PM
|- - adamg   QUOTE (mcaplinger @ Nov 7 2019, 11:53 PM)...   Nov 7 2019, 11:27 PM
|- - Gerald   QUOTE (adamg @ Nov 8 2019, 12:27 AM) ... ...   Nov 8 2019, 04:39 PM
|- - Brian Swift   QUOTE (Gerald @ Nov 8 2019, 08:39 AM) Be ...   Nov 8 2019, 05:56 PM
- - adamg   Thanks for the replys. I actually did start off us...   Nov 7 2019, 11:16 PM
|- - mcaplinger   QUOTE (adamg @ Nov 7 2019, 03:16 PM) ...   Nov 7 2019, 11:24 PM
|- - adamg   QUOTE (mcaplinger @ Nov 8 2019, 12:24 AM)...   Nov 7 2019, 11:30 PM
||- - mcaplinger   QUOTE (adamg @ Nov 7 2019, 03:30 PM) Than...   Nov 7 2019, 11:51 PM
||- - Brian Swift   QUOTE (mcaplinger @ Nov 7 2019, 03:51 PM)...   Nov 10 2019, 07:40 AM
|- - Brian Swift   QUOTE (mcaplinger @ Nov 7 2019, 03:24 PM)...   Nov 10 2019, 08:41 AM
- - Brian Swift   
Hi Adam, Welcome to/from the JunoCam raw pr...   Nov 8 2019, 07:17 AM
|- - mcaplinger   QUOTE (Brian Swift @ Nov 7 2019, 11:17 PM...   Nov 8 2019, 03:27 PM
- - adamg   We're totally on the same page Brian. The hel...   Nov 9 2019, 12:15 AM
- - Brian Swift   Having a non-cartographic technique that renders r...   Nov 10 2019, 08:19 AM
|- - mcaplinger   QUOTE (Brian Swift @ Nov 10 2019, 12:19 A...   Nov 10 2019, 03:15 PM
|- - scalbers   Good to see - I would guess this also makes it eas...   Nov 22 2019, 08:07 PM
- - adamg   Absolutely Brian, that's exactly the behaviour...   Nov 10 2019, 05:15 PM
- - mcaplinger   QUOTE (adamg @ Nov 6 2019, 03:50 PM) rota...   Nov 10 2019, 07:52 PM
- - adamg   Thanks mcaplinger, I've changed it to the foll...   Nov 12 2019, 05:59 PM
|- - Brian Swift   QUOTE (adamg @ Nov 12 2019, 09:59 AM) Bri...   Nov 12 2019, 11:44 PM
- - adamg   I tried the limbpt function (below), not that I re...   Nov 12 2019, 10:52 PM
|- - mcaplinger   QUOTE (adamg @ Nov 12 2019, 02:52 PM) I...   Nov 12 2019, 11:09 PM
- - adamg   Update: I think my issue is that the transform doe...   Nov 14 2019, 11:34 PM
- - adamg   Took a while. It wasn't light travel time beca...   Nov 22 2019, 12:57 AM
- - adamg   Tried doing color, seems to work. The KD tree was ...   Nov 24 2019, 01:34 AM
- - adamg   Anyone have any good advice on scaling the RGB to ...   Nov 25 2019, 09:43 PM
|- - Brian Swift   QUOTE (adamg @ Nov 25 2019, 01:43 PM) Any...   Nov 26 2019, 10:33 AM
- - Bjorn Jonsson   I usually multiply by [1, 1.12, 2.3] after decompa...   Nov 25 2019, 11:01 PM
|- - Brian Swift   QUOTE (Bjorn Jonsson @ Nov 25 2019, 03:01...   Nov 26 2019, 10:54 AM
|- - fredk   QUOTE (Brian Swift @ Nov 26 2019, 11:54 A...   Nov 26 2019, 02:48 PM
- - adamg   Sounds like I'm miles off for some reason. I u...   Nov 26 2019, 12:26 PM
- - adamg   The RDR data set says "For planetary targets,...   Nov 26 2019, 06:14 PM
|- - mcaplinger   QUOTE (adamg @ Nov 26 2019, 10:14 AM) The...   Nov 26 2019, 09:44 PM
|- - Brian Swift   QUOTE (adamg @ Nov 26 2019, 10:14 AM) Reg...   Nov 27 2019, 04:47 AM
- - adamg   Interesting, [1,1.23,2.66] I actually dropped my 0...   Nov 27 2019, 11:30 AM
|- - Brian Swift   QUOTE (adamg @ Nov 27 2019, 03:30 AM) ......   Nov 27 2019, 06:59 PM
- - adamg   How are peoples' inter frame delays looking? ...   Dec 9 2019, 02:25 AM
|- - mcaplinger   QUOTE (adamg @ Dec 8 2019, 06:25 PM) How ...   Dec 9 2019, 05:50 PM
|- - Brian Swift   QUOTE (adamg @ Dec 8 2019, 06:25 PM) How ...   Dec 9 2019, 06:15 PM
- - Bjorn Jonsson   The value you add to the interframe delay should a...   Dec 9 2019, 06:29 PM
- - adamg   Thanks guys, apparently I'm a goose. I hard co...   Dec 10 2019, 11:20 PM
- - Bill Dudney   Hello All, I wasn't sure if I should post her...   Aug 3 2020, 02:01 PM
|- - mcaplinger   QUOTE (Bill Dudney @ Aug 3 2020, 06:01 AM...   Aug 3 2020, 03:24 PM
|- - Bill Dudney   QUOTE (mcaplinger @ Aug 3 2020, 03:24 PM)...   Aug 3 2020, 06:42 PM
|- - mcaplinger   QUOTE (Bill Dudney @ Aug 3 2020, 10:42 AM...   Aug 3 2020, 08:26 PM
|- - Bill Dudney   QUOTE (mcaplinger @ Aug 3 2020, 08:26 PM)...   Aug 3 2020, 10:09 PM
|- - Bill Dudney   QUOTE (mcaplinger @ Aug 3 2020, 08:26 PM)...   Aug 4 2020, 02:29 PM
|- - mcaplinger   QUOTE (Bill Dudney @ Aug 4 2020, 06:29 AM...   Aug 4 2020, 03:01 PM
|- - Bill Dudney   QUOTE (mcaplinger @ Aug 4 2020, 03:01 PM)...   Aug 4 2020, 06:25 PM
|- - mcaplinger   QUOTE (Bill Dudney @ Aug 4 2020, 10:25 AM...   Aug 4 2020, 07:17 PM
|- - Bill Dudney   QUOTE (mcaplinger @ Aug 4 2020, 07:17 PM)...   Aug 5 2020, 02:16 AM
|- - mcaplinger   QUOTE (Bill Dudney @ Aug 4 2020, 06:16 PM...   Aug 5 2020, 05:55 PM
|- - Bill Dudney   QUOTE (mcaplinger @ Aug 5 2020, 06:55 PM)...   Aug 6 2020, 01:59 AM
|- - Bill Dudney   Hi All, Finally got to the point that I have some...   Nov 5 2020, 12:36 PM
|- - Brian Swift   QUOTE (Bill Dudney @ Nov 5 2020, 04:36 AM...   Nov 9 2020, 06:00 AM
||- - Bill Dudney   QUOTE (Brian Swift @ Nov 9 2020, 06:00 AM...   Nov 9 2020, 01:46 PM
|- - Bill Dudney   QUOTE (Bill Dudney @ Nov 5 2020, 12:36 PM...   Jan 25 2021, 10:01 PM
- - Bjorn Jonsson   I haven't looked at the code in any detail so ...   Aug 3 2020, 09:31 PM
|- - Bill Dudney   QUOTE (Bjorn Jonsson @ Aug 3 2020, 09:31 ...   Aug 3 2020, 10:02 PM
- - Sean   This is very cool. Beautiful work!   Nov 5 2020, 06:24 PM
- - Bill Dudney   QUOTE (Sean @ Nov 5 2020, 06:24 PM) This ...   Nov 6 2020, 11:49 PM


Reply to this topicStart new topic

 



RSS Lo-Fi Version Time is now: 29th May 2024 - 04:35 PM
RULES AND GUIDELINES
Please read the Forum Rules and Guidelines before posting.

IMAGE COPYRIGHT
Images posted on UnmannedSpaceflight.com may be copyrighted. Do not reproduce without permission. Read here for further information on space images and 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.