A work in progress by Kristina of an updated training course

Training directory in SPC04 "limb.150c"

Goals

Bring the students to the "SPC Training Level 2" TrainingLevels

Provide enough SPC hand-on skills that basic shape models can be built

Provides enough background so that additional practice and instruction can occur

It will be insufficient to fully train new personal to a level in which they could run an entire mission without support

Specific things to learn

Be able to create landmarks and add images

Basic trouble shooting and fixing mis-registration

Perform tiling (both globally and BIGMAP)

Do iterations

Run residuals, geometry

Register images to shape model or maps

Autoregister

Practice.

A key component of this training is to practice.

The practice allows for key concepts to become understood at a sufficient level to allow for more advanced concepts to make sense.

Student Prep

Because class time is limited, it is important to get the software and data installed before you show up to the conference. I will be available during the conference to help troubleshoot problems and help get your system functional before the class starts Wednesday morning. Once the class starts, I won't be able to ignore everyone else in the class to fix an install.

To maximize your learning in the class, I provide some information that will be beneficial to review.

Stuff to read (links below)

Gaskell's 2008

Palmer's 2016, sections 2.4 and 5

Required Tasks To Complete Before Class Starts

Sign the Licensing Agreement.

This must be on file before the software can be distributed.

//Complete//

Download SPC software -- encrypted link will be sent only to class attendees

Compile and install SPC. https://oort.psi.edu/public/1a09b8/dl/spc_v3.1B2.zip (password will be sent via a separate email)

Installing SPC Instructions

Download sample data.

The data volume is large, so it is important to do it ahead of time. Some of the files need to be expanded and moved.

Starting directory & SPICE (600MB)

You can put this directory anywhere (called topSPC).

It is the base directory for the SPC work.

https://oort.psi.edu/public/98a344

You can go into the topSPC/ORex/DATA directory and uncompress the files using "gunzip *.gz"

Images:

I've broken them up into two parts to make them easier to download and compressed them. These <filename>.DAT files need to be moved into the topSPC/IMAGEFILES directory.

Approach (300MB): https://oort.psi.edu/public/1b733b

Preliminary Survey (1GB): https://oort.psi.edu/public/d0e1ec

You can uncompress the files using "uncompress *.Z"

Support Tools:

Over time, I have found that there are many nice helpers for SPC that do well if organized into its own area.

They include scripts, programs and image lists.

I've included some here.

I suggest putting these two directories in /opt/local/spc/

https://oort.psi.edu/public/67588b

Extra software that is useful

Software - Please load the following

MacPorts - http://www.macports.org/install.php

gnuplot - Installing using MacPorts, "sudo port install gnuplot"

imagemagick Installing using MacPorts, "sudo port install ImageMagick"

GraphicConverter -- http://www.lemkesoft.de/en/products/graphicconverter/

SPC tools - This is a suite of tools that make measuring pixel/line locations and offsets easier.

This is not required and class time won't be used for installing this.

Install instructions are coming soon

apache -- The is installed as default for most UNIX (and Mac) systems.

spc_tool javascript libraries

updateDisplay.sh - script to convert SPC output to a web-accessible format

How to install and run - SPC-GUI-tools

Day 1

Introductions

Discussion of the Wiki/User’s manual

Unix file layout and paths -- File System Setup

executables

source code

helpers

scripts

support

SPC files

working

mapfile/landmark files

kernels

images

Show Theory of SPC -- https://sbib.psi.edu/spc_wiki/Training_JAXA_Aug2016?action=AttachFile&do=view&target=Lesson_1.pdf

Day 1 Practical - It's all about LITHOS

Topics

display landmark

landmark management

create

delete

rename

images

add images

remove images - auto and manual

select useable, correlation and manual

adjust image position, auto, manual

global shift

build template

find height

options

The core of SPC is lithos. That tool lets you create landmarks, associate images, align images, determine the 3D position of the landmark and create topography.

Fixing landmarks, using Input landmark

CM0001 - nominal

CI0001 - simple autoalign Align landmarks

DC0002 - align with an images Align landmarks

FK0002 - manually align a single image Align landmarks

Building a landmark Create new landmark and How To Build A Landmark

Name:

DD0002

Lat/Lon:

20.072 / 290.164

Res:

0.0012

Q-size: 49

Template

START6 - using correlation and template Find template

Topography

Once all the images are aligned (the center pixel of every image is at the exact same feature of the surface), then you can build topography using photoclinometry with some conditions. Find heights

toposcript

State

A key diagnostic tool for SPC is understanding the state of the system. By state, I mean what are the conditions (the health or quality) of the landmark. There is no one parameter that tells you all of this, but it is looking at a wide set of details that tells you if there are problems.

See Notes from day 1

Tile 120

Tiling is the process of batch creating landmarks in a systamatic order around the surface. Unlike "features", which I use to describe regions of the surface that is selected because of its topographic characteristics, landmarks cover the surface at a set interval to create an overlapping grid over the surface.

make_scriptT.in

scripts/XXX120.seed -- make_scriptT.seed

make_scriptT

sh run_script.b

find_nofit

TESTFILES, TESTFILES1

Day 2

New files for today

Raw FITS Images

Copy these to topSPC/ORex/NEW_IMAGES/

https://oort.psi.edu/public/3b2435

Updates to support files

Copy these to /opt/local/spc/rpi/support

https://oort.psi.edu/public/60cb53

First - let's clean some of the landmarks from lastnight

FP0001

GL0001

GL0002

ER0001

EQ0001

FQ0002

EO0001

FB0001

EA0001

Blocks

We have provided some procedural blocks for different tasks. They include some additional log and configuration that will be different from you, but the main SPC steps are the same. Additionally, Bob has some "PROCEDURES" directory with his source code. There are instructions there and copy/paste commands.

SPC Blocks, V2

Let's talk about images

Block 2 - Ingest v2

Converting images into SPC format

process_fits

make_sumfiles.in

Converting geometric information into body-fixed frame

make_sumfiles

Register

Block 3 - Register v2

Each images should be aligned with the shape model at a course level.

register

Practice - P596677257F2

Batch

Clear out old TESTFILES and TESTFILES1

rm TESTFILES*/*

make_script.in

This must be created from the new list of images

Make a file of new image names and write them into make_script.in (with a proceeding space and the last line "END")

ln -s scripts/make_scriptR_01.seed make_scriptR.seed

make_scriptR

sh run_script.b

find_nofit

Support Files

While batch register is running, we will discuss some support files

Review metadata and data files

IMAGEFILES

format -- 8bit, 16bit, 32bit

NOMINALS

SUMFILES

make_sumfiles.txt

INIT_LITHOS.TXT

LMKFILES

Autoregister

Block 4 - Autoregister v2

Batch associate existing landmarks to new images

When you bring in new images, they have no landmarks. While you can add them into landmarks using lithos, that is not very productive. Thus, we use a program autoregister that loads all of the landmarks into the image you are working with.

autoregister

make_lmrklistX

Practice - P596677257F2

Batch

make_script.in -- This must be created from the new list of images

ln -s scripts/make_scriptA.seed make_scriptA.seed

make_scriptA

sh run_script.b

Iterate

Now that we've pulled in extra information, we need to iterate to get the information propagated to all the files

Block 5 - Iterate v2

Iteration

Setup

INIT_LITHOS.TXT - Update Max processors

make_lmrklistX

cp LMRKLIST.TXT LIST.TXT

duplicates

ln -s <whatever> make_scriptP.seed

make_scriptP > run.sh

Running

sh run.sh

find_nofitP

Build a shape model

ICQ format

DENSIFY.TXT

densify

dumer

buildShape.sh - runs all of the commands as needed

Create a higher resolution

Block 6A - Lat/Lon Tiling v2

Tile 75

Setup

ln -s script/make_scriptT_75.in make_scriptT.in

make_scriptT

Running

sh run_script.b

find_nofitT

Day 3

Clean up from 75cm tiling

SPC Technical Info - Gaskell

Discussion of SPC Design

Technical details

Issues and complexities

Tiling by BIGMAP

Block 6B - Bigmap Tiling v2

Making a bigmap

Criteria for size, scale

Lat:

-10

Lon:

350

Q size:

500

GSD:

25

Create support/RPI001.in

Note - we use XXXXXX.MAP to allow for scripting. I use symbolic links to aid in keeping track of progress. By running showmap after building and linking the bigmap, you can prove that you have the correct map.

bigmap < support/RPI001.in cd MAPFILES ln -s RPI001.MAP XXXXXX.MAP cd .. echo XXXXXX | SHOWMAP convert XXXXXX.pgm lowMap.jpg

Checking for existing maplets

map_coverage XXXXXX 0 .0005 convert coverage_m.pgm preCoverage.jpg

Building the make_scriptT.in file

Build the make_scriptT.in file

This includes some shell commands to make something you can copy/paste. Or you can use a text editor to build the make_scriptT.in, just make sure it follows the correct format for map-based referencing.

echo N | make_tilefile > tmp echo XXXXXX > support/bigmap_tile.in echo scripts/XXX035.seed >> support/bigmap_tile.in sed 1d tmp >> support/bigmap_tile.in ln -s support/bigmap_tile.in make_scriptT.in

Run Tiling

Run the tiling script.

Once you make the INN files, you can track the progress *.OOT files.

make_scriptT sh run_script.b find_nofitT

Evaluation of the bigmap

Now that it is done, you can rebuild the bigmap and see the difference

bigmap < support/RPI001.in echo RPI001 | SHOWMAP convert RPI001.pgm highMap.jpgmap_coverageRPI0010 .0005convert coverage_m.pgm postCoverage.jpg

SIGMAS.TXT

SIGMAS.pgm

System Evaluation

RESIDUALS.TXT

MAPINFO.TXT

PICINFO.TXT

Iterate over region

This uses the fact that you recently made a bigmap as inputs for running a region-specific iteration. Remember, duplicates takes whatever list of landmarks in LIST.TXT, sorts them, removes duplicates and replaced make_script.in. USED_MAPS is created by bigmap, along with USED_PICTS. This contains all of the mapfiles that were used in building the bigmap.

make_lmrklistX rm TESTFILES*/* cp USED_MAPS.TXT LIST.TXT duplicates make_scriptP > run.sh sh run.sh find_nofitP

Questions

How are shape models used in navigation?

See

Notes from day 1

Notes Day 2

Notes for Day 3

Support Files

gaskell-2008-paper.pdf

Palmer-2016.pdf

JAXA MMX Training Notes