33 size_t annolen = 0, datalen = 0;
34 vector<size_t> annosizes, datasizes, labelsizes;
35 annosizes.reserve(aos.size());
36 labelsizes.reserve(aos.size());
37 datasizes.reserve(aos.size()+1);
38 vector<string> labels;
40 annosizes.emplace_back(ao->lengthMeta() - 1);
41 datasizes.emplace_back(ao->lengthContent());
42 annolen += annosizes.back();
43 datalen += datasizes.back();
45 ao->_extractLabels(labels, labelsizes);
47 datasizes.emplace_back(labelsizes.size());
50 size_t annochunk = std::min(annolen, (
size_t)1200);
51 size_t datachunk = std::min(datalen, (
size_t)1500);
60 map<string, EdgeHandlerBasePtr> layout;
61 layout[
"sizeinfo"] = std::make_shared<EdgeHandler<size_t>>();
62 static_pointer_cast<EdgeHandler<size_t>>(layout[
"sizeinfo"])->extend(std::move(annosizes));
63 static_pointer_cast<EdgeHandler<size_t>>(layout[
"sizeinfo"])->extend(std::move(datasizes));
64 static_pointer_cast<EdgeHandler<size_t>>(layout[
"sizeinfo"])->extend(std::move(labelsizes));
69 aoinfo.emplace_back(ao->path());
70 aoinfo.emplace_back(Utils::toUpper(ao->type()));
73 vector<string> annos = ao->serializeMeta();
74 annos.emplace_back(ao->title());
77 vector<double> content = ao->serializeContent();
84 ao->_extractEdges(layout, labels);
88 auto meta =
H5DataSet(h5,
"aoinfo", std::move(aoinfo), _compress);
94 (void)
H5DataSet(h5,
"labels", std::move(labels), _compress);
97 for (
const auto& item : layout) {
98 item.second->writeToFile(item.first, h5, _compress);
YODA_H5::DataSet H5DataSet(YODA_H5::File &h5file, const string &label, vector< T > &&data, bool compress)
Helper method to construct and fill a YODA_H5::DataSet.