안녕하세요… IDL 6x/ENVI 4x 시절 사용자 질문드립니다.

게시판 ENVI Q&A 안녕하세요… IDL 6x/ENVI 4x 시절 사용자 질문드립니다.

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1647 Reply
      Hyun Woo Kim
      회원

      안녕하세요. 옛날 IDL 6x/ENVI 4x 시절 사용자인데, 한 2년 다른 일을 하다가 직장을 새로 옮기게 되어 다시 IDL/ENVI 의 세계(!!!)로 돌아온 김 현우라고 합니다.

      옛날에 쓰다가 묵혀두었던 소스 코드를 복습하는 의미에서 다시 꺼내어 새 버전의 IDL/ENVI 로 돌려보며 이것저것 둘러보니 도끼자루 썩는 줄 모르겠습니다… 그.러.나.

      당연한 결과이긴 하겠지만 바로 에러가 뜨네요.

      MODIS Land product의 sinusoidal projection 을 우리나라의 TM 좌표계로 변환시키는 코드인데요.

      문제의 syntax는 다음과 같습니다.

      map_info=ENVI_MAP_INFO_CREATE(type = 16, name=Projection_Name1, params=params1, $
      UNITS = units, MC = mc, PS = ps)

      실행을 시켰더니 이런 에러 메시지가 뜹니다.

      map_info=ENVI_MAP_INFO_CREATE(type = 16, name=Projection_Name1, params=params1, $
      ^
      % Syntax error.

      그래서 도움말로 가봤더니… 제일 먼저 이런 문장이 있네요.

      “This routine has been replaced with the CreateRasterSpatialRef method to ENVI. Also see the WriteMetaData method to ENVIRaster, and the SPATIALREF_OVERRIDE keyword in various methods.”

      음 그럼… 결국 새 버전에서는 이 루틴이 없어졌으니 createrasterspatialref 로 다시 짜라는 얘기인가요? 그게 아니라면 대안이 있을까요? (classic 으로 다시 해 보는 건 왠만하면 안하고 싶네요. 왠지 새 술은 새 부대에 담으라는 말이 생각나서요… ㅋㅋㅋㅋㅋ)

      답변 부탁드리겠습니다.

    • #1654 Reply
      Jonghyuk
      회원

      ENVI New Interface가 나오면서 기존의 ENVI routine 들도 New API로 대체되고 있는 중입니다. 더 편해진 면이 있겠지만 아직 많은 부분이 Classic API에 의존해야 합니다.

      ENVI Classic은 그대로 (업데이트가 되진 않더라도) 지속될 것이고, Classic API도 여전히 그대로 지원됩니다.

      다만, 올려주신 함수 ENVI_MAP_INFO_CREATE()가 예전에는 문제 없이 컴파일이 되었는지 제가 잘 모르겠습니다. 저는 평소 사용하던 함수는 아닙니다. 어쨌든 지금 해보니 Syntax Error가 나오는데, 새 루틴으로 대체되었기 때문은 아닐 거라고 생각합니다. 기존 ENVI Classic의 기능을 없애거나 하는 작업은 하지도 않았고 계획도 없습니다. ENVI New와 ENVI Classic이 함께 존재하는 상태입니다.

      해결은 일단 이렇게 하시면 됩니다.
      envi, /restore
      를 커맨드에서 실행하셔서 IDL에게 ENVI API를 모두 인식시킵니다.

      그 이후에 컴파일을 하니 문제 없이 진행이 되는 것 같습니다.

      • #1658 Reply
        Hyun Woo Kim
        회원

        아, 역시! 포스는 여전 하시군요… ㅎㅎㅎ 잘 해결되었습니다. 감사합니다. ^^

1 답변 글타래를 보이고 있습니다
'안녕하세요… IDL 6x/ENVI 4x 시절 사용자 질문드립니다.'에 답변달기
글쓴이 정보: