Bonjour. Dans cet article, je vais partager quelques-uns des obstacles lorsque vous travaillez avec des données binaires en Python.
Tout d'abord, préparez une fonction pour ouvrir des données binaires. (lecture numpy)
def open_grd(gpv_file):
with open(gpv_file, 'rb') as ifile:
data = np.fromfile(ifile, dtype='>f', sep = '')
return data
Afin de tracer les données renvoyées ici, les données sont mises en forme dans un système de grille. Au préalable, il est considéré que les données sont stockées selon les conditions suivantes.
data_info = {
'nx' : 150,
'ny' : 100,
'data_path' : './your_data.grd'
}
data = open_grd(data_info['data_path']).reshape(
data_info['ny'], data_info['nx'], order='C' #! or 'F'
)
Si vous faites cela, vous pouvez ou non être en mesure de le faire correctement, même si le tableau de données est le même, selon qu'il s'agit de données de distribution ou de données créées par vous-même dans Fortran. En guise de solution, j'ai confirmé que l'ordre de conversion devait être spécifié à la fin de la dernière instruction, remodeler.
ndarray.L'argument d'ordre de conversion de remodelage est order par défaut='C'Il est devenu.
Par conséquent, il est nécessaire de définir ```order = 'F'``` pour les données binaires créées par vous-même en utilisant Fortran ou autre.
J'espère pouvoir aider les personnes en difficulté de la même manière.
Merci d'avoir regardé jusqu'à la fin.
## référence
-Comment utiliser le remodelage pour convertir la forme du tableau NumPy ndarray
https://note.nkmk.me/python-numpy-reshape-usage/
Recommended Posts