如果你的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] ...
地理信息系统(GIS)这行,听起来高大上,实际上也确实有点“高处不胜寒”。作为一个从测绘专业毕业、如今写遥感开发代码的程序员,我算是踩过不少坑,也摸索出点门道。今天就跟大家聊聊GIS的“前景”和“钱景”,还有我自己是怎么在这行里找定位的,希望能给迷茫的兄弟姐妹们一点启发。
前景:技术很牛,机会不少GIS的前景,真的挺让人心动的。我大学学测绘的时候,天天跟地图、坐标打交道,后来转行写代码,发现GIS简直是技术爆炸的宝藏地。计算机视觉(CV)、遥感反演、分类识别,这些技术加持下,GIS能干的事越来越多。比如,我最近在搞一个遥感项目,用卫星影像监测山火,精度高到能看清哪片林子烧得最狠;还有城市交通优化,拿空间分析一算,堵车点立马暴露。这样的活儿,既有技术含量,又能实实在在解决问题,感觉自己是在“造福千万家”。
更别提现在GIS人才有多稀缺了。前景是真香,谁能啃下技术硬骨头,谁就能吃到肉。
钱景:门槛太高,钱不好赚但说到“钱景”,我得泼点冷水。GIS这行看着高大上,赚钱却没那么容易。高端市场基本被大佬垄断,像航天科工、华为这种,资金技术都硬得不行,小玩家根本挤不进去。我之前试着接过私活, ...
下载方式要在GitHub上下载别人的项目及其历史版本,可以通过以下步骤实现:
直接下载ZIP文件
进入项目仓库页面,点击右上角的绿色“Code”按钮,选择“Download ZIP”即可下载当前最新版本的压缩包。
优点:无需安装Git工具,适合快速获取代码快照。
2.使用Git克隆项目
复制仓库的HTTPS或SSH链接(点击“Code”按钮后可见)。
在本地命令行中执行:
git clone <仓库URL>
仓库URL是复制下图红色框的内容。
比如我要下载rs-tool的,那么我就需要在命令行输入:
git clone git@github.com:ytkz11/rs-tool.git
优缺点第一种方法,下载到本地的是一个压缩包,除了有些傻瓜之外,压缩包的名字末尾会加上master的字眼。
比如,下载rs-tool压缩包到本地,文件名字如下图所示。
题外话,在何同学的视频《我用 36 万行备忘录做了个动画》中,他使用了一个别人的项目,而他下载项目的方式正是我们提到的第一种方式——直接下载压缩包。下图是视频中对应的画面,清晰地展示了他文件夹项目的名字。
...
SSH工具,我之前用的是xshell。今天问了朋友,有没有更好的Ssh工具,她给我推荐了XTerminal。
各位读者朋友们好!转眼间3月已接近尾声,感谢大家对本公众号的持续关注。本月我们围绕遥感技术开发、地理信息工具更新、编程实践与行业洞察等方向,产出了多篇干货内容。现将3月文章精华整理如下:
一、遥感技术深度解析1.[大影像处理优化]《遥感影像有效范围的矢量文件生成的改进》重磅推出分块处理方案,成功解决90G无人机影像内存溢出问题,并预告将发布开箱即用的exe工具。 1
2.[卫星数据处理]《利用葵花8气象卫星:从爬虫到视频生成》完整揭秘卫星数据下载、校正与可视化全流程,未来计划实现社交媒体自动同步。
3.[几何校正原理]《你知道吗?地球是斜着自转的!》科普地球自转轴倾斜对遥感影像的影响,强调RPC文件在几何校正中的关键作用。
二、开发工具与代码实战1.[工具升级]《RS Tool - 遥感数据处理工具 v0.0.8》新增栅格处理与矢量格式转换功能,持续打造“小而美”的跨平台开源工具。
2.[分幅处理利器]《使用GDAL库按1000x1000米格网分幅处理卫图》发布split_raster_into_tiles.exe,零配置实现大影像无缝切割。
3.[编程技巧]《用Python和GD ...
代码
import sys
import os
import subprocess
import threading
import shutil
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QSpinBox
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt
from qfluentwidgets import (LineEdit, ComboBox, PushButton, TextEdit, BodyLabel,
MessageBox, CheckBox, IndeterminateProgressBar)
class YTDLPInterface(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitl ...
1. 项目是什么?(What is OpenFreeMap?)OpenFreeMap 是一个免费、开源的地图托管解决方案,基于 OpenStreetMap (OSM) 数据。它允许你在网站或应用程序中显示自定义样式的地图。你可以选择自己托管(self-host)或者直接使用他们提供的公共实例。
核心特点:
完全免费,没有地图浏览次数或请求次数限制。
无需注册、API 密钥或 cookies,隐私友好。
开源,不搞“开放核心”(open-core)那一套,所有代码和生产环境配置都公开。
提供每周更新的全球地图数据下载(Btrfs 和 MBTiles 格式)。
通过捐款维持公共实例的运营。
目标: 为开发者提供一个高质量的矢量瓦片(vector-tile)托管方案,利用现有工具(比如 OpenStreetMap、Planetiler、MapLibre 等),无需自己从头开发复杂的地图服务。
2. 它能做什么?不能做什么?(Scope and Limitations)能做什么:
显示基于 OpenStreetMap 数据的自定义样式地图。
提供生产级别的瓦片托管(tile ho ...
面矢量转线矢量,当然可以在arcgis上进行,只是速度实在是太慢了。
除了慢之外,还有一个很严重的问题,那就是属性字段丢失。
面矢量的属性字段如下:
在arcgis转换后的线矢量的字段如下:
使用ogr而开发的面矢量转换线矢量则不存在这个问题。对于同一个面矢量文件,arcgis需要2分钟的处理时间,而我们写的代码进行面线转换只需要10秒。这个效率提升是非常惊人的。
我使用的arcgis版本是老版本,10.2. 对于arcgis pro,我没有去测试。
现在,详细讲一讲这个过程。
在自然资源调查项目中,张工遇到了一个棘手的问题:他需要将20万亩农田的矢量面数据转换为边界线,用于后续的田埂路径分析。但当使用常规GIS软件的导出边界功能时,发现带洞的多边形(如果园中的蓄水池区域)总是处理失败,属性信息也丢失严重。这个案例暴露出GIS数据处理中一个常见痛点——如何实现精准的面转线转换?
一、面转线需求背后的技术挑战在国土调查、城市规划、农业遥感等领域,面转线操作存在三大共性需求:
拓扑关系维护:保持相邻多边形的公共边界完全重合
属性继承:保留原始面要素的编号、类型等属性信息
复杂 ...
使用 Nginx/Apache 专业部署
安装 Nginx:
sudo apt update && sudo apt install nginx
2.
创建配置文件 /etc/nginx/sites-available/video:
server {
listen 80;
server_name http://129.204.22.103/;
location / {
root /home/ubuntu/code/h8/video;
autoindex on; # 开启目录列表
# 添加视频流支持(调整浏览器缓存)
location ~ \.(mp4|webm|mov)$ {
add_header Cache-Control "no-store";
add_header X-Content-Type-Options "nosniff";
expires 0;
}
...