Ejemplo n.º 1
0
# set paths to inputs and outputs
mainpath = "C:/Users/se.4537/Dropbox/PoliteconGIS/LBS_2020/PhD/lecture_3/gis_data"
wldsin = "{}/langa.shp".format(mainpath)
outpath = "{}/_output/".format(mainpath)
wldsout = "{}/wlds_cleaned.shp".format(outpath)

if not os.path.exists(outpath):
    os.mkdir(outpath)

gp = GeoProcess()

#########################################################
# Fix geometries
#########################################################
print('fixing geometries')
fix_geo = gp.fix_geometry(wldsin)

#########################################################
# Add autoincremental field
#########################################################
print('adding autoincremental id-field')
autoinc_id = gp.add_autoincremental_id(fix_geo, 'GID')

#########################################################
# Copy attribute
#########################################################
print('copying language name into a field with shorter attribute name')
language_name_copied = gp.copy_attribute(autoinc_id, 'NAME_PROP', 'lnm')

#########################################################
# Drop field(s)
Ejemplo n.º 2
0
riverswgs84 = gp.drop_fields(riverswgs84, keep_fields=['river'])
centroids = gp.drop_fields(centroids, keep_fields=['centroids'])

######################################################################
# splitting with lines, snapping and unioning rivers and rail
######################################################################
print('splitting with lines, snapping and unioning rivers and rail')
rail70_split_rivers = gp.split_with_lines(rail70wgs84, riverswgs84)
rail90_split_rivers = gp.split_with_lines(rail90wgs84, riverswgs84)
rivers_split_rail70 = gp.split_with_lines(riverswgs84, rail70wgs84)
rivers_split_rail90 = gp.split_with_lines(riverswgs84, rail90wgs84)

rail70_snap_rivers = gp.snap_geometries(rail70_split_rivers, rivers_split_rail70, 0.01)
rail90_snap_rivers = gp.snap_geometries(rail90_split_rivers, rivers_split_rail90, 0.01)

rivers_split_rail70 = gp.fix_geometry(rivers_split_rail70)
rivers_split_rail90 = gp.fix_geometry(rivers_split_rail90)
rail70_snap_rivers = gp.fix_geometry(rail70_snap_rivers)
rail90_snap_rivers = gp.fix_geometry(rail90_snap_rivers)

rivers_split_rail70 = gp.multipart_to_singleparts(rivers_split_rail70)
rivers_split_rail90 = gp.multipart_to_singleparts(rivers_split_rail90)
rail70_snap_rivers = gp.multipart_to_singleparts(rail70_snap_rivers)
rail90_snap_rivers = gp.multipart_to_singleparts(rail90_snap_rivers)

union_railriver70 = gp.union(rivers_split_rail70, rail70_snap_rivers)
union_railriver90 = gp.union(rivers_split_rail90, rail90_snap_rivers)

######################################################################
# creating connector pieces, snapping, splitting and unioning
######################################################################
Ejemplo n.º 3
0
if not os.path.exists(junkpath):
    os.mkdir(junkpath)

gp = GeoProcess()

#########################################################################
#########################################################################
# 2) centroids and distance to coast
#########################################################################
#########################################################################

#########################################################
# Fix geometries
#########################################################
print('fixing geometries, coast')
fixgeo_coast = gp.fix_geometry(coastin)

#########################################################
# Fix geometries
#########################################################
print('fixing geometries, countries')
fixgeo_countries = gp.fix_geometry(adminin)

#########################################################
# Centroids
#########################################################
print('finding country centroids')
country_centroids = gp.centroids(fixgeo_countries)

#########################################################
# Add geometry attributes
# set paths to inputs and outputs
mainpath = "C:/Users/se.4537/Dropbox/PoliteconGIS/LBS_2020/PhD/lecture_3/gis_data"
outpath = "{}/_output/".format(mainpath)
greg = "{}/greg_cleaned.shp".format(outpath)
wlds = "{}/wlds_cleaned.shp".format(outpath)
admin = "{}/ne_10m_admin_0_countries/ne_10m_admin_0_countries.shp".format(
    mainpath)
outcsv = "{}/nlangs_country.csv".format(outpath)

gp = GeoProcess()

#########################################################
# Fix geometries
#########################################################
print('fixing geometries, languages')
fixgeo_wlds = gp.fix_geometry(wlds)

#########################################################
# Fix geometries
#########################################################
print('fixing geometries, countries')
fixgeo_countries = gp.fix_geometry(admin)

#########################################################
# Intersection
#########################################################
print('intersecting languages and countries')
intersection = gp.intersect_native(fixgeo_wlds,
                                   fixgeo_countries,
                                   input_fields_to_keep='GID',
                                   overlay_fields_to_keep='ADMIN')
Ejemplo n.º 5
0
crs_wcea = QgsCoordinateReferenceSystem('ESRI:54034')

gp = GeoProcess()

##################################################################
# Drop field(s)
##################################################################
print('dropping unnecessary fields')
keepfields = ['ne_10m_adm', 'ADMIN', 'ISO_A3']
countries_drop_fields = gp.drop_fields(admin_in, keep_fields=keepfields)

##################################################################
# Reproject layer
##################################################################
print('projecting to world cylindical equal area')
countries_reprojected = gp.reproject_layer(countries_drop_fields, 'ESRI:54034')

##################################################################
# Fix geometries
##################################################################
print('fixing geometries')
countries_fix_geo = gp.fix_geometry(countries_reprojected)

##################################################################
# Field calculator, output to csv
##################################################################
print('calculating areas, outputting to csv')
gp.add_area_attribute(countries_fix_geo, 'area', output_object=areas_out)

print('DONE!')
Ejemplo n.º 6
0
RASTS = [elevation, temp, prec, landqual, popd1500, popd1990, popd2000]
PREFS = ['elev_', 'temp_', 'prec_', 'lqua_', 'pd15_', 'pd19_', 'pd20_']

# elevation, temperature, precipitation are very large raster files,
# take a long time to process. we will see faster processing methods at the end. 
# the code will still run (if you are patient)!
# for now, do only the last four rasters
RASTS = RASTS[3:]
PREFS = PREFS[3:]

gp = GeoProcess()

#########################################################
# Fix geometries
#########################################################
print('fixing geometries')
fix_geo = gp.fix_geometry(countries)   

#########################################################
# Drop fields
#########################################################
print('dropping fields except ADMIN, ISO_A3')
keepfields = ['ADMIN', 'ISO_A3']
drop_fields = gp.drop_fields(fix_geo, keep_fields=keepfields)

#########################################################
# Zonal statistics
#########################################################               
gp.zonal_statistics_as_csv(drop_fields, RASTS, PREFS, ['mean'], outcsv)

print('DONE!')
if not os.path.exists(junkpath):
    os.mkdir(junkpath)

gp = GeoProcess()

#########################################################################
#########################################################################
# 2) centroids and distance to coast
#########################################################################
#########################################################################

#########################################################
# Fix geometries
#########################################################
print('fixing geometries, countries')
fixgeo_countries = gp.fix_geometry(adminin)  

#########################################################
# Centroids
#########################################################
print('finding country centroids')
country_centroids = gp.centroids(fixgeo_countries)

#########################################################
# Closest coordinates from points to lines
#########################################################
result = gp.find_closest_coordinates_from_points_to_lines(country_centroids, coastin, intermediate_output_folder=junkpath,
											              input_id='ne_10m_adm', input_name='cent', line_name='coast', 	
											              verbose=True, output_object='memory:')

#########################################################