공지사항
태양광 건축물대장 pdf to excel 추출, 파이썬!
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
태양광 인허가 때도 건축물대장을 제출 한다.
(물론 노지 때는 제외)
왜?
무엇을 봐야해서?
기본적인 주소, 소유자, 면적, 용도, 구조형태 등을 대략이나마 파악하기 위함이다.
오래된 기업 일 수록,
땅을 추가로 사서, 건물을 올리고, 이렇게 덕지덕지 수많은 건축물이 축조 되어 있으며,
심한 경우 꼬여있다.
한 두개야 지난번처럼 pdf 윈도우 탐색기 미리보기 기능 등으로 보고 처리하면 되나,
윈도우 탐색기 pdf 미리보기 갑자기 안 될 때 with 알pdf
그 수가 많아진다면,
일일히 열고 필요한 정보를 취득하는데 한계가 있다.
그래서 간단하게 pdf 내용을 추출하는 파이썬 코드를 하나 짰다.
근디, 요즘은 AI가 워낙 기능이 좋아,
파이썬을 아무리 잘 짜더라도, ai만 못함을 미리 알려드린다.
코드는 다음과 같다.
import pdfplumber
import pandas as pd
import PyPDF2
import re
import os
import tkinter as tk
from tkinter import filedialog
# 폴더 선택 다이얼로그를 위한 tkinter UI 설정
def select_folder():
root = tk.Tk()
root.withdraw() # UI 창을 숨깁니다
folder_selected = filedialog.askdirectory(title="PDF 파일이 있는 폴더를 선택하세요.")
return folder_selected
# PDF 파일 경로 설정
folder_path = select_folder() # 사용자에게 폴더 선택을 요청
# 엑셀 파일 저장 경로 설정
output_path = "C:\\python\\extracted_data.xlsx"
# 엑셀에 저장할 데이터를 담을 리스트
all_data = []
# 폴더 내 모든 PDF 파일을 처리
for file_name in os.listdir(folder_path):
if file_name.lower().endswith('.pdf'):
pdf_path = os.path.join(folder_path, file_name)
# PDF 열기
with pdfplumber.open(pdf_path) as pdf:
# 첫 번째 페이지에서 표 추출
first_page = pdf.pages[0]
table = first_page.extract_tables()
# 첫 번째 표가 존재한다면
if table:
# 첫 번째 표를 pandas DataFrame으로 변환
df = pd.DataFrame(table[0][1:], columns=table[0][0])
# '주구조', '주용도', '지붕'으로 시작하는 값 추출
extracted_data = {
"주구조": [],
"주용도": [],
"지붕": []
}
# 정규 표현식 패턴 설정
pattern_주구조 = re.compile(r"주구조\s*[::]?\s*(\S+)")
pattern_주용도 = re.compile(r"주용도\s*[::]?\s*(\S+)")
pattern_지붕 = re.compile(r"지붕\s*[::]?\s*(\S+)")
# 각 행을 순차적으로 검사하여 '주구조', '주용도', '지붕'에 해당하는 값을 추출
for index, row in df.iterrows():
for col in df.columns:
value = str(row[col]) # 문자열로 변환
# 주구조: '주구조'로 시작하는 값 추출
match_주구조 = pattern_주구조.search(value)
if match_주구조:
extracted_data["주구조"].append(match_주구조.group(1))
# 주용도: '주용도'로 시작하는 값 추출
match_주용도 = pattern_주용도.search(value)
if match_주용도:
extracted_data["주용도"].append(match_주용도.group(1))
# 지붕: '지붕'으로 시작하는 값 추출
match_지붕 = pattern_지붕.search(value)
if match_지붕:
extracted_data["지붕"].append(match_지붕.group(1))
# 추출된 데이터의 길이가 같지 않으면 길이를 맞추기 위해 빈 값을 추가
max_length = max(len(extracted_data["주구조"]),
len(extracted_data["주용도"]),
len(extracted_data["지붕"]))
for key in extracted_data:
while len(extracted_data[key]) < max_length:
extracted_data[key].append(None) # 부족한 항목에 None 추가
# PDF에서 텍스트 추출
with open(pdf_path, 'rb') as file:
pdf_reader = PyPDF2.PdfReader(file)
pdf_text = ""
for page in pdf_reader.pages:
pdf_text += page.extract_text()
# 데이터 추출 함수 정의 (매칭 실패 시 None 반환)
def extract_value(pattern, text):
match = re.search(pattern, text, re.MULTILINE)
return match.group(1).strip() if match else None
# 주구조, 주용도, 지붕은 이미 추출하였으므로 제외한 다른 항목만 추가로 추출
data = {
"도로명주소": extract_value(r"도로명주소\s*([^\n]+)", pdf_text),
"건축면적": extract_value(r"건축면적\s*([\d,.]+)\s*㎡", pdf_text),
"명칭": extract_value(r"명칭\s+([^\n]+)", pdf_text),
}
# DataFrame에 주구조, 주용도, 지붕 데이터를 추가
final_data = {**data, **extracted_data}
# 각 PDF에서 추출한 데이터를 리스트에 추가
all_data.append(final_data)
# 모든 PDF에서 추출한 데이터를 하나의 DataFrame으로 결합
df_final = pd.DataFrame(all_data)
# 엑셀 파일로 저장
df_final.to_excel(output_path, index=False)
print(f"모든 PDF에서 추출된 데이터가 '{output_path}' 엑셀 파일에 저장되었습니다.")
사용방법은
1. 즐겨쓰는 에디터에서 실행버튼을 누르면,
pdf가 들어 있는 폴더를 기입하라는 ui가 뜬다.
2. 해당 폴더를 선택한 뒤 확인~
그럼 엑셀이 만들어지면서, 자료를 정리 해 준다.
이 것만으로 해당 건축물의 특징을 다 알 수 없다.
그저 지레짐작 할 뿐이다.
7일동안 많은 클릭!!!
이 곳에 소개 된 것들은 모두 여기에서 볼 수 있습니다. click!
tv 전원은 들어오는데 화면이 안 나올 때 대처방안
tv 공장모드에 들어 가 무언가를 만지다, 갑자기 화면이 꺼지더니 tv가 나오지 않는다. 무척 난감하다. 요즘 tv가격이야 원체 싸니 이참에 새로 장만하면 되지만, 그래도 돈이 나간다는 사실에 속이 쓰라린다.(아, 케비스톤!) 일반적으로 이때 공식 a/s 센터를 찾지만, 사실 그들에게 주어지는 것은 간단한 메뉴얼 그 이상 그 이하도 아니다. 심지어 그들은 해당 제품을 이용 해 본 적도 없으며 관심도 없다. 만약 님이 그들에게 공자모드 어쩌구 저쩌구 화면 안 나온다 하면 그들은 십중팔구 이렇게 말할 것이다. '패널 또는 보드가 고장 난 것 같다.' 세상에서 제일 간단한 수리방법은 부품을 교체하는 것이다. 특히 통짜로 교체하는 것이 수익에도 좋고 아무 고민 할 필요 없다.(그래서 대부분 보드 갈아야 한다고 답볍함) 여기다 tv 보드 나간 현상 中 일반적인 하나는 전원코드를 꽂았을 때 전원불빛만 주기적으로 빠르게 깜빡인다는 것이다. 이는 전원은 들어오지만 연결 할 장치를 못 찾겠다는 의미로 이 현상까지 발현한다면 얄팍한 tv에 대한 지식을 가진 사람들은 보드 고장으로 결론을 내린다. 하지만 보드 고장이 사실 나기가 어렵다. tv가 움직이는 것도 아니고 강한 외부충격이나 전시상품과 같이 오래 켜진 체 방치 되어야 하는데 스마트폰의 등장으로 이러한 경험을 하기가 어렵다. 즉, tv가 잘 나오다가 갑자기 꺼지며 화면이 나갔다는 것은 파워모듈에 이상이 있을 가능성이 높지 (처음부터 불량이 아니라면) 보드가 나가기 힘들다. 그런데 파워는 들어오는데 화면이 안 나온다? 이것은 다르게 접근 해 봐야 한다. 다른 외부입력은 없는가 이다. 윈도우 같은 운영체제도 그렇지만 일반적으로 제품에 프로그램을 설치하기 위해서는 외부에서 입력하게 되는데 이 때 별도의 루트를 지정하지 않으면 외부에서 입력한 정보를 다 받아들인다. 하지만 역시 이 프로그램도 어떠한 기준점이 있어 하드웨어와 맞지 않으면 그저 대기모드에 들어가게 된다. 이에 따라 우선 tv에 연결된 (기본적인 ...
테더링(핫스팟) 제한 무력화 또는 우회(DUN)하는 방법, how it's done
드디어 SK통신사를 이용하다, LG로 넘어갔다. 뭐, SK 해킹 때문에 넘어 간 것은 아니고, 2025 알뜰폰 요금제 업데이트, 이제 평생요금 데이터 무제한도 나올 때 되었지? 때가 되서 넘어 간 것이다. 1Mbps... 느린 속도이기는 하나, 테더링(핫스팟)으로 활용하면, 노트북으로 간단한 업부를 보거나, 가족들이 유튜브나 가볍게 유흥을 즐길 수 있다. sk는 제한이 없던 것 같던데,,, LG 통신사는 당당하게 있네??? 기본 통신 데이터를 다 쓰니, 테더링(핫스팟)이 안 되는 것이였다. 처음에는 LG의 1Mbps가 SK보다 느리구나 생각하다가, 아예 되지를 않으니 이상하여 통신사에 문의했다. 돌아 온 대답은 "기본 데이터와 테더링 데이터는 별도로 관리하고 있어, 기본 데이터가 남아 있더라도, 테더링 데이터를 다 쓰면 핫스팟이 안 된다. 약관에 써놨다." 약관을 꽁꽁 숨겨놓고는 약관에 있다고 한다. sk 해킹 때는 약관에 업체 잘 못이면, 위약금 없다 해놓고는 잘만 받아놓고는, 이럴 때는 보여주지도 않은 약관을 찾고 있다. 쨌든 테더링을 왜 제한 할까는 나중에 다루도록 하고, 우선, 이 혼문을 극복하는 방법을 알아보자! 빠르게, 방법은 3가지다. 1. 설정에서 APN 설정 변경 2. 데터링 우회 어플 사용 3. 최신폰이라면, ADB에서 설정변경 1. 설정 > 연결 > 모바일네트워크 > 엑세스 포인트 이름 가서 새로운 엑세스 포인트 이름을 만들면 된다. 테더링 무제한 사용 방법 (핫스팟 우회 하기) : 네이버 블로그 이분은 많은 것을 넣었지만, 핵심은 APN유형, dun이다. Dial-Up Networking, 스마트폰을 모뎀으로 써서 핫스팟으로 쓰겠다 이다. apn 유형에 이것만 추가하면 되는데, 괜시리 기본 프로필을 잊어버리는 경우도 있으니, 새로 만들어서 사용하라는 것이다. 이게 안 된다고 하면... 두번째 방법인 어플을 까는거고. NetShare - 루트 없는 테더링 - Google Play 앱 근디, 이것이 vp...
중국이 한국 태양광 시장 잡아 먹는 이유, 덤핑 예, 덤핑 예, 다 같이 뛰어~ 뛰어~
중국이 한국 태양광 시장을 잡아 먹는다고 한다. 이유는 다 안다. 싸니까, 믿으니까, 인터... 그렇다면, 왜 중국 제품이 싸고, 공급이 원할 할까? 미국이나 유럽 같은 곳은 안 받아준다. 미국은 '태양광은 사기다'라는 말을 꺼낼정도고, 중국을 견제하니, 당연히 안 받아주고, 유럽 등은 가격차가 워낙 싸니, 자국 업체들을 보호하기 위해 빡센 관세 정책 등을 적용한다. 상황이 이러하니, 가깝고, 정책이 느슨하고, 서해안을 빼앗아도 가만히 있는 만만한 한국이 타깃이 된다. 그럼에도 역시 품질 면에서는 메딘코리아라고, 포스맥이나 기타 태양광 기자재 등은 어찌저찌 버티고 있다. 그래서 그런가, 비데명은 관세가 오르든 말든, '美 관세 15%' 먼저 출발한 일본車…'캠리보다 비싼 쏘나타' 현실로 - 뉴스1 방관하며, 국토부, 포스코이앤씨 100여 곳 공사현장 전수조사 착수 - 뉴스1 포스코 등의 자랑스런 기업을 견제 및 압박하고 있는 중이다. (아니, 현대차가 품질이 나쁜 것은 아닌데, 솔직히 캠리보다 비싸면...) 어떤 분들은 이번에 현대차 기술자 미국에 보내지 마라며, 본때를 보여주자고 하는데, 반대로 중국이 싸게 공급하다, 포스코 등 업체가 사라지고, 독점을 해 버리면, 그 때도 중국이 싸게 공급 할까? 라는 생각을 하게 된다. 물론 좋은 물건을 싸게 구입 할 수 있다는 점은 좋다. 근디, 걔들도 욕심이라는 것이 있는데, 아무래도 공격적인 마케팅을 할려면, 덤핑 할 수 밖에 없다. 덤핑이란? 남아 도는 물건을 외국에 던지듯이 싸게 판매하는 것이다. 세상에 이유 없는 공짜는 없다. 물건을 싸게 던진다는 것은 판로가 없거나, 우리나라를 통해서 외국에 판매 할려고 하거나, 이다. 그 과정에서 점 점 더 물건이 안 좋아지거나 할 수 있는 것이 덤핑이다. (검수 대충, 불순물 잇빠이!) 세상에 싸고 좋은 물건은 없다. 알리·테무 어린이용품 발암물질 검출… 문제 된 제품 뭘까 - 헬스조선 그런데, 우리나라 시장 크지 않잖아요! 그렇...
한국전기안전공사 STC -> BNPI 기준 변경
드디어 오는 9/20, 태양광 설계기준이 바뀐다. STC -> BNPI 요즘은 re100 위주로 공사를 해서, 발전용 태양광 기준도 바뀌는가는 아직 체크 못 했지만, 한국전기안전공사 기준으로는 용량 기준은 바뀌지 않는다. 즉, 이전의 100kw는 9월 20일 이후에도 100kw다. 차피 한전에서도 사용전검사필증을 기준으로 계약을 맺기 때문에 용량 이슈는 없을 듯 보이나, 태양광모듈 KS인증 BNPI, 사업주와 pf는 찝찝하고, 시공사는 웃습... 요즘 정부가 앞뒤 없는 정책을 펼쳐서, 수시로 확인이 필요하다. 용량은 이전 STC로 하면 되기는 한데, 전압, 전류 등의 기준이 BNPI로 바뀌었다. 그러면, 뭐가 바뀌어요? 전기 설계가 바뀌는거지... BNPI는 양면이 정상적으로 출력함을 기준으로 하기에, 이전 기준보다 안전범위가 커질 수 밖에 없었고, 병렬이 왔다 갔다 할 수도 있다. 양면모듈을 다뤄 본 사람들은 알것이지만, 전압은 온도에 민감한데, 양면으로 발전 한들 후면에 있는 발전은 온도에 영향이 거진 미진함으로 STC나 BNPI나 전압의 변함은 거진 없으나 광량은 전류에 영향을 끼치니, 전류의 변화는 눈에 띈다. 즉, 단면과 양면으로 발생한 용량의 차이는(p=vi) 전류에서 거진 발생한다보면 된다. 전류 기준이 바뀌면 뭐에 신경써야? - 인버터 - 케이블 - 퓨즈 및 차단기 - 병렬 등 dc 입력단만 바뀌기 땜시롱 ac는 변화가 없지만, 자칫 케이블이 굵어져야 하는 불상사가 발생하니, 고압이라면 계산서 발행 해 주의해야 한다. 케이블 단면적에 영향을 주는 것들이, 고전허준기 였나? 전압, 허용전류, 안전계수... 왜 기준이 바뀌는건가요? 세계적 기준이 작년 9월부터 바뀌었고, 지금까지는 유예단계였지. 이제 오는 9월에 적용하는 시기고. 어쩌면 잘 된 것이다. 이전에는 주먹구구식으로 옛 규정에 맞췄는데, 이제는 통일되고 정리 된다니까... 그런 의미에서 옛 기준으로 만들어진 기존 건물과 신축인 태양광발전소 조합도 생각 ...
캐드 객체 선택이 안 될 때(풀릴 때), 명사/동사 선택
버튼을 잘 못 눌렀는지, 단순한 오류인지. 본디 캐드는 마우스를 드래그 하면 객체가 선택되고, 명령어만 넣으면 실행 되어야 한다. 근디, 그런데도, 명령어를 넣은 뒤 다시금 객체를 선택해야 하는 오류가 발생했다. 귀찮더라도 명령어를 넣고, 선택 후 엔터를 하면 되기는한데, 그래도 이왕 고칠 수 있는 거 고치는 것이 좋다. 바로 '제도 설정'의 옵션에서 '명사/동사 선택'을 체크하면 된다. 상단의 도구 탭에 제도설정에 들어가도 되고, 아니면 명령어로 op를 넣으면 된다. 비록 내 캐드는 동적 입력이 안되지만,,, 지난 게시글에서처럼 또 어디 숨겨놨을 개연성이 조금은 있다. 참, 클립보드에서 붙여 넣는 것은 OLE로 인식하고, 걍 바탕화면에서 끌어다 넣는 것은 레스팅이미지로 인식하니,,, 이것도 주의하자. 중학교 때 모눈 종이에 제도 샤프라 해서 그림 그릴 때가 낭만 있었는데, 아쉽다. 그 때 빼고는 더 이상 배우지는 않았었지... 마치 주판 세대 때 주판이라고 할까나. 손으로 직접 하면 당연히 되는 것인데, 기계로 하면 어렵게 돌아가야 하니, 불편 할 수도 있다. 대화형 AI 종류 및 추천 (xehostel.blogspot.com) ai가 있기전까지는. 물론 ai가 부족한 점은 있다. 아직까지는 걸러야 할 부분이 있기는 한데, 적중률이 높을 때는 인터넷 뒤적거리는 것보다는, ai가 그 어떤 메뉴얼보다 빠르고 쉽게 알려준다. 다만, 너무 맹신만 하지 않으면 된다. 좀 더 검색 단어를 바꾸며, 뒤지면 더 좋은 결과를 찾을 수 있다. 그 전에 빠르게 해결하는데는 ai가 갑일 뿐이지.
OLE(캐드 이미지 삽입)가 이상하게 삽입 될 때, '클라이언트를 업데이트 할 수 없습니다.'
캐드에 있어 OLE란? 캐드 OLE 오류 반쯤 해결~OLE도 복사가 되네? 근디, 이미지편집은 또 안 되??? 오류가 많은 종자다. OLE를 넣은 도면인데, 1. 저장 했다 열어, 추가로 넣을려고 하면, 오류발생. 2. 사진 용량이 커도 오류 발생. 여기다 OLE로 삽입한 이미지는 캐드 내에서는 편집이 안 된다. 캐드 내에서는.(신축 이런 거 말고.) 그 수 많은(?) 오류 중 ' 클라이언트를 업데이트 할 수 없습니다 ' 가 있는데, 원인은 명확하지 않지만, 이미지 용량을 줄이니, 해결 되었다. 어떤 님은 그림판에서 이미지를 불러올 때, 픽셀을 조절하여, 이미지 용량을 줄이면 바로 적용이 가능하다고 하지만, 내 경우 안 되었다. 그래서 먼저 이미지 용량을 줄인 다음 저장하고, 적용하니, 그 때서야 삽입 할 수 있었다... 이런 때 보면, 캐드는 정말 원초적인 프로그램이구나라는 것을 느낀다. 영덕대게 프로그램 간 호환이 안 되는 이유로는 1. 한글 이름으로 되어 있을 때 2. 용량이 너무 클 때 3. 버전업이 안 되 있을 때 4. 경로가 적합하지 않을 때 등이다. 버전업이야, 서로 호환이 안 되면 그럴 수 있다고는 하지만, 1번과 2번 그리고 4번의 경우는 요즘 같이 스펙이 고사양화 되고, 평준화 된 시점에서 거의 사라진 현상인데, 유독 우리나라 몇 정부기관 사이트에서나 볼 법한 광경을, 캐드에서 보게 되니, 흠칫 놀란다. 용량 줄이는 방법은 여러가지가 있다. 1. 전용 프로그램을 이용 2. 자르기를 하거나 3. 픽셀 조절하거나 4. 사진 용량을 줄여주는 온라인 사이트를 이용 등 등 등 나는 주로 Offline에서 작업을 많이 해서, 자체 프로그램을 이용하는 것을 선호한다. 1. 윈도우 10 '사진' 프로그램 실행해서 편집에서 이미지 크기 조정, 2. 픽셀 줄이기 이러면, 용량이 3mb로 확 줄어 오류는 발생하지 않는다. 이와 비슷한 현상이 어디서 봤는데.... 화질(해상도) 저하 없이 그림판으로 증명 사진을 만드는 방법 증명사진 ...
댓글
댓글 쓰기