从粮农组织(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如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局