Skip to content

Commit a708a2f

Browse files
authored
Updates outputs correctly (#32)
* Updates outputs correctly * Fixes expected output in plot function * Addresses review comment
1 parent d26e760 commit a708a2f

File tree

4 files changed

+21
-25
lines changed

4 files changed

+21
-25
lines changed

RAT/utils/plotting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def plot_ref_sld(data: PlotEventData, fig: Figure = None, delay: bool = True):
122122
data.sldProfiles,
123123
data.resampledLayers)):
124124

125-
r, sd, sld, layer = map(lambda x: x[0], (r, sd, sld, layer))
125+
sld, layer = map(lambda x: x[0], (sld, layer))
126126

127127
# Calculate the divisor
128128
div = 1 if i == 0 else 2**(4*(i+1))

cpp/rat.cpp

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -916,36 +916,24 @@ OutputResult OutputResultFromStruct5T(const RAT::struct5_T result)
916916
// Copy problem to output
917917
OutputResult output_result;
918918
for (int32_T idx0{0}; idx0 < result.reflectivity.size(0); idx0++) {
919-
py::list inner_list;
920-
for (int32_T idx1{0}; idx1 < result.reflectivity.size(1); idx1++) {
921-
auto tmp = result.reflectivity[idx0 + result.reflectivity.size(0) * idx1];
922-
auto array = py::array_t<real_T, py::array::f_style>({tmp.f1.size(0), tmp.f1.size(1)});
923-
std::memcpy(array.request().ptr, tmp.f1.data(), array.nbytes());
924-
inner_list.append(array);
925-
}
926-
output_result.reflectivity.append(inner_list);
919+
auto tmp = result.reflectivity[idx0];
920+
auto array = py::array_t<real_T, py::array::f_style>({tmp.f1.size(0), tmp.f1.size(1)});
921+
std::memcpy(array.request().ptr, tmp.f1.data(), array.nbytes());
922+
output_result.reflectivity.append(array);
927923
}
928924

929925
for (int32_T idx0{0}; idx0 < result.simulation.size(0); idx0++) {
930-
py::list inner_list;
931-
for (int32_T idx1{0}; idx1 < result.simulation.size(1); idx1++) {
932-
auto tmp = result.simulation[idx0 + result.simulation.size(0) * idx1];
926+
auto tmp = result.simulation[idx0];
933927
auto array = py::array_t<real_T, py::array::f_style>({tmp.f1.size(0), tmp.f1.size(1)});
934928
std::memcpy(array.request().ptr, tmp.f1.data(), array.nbytes());
935-
inner_list.append(array);
936-
}
937-
output_result.simulation.append(inner_list);
929+
output_result.simulation.append(array);
938930
}
939931

940932
for (int32_T idx0{0}; idx0 < result.shiftedData.size(0); idx0++) {
941-
py::list inner_list;
942-
for (int32_T idx1{0}; idx1 < result.shiftedData.size(1); idx1++) {
943-
auto tmp = result.shiftedData[idx0 + result.shiftedData.size(0) * idx1];
933+
auto tmp = result.shiftedData[idx0];
944934
auto array = py::array_t<real_T, py::array::f_style>({tmp.f1.size(0), tmp.f1.size(1)});
945935
std::memcpy(array.request().ptr, tmp.f1.data(), array.nbytes());
946-
inner_list.append(array);
947-
}
948-
output_result.shiftedData.append(inner_list);
936+
output_result.shiftedData.append(array);
949937
}
950938

951939
for (int32_T idx0{0}; idx0 < result.layerSlds.size(0); idx0++) {
@@ -981,8 +969,18 @@ OutputResult OutputResultFromStruct5T(const RAT::struct5_T result)
981969
output_result.resampledLayers.append(inner_list);
982970
}
983971

972+
for (int32_T idx0{0}; idx0 < result.fitNames.size(0); idx0++) {
973+
auto tmp = result.fitNames[idx0];
974+
std::string str(tmp.f1.data(), tmp.f1.size(1));
975+
output_result.fitNames.append(str);
976+
}
977+
978+
output_result.fitParams = py::array_t<real_T>(result.fitParams.size(1));
979+
auto buffer = output_result.fitParams.request();
980+
std::memcpy(buffer.ptr, result.fitParams.data(), output_result.fitParams.size()*sizeof(real_T));
981+
984982
output_result.contrastParams.backgroundParams = py::array_t<real_T>(result.contrastParams.backgroundParams.size(0));
985-
auto buffer = output_result.contrastParams.backgroundParams.request();
983+
buffer = output_result.contrastParams.backgroundParams.request();
986984
std::memcpy(buffer.ptr, result.contrastParams.backgroundParams.data(), output_result.contrastParams.backgroundParams.size()*sizeof(real_T));
987985

988986
output_result.contrastParams.scalefactors = py::array_t<real_T>(result.contrastParams.scalefactors.size(0));
@@ -1357,7 +1355,7 @@ PYBIND11_MODULE(rat_core, m) {
13571355
.def_readwrite("shiftedData", &OutputResult::shiftedData)
13581356
.def_readwrite("layerSlds", &OutputResult::layerSlds)
13591357
.def_readwrite("sldProfiles", &OutputResult::sldProfiles)
1360-
.def_readwrite("resampledLayers)", &OutputResult::resampledLayers)
1358+
.def_readwrite("resampledLayers", &OutputResult::resampledLayers)
13611359
.def_readwrite("calculationResults", &OutputResult::calculationResults)
13621360
.def_readwrite("contrastParams", &OutputResult::contrastParams)
13631361
.def_readwrite("bestFitParams", &OutputResult::fitParams)
12 KB
Binary file not shown.

tests/test_plotting.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import os
22
import re
3-
import csv
43
import pytest
54
import pickle
65
from unittest.mock import patch
76
from unittest.mock import MagicMock
8-
import numpy as np
97
import matplotlib.pyplot as plt
108
from RAT.rat_core import PlotEventData
119
from RAT.utils.plotting import Figure, plot_ref_sld

0 commit comments

Comments
 (0)