@@ -568,7 +568,9 @@ def _read_one_raw(self, nc_data, i_track, provider):
568568 i_track (int): track position in netcdf data
569569 provider (str): data provider. e.g. usa, newdelhi, bom, cma, tokyo
570570 """
571- name = '' .join (nc_data .variables ['sid' ][i_track ].astype (str ))
571+ name = '' .join (nc_data .variables ['name' ][i_track ] \
572+ [nc_data .variables ['name' ][i_track ].mask == False ].data .astype (str ))
573+ sid = '' .join (nc_data .variables ['sid' ][i_track ].astype (str ))
572574 basin = '' .join (nc_data .variables ['basin' ][i_track , 0 , :].astype (str ))
573575 LOGGER .info ('Reading %s' , name )
574576
@@ -579,7 +581,7 @@ def _read_one_raw(self, nc_data, i_track, provider):
579581 datetimes .append (dt .datetime .strptime ('' .join (date_time .astype (str )),
580582 '%Y-%m-%d %H:%M:%S' ))
581583
582- id_no = float (name .replace ('N' , '0' ).replace ('S' , '1' ))
584+ id_no = float (sid .replace ('N' , '0' ).replace ('S' , '1' ))
583585 lat = nc_data .variables [provider + '_lat' ][i_track , :][:val_len ]
584586 lon = nc_data .variables [provider + '_lon' ][i_track , :][:val_len ]
585587
@@ -593,20 +595,20 @@ def _read_one_raw(self, nc_data, i_track, provider):
593595 np .all (max_sus_wind == nc_data .variables [provider + '_wind' ]._FillValue ) \
594596 and np .all (cen_pres == nc_data .variables [provider + '_pres' ]._FillValue )):
595597 LOGGER .warning ('Skipping %s. It does not contain valid values. ' + \
596- 'Try another provider.' , name )
598+ 'Try another provider.' , sid )
597599 return None
598600
599601 try :
600602 rmax = nc_data .variables [provider + '_rmw' ][i_track , :][:val_len ]
601603 except KeyError :
602604 LOGGER .info ('%s: No rmax for given provider %s. Set to default.' ,
603- name , provider )
605+ sid , provider )
604606 rmax = np .zeros (lat .size )
605607 try :
606608 penv = nc_data .variables [provider + '_poci' ][i_track , :][:val_len ]
607609 except KeyError :
608610 LOGGER .info ('%s: No penv for given provider %s. Set to default.' ,
609- name , provider )
611+ sid , provider )
610612 penv = np .ones (lat .size )* self ._set_penv (basin )
611613
612614 tr_ds = pd .DataFrame ({'time' : datetimes , 'lat' : lat , 'lon' :lon , \
@@ -616,7 +618,7 @@ def _read_one_raw(self, nc_data, i_track, provider):
616618 # deal with nans
617619 tr_ds = self ._deal_nans (tr_ds , nc_data , provider , datetimes , basin )
618620 if not tr_ds .shape [0 ]:
619- LOGGER .warning ('Skipping %s. No usable data.' , name )
621+ LOGGER .warning ('Skipping %s. No usable data.' , sid )
620622 return None
621623 # ensure environmental pressure > central pressure
622624 chg_pres = (tr_ds .central_pressure > tr_ds .environmental_pressure ).values
@@ -627,7 +629,7 @@ def _read_one_raw(self, nc_data, i_track, provider):
627629 tr_ds .coords ['lat' ] = ('time' , tr_ds .lat )
628630 tr_ds .coords ['lon' ] = ('time' , tr_ds .lon )
629631 tr_ds .attrs = {'max_sustained_wind_unit' : 'kn' , 'central_pressure_unit' : 'mb' , \
630- 'name' : name , 'orig_event_flag' : True , 'data_provider' : provider , \
632+ 'name' : name , 'sid' : sid , ' orig_event_flag' : True , 'data_provider' : provider , \
631633 'basin' : basin , 'id_no' : id_no , 'category' : set_category (max_sus_wind , 'kn' )}
632634 return tr_ds
633635
0 commit comments