Actualmente estoy utilizando este ogrinfo-al-por lo para extraer proyección, disponen de la cuenta, Field_names para un montón de archivos en modo batch. ¿Es posible extraer número de campos y cuántos campos se rellenan con atributos? Para, por ejemplo, supongamos un archivo de puntos que tiene 70 puntos y tres campos: ID, nombre, tipo. Para los 70 puntos que me gustaría extraer la información de campo "ID" cuántos tiene valores, el campo "Nombre" tiene valores y campo "Tipo" tiene valores.
Respuesta
¿Demasiados anuncios?Usted puede hacer todo lo que es posible hacer con SQL también con ogrinfo utilizando SQLite dialecto http://www.gdal.org/ogr_sql_sqlite.html.
Una vez que usted sabe que el problema se convierte en una pregunta acerca de ¿cómo hacer una consulta y la respuesta se puede encontrar a partir de Stackoverflow http://stackoverflow.com/questions/17194145/sql-count-based-on-column-value
La siguiente consulta podría funcionar para usted, pero quitar primera saltos de línea que he añadido para mayor claridad.
ogrinfo -dialect sqlite -sql "
SELECT
COUNT(case WHEN ID is not null THEN 1 ELSE NULL END) as count_ID,
COUNT(case WHEN Name is not null THEN 1 ELSE NULL END) as count_Name,
COUNT(case WHEN Type is not null THEN 1 ELSE NULL END) as count_Type
FROM your_layer" your_datasource
He probado el mismo tipo de consulta con statas.shp shapefile y parece que funciona. Yo demuestran también la flexibilidad de SQLite dialecto contando el número de estados que pertenecen a SUB_REGION='Mtn' como count_2.
ogrinfo -dialect sqlite -sql "select count
(case WHEN STATE_NAME is not null THEN 1 ELSE NULL END) as count_1,
count(case WHEN SUB_REGION='Mtn' THEN 1 ELSE NULL END) as count_2
from states" states.shp
INFO: Open of `states.shp'
using driver `ESRI Shapefile' successful.
Layer name: SELECT
Geometry: None
Feature Count: 1
Layer SRS WKT:
(unknown)
count_1: Integer (0.0)
count_2: Integer (0.0)
OGRFeature(SELECT):0
count_1 (Integer) = 49
count_2 (Integer) = 8