MCPcopy Create free account
hub / github.com/PDAL/PDAL / writeTrajectoryFile

Function writeTrajectoryFile

test/unit/filters/GeoreferenceFilterTest.cpp:66–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66std::string writeTrajectoryFile()
67{
68 using DimId = Dimension::Id;
69
70 PointTable table;
71 PointLayoutPtr layout = table.layout();
72 layout->registerDim(DimId::GpsTime);
73 layout->registerDim(DimId::Roll);
74 layout->registerDim(DimId::Pitch);
75 layout->registerDim(DimId::Azimuth);
76 layout->registerDim(DimId::WanderAngle);
77 layout->registerDim(DimId::X);
78 layout->registerDim(DimId::Y);
79 layout->registerDim(DimId::Z);
80
81 // WGS84 trajectory (EPSG:4979)
82 // X = longitude in radians, Y = latitude in radians, Z = altitude in meters
83 // Approximate position: Paris, France (2.3522° E, 48.8566° N, 50m alt)
84 const double lon_rad = 0.041015; // ~2.35° in radians
85 const double lat_rad = 0.852478; // ~48.85° in radians
86 const double alt_m = 50.0;
87
88 PointViewPtr view(new PointView(table));
89 view->setField(DimId::GpsTime, 0, 0.0);
90 view->setField(DimId::Roll, 0, 0.0);
91 view->setField(DimId::Pitch, 0, 0.0);
92 view->setField(DimId::Azimuth, 0, 0.0);
93 view->setField(DimId::WanderAngle, 0, 0.0);
94 view->setField(DimId::X, 0, lon_rad);
95 view->setField(DimId::Y, 0, lat_rad);
96 view->setField(DimId::Z, 0, alt_m);
97
98 view->setField(DimId::GpsTime, 1, 10.0);
99 view->setField(DimId::Roll, 1, 0.0);
100 view->setField(DimId::Pitch, 1, 0.0);
101 view->setField(DimId::Azimuth, 1, 0.0);
102 view->setField(DimId::WanderAngle, 1, 0.0);
103 view->setField(DimId::X, 1, lon_rad);
104 view->setField(DimId::Y, 1, lat_rad);
105 view->setField(DimId::Z, 1, alt_m);
106
107 BufferReader reader;
108 reader.addView(view);
109
110 std::string filename = Support::temppath("georeference_trajectory.bpf");
111 FileUtils::deleteFile(filename);
112
113 Options writerOpts;
114 writerOpts.add("filename", filename);
115
116 BpfWriter writer;
117 writer.setOptions(writerOpts);
118 writer.setInput(reader);
119 writer.prepare(table);
120 writer.execute(table);
121 return filename;
122}
123

Callers 1

TESTFunction · 0.85

Calls 8

temppathFunction · 0.85
deleteFileFunction · 0.85
registerDimMethod · 0.80
setOptionsMethod · 0.80
setFieldMethod · 0.45
addMethod · 0.45
prepareMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected