Jump to: navigation, search

Panohead XML data file version 'b'

The goal of this document is to describe the specifications of an open data file format for motorized panoheads.

See here for general presentation and current version.

Version 'b'

General

This file is split in two parts: a header (<header> tag), containing general informations, and a section, containing the list of all shooting positions (<shoot> tag).

The exact content of the header depends of the shooting mode.

In the shoot section, each image contains a unique identifier, the id attribute, which is a simple integer, starting to 1. When mulitple exposures are made at the same position (exposure bracketing, mirror lockup...), the bracket attribute is incremented, then reset to 1 at the next position.

Details

Naming conventions
Var Meaning Notes
[int] integer
[float] float
[str] string
[dateTime] date and time, as YYYY-MM-DD_HHhMMmSSs
[mode] shooting mode, in (mosaic, preset)
[headOrientation] Head orientation, in (up, left, right, down)
[cameraOrientation] Camera orientation, in (portrait, landscape, custom) the roll attribute contains the real angle relative to the head
[ratio] Ratio of the sensor, in (3:2, 4:3, 5:4, 16:9)
[lensType] Type of the lens, in (rectilinear, fisheye)
  <?xml version="1.0" encoding="utf-8"?>
  <papywizard version="b">
      <header>
          <general>
              <title>[str]</title>
              <gps>[str]</gps>
              <comment>[str]</comment>
          </general>
          <shooting mode="[mode]">
              <headOrientation>[headOrientation]</headOrientation>
              <cameraOrientation>[cameraOrientation]</cameraOrientation>
              <stabilizationDelay>[float]</stabilizationDelay>
              <startTime>[dateTime]</startTime>
              <endTime>[dateTime]</endTime>
          </shooting>
          <camera>
              <timeValue>[float]</timeValue>
              <bracketing nbPicts="[int]"/>
              <sensor coef="[float]" ratio="[ratio]"/>
          </camera>
          <lens type="[lensType]">
              <focal>[float]</focal>
          </lens>
  
          <mosaic>
              <nbPicts pitch="[int]" yaw="[int]"/>
              <overlap minimum="[float]" pitch="[float]" yaw="[float]"/>
          </mosaic>
          or
          <preset name="[str]" />
  
      </header>
      <shoot>
          <pict id="[int]" bracket="[int]">
              
              <position pitch="[float]" yaw="[float]" roll="[float]"/>
          </pict>
          ...
      </shoot>
  </papywizard>

RelaxNG validation

   <?xml version="1.0" encoding="utf-8"?>
   <element name="papywizard"  xmlns="http://relaxng.org/ns/structure/1.0"  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
       <attribute name="version">
           <value>a</value>
       </attribute>
       <element name="header">
           <element name="general">
               <element name="title">
                   <data type="string" />
               </element>
               <element name="gps">
                   <data type="string" />
               </element>
               <element name="comment">
                   <data type="string" />
               </element>
           </element>
           <element name="shooting">
               <attribute name="mode">
                   <choice>
                       <value>mosaic</value>
                       <value>preset</value>
                   </choice>
               </attribute>
               <element name="headOrientation">
                   <choice>
                       <value>up</value>
                       <value>left</value>
                       <value>right</value>
                       <value>down</value>
                   </choice>
               </element>
               <element name="cameraOrientation">
                   <choice>
                       <value>portrait</value>
                       <value>landscape</value>
                       <value>custom</value>
                   </choice>
               </element>
               <element name="stabilizationDelay">
                   <data type="float" />
               </element>
               <element name="startTime">
                   
                       <param name="pattern">\s*\d{4}-\d{2}-\d{2}_\d{2}h\d{2}m\d{2}s\s*</param>
                   
               </element>
               <element name="endTime">
                   
                       <param name="pattern">\s*\d{4}-\d{2}-\d{2}_\d{2}h\d{2}m\d{2}s\s*</param>
                   
               </element>
           </element>
           <element name="camera">
               <element name="timeValue">
                   <data type="float" />
               </element>
               <element name="bracketing">
                   <attribute name="nbPicts">
                       <data type="int" />
                   </attribute>
               </element>
               <element name="sensor">
                   <attribute name="coef">
                       <data type="float" />
                   </attribute>
                   <attribute name="ratio">
                   <choice>
                       <value>3:2</value>
                       <value>4:3</value>
                       <value>5:4</value>
                       <value>16:9</value>
                   </choice>
                   </attribute>
               </element>
           </element>
           <element name="lens">
               <attribute name="type">
                   <choice>
                       <value>rectilinear</value>
                       <value>fisheye</value>
                   </choice>
               </attribute>
               <element name="focal">
                   <data type="float" />
               </element>
           </element>
           <choice>
               <element name="mosaic">
                   <element name="nbPicts">
                       <attribute name="yaw">
                           <data type="int" />
                       </attribute>
                       <attribute name="pitch">
                           <data type="int" />
                       </attribute>
                   </element>
                   <element name="overlap">
                       <attribute name="minimum">
                           <data type="float" />
                       </attribute>
                       <attribute name="yaw">
                           <data type="float" />
                       </attribute>
                       <attribute name="pitch">
                           <data type="float" />
                       </attribute>
                   </element>
               </element>
               <element name="preset">
                   <attribute name="name">
                       <data type="string" />
                   </attribute>
               </element>
           </choice>
       </element>
       <element name="shoot">
           <zeroOrMore>
               <element name="pict">
                   <attribute name="id">
                       <data type="int" />
                   </attribute>
                   <attribute name="bracket">
                       <data type="int" />
                   </attribute>
                   <element name="time">
                       
                           <param name="pattern">\s*\d{4}-\d{2}-\d{2}_\d{2}h\d{2}m\d{2}s\s*</param>
                       
                   </element>
                   <element name="position">
                       <attribute name="yaw">
                           <data type="float" />
                       </attribute>
                       <attribute name="pitch">
                           <data type="float" />
                       </attribute>
                       <attribute name="roll">
                           <data type="float" />
                       </attribute>
                   </element>
               </element>
           </zeroOrMore>
       </element>
   </element>