Export a Datafield

Save from Python

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.

File formats

INT format

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.

Export to NumPy

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)