Skip to content

Conversation

@pressler-vsc
Copy link
Contributor

Description

This PR refactors the current DES implementation in jbpy.core to one that supports plugins in a very similar fashion to jbpy's TRE implementation.

XmlDataContentSubheader was largely copy-pasted from core, but I did make some fields nullable.

See the new portions of the README for some implementation details.

Demo

$ jbpinfo "/host_shared/JITC_QuickLook_NITF/Quick-Look-Set-v2023.11.30/2. Data Segments/Test Files/NITF_DES_POS_01.ntf" --format=json | jq '.DataExtensionSegments' 
[
  {
    "subheader": {
      "DE": "DE",
      "DESID": "TRE_OVERFLOW",
      "DESVER": 1,
      "DESCLAS": "U",
      "DESCLSY": "US",
      "DESCODE": null,
      "DESCTLH": null,
      "DESREL": null,
      "DESDCTP": null,
      "DESDCDT": null,
      "DESDCXM": null,
      "DESDG": null,
      "DESDGDT": null,
      "DESCLTX": null,
      "DESCATP": null,
      "DESCAUT": null,
      "DESCRSN": null,
      "DESSRDT": null,
      "DESCTLN": null,
      "DESOFLW": "IXSHD",
      "DESITEM": 1,
      "DESSHL": 0
    },
    "DESDATA": [
      {
        "CETAG": "RPC00B",
        "CEL": 1041,
        "SUCCESS": [
          49
        ],
        "ERR_BIAS": 17.97,
        "ERR_RAND": 0.14,
        "LINE_OFF": 13230,
        "SAMP_OFF": 14448,
        "LAT_OFF": 33.3717,
        "LONG_OFF": 44.3517,
        "HEIGHT_OFF": 31,
        "LINE_SCALE": 13230,
        "SAMP_SCALE": 14448,
        "LAT_SCALE": 0.0834,
        "LONG_SCALE": 0.0911,
        "HEIGHT_SCALE": 500,
        "LINE_NUM_COEFF_1": 0.00107799,
        "LINE_NUM_COEFF_2": 0.0,
        "LINE_NUM_COEFF_3": -1.00061,
        "LINE_NUM_COEFF_4": 0.0,
        "LINE_NUM_COEFF_5": 0.0,
        "LINE_NUM_COEFF_6": 0.0,
        "LINE_NUM_COEFF_7": 0.0,
        "LINE_NUM_COEFF_8": 0.0,
        "LINE_NUM_COEFF_9": -0.000539327,
        "LINE_NUM_COEFF_10": 0.0,
        "LINE_NUM_COEFF_11": 0.0,
        "LINE_NUM_COEFF_12": 0.0,
        "LINE_NUM_COEFF_13": 0.0,
        "LINE_NUM_COEFF_14": 0.0,
        "LINE_NUM_COEFF_15": 0.0,
        "LINE_NUM_COEFF_16": -2.90697E-7,
        "LINE_NUM_COEFF_17": 0.0,
        "LINE_NUM_COEFF_18": 0.0,
        "LINE_NUM_COEFF_19": 0.0,
        "LINE_NUM_COEFF_20": 0.0,
        "LINE_DEN_COEFF_1": 1.0,
        "LINE_DEN_COEFF_2": 0.0,
        "LINE_DEN_COEFF_3": 0.000538998,
        "LINE_DEN_COEFF_4": 0.0,
        "LINE_DEN_COEFF_5": 0.0,
        "LINE_DEN_COEFF_6": 0.0,
        "LINE_DEN_COEFF_7": 0.0,
        "LINE_DEN_COEFF_8": 0.0,
        "LINE_DEN_COEFF_9": 2.90519E-7,
        "LINE_DEN_COEFF_10": 0.0,
        "LINE_DEN_COEFF_11": 0.0,
        "LINE_DEN_COEFF_12": 0.0,
        "LINE_DEN_COEFF_13": 0.0,
        "LINE_DEN_COEFF_14": 0.0,
        "LINE_DEN_COEFF_15": 0.0,
        "LINE_DEN_COEFF_16": 0.0,
        "LINE_DEN_COEFF_17": 0.0,
        "LINE_DEN_COEFF_18": 0.0,
        "LINE_DEN_COEFF_19": 0.0,
        "LINE_DEN_COEFF_20": 0.0,
        "SAMP_NUM_COEFF_1": -0.000285094,
        "SAMP_NUM_COEFF_2": 1.00085,
        "SAMP_NUM_COEFF_3": 0.0,
        "SAMP_NUM_COEFF_4": 0.0,
        "SAMP_NUM_COEFF_5": 0.0,
        "SAMP_NUM_COEFF_6": 0.0,
        "SAMP_NUM_COEFF_7": 0.0,
        "SAMP_NUM_COEFF_8": 0.000142668,
        "SAMP_NUM_COEFF_9": 0.0,
        "SAMP_NUM_COEFF_10": 0.0,
        "SAMP_NUM_COEFF_11": 0.0,
        "SAMP_NUM_COEFF_12": 2.03371E-8,
        "SAMP_NUM_COEFF_13": 0.0,
        "SAMP_NUM_COEFF_14": 0.0,
        "SAMP_NUM_COEFF_15": 0.0,
        "SAMP_NUM_COEFF_16": 0.0,
        "SAMP_NUM_COEFF_17": 0.0,
        "SAMP_NUM_COEFF_18": 0.0,
        "SAMP_NUM_COEFF_19": 0.0,
        "SAMP_NUM_COEFF_20": 0.0,
        "SAMP_DEN_COEFF_1": 1.0,
        "SAMP_DEN_COEFF_2": 0.000142547,
        "SAMP_DEN_COEFF_3": 0.0,
        "SAMP_DEN_COEFF_4": 0.0,
        "SAMP_DEN_COEFF_5": 0.0,
        "SAMP_DEN_COEFF_6": 0.0,
        "SAMP_DEN_COEFF_7": 0.0,
        "SAMP_DEN_COEFF_8": 2.03196E-8,
        "SAMP_DEN_COEFF_9": 0.0,
        "SAMP_DEN_COEFF_10": 0.0,
        "SAMP_DEN_COEFF_11": 0.0,
        "SAMP_DEN_COEFF_12": 0.0,
        "SAMP_DEN_COEFF_13": 0.0,
        "SAMP_DEN_COEFF_14": 0.0,
        "SAMP_DEN_COEFF_15": 0.0,
        "SAMP_DEN_COEFF_16": 0.0,
        "SAMP_DEN_COEFF_17": 0.0,
        "SAMP_DEN_COEFF_18": 0.0,
        "SAMP_DEN_COEFF_19": 0.0,
        "SAMP_DEN_COEFF_20": 0.0
      },
      {
        "CETAG": "ICHIPB",
        "CEL": 224,
        "XFRM_FLG": 0,
        "SCALE_FACTOR": 1.0,
        "ANAMRPH_CORR": 0,
        "SCANBLK_NUM": 0,
        "OP_ROW_11": 0.5,
        "OP_COL_11": 0.5,
        "OP_ROW_12": 0.5,
        "OP_COL_12": 511.5,
        "OP_ROW_21": 511.5,
        "OP_COL_21": 0.5,
        "OP_ROW_22": 511.5,
        "OP_COL_22": 511.5,
        "FI_ROW_11": 14336.5,
        "FI_COL_11": 14336.5,
        "FI_ROW_12": 14336.5,
        "FI_COL_12": 14847.5,
        "FI_ROW_21": 14847.5,
        "FI_COL_21": 14336.5,
        "FI_ROW_22": 14847.5,
        "FI_COL_22": 14847.5,
        "FI_ROW": 26464,
        "FI_COL": 28900
      }
    ]
  }
]

@pressler-vsc pressler-vsc merged commit 020b2ba into main Dec 5, 2025
5 checks passed
@pressler-vsc pressler-vsc deleted the des-refactor branch December 5, 2025 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants