爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4523|回复: 10

请教站点数据编辑问题

[复制链接]

新浪微博达人勋

发表于 2016-6-15 14:14:03 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
从脚本示例程序用-160站数据绘图贴子里下载了站点经纬度文件:st_160.csv,打开显示好像有点问题,站名是乱码,站号与经纬度也有不对齐,但好像不影响绘图,但把它改动一下,绘图就问题了,这是什么原因?关键是,如果我想编辑站名及经纬度,或者直接生成一个自定义的经纬度、站名、站号表,不是是否可行,可行的话如何实现呢?请指点,谢谢!!
1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-15 15:10:41 | 显示全部楼层
建议装一个NotePad++来编辑,主要是BOM的问题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-15 21:48:07 | 显示全部楼层
是这样的,谢谢王老师,我在另一台电脑上显示正常
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-16 13:43:56 | 显示全部楼层
王老师,我使用Notepad++打开站点CSV文件,站名显示正常了,经纬度不也混列了,但绘出的图还是有问题,站名不显示汉字,只有方框,怎么解决呢,谢谢!
1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-16 13:51:10 | 显示全部楼层
zenghaode 发表于 2016-6-16 13:43
王老师,我使用Notepad++打开站点CSV文件,站名显示正常了,经纬度不也混列了,但绘出的图还是有问题,站名 ...

把你的代码贴出来看看问题在哪里
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-16 13:59:47 | 显示全部楼层
是您给的脚本示例代码,我只是改了路径和文件名

#Get file names
datafn = 'D:/Temp/r1605.txt'
stfn = 'D:/Temp/st_1602.csv'
#Get years
years = []
for i in range(1951, 2017):
    years.append(i)
yearn = len(years)
stn = 160
#Read temperature data of 160 stations from data file
temp = asciiread(datafn, shape=(yearn,stn))
temp = temp * 0.1
#Get temperature data of 2015
year = 2015
yearidx = years.index(year)
temp = temp[yearidx,:]
#Read station name and lon/lat
table = readtable(stfn, delimiter=',', format='%i%2s%2f')
stnames = table['Name']
lat = table['LAT']
lon = table['LON']
#To grid data
x = arange(70, 140, 0.5)
y = arange(15, 58, 0.5)
gtemp,gx,gy = griddata((lon, lat), temp, xi=(x, y), method='idw', pointnum=4)
#Plot
axesm()
bou2_layer = shaperead('D:/Temp/map/bou2_4p.shp')
bou1_layer = shaperead('D:/Temp/map/bou1_4l.shp')
china_layer = shaperead('D:/Temp/map/hdqyt.wmp')
geoshow(bou2_layer, edgecolor='lightgray')
geoshow(bou1_layer, facecolor=(0,0,255))
geoshow(china_layer, visible=True)
layer = contourfm(x, y, gtemp, 20)
slayer = scatterm(lon, lat, temp, colors=['k'], size=4)
slayer.addfield('Name', 'string', stnames)
slayer.addlabels('Name', fontname=u'楷体', fontsize=14, yoffset=15,avoidcoll=False)
masklayer(china_layer, [layer])
#title('Temperature (' + str(year) + '-01)')
ylabel(u'Y轴', fontname=u'宋体', fontsize=16)
xlabel(u'X轴', fontname=u'宋体', fontsize=16)
#axis([0,5,0,20])
title(u'平均温度分布图', fontname=u'黑体', fontsize=18, bold=False, color='red')
text(5, 12, u'标注', fontname=u'楷体', fontsize=18)
colorbar(layer)
#xlim(113, 125)
#ylim(21, 35)
#Add south China Sea
sc_layer = bou1_layer.clone()
axesm(position=[0.14,0.18,0.15,0.2], axison=False, frameon=True)
geoshow(sc_layer, facecolor=(0,0,255))
xlim(106, 123)
ylim(2, 23)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-16 15:21:36 | 显示全部楼层
zenghaode 发表于 2016-6-16 13:59
是您给的脚本示例代码,我只是改了路径和文件名

#Get file names

在NotePad++中用“格式 -> 转为UTF-8无BOM编码格式”菜单将站点文件格式转一下,保存再试试。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-20 13:25:39 | 显示全部楼层
问题解决了,谢谢王老师
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-10 07:03:14 | 显示全部楼层
楼主,你好。看到你的图上可以显示站点信息,是全国的,我想加某一个地区的,比如新疆的,怎么可以实现?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-10 08:20:23 | 显示全部楼层
micolian 发表于 2017-10-10 07:03
楼主,你好。看到你的图上可以显示站点信息,是全国的,我想加某一个地区的,比如新疆的,怎么可以实现?

可以参考这个帖子:http://bbs.06climate.com/forum.p ... &extra=page%3D1
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表