This program compiles and outputs various spacecraft and instrument-related information such as
geometric, polygon, and mapping information.
The user must supply a Level1 cube. If the supplied cube does not have SPICE information
associated with it, then caminfo can be used to generate the SPICE information by running the
spiceinit program on the cube. Caminfo will not run spiceinit by default. If the input cube already
has SPICE information associated with it, then any user updates to the SPICE information will be
lost when the option to run spiceinit is chosen. This results from using system defaults when
running the spiceinit program from within caminfo.
Some information in the output PVL file will consist of a compilation of information for all the
bands in the cube and will be listed in the "Common" object of the PVL. Other information for a given
band will be placed in the "BandSet" object of the PVL. The user can select the check boxes to control
the information that will be output to the PVL file. If the POLYGON or USELABEL option is chosen,
the image polygon is output in Well-Known Text format (WKT).
The output file can be in PVL or CSV (Comma Separated Value) format. The "APPEND" option allows
the new generated information to be appended to the output file. This is especially useful for
CSV file format. If the CSV format is chosen, only Camstats, Statistics and Geometry options
are allowed. Isis Label, Original Label and Polygon options are disabled for CSV format.
The following is an example of caminfo output generated when in PVL format:
Object = Caminfo
Object = Parameters
Program = caminfo
IsisVersion = "6.0.0 | 2021-11-08"
RunDate = 2021-11-08T16:03:25
IsisId = Viking1/VISB/33322515
From = default.cub
Lines = 1056
Samples = 1204
Bands = 1
End_Object
Object = Camstats
MinimumLatitude = 9.9286479874788
MaximumLatitude = 10.434709753119
MinimumLongitude = 255.64554871862
MaximumLongitude = 256.14606952525
MinimumResolution = 18.840683425668
MaximumResolution = 18.985953877822
MinimumPhase = 79.756143590222
MaximumPhase = 81.304900313013
MinimumEmission = 10.798462835458
MaximumEmission = 13.502630463571
MinimumIncidence = 69.941096124192
MaximumIncidence = 70.311944975377
LocalTimeMinimum = 7.7698055422189
LocalTimeMaximum = 7.8031735959943
ObliqueResolutionMinimum = 19.180671135452
ObliqueResolutionMaximum = 19.525658668048
LatitudeMinimum = 9.9286479874788
LatitudeMaximum = 10.434709753119
LatitudeAverage = 10.181983206084
LatitudeStandardDeviation = 0.11084102743244
LongitudeMinimum = 255.64554871862
LongitudeMaximum = 256.14606952525
LongitudeAverage = 255.89390491018
LongitudeStandardDeviation = 0.10658330458136
SampleResolutionMinimum = 18.840683425668
SampleResolutionMaximum = 18.985953877822
SampleResolutionAverage = 18.90816559308
SampleResolutionStandardDeviation = 0.03806000717263
LineResolutionMinimum = 18.840683425668
LineResolutionMaximum = 18.985953877822
LineResolutionAverage = 18.90816559308
LineResolutionStandardDeviation = 0.03806000717263
ResolutionMinimum = 18.840683425668
ResolutionMaximum = 18.985953877822
ResolutionAverage = 18.90816559308
ResolutionStandardDeviation = 0.03806000717263
ObliqueSampleResolutionMinimum = 19.180671135452
ObliqueSampleResolutionMaximum = 19.525658668048
ObliqueSampleResolutionAverage = 19.342626220123
ObliqueSampleResolutionStandardDeviation = 0.078013435023247
ObliqueLineResolutionMinimum = 19.180671135452
ObliqueLineResolutionMaximum = 19.525658668048
ObliqueLineResolutionAverage = 19.342626220123
ObliqueLineResolutionStandardDeviation = 0.078013435023247
ObliqueResolutionMinimum = 19.180671135452
ObliqueResolutionMaximum = 19.525658668048
ObliqueResolutionAverage = 19.342626220123
ObliqueResolutionStandardDeviation = 0.078013435023247
AspectRatioMinimum = 1.0
AspectRatioMaximun = 1.0
AspectRatioAverage = 1.0
AspectRatioStandardDeviation = 0.0
PhaseMinimum = 79.756143590222
PhaseMaximum = 81.304900313013
PhaseAverage = 80.529097153288
PhaseStandardDeviation = 0.44420861263609
EmissionMinimum = 10.798462835458
EmissionMaximum = 13.502630463571
EmissionAverage = 12.15148695101
EmissionStandardDeviation = 0.56543791358687
IncidenceMinimum = 69.941096124192
IncidenceMaximum = 70.311944975377
IncidenceAverage = 70.127459134075
IncidenceStandardDeviation = 0.10249039126455
LocalSolarTimeMinimum = 7.7698055422189
LocalSolarTimeMaximum = 7.8031735959943
LocalSolarTimeAverage = 7.7863626216564
LocalSolarTimeStandardDeviation = 0.0071055546192044
LocalRadiusMinimum = 3410663.3374636
LocalRadiusMaximum = 3413492.0662692
LocalRadiusAverage = 3412205.8144925
LocalRadiusStandardDeviation = 648.57630709534
NorthAzimuthMinimum = 312.29940658864
NorthAzimuthMaximum = 350.59781250672
NorthAzimuthAverage = 332.96766151063
NorthAzimuthStandardDeviation = 0.67383189481403
End_Object
Object = Statistics
MeanValue = 127.49950846428
StandardDeviation = 73.322672255332
MinimumValue = 1.0
MaximumValue = 254.0
PercentHIS = 0.0
PercentHRS = 0.0
PercentLIS = 0.0
PercentLRS = 0.0
PercentNull = 0.39208006141146
TotalPixels = 1271424.0
End_Object
Object = Geometry
BandsUsed = 1
ReferenceBand = 1
OriginalBand = 1
Target = MARS
StartTime = 1977-07-09T20:05:51.5549999
EndTime = 1977-07-09T20:05:51.5549999
CenterLine = 528.0
CenterSample = 602.0
CenterLatitude = 10.181441241544
CenterLongitude = 255.89292858176
CenterRadius = 3412288.6569795
RightAscension = 310.2070335306
Declination = -46.327246785573
UpperLeftLongitude = 255.64554871862
UpperLeftLatitude = 10.086794246642
LowerLeftLongitude = 255.9665140608
LowerLeftLatitude = 9.9286479874788
LowerRightLongitude = 256.14606952525
LowerRightLatitude = 10.279980559326
UpperRightLongitude = 255.82316035995
UpperRightLatitude = 10.434709753119
PhaseAngle = 80.528381932125
EmissionAngle = 12.133564327344
IncidenceAngle = 70.127983116628
NorthAzimuth = 332.65918495755
OffNadir = 9.9273765143684
SolarLongitude = 294.73518830595
LocalTime = 7.7862975330952
TargetCenterDistance = 4160.7294345949
SlantDistance = 762.37204454685
SampleResolution = 18.904248467739
LineResolution = 18.904248467739
PixelResolution = 18.904248467739
MeanGroundResolution = 18.913336783207
SubSolarAzimuth = 92.033828158995
SubSolarGroundAzimuth = 118.87356333938
SubSolarLatitude = -22.740326163641
SubSolarLongitude = 319.09846558533
SubSpacecraftAzimuth = 240.08514246484
SubSpacecraftGroundAzimuth = 267.5318718687
SubSpacecraftLatitude = 10.078847382918
SubSpacecraftLongitude = 253.65422317887
ParallaxX = 0.0092584344626292
ParallaxY = -0.21479478922806
ShadowX = 1.3359751287274
ShadowY = 2.4227562280136
HasLongitudeBoundary = FALSE
HasNorthPole = FALSE
HasSouthPole = FALSE
ObliqueSampleResolution = 19.336214219327
ObliqueLineResolution = 19.336214219327
ObliquePixelResolution = 19.336214219327
ObliqueDetectorResolution = 19.336214219327
End_Object
Object = Polygon
CentroidLine = 532.66229285952
CentroidSample = 607.53672501071
CentroidLatitude = 10.182356969859
CentroidLongitude = 255.89519621876
CentroidRadius = 3412287.9074048
SurfaceArea = 488.62348528983
GlobalCoverage = 3.34e-04
SampleIncrement = 100
LineIncrement = 100
GisFootprint = "MULTIPOLYGON (((255.6453583908695464
10.0867904619605451, 255.6595956593271808
10.1154635791014531, 255.6737985789073946
10.1442167552830451, 255.6881259667616746
10.1730800310205129, 255.7027887280425205
10.2020508692057152, 255.7175464122890958
10.2309373753062509, 255.7323280160563286
10.2598036242839878, 255.7471695983951463
10.2887800727178256, 255.7620066213459609
10.3177301971434758, 255.7771588010552364
10.3467436152087995, 255.7924323644433002
10.3757139048525477, 255.8075274901822809
10.4046456113999994, 255.8225576458768842
10.4339028570360366, 255.8232309017442674
10.4348585119487165, 255.8535629696708327
10.4205061458771606, 255.8842203998140121
10.4058889295564381, 255.9146926592250963
10.3911941292862764, 255.9448791821614861
10.3769097524926277, 255.9753755414272689
10.3618204978158026, 256.0059617087890729
10.3471682641369771, 256.0365409379967332
10.3326326218834055, 256.0673265067632087
10.3179152985589759, 256.0981249116282470
10.3034581806665066, 256.1290667758755148
10.2883581640098658, 256.1462671420772494
10.2799873531353612, 256.1313444916623325
10.2505255615226378, 256.1164688049674965
10.2211844686142967, 256.1015973558028804
10.1918949732268587, 256.0864534778274333
10.1626571600747884, 256.0716550668443006
10.1332939690604054, 256.0565706797236203
10.1038668950864672, 256.0413878221121422
10.0746328450545697, 256.0264747810802533
10.0452711724688157, 256.0113369395158998
10.0160982210436202, 255.9964691286714640
9.9870846040898869, 255.9818453002924059
9.9582018695888550, 255.9671085090266160
9.9294365117128915, 255.9664455687814666
9.9285018702230925, 255.9357798586855210
9.9434114437963252, 255.9050300094461079
9.9582188907694906, 255.8742299406974041
9.9731382004096076, 255.8438364438290193
9.9885593036033100, 255.8131996628023330
10.0033543110909680, 255.7829726827725949
10.0181299803242059, 255.7526929277649685
10.0329436706484874, 255.7222678124940103
10.0480687769201324, 255.6922853314939630
10.0632502943012838, 255.6620952745569184
10.0783572884044883, 255.6453583908695464
10.0867904619605451)))"
Group = Mapping
TargetName = MARS
EquatorialRadius = 3396190.0
PolarRadius = 3376200.0
LatitudeType = Planetocentric
LongitudeDirection = PositiveEast
LongitudeDomain = 360
MinimumLatitude = 9.9284293968724
MaximumLatitude = 10.434928853234
MinimumLongitude = 255.64532672113
MaximumLongitude = 256.14630113081
PixelResolution = 18.840630601657
ProjectionName = Sinusoidal
CenterLongitude = 255.89292858176
End_Group
End_Object
End_Object
End
Output values that do not have a minimum/maximum range associated with them
are calculated at the center of the image.
Definitions for most of the values output in the PVL file can be found in
the ISIS documentation glossary including: SubSpacecraftLatitude,
SubSpacecraftLongitude, SubSolarLatitude,
SubSolarLongitude, NorthAzimuth,
SpacecraftAzimuth, SubSolarAzimuth,
ObliqueLineResolution, ObliqueSampleResolution,
ObliquePixelResolution, and ObliqueDetectorResolution
Robert Sucharski | 2007-04-10 |
Original version
|
Steven Lambright | 2007-08-10 |
Added an application test
|
Steven Koechle | 2007-11-01 |
Fixed WKT calls
|
Tracie Sucharski | 2007-11-09 |
Remove ToWKT calls and PolygonTools.h inclusion. The geos package now
has a method to return a WKT string, so the ToWKT method has been
removed from the PolygonTools class.
|
Kris Becker | 2007-12-07 |
Made the following modifications: fixed typo in PercentNull and
MaximumLongitude keywords; use the base file name for generation of
temporary files to further ensure uniqueness; run camstats once if
there is only one band - doubles execution speed for single band
images when CAMSTATS option is used; substitute the NULL string for
all special pixel values; added corner pixel keywords for PDS
compatibility; added phase, emission, incidence angles
and line and sample pixel resolution at the center pixel; added test
for intersection of longitude domain, north and south poles and
keywords that report them; added option to output ISIS cube labels;
corrected computations for parallax and shadow keywords.
|
Kris Becker | 2007-12-19 |
Renamed the HasLongitudeDomain keyword to HasLongitudeBoundary.
Makes more sense.
|
Kris Becker | 2008-02-27 |
Corrected method call to compute polygon with proper parameters as
well as correct band number. Added code to better honor specific
cube attributes (such as band numbers) in computations. Also will
produce NULL valued keywords where NULLs are a produced instead of
the real value for the ISIS NULL pixel value.
|
Steven Lambright | 2008-05-12 |
Removed references to CubeInfo
|
Bob Sucharski | 2008-07-31 |
Added Camera Test option to test for a valid camera at center of image
and return an error and end if a valid camera cannot be created.
|
Kris Becker | 2008-09-22 |
Reworked the output PVL format; added more keywords to the Common object
that indicate versions and dates; added more values to Geometry and
Polygon object.
|
Kris Becker | 2008-10-22 |
Corrected generation of polygon for multi-band data. It created a
POLYGON union instead of the required MULTIPOLYGON.
|
Kris Becker | 2008-10-30 |
The target center distance and subspacecraft latitude were not properly
propagated to the output PVL file and consequently were invalid. This
has been corrected.
|
Kris Becker | 2008-12-29 |
Added RightAscension, Declination, SubSolarGroundAzimuth, and
SubSpacecraftGroundAzimuth computations; added center line/sample image
coordinate used to compute center geometry; added check of valid image
line/sample coordinates when testing for north/south poles (some camera
models return valid states when coordinates are outside of image
boundaries).
|
Kris Becker | 2009-02-26 |
Modified to actually exclude the unconditional computation of the image
polygon to assist in some geometry values. It is no longer computed if
the user does not select the POLYGON option. The implications of this
are that some of the keywords in the output Geometry group are no
longer ever relevant. These keywords were all moved to the Polygon
group. These keywords are: CentroidLine, CentroidSample,
CentroidLatitude, CentroidLongitude, CentroidRadius and SurfaceArea.
User will no longer see these values if the POLYGON option is not
selected. Also the Radius keyword in the Polygon group has been
removed as it is redundant with CentroidRadius.
|
Kris Becker | 2009-05-29 |
Added PIXINC parameter to allow user to specify number of pixels to
skip around the perimeter of the image to compute the polygon.
|
Kris Becker | 2009-05-29 |
Fixed bug where image was a 0 longitude boundary crosser. It would
typically fail when determining centroid information unless converted
to 180 domain. This will also be used at the poles as it seems to work
better in the 180 domain as well. (This process projects the footprint
to a Sinusoidal projection to determine area which requires an equal
area projection, such as Sinusoidal.)
|
Kris Becker | 2009-07-08 |
Added the MAXEMISSION and MAXINCIDENCE limit parameters to better
control limb and terminator polygon generation.
|
Kris Becker | 2009-08-24 |
Allow disabling of shape model use when constructing polygons that
contain limbs.
|
Mackenzie Boyd | 2010-06-14 |
Removed polygon options group and placed the options within output
options. Added inclusion for parameters related to polygons to only be
available when polygons are selected. Made TO option not have a
default of None, updated documentation and modified formatting.
|
Jai Rideout | 2011-02-17 |
Replaced PIXINC with POLYSINC and POLYLINC. Renamed SINC and LINC to
STATSSINC and STATSLINC.
|
Sharmila Prasad | 2011-02-24 |
Added option for the output file to be in CSV format and also ability
to append to the existing output file.
|
Jai Rideout | 2011-03-01 |
Renamed STATSSINC and STATSLINC back to SINC and LINC.
|
Sharmila Prasad | 2011-03-02 |
Fix App tests and add header for flat file if file does not exist.
|
Jai Rideout | 2011-03-03 |
Fixed incorrect CSV output format.
|
Christopher Austin | 2011-03-18 |
Rewrote the entire application to no longer have hard-coded values for
CSV, including the removal of duplicated code, updated includes, and
corrected the CSV to display the same values as the PVL does.
|
Christopher Austin | 2011-03-18 |
Added new parameters including FLATINC.
|
Christopher Austin | 2011-03-22 |
Changed the new parameter's names. (INCTYPE, NUMVERTICES)
|
Christopher Austin | 2011-05-12 |
Added smarts to the VERTICES option.
|
Travis Addair | 2011-07-27 |
Added INCREASEPRECISION option for creating an Image Polygon, the same
one as used by "footprintinit".
|
Kris Becker | 2012-11-23 |
The computation of ParallaxX/ParallaxY and ShadowX/ShadowY values was
not properly implemented. Updated documentation with a new example.
Fixes #1296.
|
Janet Barrett | 2013-01-29 |
Added the USELABEL option. This will allow the user to request that the
footprint be read from the labels of the input image file rather than
regenerating the footprint. Fixes #1452.
|
Janet Richie | 2013-02-25 |
Reviewed documentation. References #1452.
|
Kaitlyn Lee | 2019-04-22 |
Added oblique sample, line, detector, and pixel resolutions to the
geometry PVL group. Updated example output in application description
so that the addded oblique elements are included. Fixes #2205.
|
Amy Stamile | 2021-08-18 |
Added the USECAMSTATSTBL option. This allows caminfo to extract existing
camera statistics from the CameraStatistics Table of the input cube instead
of recalculating CameraStatistics. Fixes #3605.
Updated caminfo to output all CameraStatistics Keywords when running CAMSTATS.
|
Amy Stamile | 2021-11-04 |
Changed parameter default values for MAXEMISSION and MAXINCIDENCE to be
synchronized with footprintinit default values of the same parameters.
This corrects inconsistencies of footprint generation failing in caminfo
but passing in footprintinit. Fixes #4651.
|
Adam Paquette | 2021-07-06 |
Updated CAMSTATS parameter decision tree to allow users to extract
camstats even if the cube contains a camstats table. Fixes #4919.
|