Difference between revisions of "Filling out the Geometry Lander Class"

From The SBN Wiki
Jump to navigation Jump to search
(Creation - Safety Save)
(Update - Safety Save)
Line 1: Line 1:
 
The ''<Geometry_Lander>'' class collects classes and attributes related to surface-based geometry for things that either stand still or move around on the surface of a body.
 
The ''<Geometry_Lander>'' class collects classes and attributes related to surface-based geometry for things that either stand still or move around on the surface of a body.
  
 +
== <Articulation_Device_Parameters> ==
 +
 +
''OPTIONAL''
 +
 +
This class is used to identify and describe anything that is attached to a spacecraft but also has one or more degrees of independent motion, referred to in the classes and descriptions that follow as a "device".
 +
 +
You must specify a name for the device and at least one of the subclasses listed.  You may specify more than one subclass and multiple instances of any of the subclasses, as appropriate for your data.
 +
 +
=== <device_id> ===
 +
 +
''OPTIONAL''
 +
 +
This attribute gives an abbreviated identification for the device being described.  It must contain only printable ASCII characters and the blank character.
 +
 +
=== <device_name> ===
 +
 +
''REQUIRED''
 +
 +
This is the name by which the device is commonly known (in documentation, for example).  It must contain only printable ASCII characters and the blank character.
 +
 +
=== <device_mode> ===
 +
 +
''OPTIONAL''
 +
 +
This attribute contains a short string describing the deployment state of the device - so values like "stowed" or "deployed" would be typical. The value must contain only printable ASCII characters and the blank character.
 +
 +
=== <Device_Angle> ===
 +
 +
''OPTIONAL''
 +
 +
This class contains a set of angle descriptions - each subclass describing one angle between the device named in the containing ''Articulation_Device_Parameters'' class and some other device, identified within.
 +
 +
==== <local_identifier> ====
 +
 +
''OPTIONAL''
 +
 +
This string provides a label by which this class can be referenced from elsewhere in the label. The value must contain only printable ASCII characters and the blank character.
 +
 +
{| class="wikitable" style="background-color: yellow"
 +
| ''Under what conditions would anything need to reference this class?  If none, this should be removed; otherwise those conditions should be described here.''
 +
|}
 +
 +
==== <Device_Angle_Index> ====
 +
 +
''REQUIRED''
 +
 +
This class documents one angle between the device identified in the containing ''Articulation_Device_Parameters'' class and some other device identified in this class.
  
 
{| class="wikitable" style="background-color: yellow"
 
{| class="wikitable" style="background-color: yellow"
|
+
| ''That definition is an educated guess based on relationships I see in the schema and my knowledge of the English language, which may be doing more harm than good at this point.  This class looks like more than a bit of a mess to me:''
'''Note:''' ''Most of this class is currently not well-defined.  If you need to use it, consult your PDS node advisor '''first''' for specific instructions.''.
+
|-
 +
|* ''First, how can a class be an "Index"?  That makes no sense.  "Device_Angle_Instance" would make sense, or "Angle_Info", or "Your_Friendly_Neighborhood_Angle_Definition_and_Value".''
 +
|-
 +
|* ''Second, how the heck is a user supposed to divine what angle is being described?  '''No''' name or ID of any kind is required, and there are no links to anything that might be components or devices with the possible exception of ''Local_Internal_Reference'', and then if and only if every device had a local identifier AND there were  at least two ''Device_Angle'' classes in the label AND it made sense to talk about the angle between two devices in the first place where there is no indication of how origin or axis might be defined.''
 +
|-
 +
|* ''Third, where is any actual angular measurement?  I'm guessing "index_value_angle", but there is no defined "index_value" structure anywhere, and I have no idea what an "index_value" might be.  The definition for "index_value_angle" seems to require some sort of ID which is not actually required to be present, so no help thereIn fact, I don't understand why the word "index" is repeated so damn often - none of these things appear to be indices of any kind - unless you're using "index" in a secondary meaning of the noun.  That seems highly problematic to me, but maybe that's the way people who spend their time contemplating articulated devices talk to each other.  Or more likely to themselves.''
 +
|-
 +
|* ''The definition in the schema talks about "components of a device", but I don't see how you could possible identify components. On the other hand, there's a whole class called ''Device_Component_State'' that would imply that somehow there is a way to identify components that I just can't see.''
 
|}
 
|}
  
== <Articulation_Device_Parameters> ==
 
  
''OPTIONAL''
 
  
 
== <Camera_Model_Parameters> ==
 
== <Camera_Model_Parameters> ==

Revision as of 18:16, 19 August 2015

The <Geometry_Lander> class collects classes and attributes related to surface-based geometry for things that either stand still or move around on the surface of a body.

<Articulation_Device_Parameters>

OPTIONAL

This class is used to identify and describe anything that is attached to a spacecraft but also has one or more degrees of independent motion, referred to in the classes and descriptions that follow as a "device".

You must specify a name for the device and at least one of the subclasses listed. You may specify more than one subclass and multiple instances of any of the subclasses, as appropriate for your data.

<device_id>

OPTIONAL

This attribute gives an abbreviated identification for the device being described. It must contain only printable ASCII characters and the blank character.

<device_name>

REQUIRED

This is the name by which the device is commonly known (in documentation, for example). It must contain only printable ASCII characters and the blank character.

<device_mode>

OPTIONAL

This attribute contains a short string describing the deployment state of the device - so values like "stowed" or "deployed" would be typical. The value must contain only printable ASCII characters and the blank character.

<Device_Angle>

OPTIONAL

This class contains a set of angle descriptions - each subclass describing one angle between the device named in the containing Articulation_Device_Parameters class and some other device, identified within.

<local_identifier>

OPTIONAL

This string provides a label by which this class can be referenced from elsewhere in the label. The value must contain only printable ASCII characters and the blank character.

Under what conditions would anything need to reference this class? If none, this should be removed; otherwise those conditions should be described here.

<Device_Angle_Index>

REQUIRED

This class documents one angle between the device identified in the containing Articulation_Device_Parameters class and some other device identified in this class.

That definition is an educated guess based on relationships I see in the schema and my knowledge of the English language, which may be doing more harm than good at this point. This class looks like more than a bit of a mess to me:
* First, how can a class be an "Index"? That makes no sense. "Device_Angle_Instance" would make sense, or "Angle_Info", or "Your_Friendly_Neighborhood_Angle_Definition_and_Value".
* Second, how the heck is a user supposed to divine what angle is being described? No name or ID of any kind is required, and there are no links to anything that might be components or devices with the possible exception of Local_Internal_Reference, and then if and only if every device had a local identifier AND there were at least two Device_Angle classes in the label AND it made sense to talk about the angle between two devices in the first place where there is no indication of how origin or axis might be defined.
* Third, where is any actual angular measurement? I'm guessing "index_value_angle", but there is no defined "index_value" structure anywhere, and I have no idea what an "index_value" might be. The definition for "index_value_angle" seems to require some sort of ID which is not actually required to be present, so no help there. In fact, I don't understand why the word "index" is repeated so damn often - none of these things appear to be indices of any kind - unless you're using "index" in a secondary meaning of the noun. That seems highly problematic to me, but maybe that's the way people who spend their time contemplating articulated devices talk to each other. Or more likely to themselves.
* The definition in the schema talks about "components of a device", but I don't see how you could possible identify components. On the other hand, there's a whole class called Device_Component_State that would imply that somehow there is a way to identify components that I just can't see.


<Camera_Model_Parameters>

OPTIONAL

<Coordinate_Space_Definition>

OPTIONAL

Not defined

<local_identifier>

REQUIRED

This normally optional keyword is required here presumably because there is little point defining a coordinate space in the label if you don't then reference it elsewhere in the label.

<Present_Coordinate_Space>

REQUIRED

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Continue here !!!!!!!!!!!!!!!!!!!!!!


<Derived_Geometry>

OPTIONAL

Not defined

<incidence_angle>

OPTIONAL

This is the angle at the intercept point between the local vertical and the vector from the intercept to the sun. You must provide units for this attribute.

<emission_angle>

OPTIONAL

This is the angle at the intercept point between the local vertical and the vector from the intercept to the spacecraft. You must provide units for this attribute.

<phase_angle>

OPTIONAL

This is the angle at the intercept point between the vector from the intercept to the source of illumination, and the vector from the intercept to the observing instrument. You must provide units for this attribute.

<Reference_Coordinate_Space>

OPTIONAL

This is filled out the same way as the class of the same name in <Coordinate_Space_Definition>, above.


<Motion_Counter>

OPTIONAL

This class is used to provide a tagged index of recorded or anticipated (or both) movements of some part of the observing system - like an articulating arm or even an entire rover. This index can then be used to map to specific, localized coordinate systems. The class may be repeated, if that seems appropriate.

<name>

OPTIONAL

A name for this particular Motion_Counter. If you have more than one instance of the class in your label, naming them would probably be a useful thing to do for users.

<local_identifier>

OPTIONAL

Provide one of these if you expect to cross-reference this <Motion_Counter> from elsewhere in this label.

<Motion_Counter_Index>

REQUIRED

You will repeat this subclass once for each indexed entry in the Motion_Counter list. You must have at least one of these; you may have as many as you need.

<index_sequence_number>

OPTIONAL

This attribute is undefined. It takes a string value. At least one of index_sequence_number, index_name, and index_id is required to be present; they may all be present.

<index_name>

OPTIONAL

This attribute is undefined. It takes a string value. At least one of index_sequence_number, index_name, and index_id is required to be present; they may all be present.

<index_id>

OPTIONAL

This attribute is undefined. It takes a string value. At least one of index_sequence_number, index_name, and index_id is required to be present; they may all be present.

<Local_Internal_Reference>

OPTIONAL

This class is used to cross-reference a local_identifier found elsewhere in the same label. What you might be cross-referencing at this point is not defined. Details of how to fill out this class are identical to those on the Filling out the Image Display Geometry Class page.

<index_value_no_units>

OPTIONAL

The meaning of this attribute is undefined. Its value must be a real number.