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

[dennou-ruby:000114] Re: 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 ��
>> �餤���礭���ˤʤ������(���᤭���Ǥ��뤯�餤)�Ԥ����줿�ꤷ�ޤ�.

���ˤ�ʬ����Ȥϻפ��ޤ�����volt[j,i] �Ȥ��ȡ�����ǥå���[i,j]����
������켡������ΰ��֤Ϥɤ��������׻����Ƥ����ؤ�������Ԥ��ޤ����顢
�����٤��ʤ�ޤ�����Ȥ������ ruby �ǽ񤫤줿�饤�֥�꡼�Ǥ����顢��
�����Ƥ��٤��Ϥʤ�ޤ������⤷����դ������Ǥ�����ޤ��ˤϤʤ�Ǥ��礦��
�ȤϤ�����unpack('f') �Ȥ����ΤϤ��äȸ��̤˸Ƥ�ɬ�פ�����ΤǤ��͡���
��ʤ顢�����������פǤ���Τ���¼���󤬤��줿�褦�˺ǽ�ϰ켡������
���ɤ߹��र�餤�Ǥ��礦����

>> ����� 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 ���������Ʊ�ͤ�
>> ���֤�������ޤ�. 

NArray �� ruby �� Array �򤽤Τޤ޷Ѿ����Ĥġ����ر黻�������Ⱥ������
�Ԥä���ΤǤ�����������ʬ�Ϥ����äƤʤ��Τ� Array ��Ʊ���Ϥ��Ǥ�������
�ơ����Τ褦�ˤʤäƤ��ޤ���ͳ�ϡ����դ�����ͤ������顼�Ǥʤ�Ĺ������
���������Ǥ��礦��NMDArray�Τۤ��ⶲ�餯�����Υǡ����ΰ�ˤ� 
[[1.0],[2.0],[3.0]] �����äƤ�������Ȼפ��ޤ�(p volt����Ф狼��ޤ�)��
�������򤹤�ˤ�

    tmp[i] = file_data.read(4).unpack('f')[0]

�Ȥ�����ɤ��Ǥ��礦��NArray�Ǥ������κ�����Ϥ��Ƥʤ��Τǡ����Ԥ����
�����(���ͤΥ����顼�ʳ��Τ��٤�)����������Ƥ��뤫�ɤ����Υ����å���
���Ƥޤ���

�ʤ���unpack('f') ��������֤��Ȥ������Ȥϡ��¤�ʣ���Ĥ���ư�������򤤤�
�ڤ�˽����Ǥ���ΤǤϤʤ��Ǥ���������ʤ���®���ʤ�Ϥ��Ǥ���

>> ¿��������ؤ������� C �Ǽ�
>> ���������(�ǽ�Ū�ˤϤ�������ɬ�פ�����Ȥϻפ��ΤǤ���)

�����Ǥ��͡������դ��Ư�˲ä�äƤ����ͤ��ߤ����ʤȻפ��ޤ���

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

����ѥ��뷿����ˤ���������٤�Ȥ�����������������ˤʤ�ޤ��͡���
�벽��ǽ��¿�����������������Ф�������� IDL ��Ʊ����ɶ�˾��ޤ���

�桹���ܻؤ��ΤϤ���˾�ǡ��ǡ�����¤�Υե쥭���֥�ƥ������������
�����ĤĶ��̲����뤳�Ȥˤ�äơ��������Τ��륽�եȥ������Υ���ե���
���� (�������Τ���ץ�����ब��ưŪ���Ĵ�ñ�˽���Ƥ��ޤ������ˤ�����) 
�Ȥ������Ȥ���ǧ�����Ƥ���ޤ����㤨����¼���󤬵�ؿ��饤�֥�꡼���
���С����Τޤ޻䤬��ϫ̵�������ѤǤ���Ȥ����ä����ȤǤ��͡�

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

������������ʤ��Ȥ���ޤ��󡣤ɤ���ͭ�񤦤������ޤ�����


��Ƿ�� ��                 horinout@xxxxxx
�������Ķ�������ȸ��楻�󥿡�    611-0011 �����Ըޥ���
phone:0774-38-3812                     fax:0774-31-8463