ENVI SARscape||笔记

2024-09-01 04:28
文章标签 笔记 envi sarscape

本文主要是介绍ENVI SARscape||笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍就不介绍了,直入主题!

第一章 ENVI和SARscape

下载与安装:

ENVI 5.6 软件安装包下载及安装激活教程! (qq.com)icon-default.png?t=N7T8https://mp.weixin.qq.com/s/kH0g5g9AALgDNPssfdZ8wQ

启动

ENVI 的启动模式有两种:ENVI和ENVI+IDL,后者在启动ENVI的同时,还会打开IDL环 境。

文件格式

 ENVI 栅格文件格式:ENVI使用的是通用栅格数据格式,包含一个简单的二进制文件( a simple flat binary )和一个相关的 ASCII(文本)的头文件。

  • ENVI 头文件包含用于读取图像数据文件的信息,它通常创建于一个数据文件第一次被 ENVI 读取时。单独的ENVI头文本文件提供关于图像尺寸、嵌入的头文件(若存在)、数据格 式及其它相关信息。所需信息通过交互式输入,或自动地用“文件吸取”创建,并且以后可 以编辑修改。
  • 通用栅格数据都会存储为二进制的字节流,通常它将以BSQ(按波段顺序)、BIP(波段按 像元交叉)或者BIL(波段按行交叉)的方式进行存储。
1. BSQ(Band Sequential)

定义:BSQ 方式按波段顺序存储数据。每个波段的所有像元值被连续存储,波段之间的像元值交替存储。

存储结构

  • 按波段组织:数据文件中的第一个部分包含第一个波段的所有像元值,接下来是第二个波段的所有像元值,以此类推。
  • 存储顺序:所有像元在第一个波段的值后,紧接着是它们在第二个波段的值,依此类推。

优点

  • 对于波段的独立处理很方便,例如当只需要处理单一波段的数据时,BSQ 格式可以很快地访问整个波段的数据。
  • 数据读写操作在波段级别上进行,使得某些波段分析操作更加高效。

缺点

  • 当需要访问特定像元在所有波段中的数据时,可能需要跳跃读取不同波段的数据,可能导致较低的存取效率。
  • 数据文件可能会比较大,因为每个波段的所有数据都被存储在一起,导致存取时需要较大的内存。

适用场景

  • 适用于需要独立处理各个波段的情况,如波段选择、波段分析等。
2. BIP(Band Interleaved by Pixel)

定义:BIP 方式按像元交叉存储波段数据。每个像元的所有波段值被紧接在一起存储。

存储结构

  • 按像元组织:数据文件中的第一个部分包含第一个像元的所有波段的值,接下来是第二个像元的所有波段的值,以此类推。
  • 存储顺序:首先存储第一个像元的第一个波段的值,然后是第二个波段的值,再是下一个像元的值。

优点

  • 访问特定像元的所有波段数据非常高效,因为它们是连续存储的,可以快速读取完整的像元数据。
  • 适合需要处理跨波段像元数据的应用,例如在一个像元的所有波段数据上进行操作或分析。

缺点

  • 对于大规模数据集,存取效率可能较低,因为每次读取需要从整个文件中寻找和解码不同波段的数据。
  • 存储文件可能会非常庞大,特别是当像元数量很大时,可能会占用较大的内存和存储空间。

适用场景

  • 适用于需要处理跨波段像元数据的应用,如图像融合、特征提取等。
3. BIL(Band Interleaved by Line)

定义:BIL 方式按行交叉存储波段数据。每个行的所有波段数据被连续存储。

存储结构

  • 按行组织:数据文件中的第一个部分包含第一行的第一个波段的所有像元值,接下来是第一行的第二个波段的所有像元值,以此类推。然后是第二行的所有数据,以此类推。
  • 存储顺序:数据存储按行进行交错,每一行的波段数据紧接在一起。

优点

  • 访问特定行的数据效率较高,适合需要逐行处理的应用,如图像扫描、行级处理等。
  • 比 BIP 更节省内存,因为它允许顺序读取整行数据,避免了在处理时频繁地跳跃读取。

缺点

  • 对于需要访问跨行的像元数据,存取可能不如 BIP 方便,因为不同波段的数据被分散在不同的位置。
  • 可能需要较复杂的数据解码逻辑来访问特定像元的所有波段数据。

适用场景

  • 适用于需要逐行处理图像数据的应用,如图像预处理、行级数据分析等。

打开和显示文件

使用File->Open 菜单打开 ENVI 图像文件或其它已知格式的二进制图像文件。在File - >Data Manager中还包括: 打开新文件、关闭文件,以及查看元数据等操作。

图像增强显示

ENVI 包括其他遥感软件,默认会对遥感图像进行拉伸显示,以达到更好的显示效果。 ENVI 提供了多种拉伸方法(如图所示)。用户可以在工具栏中选择不同的拉伸方式,同时可以选择Custom Stretch进行自定义拉伸。

视窗链接

ENVI 下提供多视窗浏览,最多可以打开4*4=16个视窗。视窗之间可以进行链接。

在 ENVI 软件中,用户可以通过多视窗浏览功能来查看多个图像或图层。ENVI 允许最多同时打开 16 个视窗,这些视窗可以以 4×4 的网格布局显示。这种布局方式便于用户同时查看和比较不同的数据集或图像。

此外,这些视窗之间可以进行链接。视窗链接功能允许用户在一个视窗中进行的操作(如缩放、平移等)自动同步到其他链接的视窗中。这种功能非常适合于对比分析不同波段的图像或者不同时间点的影像,确保用户在一个视窗中看到的内容能够在其他视窗中即时反映。

ENVI 常用系统设置

显示设置 (Display Settings)
  • 色带 (Color Tables):ENVI 提供了多种色带供用户选择,用于增强图像的视觉效果。可以通过Display > Enhance > Color Tables进行选择和调整。
  • 直方图拉伸 (Histogram Stretch):在Display > Enhance菜单中,用户可以选择不同的直方图拉伸方法,如线性、均方根等,以增强图像的对比度。
2. 投影和坐标系 (Projections and Coordinate Systems)
  • 默认投影:可以在File > Preferences > Map Projection中设置默认的地图投影,这样新加载的数据会自动应用此投影。
  • 地理坐标显示:通过Display > Geographic Link,用户可以在图像上显示和管理地理坐标信息。
3. 文件管理 (File Management)
  • 临时文件路径:在File > Preferences > File Locations中,可以设置 ENVI 存放临时文件的位置,以优化磁盘使用。
  • 自动保存设置:通过File > Preferences > Save/Restore,用户可以启用自动保存功能,避免数据丢失。
4. 性能优化 (Performance Optimization)
  • 内存管理:在File > Preferences > Memory中,用户可以设置内存使用策略,如是否启用内存缓存,最大缓存大小等,以提高处理大数据时的性能。
  • 多线程设置:ENVI 支持多线程处理,可以在File > Preferences > Performance中设置线程数,以加速处理速度。
5. 界面设置 (Interface Settings)
  • 默认工作区布局:可以在File > Preferences > User Interface中设置默认的工作区布局,包括工具栏和菜单的显示方式。
  • 视窗布局:用户可以在Display > Window Layout中选择视窗布局,如1×1、2×2、4×4等,以便同时查看多个图像。
6. 插件和扩展 (Plugins and Extensions)
  • 扩展管理:通过File > Preferences > Extensions,用户可以管理已安装的插件和扩展,或添加新的功能模块。
7. 常用快捷键设置 (Hotkeys and Shortcuts)
  • ENVI 允许用户自定义快捷键,可以在File > Preferences > Hotkeys中设置常用命令的快捷键,提升操作效率。

第二章 SAR基础

SAR概述

什么是Radar

Radar(雷达,Radio Detection and Ranging)是一种利用无线电波来探测物体距离、方位、速度等信息的系统。它通过发射无线电波并接收从物体反射回来的回波来确定目标物体的位置和其他特性。

Radar 的基本工作原理
  1. 发射无线电波:雷达系统通过天线发射出电磁波,这些电磁波通常是微波或无线电波。

  2. 无线电波传播:发射的无线电波在空气中传播,当遇到物体时,会发生反射。

  3. 接收回波:雷达的天线会接收反射回来的无线电波,这些反射波被称为回波。

  4. 分析回波:通过分析回波信号,雷达系统可以确定目标的距离(通过计算无线电波的往返时间)、方向(通过天线方向的调整)、速度(通过多普勒效应的频移)以及大小和形状等特征。

雷达的类型
  • 脉冲雷达:通过发射短而强的脉冲,并测量回波的延迟时间来计算目标的距离。

  • 连续波雷达 (CW Radar):发射连续的波形,用于测量目标的速度(通过多普勒效应)。

  • 合成孔径雷达 (SAR):用于成像,常用于地球观测卫星中,可以生成高分辨率的地面图像。

  • 相控阵雷达:使用相控阵天线技术,可以快速改变发射波束的方向,适用于跟踪快速移动的目标。

 什么是SAR

SAR(Synthetic Aperture Radar,合成孔径雷达)是一种主动遥感成像技术,利用雷达系统发射电磁波并接收回波信号,以生成高分辨率的二维或三维地面图像。SAR 技术广泛应用于地球观测、军事侦察、灾害监测等领域。

SAR 的工作原理
  1. 发射雷达信号:SAR 系统通过天线向地面发射电磁波脉冲。

  2. 接收回波信号:电磁波遇到地面或其他目标后反射回到雷达系统,天线接收这些回波信号。

  3. 合成孔径:由于实际雷达天线的物理孔径(即天线尺寸)有限,无法获得足够的分辨率。SAR 通过移动平台(如卫星或飞机)上的天线沿飞行路径移动,相当于合成了一个比实际天线孔径更大的“合成孔径”,从而提高了图像分辨率。

  4. 成像处理:将接收到的回波信号经过处理,生成高分辨率的地面图像。SAR 的成像过程包括雷达信号的调制、解调、匹配滤波和聚焦等步骤。

什么是InSAR

InSAR(合成孔径雷达干涉测量,Interferometric Synthetic Aperture Radar)是一种通过使用雷达数据来测量地球表面形变的技术。它通过从不同时间和位置拍摄的雷达影像的干涉图来检测微小的地表变化。

工作原理:
  1. 雷达成像:首先,卫星或飞机上的合成孔径雷达从不同时间(通常是几天到几年的时间跨度)对同一地区进行成像。这些影像被称为雷达影像。

  2. 干涉图生成:将不同时间的雷达影像进行叠加,形成干涉图。这个干涉图通过对比不同影像的相位差异来反映地表的微小位移。

  3. 形变分析:通过分析干涉图中的相位信息,InSAR可以精确测量地表的形变,包括地震、火山活动、地陷等引起的微小位移。这种位移通常在毫米级别。

应用领域:
  • 地震监测:InSAR能够检测和测量地震引起的地表位移。
  • 火山监测:它可以监测火山的形变,帮助预测火山喷发。
  • 地陷监测:InSAR能够检测城市区域或其他区域的地表下沉或变形。
  • 冰川运动监测:它可以监测冰川的移动和融化情况。

主要星载雷达系统

系统发射时间波段极化图幅宽度(KM)分辨率(米)重复周期(天)国家/机构
Sentinel-12014年4月C波段(5.405 GHz)单极化/双极化- IW: 250 km
- EW: 400 km
- Stripmap: 5 m × 5 m
- IW: 20 m × 5 m
- EW: 40 m × 40 m
12天(单星)
6天(双星)
欧洲航天局(ESA)
RADARSAT-22007年12月C波段(5.405 GHz)单极化/双极化- Fine: 50 km
- Standard: 100 km
- ScanSAR Wide: 500 km
- Fine: 3 m × 3 m
- Standard: 8 m × 8 m
- ScanSAR Wide: 50 m × 50 m
24天加拿大航天局(CSA)
TerraSAR-X2007年6月X波段(9.65 GHz)单极化/双极化- Spotlight: 10 km
- Stripmap: 30 km
- ScanSAR: 100 km
- Spotlight: 1 m × 1 m
- Stripmap: 3 m × 3 m
- ScanSAR: 18 m × 40 m
11天德国航天中心(DLR)
ALOS-22014年5月L波段(1.2 GHz)单极化/双极化- Spotlight: 25 km
- Stripmap: 70 km
- ScanSAR: 350 km
- Spotlight: 1 m × 3 m
- Stripmap: 3 m × 3 m
- ScanSAR: 100 m × 100 m
14天日本宇宙航空研究开发机构(JAXA)
Cosmo-SkyMed2007年6月X波段(9.6 GHz)单极化/双极化- Spotlight: 10 km
- Stripmap: 40 km
- ScanSAR: 100 km
- Spotlight: 1 m × 1 m
- Stripmap: 3 m × 3 m
- ScanSAR: 30 m × 30 m
16天意大利航天局(ASI)
NISAR2024年(计划发射)L波段(1.25 GHz)
S波段(3.2 GHz)
单极化/双极化240 km3 m × 3 m12天NASA 和印度空间研究组织(ISRO)

更多SAR知识获取

《InSAR原理与应用》  刘国祥 陈强等 著  科学出版社出版

《矿区地表沉降监测的DInSAR信息提取方法》  范洪冬等 著 中国矿业大学出版社出版

第三章 SAR数据处理

注:处理GF3数据需要安装SARsape5.4.1及以上版本。

注:SARscape 不支持中文路径,输入、输出、临时文件目录都避免中文字符。

SARscape 系统设置

SARscape 针对不同的数据源、不同的处理,提供了相应的系统默认参数,在处理数据之前,根据数据选择一套相应的处理参数,参数包括所有的SAR数据处理步骤的参数,如:基本参数、滤波、地理编码、配准、去平、干涉、PS处理,等在处理时,大多数情况都可按照默认参数进行处理。 SARscape 针对不同的数据源提供的系统参数有以下几套:

  • General——常用的系统参数,没有特定数据源的要求
  • Stereo——适用于立体测量的一套系统参数 • VHR (better than 10m)——适用于高分辨率的数据的一套系统参数
  • HR (between 10m and 30 m)——适用于中高分辨率的数据的一套系统参数
  • MR (coarser than 30m)——适用于中分辨率的一套系统参数
  • Interferometry-LowCoherence——适用于相干性低的干涉像对的系统参数
  • WrongOrbitalData——适应于轨道参数不可信的数据的系统参数
  • TSX1_TDX1_TANDEM——适用于 TerraSAR-X + Tandem-X 双星模式 InSAR 处理的系统 参数
  • CInSAR ERS-ASAR_interferometry—— 适用于 ERS 和 ASAR 对做 InSAR 处理的系统参 数
  • SENTINEL TOPSAR——适用于哨兵TOPSAR (IW)模式的数据做InSAR处理的系统参数
  • PALSAR2_ScanSAR——适用于Palsar2 ScanSAR 模式数据做InSAR处理的系统参数
  • TSX ScanSAR——适用于TSX ScanSAR模式数据做InSAR处理的系统参数
  • Squinted Data——适用于斜视的数据(Palsar 1,JAXA SLC数据)

比如要处理哨兵数据,在Toolbox中单击/SARscape/Preferences,在打开的界面中,单击Load Preferences,选择 SENTINEL TOPSAR,在弹出的对话框上选择“是”。在参数设置面板上点击 OK。

加载一套系统参数之后,一般要设置数据本身的制图分辨率,便于在多视的时候软件自动计算视数。点击General parameters选项,在Cartographic Grid Size 一项,手动填入所要处理数据的制图分辨率,(如果预先不知道数据的分辨率,可以在导入数据之后,通过元数据 文件中的信息计算出分辨率,再在此设置。)如下图所示:

SARscape 中有一些处理用到了GPU加速,如地理编码处理。如果计算机支持GPU,在General Parameters 面板,Opencl Platform Name 的类型会自动选为相应的设备以提高处理速度。

数据处理准备工作

步骤一、数据导入

后续更新……

SLC数据

强度数据

步骤二、参考DEM数据的获取

SARscape自动下载DEM数据的工具

外部DEM数据的使用

步骤三、下载Sentinel-1 卫星精密轨道数据

Raw SAR 数据聚焦

单雷达图像处理

制图分辨率计算方式:

浏览 .sml 文件,假设获取本数据入射角:20.8 度,距离向采样间隔 :4.73 米,那么最大制图分辨率为4.73/sin(20.84)=13.3,因此可以设置制图分辨率为15米。

实用工具

工具可在Toolbox/SARscape/General Tools中找到。操作方式较简单,这里不一一介 绍,具体功能如下表所示:

地图投影转换Map Projection Conversion将影像或数据从一种地图投影转换为另一种。支持各种常见的地图投影方式,如UTM、WGS84等。
数据统计Data Statistics提供影像或数据的基本统计信息,包括平均值、标准差、最大值、最小值、直方图分析等。适用于分析数据的分布、质量以及进行初步的统计分析。
彩色合成Color Composite将多个波段的影像合成为一幅彩色图像,通常用于可视化多光谱或雷达影像数据,生成伪彩色图像以突出显示不同的地表特征。
生成地面控制点文件Generate Ground Control Points创建地面控制点(GCP)文件,用于影像几何校正或精确配准。支持手动选择和自动生成控制点,确保影像的空间精度。
生成TIFF文件Generate TIFF File将处理后的影像或数据保存为GeoTIFF格式,该格式广泛用于地理信息系统(GIS)和遥感分析中。
图像修改Image Modification对影像进行基本的修改操作,如裁剪、旋转、缩放、镜像等。适用于对影像进行初步处理,或在进一步分析之前对影像进行准备。
PRF校正PRF Correction对SAR数据进行脉冲重复频率(PRF)校正,修正由于PRF变化引起的数据偏差,确保数据的一致性和质量。
质量分析Quality Analysis对影像或数据的质量进行评估,包括信噪比(SNR)、对比度、模糊度等指标的分析,用于确保数据在处理和分析中的可靠性。
样本(子区)选择Subset Selection从影像中选择特定的子区域或样本区,用于局部分析或进一步处理。用户可以根据坐标范围或通过交互式选择工具来选取感兴趣的区域。
影像配准Image Registration将不同时间、不同传感器或不同轨道的影像精确对齐,常用于多时相、多传感器数据的对比分析和变化检测。
图像平滑Image Smoothing通过应用平滑滤波器(如均值滤波、高斯滤波)减少影像中的噪声,提高影像的质量,特别是在SAR影像处理中常用。
DEM生成DEM Generation从立体影像对或干涉SAR数据生成数字高程模型(DEM),用于地形分析、洪水模拟、地表变化监测等。
影像融合Image Fusion将不同分辨率或不同传感器的影像融合在一起,以获取更高质量、更丰富信息的影像数据。常见的融合方法包括主成分分析(PCA)、小波变换等。
重采样Resampling对影像进行重采样,以调整影像的分辨率或匹配其他数据的网格。支持最近邻插值、双线性插值、三次卷积插值等方法。
雷达影像模拟Radar Image Simulation模拟SAR影像以用于验证处理算法或进行分析对比。可以基于DEM和地表特性生成预期的SAR影像。
极化合成Polarimetric Synthesis对多极化SAR数据进行合成,生成具有特定极化状态的影像,用于分析地物的电磁散射特性。
时间序列分析Time Series Analysis对多时相影像进行时间序列分析,用于监测地表变化,如地陷、植被变化、冰川运动等。
形变分析Deformation Analysis使用InSAR技术对地表形变进行分析,提供毫米级精度的形变监测结果,广泛应用于地震、火山、滑坡等领域。
波束重建Beamforming Reconstruction对雷达波束进行重建,以提高影像的空间分辨率和信号质量,通常用于SAR影像处理。
多视处理Multi-Look Processing通过对SAR数据进行多视处理(Multi-Looking),减少相干斑噪声,提高影像的可解释性,同时保持空间分辨率。
辐射校正Radiometric Calibration对SAR影像进行辐射校正,调整影像的辐射强度值,以确保影像在不同时间和不同传感器之间的可比性。
影像镶嵌Image Mosaicking将多个影像无缝拼接成一幅大面积的影像,用于区域覆盖分析或制图。可以处理影像之间的几何和辐射差异,实现平滑过渡。
线性拉伸Linear Stretching对影像的灰度值进行线性拉伸处理,提高影像的对比度,适用于增强影像的可视化效果。
地理编码Geocoding将影像从雷达坐标系转换为地理坐标系,如UTM、WGS84等,使其能够与其他地理信息系统(GIS)数据结合使用。
噪声滤波Noise Filtering通过应用噪声滤波器(如Lee滤波器、Frost滤波器)去除SAR影像中的相干斑噪声,改善影像质量。
影像分割Image Segmentation将影像分割成具有相似特征的区域,用于目标检测、土地覆盖分类等分析任务。
直方图均衡Histogram Equalization对影像进行直方图均衡化处理,提高影像的全局对比度,特别是用于增强影像细节和视觉效果。
配准误差分析Registration Error Analysis对影像配准的精度进行分析,评估配准误差,并提供误差分布图,以提高配准精度。
变化检测Change Detection比较多时相影像,检测和量化地表变化,广泛用于环境监测、灾害评估等领域。
相位解缠Phase Unwrapping处理InSAR数据时,用于解决由于相位循环导致的相位模糊问题,恢复真实的地表形变信息。
波形处理Waveform Processing对雷达回波波形进行处理,以提取目标特征或改善图像质量,通常用于高分辨率成像和目标识别。

第四章 InSAR技术

合成孔径雷达干涉测量(InSAR,Interferometric Synthetic Aperture Radar)是 20 世纪 90 年代末在SAR 的基础上发展起来的一种新型的空间对地观测技术,它充分利用了SAR的相位信息,成功的解决了SAR图像的三维成像问题,而且它能够获取高精度的地形信息,同时还可以监测地表和冰雪表面的微弱变化,监测时间间隔跨度很大,从几天到几年,可获得全球高精度的、高可靠性的地表变化信息。这使得合成孔径雷达干涉测量(InSAR)在监测地 表微小形变方面具有独特的优势,成为监测地表变化的新手段。

下图是SARscape的InSAR技术获取DEM的操作流程图

SARscape 提供了一般分步操作方式流程化操作方式

  •  一般分步操作方式按照处理流程选择相应的处理工具和输入所需文件,在测试某一 步的参数时,用这类处理工具非常实用。
  • 流程化操作方式就是将InSAR的各个步骤集中在一个工作流中,向导式的操作引导 用户一步步处理,不用手动选择工具。每一步生成的文件都保存在临时工作路径下,每一步所需的输入文件都自动从该路径下读取,不用手动设置输入输出数据。用户 只需检查参数,点击步骤控制按钮(Next 或 Back)即可,大大减少了软件操作的 工作量,实现了DEM的工程化生产。

第五章 D-InSAR技术

第六章 PS-InSAR技术

第七章 SBAS-InSAR技术

这篇关于ENVI SARscape||笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125939

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus