Layer 객체에는 특정 조건을 충족하는 레이어의 지형지물을 필터링할 수 있는 SetAttributeFilter(
>>> layer.GetFeatureCount()
42
>>> layer.SetAttributeFilter("cover = 'shrubs'")
>>> layer.GetFeatureCount()
6
>>> layer.SetAttributeFilter(None)
> > ;> layer.GetFeatureCount()
42
공간 필터 공간 필터에는 두 가지 유형이 있습니다
. 하나는 특정 유형의 지형지물을 필터링하는 SetSpatialFilter(
이 선택됩니다. < miny>,
SetSpatialFilter(None)를 선택하여 공간 속성 필터를 지울 수 있습니다.
예를 들어 다음 코드에서 layerAreas는 폴리곤이고 layerSites는 포인트입니다
>>> featAreas = layerAreas.GetNextFeature()
>> > 폴리 = featAreas.GetGeometryRef()
>>> layerSites.GetFeatureCount()
42
>>> )
>>> layerSites.GetFeatureCount()
4
>>> ; (없음)
>>> layerSites.GetFeatureCount()
42
SQL 쿼리 문 실행과 같은 더 복잡한 필터도 있습니다(
result = dsSites.ExecuteSQL("select * from sites where Cover = 'grass' order by id desc")
resultFeat = result.GetNextFeature()
while resultFeat :
print resultFeat.GetField('id')print resultFeat.GetField('id')
resultFeat = result.GetNextFeature()
dsSites.ReleaseResultSet(result)
42
40
:
4
마지막 문장 ReleaseResultSet(
다음 예에서는 표지가 잔디인 모든 지형지물의 수를 계산합니다
>>> result = dsSites.ExecuteSQL("select count(*) from sites where Cover = ' grass '")
>>> result.GetFeatureCount()
11
>>> result.GetFeature(0).GetField(0 )
11
>>> dsSites.ReleaseResultSet(result)
다른 표지 유형 모두 나열
결과 = ds.ExecuteSQL("select 사이트와 다른 표지")
resultFeat = result.GetNextFeature()
while resultFeat:
print resultFeat.GetField(0)
resultFeat = result .GetNextFeature()
ds.ReleaseResultSet(result)
관목
나무
바위
풀
bare
물
각 표지 유형에 대해 몇 개의 기능이 있는지 계산
coverLayer = ds.ExecuteSQL('사이트에서 개별 표지 선택')
CoverFeat = CoverLayer.GetNextFeature()
while CoverFeat:
cntLayer = ds.ExecuteSQL("cover = ' " + CoverFeat.GetField(0 ) + "인 사이트에서 count(*) 선택 ' ")
print CoverFeat.GetField(0) + ' ' +print CoverFeat.GetField(0) + ' ' + cntLayer.GetFeature(0).GetFieldAsString(0)
Ds. releaseResultSet(cntlayer)
Coverfeat = Coverlayer.GetNextfeature()
Ds.releaseResultSet(Coverlayer) Rees 11
베어 6 물 2Intersect는 두 요소가 교차하는지 여부를 결정합니다
1을 반환하면 분리됨을 의미하고, 0을 반환하면 교차를 의미하며 Intersect와 정반대입니다
터치는 인접(가장자리)을 의미poly2.Touches(poly1)
0을 반환하면 아니요를 의미 가장자리, 반환 1은 가장자리 문지름을 의미
십자가 교차, 일반적으로 선이 다각형을 통과함
poly2.Crosses(line)
0을 반환하면 통과하지 않음을 의미하고 1을 반환 통과한다는 의미
내부에서 한 요소가 다른 요소로 완전히 둘러싸여 있습니다
ptB.Within(poly1)
0을 반환하면 점이 다각형 외부에 있고 1은
Contains contain, 이는 Within의 반대입니다.
poly1.Contains(ptB)
는 기본 요소를 결합하는 것입니다. 개체 및 매개변수를 호출합니다.
겹침, 두 개의 다각형만 겹칠 수 있는 것 같습니다
poly2.Overlaps(poly3)
0을 반환하면 겹치지 않음을 의미하고 1을 반환합니다. 겹침을 의미
간단한 지리적 데이터 처리 지오프로세싱을 살펴보겠습니다
다각형:
교차점: 폴리3.교점(poly2)
합집합: 폴리3. 합집합(poly2 )
차이: 폴리3.Difference(poly2)
보조: 폴리3.SymmetricDifference(poly2)
기하학:
Python의 함수 함수, 예외 예외 및 모듈 모듈은 모든 Python 교과서에서 찾을 수 있으므로 여기서는 더 이상 언급하지 않습니다. 자세히
위는 Python gdal 튜토리얼입니다. 필터, 간단한 공간 분석, 함수 및 모듈에 대한 자세한 내용은 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!