summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2019-02-14 19:42:32 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2019-02-14 19:42:32 (GMT)
commitb4726576305e553191f059af5d94273d079b4356 (patch)
tree3dca9075f84a68531d4ced14f9dad86a5a2e5f0d
parent369c283539fb854b794777cd95f94ba11b62bf42 (diff)
parent8a37a411bbb24fc25ee584b4830694c0ae3f30c1 (diff)
downloadblt-b4726576305e553191f059af5d94273d079b4356.zip
blt-b4726576305e553191f059af5d94273d079b4356.tar.gz
blt-b4726576305e553191f059af5d94273d079b4356.tar.bz2
Merge branch 'devel'
-rw-r--r--ds9/doc/release/r8.1.html1
-rw-r--r--ds9/library/wcs.tcl542
-rw-r--r--tclzipfs/license.terms40
-rw-r--r--tksao/frame/fitsimage.C10
4 files changed, 311 insertions, 282 deletions
diff --git a/ds9/doc/release/r8.1.html b/ds9/doc/release/r8.1.html
index 882a138..4894966 100644
--- a/ds9/doc/release/r8.1.html
+++ b/ds9/doc/release/r8.1.html
@@ -48,6 +48,7 @@
<li><tt>01.24.2019 MOVIE3D: is now supported under Windows.</tt></li>
<li><tt>01.24.2019 MOVIE3D: is now supported under MacOS Aqua.</tt></li>
<li><tt>02.11.2019 WCS: 1D WCS is now supported.</tt></li>
+<li><tt>02.11.2019 WCS: Increase WCS params dialog to full 4 axes.</tt></li>
<li><tt><b>xx.xx.2019 RELEASE version 8.1b1</b></tt></li>
</ol>
</div>
diff --git a/ds9/library/wcs.tcl b/ds9/library/wcs.tcl
index 101e280..fdb9c0e 100644
--- a/ds9/library/wcs.tcl
+++ b/ds9/library/wcs.tcl
@@ -188,24 +188,18 @@ proc WCSDialog {} {
set tt [ttk::notebook $w.param]
set base [ttk::frame $tt.base]
set pv00 [ttk::frame $tt.pv00]
- set pv12 [ttk::frame $tt.pv12]
- set pv24 [ttk::frame $tt.pv24]
- set ab0 [ttk::frame $tt.ab0]
- set ab2 [ttk::frame $tt.ab2]
- set ab4 [ttk::frame $tt.ab4]
- set apbp0 [ttk::frame $tt.apbp0]
- set apbp2 [ttk::frame $tt.apbp2]
- set apbp4 [ttk::frame $tt.apbp4]
+ set pv18 [ttk::frame $tt.pv18]
+ set aa0 [ttk::frame $tt.aa0]
+ set bb0 [ttk::frame $tt.bb0]
+ set ap0 [ttk::frame $tt.ap0]
+ set bp0 [ttk::frame $tt.bp0]
$tt add $base -text {Keyword}
$tt add $pv00 -text {PVi_00}
- $tt add $pv12 -text {PVi_12}
- $tt add $pv24 -text {PVi_24}
- $tt add $ab0 -text {A_0}
- $tt add $ab2 -text {A_2}
- $tt add $ab4 -text {A_4}
- $tt add $apbp0 -text {AP_0}
- $tt add $apbp2 -text {AP_2}
- $tt add $apbp4 -text {AP_4}
+ $tt add $pv18 -text {PVi_18}
+ $tt add $aa0 -text {A_p_q}
+ $tt add $bb0 -text {B_p_q}
+ $tt add $ap0 -text {AP_p_q}
+ $tt add $bp0 -text {BP_p_q}
$tt select $base
ttk::label $base.tmjdobs -text "MJD-OBS"
@@ -243,7 +237,7 @@ proc WCSDialog {} {
ttk::entry $base.lonpole${aa} \
-textvariable dwcs(lonpole${aa}) -width 14
- for {set ii 1} {$ii<=3} {incr ii} {
+ for {set ii 1} {$ii<=4} {incr ii} {
ttk::label $base.tctype${ii}${aa} -text "CTYPE${ii}${bb}"
ttk::entry $base.ctype${ii}${aa} \
-textvariable dwcs(ctype${ii}${aa}) -width 14
@@ -265,139 +259,84 @@ proc WCSDialog {} {
-textvariable dwcs(cdelt${ii}${aa}) -width 14
}
- for {set ii 1} {$ii<=2} {incr ii} {
- for {set jj 1} {$jj<=2} {incr jj} {
- ttk::label $base.tcd${ii}_${jj}${aa} -text "CD${ii}_${jj}${bb}"
+ for {set ii 1} {$ii<=4} {incr ii} {
+ for {set jj 1} {$jj<=4} {incr jj} {
+ ttk::label $base.tcd${ii}_${jj}${aa} \
+ -text "CD${ii}_${jj}${bb}"
ttk::entry $base.cd${ii}_${jj}${aa} \
-textvariable dwcs(cd${ii}_${jj}${aa}) -width 14
- }
- for {set jj 1} {$jj<=2} {incr jj} {
+
ttk::label $base.tpc${ii}_${jj}${aa} \
-text "PC${ii}_${jj}${bb}"
ttk::entry $base.pc${ii}_${jj}${aa} \
-textvariable dwcs(pc${ii}_${jj}${aa}) -width 14
}
+ }
- for {set mm 0} {$mm<12} {incr mm} {
+ for {set ii 1} {$ii<=4} {incr ii} {
+ for {set mm 0} {$mm<18} {incr mm} {
ttk::label $pv00.tpv${ii}_${mm}${aa} \
-text "PV${ii}_${mm}${bb}"
ttk::entry $pv00.pv${ii}_${mm}${aa} \
-textvariable dwcs(pv${ii}_${mm}${aa}) -width 14
}
- for {set mm 12} {$mm<24} {incr mm} {
- ttk::label $pv12.tpv${ii}_${mm}${aa} \
- -text "PV${ii}_${mm}${bb}"
- ttk::entry $pv12.pv${ii}_${mm}${aa} \
- -textvariable dwcs(pv${ii}_${mm}${aa}) -width 14
- }
- for {set mm 24} {$mm<36} {incr mm} {
- ttk::label $pv24.tpv${ii}_${mm}${aa} \
+ for {set mm 18} {$mm<36} {incr mm} {
+ ttk::label $pv18.tpv${ii}_${mm}${aa} \
-text "PV${ii}_${mm}${bb}"
- ttk::entry $pv24.pv${ii}_${mm}${aa} \
+ ttk::entry $pv18.pv${ii}_${mm}${aa} \
-textvariable dwcs(pv${ii}_${mm}${aa}) -width 14
}
}
-
- ttk::label $base.tcd3_3${aa} -text "CD3_3${bb}"
- ttk::entry $base.cd3_3${aa} -textvariable dwcs(cd3_3${aa}) -width 14
- ttk::label $base.tpc3_3${aa} -text "PC3_3${bb}"
- ttk::entry $base.pc3_3${aa} -textvariable dwcs(pc3_3${aa}) -width 14
}
# only in primary
- ttk::label $ab0.ta -text "A_ORDER"
- ttk::entry $ab0.a -textvariable dwcs(a_order) -width 14
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $ab0.ta_${mm}_${nn} -text "A_${mm}_${nn}"
- ttk::entry $ab0.a_${mm}_${nn} \
- -textvariable dwcs(a_${mm}_${nn}) -width 14
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $ab2.ta_${mm}_${nn} -text "A_${mm}_${nn}"
- ttk::entry $ab2.a_${mm}_${nn} \
- -textvariable dwcs(a_${mm}_${nn}) -width 14
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $ab4.ta_${mm}_${nn} -text "A_${mm}_${nn}"
- ttk::entry $ab4.a_${mm}_${nn} \
- -textvariable dwcs(a_${mm}_${nn}) -width 14
+ ttk::label $aa0.ta -text "A_ORDER"
+ ttk::entry $aa0.a -textvariable dwcs(a_order) -width 14
+ ttk::label $aa0.tx -text "A_DMAX"
+ ttk::entry $aa0.x -textvariable dwcs(a_dmax) -width 14
+
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ if {[expr ($nn+$mm) <= 9]} {
+ ttk::label $aa0.ta_${mm}_${nn} -text "A_${mm}_${nn}"
+ ttk::entry $aa0.a_${mm}_${nn} \
+ -textvariable dwcs(a_${mm}_${nn}) -width 14
+ }
}
}
- ttk::label $ab0.tb -text "B_ORDER"
- ttk::entry $ab0.b -textvariable dwcs(b_order) -width 14
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $ab0.tb_${mm}_${nn} -text "B_${mm}_${nn}"
- ttk::entry $ab0.b_${mm}_${nn} \
- -textvariable dwcs(b_${mm}_${nn}) -width 14
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $ab2.tb_${mm}_${nn} -text "B_${mm}_${nn}"
- ttk::entry $ab2.b_${mm}_${nn} \
- -textvariable dwcs(b_${mm}_${nn}) -width 14
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $ab4.tb_${mm}_${nn} -text "B_${mm}_${nn}"
- ttk::entry $ab4.b_${mm}_${nn} \
+ ttk::label $bb0.tb -text "B_ORDER"
+ ttk::entry $bb0.b -textvariable dwcs(b_order) -width 14
+ ttk::label $bb0.tx -text "B_DMAX"
+ ttk::entry $bb0.x -textvariable dwcs(b_dmax) -width 14
+
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ ttk::label $bb0.tb_${mm}_${nn} -text "B_${mm}_${nn}"
+ ttk::entry $bb0.b_${mm}_${nn} \
-textvariable dwcs(b_${mm}_${nn}) -width 14
}
}
- ttk::label $apbp0.tap -text "AP_ORDER"
- ttk::entry $apbp0.ap -textvariable dwcs(ap_order) -width 14
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $apbp0.tap_${mm}_${nn} -text "AP_${mm}_${nn}"
- ttk::entry $apbp0.ap_${mm}_${nn} \
- -textvariable dwcs(ap_${mm}_${nn}) -width 14
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $apbp2.tap_${mm}_${nn} -text "AP_${mm}_${nn}"
- ttk::entry $apbp2.ap_${mm}_${nn} \
- -textvariable dwcs(ap_${mm}_${nn}) -width 14
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $apbp4.tap_${mm}_${nn} -text "AP_${mm}_${nn}"
- ttk::entry $apbp4.ap_${mm}_${nn} \
- -textvariable dwcs(ap_${mm}_${nn}) -width 14
- }
- }
+ ttk::label $ap0.ta -text "AP_ORDER"
+ ttk::entry $ap0.a -textvariable dwcs(a_order) -width 14
- ttk::label $apbp0.tbp -text "BP_ORDER"
- ttk::entry $apbp0.bp -textvariable dwcs(bp_order) -width 14
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $apbp0.tbp_${mm}_${nn} -text "BP_${mm}_${nn}"
- ttk::entry $apbp0.bp_${mm}_${nn} \
- -textvariable dwcs(bp_${mm}_${nn}) -width 14
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $apbp2.tbp_${mm}_${nn} -text "BP_${mm}_${nn}"
- ttk::entry $apbp2.bp_${mm}_${nn} \
- -textvariable dwcs(bp_${mm}_${nn}) -width 14
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ ttk::label $ap0.ta_${mm}_${nn} -text "AP_${mm}_${nn}"
+ ttk::entry $ap0.a_${mm}_${nn} \
+ -textvariable dwcs(a_${mm}_${nn}) -width 14
}
}
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- ttk::label $apbp4.tbp_${mm}_${nn} -text "BP_${mm}_${nn}"
- ttk::entry $apbp4.bp_${mm}_${nn} \
- -textvariable dwcs(bp_${mm}_${nn}) -width 14
+
+ ttk::label $bp0.tb -text "BP_ORDER"
+ ttk::entry $bp0.b -textvariable dwcs(b_order) -width 14
+
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ ttk::label $bp0.tb_${mm}_${nn} -text "BP_${mm}_${nn}"
+ ttk::entry $bp0.b_${mm}_${nn} \
+ -textvariable dwcs(b_${mm}_${nn}) -width 14
}
}
@@ -542,14 +481,11 @@ proc ConfigWCSDialog {{force {0}}} {
set tt $iwcs(top).param
set base $tt.base
set pv00 $tt.pv00
- set pv12 $tt.pv12
- set pv24 $tt.pv24
- set ab0 $tt.ab0
- set ab2 $tt.ab2
- set ab4 $tt.ab4
- set apbp0 $tt.apbp0
- set apbp2 $tt.apbp2
- set apbp4 $tt.apbp4
+ set pv18 $tt.pv18
+ set aa0 $tt.aa0
+ set bb0 $tt.bb0
+ set ap0 $tt.ap0
+ set bp0 $tt.bp0
grid forget $base.tmjdobs $base.mjdobs
grid forget $base.tdateobs $base.dateobs
@@ -565,7 +501,7 @@ proc ConfigWCSDialog {{force {0}}} {
grid forget $base.tlatpole${aa} $base.latpole${aa}
grid forget $base.tlonpole${aa} $base.lonpole${aa}
- for {set ii 1} {$ii<=3} {incr ii} {
+ for {set ii 1} {$ii<=4} {incr ii} {
grid forget $base.tctype${ii}${aa} $base.ctype${ii}${aa}
grid forget $base.tcunit${ii}${aa} $base.cunit${ii}${aa}
grid forget $base.tcrpix${ii}${aa} $base.crpix${ii}${aa}
@@ -573,92 +509,52 @@ proc ConfigWCSDialog {{force {0}}} {
grid forget $base.tcdelt${ii}${aa} $base.cdelt${ii}${aa}
}
- for {set ii 1} {$ii<=2} {incr ii} {
- for {set jj 1} {$jj<=2} {incr jj} {
+ for {set ii 1} {$ii<=4} {incr ii} {
+ for {set jj 1} {$jj<=4} {incr jj} {
grid forget $base.tcd${ii}_${jj}${aa} $base.cd${ii}_${jj}${aa}
grid forget $base.tpc${ii}_${jj}${aa} $base.pc${ii}_${jj}${aa}
}
+ }
- for {set mm 0} {$mm<12} {incr mm} {
+ for {set ii 1} {$ii<=4} {incr ii} {
+ for {set mm 0} {$mm<18} {incr mm} {
grid forget $pv00.tpv${ii}_${mm}${aa} $pv00.pv${ii}_${mm}${aa}
}
- for {set mm 12} {$mm<24} {incr mm} {
- grid forget $pv12.tpv${ii}_${mm}${aa} $pv12.pv${ii}_${mm}${aa}
- }
- for {set mm 24} {$mm<36} {incr mm} {
- grid forget $pv24.tpv${ii}_${mm}${aa} $pv24.pv${ii}_${mm}${aa}
+ for {set mm 18} {$mm<36} {incr mm} {
+ grid forget $pv18.tpv${ii}_${mm}${aa} $pv18.pv${ii}_${mm}${aa}
}
}
- grid forget $base.tcd3_3${aa} $base.cd3_3${aa}
- grid forget $base.tpc3_3${aa} $base.pc3_3${aa}
-
# only in primary
- grid forget $ab0.ta $ab0.a
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $ab0.ta_${mm}_${nn} $ab0.a_${mm}_${nn}
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $ab2.ta_${mm}_${nn} $ab2.a_${mm}_${nn}
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $ab4.ta_${mm}_${nn} $ab4.a_${mm}_${nn}
+ grid forget $aa0.ta $aa0.a
+ grid forget $aa0.tx $aa0.x
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ if {[expr ($nn+$mm) <= 9]} {
+ grid forget $aa0.ta_${mm}_${nn} $aa0.a_${mm}_${nn}
+ }
}
}
- grid forget $ab0.tb $ab0.b
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $ab0.tb_${mm}_${nn} $ab0.b_${mm}_${nn}
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $ab2.tb_${mm}_${nn} $ab2.b_${mm}_${nn}
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $ab4.tb_${mm}_${nn} $ab4.b_${mm}_${nn}
+ grid forget $bb0.tb $bb0.b
+ grid forget $bb0.tx $bb0.x
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ grid forget $bb0.tb_${mm}_${nn} $bb0.b_${mm}_${nn}
}
}
- grid forget $apbp0.tap $apbp0.ap
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $apbp0.tap_${mm}_${nn} $apbp0.ap_${mm}_${nn}
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $apbp2.tap_${mm}_${nn} $apbp2.ap_${mm}_${nn}
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $apbp4.tap_${mm}_${nn} $apbp4.ap_${mm}_${nn}
+ grid forget $ap0.ta $ap0.a
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ grid forget $ap0.ta_${mm}_${nn} $ap0.a_${mm}_${nn}
}
}
- grid forget $apbp0.tbp $apbp0.bp
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $apbp0.tbp_${mm}_${nn} $apbp0.bp_${mm}_${nn}
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $apbp2.tbp_${mm}_${nn} $apbp2.bp_${mm}_${nn}
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid forget $apbp4.tbp_${mm}_${nn} $apbp4.bp_${mm}_${nn}
+ grid forget $bp0.tb $bp0.b
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ grid forget $bp0.tb_${mm}_${nn} $bp0.b_${mm}_${nn}
}
}
@@ -679,103 +575,187 @@ proc ConfigWCSDialog {{force {0}}} {
grid $base.tctype1${aa} $base.ctype1${aa} \
$base.tctype2${aa} $base.ctype2${aa} \
$base.tctype3${aa} $base.ctype3${aa} \
+ $base.tctype4${aa} $base.ctype4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tcrpix1${aa} $base.crpix1${aa} \
$base.tcrpix2${aa} $base.crpix2${aa} \
$base.tcrpix3${aa} $base.crpix3${aa} \
+ $base.tcrpix4${aa} $base.crpix4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tcrval1${aa} $base.crval1${aa} \
$base.tcrval2${aa} $base.crval2${aa} \
$base.tcrval3${aa} $base.crval3${aa} \
+ $base.tcrval4${aa} $base.crval4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tcunit1${aa} $base.cunit1${aa} \
$base.tcunit2${aa} $base.cunit2${aa} \
$base.tcunit3${aa} $base.cunit3${aa} \
+ $base.tcunit4${aa} $base.cunit4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tcdelt1${aa} $base.cdelt1${aa} \
$base.tcdelt2${aa} $base.cdelt2${aa} \
$base.tcdelt3${aa} $base.cdelt3${aa} \
+ $base.tcdelt4${aa} $base.cdelt4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tcd1_1${aa} $base.cd1_1${aa} \
$base.tcd2_1${aa} $base.cd2_1${aa} \
+ $base.tcd3_1${aa} $base.cd3_1${aa} \
+ $base.tcd4_1${aa} $base.cd4_1${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tcd1_2${aa} $base.cd1_2${aa} \
$base.tcd2_2${aa} $base.cd2_2${aa} \
+ $base.tcd3_2${aa} $base.cd3_2${aa} \
+ $base.tcd4_2${aa} $base.cd4_2${aa} \
+ -padx 2 -pady 2 -sticky w
+ grid $base.tcd1_3${aa} $base.cd1_3${aa} \
+ $base.tcd2_3${aa} $base.cd2_3${aa} \
$base.tcd3_3${aa} $base.cd3_3${aa} \
+ $base.tcd4_3${aa} $base.cd4_3${aa} \
+ -padx 2 -pady 2 -sticky w
+ grid $base.tcd1_4${aa} $base.cd1_4${aa} \
+ $base.tcd2_4${aa} $base.cd2_4${aa} \
+ $base.tcd3_4${aa} $base.cd3_4${aa} \
+ $base.tcd4_4${aa} $base.cd4_4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tpc1_1${aa} $base.pc1_1${aa} \
$base.tpc2_1${aa} $base.pc2_1${aa} \
+ $base.tpc3_1${aa} $base.pc3_1${aa} \
+ $base.tpc4_1${aa} $base.pc4_1${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tpc1_2${aa} $base.pc1_2${aa} \
$base.tpc2_2${aa} $base.pc2_2${aa} \
+ $base.tpc3_2${aa} $base.pc3_2${aa} \
+ $base.tpc4_2${aa} $base.pc4_2${aa} \
+ -padx 2 -pady 2 -sticky w
+ grid $base.tpc1_3${aa} $base.pc1_3${aa} \
+ $base.tpc2_3${aa} $base.pc2_3${aa} \
$base.tpc3_3${aa} $base.pc3_3${aa} \
+ $base.tpc4_3${aa} $base.pc4_3${aa} \
+ -padx 2 -pady 2 -sticky w
+ grid $base.tpc1_4${aa} $base.pc1_4${aa} \
+ $base.tpc2_4${aa} $base.pc2_4${aa} \
+ $base.tpc3_4${aa} $base.pc3_4${aa} \
+ $base.tpc4_4${aa} $base.pc4_4${aa} \
-padx 2 -pady 2 -sticky w
grid $base.tlatpole${aa} $base.latpole${aa} \
$base.tlonpole${aa} $base.lonpole${aa} -padx 2 -pady 2 -sticky w
- for {set mm 0} {$mm<12} {incr mm} {
+ for {set mm 0} {$mm<18} {incr mm} {
grid $pv00.tpv1_${mm}${aa} $pv00.pv1_${mm}${aa} \
$pv00.tpv2_${mm}${aa} $pv00.pv2_${mm}${aa} \
+ $pv00.tpv3_${mm}${aa} $pv00.pv3_${mm}${aa} \
+ $pv00.tpv4_${mm}${aa} $pv00.pv4_${mm}${aa} \
-padx 2 -pady 2 -sticky w
}
- for {set mm 12} {$mm<24} {incr mm} {
- grid $pv12.tpv1_${mm}${aa} $pv12.pv1_${mm}${aa} \
- $pv12.tpv2_${mm}${aa} $pv12.pv2_${mm}${aa} \
- -padx 2 -pady 2 -sticky w
- }
- for {set mm 24} {$mm<36} {incr mm} {
- grid $pv24.tpv1_${mm}${aa} $pv24.pv1_${mm}${aa} \
- $pv24.tpv2_${mm}${aa} $pv24.pv2_${mm}${aa} \
+ for {set mm 18} {$mm<36} {incr mm} {
+ grid $pv18.tpv1_${mm}${aa} $pv18.pv1_${mm}${aa} \
+ $pv18.tpv2_${mm}${aa} $pv18.pv2_${mm}${aa} \
+ $pv18.tpv3_${mm}${aa} $pv18.pv3_${mm}${aa} \
+ $pv18.tpv4_${mm}${aa} $pv18.pv4_${mm}${aa} \
-padx 2 -pady 2 -sticky w
}
# only in primary
- grid $ab0.ta $ab0.a $ab0.tb $ab0.b -padx 2 -pady 2 -sticky w
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid $ab0.ta_${mm}_${nn} $ab0.a_${mm}_${nn} \
- $ab0.tb_${mm}_${nn} $ab0.b_${mm}_${nn} \
- -padx 2 -pady 2 -sticky w
- }
- }
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid $ab2.ta_${mm}_${nn} $ab2.a_${mm}_${nn} \
- $ab2.tb_${mm}_${nn} $ab2.b_${mm}_${nn} \
- -padx 2 -pady 2 -sticky w
- }
- }
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid $ab4.ta_${mm}_${nn} $ab4.a_${mm}_${nn} \
- $ab4.tb_${mm}_${nn} $ab4.b_${mm}_${nn} \
- -padx 2 -pady 2 -sticky w
+ grid $aa0.ta $aa0.a $aa0.tx $aa0.x -padx 2 -pady 2 -sticky w
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} {
+ set rr [expr $mm*3 + 2]
+ set cc [expr $nn*2]
+ if {[expr $nn >= 4]} {
+ incr rr
+ incr cc -8
+ }
+ if {[expr $nn >= 8]} {
+ incr rr
+ incr cc -8
+ }
+ grid configure \
+ $aa0.ta_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ incr cc
+ grid configure \
+ $aa0.a_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ }
}
}
- grid $apbp0.tap $apbp0.ap $apbp0.tbp $apbp0.bp -padx 2 -pady 2 -sticky w
- for {set mm 0} {$mm<2} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid $apbp0.tap_${mm}_${nn} $apbp0.ap_${mm}_${nn} \
- $apbp0.tbp_${mm}_${nn} $apbp0.bp_${mm}_${nn} \
- -padx 2 -pady 2 -sticky w
+ grid $bb0.tb $bb0.b $bb0.tx $bb0.x -padx 2 -pady 2 -sticky w
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} {
+ set rr [expr $mm*3 + 2]
+ set cc [expr $nn*2]
+ if {[expr $nn >= 4]} {
+ incr rr
+ incr cc -8
+ }
+ if {[expr $nn >= 8]} {
+ incr rr
+ incr cc -8
+ }
+ grid configure \
+ $bb0.tb_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ incr cc
+ grid configure \
+ $bb0.b_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ }
}
}
- for {set mm 2} {$mm<4} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid $apbp2.tap_${mm}_${nn} $apbp2.ap_${mm}_${nn} \
- $apbp2.tbp_${mm}_${nn} $apbp2.bp_${mm}_${nn} \
- -padx 2 -pady 2 -sticky w
+
+ grid $ap0.ta $ap0.a -padx 2 -pady 2 -sticky w
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} {
+ set rr [expr $mm*3 + 2]
+ set cc [expr $nn*2]
+ if {[expr $nn >= 4]} {
+ incr rr
+ incr cc -8
+ }
+ if {[expr $nn >= 8]} {
+ incr rr
+ incr cc -8
+ }
+ grid configure \
+ $ap0.ta_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ incr cc
+ grid configure \
+ $ap0.a_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ }
}
}
- for {set mm 4} {$mm<6} {incr mm} {
- for {set nn 0} {$nn<6} {incr nn} {
- grid $apbp4.tap_${mm}_${nn} $apbp4.ap_${mm}_${nn} \
- $apbp4.tbp_${mm}_${nn} $apbp4.bp_${mm}_${nn} \
- -padx 2 -pady 2 -sticky w
+
+ grid $bp0.tb $bp0.b -padx 2 -pady 2 -sticky w
+ for {set mm 0} {$mm<=9} {incr mm} {
+ for {set nn 0} {$nn<=9} {incr nn} {
+ if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} {
+ set rr [expr $mm*3 + 2]
+ set cc [expr $nn*2]
+ if {[expr $nn >= 4]} {
+ incr rr
+ incr cc -8
+ }
+ if {[expr $nn >= 8]} {
+ incr rr
+ incr cc -8
+ }
+ grid configure \
+ $bp0.tb_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ incr cc
+ grid configure \
+ $bp0.b_${mm}_${nn} \
+ -row $rr -column $cc -padx 2 -pady 2 -sticky w
+ }
}
}
}
@@ -834,7 +814,7 @@ proc WCSToVar {txt} {
set dwcs(latpole${aa}) {}
set dwcs(lonpole${aa}) {}
- for {set ii 1} {$ii<=3} {incr ii} {
+ for {set ii 1} {$ii<=4} {incr ii} {
set dwcs(ctype${ii}${aa}) {}
set dwcs(cunit${ii}${aa}) {}
set dwcs(crpix${ii}${aa}) {}
@@ -842,29 +822,30 @@ proc WCSToVar {txt} {
set dwcs(cdelt${ii}${aa}) {}
}
- for {set ii 1} {$ii<=2} {incr ii} {
- for {set jj 1} {$jj<=2} {incr jj} {
+ for {set ii 1} {$ii<=4} {incr ii} {
+ for {set jj 1} {$jj<=4} {incr jj} {
set dwcs(cd${ii}_${jj}${aa}) {}
set dwcs(pc${ii}_${jj}${aa}) {}
}
+ }
+ for {set ii 1} {$ii<=4} {incr ii} {
for {set mm 0} {$mm<36} {incr mm} {
set dwcs(pv${ii}_${mm}${aa}) {}
}
}
-
- set dwcs(cd3_3${aa}) {}
- set dwcs(pc3_3${aa}) {}
}
# primary only
set dwcs(a_order) {}
+ set dwcs(a_dmax) {}
for {set mm 0} {$mm<6} {incr mm} {
for {set nn 0} {$nn<6} {incr nn} {
set dwcs(a_${mm}_${nn}) {}
}
}
set dwcs(b_order) {}
+ set dwcs(b_dmax) {}
for {set mm 0} {$mm<6} {incr mm} {
for {set nn 0} {$nn<6} {incr nn} {
set dwcs(b_${mm}_${nn}) {}
@@ -932,6 +913,11 @@ proc WCSToVar {txt} {
if {$key == {radecsys}} {
set key radesys
}
+
+ # fix for PC00_00
+ if {[regexp {pc0([1-9])_0([1-9])} $key dummy aa bb]} {
+ set key pc${aa}_${bb}
+ }
switch [string range $key 0 6] {
mjd-obs -
@@ -945,43 +931,39 @@ proc WCSToVar {txt} {
equino -
latpol -
lonpol -
- ctype1 -
- ctype2 -
- ctype3 -
- cunit1 -
- cunit2 -
- cunit3 -
- crpix1 -
- crpix2 -
- crpix3 -
- crval1 -
- crval2 -
- crval3 -
- cdelt1 -
- cdelt2 -
- cdelt3 -
- cd3_3 -
- pc3_3 -
a_orde -
+ a_dmax -
b_orde -
+ b_dmax -
ap_ord -
bp_ord {
set dwcs($key) $val
}
}
+ switch [string range $key 0 4] {
+ ctype -
+ cunit -
+ crpix -
+ crval -
+ cdelt {
+ set dwcs($key) $val
+ }
+ }
switch [string range $key 0 3] {
epoc -
date -
cd1_ -
- cd1_ -
- cd2_ -
cd2_ -
+ cd3_ -
+ cd4_ -
pc1_ -
- pc1_ -
- pc2_ -
pc2_ -
+ pc3_ -
+ pc4_ -
pv1_ -
- pv2_ {
+ pv2_ -
+ pv3_ -
+ pv4_ {
set dwcs($key) $val
}
}
@@ -1040,7 +1022,7 @@ proc WCSFromVar {} {
append rr "LONPOLE${bb} = $dwcs(lonpole${aa})\n"
}
- for {set ii 1} {$ii<=3} {incr ii} {
+ for {set ii 1} {$ii<=4} {incr ii} {
if {$dwcs(ctype${ii}${aa}) != {}} {
append rr "CTYPE${ii}${bb} = '$dwcs(ctype${ii}${aa})'\n"
}
@@ -1058,8 +1040,8 @@ proc WCSFromVar {} {
}
}
- for {set ii 1} {$ii<=2} {incr ii} {
- for {set jj 1} {$jj<=2} {incr jj} {
+ for {set ii 1} {$ii<=4} {incr ii} {
+ for {set jj 1} {$jj<=4} {incr jj} {
if {$dwcs(cd${ii}_${jj}${aa}) != {}} {
append rr "CD${ii}_${jj}${bb} = $dwcs(cd${ii}_${jj}${aa})\n"
}
@@ -1067,25 +1049,23 @@ proc WCSFromVar {} {
append rr "PC${ii}_${jj}${bb} = $dwcs(pc${ii}_${jj}${aa})\n"
}
}
+ }
+ for {set ii 1} {$ii<=4} {incr ii} {
for {set mm 0} {$mm<36} {incr mm} {
if {$dwcs(pv${ii}_${mm}${aa}) != {}} {
append rr "PV${ii}_${mm}${bb} = $dwcs(pv${ii}_${mm}${aa})\n"
}
}
}
-
- if {$dwcs(cd3_3${aa}) != {}} {
- append rr "CD3_3${bb} = $dwcs(cd3_3${aa})\n"
- }
- if {$dwcs(pc3_3${aa}) != {}} {
- append rr "PC3_3${bb} = $dwcs(pc3_3${aa})\n"
- }
}
if {$dwcs(a_order) != {}} {
append rr "A_ORDER = $dwcs(a_order)\n"
}
+ if {$dwcs(a_dmax) != {}} {
+ append rr "A_DMAX = $dwcs(a_dmax)\n"
+ }
for {set mm 0} {$mm<6} {incr mm} {
for {set nn 0} {$nn<6} {incr nn} {
if {$dwcs(a_${mm}_${nn}) != {}} {
@@ -1093,9 +1073,13 @@ proc WCSFromVar {} {
}
}
}
+
if {$dwcs(b_order) != {}} {
append rr "B_ORDER = $dwcs(b_order)\n"
}
+ if {$dwcs(b_dmax) != {}} {
+ append rr "B_DMAX = $dwcs(b_dmax)\n"
+ }
for {set mm 0} {$mm<6} {incr mm} {
for {set nn 0} {$nn<6} {incr nn} {
if {$dwcs(b_${mm}_${nn}) != {}} {
diff --git a/tclzipfs/license.terms b/tclzipfs/license.terms
new file mode 100644
index 0000000..d8049cd
--- /dev/null
+++ b/tclzipfs/license.terms
@@ -0,0 +1,40 @@
+This software is copyrighted by the Regents of the University of
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7014 (b) (3) of DFARs. Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license.
diff --git a/tksao/frame/fitsimage.C b/tksao/frame/fitsimage.C
index bfd0cbf..d5db1ce 100644
--- a/tksao/frame/fitsimage.C
+++ b/tksao/frame/fitsimage.C
@@ -1065,7 +1065,8 @@ void FitsImage::initWCS(FitsHead* hd)
if (ast_)
astAnnul(ast_);
ast_ =NULL;
- if (encoding_)
+
+ if (encoding_)
delete [] encoding_;
encoding_ =NULL;
@@ -1146,9 +1147,12 @@ void FitsImage::initWCS(FitsHead* hd)
encoding_ =NULL;
ast_ = fits2ast(hd);
- if (!ast_)
+ if (!ast_) {
+ // reset to process LTMV keywords
+ keyLTMV =0;
return;
-
+ }
+
// special case
if (astGetI(ast_,"Naxes") == 2 &&
astIsASkyFrame(astGetFrame(ast_,AST__CURRENT)) &&