고정 임계 값으로 래스터 이미지를 필터링해야합니다. 그래서 ILogicalOp 함수를 사용합니다. 내가 그들을 사용할 때마다 출력 파일이 작업 공간에 저장되며 이는 대용량 데이터베이스로 인해 원하지 않습니다. 저장은 정확히 rasOut[i] = RMath.LessThan(inputRas[i], cons01)
. 어떻게 방지 할 수 있습니까? 또는 저장된 파일 이름을 가져 와서 삭제하는 방법은 무엇입니까? 어떤 의견이라도 감사하겠습니다.
private IGeoDataset[] CalcColdThreshold(IGeoDataset[] inputRas)
{
IGeoDataset[] rasOut = new IGeoDataset[inputRas.Length];
IGeoDataset emptyRas=null;
ILogicalOp RMath;
RMath = new RasterMathOpsClass();
IRasterAnalysisEnvironment env;
env = (IRasterAnalysisEnvironment)RMath;
IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.OpenFromFile(System.IO.Path.GetFullPath(workSpace_save.Text), 0);
env.OutWorkspace = workspace;
IRasterMakerOp Rmaker = new RasterMakerOpClass();
IGeoDataset cons01;
Threshold_value = 15000;
cons01 = Rmaker.MakeConstant(Threshold_value, false);
for (int i = 0; i < inputRas.Length; i++)
{
rasOut[i] = RMath.LessThan(inputRas[i], cons01);
}
return rasOut;
}
(면책 조항 : 저는 실제로 C ++ 프로그래머가 아닙니다. 다른 사람이 답을 가지고있는 것 같지 않기 때문에 여러분이 갈 수 있도록 몇 가지 포인터를 제공하려고합니다.) (코멘트에서 변환)
IScratchWorkspaceFactory
대신 만드는 - 그것은 같은 인터페이스 사운드는 당신이 원하는 것을 할 것입니다 workspace
사용하여 변수를 IWorkspaceFactory.OpenFromFile
대신 스크래치 작업 공간을 만들어보십시오? 문서에 따르면 응용 프로그램이 종료되면 자동으로 정리됩니다.
최종 출력을 위해 다른 작업 공간을 사용하는 것을 잊지 마십시오. :)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다