본문 바로가기
프로젝트

[ 분석프로젝트 ] 천안시 오락 및 편의 시설이 많은 장소는 어디일까?

by kime2 2024. 8. 13.
  • 목적 : 천안시 폐건물을 활용하기 위해 최적의 입지를 찾는다
  • 방안 : 오락, 편의, 숙박 및 관광과 관련되어 가까이 있는 확인
구분 주소 주변 지역
두정동 폐공사장 충남 천안시 서북구 두정동 1354 성정동, 신부동,두정동, 부대동, 성성동, 백석동, 봉명동
폐공장 천안시 서북구 충무로 214 (쌍용동 388-13) 쌍용동, 봉명동, 성정동, 다가동, 일봉동, 청수동, 용곡동, 신방동
삼룡동 폐건물 천안시 동남구 삼룡동 240-3 삼룡동, 청룡동, 일봉동, 구성동, 원성동

 

활용데이터 : 인허가 데이터 포털

  1. 오락 서비스 : 수영장업, 일반유원시설업, 전문휴양업, 자동차야영장업, 영화상영업, 썰매장업, 승마장업, 빙장장업, 유원시설업, 공연장, 전문휴양업, 
  2. 숙박 서비스 : 관광펜션업, 관광숙박업, 종합휴양업, 관광숙박업, 숙박업, 외국입관광도시민박업 , 한복체험업
  3. 관광 서비스 : 지방문화원 , 박물관/미술관, 전통사찰
  4. 편의시설 : 대규모점포, 편의점
  5. 요식업 : 일반음식점

 

1. 데이터 전처리

데이터가 너무 많은 경우 위경도를 전환이 어렵기 때문에 주변지역당 구분

 

 

2. 분석

구분 주소 (위도, 경도) 위치 주변 지역
두정동 폐공사장 충남 천안시 서북구 두정동 1354 (36.8319614041446,127.13853973003) 두정동 성정동, 신부동,두정동, 부대동, 성성동, 백석동, 봉명동
충무로 폐공장 천안시 서북구 충무로 214 (쌍용동 388-13) (36.7963713271599,127.129356133734) 서북구 쌍용동, 봉명동, 성정동, 다가동, 일봉동, 청수동, 용곡동, 신방동
삼룡동 폐건물 천안시 동남구 삼룡동 240-3 (36.7901104846421,127.164385340393) 동남구 삼룡동, 청룡동, 일봉동, 구성동, 원성동

 

1) 음식점(일반음식점)

음시점의 수가 몇만개 단위로 주변 동으로 구분하여 집계

두정동 폐공사장(2081)
두정동(980) 성정동(982) 성성동(119)
충무로 폐공장(1324)
쌍용동(879) 일봉동(4) 신방동(441)
삼룡동 폐건물(233)
삼룡동(56) 구성동(109) 청수동(68)

 


 

2) 관광지

from geopy.distance import great_circle

# 2km 이내인지 확인하는 함수
def is_within_2km(coord1, coord2):
    if None in coord1 or None in coord2:  # 위경도 중 하나라도 None이면 False 반환
        return False
    distance = great_circle(coord1, coord2).kilometers
    return distance <= 2
    
# 기준점 : 두정동 폐공사장
reference_point = (36.8319614041446,127.13853973003)
# 기준점과 각 주소 간의 거리 확인
df_tour['Within 2km'] = df_tour['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('두정동 폐공사장 주변 2km 관광지 : ', df_tour[df_tour['Within 2km']=='Yes']['사업장명'].nunique())

# 기준점 : 충무로 폐공장
reference_point = (36.7963713271599,127.129356133734)
# 기준점과 각 주소 간의 거리 확인
df_tour['Within 2km'] = df_tour['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('충무로 폐공장 주변 2km 관광지 : ', df_tour[df_tour['Within 2km']=='Yes']['사업장명'].nunique())

# 기준점 : 삼룡동 폐건물
reference_point = (36.7901104846421,127.164385340393)
# 기준점과 각 주소 간의 거리 확인
df_tour['Within 2km'] = df_tour['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('삼룡동 폐건물 주변 2km 관광지 : ', df_tour[df_tour['Within 2km']=='Yes']['사업장명'].nunique())
  • 두정동 폐공사장 주변 2km 관광지 :  1(중복제거)

  • 충무로 폐공장 주변 2km 관광지 : 0
  • 삼룡동 폐건물 주변 2km 관광지 : 3(중복제거)

 

3) 오락시설

from geopy.distance import great_circle

# 2km 이내인지 확인하는 함수
def is_within_2km(coord1, coord2):
    if None in coord1 or None in coord2:  # 위경도 중 하나라도 None이면 False 반환
        return False
    distance = great_circle(coord1, coord2).kilometers
    return distance <= 2
    
# 기준점 : 두정동 폐공사장
reference_point = (36.8319614041446,127.13853973003)
# 기준점과 각 주소 간의 거리 확인
df_enter['Within 2km'] = df_enter['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('두정동 폐공사장 주변 2km 오락시설 : ', df_enter[df_enter['Within 2km']=='Yes']['사업장명'].nunique())

# 기준점 : 충무로 폐공장
reference_point = (36.7963713271599,127.129356133734)
# 기준점과 각 주소 간의 거리 확인
df_enter['Within 2km'] = df_enter['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('충무로 폐공장 주변 2km 오락시설 : ', df_enter[df_enter['Within 2km']=='Yes']['사업장명'].nunique())

# 기준점 : 삼룡동 폐건물
reference_point = (36.7901104846421,127.164385340393)
# 기준점과 각 주소 간의 거리 확인
df_enter['Within 2km'] = df_enter['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('삼룡동 폐건물 주변 2km 관광지 : ', df_enter[df_enter['Within 2km']=='Yes']['사업장명'].nunique())
  • 두정동 폐공사장 주변 2km 오락시설 : 14

  • 충무로 폐공장 주변 2km 오락시설 : 11

  • 삼룡동 폐건물 주변 2km 관광지 : 5

4) 숙박시설

  • 두정동 폐공사장 주변 2km 숙박시설 : 49
'신라스테이 천안', '슈바이처도르프', '뷰호텔스탠다드', '하운드호텔성정점', '그레이스호텔', '호텔하루',
'도로시', '브라운도트호텔천안성정점', '호텔주노', '시크릿모텔', '케이투호텔', '천안라트리호텔', '발렌타인',
'7블럭호텔', '스카이', '피카소', '노블레스호텔', '케이호텔', '호텔소설스미스', '월호텔', '루비',
'샹그리라', '에이치투호텔', '천안어반스테이성정점', '쇼호텔', '천안아늑호텔', '모노리스',
'저스트슬립호텔천안두정점', '베네치안', '호텔감', '호텔아리아', '케이투드라이브무인텔', '자자호텔', '아덴',
'주식회사신세계디앤씨명품무인호텔', '아이엠티무인텔', '썸에코존', '호텔어반스테이플러스', '뷰호텔', '호텔샾',
'에프2호텔', '로데오모텔', '신라스테이천안', '씨에스플라자호텔', '이엘호텔', '슈바이처도르프호텔',
'녹스호텔', '호텔리움', '그린티파티 두정스테이션'

 

  • 충무로 폐공장 주변 2km 숙박시설 : 62
'엘리', '피아노모텔', '호텔와', '호텔빛날빈', '윤성장여관', '여운장', '칼라모텔', '카페호텔',
'명품무인호텔제이', '라마다앙코르바이윈덤천안', '하트호텔', '탑클라우드호텔천안점', '아도라모텔', '호텔제이',
'애플모텔', '굿모닝호텔', '비지니스호텔', '루이스', '이화모텔', '씨에프(CF)모텔', '성원여관',
'한양파크장여관', '브라운도트쌍용점', '미진실업', '명동파크장', '썸', '엔유호텔',
'천안리조트라마다앙코르호텔', '이끌림호텔아모르본관', '렉스호텔', '미화장여관', '더블유',
'이끌림호텔아모르별관', '앙상블모텔', '로얄파크장여관', '닉스폭스호텔', '우진파크', '주식회사천안호텔어반트',
'더휴식아늑천안역점', '머무르다', '휴호텔', '시티호텔', '이끌림호텔아비숑별관', '스위트호텔', '월드모텔',
'이끌림호텔아비숑본관', '이끌림호텔아모르신관', '목화파크장여관', '아늑료칸요수리구리호텔', '대림파크장여관',
'그랜드파크장여관', '칼튼모텔', '브라운도트천안역점', '도쿄', '호텔벨리노', '천안스테이1977', '샾모텔',
'보보스호텔', '에스티179호텔', '이끌림호텔천안지점', '화이트텔', '드라파호텔'
  • 삼룡동 폐건물 주변 2km 숙박시설 : 27
'파라다이스여관', '능수모텔', '더메인즈호텔', '칼라모텔', '강남모텔', '리치스테이홈', '유디자인호텔',
'월', '메이플무인텔', '명동장여관', '모텔제우스', '미화장여관', '경성모텔', '비(B)호텔',
'대전여인숙', '썬샤인모텔', '롯데장여관', '목화파크장여관', '해금장여관', '두리모텔', '별장여인숙',
'청풍장여관', '아미가', '브라운도트천안역점', '광성장여관', '대우장모텔', '만년장여관'

 

4) 편의시설

데이터가 많아 주변을 포함하는 동단위로 기준

# 두정동 폐공사장 : 성정동, 신부동,두정동, 부대동, 성성동, 백석동, 봉명동
df_conv_두정동폐가 = pd.concat([df_conv_성정동,df_conv_신부동,df_conv_두정동,df_conv_부대동,df_conv_성성동,df_conv_백석동,df_conv_봉명동])
df_conv_두정동폐가['동'].unique()
df_conv_두정동폐가['Coordinates']=list(zip(df_conv_두정동폐가['Latitude'],df_conv_두정동폐가['Longitude']))
df_conv_두정동폐가.info()

# 기준점 : 두정동 폐공사장
reference_point = (36.8319609295754,127.138946422622)
# 기준점과 각 주소 간의 거리 확인
df_conv_두정동폐가['Within 2km'] = df_conv_두정동폐가['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('두정동 폐공사장 주변 2km 편의시설 : ', df_conv_두정동폐가[df_conv_두정동폐가['Within 2km']=='Yes']['사업장명'].nunique())

# 충무로 폐공장 : 쌍용동, 봉명동, 성정동, 다가동, 청수동, 용곡동, 신방동,(일봉동은 데이터 없음)
df_conv_충무로폐가 = pd.concat([df_conv_쌍용동,df_conv_봉명동,df_conv_성정동,df_conv_다가동,df_conv_청수동,df_conv_용곡동,df_conv_신방동])
df_conv_충무로폐가['동'].unique()
df_conv_충무로폐가['Coordinates']=list(zip(df_conv_충무로폐가['Latitude'],df_conv_충무로폐가['Longitude']))
df_conv_충무로폐가.info()
# 기준점 충무로 폐공장
reference_point = (36.7963713271599,127.129356133734)
# 기준점과 각 주소 간의 거리 확인
df_conv_충무로폐가['Within 2km'] = df_conv_충무로폐가['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('충무로 폐공장 주변 2km 편의시설 : ', df_conv_충무로폐가[df_conv_충무로폐가['Within 2km']=='Yes']['사업장명'].nunique())

# 삼룡동 폐건물 : 삼룡동, 청룡동(데이터없음), 일봉동(일봉동은 데이터 없음), 구성동, 원성동
df_conv_삼룡동폐가 = pd.concat([df_conv_삼룡동,df_conv_구성동,df_conv_원성동])
df_conv_삼룡동폐가['동'].unique()
df_conv_삼룡동폐가['Coordinates']=list(zip(df_conv_삼룡동폐가['Latitude'],df_conv_삼룡동폐가['Longitude']))
df_conv_삼룡동폐가.info()

# 기준점 삼룡동 폐건물
reference_point = (36.7901104846421,127.164385340393)
# 기준점과 각 주소 간의 거리 확인
df_conv_삼룡동폐가['Within 2km'] = df_conv_삼룡동폐가['Coordinates'].apply(
    lambda coord: "Yes" if is_within_2km(reference_point, coord) else "No")
print('삼룡동 폐건물 주변 2km 편의시설 : ',df_conv_삼룡동폐가[df_conv_삼룡동폐가['Within 2km']=='Yes']['사업장명'].nunique())

 

  • 두정동 폐공사장 : 성정동, 신부동,두정동, 부대동, 성성동, 백석동, 봉명동
  • 두정동 폐공사장 주변 2km 편의시설 : 150
  • 충무로 폐공장 : 쌍용동, 봉명동, 성정동, 다가동, 일봉동, 청수동, 용곡동, 신방동
  • 충무로 폐공장 주변 2km 편의시설 : 64

 

  • 삼룡동 폐건물 : 삼룡동, 청룡동, 일봉동, 구성동, 원성동
  • 삼룡동 폐건물 주변 2km 편의시설 : 14

 

 

3. 결과

구분 오락시설 숙박시설 편의시설 관광시설 요식업
두정동
폐공사장
14 49 150 1 2081
충무로 폐공장 11 62 64 0 1324
삼룡동
폐건물
5 27 14 3 233

 

[ 지역 용도를 통한 비교 ]

두정동 폐공사장 : 가장 가까운 거리는 상업지역을 중심으로 일반주거지역으로 둘러싸여 있고 역을 1가 포함한다
충무로 폐공장 : 가장 가까운 지역은 상업중심지로 두정동보다는 면적이 적고 두정동보다 녹지지역의 비중이 높고 역을 2개 포함한다
삼룡동 폐건물 : 상업지역에 가장 떨어져 있고, 보전녹지지역이 가장 많다(45%), 일반 주거지역의 비중도 작고 역을 포함하지 않는다