2014-03-03 3 views
3

그래서 matplotlib basemap에 표시하기 위해 python으로 shapefile을 읽으려고합니다. 내가 읽은 바로는 오류shapefile을 읽을 때 Matplotlib Basemap의 오류에 대해 dbf 파일에서 null 값을 제거합니다.

ValueError: invalid literal for int() with base 10: '*'

가 계속, 오류가 DBF 파일의 일부 필드의 일부 null 값과 관련된 것으로 보인다. 이 문제를 해결하기위한 대안이나 대안이 있는지 궁금합니다.

Basmap을 사용하지 않고 matplotlib 또는 mpl_toolkits에 shapefiles를 보낼 수 없지만 basemap이 계속 이러한 오류를 표시합니다. 여기

은 몇 가지 예제 코드입니다.

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
fig = plt.figure(figsize=(12, 12)) 
map = Basemap(projection='lcc', resolution='h', area_thresh=None, 
      lat_0=33.5130, lon_0=36.2920, llcrnrlon=36, llcrnrlat=33.2, 
      urcrnrlon=36.5, urcrnrlat=33.7) 
map.readshapefile('dmc_buildings', 'buildings', drawbounds=True) 
fig.show() 

오류 추적은 다음과 같습니다.

Traceback (most recent call last): 
File "dmc_gis_basemap.py", line 17, in <module> 
map.readshapefile('dmc_roads', 'roads', drawbounds=True) 
File "../anaconda/envs/py27env/lib/python2.7/site-packages/mpl_toolkits/basemap /__init__.py", line 2146, in readshapefile 
for shprec in shf.shapeRecords(): 
File "../anaconda/envs/py27env/lib/python2.7/site-packages/mpl_toolkits/basemap/shapefile.py", line 543, in shapeRecords 
for rec in zip(self.shapes(), self.records())] 
File "../anaconda/envs/py27env/lib/python2.7/site-packages/mpl_toolkits/basemap/shapefile.py", line 515, in records 
r = self.__record() 
File "../anaconda/envs/py27env/lib/python2.7/site-packages/mpl_toolkits/basemap/shapefile.py", line 480, in __record 
value = int(value) 
ValueError: invalid literal for int() with base 10: '***' 
+1

당신이 당신의 코드를 보여줄 수 피오나와 매끈한 를 사용하여 몇 가지 예에 대한 링크를 쓴이 블로그 게시물을 봐? – Raptor

+0

죄송합니다. 나는 그렇게하려고했습니다. 나는 지금 약간의 코드를 업로드했다. – krishnab

+0

참고 dbf 파일을 dbfpy 모듈과 함께 열려고 시도했지만 동일한 오류 메시지와 함께 실패했습니다. – krishnab

답변