Skip to main content

· One min read
litan

昨天(2024-05-08)下午开始,VSCode智能提示突然罢工,

vscode_error

起初是认为MSVC编译器更新导致includepath更换导致“无法找到 源 文件”,于是便开始疯狂在settings.json和c_cpp_properties.json中添加信息

settings.json:

  • C_Cpp.errorSquiggles: enabled
  • C_Cpp.intelliSenseEngineFallback: enabled
  • C_Cpp.default.compilerPath: vs2022/community/vc/tools/msvc/14.39.33519/bin/hostx64/x64/cl.exe
  • C_Cpp.default.includePath: vs2022/community/vc/tools/msvc/14.39.33519/include
  • ...

json和c_cpp_properties.json:

  • compilerPath" vs2022/community/vc/tools/msvc/14.39.33519/bin/hostx64/x64/cl.exe
  • intelliSenseMode: msvc-x64,
  • configurationProvider: ms-vscode.cmake-tools,
  • windowsSdkVersion: 10.0.19041.0
  • ...

自己能想到的,网上能搜到的搜试了一遍,都无济于事,直到尽早偶然发现VSCode的C/C++插件(负责cpp_intelliSense)最近一次更新是21小时前,与罢工相吻合,于是便退回了一个版本,重启VSCode后一切恢复正常...

vscode_error

· One min read
litan
setlocal enabledelayedexpansion
set target=''
for /f "tokens=1,3 delims=," %%i in (1.txt) do (
set d1=%%i
set d2=%%j
)

delims= 表示用来分割字符串的字符

tokens= 表示拆分后需要使用的第i个字段

%%i, %%j 对应字符串内容

例如1.txt:

name,id,point li-tann,0,15 li-tamm,1,19

使用上述脚本,输出为:

d1=li-tann, d2=15
d1=li-tamm, d2=19

· 2 min read
litan

通常情况我们使用ArcMap打开一张非常大的影像时,都会提示是否生成金字塔文件以便于后续影像的快速绘制和缩放。

但当影像过大时,使用ArcMap的默认选项已经无法成功创建金字塔文件,此时就需要调用GDAL工具手动生成金字塔文件。

指令如下所示,

gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE --config BIGTIFF_OVERVIEW YES dem.tif 2 4 8 16

但是当影像非常大时(个人经验时超过20Gb),使用上面的指令生成金字塔文件会在70%左右报错,此时就需要将指令拆分,每次只生成一个缩放比例的金字塔,多重复几次即可。

指令如下所示,

gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE --config BIGTIFF_OVERVIEW YES dem.tif 16
gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE --config BIGTIFF_OVERVIEW YES dem.tif 8
gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE --config BIGTIFF_OVERVIEW YES dem.tif 4
gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE --config BIGTIFF_OVERVIEW YES dem.tif 2

16倍缩放金字塔应该是数据导入时的缩略图比例,所以当我们成功生成16倍的金字塔时,就可以使用ArcMap读取影像,并快速将影像的缩略图绘制到视图中。

· One min read
litan

写md文件时发现,当某个md文档过长(很可能是因为存在大量latex公式导致),在编译期间时会弹出以下警告内容,严重影响观感... 不得已将md文档拆分后解决问题...

[BABEL] Note: The code generator has deoptimised the styling of xxxxx.md as it exceeds the max of 500KB.

· One min read
litan
npm i @docusaurus/core@latest @docusaurus/preset-classic@latest @docusaurus/theme-mermaid@latest @docusaurus/module-type-aliases@latest

· One min read
litan

文件-选项,打开“Word选项”对话框

选择自定义功能区,点击“键盘快捷方式”右侧的“自定义”按钮,弹出“自定义键盘”窗口

以formatParagraph功能( 段落设置对话框)为例

在左侧“类别”中选择“‘开始’选项卡”,在右侧命令中找“FormatParagraph”

在“请按新快捷键”窗口内,键入你希望的快捷键(若与其他快捷键冲突会顶替当前快捷指令与其他功能的链接关系)

我设置成Alt+F(旧的指令等于点击菜单栏的“文件”按钮)

点击下方“指定”按钮保存快捷指令。

完成。

Word 中的键盘快捷方式

· One min read
litan

在word输入2611, 按ALT+X, 即可生成“框内打勾✅”的特殊字符。

· One min read
litan

Github中经常见到类似的标签,

starts example label

前者是li-tann.github.io的实时stars,后者是自定义生成的静态内容。

类似的标签,都是通过Shield IO网站实现的。

实时的github stars:

https://img.shields.io/github/stars/<user>/<repository>.svg

以该网页为例,

用户名是li-tann, 仓库是litan.github.io

该仓库的实时stars: https://img.shields.io/github/stars/li-tann/li-tann.github.io.svg

· 2 min read
litan

zotero.logo

zotero是一款免费的文献管理工具(包括但不限于文件管理功能),其本身提供收费的云端文件存储服务(免费向每个账户提供300Mb云空间)。

但将本地存储搭建在OneDrive中,云端只同步文献基本信息(不上传附件内容),即可实现免费的多设备同步。

操作说明

  1. zotero编辑->首选项->同步->设置,取消文件同步的两个选项(不同步附件);

  2. zotero编辑->首选项->高级->文件和文件夹:数据存储位置选择自定义,修改文件存储位置(如:E:\zotero_library);

    长期积累的文献较大,不建议放在默认的C盘

  3. E:\zotero_library\storage移动到OneDrive网盘中,如:D:\OneDrive\Zorero_storage\storage

  4. 建立链接

mklink /J "E:\zotero_library\storage" "D:\OneDrive\Zorero_storage\storage"

到此为止,实现同步。

若直接将zotero数据存储位置放至OneDrive会提示有风险(数据同步的异常情况),所以将storage放置云盘,并建立云盘与本地的链接风险更低。

· One min read
litan

地理编码后影像的四个角点一般都有“黑边”(对于float以上数据,显示为NoData,值为NAN),在arcgis中显示时非常影响观感,需要消除。

使用gdal_translate.exe工具,可以有效消除“黑边”,命令如下:

gdal_translate.exe img_input.tif img_output.tif -a_nodata 0

该命令可以将img_input.tif中所有值为NoData的值转换为0,并且为影像添加数据NoData Value=0

转换完成后,再次使用arcmap加载该影像,即可得到无“黑边”的地理编码后影像。

伪代码:

GDALDataset* p_ds = static_cast<GDALDataset*>(GDALOpen("",GA_Update));
int bands = p_ds->GetRasterCount();
for(int b = 1; b<bands; b++)
{
GDALRasterBand* rb = p_ds->GetRasterBnad(b);
rb->setNoDataValue(0);
}
GDALClose(p_ds);