QGISã§ç©ºéçµåããæ¹æ³ïŒäœçœ®ã»æè¿åã»AI
å ¬éæ¥

空éçµåãšã¯ãå
±éã®IDã§ã¯ãªãå°ç©ã®äœçœ®é¢ä¿ãããšã«ãããã¬ã€ã€ã®å±æ§ãå¥ã®ã¬ã€ã€ã«ã³ããŒããåŠçã§ãã QGISã§ Vector > Data Management Tools > Join Attributes by Location⊠ãéããæ°ãã屿§ãåãåãã¬ã€ã€ã屿§ã®ååŸå
ã¬ã€ã€ããintersectããªã©ã®æ¡ä»¶ãéžãã§å®è¡ããŸãããã©ããäžçªè¿ããããç¥ããããšã㯠Join Attributes by Nearest ã䜿ãããäœæ¥å
容ãäžæã§å
¥åããŠAI Agentã«ä»»ããããšãã§ããŸãã
| ããããããš | ããŒã« | ãã¹ãã§ã®åŠçæé |
|---|---|---|
| åç¹ã«ããã®ç¹ãå ¥ã£ãŠãããšãªã¢ã®ååãä»ãã | Join Attributes by Location | 0.21ç§ãåŠæ ¡382ä»¶ |
| åãåŠçãäžæã§æç€ºãã | AI Agent | 22ç§ãã«ãŠã³ããšæè¿åããŸãšããŠå®è¡ |
| ãšãªã¢ããšã«ç¹ã®æ°ãåèšãæ±ãã | Join Attributes by Location (Summary) | 0.02ç§ã9ãšãªã¢ |
| æãè¿ãå°ç©ãšãã®è·é¢ãæ±ãã | Join Attributes by Nearest | 0.06ç§ãåŠæ ¡382ä»¶ |
ãã¹ãããŒã¿
ãã®èšäºã®æ°å€ã¯ãã¹ãŠã2026幎10æ15æ¥ã«ãã©ã³ã¹ã»ãªãšã³ã®ãªãŒãã³ããŒã¿ã§å®æœãã1åã®æ€èšŒããåŸããã®ã§ãã
- OpenStreetMapã®9ã€ã®åº(arrondissementãåžã®è¡æ¿åº)ãšåŠæ ¡382ä»¶ã
- OpenStreetMapã®è·¯é¢é»è»ã®åçæ106ä»¶ã
- ãã©ã³ã¹åœç«å°çé¢(IGN)ã®åºç€å°å³ããŒã¿BD TOPOã®å»ºç©103,910ä»¶ã
ã¬ã€ã€ã¯ãã¹ãŠã¡ãŒãã«åäœã®æåœ±åº§æšç³»ã§ããLambert-93(EPSG:2154)ã§ããåŠçæéã¯MacBook Air M4äžã®QGIS 3.44ã§èšæž¬ããŸããã
æ¹æ³1ïŒJoin attributes by location
å®çªã®ç©ºéçµåã§ããããã§ã¯ãååŠæ ¡ã«ãã®åŠæ ¡ãããåºã®ååãä»ããŸãã
ããŒã«ãéã
Vector > Data Management Tools > Join Attributes by Location⊠ãéããŸããProcessingããŒã«ããã¯ã¹(Ctrl+Alt+T)ã§ãjoin attributesããšæ€çŽ¢ããŠãèŠã€ãããŸãã
2ã€ã®ã¬ã€ã€ãéžã¶
Join to features in ã¯æ°ãã屿§ãåãåãã¬ã€ã€ã§ãããã§ã¯ schools ã§ããBy comparing to ã¯å±æ§ã®ååŸå
ã¬ã€ã€ã§ãããã§ã¯ arrondissements ã§ãã
è¿°èªã«ãã§ãã¯ãå ¥ãã
ããªãŽã³å ã®ç¹ã«ã¯ãintersect ãç¡é£ãªåæèšå®ã§ããåãã§ãã¯ããã¯ã¹ã®æå³ã¯äžã®ã»ã¯ã·ã§ã³ã§èª¬æããŸãã
ãã£ãŒã«ããšçµåã¿ã€ããéžã¶
Fields to add ã§ã¯å¿
èŠãªãã®ã ããæ®ããŸããããã§ã¯ name ã§ããJoin type 㯠one-to-one ã«ããarr_ ã®ãããªæ¥é èŸãä»ãããšãæ°ãããã£ãŒã«ããèŠã€ãããããªããŸãã
å®è¡ãã
Joined layer ã¯äžæã¬ã€ã€ã®ãŸãŸã«ããŠããŸãçµæã確èªãããã®ããšGeoPackageãšããŠä¿åããŸãã

Discard records which could not be joined ã«ãã§ãã¯ãå ¥ããã®ã¯ãçµåã§ããªãã£ãã¬ã³ãŒããæšãŠãããšãã ãã§ããæåã¯ãªãã«ããŠãããŸãããã空ã®è¡ããã©ãã§å€±æããããæããŠãããŸãã
**åããŠããå Žé¢ïŒ**å°ç©ãå ¥ã£ãŠããããŸãã¯æ¥ããŠãããªããžã§ã¯ãããã1ã€ãŸãã¯è€æ°ã®å±æ§ãåããããšãã
**åããªãå Žé¢ïŒ**åŠæ ¡ãšè·¯é¢é»è»ã®åçæã®ããã«ãå°ç©åå£«ãæ¥ããªããšãããã®å Žåã¯æ¹æ³4ã䜿ããŸãã
æ¹æ³2ïŒAI Agentã«äžæã§é Œã
AI Agentã¯ãå ¥åããäŸé Œãå®è¡ããTerraLabã®QGISãã©ã°ã€ã³ã§ããã¬ã€ã€åãšãã£ãŒã«ããèªã¿åããããŒã«ãéžãã§ããããžã§ã¯ãå ã§å®è¡ããŸãã
åããªãšã³ã®ã¬ã€ã€ãèªã¿èŸŒãã ç¶æ ã§ã次ã®äŸé ŒãéããŸããã
ååºã«ããåŠæ ¡ã®æ°ãæ°ãããã®ããã§ååŠæ ¡ã«æå¯ãã®è·¯é¢é»è»ã®åçæã®ååãšããããŸã§ã®è·é¢(ã¡ãŒãã«)ãä»ããŠãã ããã
AI Agentã¯QGISã®ProcessingããŒã«ã2ã€å®è¡ããç¶ããŠçãPythonã®åŠçã§ãæ°ãã2ã€ã®ãã£ãŒã«ããåŠæ ¡ã¬ã€ã€ã«æžã蟌ã¿ãŸãããããã«ã«ã¯ãWorked for 22 sããšè¡šç€ºãããŸãããGeoPackageããã£ã¹ã¯äžã§æžãæãããããèš±å¯ã®ç¢ºèªã¯1åã ãã§ãããã«ãŠã³ãã¯æäœæ¥ã®çµæãšå®å šã«äžèŽããŸãããåŠæ ¡ã¯åèš382ä»¶ã§ã2åºãš4åºã®27ä»¶ãã5åºã®56ä»¶ãŸã§ã§ãã

**åããŠããå Žé¢ïŒ**èãããããšã¯æ±ºãŸã£ãŠãããã4ã€ã®çµåããŒã«ã®ã©ãã§çããåºããåãããªããšãããŸãã¯è€æ°ã®æé ãã€ãªããããšãã
**åããªãå Žé¢ïŒ**æ¯é±åãçµåãè¡ããšããäžåºŠã¢ãã©ãŒãPythonã¹ã¯ãªãããšããŠä¿åããŠãããŸãããã
**æéïŒ**ç¡æãã©ã³ã¯ã«ãŒãäžèŠã§ããProã¯æé¡â¬49(çšå¥)ã§ãã
æ¹æ³3ïŒç©ºéçµåã§ã«ãŠã³ããšéèšãè¡ã
æ¹æ³1ã§ã¯ãååŠæ ¡ã«ãã®åºãä»ããŸãããéã®åããã€ãŸãååºã«åŠæ ¡ãäœä»¶ããããç¥ãã«ã¯ããµããªãŒçã䜿ããŸãã
ProcessingããŒã«ããã¯ã¹ã§ Join attributes by location (summary) ãæ€çŽ¢ããŸããJoin to features in ã«ããªãŽã³ãBy comparing to ã«ç¹ãæå®ããSummaries to calculate ã§çµ±èšå€ãéžã³ãŸããåæ°ãåèšãå¹³åãäžå€®å€ãæå°å€ãæå€§å€ãªã©ãéžã¹ãŸããQGISã¯çµ±èšå€ããšã«1ã€ã®ãã£ãŒã«ãã远å ããåå㯠osm_id_count ã®ããã«ãªããŸãã

æ°å€ã®åèšãæ±ããããŸããIGNã®å»ºç©ããŒã¿ã§1åå®è¡ãããšãããååºã®å»ºç©æ°ãšãããã«ç»é²ãããŠããäœæžæ°ãåŸãããŸãããã©ã¡ããæå€§ã ã£ãã®ã¯3åºã§ã建ç©9,474æ£ãäœæž51,743æžã§ãã
åçŽãªã«ãŠã³ãã ããªããVector > Analysis Tools > Count Points in Polygon⊠ã§ãããå°ãªãèšå®ã§åãçµæãåŸãããŸãã
**åããŠããå Žé¢ïŒ**çãããšãªã¢ããšã®æ°å€(åæ°ãåèšãå¹³å)ã®ãšãã
**åããªãå Žé¢ïŒ**äžèŽããå°ç©ã®äžèЧãã®ãã®ãå¿ èŠãªãšããæ¹æ³1ã one-to-many ã§äœ¿ããŸãã
æ¹æ³4ïŒJoin attributes by nearest
å°ç©åå£«ãæ¥ããŠããªããšãã¯ãè·é¢ã§çµåããŸããProcessingããŒã«ããã¯ã¹ã§ Join attributes by nearest ãæ€çŽ¢ããŸãã
Input layer ã« schoolsãInput layer 2 ã« tram_stopsãMaximum nearest neighbors ã«1ãæå®ããŸããQGISã¯åçæã®ãã£ãŒã«ãã«å ããŠãdistance ãã£ãŒã«ããšã䞡端ã®åº§æšã远å ããŸãã

çµæãå·Šå³ããèšå®ã¯2ã€ãããŸãã
- **Maximum distanceã**300 mã«ãããšãåçæãä»ããåŠæ ¡ã¯86æ ¡ã ãã§ãããæ®ãã®296æ ¡ã¯ãDiscard records which could not be joined ã«ãã§ãã¯ãå ¥ããªãéãããã£ãŒã«ãã空ã®ãŸãŸåºåã«æ®ããŸãã
- **Maximum nearest neighborsã**3ã«ãããšã382æ ¡ã1,146è¡ã«ãªããŸããã1æ ¡ãš1åçæã®çµã¿åããããšã«1è¡ã§ããè·é¢ããŸã£ããåãå°ç©ããããšè¡ãå¢ããç¹ã«ã泚æãå¿ èŠã§ããIGNã®å»ºç©103,910æ£ã§ã¯103,911è¡ã«ãªããŸããã
è·é¢ã¯çŽç·è·é¢ã§ãé路沿ãã®æ©è¡è·é¢ã§ã¯ãããŸããã
åããŠããå Žé¢ïŒãã©ããäžçªè¿ããããã©ã®ãããé¢ããŠãããããç¥ããããšãã
**åããªãå Žé¢ïŒ**ç§»åè·é¢ãå¿ èŠãªãšããProcessingããŒã«ããã¯ã¹ã®ãããã¯ãŒã¯è§£æããŒã«ã䜿ããŸãã
ã©ã®è¿°èªã«ãã§ãã¯ãå ¥ããã
è¿°èªãšã¯ãäžèŽãå€å®ãã空éçãªã«ãŒã«ã®ããšã§ããQGISã¯ããããã¬ã€ã€A [è¿°èª] ã¬ã€ã€Bããšèªã¿ãŸããAã¯å±æ§ãåãåãã¬ã€ã€ã§ãã

å€ãã®äœæ¥ã¯æ¬¡ã®3ã€ã®èŠåã§ã«ããŒã§ããŸãã
- intersectïŒããªãŽã³å ã®ç¹ããæ¥ããŠããã°ãããã®ãã¹ãŠã«äœ¿ããŸããå¢çäžã®å°ç©ãæŸããŸãã
- are withinïŒå°ç©ãå®å šã«å åŽã«åãŸã£ãŠããå¿ èŠããããšãã«äœ¿ããŸãããªãšã³ãšäº€å·®ãã建ç©ã®ãã¡112æ£ã¯ã1ã€ã®åºã«å®å šã«ã¯åãŸã£ãŠããŸããã§ããã108æ£ã¯åžå¢ããŸããã4æ£ã¯åºã®å éšã®å¢çããŸããã§ããŸãã
- containïŒéåãã®å Žåãã€ãŸãç¹ãå«ãããªãŽã³åŽããçµåãããšãã«äœ¿ããŸãã
è€æ°ã®ããã¯ã¹ã«ãã§ãã¯ãå ¥ããããšãã§ããŸãããã®å Žåãã©ãã1ã€ã§ãæãç«ãŠã°äžèŽãšã¿ãªãããŸãã
one-to-oneãone-to-manyãlargest overlap
å¢çäžã«ãã建ç©ã¯ã2ã€ã®åºã«æ¥ããŠããŸãããã®å»ºç©ãã©ãæ±ãããæ±ºããã®ã Join type ã§ãããªãšã³ãšäº€å·®ããIGNã®å»ºç©46,250æ£ã§ã®çµæã§ãã
| çµåã¿ã€ã | åºåè¡æ° | åŠçæé |
|---|---|---|
| One-to-many(äžèŽããšã«å°ç©ã1ã€) | 46,254 | 1.13ç§ |
| First matching feature only(one-to-one) | 46,250 | 0.99ç§ |
| Largest overlap only(one-to-one) | 46,250 | 9.62ç§ |
One-to-many ã§ã¯ãåºã®å éšã®å¢çããŸãã4æ£ãéè€ããŸãããäžèŽã®äžèЧãšããŠã¯æ£ããçµæã§ãããåèšã«ã¯åããŸããããããã®å»ºç©ã2åæ°ããããŠããŸããŸãã
ãFirst matchingãã¯ãQGISãæåã«èŠã€ããäžèŽãæ¡çšãããããå¢çäžã®å»ºç©ã¯ã©ã¡ãã®åºã«ãå ¥ãå¯èœæ§ããããŸãããLargest overlapãã¯å»ºç©ã®å€§éšåãå ¥ã£ãŠããåºãéžã¶ã®ã§æãå ¬å¹³ãªçãã§ãããããã§ã¯çŽ10åã®æéãããããŸããã
座æšåç §ç³»(CRS)ã®èœãšã穎
座æšåç §ç³»ãééã£ãŠããŠããçµåãæ¢ãŸãããšã¯ã»ãšãã©ãããŸãããçµæãæ°ã¥ããªããã¡ã«å€ãã£ãŠããŸããŸãã
- **äœçœ®ã«ããçµåã§ã¯ãCRSãæ··åšããŠããŠãåããŸãã**åŠæ ¡ãWGS 84(EPSG:4326)ã®ãŸãŸãåºãLambert-93ã®ãŸãŸã«ããŠè©ŠããŸãããQGISããã®å Žã§åæåœ±ãã382ä»¶ãã¹ãŠãäžèŽããŸããã
- **è·é¢ã¯å
¥åã¬ã€ã€ã®åäœã§åºãŸãã**WGS 84ã®ãã¡ã€ã«ã§ Join by nearest ãå®è¡ãããšããè·é¢ãã®äžå€®å€ã¯0.0071ã«ãªããŸããããã¯ã¡ãŒãã«ã§ã¯ãªã床ã§ããå
ã«
Vector > Data Management Tools > Reproject LayerâŠã§ãäž¡æ¹ã®ã¬ã€ã€ãã¡ãŒãã«åäœã®æåœ±åº§æšç³»ã«å€æããŠãã ããã - **Maximum distance ãåãåäœã§ãã**床ã®åäœã§300ãšæå®ãããšãå°çå šäœãç¯å²ã«å ¥ã£ãŠããŸããŸãã
CRSãšã¯äœãã®èšäºã§ã¯ã床ãšã¡ãŒãã«ã®éããšãäœçœ®ããããã¬ã€ã€ã®çŽãæ¹ã説æããŠããŸãã
倧ããªã¬ã€ã€ã§ã®åŠçé床
QGISã¯ãåžçºæèŠæš¡ã®çµåãªãæ°ç§ã§åŠçã§ããŸããIGNã®å»ºç©103,910æ£ã§ã®çµæã§ãã
- 9ã€ã®åºãžã® one-to-one çµåïŒGeoPackageãã0.97ç§ã
- åãã¬ã€ã€ãShapefileã«ããå ŽåïŒ1.69ç§ã
Vector > Data Management Tools > Create Spatial IndexâŠã®ããšã¯1.04ç§ã - ãã¹ãŠã®å»ºç©ã«æå¯ãã®è·¯é¢é»è»ã®åçæãä»ããåŠçïŒ3.5ç§ã
- Largest overlapïŒ9.62ç§ã§ãæãé ãèšå®ã§ãã
倧ããªçµåãéãä¿ã€ã³ãã¯4ã€ãããŸãã
- **GeoPackageã§äœæ¥ããã**空éã€ã³ããã¯ã¹ãçµã¿èŸŒãŸããŠããŸããShapefileã«ã¯
.qixãã¡ã€ã«ãå¿ èŠã§ãCreate Spatial Index ããããæžãåºããŸãã - **ãã£ãŒã«ããçµãã**ãã¹ãŠãã³ããŒãããFields to add ã«å¿ èŠãªãã®ã ããæå®ããŸãã
- **largest overlap ã¯é¿ããã**å¢çäžã®å°ç©ãæ¬åœã«éèŠãªãšãã ã䜿ããŸãã
- **å ã«ãžãªã¡ããªã修埩ããã**ç¡å¹ãªããªãŽã³ããããšãhas invalid geometryããšãããšã©ãŒã§åŠçãæ¢ãŸããŸããProcessingããŒã«ããã¯ã¹ã® Fix geometries ããŒã«ã§ä¿®åŸ©ã§ããŸããå ¥åã¬ã€ã€ã®æšªã«ããã¬ã³ãã®ã¢ã€ã³ã³ãã Invalid feature filtering ã倿Žããæ¹æ³ããããŸãã
ç¹ã®äœçœ®ã確èªããŸããããåŠæ ¡ã®ç¹382ä»¶ã®ãã¡ãIGNã®å»ºç©ã®å åŽã«å ¥ã£ãã®ã¯211ä»¶ã ãã§ãããæ®ãã¯æ ¡åºãéåå ŽãæããŠãããããã建ç©ã®äžã«ããåŠæ ¡ããšããæ¡ä»¶ã§ã¯171æ ¡ãæŒããŠããŸããã
ãŸãšã
ç¹ã«ãšãªã¢åãä»ããã«ã¯ãJoin Attributes by Location ã§ intersect ã䜿ããŸãã
ãšãªã¢ããšã®åæ°ãåèšã«ã¯ Summary çããæãè¿ãå°ç©ãšãã®è·é¢ã«ã¯ Join Attributes by Nearest ã䜿ããŸãã
åèšãåºããªã one-to-oneããã¹ãŠã®äžèŽãå¿ èŠãªã one-to-many ãéžã³ãŸãã
è·é¢ãæ±ãåã«ãã¡ãŒãã«åäœã®CRSãžåæåœ±ããŠãã ããã
ã©ã®ããŒã«ãåããè¿·ã£ãããæ¬²ããçµæãAI Agentã«äŒããŠãäœãäœããããã確èªããŸãããã
ãããã質å
QGISã®ç©ºéçµåãšã¯äœã§ããïŒ
空éçµåã¯ãäœçœ®é¢ä¿(å åŽã«ãããæ¥ããŠãããæãè¿ã)ãããšã«ãããã¬ã€ã€ã®å±æ§ãå¥ã®ã¬ã€ã€ã«è¿œå ããåŠçã§ããQGISã®äž»ãªããŒã«ã¯ãJoin Attributes by Locationãåæ°ãçµ±èšå€ãæ±ãããã®Summaryçãè·é¢ãæ±ãã Join Attributes by Nearest ã®3ã€ã§ãã
QGISã§äœçœ®ã«ãã屿§ã®çµåã¯ã©ããããŸããïŒ
Vector > Data Management Tools > Join Attributes by Location⊠ãéããŸããJoin to features in ã«å±æ§ãåãåãã¬ã€ã€ãBy comparing to ã«ååŸå
ã¬ã€ã€ãæå®ããintersect ã«ãã§ãã¯ãå
¥ãããã£ãŒã«ããš one-to-one ã®çµåã¿ã€ããéžãã§å®è¡ããŸãã
äœçœ®ã«ããçµåãšæè¿åã«ããçµåã®éãã¯äœã§ããïŒ
äœçœ®ã«ããçµåã§ã¯ããã§ãã¯ãå ¥ããè¿°èªã«åŸã£ãŠãå°ç©ãæ¥ããŠããããŸãã¯éãªã£ãŠããå¿ èŠããããŸããæè¿åã«ããçµåã¯æ¥ããŠããå¿ èŠããªããæãè¿ãå°ç©ãæ¢ããŠè·é¢ãã£ãŒã«ãã远å ããŸããè·é¢ã®åäœã¯å ¥åã¬ã€ã€ã®CRSã®åäœã§ãã
空éçµåã®çµæã®ãã£ãŒã«ãã空ã«ãªãã®ã¯ãªãã§ããïŒ
å€ãã®å Žåãå°ç©ãè¿°èªã®æ¡ä»¶ãæºãããŠããŸãããç¹ãããªãŽã³ã®ããå€ã«ããããare withinãã®ããã«æ¡ä»¶ãå³ããããããžãªã¡ããªãç¡å¹ã§ããããšãã£ãåå ã§ããäž¡æ¹ã®ã¬ã€ã€ãå°å³äžã§ç¢ºèªãããintersectãã詊ããŠãFix Geometries ãå®è¡ããŠãã ãããçæ¹ã®ã¬ã€ã€ã®CRSãæªèšå®ã®å Žåããäœçœ®ããããŸãã
AIã§QGISã®ç©ºéçµåã¯ã§ããŸããïŒ
ã§ããŸããAI Agentã¯ãå ¥åããäŸé ŒããQGISã®ããŒã«ãå®è¡ããŸãããªãšã³ã®ãã¹ãã§ã¯ãåºããšã®ã«ãŠã³ããšæè¿åã®çµåãäžæã®æç€ºã§22ç§ã§å®è¡ããçµæã¯æäœæ¥ãšäžèŽããŸããã
ã§ 

