[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000113] reading binary files



��¼�Ǥ�.

Ruby ���ܤ�ȯ�䤵�줿�Ȥ����� nmd_array ���Ƥߤ褦�Ȼפ�, ��Ϥ��
�ǡ��������ä��Х��ʥ�ե�����(�ȤϤ��äƤ�ñ�ʤ�ñ���٤ο��ͤθǤޤ�
�Ǥ���ʾ�ξ���������ʤ�)���ɤ߹���Ǥ���򤽤Τޤ� contour �������
�褦�Ȥ��ޤ���.

���Τ��ȼ��Τϲ���ͤ����ˤǤ����ΤǤ���, ����ͤ�����

volt = PMDArray.new("Barotropic Volticity","1/s",londim,latdim)
for i in 0..nlat-1
  for j in 0..nlon-1
    volt[j,i] = file_data.read(4).unpack('f')
  end
end

�Ȥ����Τ��ؤȤʤä�, �ǡ������ɤ߹��ߤˤ�Τ��������֤������äƤ��ޤ�
�ޤ�. ������礭���� 256*128 ���٤ʤ��ԤƤʤ���ʤ��Ǥ���, 512*256 ��
�餤���礭���ˤʤ������(���᤭���Ǥ��뤯�餤)�Ԥ����줿�ꤷ�ޤ�.

����� NArray �������,

tmp = NArray.new(nlon*nlat)
for i in 0..nlon*nlat-1
  tmp[i] = file_data.read(4).unpack('f')
end

�Ȥ����Ȥ�����®���ʤ�ޤ���, ���λ��� tmp ����Ȥ�,

[1.0, 2.0, 3.0]

�ߤ����Τ���Ԥ��Ƥ����Τ�,

[[1.0],[2.0],[3.0]]

�ȤʤäƤ��ޤ��Τ�, NMDArray �Υ᥽�å� import1d �򤽤Τޤ޻Ȥ����Ȥ�
�Ǥ��ޤ���. �ޤ�, NMDArray �� 1 ��������ؤ������� 2 ���������Ʊ�ͤ�
���֤�������ޤ�. 

�Ȥ������ȤʤΤ�, ���ξ�礪���餯¿��������ؤ�������Χ®�ʳ��ˤʤ��
���Ȼפ��ΤǤ���, �����˾�˽񤤤��褦�������λ��������Ԥ���Ƥ���Τ�
��ʬ����ʤ��Τ�, �ե����뤫����ɤ߹���, ¿��������ؤ������� C �Ǽ�
���������(�ǽ�Ū�ˤϤ�������ɬ�פ�����Ȥϻפ��ΤǤ���)�ɤ����ä���
�ˤǹԤʤ��Τ������ʤΤ����ޤ������Ƥ��ʤ��Τ�, �����Ǻ�Ȥ��ߤޤäƤ�
�ޤ��ޤ���. 

�ǡ����β��Ϥ򤹤�Ȥ�����ߤ�, ��ʬ���ºݤ˺��ԤäƤ��뤳�ȤΤۤȤ��
������Ĵ�´ؿ�Ÿ�����ͳ����ΤǤۤȤ�ɤ������Ƥ��ޤ�.

����, ���꤫���Υ��ޤ���, ���󥿥饯�ƥ��� Ruby(irb) ��Ȥ���, ��Ǿ
�饤�֥��⥤�󥿥饯�ƥ��֤˸Ƥ٤�Τ����򤤤Ȼפ��ޤ���. ����˴ط�
���륤�󥿥ե������򤦤ޤ��ѰդǤ����, Ŭ���ʥǡ�����޼����Ƥ��η��
�򸫤Ƥ���, ���˸�������Τ�Ƚ�Ǥ���, �����޼�����Ȥ������Ȥ�������
�Ǥ��������ʵ������ޤ�. �Ŀ�Ū�ˤ�, �ष�����ä������˶�̣�����äƤ���
��.

���Ƥ������᡼��Ǥ��ߤޤ���.

----
 Keep It Simple, Stupid.
 Yuji Kitamura <kitamura@xxxxxx>
 Dept. Earth & Planetary Physics, Graduate School of Science, Univ. of Tokyo