วิธีที่รวดเร็วในการโหลดไฟล์ Geocoded National Address File ของออสเตรเลีย (GNAF) และ Australian Administrative Boundaries ลงใน Postgres ที่เรียบง่ายและพร้อมใช้เป็นข้อมูลอ้างอิงสำหรับการเข้ารหัสทางภูมิศาสตร์ การวิเคราะห์ การสร้างภาพ และการรวมกลุ่ม
ดูสไลด์แนะนำ (PDF) เหล่านี้ รวมถึงหน้า data.gov.au
การเรียกใช้สคริปต์ Python จะใช้เวลา 30-120 นาทีบนเซิร์ฟเวอร์ Postgres ที่กำหนดค่าให้ใช้ประโยชน์จาก RAM ที่มีอยู่
คุณสามารถประมวลผลข้อมูลเวอร์ชัน GDA94 หรือ GDA2020 ได้ เพียงตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดเวอร์ชันเดียวกันสำหรับทั้ง GNAF และ Administrative Boundaries หากคุณไม่ทราบว่า GDA94 หรือ GDA2020 คืออะไร ให้ดาวน์โหลดเวอร์ชัน GDA94 (โปรดทราบ - เป็นระบบพิกัดที่แตกต่างกัน)
เพื่อให้โหลดได้เร็ว คุณจะต้องกำหนดค่าเซิร์ฟเวอร์ Postgres ให้มีประสิทธิภาพ มีคำแนะนำที่ดีอยู่ที่นี่ โดยสังเกตว่ามันมีอายุไม่กี่ปีแล้ว และพารามิเตอร์หน่วยความจำบางตัวอาจเพิ่มขึ้นได้หากคุณมี RAM
CREATE EXTENSION postgis
-h
(ดูตัวอย่างบรรทัดคำสั่งด้านล่าง)พฤติกรรมของ gnaf-loader สามารถควบคุมได้โดยการระบุตัวเลือกบรรทัดคำสั่งต่างๆ ให้กับสคริปต์ อาร์กิวเมนต์ที่รองรับคือ:
--gnaf-tables-path
ระบุเส้นทางไปยังไฟล์ GNAF PSV ที่แตกออกมา ไดเรกทอรีนี้จะต้องสามารถเข้าถึงได้โดยเซิร์ฟเวอร์ Postgres และอาจต้องตั้งค่าเส้นทางในเครื่องที่เกี่ยวข้องสำหรับเซิร์ฟเวอร์ไปยังไดเรกทอรีนี้ผ่านอาร์กิวเมนต์ local-server-dir
--local-server-dir
ระบุเส้นทางท้องถิ่นบนเซิร์ฟเวอร์ Postgres ที่สอดคล้องกับ gnaf-tables-path
หากเซิร์ฟเวอร์ทำงานอยู่ในเครื่อง สามารถละเว้นอาร์กิวเมนต์นี้ได้--admin-bdys-path
ระบุเส้นทางไปยังไฟล์ขอบเขตผู้ดูแลระบบ Shapefile ที่แตกออกมา ซึ่งแตกต่างจาก gnaf-tables-path
เส้นทางนี้ไม่จำเป็นต้องเข้าถึงได้จากเซิร์ฟเวอร์ Postgres ระยะไกล --pghost
ชื่อโฮสต์สำหรับเซิร์ฟเวอร์ Postgres ค่าเริ่มต้นนี้เป็นตัวแปรสภาพแวดล้อม PGHOST
หากตั้งค่าไว้ มิฉะนั้นจะมีค่าเริ่มต้นเป็น localhost
--pgport
หมายเลขพอร์ตสำหรับเซิร์ฟเวอร์ Postgres ค่าดีฟอลต์นี้เป็นตัวแปรสภาพแวดล้อม PGPORT
หากตั้งค่าไว้ มิฉะนั้นจะเป็น 5432
--pgdb
ชื่อฐานข้อมูลสำหรับเซิร์ฟเวอร์ Postgres ค่าเริ่มต้นนี้เป็นตัวแปรสภาพแวดล้อม PGDATABASE
หากตั้งค่าไว้ มิฉะนั้น geoscape
--pguser
ชื่อผู้ใช้สำหรับเข้าถึงเซิร์ฟเวอร์ Postgres ค่าดีฟอลต์นี้เป็นตัวแปรสภาพแวดล้อม PGUSER
หากตั้งค่าไว้ มิฉะนั้นจะ postgres
--pgpassword
รหัสผ่านสำหรับการเข้าถึงเซิร์ฟเวอร์ Postgres ค่าเริ่มต้นนี้เป็นตัวแปรสภาพแวดล้อม PGPASSWORD
หากตั้งค่าไว้ มิฉะนั้นให้ใส่ password
--srid
ตั้งค่าระบบพิกัดของข้อมูลอินพุต ค่าที่ถูกต้องคือ 4283
(ค่าเริ่มต้น: GDA94 lat/long) และ 7844
(GDA2020 lat/long)--geoscape-version
หมายเลขเวอร์ชัน Geoscape ในรูปแบบ YYYYMM ค่าเริ่มต้นเป็นปีปัจจุบันและเดือนที่วางจำหน่ายล่าสุด เช่น 202408
.--previous-geoscape-version
หมายเลขเวอร์ชันที่เผยแพร่ Geoscape ก่อนหน้าเป็น YYYYMM; ใช้สำหรับการเปรียบเทียบ QA เช่น 202405
.--raw-gnaf-schema
ชื่อสคีมาเพื่อจัดเก็บตาราง GNAF แบบดิบ โดยมีค่าเริ่มต้นเป็น raw_gnaf_
--raw-admin-schema
ชื่อสคีมาเพื่อจัดเก็บตารางขอบเขตผู้ดูแลระบบแบบดิบ ค่าเริ่มต้นเป็น raw_admin_bdys_
--gnaf-schema
ชื่อสคีมาปลายทางเพื่อจัดเก็บตาราง GNAF สุดท้าย ค่าเริ่มต้นคือ gnaf_
--admin-schema
ชื่อสคีมาปลายทางเพื่อจัดเก็บตารางขอบเขตผู้ดูแลระบบขั้นสุดท้าย ค่าเริ่มต้นคือ admin_bdys_
--previous-gnaf-schema
Schema พร้อมด้วยตาราง GNAF เวอร์ชันก่อนหน้า ค่าเริ่มต้นคือ gnaf_
--previous-admin-schema
Schema พร้อมด้วยตารางขอบเขตผู้ดูแลระบบเวอร์ชันก่อนหน้า ค่าเริ่มต้นคือ admin_bdys_
--states
ช่องว่างที่คั่นรายการของรัฐที่จะโหลด เช่น --states VIC TAS
ค่าเริ่มต้นคือการโหลดทุกสถานะ--prevacuum
บังคับให้ฐานข้อมูลถูกดูดฝุ่นหลังจากวางตาราง มีค่าเริ่มต้นเป็นปิด และการระบุตัวเลือกนี้จะทำให้กระบวนการนำเข้าช้าลง--raw-fk
สร้างทั้งคีย์หลักและคีย์ต่างประเทศสำหรับตาราง GNAF แบบดิบ มีค่าเริ่มต้นเป็นปิด และจะทำให้กระบวนการนำเข้าช้าลงหากระบุไว้ ใช้ตัวเลือกนี้หากคุณต้องการใช้ตาราง GNAF แบบดิบเป็นอย่างอื่นนอกเหนือจากขั้นตอนการนำเข้าชั่วคราว โปรดทราบว่าตารางที่ประมวลผลขั้นสุดท้ายจะมีการตั้งค่าคีย์หลักและคีย์นอกที่เหมาะสมเสมอ--raw-unlogged
สร้างตาราง GNAF ดิบที่ไม่ได้บันทึก ซึ่งจะช่วยเร่งการนำเข้า ค่าเริ่มต้นเป็นปิด ระบุตัวเลือกนี้เฉพาะในกรณีที่คุณไม่สนใจตารางข้อมูลดิบหลังจากการนำเข้า ตารางเหล่านั้นจะหายไปหากเซิร์ฟเวอร์ขัดข้อง!--max-processes
ระบุจำนวนสูงสุดของกระบวนการแบบขนานที่จะใช้สำหรับการโหลดข้อมูล ตั้งค่านี้เป็นจำนวนคอร์บนเซิร์ฟเวอร์ Postgres ลบ 2 แต่จำกัดไว้ที่ 12 ถ้า 16+ คอร์ - มีประโยชน์น้อยที่สุดเกินกว่า 12 ค่าเริ่มต้นเป็น 4--no-boundary-tag
อย่าติดแท็กที่อยู่ทั้งหมดด้วย ID ขอบเขตผู้ดูแลระบบที่สำคัญบางส่วนสำหรับการสร้างการรวมและแผนที่ choroplethpython load-gnaf.py --gnaf-tables-path="C:tempgeoscape_202408G-NAF" --admin-bdys-path="C:tempgeoscape_202408Administrative Boundaries"
โหลด ตาราง GNAF ไปยังเซิร์ฟเวอร์ Postgres ที่ทำงานภายในเครื่อง ไฟล์เก็บถาวร GNAF ได้รับการแยกไปยังโฟลเดอร์ C:tempgeoscape_202408G-NAF
และขอบเขตของผู้ดูแลระบบได้รับการแยกไปยังโฟลเดอร์ C:tempgeoscape_202408Administrative Boundaries
python load-gnaf.py --gnaf-tables-path="\svrsharedgnaf" --local-server-dir="f:sharedgnaf" --admin-bdys-path="c:tempunzippedAdminBounds_ESRI"
โหลดตาราง GNAF ที่ได้รับการแยกไปยังโฟลเดอร์แชร์ \svrsharedgnaf
โฟลเดอร์ที่ใช้ร่วมกันนี้สอดคล้องกับโฟลเดอร์ f:sharedgnaf
ในเครื่องบนเซิร์ฟเวอร์ Postgres ขอบเขตของผู้ดูแลระบบได้รับการแยกไปยังโฟลเดอร์ c:tempunzippedAdminBounds_ESRI
python load-gnaf.py --states VIC TAS NT ...
โหลดเฉพาะข้อมูลสำหรับวิกตอเรีย แทสเมเนีย และนอร์เทิร์นเทร์ริทอรีคุณสามารถโหลดขอบเขตของผู้ดูแลระบบได้โดยไม่ต้องใช้ GNAF เมื่อต้องการทำสิ่งนี้: แสดงความคิดเห็นขั้นตอนที่ 1, 3 และ 4 ใน def main
หมายเหตุ: คุณไม่สามารถโหลด GNAF ได้หากไม่มี Admin Bdys เนื่องจากการพึ่งพาที่จำเป็นในการแบ่งเมลเบิร์นและแก้ไข locality_pids ที่ไม่มีขอบเขตในที่อยู่
เมื่อใช้ข้อมูลที่เป็นผลมาจากกระบวนการนี้ คุณจะต้องปฏิบัติตามข้อกำหนดการระบุแหล่งที่มาในหน้า data.gov.au สำหรับ GNAF และ Admin Bdys ซึ่งเป็นส่วนหนึ่งของข้อกำหนดสิทธิ์การใช้งานข้อมูลแบบเปิด
GNAF และขอบเขตผู้ดูแลระบบพร้อมใช้งานใน Postgres ในรูปภาพบน Docker Hub แล้ว
docker pull minus34/gnafloader:latest
docker run --publish=5433:5432 minus34/gnafloader:latest
5433
การเข้าสู่ระบบเริ่มต้นคือ - ผู้ใช้: postgres
รหัสผ่าน: password
หมายเหตุ: อิมเมจ Docker ที่บีบอัดคือ 8Gb, ที่ไม่บีบอัดคือ 25Gb
คำเตือน: รหัสผ่านผู้ใช้ขั้นสูงของ postgres เริ่มต้นไม่ปลอดภัย และควรเปลี่ยนโดยใช้:
ALTER USER postgres PASSWORD '
ดาวน์โหลดไฟล์ดัมพ์ Postgres และกู้คืนในฐานข้อมูลของคุณ
ควรใช้เวลาประมาณ 15-60 นาที
ตารางเชิงพื้นที่เวอร์ชัน Geoparquet รวมถึงตารางที่ไม่ใช่เชิงพื้นที่เวอร์ชันปาร์เก้ อยู่ในบัคเก็ต S3 สาธารณะเพื่อใช้โดยตรงในแอปพลิเคชันหรือบริการ นอกจากนี้ยังสามารถดาวน์โหลดได้โดยใช้ AWS CLI
เรขาคณิตมีพิกัดละติจูด/ลองจิจูด WGS84 (SRID/EPSG:4326) ตัวอย่างแบบสอบถามสำหรับการวิเคราะห์ข้อมูลโดยใช้ Apache Sedona ซึ่งเป็นส่วนขยายเชิงพื้นที่ของ Apache Spark อยู่ในโฟลเดอร์ spark
ไฟล์อยู่ที่นี่: s3://minus34.com/opendata/geoscape-202408/geoparquet/
aws s3 ls s3://minus34.com/opendata/geoscape-202408/geoparquet/
aws s3 sync s3://minus34.com/opendata/geoscape-202408/geoparquet/
รวมหรือพัฒนาโดยใช้ G-NAF © Geoscape Australia ซึ่งได้รับอนุญาตจากเครือจักรภพแห่งออสเตรเลียภายใต้ข้อตกลงสิทธิ์การใช้งานสำหรับผู้ใช้ปลายทาง Open Geo-coded National Address File (G-NAF)
รวมหรือพัฒนาโดยใช้ขอบเขตการบริหาร © Geoscape Australia ได้รับอนุญาตจากเครือจักรภพออสเตรเลียภายใต้ใบอนุญาต Creative Commons Attribution 4.0 International (CC BY 4.0)
GNAF และ Admin Bdys ได้รับการปรับแต่งเพื่อลบข้อจำกัดเล็กๆ น้อยๆ ที่ทราบบางประการเกี่ยวกับข้อมูล สิ่งที่น่าสังเกตมากที่สุดคือ:
loc9901d119afda_1
& loc9901d119afda_2
) การแยกเกิดขึ้นที่แม่น้ำยาร์รา (ตามรหัสไปรษณีย์ในที่อยู่เมลเบิร์น)