Lidar Data Requirements
By organizing LiDAR data into a single JSON file, you can quickly import all required reconstruction data into MipMap Desktop with one click, or pass it to the MipMap SDK for fully automatic textured model and Gaussian splatting reconstruction.
Required data includes:
- ✅ Point Cloud Data: Usually point cloud data in LAS format, with timestamps recorded in the gps_time field at acquisition time
- ✅ Image Data: Image collection, including ID, path, timestamp, position and attitude angle data
- ✅ Camera Parameters: Camera focal length, principal point internal parameters, and distortion parameters
LIDAR Reconstruction Parameters
| Parameter Name | Type | Required | Description |
|---|---|---|---|
coordinate_system | JSON | Yes | Coordinate system of image POS, see coordinate_system for details |
camera_meta_data | JSON | Yes | Camera parameters, see camera_meta_data for details |
image_meta_data | JSON | Yes | Image collection, see image_meta_data for details |
lidar_data | JSON | Yes | Lidar data, see lidar_data for details |
coordinate_system Object
| Field Name | Type | Description | Example Value |
|---|---|---|---|
type | int | Coordinate system type: 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF | 2 |
type_name | string | Coordinate system type name (optional, auxiliary description) | "Geographic" |
label | string | Coordinate system name (optional) | "WGS 84" |
epsg_code | int | EPSG code (required for geographic/projected/geocentric coordinate systems) | 4326 |
wkt | string | WKT string (optional, alternative to epsg_code) | "..." |
origin_point | array[3] | Origin WGS84 coordinates [longitude, latitude, elevation] (required only when type=0 LocalENU) | [114.12, 22.12, 0] |
offset | array[3] | Coordinate system origin offset (optional) | [0, 0, 0] |
Below are the most common WGS84 and CGCS2000 coordinate systems:
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Geographic",
"label": "WGS 84", // Coordinate system name
"epsg_code": 4326 // EPSG code
}
{
"type": 3, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Projected",
"label": "WGS 84 / UTM zone 50N", // Coordinate system name
"epsg_code": 32650 // EPSG code
}
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Geographic",
"label": "CGCS2000", // Coordinate system name
"epsg_code": 4490 // EPSG code
}
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Projected",
"label": "CGCS2000 / 3-degree Gauss-Kruger CM 114E", // Coordinate system name
"epsg_code": 4547 // EPSG code
}
camera_meta_data Object
| Field Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | Camera unique ID |
meta_data | object | Yes | Camera metadata, see table below |
meta_data sub-field description:
| Field Name | Type | Required | Description |
|---|---|---|---|
projection_model | int | Yes | Lens model: 0-perspective lens (k1,k2,k3,p1,p2); 1-fisheye lens (k1,k2,k3,k4) |
camera_name | string | Yes | Camera name |
width | int | Yes | Sensor width (pixels) |
height | int | Yes | Sensor height (pixels) |
parameters | array | Yes | Camera internal parameter group (perspective camera order: fx, fy, cx, cy, k1, k2, k3, p1, p2; fisheye camera order: fx fy cx cy k1 k2 k3 k4) |
constant_parameters | array | No | Array of parameter indices to fix camera internal parameters during AT solution, specified according to the parameter order in parameters (index starts from 0), e.g., for perspective camera, specifying [0,1,2,3,4,5,6,7,8] means fixing all parameters |
Perspective lens
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"projection_model": 0, // Perspective camera
"camera_name": "common",
"width": 5280,
"height": 3956,
"parameters": [
3713.29, // fx
3713.29, // fy
2647.02, // cx
1969.28, // cy
-0.11257524, // k1
0.01487443, // k2
-0.00008572, // k3
1e-7, // p1
-0.02706411 // p2
]
}
}
]
Fisheye lens
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "fisheye", // Fisheye camera
"projection_model": 1,
"width": 3600,
"height": 3600,
"parameters": [
982.7593599212141, // fx
982.7593599212141, // fy
1747.6373897301492, // cx
1806.4116030074354, // cy
0.03702410479839055, // k1
-0.016007338300982825, // k2
-1.0884582901480562e-05, // k3
-9.773097281093723e-05 // k4
]
}
}
]
image_meta_data Object
| Field Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | Image unique ID |
path | string | Yes | Image absolute path |
meta_data | object | Yes | Image metadata, see table below |
meta_data sub-field description:
| Field Name | Type | Required | Description |
|---|---|---|---|
width | int | Yes | Image width (pixels) |
height | int | Yes | Image height (pixels) |
camera_id | int | Yes | Corresponding camera ID |
timestamp | double | Yes | Timestamp of image acquisition time; must match the time recorded in the gps_time field of the LAS point cloud. When this attribute is set, trajectory data is not required |
pos | array[3] | Yes | POS position [longitude/X, latitude/Y, elevation/Z] |
pos_sigma | array[3] | Yes | POS position accuracy: centimeter-level RTK [0.03,0.03,0.06]; decimeter-to-meter level [0.5,0.5,1]; meter level and above [2.0,2.0,5.0]. LIDAR data recommends centimeter-level accuracy |
orientation | array[9] | No | 3x3 rotation matrix (9 values, row-major, unit vectors, world to camera). Strongly recommended to specify for fisheye images |
position_constant | bool | No | Whether to fix position (true/false); fixed position means AT will not optimize or change image position, keeping input values |
lidar_data Data
| Field Name | Type | Description |
|---|---|---|
coordinate_system | JSON | Coordinate system definition for lidar data |
laser_meta_data | array | List of lidar point cloud file metadata |
laser_meta_data Sub-fields
| Field Name | Type | Description |
|---|---|---|
id | int | LAS point cloud data ID |
path | string | LAS point cloud file path (supports LAS format) |
Example:
{
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "Left",
"projection_model": 1,
"width": 3600,
"height": 3600,
"parameters": [
982.7593599212141,
982.7593599212141,
1747.6373897301492,
1806.4116030074354,
0.03702410479839055,
-0.016007338300982825,
-1.0884582901480562e-05,
-9.773097281093723e-05
]
}
},
{
"id": 2,
"meta_data": {
"camera_name": "Right",
"projection_model": 1,
"width": 3600,
"height": 3600,
"parameters": [
982.7593599212141,
982.7593599212141,
1747.6373897301492,
1806.4116030074354,
0.03702410479839055,
-0.016007338300982825,
-1.0884582901480562e-05,
-9.773097281093723e-05
]
}
}
],
"image_meta_data":[
{
"id": 1,
"path": "\\left\\2390-195042-472_00395-L.JPG",
"meta_data": {
"width": 3600,
"height": 3600,
"camera_id": 1,
"timestamp": 1.0000,
"pos": [
-2272303.077314121,
5011055.355739306,
3215292.943560472
],
"pos_sigma": [0.03,0.03,0.06],
"orientation": [
0.8929275412022056,
0.43070972182403255,
0.13103259781004117,
-0.4500241512548592,
0.8457917052937085,
0.2865565468519331,
0.012596406230632032,
-0.31484206641207435,
0.9490604847782084
]
}
},
{
"id": 2,
"path": "\\right\\2390-195042-472_00395-R.JPG",
"meta_data": {
"width": 3600,
"height": 3600,
"camera_id": 2,
"timestamp": 2.0000,
"pos": [
-2272303.117693735,
5011055.368901664,
3215292.967908075
],
"pos_sigma": [0.03,0.03,0.06],
"orientation": [
0.8918935649712837,
0.435497387453275,
0.12193397510204676,
-0.4504120798442928,
0.8311302214603127,
0.3261157973874772,
0.040679566039387514,
-0.34578111645476495,
0.9374329802231962
]
}
}
],
"lidar_data": {
"coordinate_system": {
"type": 3,
"epsg_code": 32632
},
"laser_meta_data": [ // Lidar point cloud file list
{
"id": 1, // File ID
"path": "C:/path/to/file1.las" // Point cloud file path
},
{
"id": 2, // File ID
"path": "C:/path/to/file2.las" // Point cloud file path
}
]
}
}