从粮农组织(FAO)下载数据

faodata的Python项目详细描述


一个简单的python接口,用于从粮农组织(fao)下载数据。

什么是福田?

安装

pip install faodata或下载source codepython setup.py install

基本用途

要下载数据,数据库、数据集和字段的id是 必需:

  • 获取粮农组织数据库列表:

    fromfaodataimportfaodownloaddatabases=faodownload.get_databases()
  • 获取给定数据库(如faostat)中粮农组织数据集的列表:

    database_id='faostat'datasets=faodownload.get_datasets(database_id)
  • 获取给定数据集中fao字段的列表(例如live prod):

    database_id='faostat'dataset_id='live-prod'fields=faodownload.get_fields(database_id,dataset_id)

当已知所有前面的元素时,下载过程是

database_id='faostat'dataset_id='live-prod'field_id='m5111'# Define the year (if None, all years are retrieved)year=2010# Define country (if None, all countries are retrieved)# The country id is the ISO3 code# see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3country_id=None# Get datadata=faodownload.get_data(database_id,dataset_id,field_id,country=country_id,year=year)

下载数据后,它可以显示在世界地图上

importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkitsimportbasemapfromfaodataimportfaodownload,faomap# Download datadatabase_id='faostat'dataset_id='live-prod'field_id='m5111'year=2013data=faodownload.get_data(database_id,dataset_id,field_id,year=year)# Select dataitem='Cattle'idx=data['Item']==itemdata=data.loc[idx,['country','value']]# Instantiate matplotlib and basemap objectsplt.close('all')fig,ax=plt.subplots()map=basemap.Basemap(projection='robin', \
        lon_0=10,lat_0=50,ax=ax)map.drawcoastlines(color='grey')map.drawcountries(color='grey')# Categorize data according to percentilescat=[np.percentile(data['value'],pp) \
        forppinrange(10,100,10)]# Draw plotfaomap.plot(map,data,cat,ndigits=0)map.ax.legend(loc=3)ax.set_title('%s population, %d'%(item,year),fontsize=15)# Add a footer to the figure to# indicate data sourcefaomap.mapfooter(fig,database_id,dataset_id,field_id)

example folder目录中的更多示例。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何反射地迭代数组字段?   java NamedQuery错误“具有给定标识符的多行:1”   java无法使用单独类中的计时器更新TextView   兼容性什么时候可以很快使用新的Java功能?   java二叉树路径和   java矩形的性能   java我想从同一个子表在主表中添加两个外键   java如何获取基于特定日期的所有数据?   java javafx、OO编程规则和写入变量类型的选择   java使用带枚举的switch语句   java异步任务生成运行时异常   java为什么JLabel不显示下划线字符?   java如何解析具有可变参数号的函数?   带有按钮的java JavaFX自定义列表单元格:未调用处理程序   java Modelmapper无法映射整个模型?   传递给持久化的java分离实体,包含LatLng列表