Como seguimiento a esta pregunta, he descargado el vector de datos aquí:
y he creado correctamente el rasterizado agua/tierra máscara que yo quería:
Sin embargo, hay también muchos ríos en este nivel.
Pregunta
Puedo ¿cómo puedo hacer uso de la información de la escala en la 10m_rivers_lake_centerlines_scale_ranks.archivo dbf?
Detalles
(Parte de este conjunto de datos)
Nota: no puedo abrir el .dbf archivo en un editor de texto y ver las cargas de interesante y esperemos datos útiles:
...
River 0.300000012
River Pivd. Buh 8 670670
River 0.349999994
River Pivd. Buh 8 670670
River 0.200000003
Lake Centerline Klarlven 8 677677
Lake Centerline 0.250000000
Lake Centerline Klarlven
...
(este es un azar pedazo de formato binario mediante la eliminación de espacios y la adición de nuevas líneas)
El uso de Nik2Img.py puedo ejecutar el siguiente código XML y obtener la saturación-con-los ríos-resultados:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map>
<Map bgcolor="black" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">
<Style name="landstyle">
<Rule>
<LineSymbolizer>
<CssParameter name="stroke">white</CssParameter>
<CssParameter name="stroke-width">0.0</CssParameter>
</LineSymbolizer>
<PolygonSymbolizer>
<CssParameter name="fill">white</CssParameter>
<CssParameter name="gamma">0.65</CssParameter>
</PolygonSymbolizer>
</Rule>
</Style>
<Style name="waterstyle">
<Rule>
<LineSymbolizer>
<CssParameter name="stroke">black</CssParameter>
<CssParameter name="stroke-width">0.0</CssParameter>
</LineSymbolizer>
<PolygonSymbolizer>
<CssParameter name="fill">black</CssParameter>
<CssParameter name="gamma">0.8</CssParameter>
</PolygonSymbolizer>
</Rule>
</Style>
<Style name="riverstyle">
<Rule>
<LineSymbolizer>
<CssParameter name="stroke">black</CssParameter>
<CssParameter name="stroke-width">0.15</CssParameter>
</LineSymbolizer>
<PolygonSymbolizer>
<CssParameter name="fill-opacity">0</CssParameter>
<CssParameter name="fill">black</CssParameter>
</PolygonSymbolizer>
</Rule>
</Style>
<Layer name="world" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>landstyle</StyleName>
<Datasource>
<Parameter name="type">shape</Parameter>
<Parameter name="file">../10m/10m_land</Parameter>
</Datasource>
</Layer>
<Layer name="world" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>landstyle</StyleName>
<Datasource>
<Parameter name="type">shape</Parameter>
<Parameter name="file">../10m/10m_minor_islands</Parameter>
</Datasource>
</Layer>
<!--
<Layer name="world" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>waterstyle</StyleName>
<Datasource>
<Parameter name="type">shape</Parameter>
<Parameter name="file">../10m/10m_lakes</Parameter>
</Datasource>
</Layer>
-->
<Layer name="world" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
<StyleName>riverstyle</StyleName>
<Datasource>
<Parameter name="type">shape</Parameter>
<Parameter name="file">../10m/10m_rivers_lake_centerlines_scale_ranks</Parameter>
</Datasource>
</Layer>
</Map>
Cambiar la riverstyle sección a la siguiente elimina todos los ríos/el lago de las líneas centrales en lugar de filtrar cualquier cosa por tipo (River vs Lago de la línea central) o escala/rango/espesor:
<Style name="riverstyle">
<Rule>
<Filter>[River] >= 0</Filter>
<LineSymbolizer>
<CssParameter name="stroke">black</CssParameter>
<CssParameter name="stroke-width">0.15</CssParameter>
</LineSymbolizer>
<PolygonSymbolizer>
<CssParameter name="fill-opacity">0</CssParameter>
<CssParameter name="fill">black</CssParameter>
</PolygonSymbolizer>
</Rule>
</Style>
¿Cómo debo/puedo hacer algún filtro(s) para esto?
<Filter>[River] >= 0</Filter>
<Filter>[River] > 0</Filter>
Soy nuevo en Mapnik y Naturales de la Tierra Shapefiles. Soy un programador experimentado, así que estoy dispuesto a escribir el código (Python, C#, etc.) si me necesitan, pero me gustaría utilizar las herramientas disponibles, si es posible.