{
    "supplier": "HUMANETICS",
    "product": "HIII",
    "anthropometry": "95M",
    "version": "2.0 (Harmonized)",
    "body_parts": [
        {
            "component_type": "head",
            "entities": [
                {
                    "entity_type": "node",
                    "id": 1500001,
                    "tag": "HEAD_NODE",
                    "iso": "HEAD0000HM",
                    "components": ["ACX", "VEX"],
                    "history_title": "01HEAD0000HMACX"
                },
                {
                    "entity_type": "node",
                    "id": 1500002,
                    "tag": "HEAD_NODE_Y",
                    "iso": "HEAD0000HM",
                    "components": ["ACY", "VEY"],
                    "history_title": "01HEAD0000HMACY"
                },
                {
                    "entity_type": "node",
                    "id": 1500003,
                    "tag": "HEAD_NODE_Z",
                    "iso": "HEAD0000HM",
                    "components": ["ACZ", "VEZ"],
                    "history_title": "01HEAD0000HMACZ"
                },
                {
                    "entity_type": "node",
                    "id": 1500004,
                    "tag": "HEAD_CENTER",
                    "iso": "HEAD0000HM",
                    "components": ["DCX", "DCY", "DCZ", "AVX", "AVY", "AVZ"],
                    "history_title": "01HEAD0000HMAC0"
                }
            ]
        },
        {
            "component_type": "neck",
            "entities": [
                {
                    "entity_type": "section",
                    "id": 1500001,
                    "tag": "NECK_LOADCELL",
                    "iso": "NECKUP00HM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01NECKUP00HM"
                },
                {
                    "entity_type": "section",
                    "id": 1500002,
                    "tag": "NECK_LOADCELL_LOWER",
                    "iso": "NECKLO00HM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01NECKUP00HM"
                }
            ]
        },

        {
            "component_type": "chest",
            "entities": [
                {
                    "entity_type": "node",
                    "id": 1500010,
                    "tag": "CHEST_NODE_X",
                    "iso": "CHST0000HM",
                    "components": ["ACX", "VEX"],
                    "history_title": "01CHST0000HMACX"
                },
                {
                    "entity_type": "node",
                    "id": 1500011,
                    "tag": "CHEST_NODE_Y",
                    "iso": "CHST0000HM",
                    "components": ["ACY", "VEY"],
                    "history_title": "01CHST0000HMACY"
                },
                {
                    "entity_type": "node",
                    "id": 1500012,
                    "tag": "CHEST_NODE_Z",
                    "iso": "CHST0000HM",
                    "components": ["ACZ", "VEZ"],
                    "history_title": "01CHST0000HMACZ"
                },
                {
                    "entity_type": "node",
                    "id": 1500009,
                    "tag": "CHEST_CENTER",
                    "iso": "CHST0000HM",
                    "components": ["DCX", "DCY", "DCZ", "AVX", "AVY", "AVZ"],
                    "history_title": "01CHST0000HMAC0"
                },
                {
                    "entity_type": "section",
                    "id": 1500003,
                    "iso": "THSP0000HM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01THSP0000HM"
                },
                {
                    "entity_type": "spring rot",
                    "id": 1500000,
                    "tag": "CHEST_SPRING",
                    "iso": "CHST0000HM",
                    "components": ["AN0"],
                    "name": "Chest: Angle (for deriving chest deflection)",
                    "history_title": "01CHST0000HMDSX"
                }
            ]
        },
        {
            "component_type": "lumbar",
            "entities": [
                {
                    "entity_type": "section",
                    "id": 1500004,
                    "iso": "LUSP0000HM",
                    "components": ["FOX", "FOY", "FOZ", "MOY"],
                    "history_title": "01LUSP0000HM"
                }
            ]
        },

        {
            "component_type": "pelvis",
            "entities": [
                {
                    "entity_type": "node",
                    "id": 1500006,
                    "tag": "PELVIS_NODE_X",
                    "iso": "PELV0000HM",
                    "components": ["ACX", "VEX"],
                    "history_title": "01PELV0000HMACX"
                },
                {
                    "entity_type": "node",
                    "id": 1500007,
                    "tag": "PELVIS_NODE_Y",
                    "iso": "PELV0000HM",
                    "components": ["ACY", "VEY"],
                    "history_title": "01PELV0000HMACY"
                },
                {
                    "entity_type": "node",
                    "id": 1500008,
                    "tag": "PELVIS_NODE_Z",
                    "iso": "PELV0000HM",
                    "components": ["ACZ", "VEZ"],
                    "history_title": "01PELV0000HMACZ"
                },
                {
                    "entity_type": "node",
                    "id": 1500005,
                    "tag": "PELVIS_Global",
                    "iso": "PELV0000HM",
                    "components": ["DCX", "DCY", "DCZ", "AVX", "AVY", "AVZ"],
                    "history_title": "01PELV0000HMAC0"
                },
                {
                    "entity_type": "section",
                    "id": 1500005,
                    "iso": "ILACLE00HM",
                    "components": ["FOX", "MOY"],
                    "history_title": "01ILACLE00HM"
                },
                {
                    "entity_type": "section",
                    "id": 1500006,
                    "iso": "ILACRI00HM",
                    "components": ["FOX", "MOY"],
                    "history_title": "01ILACRI00HM"
                }
            ]
        },

        {
            "component_type": "foot",
            "entities": [
                {
                    "entity_type": "node",
                    "id": 1500014,
                    "iso": "FOOTLE00HM",
                    "components": ["ACX"],
                    "history_title": "01FOOTLE00HMACX"
                },
                {
                    "entity_type": "node",
                    "id": 1500015,
                    "iso": "FOOTLE00HM",
                    "components": ["ACY"],
                    "history_title": "01FOOTLE00HMACY"
                },
                {
                    "entity_type": "node",
                    "id": 1500016,
                    "iso": "FOOTLE00HM",
                    "components": ["ACZ"],
                    "history_title": "01FOOTLE00HMACZ"
                },
                {
                    "entity_type": "node",
                    "id": 1500021,
                    "iso": "TOESLE00HM",
                    "components": ["ACZ"],
                    "history_title": "01TOESLE00HMACZ"
                },
                {
                    "entity_type": "node",
                    "id": 1500020,
                    "iso": "FOOTRI00HM",
                    "components": ["ACX"],
                    "history_title": "01FOOTRI00HMACX"
                },
                {
                    "entity_type": "node",
                    "id": 1500017,
                    "iso": "FOOTRI00HM",
                    "components": ["ACY"],
                    "history_title": "01FOOTRI00HMACY"
                },
                {
                    "entity_type": "node",
                    "id": 1500018,
                    "iso": "FOOTRI00HM",
                    "components": ["ACZ"],
                    "history_title": "01FOOTRI00HMACZ"
                },
                {
                    "entity_type": "node",
                    "id": 1500022,
                    "iso": "TOESRI00HM",
                    "components": ["ACZ"],
                    "history_title": "01TOESRI00HMACZ"
                }
            ]
        },
        {
            "component_type": "femur",
            "entities": [
                {
                    "entity_type": "section",
                    "id": 1500007,
                    "tag": "LEFT_FEMUR_LOADCELL",
                    "iso": "FEMRLE00HM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01FEMRLE00HM"
                },
                {
                    "entity_type": "section",
                    "id": 1500008,
                    "tag": "RIGHT_FEMUR_LOADCELL",
                    "iso": "FEMRRI00HM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01FEMRRI00HM"
                }
            ]
        },
        {
            "component_type": "knee",
            "entities": [
                {
                    "entity_type": "section",
                    "id": 1500009,
                    "iso": "CLEVLEOUHM",
                    "components": ["FOZ"],
                    "history_title": "01CLEVLEOUHM"
                },
                {
                    "entity_type": "section",
                    "id": 1500010,
                    "iso": "CLEVLEINHM",
                    "components": ["FOZ"],
                    "history_title": "01CLEVLEINHM"
                },
                {
                    "entity_type": "section",
                    "id": 1500011,
                    "iso": "CLEVRIINHM",
                    "components": ["FOZ"],
                    "history_title": "01CLEVRIINHM"
                },
                {
                    "entity_type": "section",
                    "id": 1500012,
                    "iso": "CLEVRIOUHM",
                    "components": ["FOZ"],
                    "history_title": "01CLEVRIOUHM"
                },
                {
                    "entity_type": "spring tr",
                    "id": 1500002,
                    "tag": "LEFT_KNEE_TRANSDUCER",
                    "iso": "KNSLLE00HM",
                    "components": ["DSX"],
                    "history_title": "01KNSLLE00HMDSX"
                },
                {
                    "entity_type": "spring tr",
                    "id": 1500001,
                    "tag": "RIGHT_KNEE_TRANSDUCER",
                    "iso": "KNSLRI00HM",
                    "components": ["DSX"],
                    "history_title": "01KNSLRI00HMDSX"
                }
            ]
        },
        {
            "component_type": "tibia",
            "entities": [
                {
                    "entity_type": "section",
                    "id": 1500013,
                    "tag": "LEFT_UPPER_TIBIA_LOADCELL",
                    "iso": "TIBILEUPHM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01TIBILEUPHM"
                },
                {
                    "entity_type": "section",
                    "id": 1500014,
                    "tag": "LEFT_LOWER_TIBIA_LOADCELL",
                    "iso": "TIBILELOHM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01TIBILELOHM"
                },
                {
                    "entity_type": "section",
                    "id": 1500015,
                    "tag": "RIGHT_UPPER_TIBIA_LOADCELL",
                    "iso": "TIBIRIUPHM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01TIBIRIUPHM"
                },
                {
                    "entity_type": "section",
                    "id": 1500016,
                    "tag": "RIGHT_LOWER_TIBIA_LOADCELL",
                    "iso": "TIBIRILOHM",
                    "components": ["FOX", "FOY", "FOZ", "MOX", "MOY", "MOZ"],
                    "history_title": "01TIBIRILOHM"
                }
            ]
        }
    ],
    "operations": [
        {
            "comment1": "filtering angle with c180",
            "operation": "c180",
            "input": ["CHST0000HMAN00"],
            "output": "CHST0000HMAN0C",
            "iso": true
        },
        {
            "operations_comment": "operations array is polynomial expression to convert angle to displacement in meters",
            "comment": "do the cube",
            "operation": "pow",
            "input": ["CHST0000HMAN0C", 3],
            "output": "X3",
            "iso": false
        },
        {
            "comment": "do the square",
            "operation": "pow",
            "input": ["CHST0000HMAN0C", 2],
            "output": "X2",
            "iso": false
        },
        {
            "comment": "not actually necessary but makes it easier to read",
            "operation": "pow",
            "input": ["CHST0000HMAN0C", 1],
            "output": "X",
            "iso": false
        },
        {
            "comments": [
                "A*X^3, |A| = 20.295 yields mm so use 0.020295 for meters",
                "The coefficients are taken from  line 13815 of HUMANETICS_HIII_95th_V2.0.1_S2_HARMONIZED_LS_DYNA_SIGNAL_TEMPLATE_HG_p01.tpl which gives more precision for coefficients",
                "The equation is -A*|X|^3 + B*|X|^2 + C*|X| (ref. section 5.2 of HUMANETICS_HIII_95M_V2.0_HARMONIZED_LS_DYNA_TECHNICAL_REPORT_USER_MANUAL.pdf)",
                "NOTE: that ABS values are taken, but this masks possible chest expansion and compression will come out positive",
                "NOTE: the local coordinate of the rotation spring yields negative X for compression which is inconsistent with SAE-J11 sign convention",
                "to ensure that compression will come out negative and that expansion will come out positive we do not take the absolute value and we need to modifiy the signs",
                "the new equation is -A*X^3 - B*X^2 + C*X (i.e. No ABS taken and the B coefficient sign has been changed to negative)"
            ],
            "operation": "mul",
            "input": ["X3", -0.020295],
            "output": "A_X3",
            "iso": false
        },
        {
            "comments": [
                "B*X^2 |B| = 47.801 yields mm so use 0.047801 for meters",
                "NOTE: the local coordinate of the rotation spring yields negative X for compression which is inconsistent with SAE-J11 sign convention",
                "to ensure that compression will come out negative and that expansion will come out positive we do not take the absolute value and we need to modifiy the signs",
                "the new equation is -A*X^3 - B*X^2 + C*X (i.e. No ABS taken and the B coefficient sign has been changed to negative)"
            ],
            "operation": "mul",
            "input": ["X2", -0.047801],
            "output": "B_X2",
            "iso": false
        },
        {
            "comments": [
                "C*X |C| = 102.05 yields mm so use 0.10205 for meters",
                "NOTE: the local coordinate of the rotation spring yields negative X for compression which is inconsistent with SAE-J11 sign convention",
                "to ensure that compression will come out negative and that expansion will come out positive we do not take the absolute value and we need to modifiy the signs",
                "the new equation is -A*X^3 - B*X^2 + C*X (i.e. No ABS taken and the B coefficient sign has been changed to negative)"
            ],
            "operation": "mul",
            "input": ["X", 0.10205],
            "output": "C_X",
            "iso": false
        },
        {
            "comment1": "POLYNOMIAL CALIBRATION: sum the polynomial parts",
            "comment2": "NOTE: compression will come out negative",
            "comment3": "reference: section 5.2 of HUMANETICS_HIII_95M_V2.0_HARMONIZED_LS_DYNA_TECHNICAL_REPORT_USER_MANUAL.pdf",
            "comment4": "A*X^3 + B*X^2 + C*X",
            "comment5": "Note that filter class 'C' at the end but euroncap has it '0'",
            "operation": "sum",
            "input": ["A_X3", "B_X2", "C_X"],
            "output": "CHST0003HMDSXC",
            "iso": true
        },
        {
            "comment1": "Renaming channel filter class to 0 for LS-DYNA to ISO-MME",
            "operation": "mul",
            "input": ["CHST0003HMDSXC", 1],
            "output": "CHST0003HMDSX0",
            "iso": true
        },
        {
            "comments": [
                "LINEAR CALIBRATION multiply by 0.122897 to convert angle to displacement in meters",
                "ref. section 5.2 of HUMANETICS_HIII_95M_V2.0_HARMONIZED_LS_DYNA_TECHNICAL_REPORT_USER_MANUAL.pdf)",
                "NOTE: the local coordinate of the rotation spring yields negative X for compression which is inconsistent with SAE-J11 sign convention",
                "To ensure that compression will come out negative the linear coefficient must be positive",
                "Note that filter class 'C' at the end but euroncap has it '0'"
            ],
            "operation": "mul",
            "input": ["CHST0000HMAN0C", 0.122897],
            "output": "CHST0000HMDSXC",
            "iso": true
        },
        {
            "comment1": "Renaming channel filter class to 0 for LS-DYNA to ISO-MME",
            "operation": "mul",
            "input": ["CHST0000HMDSXC", 1],
            "output": "CHST0000HMDSX0",
            "iso": true
        }
    ]
}
