Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 1: loads the postcodes SHP file from V drive
- from qgis.core import QgsVectorLayer, QgsProject
- layer = QgsVectorLayer('V:/GIS - Files/3. Data/OS Data/UK Postcodes/UK Postcodes (2017).shp', 'Postcodes', "ogr")
- QgsProject.instance().addMapLayer(layer)
- # 2: loads the XLS spreadsheet from the server
- from qgis.core import QgsVectorLayer, QgsProject
- layer = QgsVectorLayer('//xxxxsql/xxxxx/xxxxx/xxxxx/WeeklyContacts-2019-07-15.xls', 'Contacts', "ogr")
- QgsProject.instance().addMapLayer(layer)
- # 3. performs join field attribute algorithm, joining X and Y of 'Postcodes.shp' to 'Contacts.xls' and saves to 'Contacts.csv'
- params = { 'DISCARD_NONMATCHING' : False, 'FIELD' : 'Postcode', 'FIELDS_TO_COPY' : ['Easting','Northing'], 'FIELD_2' : 'postcode', 'INPUT' : '//xxxxsql/xxxx/WeeklyAuditExtracts/xxxx/WeeklyContacts-2019-07-15.xls', 'INPUT_2' : 'V:/GIS - Files/3. Data/OS Data/UK Postcodes/UK Postcodes (2017).shp', 'METHOD' : 1, 'OUTPUT' : 'C:/Users/xxxx/OneDrivexxxx/Desktop/Temporary/WeeklyContacts-2019-07-15.csv', 'PREFIX' : '' }
- processing.run("native:joinattributestable", params)
- # 4. converts the joined CSV to SHP
- uri = "C:/Users/xxxx/OneDrivexxxx/Desktop/Temporary/WeeklyContacts-2019-07-15.csv?delimiter=csv&xField=Easting&yField=Northing"
- layer_csv = QgsVectorLayer(uri, "WeeklyContacts-2019-07-15", "delimitedtext")
- QgsVectorFileWriter.writeAsVectorFormat(layer_csv, 'C:/Users/xxxx/OneDrivexxxx/Desktop/Temporary/WeeklyContacts-2019-07-15.shp', "UTF-8", layer.crs(), "ESRI Shapefile", layerOptions=['SHPT=POINT'])
- # 5. loads the SHP file derived from the joined CSV
- from qgis.core import QgsVectorLayer, QgsProject
- layer = QgsVectorLayer('C:/Users/xxxx/OneDrivexxxx/Desktop/Temporary/WeeklyContacts-2019-07-15.shp', 'WeeklyContacts-2019-07-15', "ogr")
- QgsProject.instance().addMapLayer(layer)
- # 3: performs join field attribute algorithm, joining X and Y of 'Postcodes.shp' to 'Contacts.xls' and saves to 'Contacts.csv'
- params = { 'DISCARD_NONMATCHING' : False, 'FIELD' : 'Postcode', 'FIELDS_TO_COPY' : ['Easting','Northing'], 'FIELD_2' : 'postcode', 'INPUT' : '//xxxxsql/xxxxx/xxxxx/xxxxx/WeeklyContacts-2019-07-15.xls', 'INPUT_2' : 'V:/GIS - Files/3. Data/OS Data/UK Postcodes/UK Postcodes (2017).shp', 'METHOD' : 1, 'OUTPUT' : 'C:/Users/xxxxx/OneDrive - xxxxx/Desktop/Temporary/WeeklyContacts-2019-07-15.csv', 'PREFIX' : '' }
- result = processing.run("native:joinattributestable", params)
- # 4
- QgsProject.instance().addMapLayer(result['OUTPUT'])
- # Set the relevant output path and crs
- QgsVectorFileWriter.writeAsVectorFormat(result['OUTPUT'], 'path/to/output.shp', "UTF-8", 'some_crs', "ESRI Shapefile", layerOptions=['SHPT=POINT'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement