← 홈으로

netviz_tools

원시 무역 흐름 테이블을 인터랙티브 네트워크 시각화로 변환하는 공개 Python 패키지입니다. NetworkX를 기반으로 구축되었으며, FAOSTAT 농업 무역 데이터를 기본 지원합니다.

한눈에 보기

프로젝트 개요 / 해결한 문제

NetworkX는 Python에서 그래프를 구축하고 분석하는 데 있어 표준 라이브러리이지만, 실제 작업에서 가장 많은 시간이 소요되는 두 단계 — 지저분한 실세계 데이터를 그래프로 변환하는 것과, 분석 완료된 그래프를 시각적으로 확인 가능한 형태로 출력하는 것 — 에서는 지원이 부족합니다. 통상적인 워크플로는 임시 스크립트 더미로 이루어집니다 — CSV를 읽고, 컬럼명을 정제하고, 중복 엣지를 제거하고, 그래프를 구축한 뒤, 매번 Matplotlib 또는 Plotly 그림을 수작업으로 작성하는 방식입니다.

netviz_tools는 이 전체 과정을 네 개의 클래스로 패키징하여 상용구 코드를 제거합니다:

주요 사용자는 관계형 또는 무역 흐름 데이터를 다루며 정제-구축-시각화 파이프라인을 자동화하고 싶은 연구자, 학생, 데이터 분석가입니다. FAOSTAT 연동 기능 덕분에 국제 농업 무역을 연구하는 분들이 즉시 활용할 수 있습니다.

주요 기능

사용 방법

PyPI에서 설치한 뒤, 품목명 몇 줄만으로 분석 가능한 무역 네트워크를 구축할 수 있습니다:

# pip install netviz_tools

import networkx as nx
from netviz_tools import FAOSTATManager

faostat = FAOSTATManager()

# Browse what's available, then load wheat trade data
faostat.list_commodities(search="wheat", limit=10)
faostat.load_commodity("wheat")

# Major wheat trade flows in 2020 (volume threshold to drop noise)
flows = faostat.get_trade_flows(commodity="wheat", year=2020, min_volume=10000)

# Build a trade network and analyze it with plain NetworkX
network = faostat.create_trade_network(commodity="wheat", year=2020, min_volume=100000)
print(f"{network.number_of_nodes()} nodes, {network.number_of_edges()} edges")
print(f"Network density: {nx.density(network):.4f}")

FAOSTAT를 사용하지 않는 일반 경로도 마찬가지로 간결합니다 — DataManager가 임의의 노드/엣지 테이블을 로드하고 정제하며, NetworkManager가 인터랙티브 Plotly·Sankey· 지리적 출력을 생성합니다.

한계점 / 로드맵

기술 스택

링크

← 홈으로