.. include:: ../macros.hrst .. include:: ../abbreviations.hrst .. index:: Attribute conventions .. _chapter:AttributeConventions: Attribute Conventions ##################### Attribute Category Example ========================== For many functions of |ATGV| and the derived software |ATGB| it is makes things much easier if there is some clarity about the meaning of different attributes. This is done by assigning a specific *category* to each one of the attributes of a block model or sampling set. Instead of lengthy explanations, an example will be given in :numref:`tab:SummarizingAttributes`. .. table:: Summarizing attributes of block model blocks :name: tab:SummarizingAttributes :widths: auto +-----------+---------+--------+---------+---------+--------+---------+-------------+ | BlockId | KTons | SiO2 | Al2O3 | Fe2O3 | CaO | LS | Geol | +===========+=========+========+=========+=========+========+=========+=============+ | 1 | 2.5 | 6.1 | 3.1 | 1.1 | 48.1 | 224.2 | Limestone | +-----------+---------+--------+---------+---------+--------+---------+-------------+ | 2 | 3.0 | 4.2 | 2.5 | 1.8 | 52.3 | 329.3 | Limestone | +-----------+---------+--------+---------+---------+--------+---------+-------------+ | 3 | 3.0 | 21.5 | 18.1 | 9.3 | 7.2 | 8.2 | Marl | +-----------+---------+--------+---------+---------+--------+---------+-------------+ | Total | 8.5 | 10.9 | 8.2 | 4.2 | 35.1 | 82.1 | | +-----------+---------+--------+---------+---------+--------+---------+-------------+ Referring to :numref:`tab:SummarizingAttributes`, different columns all need to be handled differently during summarizing, with the results shown in the last row: KTons | Tonnages in terms of kilotons (1000 tons) are simply added: | :math:`KTons_{total}=\sum_n KTons_n` SiO2, Al2O3, Fe2O3, CaO | Chemical compounds are summerized as tonnage weighted means: | :math:`CaO_{total}=\frac{\sum_n KTons_n CaO_n}{KTons_{total}}` LS (lime saturation) | This is a cement specific modulus that is calculated from chemical compounts: | :math:`LS=\frac{100 CaO}{2.8 SiO_2 + 1.18 Al_2O_3 + 0.65 Fe_2O_3}` | For the summary row, it is recalculated from the tonnage weighted means. Geol, BlockId | These attributes cannot be summarized and will not appear in the summary attribute set How is is possible that |ATGV| always "knows" the correct category for each attribute? This is achieved by strictly standardizing the names of the attributes. How *attribute categories* are related to *summarizing operations* is explained in more detail in :ref:`chapter:DisplayTableData` in :ref:`sec:SummaryTables`. .. index:: Attribute categories Attribute Categories ==================== .. index:: Direct attributes .. index:: Percentage attributes Direct | These are proportions or percentages, like well known chemical compounds, cost per ton or other values that are related to tonnage. For summarizing, tonnage weighted means will be calculated. In |ATGB|, these attributes can be used in optimization targets (product constraints). Any attribute that is not explicitly assigned to another attribute type, by filter rule or by containing string values, will be treated as being of this type, so it is the default attribute type. .. index:: Derived attributes .. index:: Cement moduli attributes Derived | Predefined cement specific derived attributes. They are calculated from chemical compounds (if available) with a special filter. They are also treated properly during summarization and can be used in constraints in |ATGB|. .. index:: Tonnage attributes Tonnage | For summarizing, tonnages will be simply added. They can also be chosen as the tonnage attribute for the tonnage weighted mean calculation of *Direct* attributes. .. index:: Weight attributes Weight | Some filters can be applied to only some fraction (percentage) of a block, which can be specified with a *Weight* attribute. **Example:** *Zone*. This attribute would specify how many percent of the block are inside a specific zone. .. index:: Category attributes Category | This is slightly confusing: There is indeed an attribute category named *Category*. They are used to classify materials, so during summary calculation *Category* attributes will be dropped. *Category* attributes can be either numeric or strings. **Note** that in the **Summary View** it is possible to choose a *Category* attribute and then "scroll" from one value to the next. **Example:** A *Category* attribute that corresponds to geological units can be either numeric codes (which is better for some filters) or strings (which is more human readable for example in a legend). With a **Summary View** it is then possible to scroll through the geological units, i.e. display them one by one. Others | Some other categories are specified for different purposes within |ATGV| or |ATGB|: - Coordinate - Angle - Dimension - Index - Period - Range - SpecTonnage .. index:: Show Attribute Types filter .. index:: Attribute Categories filter .. admonition:: **Note** :class: tip In order to quickly check the types or categories of the different attributes within a model, the **Show AttributeTypes** |iconshowattributetypes| filter will display this information in a table. .. |iconshowattributetypes| image:: ../images/pqShowAttributeTypes24.png .. index:: Attribute rules during block model import Attributes during Import ======================== If block models or sampling sets with attributes are read from CSV files, naming of the attributes is less strict than later on within the models. This is a convenience feature for the user. Note that once all patterns are checked on importing an attribute name, any remaining attribute will remain unchanged and become category *Direct*. .. admonition:: **Note** :class: tip Attribute names must not contain spaces or other special characters. Accented characters may work, but there is no guarantee. .. index:: Attribute case rules Case Conversion --------------- Standardized names of attributes are case sensitive within the model, but not on import from CSV files. During the import, the names will be converted accordingly, like *cao* would be converted into *CaO*. .. index:: Alternative attribute names Alternative Attribute Names --------------------------- During import, some alternative names are recognized and automatically renamed. **Example:** The name *Tonnage* would also be recognized as meaning kilotons and would be renamed as *KTons* accordingly. .. index:: Attribute name patterns Attribute Name Patterns ----------------------- In some cases, only part of the name needs to be standardized, while the user can attach some descriptive part related to a project. **Example:** The attribute name *Zone_<..>* could become *Zone_LeaseA* or *Zone_Reserve* etc. and still be recognized as an attribute of category *Weight*. .. index:: Multi-component attributes Multi-Component Attributes -------------------------- It is a special feature of |ParaView| that it allows attributes to have multiple components, the most typical being coordinates with *X*, *Y* and *Z* component. CSV or other table data formats do not support such a feature, so these attributes would be split into several component attributes with names like *Coord:X*, *Coord:Y*, *Coord:Z*, or else *Coord:0*, *Coord:1*, *Coord:2*. These two forms are equivalent in this case. Important is the colon (**:**) separator between attribute name and component. .. index:: Attribute categories table .. index:: Categories of attributes table Table of Categories and Attributes ---------------------------------- .. .. .. tabularcolumns:: |l|l|l|l| It seems not to work in the sense as intended: the result is left aligned cells, but the widths parameter is then ignored and the table is blown up do more or less "infinite width", which is unacceptable. .. tabularcolumns:: |>{\raggedright\arraybackslash}\X{15}{100}| >{\raggedright\arraybackslash}\X{23}{100}| >{\raggedright\arraybackslash}\X{25}{100}| >{\centering\arraybackslash}\X{12}{100}| >{\raggedright\arraybackslash}\X{25}{100}| .. table:: Categories and Attributes :name: tab:CategoriesAttributes :widths: 15 23 25 12 25 +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Attribute | Alternatives | Unit | Description | +=============+=======================+===============+=================+================================+ | Direct | LOI | | \% | Loss on ignition | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | SiO2 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Al2O3 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Fe2O3 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | CaO | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | MgO | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | SO3 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | K2O | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Na2O | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | TiO2 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Mn2O3 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | P2O5 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Cr2O3 | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Cl | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | F | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | Hg | | \% | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | TOC | | \% | Total organic carbon | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | OfferedPerc | | \% | Offered percentage of a block | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | OfferedPerc_ | | \% | Offered percent of a block | | | | | | for a product | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | TakenPerc | | \% | Taken percentage of a block | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | TakenPerc_ | | \% | Taken percentage of a block | | | | | | for a product | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | WastedPerc | | \% | Wasted percentage of a block | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | WasteRatio | | \% | Waste ratio for block: wasted | | | | | | tonnage for this block related | | | | | | to taken tonnage | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | VolFactor | volumefactor, | \% | Volume fraction of the block | | | | fillingdeg* | | that is not air | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Direct | | | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Derived | LS | | | Lime saturation | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Derived | SR | | | Silica ratio | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Derived | AR | | | Alumina ratio | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Derived | ASR | | | Alkali sulfur ratio | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Derived | NaEq | | \% | Sodium equivalent | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | KTons | tonnage | kt | kilotons = 1000 tons | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Tons | | tons | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Tons\_ | | `t/kt`_:sup:`*` | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Offered | | `t/kt`_:sup:`*` | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Offered\_ | | `t/kt`_:sup:`*` | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Taken | | `t/kt`_:sup:`*` | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Taken\_ | | `t/kt`_:sup:`*` | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | WastedForBlock | | `t/kt`_:sup:`*` | Wasted tonnage for extracted | | | | | | tonnage in this block | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Tonnage | Wasted | waste, | `t/kt`_:sup:`*` | | | | | stripping | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Weight | Pit | | \% | Percentage of block inside of | | | | | | pit | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Weight | Pit\_<..> | | \% | Percentage of block inside of | | | | | | named pit | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Weight | Zone | | \% | Percentage of block inside of | | | | | | zone (delimited by a closed | | | | | | boundary line) | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Weight | Zone\_<..> | | \% | Percentage of block inside of | | | | | | named zone | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Code | | | Categorizing by numeric or | | | | | | named code | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Code\_<..> | | | Dto. with additional name | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Geology | geol<..> | | Geological unit | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Class | | | Like Code | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Class\_<..> | | | Dto. with additional name | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Product | | | Product name | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Level | | | Block level | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Level\_ | | | Block level in specific quarry | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Column | | | Block column | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Column\_ | | | Block column in specific | | | | | | quarry | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Row | | | Block row | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Row\_ | | | Block row in specific quarry | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Line | | | Like Row | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | I | | | Like Column | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | J | | | Like Row | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | K | | | Like Level | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Cat | | | Like Code | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Name | | | Classification name | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Start | begin, | | In |ATGB| for specification of | | | | open, | | blocks where to start the | | | | first | | scheduling | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | Force | | | In |ATGB| for specification of | | | | | | blocks blocks to be taken in | | | | | | any case for one of the | | | | | | products during optimization | | | | | | or scheduling | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | HoleType | hole_type, | | Classification attribute for | | | | sond*meth*, | | drillholes or sampling sets | | | | meth*sond* | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | HolePath | hole_path | | Type of drillhole path - so | | | | | | far ignored and always handled | | | | | | like "linear" | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Category | N\_<..> | | | On reading from CSV files, all | | | | | | columns with strings that are | | | | | | not otherwise classified are | | | | | | getting a N\_ prepended to | | | | | | their name and with this they | | | | | | are classified as Category | | | | | | attributes | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Angle | Angle | ang*, | \° | Orientation of block model, | | | | rot* | | counting N-E-S-W | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Angle | Azimuth | | \° | Orientation of inclined | | | | | | drillhole | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Angle | Dip | | \° | Dip angle of inclined | | | | | | drillhole, 90\° for vertically | | | | | | downwards | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Coordinate | Center:X | center:0, | | Block center X coordinate | | | | center_0, | | | | | | cent*x, | | | | | | world*x, | | | | | | x*world, | | | | | | x, | | | | | | east* | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Coordinate | Center:Y | center:1, | | Block center Y coordinate | | | | center_1, | | | | | | cent*y, | | | | | | world*y, | | | | | | y*world, | | | | | | y, | | | | | | north | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Coordinate | Center:Z | center:2, | | Block center Z coordinate | | | | center_2, | | | | | | cent*z, | | | | | | world*z, | | | | | | z*world, | | | | | | z, | | | | | | alt | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Coordinate | Collar:X | collar:0, | | Drillhole collar X coordinate | | | | collar_0, | | | | | | collar*x, | | | | | | sondage*x | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Coordinate | Collar:Y | collar:1, | | Drillhole collar Y coordinate | | | | collar_1, | | | | | | collar*y, | | | | | | sondage*y | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Coordinate | Collar:Z | collar:2, | | Drillhole collar Z coordinate | | | | collar_2, | | | | | | collar*z, | | | | | | sondage*z | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Date | Date | | | ISO-Format: YYYY-MM-DD | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Size:X | size:0, | | Block size in X direction | | | | size_0, | | | | | | size*x*, | | | | | | dx, | | | | | | width | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Size:Y | size:1, | | Block size in Y direction | | | | size_1, | | | | | | size*y*, | | | | | | dy, | | | | | | length | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Size:Z | size:2, | | Block size in Z direction | | | | size_2, | | | | | | size*z*, | | | | | | dz, | | | | | | height | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Slope:XNeg | slope:0, | | Mining slope angle in negative | | | | slope_0, | | X axis `direction`_:sup:`**` | | | | slope:xneg, | | | | | | slopexneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Slope:XPos | slope:1, | | Mining slope angle in positive | | | | slope_1, | | X axis `direction`_:sup:`**` | | | | slope:xpos, | | | | | | slopexpos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Slope:YNeg | slope:2, | | Mining slope angle in negative | | | | slope_2, | | Y axis `direction`_:sup:`**` | | | | slope:yneg, | | | | | | slopeyneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Slope:YPos | slope:3, | | Mining slope angle in positive | | | | slope_3, | | Y axis `direction`_:sup:`**` | | | | slope:ypos, | | | | | | slopeypos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Pref:XNeg | pref:0, | | Mining preference in negative | | | | pref_0, | | X axis `direction`_:sup:`**` | | | | pref:xneg, | | | | | | prefxneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Pref:XPos | pref:1, | | Mining preference in positive | | | | pref_1, | | X axis `direction`_:sup:`**` | | | | pref:xpos, | | | | | | prefxpos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Pref:YNeg | pref:2, | | Mining preference in negative | | | | pref_2, | | Y axis `direction`_:sup:`**` | | | | pref:yneg, | | | | | | prefyneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Pref:YPos | pref:3, | | Mining preference in positive | | | | pref_3, | | Y axis `direction`_:sup:`**` | | | | pref:ypos, | | | | | | prefypos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Pref:ZNeg | pref:4, | | Mining preference in negative | | | | pref_4, | | Z axis direction | | | | pref:zneg, | | | | | | prefzneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | NumItems | numitems | | In summary tables the number | | | | | | of summarized items (blocks | | | | | | etc.) | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | MaxDepth | depth, | | Maximum length of a drillhole | | | | max_depth | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Dimension | Volume | vol, | | Block volume that is not air | | | | volume | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | BlockId | | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | Nb:XNeg | nb:0, | | Neighbor block ID in negative | | | | nb_0, | | X axis `direction`_:sup:`**` | | | | nb:xneg, | | | | | | nbxneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | Nb:XPos | nb:1, | | Neighbor block ID in positive | | | | nb_1, | | X axis `direction`_:sup:`**` | | | | nb:xpos, | | | | | | nbxpos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | Nb:YNeg | nb:2, | | Neighbor block ID in negative | | | | nb_2, | | Y axis `direction`_:sup:`**` | | | | nb:yneg, | | | | | | nbyneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | Nb:YPos | nb:3, | | Neighbor block ID in positive | | | | nb_3, | | Y axis `direction`_:sup:`**` | | | | nb:ypos, | | | | | | nbypos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | Nb:ZNeg | nb:4, | | Neighbor block ID in negative | | | | nb_4, | | Z axis direction | | | | nb:zneg, | | | | | | nbzneg | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Index | Nb:ZPos | nb:5, | | Neighbor block ID in positive | | | | nb_5, | | Z axis direction | | | | nb:zpos, | | | | | | nbzpos | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Name | Material | material, | | Material or corrective name | | | | corr* | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Name | RowType | rowtype | | Row type in summary table | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Name | HoleId | holeid, | | Unique ID of a drillhole | | | | hole_id, | | | | | | dhid, | | | | | | dhnr, | | | | | | name*hole, | | | | | | sond*name, | | | | | | name*sond* | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Name | SampleId | sampleid, | | Unique ID of a sample | | | | samp*id, | | | | | | prob*name, | | | | | | name*prob* | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Period | Period | miningperiod | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Period | FirstPeriod | | | First period of taking tonnage | | | | | | from a block | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Period | WastePeriod | | | Period where wasted tonnage | | | | | | was taken | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Range | Depth:From | depth:0, | | Depth range begin of sample | | | | depth_0, | | within a drillhole | | | | depth*from, | | | | | | schicht*von | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | Range | Depth:To | depth:1, | | Depth range end of sample | | | | depth_1, | | within a drillhole | | | | depth*to, | | | | | | schicht*bis | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ | SpecTonnage | Density | dens*, | | Density or specific gravity | | | | sg, | | of material | | | | spec* | | | +-------------+-----------------------+---------------+-----------------+--------------------------------+ .. _t/kt: :sup:`*` **t/kt** stands for either *tons* or *ktons* (1000 tons). .. _direction: :sup:`**` **direction:** negative or positive X or Y direction refers to a model with **Angle** of 0\°. Otherwise, everything is rotated accordingly.