Skip to content

Class: TextureProduct

Soil texture analysis product, typically derived via hydrometer or similar instrument.

One row per sample with columns for sand, silt, and clay percentages.

Individual QC flags for each measurement using ProcessedDataFlag enum.

URI: basalt_schema:TextureProduct

 classDiagram
    class TextureProduct
    click TextureProduct href "../TextureProduct/"
      ProcessedData <|-- TextureProduct
        click ProcessedData href "../ProcessedData/"

      TextureProduct : clay_pct_id





        TextureProduct --> "0..1" QuantityValue : clay_pct_id
        click QuantityValue href "../QuantityValue/"



      TextureProduct : core_section





        TextureProduct --> "0..1" CoreSectionEnum : core_section
        click CoreSectionEnum href "../CoreSectionEnum/"



      TextureProduct : description

      TextureProduct : filesize

      TextureProduct : flag





        TextureProduct --> "0..1" ProcessedDataFlag : flag
        click ProcessedDataFlag href "../ProcessedDataFlag/"



      TextureProduct : id

      TextureProduct : lims_barcode

      TextureProduct : md5checksum

      TextureProduct : measure_type





        TextureProduct --> "0..1" ProductMeasureType : measure_type
        click ProductMeasureType href "../ProductMeasureType/"



      TextureProduct : name

      TextureProduct : project

      TextureProduct : s3_base_url

      TextureProduct : s3_bucket

      TextureProduct : s3_key

      TextureProduct : sample_id





        TextureProduct --> "0..1" Sample : sample_id
        click Sample href "../Sample/"



      TextureProduct : sample_name

      TextureProduct : sampling_set

      TextureProduct : sand_pct_id





        TextureProduct --> "0..1" QuantityValue : sand_pct_id
        click QuantityValue href "../QuantityValue/"



      TextureProduct : silt_pct_id





        TextureProduct --> "0..1" QuantityValue : silt_pct_id
        click QuantityValue href "../QuantityValue/"



      TextureProduct : summary_metrics

Inheritance

Slots

Name Cardinality and Range Description Inheritance
measure_type 0..1
ProductMeasureType
Whether the measurement recorded is a single measurement, one of a set of re... direct
sand_pct_id 0..1
QuantityValue
direct
silt_pct_id 0..1
QuantityValue
direct
clay_pct_id 0..1
QuantityValue
direct
flag 0..1
ProcessedDataFlag
direct
summary_metrics 0..1
String
Lightweight per-product summary for common queries that avoid full file downl... ProcessedData
lims_barcode 0..1
String
LIMS barcode identifier ProcessedData
sample_id 0..1
Sample
Link back to the originating sample ProcessedData
name 1
String
Human-readable name for the entity or activity DataProduct
description 0..1
String
Human-readable description for the entity or activity DataProduct
project 0..1
Integer
Identifier for the user project associated with the entity or activity DataProduct
sampling_set 0..1
Integer
Sampling set number for grouping related samples collected together DataProduct
core_section 0..1
CoreSectionEnum
The section of the core DataProduct
sample_name 0..1
String
The name or label that is present on the shipped sample DataProduct
s3_base_url 0..1
String
DataProduct
s3_bucket 0..1
String
DataProduct
s3_key 1
String
MinIO/S3 object key; required for all data products DataProduct
filesize 0..1
Integer
Size of the file in bytes DataProduct
md5checksum 0..1
String
DataProduct
id 1
Uuid
DataProduct

Identifier and Mapping Information

Schema Source

Mappings

Mapping Type Mapped Value
self basalt_schema:TextureProduct
native basalt_schema:TextureProduct

LinkML Source

Direct

name: TextureProduct
description: 'Soil texture analysis product, typically derived via hydrometer or similar
  instrument.

  One row per sample with columns for sand, silt, and clay percentages.

  Individual QC flags for each measurement using ProcessedDataFlag enum.'
from_schema: https://EMSL-Computing.github.io/BASALT-Schema
is_a: ProcessedData
slots:
- measure_type
attributes:
  sand_pct_id:
    name: sand_pct_id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    rank: 1000
    domain_of:
    - TextureProduct
    range: QuantityValue
  silt_pct_id:
    name: silt_pct_id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    rank: 1000
    domain_of:
    - TextureProduct
    range: QuantityValue
  clay_pct_id:
    name: clay_pct_id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    rank: 1000
    domain_of:
    - TextureProduct
    range: QuantityValue
  flag:
    name: flag
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    domain_of:
    - WellReading
    - BulkDensityProduct
    - EnzymeProduct
    - GWCMoistureProduct
    - HydraulicPropertiesProduct
    - PhosphorusAnalysisProduct
    - RespirationProduct
    - TextureProduct
    - pHProduct
    range: ProcessedDataFlag

Induced

name: TextureProduct
description: 'Soil texture analysis product, typically derived via hydrometer or similar
  instrument.

  One row per sample with columns for sand, silt, and clay percentages.

  Individual QC flags for each measurement using ProcessedDataFlag enum.'
from_schema: https://EMSL-Computing.github.io/BASALT-Schema
is_a: ProcessedData
attributes:
  sand_pct_id:
    name: sand_pct_id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    rank: 1000
    alias: sand_pct_id
    owner: TextureProduct
    domain_of:
    - TextureProduct
    range: QuantityValue
  silt_pct_id:
    name: silt_pct_id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    rank: 1000
    alias: silt_pct_id
    owner: TextureProduct
    domain_of:
    - TextureProduct
    range: QuantityValue
  clay_pct_id:
    name: clay_pct_id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    rank: 1000
    alias: clay_pct_id
    owner: TextureProduct
    domain_of:
    - TextureProduct
    range: QuantityValue
  flag:
    name: flag
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema/products
    alias: flag
    owner: TextureProduct
    domain_of:
    - WellReading
    - BulkDensityProduct
    - EnzymeProduct
    - GWCMoistureProduct
    - HydraulicPropertiesProduct
    - PhosphorusAnalysisProduct
    - RespirationProduct
    - TextureProduct
    - pHProduct
    range: ProcessedDataFlag
  measure_type:
    name: measure_type
    description: Whether the measurement recorded is a single measurement, one of
      a set of  replicate measurements, or an average of several replicate measurements.
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: measure_type
    owner: TextureProduct
    domain_of:
    - BulkDensityProduct
    - ElementalAnalysisProduct
    - EnzymeProduct
    - GWCMoistureProduct
    - HydraulicPropertiesProduct
    - IonsAnalysisProduct
    - MAOMProduct
    - MicrobialBiomassProduct
    - NitrogenAnalysisProduct
    - PhosphorusAnalysisProduct
    - RespirationProduct
    - TextureProduct
    - TomographyProduct
    - WEOMProduct
    - pHProduct
    - XRFElementalProduct
    - XRDPhaseProduct
    range: ProductMeasureType
  summary_metrics:
    name: summary_metrics
    description: "Lightweight per-product summary for common queries that avoid full\
      \ file download.\nDirection: structured key-value pairs; per-type schemas TBD:\n\
      \  ecoplate:  well-level absorbance summaries (position, timepoint, absorbance)\n\
      \  xrf:       per-element concentration results + QC flag\n  lcms:      feature\
      \ count, identification count, MSI-2 fraction\nInterim DB storage: JSONB column\
      \ retained until formal typed class exists."
    todos:
    - make this inined/multivalued?
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: summary_metrics
    owner: TextureProduct
    domain_of:
    - ProcessedData
    range: string
    required: false
  lims_barcode:
    name: lims_barcode
    description: LIMS barcode identifier
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: lims_barcode
    owner: TextureProduct
    domain_of:
    - ProcessedData
    - Sample
    range: string
    required: false
  sample_id:
    name: sample_id
    description: Link back to the originating sample
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: sample_id
    owner: TextureProduct
    domain_of:
    - ProcessedData
    - AMP2WellMetadata
    - MetagenomicsProduct
    range: Sample
    required: false
  name:
    name: name
    description: Human-readable name for the entity or activity.
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: name
    owner: TextureProduct
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - Instrument
    - OntologyClass
    - ContainerAxis
    - Configuration
    - MobilePhaseSegment
    - MassSpectrometryStandardRun
    - PurchasedMaterial
    - LabProcessingActivity
    - organism
    - Site
    - Sample
    - SamplingActivity
    - SoilSamplingActivity
    - Study
    - SoftwareControlledTermValue
    range: string
    required: true
  description:
    name: description
    description: Human-readable description for the entity or activity
    title: description
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: description
    owner: TextureProduct
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - DataProcessingActivity
    - OntologyClass
    - ContainerType
    - LabDevice
    - Configuration
    - MassSpectrometryStandardRun
    - PurchasedMaterial
    - LabProcessingActivity
    - organism
    - Site
    - Sample
    - SamplingActivity
    - SoilSamplingActivity
    - Study
    - TimestampValue
    - TextValue
    - SoftwareControlledTermValue
    - ControlledTermValue
    - QuantityValue
    range: string
  project:
    name: project
    description: 'Identifier for the user project associated with the entity or activity. '
    title: Project
    todos:
    - should this be an ID? CURIE can use the one NMDC has https://bioregistry.io/reference/emsl.project:60141
      where emsl.project is the CURIE prefix
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    aliases:
    - study
    - study_id
    - project_id
    - proposal
    - proposal_id
    rank: 1000
    alias: project
    owner: TextureProduct
    domain_of:
    - DataProduct
    - AerosolArmSample
    - AerosolSample
    - CommerciallyPurchasedSample
    - CultureEnvironmentalSample
    - FieldDeployedTerraformSample
    - MixedCultureSample
    - MonetSoilSample
    - OtherUndescribedSample
    - PlantSample
    - PureCultureSample
    - SedimentSample
    - SoilSample
    - SynthesizedMaterialSample
    - TerraformSample
    - WaterSample
    - SamplingActivity
    range: integer
  sampling_set:
    name: sampling_set
    description: 'Sampling set number for grouping related samples collected together.

      This is a user-defined sequential integer that can be used to link samples collected

      in the same sampling event or campaign.'
    title: sampling set
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: sampling_set
    owner: TextureProduct
    domain_of:
    - DataProduct
    - MonetSoilSample
    range: integer
  core_section:
    name: core_section
    description: The section of the core.
    title: core section
    examples:
    - value: TOP
    - value: MID
    - value: BTM
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: core_section
    owner: TextureProduct
    domain_of:
    - DataProduct
    - CoreSection
    range: CoreSectionEnum
  sample_name:
    name: sample_name
    description: 'The name or label that is present on the shipped sample. This should

      be a human readable name.'
    title: sample name
    notes:
    - This is typically an alias for the inherited 'name' slot on Sample classes.
      Defined separately for compatibility with source data files using 'sample_name'
      column headers.
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    aliases:
    - samp_name
    rank: 1000
    alias: sample_name
    owner: TextureProduct
    domain_of:
    - DataProduct
    - AerosolArmSample
    - AerosolSample
    - CommerciallyPurchasedSample
    - CultureEnvironmentalSample
    - FieldDeployedTerraformSample
    - MixedCultureSample
    - MonetSoilSample
    - OtherUndescribedSample
    - PlantSample
    - PureCultureSample
    - SedimentSample
    - SoilSample
    - SynthesizedMaterialSample
    - TerraformSample
    - WaterSample
    range: string
  s3_base_url:
    name: s3_base_url
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: s3_base_url
    owner: TextureProduct
    domain_of:
    - DataProduct
    range: string
  s3_bucket:
    name: s3_bucket
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: s3_bucket
    owner: TextureProduct
    domain_of:
    - DataProduct
    range: string
  s3_key:
    name: s3_key
    description: MinIO/S3 object key; required for all data products
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: s3_key
    owner: TextureProduct
    domain_of:
    - DataProduct
    range: string
    required: true
  filesize:
    name: filesize
    description: Size of the file in bytes
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: filesize
    owner: TextureProduct
    domain_of:
    - DataProduct
    range: integer
  md5checksum:
    name: md5checksum
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: md5checksum
    owner: TextureProduct
    domain_of:
    - DataProduct
    range: string
  id:
    name: id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    identifier: true
    alias: id
    owner: TextureProduct
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - DataProcessingActivity
    - AlternativeIdentifier
    - FunctionalAnnotationIdentifier
    - Instrument
    - OntologyClass
    - ContainerType
    - Custodian
    - InstrumentAlternativeIdentifier
    - LabDevice
    - SampleProcessing
    - ProcessingSampleLink
    - Configuration
    - MobilePhaseSegment
    - MassSpectrometryStandardRun
    - PurchasedMaterial
    - LabProcessingActivity
    - organism
    - MAOMProduct
    - WEOMProduct
    - Site
    - Sample
    - AerosolArmSample
    - AerosolSample
    - AMP2UserSample
    - CommerciallyPurchasedSample
    - CultureEnvironmentalSample
    - EngineeredStrainSample
    - FieldDeployedTerraformSample
    - MixedCultureSample
    - MonetSoilSample
    - OtherUndescribedSample
    - PlantSample
    - PureCultureSample
    - SedimentSample
    - SoilSample
    - SynthesizedMaterialSample
    - TerraformSample
    - WaterSample
    - ProcessedSample
    - CoreSection
    - SamplingActivity
    - AerosolArmSamplingActivity
    - AerosolSamplingActivity
    - CommerciallyPurchasedSamplingActivity
    - CultureEnvironmentalSamplingActivity
    - EngineeredStrainSamplingActivity
    - FieldDeployedTerraformSamplingActivity
    - MixedCultureSamplingActivity
    - MonetSoilSamplingActivity
    - OtherUndescribedSamplingActivity
    - PlantSamplingActivity
    - PureCultureSamplingActivity
    - SedimentSamplingActivity
    - SoilSamplingActivity
    - SynthesizedMaterialSamplingActivity
    - TerraformSamplingActivity
    - WaterSamplingActivity
    - Study
    - ProjectParticipant
    - TimestampValue
    - TextValue
    - SoftwareControlledTermValue
    - ControlledTermValue
    - PersonValue
    - QuantityValue
    - ConditioningValue
    - zipDownload
    range: uuid
    required: true