{
  "examples": [
    {
      "concepts": [
        "uploaded input",
        "saved result"
      ],
      "exampleID": "save-upload",
      "nodeTypes": [
        "analysis-output",
        "dataset-input"
      ],
      "purpose": "Save uploaded dataset",
      "requirements": {
        "inputs": [
          {
            "description": "Review actual source variable and dimension bindings before submission.",
            "dimensions": [
              "spectral",
              "y",
              "x"
            ],
            "inputID": "uploaded"
          }
        ]
      },
      "title": "Save uploaded dataset",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#save-upload",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "rawOutput": [
              "spectrum"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "x": "x",
                "y": "y"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "rawOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Save uploaded dataset.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "rawOutput"
          }
        ],
        "friendlyName": "Save uploaded dataset",
        "nodes": [
          {
            "displayName": "Uploaded dataset",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "nodeID": "rawOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Uploaded dataset",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "spectrum",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "c585bac6b479c9f6bc173af09025a63131be3ee558367458e7421baf032ef09d"
      }
    },
    {
      "concepts": [
        "uploaded input",
        "saved result"
      ],
      "exampleID": "process-and-save",
      "nodeTypes": [
        "analysis-output",
        "dataset-input",
        "local-mean"
      ],
      "purpose": "Spatial average and save",
      "requirements": {
        "inputs": [
          {
            "description": "Review actual source variable and dimension bindings before submission.",
            "dimensions": [
              "spectral",
              "y",
              "x"
            ],
            "inputID": "uploaded"
          }
        ]
      },
      "title": "Spatial average and save",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#process-and-save",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "smoothedOutput": [
              "spectrum"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "x": "x",
                "y": "y"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "smoothedOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Spatial average and save.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {
                "x": {
                  "windowSize": 3
                },
                "y": {
                  "windowSize": 3
                }
              },
              "dimensions": {
                "axes": [
                  "y",
                  "x"
                ]
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "dataset",
            "toNodeID": "spatialAverage"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "spatialAverage",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "smoothedOutput"
          }
        ],
        "friendlyName": "Spatial average and save",
        "nodes": [
          {
            "displayName": "Uploaded dataset",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "displayName": "3x3 spatial mean",
            "nodeID": "spatialAverage",
            "nodeType": "local-mean",
            "nodeVersion": "local-mean-v2",
            "parameters": {}
          },
          {
            "nodeID": "smoothedOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Spatially smoothed dataset",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "spectrum",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "7fa45e4dcfefc8971763f0c2fdee9feeb92339bbc0b76e04a270e4833a76f6d5"
      }
    },
    {
      "concepts": [
        "uploaded input",
        "saved result",
        "branching",
        "multiple outputs"
      ],
      "exampleID": "preserve-source-and-derived-result",
      "nodeTypes": [
        "analysis-output",
        "dataset-input",
        "local-mean"
      ],
      "purpose": "Save uploaded and spatially smoothed datasets",
      "requirements": {
        "inputs": [
          {
            "description": "Review actual source variable and dimension bindings before submission.",
            "dimensions": [
              "spectral",
              "y",
              "x"
            ],
            "inputID": "uploaded"
          }
        ]
      },
      "title": "Save uploaded and spatially smoothed datasets",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#preserve-source-and-derived-result",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "rawOutput": [
              "spectrum"
            ],
            "smoothedOutput": [
              "spectrum"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "x": "x",
                "y": "y"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "rawOutput": "exploration",
            "smoothedOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Save uploaded and spatially smoothed datasets.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {
                "x": {
                  "windowSize": 3
                },
                "y": {
                  "windowSize": 3
                }
              },
              "dimensions": {
                "axes": [
                  "y",
                  "x"
                ]
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "dataset",
            "toNodeID": "spatialAverage"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "rawOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "spatialAverage",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "smoothedOutput"
          }
        ],
        "friendlyName": "Save uploaded and spatially smoothed datasets",
        "nodes": [
          {
            "displayName": "Uploaded dataset",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "displayName": "3x3 spatial mean",
            "nodeID": "spatialAverage",
            "nodeType": "local-mean",
            "nodeVersion": "local-mean-v2",
            "parameters": {}
          },
          {
            "nodeID": "rawOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Uploaded dataset",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "spectrum",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          },
          {
            "nodeID": "smoothedOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Spatially smoothed dataset",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "spectrum",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "3ca4469d6fb799fd2a9f251dfb752ecf603c02caebc33d608e023c540bd646f4"
      }
    },
    {
      "concepts": [
        "complete workflow",
        "source-dependent review"
      ],
      "description": "Preserve an already detector/NRB-corrected CARS dataset and run neural prediction.",
      "exampleID": "hyperspectral-corrected-cars-dataset-and-raman-prediction",
      "expectedOutputs": [
        {
          "friendlyName": "Corrected CARS dataset",
          "nodeID": "measurementOutput",
          "purpose": "Preserve the uploaded already detector/NRB-corrected intensity."
        },
        {
          "friendlyName": "Raman spectrum",
          "nodeID": "predictionOutput",
          "purpose": "Save the neural Raman median and requested predictive bounds without repeating reference correction."
        }
      ],
      "nodeTypes": [
        "analysis-output",
        "cars-neural-network-prediction",
        "dataset-input"
      ],
      "purpose": "Preserve an already detector/NRB-corrected CARS dataset and run neural prediction.",
      "requirements": {
        "caveats": [
          "The caller must establish that reference correction has already been performed; no source flag or modality infers it.",
          "Requires a strictly monotonic shift coordinate and complete finite spectra; model compatibility remains source-dependent."
        ],
        "inputs": [
          {
            "coordinatePolicy": "explicit-physical-choice",
            "coordinates": {},
            "description": "Bind the assigned spectral dimension and explicitly selected physical coordinate. Spatial and time dimensions are selected from inspection, not inferred from the project label.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [
              "y",
              "x",
              "spectral"
            ],
            "inputID": "uploaded",
            "sourceRole": "primary",
            "variable": "signal"
          }
        ],
        "scientificCompatibility": "source-dependent-validation-deferred"
      },
      "title": "Corrected CARS dataset and Raman prediction",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#hyperspectral-corrected-cars-dataset-and-raman-prediction",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "measurementOutput": [
              "curve",
              "layers"
            ],
            "predictionOutput": [
              "curve",
              "layers"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "x": "x",
                "y": "y"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "measurementOutput": "exploration",
            "predictionOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Preserve an already detector/NRB-corrected CARS dataset and run neural prediction.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "measurement",
            "toNodeID": "prediction"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "measurementOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "prediction",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "predictionOutput"
          }
        ],
        "friendlyName": "Corrected CARS dataset and Raman prediction",
        "nodes": [
          {
            "displayName": "Corrected CARS dataset",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "displayName": "CARS neural network prediction",
            "nodeID": "prediction",
            "nodeType": "cars-neural-network-prediction",
            "nodeVersion": "cars-neural-network-prediction-v2",
            "parameters": {
              "predictiveIntervals": [
                {
                  "confidenceLevel": 95
                },
                {
                  "confidenceLevel": 90
                },
                {
                  "confidenceLevel": 75
                },
                {
                  "confidenceLevel": 50
                }
              ]
            }
          },
          {
            "nodeID": "measurementOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Corrected CARS dataset",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                }
              ]
            }
          },
          {
            "nodeID": "predictionOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Raman spectrum",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [
                    "predictive-95",
                    "predictive-90",
                    "predictive-75",
                    "predictive-50"
                  ],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "610906b7cfe81b0c4275a78a7e664ec7f42accba0afdcb3c51fc6e71a94dcecb"
      }
    },
    {
      "concepts": [
        "complete workflow",
        "source-dependent review"
      ],
      "description": "Compare reference-normalized CARS, neural prediction, MEM retrieval and three Gaussian peak ranges.",
      "exampleID": "hyperspectral-cars-correction-raman-prediction-mem-retrieval-and-gaussian-peaks",
      "expectedOutputs": [
        {
          "friendlyName": "Uploaded CARS dataset",
          "nodeID": "uploadedOutput",
          "purpose": "Preserve the uncorrected measurement."
        },
        {
          "friendlyName": "Detector background",
          "nodeID": "detectorBackgroundOutput",
          "purpose": "Preserve the selected detector reference."
        },
        {
          "friendlyName": "Non-resonant background",
          "nodeID": "nonResonantBackgroundOutput",
          "purpose": "Preserve the selected nonresonant reference."
        },
        {
          "friendlyName": "Corrected CARS measurement",
          "nodeID": "correctedOutput",
          "purpose": "Save reference-normalized intensity."
        },
        {
          "friendlyName": "Raman spectrum",
          "nodeID": "predictionOutput",
          "purpose": "Save the neural median and requested predictive bounds."
        },
        {
          "friendlyName": "Raman spectrum (MEM)",
          "nodeID": "memOutput",
          "purpose": "Save independent MEM retrieval and secondary quantities."
        },
        {
          "friendlyName": "Gaussian peak mixture",
          "nodeID": "gaussianMixtureOutput",
          "purpose": "Save three range-wise moment fits to the neural median, their sum and parameter fields."
        }
      ],
      "nodeTypes": [
        "analysis-output",
        "cars-bg-nrb-ratio",
        "cars-mem-raman-retrieval",
        "cars-neural-network-prediction",
        "dataset-input",
        "gaussian-mixture-fit",
        "reference-input"
      ],
      "purpose": "Compare reference-normalized CARS, neural prediction, MEM retrieval and three Gaussian peak ranges.",
      "requirements": {
        "caveats": [
          "Reference spectral coordinate values must align; known intensity units must be compatible.",
          "Use a strictly monotonic shift axis with complete finite spectra; MEM keeps the catalog's relaxed uniform-axis default.",
          "The shift coordinate must use the intended physical scale and cover 1370-1480, 1960-2070 and 2690-2800 with enough samples per range.",
          "Gaussian fitting uses independent range-wise moments, not a joint least-squares decomposition; these authored ranges are not inferred from the source.",
          "Neural execution requires its provider and model resources; schema validity does not establish scientific suitability."
        ],
        "inputs": [
          {
            "coordinatePolicy": "explicit-physical-choice",
            "coordinates": {},
            "description": "Bind the assigned spectral dimension and explicitly selected physical coordinate. Spatial and time dimensions are selected from inspection, not inferred from the project label.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [
              "y",
              "x",
              "spectral"
            ],
            "inputID": "uploaded",
            "sourceRole": "primary",
            "variable": "signal"
          },
          {
            "coordinatePolicy": "explicit-physical-choice",
            "coordinates": {},
            "description": "Bind the assigned spectral dimension and explicitly selected physical coordinate. Spatial and time dimensions are selected from inspection, not inferred from the project label.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [
              "spectral"
            ],
            "inputID": "detector",
            "sourceRole": "reference",
            "variable": "signal"
          },
          {
            "coordinatePolicy": "explicit-physical-choice",
            "coordinates": {},
            "description": "Bind the assigned spectral dimension and explicitly selected physical coordinate. Spatial and time dimensions are selected from inspection, not inferred from the project label.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [
              "spectral"
            ],
            "inputID": "nonresonant",
            "sourceRole": "reference",
            "variable": "signal"
          }
        ],
        "scientificCompatibility": "source-dependent-validation-deferred"
      },
      "title": "CARS correction, Raman prediction, MEM retrieval, and Gaussian peaks",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#hyperspectral-cars-correction-raman-prediction-mem-retrieval-and-gaussian-peaks",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "correctedOutput": [
              "curve",
              "layers",
              "mip",
              "hsv-mip",
              "umap",
              "pca-scores",
              "pca-loadings"
            ],
            "detectorBackgroundOutput": [
              "curve"
            ],
            "gaussianMixtureOutput": [
              "curve",
              "layers",
              "mip",
              "hsv-mip",
              "umap",
              "pca-scores",
              "pca-loadings"
            ],
            "memOutput": [
              "curve",
              "layers",
              "mip",
              "hsv-mip",
              "umap",
              "curve-real-component",
              "curve-phase",
              "curve-amplitude",
              "curve-log-amplitude",
              "pca-scores",
              "pca-loadings"
            ],
            "nonResonantBackgroundOutput": [
              "curve"
            ],
            "predictionOutput": [
              "curve",
              "layers",
              "mip",
              "hsv-mip",
              "umap",
              "pca-scores",
              "pca-loadings"
            ],
            "uploadedOutput": [
              "curve",
              "layers",
              "mip",
              "hsv-mip",
              "umap",
              "pca-scores",
              "pca-loadings"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "detector": {
              "dimensions": {
                "spectral": "spectral"
              },
              "variable": "signal"
            },
            "nonresonant": {
              "dimensions": {
                "spectral": "spectral"
              },
              "variable": "signal"
            },
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "x": "x",
                "y": "y"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "correctedOutput": "exploration",
            "detectorBackgroundOutput": "exploration",
            "gaussianMixtureOutput": "exploration",
            "memOutput": "exploration",
            "nonResonantBackgroundOutput": "exploration",
            "predictionOutput": "exploration",
            "uploadedOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Compare reference-normalized CARS, neural prediction, MEM retrieval and three Gaussian peak ranges.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "measurement",
            "toNodeID": "correction"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "detectorBackgroundInput",
            "fromOutput": "reference",
            "toInput": "detectorBackground",
            "toNodeID": "correction"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "nonResonantBackgroundInput",
            "fromOutput": "reference",
            "toInput": "nonResonantBackground",
            "toNodeID": "correction"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "correction",
            "fromOutput": "correctedMeasurement",
            "toInput": "measurement",
            "toNodeID": "prediction"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "correction",
            "fromOutput": "correctedMeasurement",
            "toInput": "dataset",
            "toNodeID": "mem"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "prediction",
            "fromOutput": "result",
            "toInput": "dataset",
            "toNodeID": "gaussianMixture"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "uploadedOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "detectorBackgroundInput",
            "fromOutput": "reference",
            "toInput": "primary",
            "toNodeID": "detectorBackgroundOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "nonResonantBackgroundInput",
            "fromOutput": "reference",
            "toInput": "primary",
            "toNodeID": "nonResonantBackgroundOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "correction",
            "fromOutput": "correctedMeasurement",
            "toInput": "primary",
            "toNodeID": "correctedOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "prediction",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "predictionOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "mem",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "memOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "gaussianMixture",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "gaussianMixtureOutput"
          }
        ],
        "friendlyName": "CARS correction, Raman prediction, MEM retrieval, and Gaussian peaks",
        "nodes": [
          {
            "displayName": "Uploaded CARS dataset",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "displayName": "Detector background",
            "nodeID": "detectorBackgroundInput",
            "nodeType": "reference-input",
            "nodeVersion": "reference-input-v2",
            "parameters": {
              "inputID": "detector"
            }
          },
          {
            "displayName": "Non-resonant background",
            "nodeID": "nonResonantBackgroundInput",
            "nodeType": "reference-input",
            "nodeVersion": "reference-input-v2",
            "parameters": {
              "inputID": "nonresonant"
            }
          },
          {
            "displayName": "CARS detector and NRB correction",
            "nodeID": "correction",
            "nodeType": "cars-bg-nrb-ratio",
            "nodeVersion": "cars-bg-nrb-ratio-v2",
            "parameters": {
              "denominatorZeroPolicy": "nan"
            }
          },
          {
            "displayName": "CARS neural network prediction",
            "nodeID": "prediction",
            "nodeType": "cars-neural-network-prediction",
            "nodeVersion": "cars-neural-network-prediction-v2",
            "parameters": {
              "predictiveIntervals": [
                {
                  "confidenceLevel": 95
                },
                {
                  "confidenceLevel": 90
                },
                {
                  "confidenceLevel": 75
                },
                {
                  "confidenceLevel": 50
                }
              ]
            }
          },
          {
            "displayName": "CARS MEM Raman retrieval",
            "nodeID": "mem",
            "nodeType": "cars-mem-raman-retrieval",
            "nodeVersion": "cars-mem-raman-retrieval-v2",
            "parameters": {
              "coordinateMode": "physical",
              "intensityFloor": 1e-12,
              "validateUniformAxis": false
            }
          },
          {
            "displayName": "Gaussian peak mixture fit",
            "nodeID": "gaussianMixture",
            "nodeType": "gaussian-mixture-fit",
            "nodeVersion": "gaussian-mixture-fit-v2",
            "parameters": {
              "components": [
                {
                  "componentID": "peak-1370-1480",
                  "label": "1370-1480",
                  "maximumValue": 1480.0,
                  "minimumValue": 1370.0
                },
                {
                  "componentID": "peak-1960-2070",
                  "label": "1960-2070",
                  "maximumValue": 2070.0,
                  "minimumValue": 1960.0
                },
                {
                  "componentID": "peak-2690-2800",
                  "label": "2690-2800",
                  "maximumValue": 2800.0,
                  "minimumValue": 2690.0
                }
              ],
              "coordinateMode": "physical",
              "nonNegativeAmplitude": true
            }
          },
          {
            "nodeID": "uploadedOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [
                {
                  "analysisID": "pca",
                  "componentSelection": {
                    "count": 10,
                    "mode": "count"
                  },
                  "coordinates": {},
                  "loadings": {
                    "featureID": "pca-loadings",
                    "label": "PCA spectral loadings",
                    "shortLabel": "PCA loadings"
                  },
                  "method": "pca",
                  "scores": {
                    "featureID": "pca-scores",
                    "label": "PCA score images",
                    "shortLabel": "PCA scores"
                  },
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ],
              "friendlyName": "Uploaded CARS dataset",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "mip",
                  "fixedIndices": {},
                  "label": "Maximum intensity projection",
                  "projection": "mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "MIP",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "hsv-mip",
                  "fixedIndices": {},
                  "label": "Spectral HSV maximum intensity projection",
                  "projection": "hsv-mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "HSV-MIP",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "umap",
                  "fixedIndices": {},
                  "label": "UMAP spectral embedding",
                  "projection": "umap-rgb",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "UMAP",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ]
            }
          },
          {
            "nodeID": "detectorBackgroundOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Detector background",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          },
          {
            "nodeID": "nonResonantBackgroundOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Non-resonant background",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          },
          {
            "nodeID": "correctedOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [
                {
                  "analysisID": "pca",
                  "componentSelection": {
                    "count": 10,
                    "mode": "count"
                  },
                  "coordinates": {},
                  "loadings": {
                    "featureID": "pca-loadings",
                    "label": "PCA spectral loadings",
                    "shortLabel": "PCA loadings"
                  },
                  "method": "pca",
                  "scores": {
                    "featureID": "pca-scores",
                    "label": "PCA score images",
                    "shortLabel": "PCA scores"
                  },
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ],
              "friendlyName": "Corrected CARS measurement",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "mip",
                  "fixedIndices": {},
                  "label": "Maximum intensity projection",
                  "projection": "mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "MIP",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "hsv-mip",
                  "fixedIndices": {},
                  "label": "Spectral HSV maximum intensity projection",
                  "projection": "hsv-mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "HSV-MIP",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "umap",
                  "fixedIndices": {},
                  "label": "UMAP spectral embedding",
                  "projection": "umap-rgb",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "UMAP",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ]
            }
          },
          {
            "nodeID": "predictionOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [
                {
                  "analysisID": "pca",
                  "componentSelection": {
                    "count": 10,
                    "mode": "count"
                  },
                  "coordinates": {},
                  "loadings": {
                    "featureID": "pca-loadings",
                    "label": "PCA spectral loadings",
                    "shortLabel": "PCA loadings"
                  },
                  "method": "pca",
                  "scores": {
                    "featureID": "pca-scores",
                    "label": "PCA score images",
                    "shortLabel": "PCA scores"
                  },
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ],
              "friendlyName": "Raman spectrum",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Median estimate",
                  "relationshipIDs": [
                    "predictive-95",
                    "predictive-90",
                    "predictive-75",
                    "predictive-50"
                  ],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Median estimate",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "mip",
                  "fixedIndices": {},
                  "label": "Maximum intensity projection",
                  "projection": "mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "MIP",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "hsv-mip",
                  "fixedIndices": {},
                  "label": "Spectral HSV maximum intensity projection",
                  "projection": "hsv-mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "HSV-MIP",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "umap",
                  "fixedIndices": {},
                  "label": "UMAP spectral embedding",
                  "projection": "umap-rgb",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "UMAP",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ]
            }
          },
          {
            "nodeID": "memOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [
                {
                  "analysisID": "pca",
                  "componentSelection": {
                    "count": 10,
                    "mode": "count"
                  },
                  "coordinates": {},
                  "loadings": {
                    "featureID": "pca-loadings",
                    "label": "PCA spectral loadings",
                    "shortLabel": "PCA loadings"
                  },
                  "method": "pca",
                  "scores": {
                    "featureID": "pca-scores",
                    "label": "PCA score images",
                    "shortLabel": "PCA scores"
                  },
                  "signal": {
                    "memberID": "estimatedRamanSpectrum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ],
              "friendlyName": "Raman spectrum (MEM)",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "estimatedRamanSpectrum",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "estimatedRamanSpectrum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "mip",
                  "fixedIndices": {},
                  "label": "Maximum intensity projection",
                  "projection": "mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "MIP",
                  "signal": {
                    "memberID": "estimatedRamanSpectrum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "hsv-mip",
                  "fixedIndices": {},
                  "label": "Spectral HSV maximum intensity projection",
                  "projection": "hsv-mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "HSV-MIP",
                  "signal": {
                    "memberID": "estimatedRamanSpectrum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "umap",
                  "fixedIndices": {},
                  "label": "UMAP spectral embedding",
                  "projection": "umap-rgb",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "UMAP",
                  "signal": {
                    "memberID": "estimatedRamanSpectrum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve-real-component",
                  "fixedIndices": {},
                  "label": "Real component",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Real component",
                  "signal": {
                    "memberID": "realComponent",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve-phase",
                  "fixedIndices": {},
                  "label": "Phase",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Phase",
                  "signal": {
                    "memberID": "phase",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve-amplitude",
                  "fixedIndices": {},
                  "label": "Amplitude",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Amplitude",
                  "signal": {
                    "memberID": "amplitude",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve-log-amplitude",
                  "fixedIndices": {},
                  "label": "Log amplitude",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Log amplitude",
                  "signal": {
                    "memberID": "logAmplitude",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          },
          {
            "nodeID": "gaussianMixtureOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [
                {
                  "analysisID": "pca",
                  "componentSelection": {
                    "count": 10,
                    "mode": "count"
                  },
                  "coordinates": {},
                  "loadings": {
                    "featureID": "pca-loadings",
                    "label": "PCA spectral loadings",
                    "shortLabel": "PCA loadings"
                  },
                  "method": "pca",
                  "scores": {
                    "featureID": "pca-scores",
                    "label": "PCA score images",
                    "shortLabel": "PCA scores"
                  },
                  "signal": {
                    "memberID": "sum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ],
              "friendlyName": "Gaussian peak mixture",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [
                    "components"
                  ],
                  "selectionDimensions": [
                    "y",
                    "x"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "sum",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {
                    "spectral": {
                      "coverage": "all"
                    }
                  },
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "layers",
                  "fixedIndices": {},
                  "label": "Layers",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Layers",
                  "signal": {
                    "memberID": "sum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "windowDimension": "spectral"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "mip",
                  "fixedIndices": {},
                  "label": "Maximum intensity projection",
                  "projection": "mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "MIP",
                  "signal": {
                    "memberID": "sum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "hsv-mip",
                  "fixedIndices": {},
                  "label": "Spectral HSV maximum intensity projection",
                  "projection": "hsv-mip",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "HSV-MIP",
                  "signal": {
                    "memberID": "sum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "y",
                    "x"
                  ],
                  "featureID": "umap",
                  "fixedIndices": {},
                  "label": "UMAP spectral embedding",
                  "projection": "umap-rgb",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "UMAP",
                  "signal": {
                    "memberID": "sum",
                    "variable": "signal"
                  },
                  "spatialDimensions": [
                    "y",
                    "x"
                  ],
                  "spectralDimension": "spectral",
                  "spectrumFeatureID": "curve"
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "8a77d624bd9980c2afa84478a4f1fae0cb60e2d9f0cdee23df52ffbcd7385b01"
      }
    },
    {
      "concepts": [
        "complete workflow",
        "source-dependent review"
      ],
      "description": "Preserve the original, neural-corrected Raman result and independent 5-point moving average.",
      "exampleID": "single-spectrum-raman-correction-and-smoothed-measurement",
      "expectedOutputs": [
        {
          "friendlyName": "Uploaded Raman measurement",
          "nodeID": "measurementOutput",
          "purpose": "Preserve the source for comparison."
        },
        {
          "friendlyName": "Raman correction",
          "nodeID": "ramanCorrectionOutput",
          "purpose": "Save the independent Raman provider median and predictive bounds."
        },
        {
          "friendlyName": "5-point moving average",
          "nodeID": "smoothedMeasurementOutput",
          "purpose": "Save an independent 5-point local mean of the original along the explicitly named spectral dimension."
        }
      ],
      "nodeTypes": [
        "analysis-output",
        "dataset-input",
        "local-mean",
        "raman-neural-network-correction"
      ],
      "purpose": "Preserve the original, neural-corrected Raman result and independent 5-point moving average.",
      "requirements": {
        "caveats": [
          "Requires a strictly monotonic shift axis and at least one complete finite spectrum.",
          "Provider/model availability and source-dependent scientific compatibility must be checked separately."
        ],
        "inputs": [
          {
            "coordinatePolicy": "explicit-physical-choice",
            "coordinates": {},
            "description": "Bind the assigned spectral dimension and explicitly selected physical coordinate. Spatial and time dimensions are selected from inspection, not inferred from the project label.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [
              "spectral"
            ],
            "inputID": "uploaded",
            "sourceRole": "primary",
            "variable": "signal"
          }
        ],
        "scientificCompatibility": "source-dependent-validation-deferred"
      },
      "title": "Raman correction and smoothed measurement",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#single-spectrum-raman-correction-and-smoothed-measurement",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "measurementOutput": [
              "curve"
            ],
            "ramanCorrectionOutput": [
              "curve"
            ],
            "smoothedMeasurementOutput": [
              "curve"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "measurementOutput": "exploration",
            "ramanCorrectionOutput": "exploration",
            "smoothedMeasurementOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Preserve the original, neural-corrected Raman result and independent 5-point moving average.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {
                "axis": "spectral"
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "measurement",
            "toNodeID": "ramanCorrection"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {
                "spectral": {
                  "windowSize": 5
                }
              },
              "dimensions": {
                "axes": [
                  "spectral"
                ]
              },
              "groupByCoordinates": [],
              "modeledCoordinates": [],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "dataset",
            "toNodeID": "movingAverage"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "measurementOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "ramanCorrection",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "ramanCorrectionOutput"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "movingAverage",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "smoothedMeasurementOutput"
          }
        ],
        "friendlyName": "Raman correction and smoothed measurement",
        "nodes": [
          {
            "displayName": "Uploaded Raman measurement",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "displayName": "Raman neural network correction",
            "nodeID": "ramanCorrection",
            "nodeType": "raman-neural-network-correction",
            "nodeVersion": "raman-neural-network-correction-v2",
            "parameters": {
              "predictiveIntervals": [
                {
                  "confidenceLevel": 95
                },
                {
                  "confidenceLevel": 90
                },
                {
                  "confidenceLevel": 75
                },
                {
                  "confidenceLevel": 50
                }
              ]
            }
          },
          {
            "displayName": "5-point moving average",
            "nodeID": "movingAverage",
            "nodeType": "local-mean",
            "nodeVersion": "local-mean-v2",
            "parameters": {}
          },
          {
            "nodeID": "measurementOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Uploaded Raman measurement",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          },
          {
            "nodeID": "ramanCorrectionOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Raman correction",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [
                    "predictive-95",
                    "predictive-90",
                    "predictive-75",
                    "predictive-50"
                  ],
                  "selectionDimensions": [],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "median",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          },
          {
            "nodeID": "smoothedMeasurementOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "5-point moving average",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "curve",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "8d242fa243c0999c9787b50b0518e17f90c8e040da560d8ae084c553fdf70afe"
      }
    },
    {
      "concepts": [
        "complete workflow",
        "source-dependent review"
      ],
      "description": "Preserve selected source values and metadata unchanged.",
      "exampleID": "hyperspectral-import-uploaded-dataset",
      "expectedOutputs": [
        {
          "friendlyName": "Uploaded dataset",
          "nodeID": "measurementOutput",
          "purpose": "Preserve the selected Dataset and prepare compatible spectrum, layer, image, and PCA views."
        }
      ],
      "nodeTypes": [
        "analysis-output",
        "dataset-input"
      ],
      "purpose": "Preserve selected source values and metadata unchanged.",
      "requirements": {
        "caveats": [],
        "inputs": [
          {
            "coordinatePolicy": "physical-or-index",
            "coordinates": {},
            "description": "Preserve the selected Dataset and prepare compatible exploration views.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [],
            "inputID": "uploaded",
            "sourceRole": "primary",
            "variable": null
          }
        ],
        "scientificCompatibility": "source-dependent-validation-deferred"
      },
      "title": "Import uploaded dataset",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#hyperspectral-import-uploaded-dataset",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "measurementOutput": [
              "curve",
              "layers",
              "mip",
              "hsv-mip",
              "umap",
              "pca-scores",
              "pca-loadings"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "time": "time",
                "x": "x",
                "y": "y"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "measurementOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Preserve selected source values and metadata unchanged.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "measurementOutput"
          }
        ],
        "friendlyName": "Import uploaded dataset",
        "nodes": [
          {
            "displayName": "Uploaded dataset",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "nodeID": "measurementOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Uploaded dataset",
              "save": {
                "members": "all"
              },
              "views": []
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "71478601bb2e726fefb21d1b8cf4e2586e422e8580733f2f3841b3188d6d41b0"
      }
    },
    {
      "concepts": [
        "complete workflow",
        "source-dependent review"
      ],
      "description": "Preserve the uploaded spectral time series unchanged and browse its waterfall, spectra, and time traces.",
      "exampleID": "spectral-time-series-import-uploaded-dataset",
      "expectedOutputs": [
        {
          "friendlyName": "Spectral time series",
          "nodeID": "measurementOutput",
          "purpose": "Preserve original intensity and coordinates; display time versus spectral sample without projection."
        }
      ],
      "nodeTypes": [
        "analysis-output",
        "dataset-input"
      ],
      "purpose": "Preserve the uploaded spectral time series unchanged and browse its waterfall, spectra, and time traces.",
      "requirements": {
        "caveats": [],
        "inputs": [
          {
            "coordinatePolicy": "explicit-physical-choice",
            "coordinates": {},
            "description": "Select the time and spectral dimensions and their physical coordinates, or explicitly use index coordinates.",
            "dimensionPolicy": "reviewed-source-selection",
            "dimensions": [
              "time",
              "spectral"
            ],
            "inputID": "uploaded",
            "sourceRole": "primary",
            "variable": "signal"
          }
        ],
        "scientificCompatibility": "source-dependent-validation-deferred"
      },
      "title": "Import spectral time series",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#spectral-time-series-import-uploaded-dataset",
      "workflow": {
        "authoring": {
          "generatedFeatures": {
            "measurementOutput": [
              "waterfall",
              "spectrum",
              "time-trace"
            ]
          },
          "generatedRequests": {},
          "inputs": {
            "uploaded": {
              "dimensions": {
                "spectral": "spectral",
                "time": "time"
              },
              "variable": "signal"
            }
          },
          "outputProfiles": {
            "measurementOutput": "exploration"
          },
          "resolvedInputs": {},
          "version": "workflow-authoring-v1"
        },
        "description": "Preserve the uploaded spectral time series unchanged and browse its waterfall, spectra, and time traces.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "primary",
            "toNodeID": "measurementOutput"
          }
        ],
        "friendlyName": "Import spectral time series",
        "nodes": [
          {
            "displayName": "Uploaded spectral time series",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "uploaded"
            }
          },
          {
            "nodeID": "measurementOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Spectral time series",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "time",
                    "spectral"
                  ],
                  "featureID": "waterfall",
                  "fixedIndices": {},
                  "label": "Spectral waterfall",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "Waterfall heatmap",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "spectrumFeatureID": "spectrum"
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "spectrum",
                  "fixedIndices": {},
                  "label": "Spectrum",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "time"
                  ],
                  "shortLabel": "Spectrum",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {},
                  "displayDimensions": [
                    "time"
                  ],
                  "featureID": "time-trace",
                  "fixedIndices": {},
                  "label": "Time trace",
                  "relationshipIDs": [],
                  "selectionDimensions": [
                    "spectral"
                  ],
                  "shortLabel": "Time trace",
                  "signal": {
                    "memberID": "dataset",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          }
        ],
        "phase": "upload",
        "version": "processing-workflow-v2",
        "workflowHash": "67a9c205276cfef31ff56ff50ed06305be22bda7e870c62528bab149703797ec"
      }
    },
    {
      "concepts": [
        "postprocessing",
        "temporal GP",
        "independent curves",
        "intervals",
        "waterfall"
      ],
      "exampleID": "temporal-gp-mean-and-uncertainty",
      "nodeTypes": [
        "analysis-output",
        "dataset-input",
        "gaussian-process-regression"
      ],
      "purpose": "Fit independent temporal curves for each spectral sample and prepare mean and uncertainty views.",
      "requirements": {
        "bindingPolicy": "This graph assumes the stated exact input metadata. Use the user's reviewed input description for other names and exact package sourceBindings; do not invent them.",
        "inputs": [
          {
            "coordinates": {
              "spectral": "spectralAxis",
              "time": "timeAxis"
            },
            "dimensions": [
              "time",
              "spectral"
            ],
            "inputID": "input1",
            "variable": "signal"
          }
        ],
        "scientificCompatibility": "source-dependent-validation-deferred"
      },
      "title": "Temporal GP mean and uncertainty",
      "url": "https://docs.harkana.com/docs/processing/v2/processing-workflows.json#temporal-gp-mean-and-uncertainty",
      "workflow": {
        "description": "Fit independent temporal curves for each spectral sample and prepare mean and uncertainty views.",
        "edges": [
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": [
                "timeAxis"
              ],
              "variable": "signal"
            },
            "fromNodeID": "input",
            "fromOutput": "dataset",
            "toInput": "dataset",
            "toNodeID": "temporalGP"
          },
          {
            "binding": {
              "coordinates": {},
              "dimensionParameters": {},
              "dimensions": {},
              "groupByCoordinates": [],
              "modeledCoordinates": []
            },
            "fromNodeID": "temporalGP",
            "fromOutput": "result",
            "toInput": "primary",
            "toNodeID": "gpOutput"
          }
        ],
        "friendlyName": "Temporal GP mean and uncertainty",
        "nodes": [
          {
            "displayName": "Selected spectral time series",
            "nodeID": "input",
            "nodeType": "dataset-input",
            "nodeVersion": "dataset-input-v2",
            "parameters": {
              "inputID": "input1"
            }
          },
          {
            "displayName": "Temporal Gaussian process regression",
            "nodeID": "temporalGP",
            "nodeType": "gaussian-process-regression",
            "nodeVersion": "gaussian-process-regression-v2",
            "parameters": {
              "convergencePatience": 10,
              "convergenceTolerance": 0.0001,
              "fitMode": "bbmm",
              "fitScope": "independent",
              "inducingPointCount": 256,
              "intervalDistributions": [
                "latent",
                "observation"
              ],
              "intervalSigmas": [
                1.96
              ],
              "kernel": {
                "family": "matern-5/2",
                "lengthscaleMode": "anisotropic",
                "lengthscales": [],
                "outputScale": {
                  "mode": "estimate"
                }
              },
              "learningRate": 0.05,
              "miniBatchSize": 1024,
              "observationNoise": {
                "mode": "estimate"
              },
              "trainingIterations": 75
            }
          },
          {
            "nodeID": "gpOutput",
            "nodeType": "analysis-output",
            "nodeVersion": "analysis-output-v2",
            "parameters": {
              "analyses": [],
              "friendlyName": "Temporal GP mean and uncertainty",
              "save": {
                "members": "all"
              },
              "views": [
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {
                    "spectral": {
                      "coordinate": "spectralAxis",
                      "memberID": "mean"
                    },
                    "time": {
                      "coordinate": "timeAxis",
                      "memberID": "mean"
                    }
                  },
                  "displayDimensions": [
                    "time"
                  ],
                  "featureID": "time-trace",
                  "fixedIndices": {},
                  "label": "GP time trace and uncertainty",
                  "relationshipIDs": [
                    "latent-1_96",
                    "observation-1_96"
                  ],
                  "selectionDimensions": [
                    "spectral"
                  ],
                  "shortLabel": "GP time trace",
                  "signal": {
                    "memberID": "mean",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                },
                {
                  "adapterID": "grid",
                  "adapterVersion": "grid-v1",
                  "browse": {},
                  "coordinates": {
                    "spectral": {
                      "coordinate": "spectralAxis",
                      "memberID": "mean"
                    },
                    "time": {
                      "coordinate": "timeAxis",
                      "memberID": "mean"
                    }
                  },
                  "displayDimensions": [
                    "time",
                    "spectral"
                  ],
                  "featureID": "waterfall",
                  "fixedIndices": {},
                  "label": "GP mean spectral waterfall",
                  "relationshipIDs": [],
                  "selectionDimensions": [],
                  "shortLabel": "GP waterfall",
                  "signal": {
                    "memberID": "mean",
                    "variable": "signal"
                  },
                  "spatialDimensions": [],
                  "spectrumFeatureID": "spectrum"
                },
                {
                  "adapterID": "line",
                  "adapterVersion": "line-v1",
                  "browse": {},
                  "coordinates": {
                    "spectral": {
                      "coordinate": "spectralAxis",
                      "memberID": "mean"
                    },
                    "time": {
                      "coordinate": "timeAxis",
                      "memberID": "mean"
                    }
                  },
                  "displayDimensions": [
                    "spectral"
                  ],
                  "featureID": "spectrum",
                  "fixedIndices": {},
                  "label": "GP mean spectrum",
                  "relationshipIDs": [
                    "latent-1_96",
                    "observation-1_96"
                  ],
                  "selectionDimensions": [
                    "time"
                  ],
                  "shortLabel": "GP spectrum",
                  "signal": {
                    "memberID": "mean",
                    "variable": "signal"
                  },
                  "spatialDimensions": []
                }
              ]
            }
          }
        ],
        "phase": "postprocessing",
        "version": "processing-workflow-v2",
        "workflowHash": "95ad025c34847e6d906c3e1e235e2588371678badc200bbb096735494ff6354f"
      }
    }
  ],
  "version": "processing-workflows-doc-v2",
  "workflowVersion": "processing-workflow-v2"
}
