rpb/rpc文件说明与matlab读取

什么是rpb/rpc文件?

        rpb文件是用来存储用于遥感数据几何校正的RPC(Rational Polynomial Coefficients )模型的文件。类似的还有RPC文件,rpb与rpc文件只是格式不同,但包含的信息一致。其用于从图像坐标转换到地理坐标,L1级别的遥感数据是没有经过地理编码及几何校正的,因此可以通过数据包内的RPC文件进行数据几何校正(地理编码)。

        RPC参数是有理函多项式函数模型的参数,可以将遥感影像的图像坐标(Line,Sample)即(行号,列号)与其对应的大地坐标(Lat,Long, Height)即(纬度,经度,高程)用比值多项式一一对应起来。RPC的概念得到了很大的关注是因为RPC不仅可以将传感器成像的物理模型隐藏起来,同时可以通过RPC模型校正出几何精度更高的卫星数据。不同数据厂商使用不同的方法生成RPC文件,但目前大多数都采取的非线性最小二乘法(Non linear Least square)。在成像期间,要拟合的数据由物理传感器模型生成。        

        更详细的了解参考:

        卫星RPC有理多项式模型原理与正反算实现(python)-CSDN博客
        看懂卫星遥感数据RPC文件-CSDN博客

rpb/rpc文件格式

        rpb/rpc文件通常以文本文件或xml文件格式存储,对于国产高分数据多采用文本文件格式。

        rpb文件***.rpb格式示例:

satId = "XXX";
bandId = "XXX";
SpecId = "XXX";
BEGIN_GROUP = IMAGE
	errBias =   1.0;
	errRand =    0.0;
	lineOffset = 	+8.787000000000000e+03
	sampOffset = 	+8.787000000000000e+03
	latOffset = 	+5.197788782488139e+01
	longOffset = 	+1.267276217581132e+02
	heightOffset = 	-3.665824527965528e+01
	lineScale = 	+8.787500000000000e+03
	sampScale = 	+8.787500000000000e+03
	latScale = 	+1.000000000000000e+01
	longScale = 	+1.000000000000000e+01
	heightScale = 	+5.036755360952578e+03
	lineNumCoef = (
		-2.489085287819830e-04,
		-1.114244712474867e+01,
		-6.168967195179680e+01,
		+7.117708104229436e-05,
		-1.395349820950307e-01,
		+8.696093392117951e-03,
		-9.575461257281814e-04,
		+7.734382012664702e-01,
		+2.574838134723002e-02,
		+5.070051498763076e-06,
		-5.809725628331042e-03,
		+5.140801824748853e-03,
		+4.289598645908305e-03,
		+2.294752920112858e-03,
		-9.015843957850683e-04,
		+1.035394535926532e-02,
		+1.232218463012144e-02,
		+3.230339260864579e-02,
		+1.047590959343009e-03,
		+2.012768440253724e-08);
	lineDenCoef = (
		+1.000000000000000e+00,
		+4.180010565216353e-04,
		+1.324655197657377e-02,
		-3.795304837771012e-05,
		+2.545365596961364e-01,
		-3.899350380745237e-04,
		+5.589868166444578e-05,
		+1.188681625956534e-03,
		+6.863241299655094e-01,
		-2.002690706130058e-04,
		-2.072288733039329e-04,
		+6.133069607160820e-03,
		-1.449422536681941e-03,
		-2.011485529779256e-06,
		+3.500482182174969e-03,
		+4.198143375537498e-04,
		-2.285845110305829e-06,
		-2.172369339810132e-04,
		-4.144345265331140e-04,
		-1.836223330071302e-09);
	sampNumCoef = (
		+3.116290493890969e-03,
		+3.762565560709448e+01,
		-1.780287250778219e+01,
		+4.667388215545534e-02,
		-1.418392610803636e+00,
		-4.579691619531623e-02,
		+3.030408501996984e-02,
		-5.911326661297898e-01,
		-2.781904253558995e+00,
		-9.782108549302553e-05,
		+1.239834648584903e-03,
		+1.999566996539736e-01,
		+6.939464036194087e-02,
		-4.737705433260331e-02,
		-2.858026398839704e-01,
		-9.898030356627813e-03,
		+2.240107912228240e-02,
		+2.526433759914681e-03,
		+4.945279318567586e-03,
		-5.870434133733310e-05);
	sampDenCoef = (
		+1.000000000000000e+00,
		+3.227373471194835e-01,
		+3.944306307994457e-02,
		-9.509654358749953e-03,
		+1.207778166635094e+01,
		-3.232572945854702e-02,
		+1.355313365456889e-02,
		-1.277420643579939e+01,
		-2.837944635154219e+00,
		-1.255397137925662e-03,
		+8.474582054034840e-02,
		+8.587278629665410e-03,
		+1.984850060313677e-02,
		-6.307604213724449e-04,
		+2.407506405453826e-02,
		-1.315252027876808e-02,
		+2.805758450086238e-05,
		-9.639541191512180e-02,
		-1.882857688509176e-02,
		+1.022672251679239e-05);
END_GROUP = IMAGE
END;

        rpc文件***.rpc格式示例:

LINE_OFF :+8.787000000000000e+03  pixels
SAMP_OFF : +8.787000000000000e+03  pixels
LAT_OFF : +5.197788782488139e+01   degrees
LONG_OFF:  +1.267276217581132e+02   degrees
HEIGHT_OFF: -3.665824527965528e+01   meters
LINE_SCALE: +8.787500000000000e+03  pixels
SAMP_SCALE:  +8.787500000000000e+03  pixels
LAT_SCALE: +1.000000000000000e+01   degrees
LONG_SCALE: +1.000000000000000e+01   degrees
HEIGHT_SCALE :+5.036755360952578e+03   meters
LINE_NUM_COEFF_1:-2.489085287819830e-04
LINE_NUM_COEFF_2:-1.114244712474867e+01
LINE_NUM_COEFF_3:-6.168967195179680e+01
LINE_NUM_COEFF_4:+7.117708104229436e-05
LINE_NUM_COEFF_5:-1.395349820950307e-01
LINE_NUM_COEFF_6:+8.696093392117951e-03
LINE_NUM_COEFF_7:-9.575461257281814e-04
LINE_NUM_COEFF_8:+7.734382012664702e-01
LINE_NUM_COEFF_9:+2.574838134723002e-02
LINE_NUM_COEFF_10:+5.070051498763076e-06
LINE_NUM_COEFF_11:-5.809725628331042e-03
LINE_NUM_COEFF_12:+5.140801824748853e-03
LINE_NUM_COEFF_13:+4.289598645908305e-03
LINE_NUM_COEFF_14:+2.294752920112858e-03
LINE_NUM_COEFF_15:-9.015843957850683e-04
LINE_NUM_COEFF_16:+1.035394535926532e-02
LINE_NUM_COEFF_17:+1.232218463012144e-02
LINE_NUM_COEFF_18:+3.230339260864579e-02
LINE_NUM_COEFF_19:+1.047590959343009e-03
LINE_NUM_COEFF_20:+2.012768440253724e-08
LINE_DEN_COEFF_1:+1.000000000000000e+00
LINE_DEN_COEFF_2:+4.180010565216353e-04
LINE_DEN_COEFF_3:+1.324655197657377e-02
LINE_DEN_COEFF_4:-3.795304837771012e-05
LINE_DEN_COEFF_5:+2.545365596961364e-01
LINE_DEN_COEFF_6:-3.899350380745237e-04
LINE_DEN_COEFF_7:+5.589868166444578e-05
LINE_DEN_COEFF_8:+1.188681625956534e-03
LINE_DEN_COEFF_9:+6.863241299655094e-01
LINE_DEN_COEFF_10:-2.002690706130058e-04
LINE_DEN_COEFF_11:-2.072288733039329e-04
LINE_DEN_COEFF_12:+6.133069607160820e-03
LINE_DEN_COEFF_13:-1.449422536681941e-03
LINE_DEN_COEFF_14:-2.011485529779256e-06
LINE_DEN_COEFF_15:+3.500482182174969e-03
LINE_DEN_COEFF_16:+4.198143375537498e-04
LINE_DEN_COEFF_17:-2.285845110305829e-06
LINE_DEN_COEFF_18:-2.172369339810132e-04
LINE_DEN_COEFF_19:-4.144345265331140e-04
LINE_DEN_COEFF_20:-1.836223330071302e-09
SAMP_NUM_COEFF_1:+3.116290493890969e-03
SAMP_NUM_COEFF_2:+3.762565560709448e+01
SAMP_NUM_COEFF_3:-1.780287250778219e+01
SAMP_NUM_COEFF_4:+4.667388215545534e-02
SAMP_NUM_COEFF_5:-1.418392610803636e+00
SAMP_NUM_COEFF_6:-4.579691619531623e-02
SAMP_NUM_COEFF_7:+3.030408501996984e-02
SAMP_NUM_COEFF_8:-5.911326661297898e-01
SAMP_NUM_COEFF_9:-2.781904253558995e+00
SAMP_NUM_COEFF_10:-9.782108549302553e-05
SAMP_NUM_COEFF_11:+1.239834648584903e-03
SAMP_NUM_COEFF_12:+1.999566996539736e-01
SAMP_NUM_COEFF_13:+6.939464036194087e-02
SAMP_NUM_COEFF_14:-4.737705433260331e-02
SAMP_NUM_COEFF_15:-2.858026398839704e-01
SAMP_NUM_COEFF_16:-9.898030356627813e-03
SAMP_NUM_COEFF_17:+2.240107912228240e-02
SAMP_NUM_COEFF_18:+2.526433759914681e-03
SAMP_NUM_COEFF_19:+4.945279318567586e-03
SAMP_NUM_COEFF_20:-5.870434133733310e-05
SAMP_DEN_COEFF_1:+1.000000000000000e+00
SAMP_DEN_COEFF_2:+3.227373471194835e-01
SAMP_DEN_COEFF_3:+3.944306307994457e-02
SAMP_DEN_COEFF_4:-9.509654358749953e-03
SAMP_DEN_COEFF_5:+1.207778166635094e+01
SAMP_DEN_COEFF_6:-3.232572945854702e-02
SAMP_DEN_COEFF_7:+1.355313365456889e-02
SAMP_DEN_COEFF_8:-1.277420643579939e+01
SAMP_DEN_COEFF_9:-2.837944635154219e+00
SAMP_DEN_COEFF_10:-1.255397137925662e-03
SAMP_DEN_COEFF_11:+8.474582054034840e-02
SAMP_DEN_COEFF_12:+8.587278629665410e-03
SAMP_DEN_COEFF_13:+1.984850060313677e-02
SAMP_DEN_COEFF_14:-6.307604213724449e-04
SAMP_DEN_COEFF_15:+2.407506405453826e-02
SAMP_DEN_COEFF_16:-1.315252027876808e-02
SAMP_DEN_COEFF_17:+2.805758450086238e-05
SAMP_DEN_COEFF_18:-9.639541191512180e-02
SAMP_DEN_COEFF_19:-1.882857688509176e-02
SAMP_DEN_COEFF_20:+1.022672251679239e-05

rpb文件读取(matlab)

        定义读取函数 rpb_reader.m:

function RPC=rpb_reader(f_in_name)
   %author  dou3516
   % 2024-1-13
   % 参考:https://blog.csdn.net/weixin_43955546/article/details/123702554
   % 读取遥感RPB文件,输入经纬度,获取经纬度值对象的像素坐标。
   %f_in_name: 输入RPB文件名称

    % 1 读取RPB文件内容
    fid1=fopen(f_in_name,'r');
    
    read_one_line = fgetl(fid1);
    read_one_line = fgetl(fid1);
    read_one_line = fgetl(fid1);
    read_one_line = fgetl(fid1);
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',});
    errBias=str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',});
    errRand=str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',});
    RPC.line_off =str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',});
    RPC.samp_off=str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',});
    RPC.lat_off =str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.lon_off=str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.height_off=str2double(temp(2));
    
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.line_scale=str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.samp_scale=str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.lat_scale =str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.lon_scale =str2double(temp(2));
    
    read_one_line = fgetl(fid1);
    temp=strsplit(read_one_line,{';','=',')',','});
    RPC.height_scale =str2double(temp(2));
    
    read_one_line = fgetl(fid1); 
    for i=1:20
         read_one_line = fgetl(fid1);
        temp=strsplit(read_one_line,{';','=',')',','});
        RPC.line_num_coeff(i)=str2double(temp(1));
    end
    read_one_line = fgetl(fid1); 
    for i=1:20
         read_one_line = fgetl(fid1);
        temp=strsplit(read_one_line,{';','=',')',','});
        RPC.line_den_coeff(i)=str2double(temp(1));
    end
     read_one_line = fgetl(fid1); 
    for i=1:20
         read_one_line = fgetl(fid1);
        temp=strsplit(read_one_line,{';','=',')',','});
        RPC.samp_num_coeff(i)=str2double(temp(1));
    end
     read_one_line = fgetl(fid1); 
    for i=1:20
         read_one_line = fgetl(fid1);
        temp=strsplit(read_one_line,{';','=',')',','});
        RPC.samp_den_coeff(i)=str2double(temp(1));
    end
    fclose(fid1);

        示例读取代码:

fRPB = '***.rpb';
RPC = rpb_reader(fRPB);

        读取到的RPC信息示例(注意不同于上述rpb文件的实际信息,仅做示例)如下:

参考:

遥感 RPC, RPB文件相关信息-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315529.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DartSDK下载

下载DartSDK(具有开发Dart命令行、服务器和非FlutterWeb应用程序所需的库和命令行工具(底层支持作用系统库)) 1.Homebrew环境 //brew --version 2.brew tap dart-lang/dart 3.brew install dart 修改host 下载成功 描述信息查看 AndroidStudio 引入配置 备注: …

x-cmd pkg | czg - git commit 智能生成工具

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 czg 源于 commitizen/cz-cli 交互插件中 cz-git 的延伸项目,重新使用 TypeScript 编写的零依赖独立的 Node.js 命令行工具。旨在使用交互友好的方式,辅助用户生成规范的 git commit message 约…

红队专题-Golang工具ChYing

Golang工具ChYing 招募六边形战士队员原chying工具代码分析并发访问控制并发 原子 写入读取 通道嵌套映射结构初始化启动代理服务器重启代理服务器 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 原chying工具代码分析 前有 Chying 后有…

如何设置gitlab.rb 将所有数据运行目录放置到指定目录

如何设置gitlab.rb 将所有数据运行目录放置到指定目录 在GitLab中,要将所有数据目录(包括仓库、日志和其他配置文件)移动到一个自定义位置,你需要编辑GitLab的配置文件 /etc/gitlab/gitlab.rb。这里主要关注的是 git_data_dir 配置…

【Git】的工作流程简介

目录 Git的工作区域Git的基本流程 1.将工作区的代码添加到暂存区2.将暂存区的文件提交到本地仓库3.将暂存区的文件提交到远程仓库 Git的工作区域 Git的基本流程 图形化方式操作 命令行模式(Linux系统常用)操作 1.将工作区的代码添加到暂存区 查看文件状…

一、docker的安装与踩坑

目录 一、安装docker(centos7安装docker)1.安装环境前期准备2.参考官网安装前准备3.参考官网安装步骤开始安装docker4.运行首个容器 二、安装一些软件的踩坑1.启动docker踩坑2.安装mysql踩坑3.罕见问题 三、关于我的虚拟机 一、安装docker(ce…

MySQL面试题 | 04.精选MySQL面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

C#编程-在线程中使用同步

在线程中使用同步 在线程应用程序中,线程需要相互共享数据。但是,应用程序应该确保一个线程不更改另一个线程使用的数据。考虑有两个线程的场景。一个线程从文件读取工资,另一个线程尝试更新工资。当两个线程同时工作时,数据就会受损。下图显示了两个线程同时访问一个文件…

SSM框架学习笔记04 | SpringMVC

文章目录 一、SpringMVC简介二、 请求与响应1. 请求映射路径2. get请求与post请求3. 响应 二、REST风格1.简介 三、 SSM整合四、拦截器1. 定义拦截器2.配置拦截器3.拦截器执行顺序4.拦截器参数5.多个连接器工作流程分析6.拦截器链的运行顺序 一、SpringMVC简介 SpringMVC技术与…

React18-树形菜单-递归

文章目录 案例分析技巧通信展示效果实现代码技巧点技巧点 Refer to 案例分析 https://github.com/dL-hx/manager-fe/commit/85faf3b1ae9a925513583feb02b9a1c87fb462f7 从接口获取城市数据,渲染出一个树形菜单 要求: 可以展开和收起 技巧 学会递归渲染出一个树形菜单, 并点击后…

[Python从零到壹] 七十四.图像识别及经典案例篇之文字图像区域定位及提取分析

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望…

力扣67. 二进制求和算法

一、【写在前面】 这道题需要,给你两个字符串比如 a "1010", b "1011"答案是:"10101" 然后需要你给出计算结果,那么我们很容易想到两种做法 1. 调库做法:直接转化为整数,然后用内…

2024年AMC8往年真题练一练和答案详解(6),还有全真模拟题

今天是1月13日,2024年AMC8正式比赛已经倒计时了,昨天AMC主办方给所有参赛选手发了短信通知,关于模拟竞赛的操作方式和实际比赛的要求指南,大家一定要认真阅读,严格按指南操作,六分成长也会详细为大家解读和…

【剪枝】【广度优先】【深度优先】488祖玛游戏

作者推荐 【动态规划】458:可怜的小猪 涉及知识点 剪枝 广度优先 深度优先 488祖玛游戏 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 ‘R’、黄色 ‘Y’、蓝色 ‘B’、绿色 ‘G’ 或白色 ‘W’ 。你的手中也有一些…

上海AI实验室等开源,音频、音乐统一开发工具包Amphion

上海AI实验室、香港中文大学数据科学院、深圳大数据研究院联合开源了一个名为Amphion的音频、音乐和语音生成工具包。 Amphion可帮助开发人员研究文本生成音频、音乐等与音频相关的领域,可以在一个框架内完成,以解决生成模型黑箱、代码库分散、缺少评估…

C语言天花板——指针(进阶2)

好久不见了各位,甚是想念啊!!!🎶🎶🎶 文章接上次的指针(进阶1)(http://t.csdnimg.cn/c39SJ),我们继续发车咯🚗🚗🚗 五、函数指针 上次我们只是浅…

py的函数讲解

前言:本章节我们来讲函数,主播略微感觉到有点小难,友友们需要认真看 目录 一.初始函数 1.1关于函数 1.2举例 1.3小结 二.函数的基础语法 2.1关于函数的语法 2.2举例 2.3小结 三.函数的参数 3.1关于函数的参数 3.2举例 3.3小结 四.函数的返回…

【AI】 AIOTSummary

智能物联网(AIoT)是2018年兴起的概念,指系统通过各种信息传感器实时采集 各类信息(一般是在监控、互动、连接情境下的),在终端设备、边缘域或云中心 通过机器学习对数据进行智能化分析,包括定位、比对、预测、调度等。智能物联网(AIoT)是2018年兴起的概念,指系统通过…

UCB Data100:数据科学的原理和技巧:第十三章到第十五章

十三、梯度下降 原文:Gradient Descent 译者:飞龙 协议:CC BY-NC-SA 4.0 学习成果 优化复杂模型 识别直接微积分或几何论证无法帮助解决损失函数的情况 应用梯度下降进行数值优化 到目前为止,我们已经非常熟悉选择模型和相应损…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑨

单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应分析处理并显示结果。返回文字“xa*a*b的值:”和x的值;返回文字“xa-b的值:”和x的值;返回文字“xab的值:”和x的值。其中变量a、b均须为整型…