当前位置: 首页 > news >正文

网站建设与管理知识点网站seo推广排名

网站建设与管理知识点,网站seo推广排名,国内设计师网站,冒险岛钓鱼网站做啥用在Google Earth Engine的python版API更新后,之前使用folium动态加载地图的代码就不能在正常运行,因为整个Google Earth Engine的地图加载服务的URL发生了更新,所以我们也需要更新相关绘制方法。下面我会讲解一种新的绘制方法,大家…

在Google Earth Engine的python版API更新后,之前使用folium动态加载地图的代码就不能在正常运行,因为整个Google Earth Engine的地图加载服务的URL发生了更新,所以我们也需要更新相关绘制方法。下面我会讲解一种新的绘制方法,大家可以根据自己的需求来扩充相关绘制方法,直接上相关具体代码。

     需要说明一下,我所有的代码都是在Jupyter Lab中运行,这些代码无法在pycharm中直接运行。

第一步、注册GEE。

第二步、导入外部库folium。

第三步、编写添加GEE图层的方法,并且将其作为自定义方法加入到folium的Map中。

具体代码:

  1. # 定义加载GEE影像数或者矢量数据方法

  2. def add_ee_layer(self, ee_object, vis_params, name):

  3.     try:    

  4.         if isinstance(ee_object, ee.Image):    

  5.             map_id_dict = ee.Image(ee_object).getMapId(vis_params)

  6.             folium.raster_layers.TileLayer(

  7.                 tiles = map_id_dict['tile_fetcher'].url_format,

  8.                 attr = 'Google Earth Engine',

  9.                 name = name,

  10.                 overlay = True,

  11.                 control = True

  12.             ).add_to(self)

  13.         elif isinstance(ee_object, ee.FeatureCollection):  

  14.             ee_object_new = ee.Image().paint(ee_object, 0, 2)

  15.             map_id_dict = ee.Image(ee_object_new).getMapId(vis_params)

  16.             folium.raster_layers.TileLayer(

  17.                 tiles = map_id_dict['tile_fetcher'].url_format,

  18.                 attr = 'Google Earth Engine',

  19.                 name = name,

  20.                 overlay = True,

  21.                 control = True

  22.             ).add_to(self)

  23.     except:

  24.         print("Could not display {}".format(name))

  25.     

  26. folium.Map.add_ee_layer = add_ee_layer

代码解析:

加载图层方法为add_ee_layer,这个方法的具体参数参数有三个分别为:

  • ee_object,显示对象可以为image或者featureCollection

  • vis_params,显示规则,其中image和JavaScript版配置一致,featureCollection配置使用palette配置颜色即可

  • name,图层的名称

第四步、调用上面定义的方法绘制影像Image和矢量数据FeatureCollection。

具体代码:

  1. dem = ee.Image('USGS/SRTMGL1_003')

  2. vis = {

  3.   'min': 0,

  4.   'max': 4000,

  5.   'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']

  6. }

  7. roi = ee.FeatureCollection("users/wangweihappy0/training03/bj_shp")

  8. center = roi.geometry().centroid().getInfo()['coordinates']

  9. center.reverse()

  10. print("center is: {}".format(center))

  11. my_map = folium.Map(location=center, zoom_start=8, height=500)

  12. my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis, 'DEM')

  13. my_map.add_ee_layer(roi, {"palette": "FF0000"}, "roi")

  14. my_map.add_child(folium.LayerControl())

代码解析:

  • vis配置的是DEM显示规则

  • center是地图要居中显示的位置

  • my_map是通过folium.Map配置显示的地图

  • my_map通过add_ee_layer添加定义的图层dem和roi

运行结果:

第五步、总结第四步调用方法可以将其写为一个具体的方法,然后直接调用这个方法。

具体代码:

  1. # 使用Folium展示地图  

  2. def Mapdisplay(center, layers, Tiles="OpensTreetMap",zoom_start=10):  

  3.     mapViz = folium.Map(location=center,tiles=Tiles, zoom_start=zoom_start)  

  4.     for data in layers:  

  5.         mapViz.add_ee_layer(data.get("layer"), data.get("vis"), data.get("name"))

  6.     mapViz.add_child(folium.LayerControl())  

  7.     return mapViz

使用这个方法示例如下

具体代码:

  1. dem = ee.Image('USGS/SRTMGL1_003')

  2. vis = {

  3.   'min': 0,

  4.   'max': 4000,

  5.   'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']

  6. }

  7. roi = ee.FeatureCollection("users/wangweihappy0/training03/bj_shp")

  8. center = roi.geometry().centroid().getInfo()['coordinates']

  9. center.reverse()

  10. print("center is: {}".format(center))

  11. layers = [

  12.     {

  13.         "layer": dem,

  14.         "vis": vis,

  15.         "name": "DEM"

  16.     },

  17.     {

  18.         "layer": roi,

  19.         "vis": {"palette": "FF0000"},

  20.         "name": "roi"

  21.     }

  22. ]

  23. Mapdisplay(center, layers, zoom_start=8)

代码解析:

    这个程序运行结果和前面例子运行结果一样,区别就是在这里使用的我们自定义的方法Mapdisplay()方法,这个方法的参数分别为:

  • center,中心点坐标

  • layers,要加载的所有图层信息列表,配置规则是

    [

    {

            "layer": xxx, //图层的数据可以是image或者featureCollection

            "vis": xxx, //显示规则,image配置和在JavaScript中配置一致

                        //featureCoolection配置用{"palette": 颜色}就可以

            "name": xxx, //显示的图层名称

    }

    ]

  • Tiles,这个使用默认就可以,不用修改

  • zoom_start,最初缩放比例,比如这里使用的是8

  • 来源请引用:地理遥感生态网科学数据注册与出版系统。

http://www.hrbkazy.com/news/55684.html

相关文章:

  • 在上海做家教的网站seo顾问是什么职业
  • wordpress php apache好看的seo网站
  • 用dw做的代码怎么放在网站上临沂seo公司稳健火星
  • 建设工程公司账务处理网站优化关键词排名
  • 杭州移动网站建设网站模板定制
  • 党建设计公司北京百度seo服务
  • 临汾哪里有做网站的抖音搜索seo软件
  • 全国网站排名宁波企业seo服务
  • 中山住房和建设局工程交易网站杯子软文营销300字
  • jsp 做网站需要什么优化关键词排名提升
  • 网站运营维护工作内容上海百度搜索排名优化
  • 如何做淘宝返利网站免费b站推广网站详情
  • 赣州企业网络搭建重庆电子商务seo
  • 怎么做非法彩票网站吗cps游戏推广平台
  • 做网站怎么提取视频无广告seo效果检测步骤
  • 网站建设与管理课后作业答案网络营销的十大特点
  • 呼和浩特网站建设价位深圳企业网站制作
  • 做网站用什么云服务器吗东莞seo快速排名
  • 和城乡建设部网站谷歌seo和百度seo区别
  • 做网站得叫什么软件推广方式有哪些
  • 网站建设客户目标模板淘宝运营团队怎么找
  • 网站的结构与布局优化购买seo关键词排名优化官网
  • 官方网站后台图片下载怎么做seo推广费用需要多少
  • 网站备案表格样本怎么提高百度搜索排名
  • 怎么写网站文案滕州网站建设优化
  • 做网站的常德网站seo
  • 山东建设执业资格注册中心网站一个产品的营销方案
  • 村级网站建设系统汕头百度网络推广
  • 做网站需要的法律知识无安全警告的浏览器
  • 做网站运维应该看的书百度竞价推广代理商