Comments (12)
可以通过配置minimumLevel
控制最小显示层级,提高分辨率,默认为0
参考 #2 (comment)
from tiffimageryprovider.
感觉改过了不是很有效啊
from tiffimageryprovider.
试了一下,初始化时候的确提高分辨率了,但是放大以后的没有跟着提升,看起来还是虚的...
from tiffimageryprovider.
如果是cesium本身的瓦片调度问题,那这个很难解决,瓦片请求层级是通过camera和tilingScheme的rectangle范围共同判断的,cesium没有提供手动更改的接口。
实际上加载全球范围的cogtiff,按照你截图上的相机高度来说,它请求的已经不是第0层级了,可能是第3层级,即使这样,还是清晰度不够的话,可能是切片的瓦片大小过小了?
可以尝试修改tileSize参数,默认从cog瓦片信息中获取,可以手动设置为512、1024等值,在解码瓦片时会做超分辨率处理。
from tiffimageryprovider.
这个读取瓦片每层的分辨率,应该是根据瓦片层级固定的,而tif金字塔的层级是不固定的,尤其是在生成的时候,默认是每层大4倍,但是从gdal的接口上来看,这个采样率是可以变化的,如果从tif的meta头里去取层级,就会导致出现这种因为金字塔层级过高而导致读取了不合适的采样率图层,使用minimumLevel来控制,只能控制第一层显示的效果,一但放大还是根据原有的分辨率来加载。
建议考虑跟据cesium的层级,固定每层的采样率,一但层级超过tif最高层级的采样率,再固定为tif本身最高层的采样率。
from tiffimageryprovider.
我没有理解您的意思。
COGTiff瓦片的大小是固定的,它由生成COG的参数控制,一般来说是512512。而由cesium x,y,z参数决定的、获取到的COG原始数据是根据瓦片的地理范围计算获取。但是cesium瓦片的渲染大小可以进行更改,默认和COG瓦片的大小一致,以获取最佳效果,自定义为10241024的情况下,将进行超分辨率处理,将原本512512的瓦片数据超分辨率,显示效果上只会变得更光滑,而不是更清晰。
至于请求层级,现在的调度规则是,假设COG瓦片有N层,则在cesium瓦片参数为z时,请求第N-z层COG瓦片。这样的请求策略应当是最合理的,每次可以以最小的请求量(最小为tileWidthtileHeight,最大为tileHeightImageWidth + tileWidthtileHeight)完成获取对应空间范围tiff数据的请求。
from tiffimageryprovider.
COG的金字塔,并不匹配cesium的z轴;
COG的金字塔,如您所见的图,是以1,2,4,8,16,32由高到底,他的意义是:
以1为基本分辨率,取样放大一倍,而对应像素是X轴2,Y轴2,他的级别是由最低层的的分辨率决定的;
而Cesium的金字塔,默认每级的分辨率是固定的,假设第1层是512分辨率的1张图,每一层放1大倍,则是4个512*512,由低向高
COG的层数和Cesium的层数本质上是没有关联的,也就是说,TIF原始分辨率有可能是cesium的第5级,第10级,或是第15级,这是由图像的分辨率决定的。
你用N-z的COG层去推断当前分辨率,那当然会取错当前层数的分辨率....
from tiffimageryprovider.
假设cesium的z为0,但如果我需要使用第2小的COG瓦片层,而不是最小的瓦片层,就会造成4倍请求大小,这对浏览器来说会是很大的压力。
理论上COG的金字塔构建上应当是完善的,会自动根据原始影像的分辨率大小以及tileWidth参数切分合适的层数,它会在对应层级显示清晰的瓦片,这和cesium的层级策略是一致的,我认为并不会取错当前层数的分辨率。
另外不知道ol上的效果如何?
from tiffimageryprovider.
此处cesium的z值是由tilingScheme决定的,比如z=0时,会有1 * 1张瓦片,因此请求COG最大的第N级瓦片,也只有1*1张,z=1时,会有2 * 2张,由此类推,每次z值对应的COG瓦片层级应当是N-z,N为COG的层级数量,z为当前视窗下的tiff图层瓦片层级。
from tiffimageryprovider.
COG的金字塔构建当然是完善的,但是COG的金字塔和Cesium的金字塔并不是n-z的关系,因为COG的金字塔的起始层N对比于Cesium的层数是不固定的,是由分辨率决定的,COG的第一层,有可能对应Cesium上第5层,第10层,或者第15层,这由栅格数据的分辨率是1度,0.1度,或者0.05度而定,COG是由下向上,Cesium是由上向下(EPSG:4326),但如果是EPSG:3857就是由下向上。另外,COG的金字塔,有可能是每4个像素取1为一级,也可以是3个像素取1为一级,这是可以配置的。
总而言之,不能用简单的N-z来决定COG和Cesium的层级关系。
另外,我的那张示例如,在OL下是可以正常工作的,我正在寻找ol源码中的相关信息,给您提供相关的提示。
from tiffimageryprovider.
感谢帮助!但我仍旧不能理解COG的第一层,为什么有可能对应Cesium上第5层,第10层,或者第15层,这里的z值您可以在控制台输出一下看看。cesium中某个相机高度下,每张tiff影像的请求层级z都是不同的,这和它的空间范围有关,由此去请求对应的cog瓦片应该没什么问题。
我最开始也是参考ol代码写的,如果您能提供更多信息,感激不尽!如有可能,也希望您能发起PR,共同完善这个仓库
from tiffimageryprovider.
请发送邮件:[email protected] 给我告知您的wechat帐号名,希望能通过微信与您建立联系。
from tiffimageryprovider.
Related Issues (20)
- Seems like display range is not applied when expression is applied HOT 1
- 插件不能正常工作在Cesium官方 1.104+之后的任何版本 HOT 1
- 如果直接加载转坐标系的tif图,图片显示错乱 HOT 1
- SingleBandRenderOptions的属性colorScaleImage未生效 HOT 1
- 用老方法加载cogtif数据时,4326坐标系会报错 HOT 1
- 实现轮播效果时,如果使用blob方式加载图像,16次后webgl会崩溃 HOT 4
- Alignment issues when source cog is in non-native projection HOT 23
- TypeError: Cannot read properties of undefined (reading 'hasAlphaChannel') HOT 4
- 当resx和resy不相等时,加载后图片显示发虚,同时发现resampleMethod参数是无效的
- "No data" areas show as solid black instead of transparent when using convertToRGB true or multi-band HOT 3
- 当在单通道渲染模式时选择通道2,报错并不显示 HOT 2
- 您好,请问我的图例是 -60到 40直接改如何配渲染颜色啊,color 插值只允许0-1 之间 HOT 3
- 还有个问题请教您,如果我想根据时间轴来更新tiff数据,是只能移除图层再添加这样操作嘛 HOT 10
- npm安装tiff-imagery-provider 时候 报错 HOT 2
- 2.9.5版本默认加载数据颠倒 HOT 2
- combining multiple TIFF's into a single TIFFImageryProvider HOT 6
- Order cannot be adjusted with other providers. HOT 1
- Cannot Open TIF File from Local HOT 1
- ArrayBuffer Exception HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tiffimageryprovider.