CUCC Expedition Handbook - troggle
Troggle Data Model (python)
Asking ChatGPT to read our data model and produce a Mermad-style diagram produces something it has hallucinated. This is NOT troggle.
Can you look at the data model at https://expo.survex.com/handbook/troggle/datamodel.html and generate the data model in mermaid script in html
classDiagram
class Cave {
- name: str
- location: str
- description: str
- survey: Survey
- map: Map
- expeditions: List[Expedition]
- survey_teams: List[SurveyTeam]
- entrances: List[Entrance]
- passages: List[Passage]
}
class Survey {
- file: str
- header: Header
- stations: List[SurveyStation]
- fixes: List[SurveyFix]
- flags: List[SurveyFlag]
- teams: List[SurveyTeam]
- instruments: List[SurveyInstrument]
- centerlines: List[SurveyCenterline]
- shots: List[SurveyShot]
- calibrations: List[SurveyCalibration]
- extras: List[SurveyExtra]
- equates: List[SurveyEquate]
}
class Map {
- file: str
- scale: float
- orientation: Orientation
}
class Expedition {
- name: str
- leader: ExpeditionLeader
- members: List[ExpeditionMember]
- equipment: List[ExpeditionEquipment]
}
class ExpeditionLeader {
- name: str
- email: str
- phone: str
}
class ExpeditionMember {
- name: str
- email: str
- phone: str
}
class ExpeditionEquipment {
- name: str
- description: str
}
class SurveyTeam {
- name: str
- members: List[str]
}
class Entrance {
- name: str
- position: EntrancePosition
}
class EntrancePosition {
- easting: float
- northing: float
- altitude: float
- grid_reference: str
- datum: str
}
class Passage {
- name: str
- points: List[PassagePoint]
- sections: List[PassageSection]
}
class PassagePoint {
- name: str
- position: PassagePosition
}
class PassagePosition {
- easting: float
- northing: float
- altitude: float
- grid_reference: str
- datum: str
}
class PassageSection {
- from_point: PassagePoint
- to_point: PassagePoint
- distance: float
- azimuth: float
- inclination: float
}
graph LR
Cave --"1"--> Survey
Cave --"1"--> Map
Cave --"0..*"--> Expedition
Cave --"0..*"--> SurveyTeam
Cave --"0..*"--> Entrance
Cave --"0..*"--> Passage
Survey --"0..*"--> SurveyHeader
Survey --"0..*"--> SurveyStation
Survey --"0..*"--> SurveyFix
Survey --"0..*"--> SurveyFlag
Survey --"0..*"--> SurveyTeam
Survey --"0..*"--> SurveyInstrument
Survey --"0..*"--> SurveyCenterline
Survey --"0..*"--> SurveyShot
Survey --"0..*"--> SurveyCalibration
Survey --"0..*"--> SurveyExtra
Survey --"0..*"--> SurveyEquate
Expedition --"1"--> ExpeditionLeader
Expedition --"0..*"--> ExpeditionMember
Expedition --"0..*"--> ExpeditionEquipment
Entrance --"1"--> EntrancePosition
Passage --"0..*"--> PassagePoint
Passage --"0..*"--> PassageSection
graph LR
SurveyFile --"1"--> SurveyHeader
SurveyFile --"1"--> SurveyStation
SurveyFile --"1"--> SurveyFix
SurveyFile --"1"--> SurveyFlag
SurveyFile --"1"--> SurveyTeam
SurveyFile --"1"--> SurveyInstrument
SurveyFile --"1"--> SurveyCenterline
SurveyFile --"1"--> SurveyShot
SurveyFile --"1"--> SurveyCalibration
SurveyFile --"1"--> SurveyExtra
SurveyFile --"1"--> SurveyEquate
SurveyHeader --"1"--> SurveyCenterline
SurveyHeader --"1"--> SurveyTeam
SurveyHeader --"1"--> SurveyInstrument
SurveyHeader --"0..*"--> SurveyExtra
SurveyStation --"1"--> SurveyFix