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

手把手教你用GEE调用Daylight全球地图数据:从土地覆盖到水域多边形(附完整代码)

从零掌握GEE调用Daylight地图数据土地覆盖与水域分析实战指南当第一次接触Google Earth EngineGEE时许多地理信息领域的新手常被海量数据集淹没——知道平台蕴藏宝藏却不知如何精准调用和有效利用。本文将聚焦Daylight Map Distribution这一优质开放数据集通过全流程代码演示带您解锁ESA 2020土地覆盖、水域多边形等核心数据的应用方法。无论您是需要分析城市扩张的环境科学研究者还是评估水域变化的生态学者这些即拿即用的代码模板都能让您跳过摸索阶段直接进入专业级空间分析。1. 环境准备与数据定位1.1 初始化GEE工作环境在浏览器中访问Google Earth Engine代码编辑器并登录后新建一个空白脚本。首次使用需要完成账户授权按照页面提示操作即可。建议在脚本开头添加以下初始化代码// 设置地图中心点为上海可替换为任意坐标 Map.setCenter(121.4737, 31.2304, 8); // 创建空白图层组用于后续数据叠加 var layers ui.Map.Layer([], {}, 图层容器); Map.layers().add(layers);提示使用Map.setCenter()时第三个参数代表缩放级别1-24数值越大视图越详细。初始建议设置为8-10级以观察全局特征。1.2 定位Daylight数据集Daylight数据集在GEE中分为三个核心组件对应不同的地理要素数据类型数据集路径分辨率水域多边形projects/sat-io/open-datasets/DAYLIGHTMAP/water_polygons1:100万比例尺陆地多边形projects/sat-io/open-datasets/DAYLIGHTMAP/land_polygons1:100万比例尺ESA 2020土地覆盖projects/sat-io/open-datasets/DAYLIGHTMAP/LANDCOVER_ESA_202010米通过以下代码可快速验证数据可用性// 测试数据集加载 var testWater ee.FeatureCollection(projects/sat-io/open-datasets/DAYLIGHTMAP/water_polygons); print(水域样本数据, testWater.first());2. 数据加载与可视化技巧2.1 土地覆盖分类渲染ESA 2020土地覆盖数据包含11个分类采用国际通用的IPCC分类体系。加载时需特别注意颜色编码规则var landcover ee.FeatureCollection(projects/sat-io/open-datasets/DAYLIGHTMAP/LANDCOVER_ESA_2020); // 官方推荐配色方案 var lcPalette { Urban: ff0000, Cropland: ffff00, Grassland: aaf0d1, Tree cover: 008000, Shrubland: b3b300, Sparse vegetation: 99ff99, Wetland: 00ffff, Permanent water: 0000ff, Herbaceous wetland: 00ff80, Bare area: ffcc99, Snow and ice: ffffff }; var lcVis landcover.map(function(feature){ return feature.set(style, {color: lcPalette[feature.get(class)]}); }); Map.addLayer(lcVis.style({styleProperty: style}), {}, ESA 2020土地覆盖);注意实际应用中可能遇到分类缩写不一致的情况建议先用print(landcover.first())查看属性字段命名规范。2.2 水域多边形动态加载策略对于大规模水域数据推荐采用按需加载策略以避免性能问题var waterFiltered ee.FeatureCollection(projects/sat-io/open-datasets/DAYLIGHTMAP/water_polygons) .filterBounds(Map.getBounds(true)); Map.addLayer(waterFiltered.style({color: blue, fillColor: 00000000}), {}, 水域边界);性能优化技巧使用filterBounds()限定当前视图范围设置fillColor: 00000000实现透明填充仅显示边界添加加载进度提示var loadingPanel ui.Panel({style: {position: bottom-center}}); Map.add(loadingPanel); waterFiltered.evaluate(function(result) { loadingPanel.style().set(shown, false); Map.addLayer(ee.FeatureCollection(result), {color: blue}, 水域最终渲染); });3. 高级空间分析方法3.1 土地利用变化热力图生成结合ESA土地覆盖数据与水域多边形可分析特定区域的土地利用变化// 示例计算城市周边水域变化缓冲区 var urbanAreas landcover.filter(ee.Filter.eq(class, Urban)); var waterWithDistance waterPolygons.map(function(feature){ var distance feature.distance(urbanAreas.geometry(), 1000); return feature.set(urban_distance, distance); }); // 创建距离梯度热力图 var heatmapVis { bands: urban_distance, min: 0, max: 5000, palette: [blue, cyan, yellow, red] }; Map.addLayer(waterWithDistance, heatmapVis, 水域-城市距离热力图);3.2 多时相对比分析框架虽然Daylight数据集为静态版本但可通过以下方法实现与其他时序数据的联动分析// 结合MODIS NDVI数据验证土地覆盖准确性 var modisNDVI ee.ImageCollection(MODIS/006/MOD13A2) .filterDate(2020-01-01, 2020-12-31) .select(NDVI) .median(); var ndviVsLandcover ee.Image.cat([ modisNDVI.normalizedDifference([sur_refl_b02,sur_refl_b01]), landcover ]).rename([ndvi,landcover]); // 创建分析散点图 var chart ui.Chart.image.scatterplot( ndviVsLandcover.sample({region: urbanAreas.geometry(), scale: 100}), ndvi, landcover, 1000) .setOptions({ title: NDVI与土地覆盖类型相关性, hAxis: {title: NDVI值}, vAxis: {title: 土地覆盖类型代码}, pointSize: 3 }); print(chart);4. 成果导出与报告生成4.1 自动化导出配置GEE支持将分析结果导出至Google Drive或直接生成可分享链接// 导出土地覆盖统计报表 var stats landcover.reduceToImage({ properties: [class], reducer: ee.Reducer.frequencyHistogram() }); Export.image.toDrive({ image: stats, description: Landcover_Stats_Export, fileNamePrefix: daylight_landcover_stats, region: Map.getBounds(true), scale: 100, fileFormat: GeoTIFF }); // 生成可共享的临时链接 var exportURL stats.getThumbURL({ dimensions: 1024, region: Map.getBounds(true), format: png }); print(临时预览链接, exportURL);4.2 交互式报告模板利用GEE的UI组件构建动态分析面板// 创建分类选择器 var classSelector ui.Select({ items: Object.keys(lcPalette), placeholder: 选择土地覆盖类型, onChange: function(selected) { var filtered landcover.filter(ee.Filter.eq(class, selected)); Map.layers().set(1, ui.Map.Layer(filtered, {color: lcPalette[selected]}, selected)); } }); // 构建控制面板 var controlPanel ui.Panel({ widgets: [ ui.Label(Daylight数据分析面板), classSelector ], style: {position: top-right} }); Map.add(controlPanel);5. 疑难排查与性能优化当处理全球尺度的Daylight数据时可能会遇到以下常见问题及解决方案内存溢出错误// 错误示例直接加载全球水域数据 // var allWater waterPolygons; // 可能导致内存不足 // 正确做法分块处理 var chunkedAnalysis function(region) { return waterPolygons.filterBounds(region) .map(function(feature){ return feature.set(area_sqkm, feature.area().divide(1000000)); }); }; var regions ee.FeatureCollection([ ee.Feature(ee.Geometry.Rectangle([-180,-90,0,90])), ee.Feature(ee.Geometry.Rectangle([0,-90,180,90])) ]); var regionalResults regions.map(function(region){ return chunkedAnalysis(region.geometry()); });可视化渲染延迟使用ee.Reducer.mean().combine()进行数据概化对大规模多边形启用bestEffort: true参数优先采用矢量简化操作var simplifiedWater waterPolygons.map(function(feature){ return feature.simplify(100); // 100米容差 });6. 案例实战城市水域生态评估最后我们通过一个完整案例演示如何综合利用Daylight数据集进行实际科研分析// 以上海为例分析城市水域分布特征 var shanghai ee.Geometry.Point(121.4737, 31.2304).buffer(20000); // 步骤1提取研究区水域 var localWater waterPolygons.filterBounds(shanghai); // 步骤2计算水域形态指标 var waterMetrics localWater.map(function(feature){ var area feature.area(); var perimeter feature.perimeter(); var compactness perimeter.divide(area.sqrt()).multiply(0.28); return feature .set(area_ha, area.divide(10000)) .set(compactness, compactness); }); // 步骤3关联土地覆盖数据 var lcAroundWater landcover.filterBounds(shanghai).map(function(feature){ var nearestWater waterMetrics.nearest(feature.geometry(), 1000); return feature.set(water_dist, feature.distance(nearestWater.geometry())); }); // 生成分析报告 var statsReport { waterArea: waterMetrics.aggregate_sum(area_ha), avgCompactness: waterMetrics.aggregate_mean(compactness), lcNearWater: lcAroundWater .filter(ee.Filter.lt(water_dist, 500)) .aggregate_histogram(class) }; print(水域生态指标报告, statsReport);

相关文章:

手把手教你用GEE调用Daylight全球地图数据:从土地覆盖到水域多边形(附完整代码)

从零掌握GEE调用Daylight地图数据:土地覆盖与水域分析实战指南 当第一次接触Google Earth Engine(GEE)时,许多地理信息领域的新手常被海量数据集淹没——知道平台蕴藏宝藏,却不知如何精准调用和有效利用。本文将聚焦D…...

实测惊艳!用圣女司幼幽-造相Z-Turbo生成国风角色,效果太绝了

实测惊艳!用圣女司幼幽-造相Z-Turbo生成国风角色,效果太绝了 1. 国风角色生成新体验 最近体验了圣女司幼幽-造相Z-Turbo文生图模型,这款基于Xinference部署的AI绘画工具给我带来了不小的惊喜。作为一个长期关注AI绘画技术的创作者&#xff…...

AI绘画新体验:Anything V5生成精美头像与壁纸效果展示

AI绘画新体验:Anything V5生成精美头像与壁纸效果展示 1. 惊艳的AI绘画效果 在数字艺术创作领域,Anything V5作为基于Stable Diffusion的强力衍生模型,为我们带来了前所未有的图像生成体验。这款模型特别擅长生成高质量的头像和壁纸作品&am…...

手把手教你部署Qwen-Image-Edit-2511:从环境搭建到一键出图

手把手教你部署Qwen-Image-Edit-2511:从环境搭建到一键出图 Qwen-Image-Edit-2511是Qwen系列最新的图像编辑模型,相比前代版本2509,它在图像漂移控制、角色一致性保持、LoRA功能整合等方面都有显著提升。本文将带你从零开始完成整个部署流程…...

构建LLM维基百科智能体:从任务规划到知识检索的工程实践

1. 项目概述:当LLM学会“查字典”,一个自主探索的维基百科智能体 最近在折腾大语言模型应用开发的朋友,可能都绕不开一个核心问题:如何让模型获取并利用那些它“不知道”的知识?比如,让它回答一个关于昨天…...

Qwen2.5-14B-Instruct性能实测:像素剧本圣殿双GPU显存优化部署教程

Qwen2.5-14B-Instruct性能实测:像素剧本圣殿双GPU显存优化部署教程 1. 项目概览 像素剧本圣殿(Pixel Script Temple)是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个独特的创作环境将强大的AI推理能力与8-Bit复古美学完美…...

学术写作技能精进:从逻辑架构到高效发表的完整指南

1. 项目概述:学术写作技能的精进之道“muhammad1438/academic-writer-skills”这个项目标题,乍一看像是一个GitHub仓库名,指向一套关于学术写作技能的集合。对于任何一位在学术圈、科研领域深耕,或者正在为学位论文、期刊投稿、研…...

Clawdbot镜像使用:一键部署,让Ollama上的Qwen3-32B拥有聊天界面

Clawdbot镜像使用:一键部署,让Ollama上的Qwen3-32B拥有聊天界面 你是否已经成功部署了Qwen3-32B大模型,却苦于没有友好的交互界面?本文将带你通过Clawdbot镜像,为你的Ollama上的Qwen3-32B快速搭建一个开箱即用的Web聊…...

AI智能体安全评估实战:使用tinman-openclaw-eval构建自动化红队测试

1. 项目概述:为AI智能体构建一道“防火墙”如果你正在开发或部署基于大语言模型的智能体,比如OpenClaw这样的个人AI助手,那么一个无法回避的核心问题就是:它到底安不安全?我们如何能系统性地、自动化地验证它能否抵御各…...

为什么头部金融/运营商已全员切换AISMM?SITS2026最新追踪:6个月落地窗口期正在关闭,第3批认证通道下周截止

更多请点击: https://intelliparadigm.com 第一章:SITS2026总结:AISMM模型的核心价值 AISMM(Adaptive Intelligent Service Mesh Model)是SITS2026国际会议中正式发布的下一代服务网格建模框架,其核心突破…...

时差这个东西,熬的是命

做跨境代购的人,都知道时差的苦。客户在海外,你在中国。客户醒着的时候,你该睡了;客户睡了,你又醒了。为了不错过消息,手机永远不敢静音。凌晨三点被震醒是常态。一个月下来,黑眼圈比熊猫还重。…...

Automagik Forge:从氛围编程到结构化AI协作的工程化实践

1. 项目概述:从“氛围编程”到“结构化执行”的进化如果你和我一样,在过去一年里深度体验过各种AI编程助手,从GitHub Copilot到Cursor,再到Claude Code,那你一定对那种“氛围感”又爱又恨。爱的是,你只需要…...

从CRNN到Vision Transformer:聊聊OCR文本识别这十年的技术变迁与选型心得

从CRNN到Vision Transformer:OCR文本识别的十年技术演进与实战选型指南 过去十年间,OCR文本识别技术经历了从传统机器学习到深度学习的跨越式发展。作为计算机视觉领域的重要分支,文本识别技术已经从最初的简单字符分类,逐步演变为…...

AI提示词工程框架:模块化技能库提升开发效率与团队协作

1. 项目概述:一个面向AI辅助开发的提示词工程框架如果你和我一样,日常重度依赖像 Cursor 或 Claude Desktop 这样的 AI 编程助手,那你肯定遇到过这样的烦恼:AI 有时候“太聪明”,写出的代码过度设计,或者在…...

USB音频类设备开发与同步传输技术详解

1. USB音频类设备开发基础USB音频类设备开发是嵌入式系统设计中的一个重要领域,它利用USB协议中的同步传输技术实现高质量的音频数据传输。这种技术特别适合需要实时性和稳定性的音频应用场景。1.1 同步传输技术原理同步传输(Isochronous Transfers)是USB协议中四种…...

告别ECU漏电烦恼:用TJA1145实现汽车CAN节点超低功耗休眠的实战配置

告别ECU漏电烦恼:用TJA1145实现汽车CAN节点超低功耗休眠的实战配置 深夜的实验室里,示波器上跳动的电流波形让张工眉头紧锁——又一个因ECU静态电流超标导致整车蓄电池亏电的案例。在汽车电子领域,这种"暗电流"问题如同慢性病&…...

基于MCP协议实现Node.js生产环境实时调试:return0与Cursor IDE集成指南

1. 项目概述:当生产环境调试遇上MCP 如果你是一名Node.js开发者,尤其是重度使用Next.js、Express这类框架,并且应用部署在Vercel、Netlify或AWS Lambda这样的Serverless环境里,那你一定对生产环境调试的“痛”深有体会。本地跑得…...

从单周期到五段流水:在Vivado上一步步搭建MIPS模型机的踩坑实录

从单周期到五段流水:在Vivado上搭建MIPS模型机的实战指南 第一次在Vivado中点亮MIPS模型机的那一刻,屏幕上的波形图仿佛有了生命。作为计算机组成原理课程设计的经典项目,从单周期到流水线的进化之路充满挑战。本文将分享如何用Verilog在Xili…...

AI音乐生成实战:从开源项目部署到高级应用全解析

1. 项目概述:当AI音乐创作遇上开源社区 最近在GitHub上闲逛,发现了一个挺有意思的项目,叫“openclaw-genpark-music-creator”。光看这个名字,就能嗅到一股混合了技术极客与艺术创作的味道。作为一个在音乐科技和开源工具领域摸爬…...

ARM调试寄存器DBGDTRRX_EL0与DBGDTRTX_EL0详解

1. ARM调试寄存器概述在ARM架构的调试系统中,DBGDTRRX_EL0和DBGDTRTX_EL0是两个关键的数据传输寄存器,它们构成了处理器与调试器之间的通信桥梁。这两个寄存器属于ARMv8架构的调试寄存器组,专门用于在调试状态下进行数据交换。调试寄存器的工…...

从SATA到NVMe:一个老司机的存储协议‘升级’踩坑实录与性能对比测试

从SATA到NVMe:一个老司机的存储协议‘升级’踩坑实录与性能对比测试 作为一名常年与存储设备打交道的IT从业者,我见证了从机械硬盘到SATA SSD的飞跃,但真正让我震撼的,是从SATA SSD升级到NVMe SSD的体验。这次升级源于一次视频剪辑…...

在Taotoken平台查看与导出详细账单数据的操作方法

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Taotoken平台查看与导出详细账单数据的操作方法 对于使用大模型API进行开发的团队或个人而言,清晰、准确地掌握成本消…...

Godot AI助手插件:本地LLM集成与代码辅助开发实战

1. 项目概述:在Godot引擎中构建你的AI编程副驾 如果你是一名Godot开发者,无论是刚入门的新手还是经验丰富的老手,肯定都经历过这样的时刻:面对一个复杂的游戏逻辑卡壳,或者想优化一段冗长的代码却无从下手&#xff0c…...

Chain of Thought提示技术:提升AI复杂任务处理能力

1. 项目概述在AI应用开发领域,Chain of Thought(CoT)提示技术正在改变我们与大型语言模型交互的方式。不同于传统单步提示,CoT通过引导模型展示推理过程,显著提升了复杂任务的解决能力。我在多个实际项目中验证发现&am…...

如何实现SQL存储过程存储过程参数标准化_统一命名规范.txt

...

TDAD:AI编程代理回归测试的革新方案

1. 项目概述:TDAD如何革新AI编程代理的回归测试在当今快速迭代的软件开发环境中,AI编程代理已经成为解决实际GitHub问题的有力工具。然而,这些代理生成的代码补丁经常引入回归错误——即破坏之前通过的测试用例。根据对33,000个AI生成Pull Re…...

MySQL用户管理实战:权限控制与安全策略,系统架构设计师备考第37天——软件系统质量属性。

MySQL 用户管理基础概念 MySQL 用户管理涉及创建、修改、删除用户账号,并分配权限以控制数据库访问。用户信息存储在 mysql.user 表中,权限通过 GRANT 和 REVOKE 语句管理。 用户创建与删除 创建用户需指定用户名、主机和密码: CREATE USER u…...

Ubuntu轻松获取软件依赖包全攻略,java面试:可以讲一讲jvm的内存结构吗?。

Ubuntu 中获取指定软件依赖安装包的方法 在 Ubuntu 系统中,安装软件时经常需要处理依赖关系。以下是几种高效获取指定软件依赖安装包的方法。 使用 apt 命令获取依赖包 apt 是 Ubuntu 中最常用的包管理工具,可以轻松获取软件及其依赖包。运行以下命令查看…...

策略模式:动态切换算法的艺术,线程清理机制(pthread_cleanup函数族实践)。

策略模式的核心思想 策略模式属于行为型设计模式,允许在运行时选择算法的具体实现。其核心是将算法族封装为独立类,使它们可以互相替换,且算法的变化不影响使用算法的客户端。 模式结构 Context(上下文):持…...

本地AI桌面助手Joanium:项目感知与自动化工作流实战

1. 项目概述:一个真正运行在你电脑里的AI桌面助手 如果你和我一样,每天的工作流里充斥着各种重复性的任务:打开GitHub看issue、检查邮件、整理项目文档、或者为某个代码片段写注释。这些事说大不大,但累积起来,就是巨…...