首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IDL从NCDF4文件导入字符串

使用IDL从NCDF4文件导入字符串
EN

Stack Overflow用户
提问于 2017-09-08 15:00:12
回答 1查看 53关注 0票数 0

我是IDL的新手

我正在将数据从NCDF4导入到IDL中。所有变量的数值导入完美。然而,站名作为一个200的数组出现。输出的一个例子是:

84 82 69 76 69 87 95 65 82 82 79 32 32 32 0 0 0

等。

我从未在R中遇到过这个问题,我试过使用string命令,但这是行不通的。如果我注释掉string命令,那么脚本的其余部分就能很好地工作。我的剧本在下面

代码语言:javascript
复制
  PRO Lat_Lon_Alt_Array                              

; This program is the extract the Latitute, Longigitude & Altitute
; with the Site name and file code. 
; The purpose is to output the above dimensions from the station files
; into a csv file.

COMPILE_OPt IDL2

the_file_list = file_search('D:/Rwork/Project/25_Files/','*.nc')

;---------------------------------------------------------------
n_files=N_Elements(the_file_list)  
station_name_st=string(n_files)                              ; try this
latitude_arr=DBLARR(n_files)
longitude_arr=DBLARR(n_files)
height_arr=DBLARR(n_files)

;----------------------------------------------------------------

FOR filein =  0, N_ElEMENTS (the_file_list)-1 DO BEGIN



 station = NCDF_OPEN(the_file_list[filein])

 ;fred= NCDF_VARINQ(station,station_name)

 NCDF_VARGET, station, 'station_name', station_name           
 NCDF_VARGET, station, 'lat', latitude
 NCDF_VARGET, station, 'lon', longitude
 NCDF_VARGET, station, 'alt', height

 stop
 ;-------------------------------------------------------
 ;station_name_st[filein]=station_name
 latitude_arr[filein]=latitude
 longitude_arr[filein]=longitude
 height_arr[filein]=height
 ;-----------------------------------------------------

 Print,the_file_list[filein]
 Print, 'station_name'
 Print, station_name
 Print,'lat'
 Print,latitude
 Print,'lon'
 print,longitude
 Print,'alt'
 Print,height


 HEADER=['File_Address','Latitude','Longitude','Altitude']

 ENDFOR

 WRITE_CSV,   'LatLon.csv',the_file_list,latitude_arr,longitude_arr,height_arr,$
 HEADER=HEADER,TABLE_HEADER='LAT,LON & ALT OF STATIONS'

 RETURN
 END
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-10 04:03:00

在某些情况下,NetCDF文件将“字符串”存储为字节数组。您的station_name变量似乎就是这种情况之一。您只需要在使用STRING过程读取station_name之后,使用NCDF_VARGET函数来转换它。

代码语言:javascript
复制
NCDF_VARGET, station, 'station_name', station_name
PRINT, station_name

84 82 69 76 69 87 95 65 69 82 79 32 32 32 0 0 0 0 0 0 0 0

station_name = STRING(station_name)
PRINT, station_name

TRELEW_AERO   
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46119389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档