我在GeoDMS GUI版本7.177中读取大型形状文件时遇到问题。
我正试图直接从Kadaster将BAG(basisadministratie gemeenten,荷兰市政当局,一个巨大的地理文件)读取到GeoDMS中。它首先从.xml转换为.csv,然后从.csv转换为.shp(使用Python'shapefile'库)。当我选择1万栋建筑物时,一切进展顺利。但是,当我想读取整个BAG(大约16000000建筑物)时,在CPU使用率接近0%之后,GeoDMS似乎无法读取整个形状文件,并且似乎没有进一步的进展。
代码:
/*
This program reads the BAG in .shp format and writes it to .dmsdata format for speedy processing in Minta
*/
container root
{
unit<dpoint> rdc_base; // RDC stands for Rijksdriehoekscoordinaten, Dutch state coordinate system
unit<dpoint> rdc := range(rdc_base,point(300000.0,0.0),point(625000.0,280000.0)); // default rdc: built on doubles
unit<uint32> bagRead:
storageName = 'c:/zandbak/intermediate/bagPND.dbf'
, dialogData = 'geometry'
, dialogType = 'map'
, storageReadOnly = 'true'
, isHidden = 'true'
{
attribute<rdc> geometry(polygon):
storageName = 'c:/zandbak/intermediate/bagPND.shp'
, storageReadOnly = 'true';
attribute<string>buildingId;
attribute<string>status;
attribute<string>year;
}
unit<uint32> bagWrite := subset(bagRead/buildingId==bagRead/buildingId)
, storageName = 'c:/zandbak/output/bagPND.fss'
, storageReadOnly = 'false'
, dialogData = 'geometry'
, dialogType = 'map'
{
attribute<uint32> nr_OrgEntity;
attribute<rdc> geometry(polygon) := bagRead/geometry[nr_OrgEntity];
attribute<string> buildingId := bagRead/buildingId[nr_OrgEntity];
attribute<string> status := bagRead/status[nr_OrgEntity];
attribute<string> year := bagRead/year[nr_OrgEntity];
}
}
我使用批处理模式运行此代码:
"C:\Program Files\ObjectVision\GeoDms7177\GeoDmsRun.exe" "C:\repository\vesta\bagpreprocessing\root.dms" /bagWrite
如前所述,该代码对1万栋建筑物有效。但是,不适用于1600万建筑物。有没有办法在GeoDMS中读取大型形状文件?