BlocksExchange XML/XMLZ 格式
BlocksExchange XML 格式是 Bentley 提供的一种开放交换格式,用于在 ContextCapture Master 中导入/导出区块定义。
XML 文件可以包括一个或多个区块的属性。
XMLZ 格式是 XML 格式的扩展,为方便起见添加了文件压缩 (zip)。
格式规范
<?xml version="1.0" encoding="utf-8"?> <BlocksExchange version="2.1"> <!-- Definition of one or several useful spatial reference systems (SRS). --> <!-- Here, we need the French Lambert 93. --> <SpatialReferenceSystems> <SRS> <!-- In the sequel, the SRS is referred to by this ID. --> <Id>0</Id> <!-- User-friendly SRS name. --> <Name>Lambert 93</Name> <!-- The spatial reference system definition can be either a Well Known Text definition (e.g. WGS84), "EPSG: ", a PROJ.4 definition, or the path to a file containing such a definition. --> <Definition>EPSG:2154</Definition> </SRS> </SpatialReferenceSystems> <!-- Optional: a path to prefix image paths when they are not absolute (default: use the directory of the exchange file). --> <BaseImagePath>D:\data\Paris2012sample\Images</BaseImagePath> <!-- Block definition. A single file can define several blocks. --> <Block> <!-- Block name and description are optional. --> <Name>Paris2012</Name> <Description>Small sample of the Paris 2012 dataset</Description> <!-- The type of block is optional. Supported types are: Aerial, Nadir and Orbit. --> <Type>Aerial</Type> <!-- Photo downsampling rate can be optionally provided with <PhotoDownsamplingRate> tag --> <!-- Minmum and maximum viewing distance can be optionally provided with <MinimumViewingDistance> and <MaximumViewingDistance> tags --> <!-- ID of the base SRS used in the block. By default, the spatial reference system is assumed to be a local Cartesian coordinate system. --> <SRSId>0</SRSId> <Photogroups> <!-- All photos taken using the same physical camera, with identical focal length and dimensions must be gathered in a photogroup. --> <Photogroup> <!-- Optionally, a different spatial reference system can be specified for each photogroup with the <SRSId> tag. By default, the SRS of the block is assumed. --> <!-- Optionally, a name with the <Name> tag, and a description with a <Description> tag. --> <Name>UCX</Name> <!-- Image dimensions, in pixels. --> <ImageDimensions> <Width>9420</Width> <Height>14430</Height> </ImageDimensions> <!-- Optional camera model type Perspective or Fisheye (Perspective type is used if this tag is unspecified). --> <CameraModelType>Perspective</CameraModelType> <!-- Optional camera model band Visible or Thermal (Visible type is used if this tag is unspecified). --> <CameraModelBand>Visible</CameraModelBand> <!-- Sensor's largest dimension, in millimeters. --> <!-- Sensor's pixel size, in millimeters, can be substituted for this field. --> <!-- For this dataset, it would be: --> <!-- <PixelSize>0.0072</PixelSize> --> <SensorSize>103.896</SensorSize> <!-- Focal length, in millimeters. This can be either the nominal specification or a closer estimate. --> <FocalLength>100.735601903992</FocalLength> <!-- Optionally, focal length, in pixels. Can replace FocalLength and SensorSize data. --> <!-- For this dataset, it would be: --> <!-- <FocalLengthPixels>13991.05582</FocalLengthPixels> --> <!-- Optionally, specification of the xy-axis of the camera sensor for pose rotation and for any position given in millimeter (i.e. <PrincipalPoint> and <Measurement> when using <xmm> and <ymm>) --> <!-- Possible values: XRightYDown (default), XRightYUp (more frequent in photogrammetry), XLeftYDown, XLeftYUp, XDownYRight, XDownYLeft, XUpYRight, XUpYLeft --> <CameraOrientation>XRightYDown</CameraOrientation> <!-- Principal point, with respect to the sensor center. This field is optional: by default, the sensor center is used as an initial estimate of the principal point. --> <PrincipalPoint> <!-- 2D image position of the principal point, in pixels. The origin is the center of the upper-left image pixel, the x-axis is oriented to the right side of the image, and the y-axis is oriented to the bottom of the image. --> <x>4683.755692</x> <y>7223.0141002</y> <!-- Alternatively, a 2D position with respect to the sensor center can be specified, in millimeters. In this case, the xy-axis are oriented according to CameraOrientation. --> <!-- For this dataset, it would be: --> <!-- <xmm>-0.1853590176</xmm> --> <!-- <ymm>0.06130152144</ymm> --> </PrincipalPoint> <!-- Lens distortion coefficients. This field is optional: by default, no distortion is assumed as an initial estimate. --> <!-- Distortion coefficients correspond to the classical Brown's distortion model, as described in http://en.wikipedia.org/wiki/Distortion_(optics) . --> <Distortion> <K1>-0.0010041516639</K1> <K2>0.0056007056563</K2> <K3>-0.009874171117100001</K3> <P1>0</P1> <P2>0</P2> </Distortion> <!-- Fisheye focal matrix used only for the camera model type Fisheye. --> <FisheyeFocalMatrix> <M_00>1960</M_00> <M_01>0</M_01> <M_10>0</M_10> <M_11>1960</M_11> </FisheyeFocalMatrix> <!-- Fisheye distortion coefficients used only for the camera model type Fisheye. --> <FisheyeDistortion> <P0>0</K1> <P1>1</K2> <P2>0</K3> <P3>0</P1> <P4>0</P2> </FisheyeDistortion> <Photo> <!-- The ID of a photograph must be unique over the whole block (in other words, even across other photogroups). --> <Id>146</Id> <!-- Path of the image. If not absolute, it is considered to be relative to BaseImagePath if defined, or otherwise to the directory of the exchange file. --> <ImagePath>071_2810.jpg</ImagePath> <!-- Optional path of the image mask. If not absolute, it is considered to be relative to BaseImagePath if defined, or otherwise to the directory of the exchange file. --> <!-- <MaskPath>071_2810_msk.jpg</MaskPath> --> <!-- Exterior orientation of the camera, as estimated by navigation devices or aerotriangulation. This field is optional. --> <!-- Optional component Id: 1 is the main component (default), 0 is no component. Photos with incomplete pose cannot belong to the main component --> <!-- <Component>1</Component> --> <Pose> <!-- 3D rotation of the camera in the spatial reference system defined above. --> <!-- It defines the rotation matrix transforming world coordinates (in the specified SRS) into camera coordinates (with axes defined by the CameraOrientation of the photogroup). --> <!-- The rotation is optional: the pose can be limited to the 3D position of the camera center (e.g. when GPS position only is available). --> <Rotation> <!-- It can be specified in one of the four representations below: --> <!-- 1. A 3x3 matrix, using the <M_ij> tags, where M_ij denotes the coefficient of the (i+1)th row and the (j+1)th column of the rotation matrix. --> <M_00>-0.9999982912233401</M_00> <M_01>-0.001636319085375301</M_01> <M_02>-0.0008602425863163225</M_02> <M_10>-0.001631068695467463</M_10> <M_11>0.9999802528616577</M_11> <M_12>-0.00606906089589293</M_12> <M_20>0.0008701565192966738</M_20> <M_21>-0.006067647409696231</M_21> <M_22>-0.9999812130648239</M_22> <!-- 2. Omega/Phi/Kappa angles, in degrees, using the <Omega>, <Phi>, <Kappa> tags. Please refer to the formula in the camera model document. --> <!-- For this dataset, it would be: --> <!-- <Omega>179.6523471469934</Omega> --> <!-- <Phi>0.04985630236313049</Phi> --> <!-- <Kappa>179.9065465708369</Kappa> --> <!-- 3. Heading/Pitch/Roll angles, in degrees using the <Heading>, <Pitch>, <Roll> tags. Please refer to the formula in the camera model document. --> <!-- 4. Yaw/Pitch/Roll angles, in degrees using the <Yaw>, ,Pitch>, <Roll> tags. Please refer to the formula in the camera model document. --> </Rotation> <!-- 3D position of the camera center in the spatial reference system defined above. --> <!-- Depending on the SRS, x/y may stand either for longitude/latitude, for map projection coordinates, or for something else. --> <!-- Depending on the SRS, z may stand either for a geoid height, for an orthometric height, or for something else. --> <Center> <x>651999.7159189156</x> <y>6863073.633923346</y> <z>1318.897690166719</z> </Center> </Pose> <!-- Optional depth information can be provided with <NearDepth>, <MedianDepth>, and <FarDepth> tags --> <!-- Optional Exif data (each exif data property is optional) --><!-- <ExifData> <ImageDimensions> <Width>4000</Width> <Height>3000</Height> </ImageDimensions> <PixelDimensions> <Width>0.02</Width> <Height>0.02</Height> </PixelDimensions> <GPS> <Latitude>45.5686684</Latitude> <Longitude>2.6551104</Longitude> <Altitude>1589.5469</Altitude> </GPS> <FocalLength>24</FocalLength> <FocalLength35mmEq>36</FocalLength35mmEq> <Make>FUJIFILM</Make> <Model>FinePix S3Pro</Model> <LensModel>FinePix S3Pro</LensModel> <DateTimeOriginal>2015-04-29T06:40:26</DateTimeOriginal> </ExifData> --> </Photo> ... </Photogroup> </Photogroups> <!-- Control points are highly recommended for accurate positioning. --> <ControlPoints> <!-- Optionally, a different spatial reference system can be specified with the <SRSId> tag. By default, the SRS of the block is assumed. --> <ControlPoint> <!-- Control point name and description are optional. --> <Name>Control point #1</Name> <!-- Optionally, a different spatial reference system can be specified for each control point with the <SRSId> tag. By default, the SRS of the control points container is assumed. --> <!-- 3D position of the control point in the active spatial reference system. --> <!-- Depending on the SRS, x/y may stand either for longitude/latitude, for map projection coordinates, or for something else. --> <!-- Depending on the SRS, z may stand either for a geoid height, for an orthometric height, or for something else. --> <Position> <x>652788.0525588237</x> <y>6863015.362218254</y> <z>78.07000000122935</z> </Position> <!-- Image measurements. --> <Measurement> <!-- ID of the photo where the measurement is taken. The measurements of a control point must have different photo IDs. --> <PhotoId>151</PhotoId> <!-- 2D image position of the measurement, in pixels. The origin is the center of the upper-left image pixel, the x-axis is oriented to the right side of the image, and the y-axis is oriented to the bottom of the image. --> <!-- Alternatively, a 2D position with respect to the principal point, in millimeters. In this case, the xy-axis are oriented according to the CameraOrientation of the corresponding photogroup. --> <!-- For this dataset, it would be: --> <!-- <xmm>18.6231910176</xmm> --> <!-- <ymm>-4.48973352144</ymm> --> <x>7270.31</x> <y>6599.44</y> </Measurement> ... </ControlPoint> <ControlPoint> <Name>Control point #2</Name> <Position> <x>652123.2211166573</x> <y>6863245.976366176</y> <z>80.07999999914318</z> </Position> <!-- If specified, a control point may be a check point (default: false)--> <CheckPoint>true</CheckPoint> <!-- If specified, a control point may have accuracies --> <HorizontalAccuracy>0.01</HorizontalAccuracy> <VerticalAccuracy>0.10</VerticalAccuracy> <Measurement> <PhotoId>146</PhotoId> <x>3296.56</x> <y>9253.75</y> </Measurement> ... </ControlPoint> <ControlPoint> <Name>Control point #3</Name> <!-- If specified, a control point might be Full (default), Horizontal or Vertical --> <Category>Horizontal</Category> <Position> <!-- no z position --> <x>652365.1205012415</x> <y>6863549.148163618</y> </Position> <HorizontalAccuracy>0.01</HorizontalAccuracy> <!-- no vertical accuracy --> <Measurement> <PhotoId>95</PhotoId> <x>3178.26</x> <y>4020.21</y> </Measurement> ... </ControlPoint> ... </ControlPoints> <!-- Known tie points may be used to refine an aerotriangulation. --> <!-- Uncomment this section before import to get a single tie point in the imported block. Please note that a reconstruction created from a such block will fail. --> <!--<TiePoints> --><!-- Optionally, a different spatial reference system can be specified with the <SRSId> tag. By default, the SRS of the block is assumed. --><!-- <TiePoint> --><!-- Tie point name and description are optional. --><!-- --><!-- Optionally, a different spatial reference system can be specified for each tie point with the <SRSId> tag. By default, the SRS of the tie points container is assumed. --><!-- --><!-- Optional 3D position of the tie point in the active spatial reference system. --><!-- --><!-- Depending on the SRS, x/y may stand either for longitude/latitude, for map projection coordinates, or for something else. --><!-- --><!-- Depending on the SRS, z may stand either for a geoid height, for an orthometric height, or for something else. --><!-- <Position> <x>652119.8871409688</x> <y>6863304.305716386</y> <z>87.79328384995461</z> </Position> --><!-- Optional tie point color. --><!-- <Color> <Red>0.59</Red> <Green>1.0</Green> <Blue>0.0</Blue> </Color> --><!-- Image measurements. --><!-- <Measurement> --><!-- Optional measurement type User or Automatic (Automatic type is used if this tag is unspecified). --><!-- <Type>Automatic</Type> --><!-- ID of the photo where the measurement is taken. The measurements of a tie point must have different photo IDs. --><!-- <PhotoId>146</PhotoId> --><!-- 2D image position of the measurement, in pixels. The origin is the center of the upper-left image pixel, the x-axis is oriented to the right side of the image, and the y-axis is oriented to the bottom of the image. --><!-- --><!-- Alternatively, a 2D position with respect to the principal point, in millimeters. In this case, the xy-axis are oriented according to the CameraOrientation of the corresponding photogroup. --><!-- <x>3324.26001</x> <y>9930.269531</y> </Measurement> <Measurement> <PhotoId>158</PhotoId> <x>9079.006836000001</x> <y>9902.772461000001</y> </Measurement> <Measurement> <PhotoId>162</PhotoId> <x>6240.366211</x> <y>9896.118164</y> </Measurement> </TiePoint> </TiePoints>--> <!-- Optional block's positioning constraints based on user tie point (0 based indices). --> <!-- Each constraint is optional. --> <!--<PositioningConstraints> <OriginConstraint> <O>2</O> </OriginConstraint> <ScaleConstraint> <A>0</A> <B>3</B> <DistanceAB>56.350</DistanceAB> </ScaleConstraint> <AxisConstraint> <A>0</A> <B>3</B> <AxisAB>z</AxisAB> --><!-- x, y, or z --><!-- </AxisConstraint> <OrientationConstraint> <A>0</A> <B>3</B> <C>2</C> <AxisAB>z</AxisAB> --><!-- x, y or z --><!-- <AxisSideC>upperX</AxisSideC> --><!-- lowerX, upperX, lowerY, upperY, lowerZ, or upperZ --><!-- </OrientationConstraint> </PositioningConstraints>--><PointClouds> <PointClouds> <PointCloud> <Name>PointCloud name</Name> <Description>Description of the pointcloud</Description> <Path>Absolute or relative path to the POD pointcloud file</Path> <CreatedDateTime>2017-05-26T15:59:08</CreatedDateTime> <SRS>SRS definition</SRS> (can be empty) <BoundingBox> <XMin></XMin> <XMax></XMax> <YMin></YMin> <YMax></YMax> <ZMin></ZMin> <ZMax></ZMax> </BoundingBox> <MinResolution>0.0232077879728498</MinResolution> <MedResolution>0.0480807854162596</MedResolution> <MeanResolution>0.0779783209951879</MeanResolution> <MaxResolution>4.71837838822922</MaxResolution> <ColorMode></ColorMode><!-- UseIntensity or UseColor or None --> <Scans> <Scan> <Name>Scan name</Name> <NumPoints>320519</NumPoint> <Attributes>2</Attributes> <!-- If static scan --> <SourcePosition> <x>0.05</x> <y>18.59</y> <z>58.369</z> </SourcePosition> <!-- If mobile scan --> <Trajectories> <Trajectory> <Point> <x>0.05</x> <y>18.59</y> <z>58.369</z> </Point> … </Trajectory> <Trajectories> </Scan> </Scans </PointCloud> </PointClouds> </Block> </BlocksExchange>
您可以在 ContextCapture 安装目录中找到上述示例和规范文件:
有关 ContextCapture 相机型号的详细信息,另请参阅 ContextCapture 相机型号。