Почему я печатаю разные значения из массива в файл grib?

Суммирую значения списка файлов grib после нормализации. После этого я перезаписываю значения в существующем файле grib.

data_sum = np.zeros((451, 900))
for grib_file in list_000:
    data = normalization(grib_file)
    data_sum = data_sum + data
print 'printing array'
print data_sum
np.savetxt("data_sum.csv", data_sum, delimiter = ",")

grb['values'] = data_sum
print 'print data_sum on the grib'
print grb['values']


grbout = open('test.grib','wb')
msg = grb.tostring()
grbout.write(msg)
grbout.close()

Проверяя вывод, я заметил, что значения, которые у меня есть в массиве, отличаются от значений, которые у меня есть в файле grib.

Это результат:

printing array
[[ 1.13245029  1.13245029  1.13245029 ...,  1.13245029  1.13245029
   1.13245029]
 [ 1.106688    1.10659579  1.10650334 ...,  1.10706602  1.10693998
   1.10681408]
 [ 1.10806011  1.10786188  1.10766377 ...,  1.10870979  1.10849327
   1.10827666]
 ..., 
 [ 0.16032772  0.16051986  0.16071201 ...,  0.15965874  0.15988178
   0.1601047 ]
 [ 0.16065853  0.16073246  0.1608062  ...,  0.1603807   0.16047323
   0.1605659 ]
 [ 0.15851239  0.15851239  0.15851239 ...,  0.15851239  0.15851239
   0.15851239]]
print data_sum on the grib
[[ 1.13245045  1.13245045  1.13245045 ...,  1.13245045  1.13245045
   1.13245045]
 [ 1.1066879   1.10659587  1.10650336 ...,  1.10706603  1.10694014
   1.10681426]
 [ 1.10806023  1.10786187  1.10766398 ...,  1.10870969  1.1084932
   1.10827672]
 ..., 
 [ 0.16032778  0.16051995  0.16071212 ...,  0.15965878  0.15988194
   0.16010462]
 [ 0.16065871  0.16073262  0.16080605 ...,  0.16038071  0.16047322
   0.16056573]
 [ 0.15851247  0.15851247  0.15851247 ...,  0.15851247  0.15851247
   0.15851247]]

Разве какие-то объяснения по поводу данных отличаются? Я не могу понять ...

Этот код не должен производить такой вывод. Вы уверены, что это тот код, который вы запустили, потому что сначала вы печатаете data_sum, а затем строку 'print array'

Petar Velev 11.04.2018 12:59

@PetarVelev, я допустил ошибку при копировании и вставке кода ... теперь все в порядке.

Glori P. 11.04.2018 13:09

Можете добавить простое сравнение до и после? import copy; ds1 = copy.deepcopy(data_sum); ds1 == data_sum. Не должно быть иначе :)

Roelant 11.04.2018 13:44

и, может быть, добавить импорт и т. д. Какой пакет grib вы используете? :)

Roelant 11.04.2018 13:45

Я запустил код import copy ds1 = copy.deepcopy(data_sum) if ds1.all() == grb.values.all(): print "true", и на выходе у меня было true ... Я не понимаю: почему мои печатные массивы разные?

Glori P. 11.04.2018 15:13

@Roelant Я использую модуль pygrib :)

Glori P. 11.04.2018 15:15
0
6
169
0

Другие вопросы по теме