ArcGIS Notebooks는 셀 기반의 간소화된 작업 영역을 제공하는 Jupyter Notebook 환경을 실행합니다. 이 항목에서는 바로 가기와 모범 사례를 비롯하여 Notebooks 작업과 관련된 기본 명령과 사용법을 안내합니다.
셀 유형 지정
3가지 유형의 셀을 Notebook에서 사용할 수 있습니다. 포인터로 셀을 선택한 경우 도구모음의 드롭다운 목록을 사용하여 해당 셀의 유형을 변경할 수 있습니다.
다음과 같은 3가지 유형을 사용할 수 있습니다.
- 코드 - 코드 셀의 모든 내용은 Notebook에서 파이썬 언어로 해석됩니다. Python 코드를 작성할 때 from 또는 등호(=)와 같은 특정 문자열을 입력하면 Notebook에서 이러한 문자열을 명확하게 나타내기 위해 자동으로 색상이 변경되거나 강조됩니다. 숫자 기호(#)로 시작하는 코드 라인은 주석으로 해석되어 녹색의 기울임꼴로 나타나며 Notebook에서 코드로 실행되지 않습니다.
- 마크다운 - 마크다운 셀의 모든 내용은 Notebook에서 마크다운 언어로 해석됩니다. 해당 언어는 서식 있는 텍스트를 서식화하는 단순 언어로 GitHub 등 클라이언트에 의해 인터넷 전체에 사용됩니다. 마크다운 사용에 대한 참조는 온라인에서 마크다운 가이드를 참고하세요. 마크다운 셀을 실행하면 해당 내용이 서식 있는 텍스트로 변환됩니다. 하나 이상의 숫자 기호(#)로 시작하는 라인은 머리글로 서식이 지정됩니다. 또한 원시 HTML 코드를 마크다운 셀에 추가할 수 있습니다.
- 원시 NBConvert - 원시 NBConvert 셀의 내용은 Notebook에서 처리하지 않습니다. 해당 셀 유형은 거의 사용되지 않습니다.
비고:
머리글 셀 유형도 드롭다운 목록에서 제공됩니다. 하지만 이러한 셀 유형은 Jupyter Notebook 환경에서 더 이상 사용되지 않습니다. 이 셀 유형을 클릭하면 해당 셀이 마크다운 셀로 변환되며 최상위 머리글을 나타내는 숫자 기호(#)가 마크다운에 추가됩니다.
서식 있는 텍스트와 코드 주석을 사용하여 Notebook 공유 사용자에게 더 읽기 쉽고 유용한 Notebook을 제공할 수 있습니다.
셀 작업
Notebook에서 코드를 실행하려면 해당 코드가 셀에 포함되어 있어야 합니다. 셀 내의 코드를 통해 변수를 정의하고 Python 라이브러리에 포함된 함수를 실행할 수 있습니다.
변수를 정의하려면 등호(=)를 포함하는 변수 문이 포함된 셀을 실행합니다. 예를 들어 기본 Notebook 템플릿은 gis 변수가 정의된 상태로 실행됩니다. 변수 이름인 gis만 포함된 셀을 실행하면 Notebook은 ArcGIS Enterprise 포털의 URL을 결과로 반환합니다.
비고:
커맨드 라인에서 디렉터리를 변경하기 위해 느낌표를 사용하는 iPython 명령(예시: !cd <directory>)은 ArcGIS Notebooks에서 작동하지 않습니다. 대신 느낌표가 없는 명령어(예시: cd <directory>)를 사용합니다.
비고:
Notebooks를 작성할 때 작업 영역 디렉터리의 디렉터리 및 파일에 대한 전체 경로를 사용합니다.
예를 들어 home/test.gdb 대신 /arcgis/home/test.gdb를 사용합니다.
Python 함수를 실행하려면 함수 구문과 해당 함수의 필수 인수 또는 허용되는 인수를 입력합니다. 자세한 내용은 아래의 셀에 함수 사용 섹션을 참고하세요.
Shift+Enter 키를 누르거나 메뉴 리본의 삽입을 클릭하면 현재 셀의 위나 아래에 셀을 삽입할 수 있는 옵션이 제공되며, 이러한 옵션을 선택하여 새 셀을 생성할 수 있습니다.
셀 도구모음 옵션
셀 도구모음 옵션을 사용하여 Notebook에 개별 셀에 대한 정보를 추가할 수 있습니다.
- 없음 - 셀 도구모음을 표시하지 않습니다.
- 메타데이터 편집 - JSON을 사용하여 각 셀의 메타데이터를 입력합니다.
- 원시 셀 형식 - 결과를 직접 쓸 수 있는 원시 셀입니다. 이러한 셀의 내용은 Notebook에서 평가되지 않습니다.
- 슬라이드쇼 - 각 셀이 슬라이드 쇼에 표시되는 방식을 지정합니다. 코드가 제공될 때 유용합니다.
- 첨부 파일 - Notebook 작업 영역의 각 셀 내 연관된 첨부 파일을 관리합니다.
- 태그 - Notebook 작업 영역 내 각 셀에 대한 태그를 생성하고 관리합니다.
이러한 옵션을 실행하면 Notebook의 각 셀 위에 막대가 나타납니다. 한 번에 하나의 옵션만 켤 수 있지만 도구모음에 추가한 모든 정보는 전원이 꺼져도 계속 유지됩니다. 보기 > 셀 도구모음을 클릭하여 셀 도구모음 옵션을 변경할 수 있습니다.
원격으로 실행되거나 예약되어 있는 Notebook을 준비하는 경우 태그 옵션을 사용할 수 있습니다. Execute Notebook 작업에서는 런타임 때 계정 자격 증명이나 정의할 변수와 같은 매개변수를 새 셀로 삽입하는 옵션을 제공합니다. parameters 태그를 Notebook 셀에 추가하여 새로운 셀이 삽입될 Notebook의 위치를 지정할 수 있습니다. 새로운 셀은 이 셀 뒤에 삽입됩니다. 작업에선 parameters 태그가 있는 셀 하나만을 인식합니다.
라이브러리 및 모듈 가져오기
기본 Notebook 템플릿을 사용할 경우 ArcGIS Notebooks는 ArcGIS API for Python의 gis 모듈만 가져옵니다. 일반적으로 Notebook 런타임에 제공되는 추가 Python 라이브러리를 사용할 수 있습니다. 이러한 라이브러리에 접근하려면 import 명령을 실행합니다.
ArcGIS Notebooks에서 제공되는 모든 Python 라이브러리 확인
셀을 생성하고 import <library>를 입력한 다음 셀을 실행합니다.
ArcGIS API for Python 및 ArcPy에서와 기타 경우에는 Python 라이브러리가 모듈로 구성됩니다. 모듈 내의 라이브러리에 접근하려면 from 문을 사용하여 접근할 모듈을 선언한 다음 import 문을 사용하여 라이브러리를 선언합니다. 예를 들어 ArcGIS API for Python에 있는 mapping 모듈의 WebScene 라이브러리를 호출하려면 셀에서 다음 명령을 실행합니다.
from arcgis.mapping import WebScene
셀을 실행할 때 ArcGIS Notebooks에 자동 완성 기능을 포함합니다. 해당 기능을 사용하면 원하는 라이브러리와 모듈을 쉽게 찾을 수 있습니다. 셀에 명령의 첫 부분을 입력하고 Tab 키를 누르면 자동 완성 기능이 활성화됩니다. 이 경우 명령을 완성할 수 있는 가능한 값이 제공됩니다.
예를 들어 arcgis.을 입력한 다음 Tab 키를 누르면 ArcGIS API for Python에 있는 모든 모듈의 드롭다운 목록이 제공됩니다. 위 아래 화살표를 사용하여 목록을 탐색할 수 있습니다. 원하는 옵션을 찾으면 Enter 키를 눌러 코드 라인에 삽입합니다.
ArcGIS API for Python과 ArcPy가 Notebooks에 사용되는 방법에 대해 자세히 알아보려면 다음 항목을 참고하세요.
셀에 함수 사용
Notebook의 데이터로 분석하거나 작업하려면 Python 함수를 사용합니다. 함수는 Python 라이브러리에 포함되어 있으며 일반적으로 함수 실행 방식과 실행 대상 콘텐츠를 지정하는 입력 인수를 사용합니다.
Notebook의 자동 완성 도구를 사용하면 제공되는 함수에 대한 드롭다운 목록이 표시되므로 함수를 편리하게 찾을 수 있습니다. bar 라이브러리의 경우 bar.을 입력한 다음 Tab 키를 누르면 라이브러리에 있는 함수가 표시됩니다.
예를 들어 arcgis.features 모듈의 데이터 요약 라이브러리에서 제공되는 도구를 보려면 다음 코드를 입력하고 Tab 키를 누릅니다.
features.summarize_data.
자동 완성 도구는 라이브러리에서 제공되는 도구에 대한 드롭다운 목록을 표시합니다.
일반적으로 Notebook의 명령에는 명령 실행을 위한 정보를 제공하는 매개변수에 해당하는 필수 인수나 선택적 인수가 사용됩니다. 명령 구문이 빈 괄호 쌍(())으로 끝나는 명령의 경우 선택적 인수를 사용자가 추가해야 하거나 구문에 직접 포함할 수 있습니다.
여러 인수를 쉼표로 구분하여 괄호 안에 입력합니다. 함수의 필수 인수 및 선택적 인수 문자열을 표시하려면 빈 괄호를 물음표로 바꾼 다음 셀을 실행합니다. 그러면 해당 함수의 모든 인수가 나열된 docstring이 나타납니다.
예를 들어 Notebook 편집기의 분석 창에서 제공되는 모든 도구에는 인수가 필요합니다. 해당 창의 도구를 셀에 추가하면 도구의 ArcGIS API for Python 구문(빈 괄호로 끝남)이 삽입됩니다. 하나 이상의 인수를 제공하지 않은 상태로 셀에서 해당 구문을 실행하려고 하면 셀이 실패하며 오류 메시지가 표시됩니다.
데이터 요약 라이브러리의 포인트 집계 도구를 실행하려면 분석 창에서 해당 도구를 찾아 새 셀에 추가하거나 다음과 같이 도구 구문에 입력합니다.
features.summarize_data.aggregate_points()
도구의 인수 목록을 보려면 구문을 다음과 같이 수정한 다음 셀을 실행합니다.
features.summarize_data.aggregate_points?
그러면 해당 도구에 대한 docstring 참조 창이 열립니다. 참조 창의 오른쪽 상단 모서리에는 창을 확장하거나 닫는 버튼이 있습니다.
셀에서 작업할 때 다음 사항에 유의하세요.
- 모든 foo() 함수의 경우 foo?를 입력하고 Enter 키를 누르면 해당 함수를 설명하는 docstring이 나타납니다.
- !로 셀을 시작하면 셀의 내용이 Notebook 컨테이너의 bash 명령으로 실행됩니다.
셀 실행
셀을 실행할 경우 해당 코드가 실행되어 셀에 포함된 모든 작업이 수행됩니다. 셀의 하위 섹션이나 특정 코드 라인이 아닌 전체 셀만 실행할 수 있습니다. 셀은 한 라인 이상의 코드로 구성할 수 있습니다.
선택한 셀을 실행하려면 도구모음의 실행 버튼을 클릭하거나 셀 > 셀 실행을 클릭합니다. 또한 Ctrl+Enter 키를 눌러 마우스 포인터가 있는 셀을 실행할 수 있습니다.
실행 중인 셀을 수동으로 중지하려면 커널 > 중단을 클릭합니다. 또한 도구모음에 있는 정사각형의 중지 버튼을 클릭할 수 있습니다.
각 코드 셀의 왼쪽에는 In [ ] 요소가 있습니다. 셀이 아직 실행되지 않았거나 이전에 실행된 셀의 결과가 지워진 경우 대괄호 안이 비어 있습니다. 셀이 실행 중이면 In [*]과(와) 같이 대괄호 안에 별표가 포함됩니다. 셀 실행이 완료되면 실행된 셀의 순서를 나타내는 숫자가 In [ ] 대괄호 안에 포함됩니다. Notebook의 셀은 임의의 순서로 여러 번 실행할 수 있으므로 Notebook 셀 내의 In [ ] 숫자는 순차적으로 나타나지 않을 수 있습니다.
비고:
마크다운 셀은 실행될 때까지 In [ ] 요소가 유지되는데 실행 시점에는 해당 요소가 사라지고 셀 내용이 서식 있는 텍스트로 바뀝니다.
실행한 셀의 코드 라인이 결과를 생성하면 실행된 셀 아래의 Notebook에 해당 결과가 표시됩니다. 결과 옆에는 Out [ ] 요소가 있으며 이 요소는 해당 셀의 In [ ] 요소 값과 일치됩니다.
커널 작업
새 Notebook을 실행하면 이와 함께 커널이 실행됩니다. 해당 커널은 Notebook에서 실행되는 코드를 실행합니다. Notebook에서 셀을 실행하면(해당 In [ ] 요소가 채워짐) 실행된 셀에 정의되어 있는 변수가 커널의 메모리에 저장됩니다.
Notebook의 커널을 다시 시작하고 메모리 내 변수를 지우려면 커널 > 다시 시작을 클릭합니다. 커널을 다시 시작하려면 메모리 내 변수를 지우고 Notebook의 모든 셀을 순차적으로 실행하고 커널 > 다시 시작 후 모두 실행을 클릭합니다.
Notebook 사용이 끝나면 커널 > 종료를 클릭하여 Notebook 커널을 종료하고 모든 메모리 내 변수를 지웁니다. 커널 실행은 중지되지만 실행된 셀의 결과는 지워지지 않습니다.
Notebook이 장시간 동안 유휴 상태인 경우 커널이 종료되고 메모리 내 모든 값이 자동으로 지워집니다. 해당 기간은 기본 설정에 따라 24시간이지만 사이트 관리자가 더 늘리거나 줄일 수 있습니다.