A Datafield exposes its axes, intensities, and optional error estimates as
NumPy arrays. Save those arrays with NumPy or with a file-format package that
matches the data workflow:
import numpy as np
simulation = ...
result = simulation.simulate()
np.savetxt("intensity.txt", result.intensities())
For TIFF or other detector/image formats, use a dedicated Python package such as Fabio or imageio.
The INT format (.int) is BornAgain’s native ASCII format with full metadata:
# BornAgain Intensity Data
# axis-0
EquiDivision("q_y (1/nm)", 100, -1.5, 1.5)
# axis-1
EquiDivision("q_z (1/nm)", 100, 0, 3)
# data
...
# errorbars
...
This format preserves axis type (EquiDivision, ListScan, etc.), labels, and error bars. It is used internally for BornAgain reference data and persistence tests.
To extract data from Datafield in form of NumPy arrays, use
result = simulation.simulate()
arr_x = result.xCenters() # centers of x bins
arr_y = result.yCenters() # centers of y bins (2D data)
arr_i = result.intensities() # intensities
arr_di = result.errors() # error estimates thereof
To save any such array, use the NumPy method
numpy.savetxt("intensity.txt", arr)