{
    "command": "sgloadcsv",
    "description": "Load selected table columns as scalar fields or sampled vectors. Comma-delimited\ninput preserves empty cells and trims surrounding whitespace; a header without\ncommas selects legacy whitespace-delimited input. Every data row must match the\nheader's column count. Selected numeric cells must contain complete, in-range\nnumbers: empty or malformed numeric cells are errors, not zeros or prior values.\nFields mode supports fixed-width cN text; empty text is zero-padded. Quoted CSV\nand embedded separators/newlines are not supported. Fields mode streams complete\nvalidated rows; vector layouts buffer the selected values to determine lengths.",
    "examples": [
        {
            "command": "sgloadcsv mode=fields <data.csv >data.sg",
            "expected": "The first row supplies field names; each subsequent row becomes a SOIG column.\nSelected fields default to float. Empty numeric cells stop the import with row,\ncolumn and field context.",
            "title": "Import a numeric CSV table as scalar fields"
        },
        {
            "command": "sgloadcsv mode=fields label.fmt=c8 value.fmt=double <labels.csv >labels.sg",
            "expected": "The header must contain label,value. Empty labels become eight zero bytes;\nnonempty labels retain up to eight bytes. Empty values are rejected.",
            "title": "Import fixed-width labels alongside numeric measurements"
        }
    ],
    "input_description": "input table; comma-delimited or legacy whitespace-delimited, without quoted CSV",
    "notes": [],
    "output_description": "output SOIG dataset with selected scalar/text fields or sampled vectors,\naccording to mode",
    "package": "sigclear-io",
    "parameters": [
        {
            "choices": [
                "fields",
                "vector",
                "vectors"
            ],
            "default": "fields",
            "default_known": true,
            "description": "output layout:\nfields: one output column per table row; scalar numeric or fixed-width text fields\nvector: one data vector per selected table column\nvectors: one named vector per selected table column in a single output column",
            "name": "mode",
            "required": false,
            "type": "enum",
            "units": null
        },
        {
            "choices": [
                "float",
                "int",
                "long",
                "double",
                "char"
            ],
            "default": "float",
            "default_known": true,
            "description": "sample type in vector mode; char stores one byte per cell",
            "name": "vector.fmt",
            "required": false,
            "type": "enum",
            "units": null
        },
        {
            "choices": [],
            "default": "float",
            "default_known": true,
            "description": "per-column format: fields mode accepts float, int, long, double, or cN with a positive byte width; vectors mode accepts float, int, long, double, or char",
            "name": "#.fmt",
            "required": null,
            "type": "str",
            "units": null
        },
        {
            "choices": [],
            "default": "stdin",
            "default_known": false,
            "description": "input table; comma-delimited or legacy whitespace-delimited, without quoted CSV",
            "name": "in",
            "required": false,
            "type": "ifile",
            "units": null
        },
        {
            "choices": [],
            "default": 0,
            "default_known": true,
            "description": "zero-based row number containing column names",
            "name": "in.header",
            "required": false,
            "type": "int",
            "units": null
        },
        {
            "choices": [],
            "default": null,
            "default_known": false,
            "description": "columns to include; all columns are selected by default",
            "name": "in.select",
            "required": null,
            "type": "strs",
            "units": null
        },
        {
            "choices": [],
            "default": null,
            "default_known": false,
            "description": "columns to exclude; unselected cells retain their column positions",
            "name": "out.exclude",
            "required": false,
            "type": "strs",
            "units": null
        },
        {
            "choices": [],
            "default": "stdout",
            "default_known": false,
            "description": "output SOIG dataset with selected scalar/text fields or sampled vectors,\naccording to mode",
            "name": "out",
            "required": false,
            "type": "ofile",
            "units": null
        }
    ],
    "related": [],
    "schema_version": 1,
    "summary": "Import a delimited table into a SIGCLEAR dataset",
    "synopsis": "sgloadcsv mode=fields vector.fmt=float #.fmt=\"float\" <stdin in.header=0 in.select= out.exclude= >stdout",
    "version": "1.0.2"
}