Commit 424ac6f9 authored by Andrey Filippov's avatar Andrey Filippov

CLAUDE: curt.dbg_fpixels - parameterize the oracle DBG renders (was hardcoded, ~11GB/run)

New checkbox 'Save oracle DBG renders (11GB)' (default ON - current
behavior preserved): gates the EXTRA per-sensor -CUAS-INDIVIDUAL-CUAS-DBG
render pass and the -CUAS-MERGED-CUAS-DBG save in CuasRanging.prepareFpixels
(the merged render itself stays - it is the production imp_targets input).
Turn OFF to save render time and disk once -CUAS-RT-RENDER (rend_test, the
RT-chain full render) is the trusted full product.
Also refreshed the stale dc_center GUI tooltip (RT-STATE.json semantics).
Co-Authored-By: 's avatarClaude Fable 5 <noreply@anthropic.com>
parent af6ef9ec
...@@ -75,7 +75,7 @@ public class CuasRanging { ...@@ -75,7 +75,7 @@ public class CuasRanging {
} }
public ImagePlus prepareFpixels(){ public ImagePlus prepareFpixels(){
boolean dbg_save_fpixels = true; boolean dbg_save_fpixels = clt_parameters.curt.dbg_fpixels; // was hardcoded true: gates the EXTRA per-sensor -CUAS-INDIVIDUAL-CUAS-DBG render pass (~11GB) + the -CUAS-MERGED-CUAS-DBG save; -CUAS-RT-RENDER (rend_test) is the RT-chain full render // By Claude on 07/05/2026
double [][]combo_dsi = getCenter_CLT().comboFromMain(); double [][]combo_dsi = getCenter_CLT().comboFromMain();
double [][] dls = { double [][] dls = {
combo_dsi[OpticalFlow.COMBO_DSN_INDX_DISP], // **** null on second scene sequence combo_dsi[OpticalFlow.COMBO_DSN_INDX_DISP], // **** null on second scene sequence
......
...@@ -29,6 +29,7 @@ public class CuasRtParameters { ...@@ -29,6 +29,7 @@ public class CuasRtParameters {
public boolean pose_img_save = false; // DEBUG: save the composite scenes actually correlated - imclt render of the consolidated 16-sensor TD average at the converged pose (-POSE-RT-COMPOSITE: z=scenes; NaN outside task tiles) + the virtual-center reference render (-POSE-RT-CENTER-REF). Lean engine only. // By Claude on 07/04/2026 public boolean pose_img_save = false; // DEBUG: save the composite scenes actually correlated - imclt render of the consolidated 16-sensor TD average at the converged pose (-POSE-RT-COMPOSITE: z=scenes; NaN outside task tiles) + the virtual-center reference render (-POSE-RT-CENTER-REF). Lean engine only. // By Claude on 07/04/2026
public boolean pose_stored = false; // DEBUG: decouple rendering/measurement from the LMA - use the STORED (oracle vintage) pose for every scene, no adjustment; one leanMeasure per scene feeds -POSE-RT-HYPER/-CORR2D/-COMPOSITE. The composite must then match the oracle CUAS-MERGED-CUAS-DBG renders tile-for-tile. Lean engine only. // By Claude on 07/04/2026 public boolean pose_stored = false; // DEBUG: decouple rendering/measurement from the LMA - use the STORED (oracle vintage) pose for every scene, no adjustment; one leanMeasure per scene feeds -POSE-RT-HYPER/-CORR2D/-COMPOSITE. The composite must then match the oracle CUAS-MERGED-CUAS-DBG renders tile-for-tile. Lean engine only. // By Claude on 07/04/2026
public boolean rend_test = false; // MINIMAL RT ingest+render test (CuasRender.testRenderSequence, takes precedence over pose test): per scene raw /jp4/ -> conditionSceneToGpu -> virtual-grid render at BORROWED stored pose+ERS rates -> -CUAS-RT-RENDER hyperstack [s00..s15, merged][scenes], comparable to -CUAS-INDIVIDUAL/MERGED-CUAS-DBG. Certify THIS before the pose test. // By Claude on 07/05/2026 public boolean rend_test = false; // MINIMAL RT ingest+render test (CuasRender.testRenderSequence, takes precedence over pose test): per scene raw /jp4/ -> conditionSceneToGpu -> virtual-grid render at BORROWED stored pose+ERS rates -> -CUAS-RT-RENDER hyperstack [s00..s15, merged][scenes], comparable to -CUAS-INDIVIDUAL/MERGED-CUAS-DBG. Certify THIS before the pose test. // By Claude on 07/05/2026
public boolean dbg_fpixels = true; // save the ORACLE debug renders during ingest (prepareFpixels): -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) + -CUAS-MERGED-CUAS-DBG (save only - the merged render is the production input regardless). Was hardcoded. Turn OFF to save the render time and disk once the RT chain (-CUAS-RT-RENDER) is the trusted full render. // By Claude on 07/05/2026
public double fz_inter = 10000.0; // RT fat zero, INTER (pose/motion: scene x virtual-center correlation). DECOUPLED from the legacy gpu_fatz*/AUX switches (which stay untouched for non-RT/FOPEN). Value is for a single physical-pair amplitude; FZ ~ amplitude^2 in the GPU normalize - scale down x4..x16 for consolidated-average applications as needed. 10000 = the proven oracle INTER operating point (the lean code erroneously used the INTRA value before). // By Claude on 07/05/2026 public double fz_inter = 10000.0; // RT fat zero, INTER (pose/motion: scene x virtual-center correlation). DECOUPLED from the legacy gpu_fatz*/AUX switches (which stay untouched for non-RT/FOPEN). Value is for a single physical-pair amplitude; FZ ~ amplitude^2 in the GPU normalize - scale down x4..x16 for consolidated-average applications as needed. 10000 = the proven oracle INTER operating point (the lean code erroneously used the INTRA value before). // By Claude on 07/05/2026
public double fz_intra = 2000.0; // RT fat zero, INTRA (ranging/disparity: sensor-pair correlations within one scene). Reserved for the RT ranging path; same decoupling/scaling notes as fz_inter. // By Claude on 07/05/2026 public double fz_intra = 2000.0; // RT fat zero, INTRA (ranging/disparity: sensor-pair correlations within one scene). Reserved for the RT ranging path; same decoupling/scaling notes as fz_inter. // By Claude on 07/05/2026
public double dc_center = 0.0; // DC level of the BORROWED center (CLT-RESTORED/average): subtracted from the center CLT at appropriation (CuasRT initialization) so it matches the zero-sky conditioned scenes (MCLT has no clean DC/AC split - a DC constant costs float32 accuracy). 0 = AUTO: reuse the PER-SEQUENCE value from <center>-RT-STATE.json; when absent, derive as the median of the top (sky) half of the reference buffer render and store it there (erase the file/field to re-derive - the missing-file rule). Nonzero = manual override; this config value is never mutated. Slow targets do not influence this shift. // By Claude on 07/05/2026 public double dc_center = 0.0; // DC level of the BORROWED center (CLT-RESTORED/average): subtracted from the center CLT at appropriation (CuasRT initialization) so it matches the zero-sky conditioned scenes (MCLT has no clean DC/AC split - a DC constant costs float32 accuracy). 0 = AUTO: reuse the PER-SEQUENCE value from <center>-RT-STATE.json; when absent, derive as the median of the top (sky) half of the reference buffer render and store it there (erase the file/field to re-derive - the missing-file rule). Nonzero = manual override; this config value is never mutated. Slow targets do not influence this shift. // By Claude on 07/05/2026
...@@ -115,12 +116,14 @@ public class CuasRtParameters { ...@@ -115,12 +116,14 @@ public class CuasRtParameters {
"DEBUG: measure/render every scene at its STORED pose, skip the LMA entirely - decouples the task/render/correlation chain from the solver. Lean engine only."); "DEBUG: measure/render every scene at its STORED pose, skip the LMA entirely - decouples the task/render/correlation chain from the solver. Lean engine only.");
gd.addCheckbox ("CUAS RT render test (ingest+render)", this.rend_test, // By Claude on 07/05/2026 gd.addCheckbox ("CUAS RT render test (ingest+render)", this.rend_test, // By Claude on 07/05/2026
"MINIMAL standalone test (precedence over pose test): raw jp4 -> conditioning -> virtual-grid render at borrowed stored poses/ERS; saves -CUAS-RT-RENDER [s00..s15+merged][scenes] to compare against the -CUAS-*-DBG oracle products."); "MINIMAL standalone test (precedence over pose test): raw jp4 -> conditioning -> virtual-grid render at borrowed stored poses/ERS; saves -CUAS-RT-RENDER [s00..s15+merged][scenes] to compare against the -CUAS-*-DBG oracle products.");
gd.addCheckbox ("Save oracle DBG renders (11GB)", this.dbg_fpixels, // By Claude on 07/05/2026
"Save -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) and -CUAS-MERGED-CUAS-DBG during ingest. Turn OFF to save render time and disk once -CUAS-RT-RENDER (RT render test) is the trusted full render.");
gd.addNumericField("RT fat zero INTER (pose/motion)", this.fz_inter, 1,9,"", // By Claude on 07/05/2026 gd.addNumericField("RT fat zero INTER (pose/motion)", this.fz_inter, 1,9,"", // By Claude on 07/05/2026
"RT-decoupled fat zero for INTERscene (pose/motion) correlations - the legacy gpu_fatz*/AUX parameters are not used by RT. For a single physical-pair amplitude; FZ ~ amplitude^2."); "RT-decoupled fat zero for INTERscene (pose/motion) correlations - the legacy gpu_fatz*/AUX parameters are not used by RT. For a single physical-pair amplitude; FZ ~ amplitude^2.");
gd.addNumericField("RT fat zero INTRA (ranging)", this.fz_intra, 1,9,"", // By Claude on 07/05/2026 gd.addNumericField("RT fat zero INTRA (ranging)", this.fz_intra, 1,9,"", // By Claude on 07/05/2026
"RT-decoupled fat zero for INTRAscene (ranging/disparity) correlations (reserved)."); "RT-decoupled fat zero for INTRAscene (ranging/disparity) correlations (reserved).");
gd.addNumericField("Center DC level (0 - auto)", this.dc_center, 3,9,"counts", // By Claude on 07/05/2026 gd.addNumericField("Center DC level (0 - auto)", this.dc_center, 3,9,"counts", // By Claude on 07/05/2026
"DC level subtracted from the borrowed center reference at appropriation (match the zero-sky scenes). 0 = compute from the center average (median of the sky half) and adopt; persisted with the configuration."); "DC level subtracted from the borrowed center at appropriation (match the zero-sky scenes). 0 = AUTO: reuse the per-sequence value from <center>-RT-STATE.json, derive (sky-half median of the reference render) and store there when absent; erase the file/field to re-derive. Nonzero = manual override; this configuration value is never mutated.");
gd.addMessage("=== LoG prefilter ==="); gd.addMessage("=== LoG prefilter ===");
gd.addNumericField("Optical PSF radius", this.psf_radius, 6,8,"pix", gd.addNumericField("Optical PSF radius", this.psf_radius, 6,8,"pix",
...@@ -257,6 +260,7 @@ public class CuasRtParameters { ...@@ -257,6 +260,7 @@ public class CuasRtParameters {
this.pose_img_save = gd.getNextBoolean(); // By Claude on 07/04/2026 this.pose_img_save = gd.getNextBoolean(); // By Claude on 07/04/2026
this.pose_stored = gd.getNextBoolean(); // By Claude on 07/04/2026 this.pose_stored = gd.getNextBoolean(); // By Claude on 07/04/2026
this.rend_test = gd.getNextBoolean(); // By Claude on 07/05/2026 this.rend_test = gd.getNextBoolean(); // By Claude on 07/05/2026
this.dbg_fpixels = gd.getNextBoolean(); // By Claude on 07/05/2026
this.fz_inter = gd.getNextNumber(); // By Claude on 07/05/2026 this.fz_inter = gd.getNextNumber(); // By Claude on 07/05/2026
this.fz_intra = gd.getNextNumber(); // By Claude on 07/05/2026 this.fz_intra = gd.getNextNumber(); // By Claude on 07/05/2026
this.dc_center = gd.getNextNumber(); // By Claude on 07/05/2026 this.dc_center = gd.getNextNumber(); // By Claude on 07/05/2026
...@@ -340,6 +344,7 @@ public class CuasRtParameters { ...@@ -340,6 +344,7 @@ public class CuasRtParameters {
properties.setProperty(prefix+"pose_img_save", this.pose_img_save+""); // boolean // By Claude on 07/04/2026 properties.setProperty(prefix+"pose_img_save", this.pose_img_save+""); // boolean // By Claude on 07/04/2026
properties.setProperty(prefix+"pose_stored", this.pose_stored+""); // boolean // By Claude on 07/04/2026 properties.setProperty(prefix+"pose_stored", this.pose_stored+""); // boolean // By Claude on 07/04/2026
properties.setProperty(prefix+"rend_test", this.rend_test+""); // boolean // By Claude on 07/05/2026 properties.setProperty(prefix+"rend_test", this.rend_test+""); // boolean // By Claude on 07/05/2026
properties.setProperty(prefix+"dbg_fpixels", this.dbg_fpixels+""); // boolean // By Claude on 07/05/2026
properties.setProperty(prefix+"fz_inter", this.fz_inter+""); // double // By Claude on 07/05/2026 properties.setProperty(prefix+"fz_inter", this.fz_inter+""); // double // By Claude on 07/05/2026
properties.setProperty(prefix+"fz_intra", this.fz_intra+""); // double // By Claude on 07/05/2026 properties.setProperty(prefix+"fz_intra", this.fz_intra+""); // double // By Claude on 07/05/2026
properties.setProperty(prefix+"dc_center", this.dc_center+""); // double // By Claude on 07/05/2026 properties.setProperty(prefix+"dc_center", this.dc_center+""); // double // By Claude on 07/05/2026
...@@ -423,6 +428,7 @@ public class CuasRtParameters { ...@@ -423,6 +428,7 @@ public class CuasRtParameters {
if (properties.getProperty(prefix+"pose_img_save")!=null) this.pose_img_save=Boolean.parseBoolean(properties.getProperty(prefix+"pose_img_save")); // By Claude on 07/04/2026 if (properties.getProperty(prefix+"pose_img_save")!=null) this.pose_img_save=Boolean.parseBoolean(properties.getProperty(prefix+"pose_img_save")); // By Claude on 07/04/2026
if (properties.getProperty(prefix+"pose_stored")!=null) this.pose_stored=Boolean.parseBoolean(properties.getProperty(prefix+"pose_stored")); // By Claude on 07/04/2026 if (properties.getProperty(prefix+"pose_stored")!=null) this.pose_stored=Boolean.parseBoolean(properties.getProperty(prefix+"pose_stored")); // By Claude on 07/04/2026
if (properties.getProperty(prefix+"rend_test")!=null) this.rend_test=Boolean.parseBoolean(properties.getProperty(prefix+"rend_test")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"rend_test")!=null) this.rend_test=Boolean.parseBoolean(properties.getProperty(prefix+"rend_test")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"dbg_fpixels")!=null) this.dbg_fpixels=Boolean.parseBoolean(properties.getProperty(prefix+"dbg_fpixels")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"fz_inter")!=null) this.fz_inter=Double.parseDouble(properties.getProperty(prefix+"fz_inter")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"fz_inter")!=null) this.fz_inter=Double.parseDouble(properties.getProperty(prefix+"fz_inter")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"fz_intra")!=null) this.fz_intra=Double.parseDouble(properties.getProperty(prefix+"fz_intra")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"fz_intra")!=null) this.fz_intra=Double.parseDouble(properties.getProperty(prefix+"fz_intra")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"dc_center")!=null) this.dc_center=Double.parseDouble(properties.getProperty(prefix+"dc_center")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"dc_center")!=null) this.dc_center=Double.parseDouble(properties.getProperty(prefix+"dc_center")); // By Claude on 07/05/2026
...@@ -509,6 +515,7 @@ public class CuasRtParameters { ...@@ -509,6 +515,7 @@ public class CuasRtParameters {
cp.pose_img_save = this.pose_img_save; // By Claude on 07/04/2026 cp.pose_img_save = this.pose_img_save; // By Claude on 07/04/2026
cp.pose_stored = this.pose_stored; // By Claude on 07/04/2026 cp.pose_stored = this.pose_stored; // By Claude on 07/04/2026
cp.rend_test = this.rend_test; // By Claude on 07/05/2026 cp.rend_test = this.rend_test; // By Claude on 07/05/2026
cp.dbg_fpixels = this.dbg_fpixels; // By Claude on 07/05/2026
cp.fz_inter = this.fz_inter; // By Claude on 07/05/2026 cp.fz_inter = this.fz_inter; // By Claude on 07/05/2026
cp.fz_intra = this.fz_intra; // By Claude on 07/05/2026 cp.fz_intra = this.fz_intra; // By Claude on 07/05/2026
cp.dc_center = this.dc_center; // By Claude on 07/05/2026 cp.dc_center = this.dc_center; // By Claude on 07/05/2026
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment