- 博客(158)
- 资源 (12)
- 收藏
- 关注
原创 使用gdal直接读取某坐标上的位置像素值,
需求:gdal直接跟据某个范围读取像素值会有缩放和重采样,如果二次重采样可能会产生锯齿或者模糊,为了绕开gdal自动采样和金字塔,可读取某个点位得像素值,然后自己重采样。4:Mitchell-Netravali 插值。5:Catmull-Rom 插值。2:boxfilter滤波读取。
2025-03-20 14:22:17
213
原创 倾斜单体化重建异形和异形建筑思路整理
4: 非异形重建: 尽可能将更多三角网拟合成平面, 类似贪婪算法, 不管是基于高度拉盒子还是基于dsm高度去搞都差不多, 但是不能基于mesh直接简化, 此种方法并不能完全将倾斜比较扭曲的边界修正。3: 异形重建: 用点云查询原始倾斜的三角网, 然后基于尽可能保持更多细节的简化算法处理例如;关键在于倾斜数据存在 自相交, 重叠,破洞等非流行特征,需要处理后才能简化和映射纹理;1: 点云实例分割: 倾斜重采样点云, 然后使用点云分类分出建筑;2: 异形非异形分类: 实例点云投影成图片二元分类即可;
2024-09-27 09:58:18
183
原创 文件判断存在的效率提升方案(access,stat,fopen)
access,stat, 时间基本相同 这和网上各种版本完全不相同。测试环境(windows) Linux待测试。测试代码如下:(fopen如果不算fclose 时间 非常快快10倍以上)需求:10w级别的文件打开,需要判断文件是否存在,文件太多影响30%效率。access,stat,fopen 三个函数的时间,
2024-07-30 18:54:36
301
原创 点云到lod白模 三维重建思路搜集
另外上面2,3步甚至还是可以使用polyfit的MIP方式,如果我能减少每个MIP优化的面数,例如使用八叉树对平面进行非均匀划分,然后如果能保证每个小box范围的面不超过10, 那么mip应该也会很快计算出来, 最后再使用三维体布尔运算也可以将问题搞定,2问题待实践,先记录,有时间实验一把。其将此问题限定在单栋建筑点云的box范围内,所有平面求交的选取可以简单理解为三维拟合:选取的交平面形成的闭合体拟合更多的点云点。1:polyfit的所有平面 进行拆分得到上图的Input,例如拆成4*4*4的格网,
2024-07-24 18:08:17
819
原创 量化地形处理
正向合并:只需要处理边界瓦片(边界定义,获取量化地形高度范围,如果最低值都大于0,说明不需要合并);找出待生产瓦片边界三角形(左右上下位置比较),判断此三角形是否需要加点(周围边界点查待生产瓦片),重新生成三角形;1: 量化地形切片:GDAL查询数据;按照量化地形tilesize建立位图,位图每个位置(x,y)去查询所在三角形(三角形使用rtree索引,精确查询使用二维点是否在三角形内,边界也算);反向合并:使用带生产瓦片边界查询周围瓦片边界,如果待生产边界点有不与边界瓦片点高度不同,用边界修改自身;
2024-05-08 16:45:18
450
原创 三维模型转求顶和底视图
初步估算算法复杂度为n的3次方, 优化空间不大, 除了求接点与三角形外包可用box加速, 目前就剩开omp硬件加速,或者simd加速等非软件方法了.3: 一个点可能与多个三角形在Z方向上交, 按照最大最小值记录, 最小值底视图, 最大值顶视图。1: 求模型外包围盒box, 根据顶视图输出大小计算输出分辨率resx,resy。本文写一个求顶视图和底视图的方式, 任意方向的视图只是投影平面方程不同而已。2: 遍历图像宽高范围内的所有像素, 求每点与模型每个三角面片的交点 z值。
2024-02-01 12:10:52
489
1
原创 Z3Ordering编码及查询c++实现 (GeoMesa翻译)
代码改编而来, 环境为C++, vs2015, 理论上windows和Linux都可以用. 不依赖任何库, 这项自身理解和翻译断断续续进行, 最近终于有一点进展, 本次放出Z3, 待全部实现完毕将直接挂出。网上搜了很多Z3-Ordering实现没搜到,通过 sfcurve-master和geomesa-geomesa-3.2.2 得。
2023-06-21 23:30:36
252
原创 PostgreSQL 内存暴涨编程总结
客户端缓存直接用stdmap存起来即可,key可以是sql语句,value可以是uuid。一般来说内存暴涨都是资原未释放,或者说创建了太多资原。服务端内存暴涨最常见就是创建了太多服务端资原对象.
2022-07-19 10:18:30
1523
原创 达梦数据库是支持空间索引的?
这事估计得坑我一段时间了, 很多年前设计和实现达梦数据源得人, 公司其他人都告诉我达梦不支持空间索引, 所以我们自己做了索引.然而一个惊喜在今天被发现, 在达梦 DM系统包使用手册, SQL语言使用手册 都提到了空间索引,而且文档里面写着 直接支持opengis2.0 标准, 这叫我情何以堪, 抱着侥幸去看系统dll和包, 好家伙赫然哟jts.jar, geos.dll 这两货就是空间计算得, 难道当初研究得人不知道吗? 只能说呵呵了, 既然有那么简单验证下吧.初始化空间包DMGEO, 创建
2022-05-30 18:29:03
1248
6
原创 hbase 读写空间数据(四)-空间查询优化
上一篇空间查询不涉及到任何得效率优化, 本篇先做一个简单得效率优化,仅仅针对点数据的(PS: 线面数据还没搞定), 具体原理如下:1: hbase 得索引都在rowkey上, rowkey在hbase中是排寻的, 查询如果指定Start rowkey 那么在大数据量情况下可以快速定位到数据在那些节点上, 这有点类似 跳表, 1-10亿个排序点值, 如果我指定从5亿位置开始那么将减少一般搜索区间.2: 点数据目前实验代码采用geohash(网上虽然一艘一大堆, 但是这里要注意, 对于空间数...
2022-03-13 13:44:53
2532
原创 hbase 读写空间数据(一)
hbase版本2.4.8, 使用最新api ,所有弃用函数和类尽量没有调用, 使用最新接口. 将Geometry, long, string,double等基本类型和几何类型都存储到hbase. hbase使用单机模式.其中Geometry 转为wkb存储.package hbasedatabase;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Array...
2022-03-09 12:05:31
688
原创 XZordering 的C++实现
网上搜了很多XZ-Ordering实现没搜到,通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C++, vs2015, 理论#include "stdafx.h"#include <vector>#include <list>#include <queue>#include <map>#include <algorithm>#include <iostream
2022-03-04 16:55:48
561
1
原创 c++中 lambda函数中调用自身类函数
类函数中得lambda表达式中一般不能调用 自身类得函数有两种办法可以调用:1: 将需要调用得函数编程静态函数, 那么可以在lambda中直接调用2: 将this指针传入进lambda函数 XZOrdering* ths = this; auto checkValue = [&ranges, &remaining, isContained, isOverlapped, ths](XElement & quad, short level) { ull
2022-03-04 09:33:07
2232
原创 Z-Ordering 编码及查询c++实现(简称Z2)
通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C++.#include "stdafx.h"#include <vector>#include <list>#include <queue>#include <algorithm>#include <iostream>#include <deque>#inclu
2022-03-03 18:26:47
773
原创 OracleSpatial ST_XXX 相关函数几何操作容差
无意中在spatial-and-graph-developers-guide 12.2.pdf读到一段说明:Tolerance Value with SQL Multimedia TypesBecause the SQL Multimedia standard does not define how tolerance is to be used with the ST_ xxx, Spatial and Graph uses a default value of 0.005 in all th...
2022-01-17 14:49:57
650
原创 FileGDBAPI 二次查询空间数据失败解决办法
问题: 坑爹得filegdb数据,只能查询一次, 第二次查询只返回2条数据分析: 在QGIS, ArcMap中重新查看, 数据正常, 使用FileGDB_API_1_5_1-VS2015\samples\Querying 这个库里面用例直接查也是正常. 但是我使用得时候先统计了个数, 再执行查询, 于是出问题得代码出现了,:int Searchtest(Table &table){ fgdbError hr; wstring ...
2021-11-09 09:27:13
325
原创 计算兰伯特投影数据到其他空间参考的地理范围
问题: 在实现动态投影得时候未考虑兰伯特这种投影, 导致投影得数据过少, 数据有缺失分析: 常用投影计算是将一个投影得box范围计算到另外一个投影得box上, 直接使用box得四个点计算, 但是兰伯特投影得box他对应得box范围并不是根据box得四个点来确定得解决方案: 将兰伯特得数据按照范围分割成很多小块统计对应得其他空间参考得范围, 遍历每块范围合并成一个整块即可得到一个包含当前兰伯特投影数据得范围, 这个范围比当前范围要大, 示意图如下:...
2021-10-26 17:31:16
402
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人