海量影像数据集入库策略Word格式文档下载.docx
- 文档编号:17758171
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:16
- 大小:835.68KB
海量影像数据集入库策略Word格式文档下载.docx
《海量影像数据集入库策略Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《海量影像数据集入库策略Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
4)创建数据块大小为8KB的Oracle数据库。
8KB是存储blob数据最佳的块大小设置,已经成为ArcGIS二进制数据存储的默认存储类型。
16KB或者32KB可能会导致blob存储空间的浪费。
在ArcSDE客户端和服务器之间,ArcSDE使用“传输缓冲区”进行数据传输。
在向空间数据库中写入数据时,当ArcSDE客户端数据缓冲区达到阈值,数据将被提交到ArcSDE服务器。
当ArcSDE服务器处理数据时,客户端再将更多数据写入到缓冲区,达到阈值时,提交到ArcSDE服务器。
依次循环往复。
对于栅格数据,“传输缓冲区”的大小是被ArcSDE服务器参数RASTERBUFSIZE控制的。
默认情况下,该参数大小为200KB。
对于大多数栅格数据入库而言是足够的。
在默认参数设置情况下,ArcSDE
会为客户端和服务器端分配RASTERBUFSIZE两倍大小的内存,即如果默认参数设置为200KB,那么ArcSDE客户端将会被分配400KB大小的内存,服务器端同样会分配400KB大小的内存。
除该参数外,ArcSDE在服务器端还提供了三个缓存区参数,用于从DBMS中读写数据。
通过这三个参数,可将服务器端的内存分配增加到1000KB。
如果使用直连directconnection方式(如下图所示),ArcSDE客户端和服务器端的操作都在客户机上执行,因此通过直连方式分配的内存是RASTERBUFSIZE参数指定大小的7倍。
直连方式下,如果RASTERBUFSIZE参数指定的大小无法满足未压缩栅格块的大小,仅需修改RASTERBUFSIZE参数默认值的大小,与其他三个缓冲区参数无关。
未压缩块大小计算方式:
块高×
像素深度因子(pixeldepth)。
1)例如:
128*128块,像素深度为32位,那么未压缩块大小=128*128*4(像素深度因子)=65536byte<
200KB。
2)再如:
256*256分块,像素深度为32位,那么未压缩块大小=256*256*4=262144byte>
像素深度与像素深度因子对照表:
序号
像素深度
像素深度因子
1
1bit
0.125
2
4bit
0.25
3
8bit
4
16bit
5
32bit
6
64bit
8
RASTERBUFSIZE参数大小设置:
如果未压缩块大小大于默认RASTERBUFSIZE参数,那么必须要对RASTERBUFSIZE参数值进行修改,否则将会导致错误-SE_RASTER_BUFFER_TOO_SMALL(-294)。
RASTERBUFSIZE参数修改方法:
使用sdeconfig管理工具进行修改,修改后的结果写入SDE.SERVER_CONFIG表,具体命令参数如下Sdeconfig–oalter–vRASTERBUFSIZE=10240000–usde–psde。
提醒:
如块的大小未超出默认RASTERBUFSIZE参数大小,请尽量不要修改RASTERBUFSIZE参数值。
因为RASTERBUFSIZE参数值过大将会影响整个系统的栅格数据流。
为了在海量栅格入库之前,科学的分配和组织存储空间,优化ArcSDEDBTUNE参数(参见分配DBMS存储空间),需提前对栅格入库后的数据量进行评估。
栅格数据主要存储在以下四个表:
SDE_Aux_#/SDE_BLK_#/SDE_BND_#/SDE_RAS_#。
其中SDE_BLK_#主要用于存储栅格数据,其数据量大小是其他表的近150倍。
因此其他表忽略不计。
估算DBMS存储空间大小主要有两种方法。
1)方法一:
加载小部分示例数据入库,基于示例数据推算整个数据入库后所占存储空间的大小。
2)方法二:
基于公式计算所需空间的大小。
两种方法比较,方法一比方法二更加精确。
但当数据尚未准备好,需要提前预估存储空间时,方法二更为适用。
为了更准确的预估DBMS存储空间的大小,还需要考虑一下属性对存储空间的影响:
压缩方式/金字塔/波段数目/像素位深。
基于示例数据推算所需存储空间
基于示例数据推算所需存储空间步骤如下:
1.查询sde.raster_columns表,获取rastercolumn_id的值。
SQL语句如下:
selectrastercolumn_idfromsde.raster_columnswheretable_name=’(Rasterdataset/catalog名称)’;
例如:
selectrastercolumn_idfromsde.raster_columnswheretable_name=’TESTRC’;
2.获取SDE_BLK_(ratercolumn_id)表的大小。
selectsum(length(rasterband_id))+sum(length(rrd_factor))+sum(length(row_nbr))+sum(length(col_nbr))+sum(length(block_data))"
totalsize"
fromsde_blk_(rastercolumn_id);
fromsde_blk_1;
返回结果为:
683689656byte=652M,如下图所示。
3.推算总数据量所需存储空间。
假设总数据量为3TB,示例数据量为120MB。
那么3TB所需的存储空间大小推算:
原始数据大小为:
3TB*1024*1024=3145728MB
所需的DBMS存储空间为:
3145728MB/120MB=26214.4
26214.4*652MB=16.3TB。
基于公式计算所需存储空间
基于公式计算所需存储空间准确度比上述方法要低,如果数据条件允许,建议采用方法一进行栅格数据量计算。
1.获取数据范围,利用影像的分辨率,计算覆盖该区域的像素总数。
2.计算影像的像素范围:
(Extentofrasterinpixelunits)/(pixelresolution)=Numberofpixels
450平方公里,15m分辨率影像,像素范围约为:
(km2tom2conversionfactor)/(thepixelresolutioninm2)=pixels
(450km2*1,000,000)/(15x15)=2,000,000pixels
3.考虑影像的波段数目,计算像素总数。
15m分辨率影像的波段数目为3,那么总像素数等于:
2,000,000pixels*3Bands=6,000,000pixels
4.基于像素深度因子计算像素所占的字节数。
16bit数据所占的字节为:
6,000,000pixels*2=12,000,000Bytes/10242=11.4MB
5.考虑影像金字塔。
金字塔的数据量约为原始影像数据量的1/3。
考虑影像金字塔构建,总数据量为:
11.4*1.33=15.162MB
6.考虑影像/栅格压缩。
压缩类型与压缩因子对照表。
压缩类型
压缩因子
LZ77
0.5
JPEG75
0.15
JPEG50
0.1
JPEG200080/100
0.36
JPEG200060/100
JPEG200055/100
0.11
7
JPEG200050/100
0.07
JPEG200045/100
0.06
例如,采用JPEG50压缩方式,压缩后的数据量大小为:
15.162MB*0.1=1.5162MB
7.计算数据库存储空间:
增加10%左右用于DBMS空间数据管理。
故推算所需的存储空间为:
1.5162MB*1.1=1.66782MB。
分配DBMS存储空间
为了提高栅格数据库存储和访问的性能,建议栅格块及索引和其他的栅格表及索引分开存储到不同的表空间中。
创建非栅格块表空间(SDE_AUX_#,SDE_BND_#,SDE_RAS_#):
createtablespaceearthdatafile'
d:
\oradata\earth.dbf'
size500Mextentmanagementlocaluniformsize1M;
创建栅格块表空间(SDE_BLK_)
createtablespaceearth_blocksdatafile'
e:
\oradata\earth_blocks.dbf'
size50000Mextentmanagementlocal
segmentspacemanagementmanualuniformsize100M;
配置DBTUNE关键字(SDE.DBTUNE)
SDE.DBTUNE存储ArcSDE使用的用于创建表和索引的参数。
SDE.DBTUNE参数修改方式:
1)找到dbtune.sde文件,位于ArcSDE安装目录SDEHOME/etc/dbtune.sde下。
2)修改dbtune.sde参数。
3)利用sdedbtune命令行,导入更新SDE.DBTUNE表。
sdedbtune-oimport-fc:
\GISfiles\ArcSDE\dbtune3.sde-usde–psde
具体配置的DBTUNE关键字如下(示例如下图):
1)业务表:
B_STORAGE"
PCTFREE0INITRANS4TABLESPACEEARTH"
B_INDEX_ROWID"
PCTFREE0INITRANS4TABLESPACEEARTH"
2)栅格表(SDE_RAS_)
RAS_STORAGE"
RAS_INDEX_ID"
3)波段表(SDE_BND_)
BND_STORAGE"
BND_INDEX_COMPOSITE"
BND_INDEX_ID"
4)辅助表(SDE_AUX_)
AUX_STORAGE"
AUX_INDEX_COMPOSITE"
5)块存储表(SDE_BLK_)
BLK_STORAGE"
PCTFREE0INITRANS4TABLESPACEEARTH_BLOCKSSTORAGE
(INITIAL500MMINEXTENTS10)LOB(BLOCK_DATA)STOREAS(ENABLESTORAGE
INROWCHUNK8KRETENTIONCACHE)"
BLK_INDEX_COMPOSITE"
PCTFREE0INITRANS4TABLESPACE
EARTH_BLOCKS"
OracleDBTUNE配置示例
##EARTH_15M
PCTFREE0INITRANS4TABLESPACEEARTH_BLOCKSSTORAGE
(INITIAL500MMINEXTENTS10)LOB(BLOCK_DATA)STOREAS(ENABLE
STORAGEINROWCHUNK8KRETENTIONCACHE)"
PCTFREE0INITRANS4TABLESPACEEARTH_BLOCKS"
END
准备原始数据
1)CD或DVD数据
从CD或DVD中读取数据比从硬盘上读取要慢很多,因此不建议从CD或DVD上直接读取。
如有存储于CD或DVD上的数据,建议拷贝到硬盘上进行入库。
2)磁带库tapesilo
磁带库中的数据入库,需将数据迁移到在线缓存中。
3)原始数据组织
为了入库更加方便,影像文件需要分组组织到独立的文件夹中。
创建栅格数据存储对象
选择合适的栅格数据存储模型,包括Rasterdataset,Rastercatalog和
MosaicDataset(ArcGIS10).如何选择合适的栅格数据存储模型,将在后续的博文中进行详细解释,敬请关注。
设置栅格属性,主要包括四个重要属性:
金字塔pyramid,统计值rasterstatistics,压缩方式compression,和分块大小tilesize。
为了提高入库效率,可在入库时,不进行金字塔和统计值创建。
入库完成后,统一构建金字塔和统计值。
相应的GP工具如下所示。
创建统计值
基于RDBMS和栅格创建统计值,提升栅格显示性能和显示效果。
基于ArcCatalog创建DBMS统计值的方法:
1)在栅格对象上右键,单击Analyze。
2)弹出Analyzecomponent窗口,选中Rastertable。
3)单击OK.
基于ArcSDE命令行更新统计值sdetable
Oracle格式:
sdetable-oupdate_dbms_stats-t<
table>
[-K<
keyword>
]
[-n<
{ALL|<
index_name>
}>
][-i<
service>
|<
port#>
directconnection>
][-s<
server_name>
]-u<
DB_user_name>
[-p<
DB_user_password>
][-N][-q]
c:
\>
sdetable-oupdate_dbms_stats-tearth-umark-pmark
利用ArcMap,ArcCatalog,ArcGlobe,或者ArcScene查看栅格数据。
金字塔和统计值可有效提高栅格/影像数据显示的效率。
关于海量影像入库方法,请关注后续博文。
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海量 影像 数据 入库 策略
![提示](https://static.bdocx.com/images/bang_tan.gif)