Skip to content

Commit ed14eab

Browse files
committed
Batch 6 triage: 21 data manipulation filters categorized
- Tier 1 (Critical): 0 - Tier 2 (Important): 10 (CreateAttributeMatrix, CreateDataGroup, DeleteData, RenameDataObject, MoveData, CopyFeatureArrayToElementArray, CreateFeatureArrayFromElementArray, ConditionalSetValue, ConvertColorToGrayScale, ReshapeDataArray) - Tier 3 (Polish): 11 (CreateDataArray, CreateDataArrayAdvanced, CopyDataObject, CombineAttributeArrays, ConcatenateDataArrays, SplitDataArrayByComponent, SplitDataArrayByTuple, ExtractComponentAsArray, ConvertData, ArrayCalculator, InitializeData)
1 parent b82a6d1 commit ed14eab

1 file changed

Lines changed: 134 additions & 6 deletions

File tree

docs/documentation_review_tracker.md

Lines changed: 134 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
| 3 | Segmentation / Feature Identification | 10 | 10 | 10 | Complete |
1616
| 4 | Neighbor / Kernel Operations | 11 | 11 | 11 | Complete |
1717
| 5 | Geometry Creation / Manipulation | 15 | 15 | 15 | Complete |
18-
| 6 | Data Manipulation (Copy, Create, Delete, Rename) | ~20 | 0 | 0 | Not Started |
18+
| 6 | Data Manipulation (Copy, Create, Delete, Rename) | 21 | 21 | 0 | Triaged |
1919
| 7 | I/O Filters (Read/Write) | ~15 | 0 | 0 | Not Started |
2020
| 8 | Image Processing (ITK wrappers) | ~88 | 0 | 0 | Not Started |
2121
| 9 | Remaining SimplnxCore filters | ~varies | 0 | 0 | Not Started |
@@ -438,7 +438,139 @@ None. No filter in this batch has a non-expert blocker.
438438

439439
---
440440

441-
## Batches 6-9: Not Yet Triaged
441+
## Batch 6: Data Manipulation
442+
443+
**Plugin:** SimplnxCore
444+
**Filters:** 21 (create / copy / delete / rename / move / combine / split / convert / initialize / calculate)
445+
446+
### Tier 1 — Critical
447+
448+
None. No filter in this batch is incomprehensible to a non-expert.
449+
450+
### Tier 2 — Important
451+
452+
| Filter | Plugin | Status |
453+
|--------|--------|--------|
454+
| CreateAttributeMatrix | SimplnxCore | Pending |
455+
| CreateDataGroup | SimplnxCore | Pending |
456+
| DeleteData | SimplnxCore | Pending |
457+
| RenameDataObject | SimplnxCore | Pending |
458+
| MoveData | SimplnxCore | Pending |
459+
| CopyFeatureArrayToElementArray | SimplnxCore | Pending |
460+
| CreateFeatureArrayFromElementArray | SimplnxCore | Pending |
461+
| ConditionalSetValue | SimplnxCore | Pending |
462+
| ConvertColorToGrayScale | SimplnxCore | Pending |
463+
| ReshapeDataArray | SimplnxCore | Pending |
464+
465+
- [ ] **CreateAttributeMatrixFilter** (SimplnxCore)
466+
- **Clarity:** Extremely brief (only ~20 lines). Lone example does not explain what an Attribute Matrix conceptually represents.
467+
- **Completeness:** Missing the *why* (tuple-dimensions discipline for arrays in the same matrix), the *when* (typical use cases — creating a Feature Attribute Matrix, an Ensemble Attribute Matrix), and the relationship to DataGroup.
468+
- **Accessibility:** Assumes the user already knows what an Attribute Matrix is.
469+
- **Figures Needed:** Optional — a hierarchy diagram showing Image Geometry → Cell Attribute Matrix → arrays would also serve CreateGeometry/CreateDataGroup.
470+
- **Concept Links:** Attribute Matrix, tuple dimensions, DataGroup vs Attribute Matrix
471+
- **Notes:** Add "What is an Attribute Matrix?" subsection. Cross-link to CreateDataGroup with explicit when-to-use-which guidance. Note tuple-dimension consistency requirement.
472+
473+
- [ ] **CreateDataGroupFilter** (SimplnxCore)
474+
- **Clarity:** Only 1 paragraph; says "unlike AttributeMatrix, DataGroups are capable of holding any DataObject of any size" but doesn't explain when to choose one over the other.
475+
- **Completeness:** Missing typical use case (organizing related arrays of different sizes, creating an output structure for a future filter).
476+
- **Concept Links:** DataGroup, AttributeMatrix
477+
- **Notes:** Expand. Cross-reference CreateAttributeMatrix and explain the choice: DataGroup for heterogeneous content, Attribute Matrix when all child arrays must share tuple dimensions.
478+
479+
- [ ] **DeleteDataFilter** (SimplnxCore)
480+
- **Clarity:** Two use cases (memory and name collisions) clearly explained.
481+
- **Completeness:** Missing: cascade behavior (does deleting a Geometry also delete its Attribute Matrices? Does deleting an Attribute Matrix delete its child arrays?), what happens to downstream filters that reference the deleted object.
482+
- **Concept Links:** cascade delete, object lifetimes
483+
- **Notes:** Document the cascade behavior. Add explicit warning: subsequent filters that selected the deleted object will fail preflight.
484+
485+
- [ ] **RenameDataObjectFilter** (SimplnxCore)
486+
- **Clarity:** Single sentence.
487+
- **Completeness:** Missing: what happens to filter parameters downstream that reference the old name (they won't auto-update — preflight will fail). What name collisions are allowed/disallowed.
488+
- **Notes:** Expand to one paragraph. Warn about downstream filter parameter references not updating automatically.
489+
490+
- [ ] **MoveDataFilter** (SimplnxCore)
491+
- **Clarity:** Brief but covers the tuple-count requirement.
492+
- **Completeness:** Missing: examples (moving a computed array into a Feature Attribute Matrix; moving an array between DataGroups). What happens to arrays that are children of the moved object.
493+
- **Concept Links:** parent-child hierarchy, tuple validation
494+
- **Notes:** Add concrete examples. Explain that tuple-dimension *shape* doesn't need to match — only the *number of tuples*.
495+
496+
- [ ] **CopyFeatureArrayToElementArrayFilter** (SimplnxCore)
497+
- **Clarity:** "Xmdf visualization files write only the Element attributes" is jargon and almost the entire rationale.
498+
- **Completeness:** Missing: general "when to use" (broadcasting a per-Feature scalar to every cell of that feature for visualization), parameter description.
499+
- **Notes:** Lead with the general purpose (broadcast Feature-level value back to all cells of the Feature). Explain the Xmdf-export reason as one specific use case rather than the only one. Add Required Input Sources.
500+
501+
- [ ] **CreateFeatureArrayFromElementArrayFilter** (SimplnxCore)
502+
- **Clarity:** "the value of the *last element copied*" is buried as the central footgun.
503+
- **Completeness:** Missing: warning that this filter is destructive when used on per-cell scalars that vary within a feature (since most cells get discarded). When to use vs. ComputeArrayStatistics (which computes per-feature means).
504+
- **Notes:** Promote the "last element copied" caveat to a Warning section. Cross-reference ComputeArrayStatistics for averaging behavior. Add Required Input Sources.
505+
506+
- [ ] **ConditionalSetValueFilter** (SimplnxCore)
507+
- **Clarity:** Two modes (conditional mask vs value-replacement) buried in one dense sentence.
508+
- **Completeness:** Mode parameter (*Use Conditional Mask*) is the central control but not promoted.
509+
- **Notes:** Split the two modes into their own subsections. Document *Use Conditional Mask* explicitly. Add Required Input Sources.
510+
511+
- [ ] **ConvertColorToGrayScaleFilter** (SimplnxCore)
512+
- **Clarity:** Four conversion algorithms documented with formulas.
513+
- **Completeness:** Missing: when to use (preprocessing color images for downstream grayscale-only filters), expected input format (uint8 RGB/RGBA), output type.
514+
- **Notes:** Add "When to Use" lead-in. State input/output array types and component shapes. Add Required Input Sources (ITK image reader).
515+
516+
- [ ] **ReshapeDataArrayFilter** (SimplnxCore)
517+
- **Clarity:** Critical footgun warning ("DOES NOT MOVE ANY VALUES IN MEMORY") is buried at line 11.
518+
- **Completeness:** Stride-mismatch example is good but the warning needs more prominence given that misuse silently produces wrong results.
519+
- **Concept Links:** strides, row-major / C-order storage, tuple dimensions
520+
- **Notes:** Promote the "no memory rearrangement" warning into a top-level Warning section. Add a "When NOT to Use" callout. Add Required Input Sources.
521+
522+
### Tier 3 — Polish
523+
524+
| Filter | Plugin | Status |
525+
|--------|--------|--------|
526+
| CreateDataArray | SimplnxCore | Pending |
527+
| CreateDataArrayAdvanced | SimplnxCore | Pending |
528+
| CopyDataObject | SimplnxCore | Pending |
529+
| CombineAttributeArrays | SimplnxCore | Pending |
530+
| ConcatenateDataArrays | SimplnxCore | Pending |
531+
| SplitDataArrayByComponent | SimplnxCore | Pending |
532+
| SplitDataArrayByTuple | SimplnxCore | Pending |
533+
| ExtractComponentAsArray | SimplnxCore | Pending |
534+
| ConvertData | SimplnxCore | Pending |
535+
| ArrayCalculator | SimplnxCore | Pending |
536+
| InitializeData | SimplnxCore | Pending |
537+
538+
- [ ] **CreateDataArrayFilter** (SimplnxCore)
539+
- **Notes:** Already has good data-type ranges table and semicolon-notation example. Minor polish: state that Number of Components must be ≥ 1; explicitly note that this filter creates a *single component dimension* (use CreateDataArrayAdvanced for multi-dimension components). Add Required Input Sources (none).
540+
541+
- [ ] **CreateDataArrayAdvancedFilter** (SimplnxCore)
542+
- **Notes:** Documents 4 initialization modes (Fill, Incremental, Random, Random With Range) and Step Operation. Mostly good. Polish: state component-dimension product must be ≥ 1; clarify that multi-dimensional components (e.g., 3x3 tensor) are supported here. Cross-link CreateDataArray as the simpler version.
543+
544+
- [ ] **CopyDataObjectFilter** (SimplnxCore)
545+
- **Notes:** Clear; "deep copy" semantics for BaseGroup containers documented. Polish: cross-link Copy to New Parent option more explicitly; add Required Input Sources (none).
546+
547+
- [ ] **CombineAttributeArraysFilter** (SimplnxCore)
548+
- **Notes:** Already has worked examples and figures. Polish: cross-link "Concatenate Data Arrays" already present; mention the use case of building a Vertex coordinates array from three separate x/y/z arrays. Add Required Input Sources.
549+
550+
- [ ] **ConcatenateDataArraysFilter** (SimplnxCore)
551+
- **Notes:** Brief but clear. Cross-link to Combine Attribute Arrays is present. Polish: state that the result is always 1-D (already does); add example.
552+
553+
- [ ] **SplitDataArrayByComponentFilter** (SimplnxCore)
554+
- **Notes:** Clear worked example. Polish: minor copy-edit ("unput" → "input"); state the "specifying a subset of components" mode more cleanly; cross-link Combine Attribute Arrays as the inverse operation (already does).
555+
556+
- [ ] **SplitDataArrayByTupleFilter** (SimplnxCore)
557+
- **Notes:** Clear worked example. Polish: cross-link Split Data Array (By Component) present. Polish: state units on tuple counts (integer counts).
558+
559+
- [ ] **ExtractComponentAsArrayFilter** (SimplnxCore)
560+
- **Notes:** Title in cpp is "Extract/Remove Components" — verify match. Brief but covers the 3 operation modes. Polish: add a worked example showing the 3 modes; add Required Input Sources.
561+
562+
- [ ] **ConvertDataFilter** (SimplnxCore)
563+
- **Notes:** Already very thorough with up/down casting and signed/unsigned warnings. Polish: cross-link to Reshape Data Array for the related-but-different "interpret data differently" use case. Add Required Input Sources.
564+
565+
- [ ] **ArrayCalculatorFilter** (SimplnxCore)
566+
- **Notes:** Already extremely thorough — operator tables, multi-component handling, explicit array name escaping, multiple worked examples. Polish: minor only. Cross-link to Convert Angles to Degrees or Radians (already mentioned). Add Required Input Sources.
567+
568+
- [ ] **InitializeDataFilter** (SimplnxCore)
569+
- **Notes:** Content is good but the prose is rambly. Polish: restructure each initialization mode into its own subsection with a brief intro and bullet list of nuances rather than nested bullet trees. Move boolean entry rules to a single dedicated subsection.
570+
571+
---
572+
573+
## Batches 7-9: Not Yet Triaged
442574

443575
The following batches have been identified in the design spec but have not yet been triaged. Each batch will be triaged at the start of its work cycle.
444576

@@ -627,10 +759,6 @@ The following batches have been identified in the design spec but have not yet b
627759

628760
---
629761

630-
### Batch 6: Data Manipulation (~20 filters)
631-
**Plugin:** SimplnxCore
632-
Basic data operations (copy, create, delete, rename, move, combine attribute arrays, etc.)
633-
634762
### Batch 7: I/O Filters (~15 filters)
635763
**Plugin:** SimplnxCore + OrientationAnalysis
636764
Read/write filters (DREAM3D, STL, VTK, CSV, etc.)

0 commit comments

Comments
 (0)