如果你的gdal版本是3.2.2及以上,那么只能:
from osgeo import gdal
ds = gdal.Open(data)
rows = ds.RasterYSize
cols = ds.RasterXSize
bandnum = ds.RasterCount
transform = ds.GetGeoTransform()
ds是一个对象,rows是影像的行,也是Y轴长度。对应的,cols则是影像的列,X轴的长度。bandnum代表影像的波段数。
transform是一个list,存储着栅格数据集的地理坐标信息。
#transform[0] /* top left x 左上角x坐标(经度)*/
#transform[1] /* w--e pixel resolution 东西方向上的像素分辨率*/
#transform[2] /* rotation, 0 if image is "north up" 如果北边朝上,地图的旋转角度*/
#transform[3] /* top left y 左上角y坐标(纬度)*/
#transform[4] ...
《断舍离》是一本书,2017年我买了它。但是我一直学不会断舍离。
原因很简单:例如物品A扔了就可惜,万一以后用得上呢?然后这件物品A,就被我留下来,被我放到某个角度,直到后来我并没有用到它。
我这两天在搬家,整理东西的时候才发现,我还有三张手机贴膜。分别是不同的时间购买的。
因为我需要用到手机贴膜的时候,我不知道它被我放到哪里了。甚至我已经忘了我有没用完的手机贴膜。
也是真的我需要用到它,我会打开购物软件软件,再买一次。
为什么会再买一次呢?因为我已经忘记了之前我有这个东西。
我的记性是不太好的。有次,我问我的朋友,我问她有没有容貌焦虑,她说没有。
我跟着说:我也没有,但是我有记忆焦虑。
我明明和自己的脑子说,记住XX事情,然后过了一会就忘了。
我迫切需要一个物品清单,记录了我家里有什么东西,放在了哪里。
现在我买了两个收纳箱子,后面记录清楚物品的位置。
这个需求是否可以制作成一个app,我正在思考。
我在搬家的时候,喊了一个搬家师傅,我问他:你的车能不能一车拉走,他看到我的东西后,直摇头:你东西太多了,这样不行。
他顿了一顿说:除非加钱。
他说要额外给80元。
我一听不行!我在平台上 ...
我是忘记了今天是2025年考研第一天,时间过得真快,记忆模糊到忘记了第一天要考什么科目。
难怪昨晚老妹发信息给我:考古。
她昨晚翻了翻我的朋友圈,然后给我发信息说:考古。
当时我在加班,一时之间不知道她为何说起考古的意思。
因为老妹连续几年都去当志愿者,今天也不例外。她今天六点多天没亮就出门了,给我们发了一张天色渐亮的照片。我八点半起床耍手机,看到群信息,才意识到今天是考研的第一天。
能在大学里,做一些有意思的事情,以后大学毕业了,出来工作回想以前大学生活总不至于全是灰色记忆。
每年考研的日子都是很有规律的,那就是在圣诞节附近的那个周末。
不知不觉间,距离我的考研,快十年过去了,时间是最无情的杀手。
我记得我考研分数是344分,数学考了九十多,然后其他科目分数都忘了。
由于我是临时考研的,报的学校不是优质学校,当时的想法就是“有书继续读就行,不干测量就行”。
乃至于,到9月份我才知道是先报学校,再去考试。
说起来,我是不后悔,因为当时大一大二大三,打游戏是真的“开心快乐,无忧无虑”。每天都是打游戏。
当然啦,这种无忧无虑的苦果,也是自己吃下:考不到好点的学校。
说起来也很奇怪,当年 ...
大家好,我是小白。
最近处理国产卫星数据(比如高分、吉林一号这些),经常遇到一个痛点: 拿到的原始数据(L1级)是不带地理坐标的 。
直接拖进ArcGIS或QGIS里?arcgis就自动使用同一个目录下的rpc文件对金字塔文件进行几何校正。如果你想看它到底覆盖了地球上哪块地,通常的做法是做“正射纠正”——但这玩意儿费时费力啊,几百景数据跑下来,电脑风扇都能起飞。
其实,如果我们只是想“知道它在哪”,完全不需要处理图像像素,只需要读懂它的“身份证”—— RPC文件 就够了。
今天给大家分享一段Python代码,逻辑很硬核,但用起来很爽。它的功能很简单: 读取原始影像的RPC参数,直接算出影像的四个角点坐标,生成一个Shapefile框框。
为什么要搞这么复杂?很多同学会问:“直接读Tiff里的元数据不行吗?”
对于已经纠正过的产品(L2级以上),当然可以。但对于原始影像,相机和地面的关系是非常复杂的几何投影,并没有简单的Affine Transform(仿射变换),而是通过有理多项式系数(RPC)来描述的。
简单说,RPC就是一个超级复杂的数学公式,告诉我们: 图像上的第几行第几列,对应 ...
从 os.path 转向 pathlib 是 Python 开发中的一个重要升级。虽然 os.path 已经服务了我们很多年,但 pathlib(自 Python 3.4 引入)采用了面向对象的设计,让代码从“字符串拼接”变成了“逻辑操作”,显著提升了代码的可读性和可维护性。
老实说,我在日常工作中,使用os.path更多,但是有必要学习一下pathlib,于是有了这篇文章。这也方便小白日后学习、查询。
以下是从 os.path 过渡到 pathlib 的核心指南。
1. 核心哲学:字符串 vs 对象os.path: 将路径视为字符串。你需要不断调用函数并传入这些字符串。
pathlib: 将路径视为对象。路径本身拥有属性(文件名、后缀)和方法(合并、移动、读取)。
基础导入:
import os
from pathlib import Path
2. 常用操作对照表这是最直观的迁移参考,涵盖了 90% 的日常使用场景。
操作类型
os.path / os
pathlib (Path 对象)
获取当前工作目录
os.getcwd()
Path.cwd()
当前用户 ...
在 GIS 开发中,我们经常需要从 Shapefile 或其他矢量文件中提取属性表的唯一值。今天分享一个简单的 Python 函数,使用 GDAL 的 OGR 模块来实现这个功能。
函数 get_names_from_vector 接收矢量文件路径和字段名作为参数。它首先打开文件,检查字段是否存在,然后遍历所有要素,收集唯一值到集合中。代码中加入了打印语句,便于调试。
这个小工具特别适合批量处理地理数据,比如提取行政区划名称列表。
from osgeo import ogr
def get_names_from_vector(vector_path, name_field):
"""
读取矢量文件属性表指定列的所有唯一值
"""
print(f"正在读取矢量文件: {vector_path}")
ogr.RegisterAll()
ds = ogr.Open(vector_path, 0)
if ds is None:
raise IOError(f"无法打开文件: {vector_path} ...
作为一名遥感行业从业者,深知获取高质量标注数据集的痛点。针对新物体类别的分割任务,往往需要手动收集并标注成千上万张图像。相比物体检测的边界框标注,像素级分割的精确度要求更高,工作量成倍增加。
Meta的Segment Anything Model (SAM) 模型提供了一种革命性方法,能大幅加速各种物体的标注过程。下面,我们来深入探讨这个出色模型的细节。
主要内容
什么是Segment Anything Model (SAM)?
为什么需要SAM?
SAM的架构
SAM模型训练
结果分析
SAM 2的新特性
什么是Segment Anything Model (SAM)?SAM 是Meta AI开发的最先进AI模型,能在图像或视频中识别并分割任意物体。作为计算机视觉的基础模型,它无需额外训练即可泛化到新物体类别和任务。
本质上,SAM 执行图像分割任务,即将图像分区成多个物体段落。但它超越传统分割模型的地方在于:
通用性:能分割任何物体,即使训练数据中未包含。
交互性:用户可通过点、框或文本等提示引导模型。
实时性:能实时生成高质量掩码,适合交互应用。
适应性:无需大量重训,即可微 ...
我有个哥们儿,最近老跟我聊起一个事儿。他说,好多人二十出头的时候,对未来没啥紧迫感,觉得日子还长着呢。可一过三十,那股危机感就跟开了闸似的,扑面而来,让人有点慌神。
他想了好久,觉得中年危机,其实不是真等到中年才冒出来的,早在大家年轻时候就埋下了种子,只不过很多人拖到中年才猛地醒过味儿来。
赚钱这事儿,说白了就是你得有能耐,给社会添点值钱的东西,然后别人心甘情愿拿钱跟你换。
公司呢?在我哥们儿看来,就是个中间商,抽水的那种。往往有个牛人,带领导范儿的,拉起一帮人给他干活儿,攒出价值,再打包卖给外面的人。
为啥打工总赚不到大钱?不是你没出力,而是你出力没直达市场。你帮公司、帮老板忙活,换来的就那点死工资,不是产品卖掉后的分成。
公司这玩意儿,本质上就是中介、抽成、打包整合。老板雇你和一堆人,合力搞出东西卖出去。你要明白这个,就比很多人清醒多了。
如果你自己能单枪匹马跟市场换东西,那干嘛还吊死在一家公司树上?打工的根儿上,是因为你还玩不转独立创值,这才是要害。
所以,赶紧挖挖自己有啥本事,能让其他人买单的点子。
现在好多人去摆摊,我哥们儿觉得这超赞,从不觉得丢人,还觉得他们聪明着呢。
就算 ...
大家好,我是小白说遥感!今天我们继续聊聊遥感图像处理中的“老朋友”——裁剪影像(image clipping)。这是地理信息和遥感领域最常见、最基础的操作之一,但别看它简单,里面的“坑”和“门道”一点也不少。
随着传感器分辨率越来越高,单张影像动辄几十 GB,上百 GB 也不稀奇。很多小伙伴处理大文件时,经常出现内存爆掉、程序卡死、电脑宕机的情况(尤其是笔记本用户)。
那么裁剪这么大体量的影像,到底该怎么选工具?今天我们就从 rasterio 和 GDAL 两个角度来聊聊。
先说 rasterio:简单好用,但有“内存短板”rasterio 是一个专注于栅格数据操作的 Python 库,API 友好得像在玩积木,非常适合做快速开发和小规模数据处理。
其中最常用的裁剪函数就是:
from rasterio.mask import mask
out_image, out_transform = mask(src, [geometry], crop=False)
只要提供一个矢量 polygon,rasterio 就能帮你把影像剪得干干净净,尤其适合做:
小范围试验
批量测试
快速 d ...
大家好,我是小白说遥感,今天我们来聊聊在地理空间工作流中,YOLO 与 SAM 的对比分析。1. 数据集要求:有监督的边界框 vs 无需训练的提示
YOLO (v3 至 v9、YOLOv8、YOLO-NAS、YOLO-World)YOLO 是一种典型的数据驱动型模型。它要求提供带有标注的边界框数据集进行训练。它最适用于 COCO 风格的标注格式。在地理空间领域,YOLO 擅长处理来自大型正射影像的数百万个瓦片数据,尤其适用于数据经过清晰整理和策展的情况。
SAM (SAM、FastSAM、MobileSAM、SAM2)SAM 是一种零样本分割模型。它最大的特点是无需训练数据集。它通过使用提示(Prompt),如点、边界框或粗略的掩膜,来引导模型生成精确的分割结果。SAM 是在缺乏现有多边形标注或需要进行快速分割实验时的理想工具。
数据集总结:
YOLO 依赖大量标注数据,但运行稳定,结果可预测。
SAM 无需数据集,但分割结果依赖于用户输入的提示质量。
2. 算法与架构差异:检测优先 vs 分割优先YOLO:一步式目标检测器YOLO 是一种一步式目标检测器(One-Stage ...







