本文整理汇总了C++中nexus::File::isDataInt方法的典型用法代码示例。如果您正苦于以下问题:C++ File::isDataInt方法的具体用法?C++ File::isDataInt怎么用?C++ File::isDataInt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nexus::File
的用法示例。
在下文中一共展示了File::isDataInt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadSampleLog
/** Loads an entry from a previously-open NXS file as a log entry
* in the workspace's run.
*
* @param file: NXS file handle. MUST BE PASSED BY REFERENCE otherwise there
* occurs a segfault.
* @param entry_name, entry_class: name and class of NXlog to open.
*/
void LoadLogsFromSNSNexus::loadSampleLog(::NeXus::File& file, std::string entry_name, std::string entry_class)
{
// whether or not to overwrite logs on workspace
bool overwritelogs = this->getProperty("OverwriteLogs");
file.openGroup(entry_name, entry_class);
// Validate the NX log class.
map<string, string> entries = file.getEntries();
if ((entries.find("value") == entries.end()) ||
(entries.find("time") == entries.end()) )
{
g_log.warning() << "Invalid NXlog entry " << entry_name << " found. Did not contain 'value' and 'time'.\n";
file.closeGroup();
return;
}
::NeXus::Info info;
//Two possible types of properties:
vector<double> values;
vector<int> values_int;
bool isTimeSeries = false;
bool isInt = false;
file.openData("value");
//Get the units of the property
std::string units("");
try
{
file.getAttr("units", units);
}
catch (::NeXus::Exception &)
{
//Ignore missing units field.
units = "";
}
//If there is more than one entry, it is a timeseries
info = file.getInfo();
//isTimeSeries = (info.dims[0] > 1);
isTimeSeries = true;
Timer timer1;
try
{
//Get the data (convert types if necessary)
if (file.isDataInt())
{
isInt = true;
file.getDataCoerce(values_int);
// if (values_int.size() == 1)
// {
// WS->mutableRun().addProperty(entry_name, values_int[0], units);
// }
}
else
{
//Try to get as doubles.
file.getDataCoerce(values);
// if (values.size() == 1)
// {
// WS->mutableRun().addProperty(entry_name, values[0], units);
// }
}
}
catch (::NeXus::Exception &e)
{
g_log.warning() << "NXlog entry " << entry_name << " gave an error when loading 'value' data:'" << e.what() << "'.\n";
file.closeData();
file.closeGroup();
return;
}
if (VERBOSE) std::cout << "getDataCoerce took " << timer1.elapsed() << " sec.\n";
file.closeData();
if (isTimeSeries)
{
// --- Time series property ---
//Get the times
vector<double> time_double;
vector<DateAndTime> times;
try {
file.openData("time");
}
catch (::NeXus::Exception &e)
//.........这里部分代码省略.........