Saltar a contenido
Excamp 2022
Herramientas de usuario
Conectarse
Herramientas del sitio
Buscar
Herramientas
Ver página
Revisiones antiguas
Enlaces a esta página
Cambios recientes
Administrador de Ficheros
Índice
Conectarse
>
Cambios recientes
Administrador de Ficheros
Índice
Traza:
instrumentos:codigos:tuyo_shp
====== Construcción de capa esri shape a partir de datos tuyo ====== <Code:python linenums:1 |generico: //tuyo2shp.py//> #funciones def epoch(f): epoch1970 = datetime(1970, 1, 1, 0, 0, 0, tzinfo=tzutc()) return int(((datetime.strptime(f, "%d-%m-%Y %H:%M:%S").replace(tzinfo=tzutc()) - epoch1970).total_seconds())/10) # definir la capa # campos en el csv alt,dop,vdop,hdop,sat,lat,lon,dia,mes,anno,hora,min,seg,pm25,pm10 schema = { 'geometry':'Point', 'properties':[('PM25','float'),('PM10','float'),('ALT','float'),('VDOP','float'),('HDOP','float'),('SAT','int'),('LAT','float'),('LON','float'),('fecha','str'),('epoch','int64')] } pointDf = pd.read_csv('../data/csv/'+sys.argv[1]+".txt",header=0) #considerar como valido aquel dato con mas de 3 satelites a la vista filtro=pointDf['sat']>3 pointDf=pointDf[filtro] #convertir algunas colunas en string para construir la fecha pointDf['dia']=pointDf['dia'].apply(str) pointDf['mes']=pointDf['mes'].apply(str) pointDf['anno']=pointDf['anno'].apply(str) pointDf['hora']=pointDf['hora'].apply(str) pointDf['min']=pointDf['min'].apply(str) pointDf['seg']=pointDf['seg'].apply(str) pointDf['fecha']=pointDf['dia']+"-"+pointDf['mes']+"-"+pointDf['anno']+" "+pointDf['hora']+":"+pointDf['min']+":"+pointDf['seg'] pointDf['epoch']=pointDf['fecha'].apply(epoch) print(pointDf) pointShp = fiona.open('../data/shp/'+sys.argv[1]+".shp", mode='w', driver='ESRI Shapefile', schema = schema, crs = "EPSG:4326") #iterar sobre cada fila en dataframe y guardar el registro for index, row in pointDf.iterrows(): rowDict = { 'geometry' : {'type':'Point', 'coordinates': (row.lon,row.lat)}, 'properties': {'PM25' : row.pm25,'PM10':row.pm10,'ALT':row.alt,'VDOP':row.vdop,'HDOP':row.hdop,'SAT':row.sat,'LAT':row.lat,'LON':row.lon,'fecha':row.fecha,'epoch':row.epoch}, } pointShp.write(rowDict) #cerrar el objeto fiona pointShp.close() </Code>
instrumentos/codigos/tuyo_shp.txt
· Última modificación: 2022/07/30 23:45 por
cherranz
Herramientas de la página
Ver página
Revisiones antiguas
Enlaces a esta página
Volver arriba