void InfoKernel::dump(MetadataNode& root) { if (m_showSchema) root.add(m_manager->pointTable().toMetadata().clone("schema")); if (m_PointCloudSchemaOutput.size() > 0) { #ifdef PDAL_HAVE_LIBXML2 XMLSchema schema(m_manager->pointTable().layout()); std::ostream *out = FileUtils::createFile(m_PointCloudSchemaOutput); std::string xml(schema.xml()); out->write(xml.c_str(), xml.size()); FileUtils::closeFile(out); #else std::cerr << "libxml2 support not enabled, no schema is produced" << std::endl; #endif } if (m_showStats) root.add(m_statsStage->getMetadata().clone("stats")); if (m_pipelineFile.size() > 0) PipelineWriter::writePipeline(m_manager->getStage(), m_pipelineFile); if (m_pointIndexes.size()) { PointViewSet viewSet = m_manager->views(); assert(viewSet.size() == 1); root.add(dumpPoints(*viewSet.begin()).clone("points")); } if (m_queryPoint.size()) { PointViewSet viewSet = m_manager->views(); assert(viewSet.size() == 1); root.add(dumpQuery(*viewSet.begin())); } if (m_showMetadata) { // If we have a reader cached, this means we // weren't reading a pipeline file directly. In that // case, use the metadata from the reader (old behavior). // Otherwise, return the full metadata of the entire pipeline if (m_reader) root.add(m_reader->getMetadata().clone("metadata")); else root.add(m_manager->getMetadata().clone("metadata")); } if (m_boundary) { PointViewSet viewSet = m_manager->views(); assert(viewSet.size() == 1); root.add(m_hexbinStage->getMetadata().clone("boundary")); } }
void InfoKernel::dump(MetadataNode& root) { if (m_showSchema) root.add(Utils::toMetadata(m_manager->pointTable()).clone("schema")); if (m_PointCloudSchemaOutput.size() > 0) { #ifdef PDAL_HAVE_LIBXML2 XMLSchema schema(m_manager->pointTable().layout()); std::ostream *out = FileUtils::createFile(m_PointCloudSchemaOutput); std::string xml(schema.xml()); out->write(xml.c_str(), xml.size()); FileUtils::closeFile(out); #else std::cerr << "libxml2 support not enabled, no schema is produced" << std::endl; #endif } if (m_showStats) root.add(m_statsStage->getMetadata().clone("stats")); if (m_pipelineFile.size() > 0) PipelineWriter::writePipeline(m_manager->getStage(), m_pipelineFile); if (m_pointIndexes.size()) { PointViewSet viewSet = m_manager->views(); assert(viewSet.size() == 1); root.add(dumpPoints(*viewSet.begin()).clone("points")); } if (m_queryPoint.size()) { PointViewSet viewSet = m_manager->views(); assert(viewSet.size() == 1); root.add(dumpQuery(*viewSet.begin())); } if (m_showMetadata) root.add(m_reader->getMetadata().clone("metadata")); if (m_boundary) { PointViewSet viewSet = m_manager->views(); assert(viewSet.size() == 1); root.add(m_hexbinStage->getMetadata().clone("boundary")); } }