Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
I was traveling so could not respond. So sorry to chime in a bit late. For me it was a bit counter intuitive that polygons with null attributes became zero in the finished raster. What if I had attributes with zero value in it? I liked the idea of issuing a warning and using the `where` parameter. Anyway, thanks for the help and fix Cheers Daniel On Fri, Nov 1, 2019 at 12:33 PM Micha Silver wrote: > > On 01/11/2019 9:38, Markus Metz wrote: > > > > On Fri, Nov 1, 2019 at 12:11 AM Veronica Andreo > wrote: > > > > Hi Micha > > > > El jue., 31 oct. 2019 a las 22:36, Micha Silver () > escribió: > >> > >> > >> On 31/10/2019 22:20, Markus Metz wrote: > >> > >> > >> > >> On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreo > wrote: > >> > > >> > Hi Daniel, > >> > > >> > I agree that if there's a NULL in the column, there should be NULL in > the resulting raster. I suggest to open a ticket here: > https://trac.osgeo.org/grass/ > >> > >> easy solution: v.to.rast where=" is not null" > >> > >> or the new PR #173 > >> https://github.com/OSGeo/grass/pull/173 > >> if an attribute value is null, the corresponding vector features will > not be rasterized > >> > >> Markus M > >> > >> I'm not sure I agree with the approach that a polygon with missing > attribute should become NULL. In my view, NULL should be used only for > pixels not covered at all by any polygon. > > > > but in the resulting raster (in rasters in general), there's no > difference, it's rather NULL or it has a value... it does not matter if the > null comes from areas originally covered by a polygon or not... > > I think it depends on the particular use case if it matters where a NULL > raster value comes from: a polygon with empty attribute or no polygon at > all for that cell. > > >> > >> Perhaps an additional input parameter "missing_attribute" so the user > can choose a value to enter into the raster if the attribute is missing. If > no parameter is supplied, and the chosen attribute column has missing > values, I'd prefer that the script exit gracefully, with a message that a > "missing_attribute" value is required. > > This can easily be done with existing tools: > - convert only those polygons with a valid attribute value: v.to.rast > where="attribute is not null" > - replace missing attribute values with a valid value: v.db.update > where="attribute is null", then v.to.rast > > I'm changing my PR to issue a warning if empty attribute values are found > and replaced with zero. > > > IMHO, that's probably the best way to deal with this. > > > > Markus M > > > > > yes, this could be a solution to keep track of where you had polygons, > but then you would need to use r.null anyway, no? I try to think of use > cases in which one uses a vector attribute to convert to raster, but then > still needs to know where the polygons were... because, for example, to > query a raster map with another raster map representing zones one would > convert the vector of polygons using cat and not an attribute, no? > > > > cheers, > > Vero > >> > >> > >> > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria (< > daniel.victo...@gmail.com>) escribió: > >> >> > >> >> Hi list, > >> >> > >> >> I have a vector polygon map that I'm converting to raster. The > attribute column that I process has some empty rows (no data / null). When > I run v.to.rast, these empty rows become 0 (zero) on my resulting raster > map. > >> >> > >> >> Shouldn't v.to.rast respect the empty attribute table and create > null values for those polygons? > >> >> > >> >> For now I'll use r.null to fix this problem. But what if 0 is a > valid value? > >> >> > >> >> Cheers > >> >> Daniel > >> >> > >> >> PS - Running Grass 7.6.1 on Ubuntu > >> >> ___ > >> >> grass-user mailing list > >> >> grass-user@lists.osgeo.org > >> >> https://lists.osgeo.org/mailman/listinfo/grass-user > >> > > >> > ___ > >> > grass-user mailing list > >> > grass-user@lists.osgeo.org > >> > https://lists.osgeo.org/mailman/listinfo/grass-user > >> > >> ___ > >> grass-user mailing list > >> grass-user@lists.osgeo.org > >> https://lists.osgeo.org/mailman/listinfo/grass-user > >> > >> -- > >> Micha Silver > >> Ben Gurion Univ. > >> Sde Boker, Remote Sensing Lab > >> cell: +972-523-665918 > > -- > Micha Silver > Ben Gurion Univ. > Sde Boker, Remote Sensing Lab > cell: +972-523-665918 > > ___ > grass-user mailing list > grass-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/grass-user ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
On 01/11/2019 9:38, Markus Metz wrote: On Fri, Nov 1, 2019 at 12:11 AM Veronica Andreowrote: > > Hi Micha > > El jue., 31 oct. 2019 a las 22:36, Micha Silver ( ) escribió: >> >> >> On 31/10/2019 22:20, Markus Metz wrote: >> >> >> >> On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreo wrote: >> > >> > Hi Daniel, >> > >> > I agree that if there's a NULL in the column, there should be NULL in the resulting raster. I suggest to open a ticket here: https://trac.osgeo.org/grass/ >> >> easy solution: v.to.rast where=" is not null" >> >> or the new PR #173 >> https://github.com/OSGeo/grass/pull/173 >> if an attribute value is null, the corresponding vector features will not be rasterized >> >> Markus M >> >> I'm not sure I agree with the approach that a polygon with missing attribute should become NULL. In my view, NULL should be used only for pixels not covered at all by any polygon. > > but in the resulting raster (in rasters in general), there's no difference, it's rather NULL or it has a value... it does not matter if the null comes from areas originally covered by a polygon or not... I think it depends on the particular use case if it matters where a NULL raster value comes from: a polygon with empty attribute or no polygon at all for that cell. >> >> Perhaps an additional input parameter "missing_attribute" so the user can choose a value to enter into the raster if the attribute is missing. If no parameter is supplied, and the chosen attribute column has missing values, I'd prefer that the script exit gracefully, with a message that a "missing_attribute" value is required. This can easily be done with existing tools: - convert only those polygons with a valid attribute value: v.to.rast where="attribute is not null" - replace missing attribute values with a valid value: v.db.update where="attribute is null", then v.to.rast I'm changing my PR to issue a warning if empty attribute values are found and replaced with zero. IMHO, that's probably the best way to deal with this. Markus M > > yes, this could be a solution to keep track of where you had polygons, but then you would need to use r.null anyway, no? I try to think of use cases in which one uses a vector attribute to convert to raster, but then still needs to know where the polygons were... because, for example, to query a raster map with another raster map representing zones one would convert the vector of polygons using cat and not an attribute, no? > > cheers, > Vero >> >> >> > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria ( ) escribió: >> >> >> >> Hi list, >> >> >> >> I have a vector polygon map that I'm converting to raster. The attribute column that I process has some empty rows (no data / null). When I run v.to.rast, these empty rows become 0 (zero) on my resulting raster map. >> >> >> >> Shouldn't v.to.rast respect the empty attribute table and create null values for those polygons? >> >> >> >> For now I'll use r.null to fix this problem. But what if 0 is a valid value? >> >> >> >> Cheers >> >> Daniel >> >> >> >> PS - Running Grass 7.6.1 on Ubuntu >> >> ___ >> >> grass-user mailing list >> >> grass-user@lists.osgeo.org >> >> https://lists.osgeo.org/mailman/listinfo/grass-user >> > >> > ___ >> > grass-user mailing list >> > grass-user@lists.osgeo.org >> > https://lists.osgeo.org/mailman/listinfo/grass-user >> >> ___ >> grass-user mailing list >> grass-user@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/grass-user >> >> -- >> Micha Silver >> Ben Gurion Univ. >> Sde Boker, Remote Sensing Lab >> cell: +972-523-665918 -- Micha Silver Ben Gurion Univ.
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
On Fri, Nov 1, 2019 at 12:11 AM Veronica Andreo wrote: > > Hi Micha > > El jue., 31 oct. 2019 a las 22:36, Micha Silver () escribió: >> >> >> On 31/10/2019 22:20, Markus Metz wrote: >> >> >> >> On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreo wrote: >> > >> > Hi Daniel, >> > >> > I agree that if there's a NULL in the column, there should be NULL in the resulting raster. I suggest to open a ticket here: https://trac.osgeo.org/grass/ >> >> easy solution: v.to.rast where=" is not null" >> >> or the new PR #173 >> https://github.com/OSGeo/grass/pull/173 >> if an attribute value is null, the corresponding vector features will not be rasterized >> >> Markus M >> >> I'm not sure I agree with the approach that a polygon with missing attribute should become NULL. In my view, NULL should be used only for pixels not covered at all by any polygon. > > but in the resulting raster (in rasters in general), there's no difference, it's rather NULL or it has a value... it does not matter if the null comes from areas originally covered by a polygon or not... I think it depends on the particular use case if it matters where a NULL raster value comes from: a polygon with empty attribute or no polygon at all for that cell. >> >> Perhaps an additional input parameter "missing_attribute" so the user can choose a value to enter into the raster if the attribute is missing. If no parameter is supplied, and the chosen attribute column has missing values, I'd prefer that the script exit gracefully, with a message that a "missing_attribute" value is required. This can easily be done with existing tools: - convert only those polygons with a valid attribute value: v.to.rast where="attribute is not null" - replace missing attribute values with a valid value: v.db.update where="attribute is null", then v.to.rast I'm changing my PR to issue a warning if empty attribute values are found and replaced with zero. Markus M > > yes, this could be a solution to keep track of where you had polygons, but then you would need to use r.null anyway, no? I try to think of use cases in which one uses a vector attribute to convert to raster, but then still needs to know where the polygons were... because, for example, to query a raster map with another raster map representing zones one would convert the vector of polygons using cat and not an attribute, no? > > cheers, > Vero >> >> >> > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria (< daniel.victo...@gmail.com>) escribió: >> >> >> >> Hi list, >> >> >> >> I have a vector polygon map that I'm converting to raster. The attribute column that I process has some empty rows (no data / null). When I run v.to.rast, these empty rows become 0 (zero) on my resulting raster map. >> >> >> >> Shouldn't v.to.rast respect the empty attribute table and create null values for those polygons? >> >> >> >> For now I'll use r.null to fix this problem. But what if 0 is a valid value? >> >> >> >> Cheers >> >> Daniel >> >> >> >> PS - Running Grass 7.6.1 on Ubuntu >> >> ___ >> >> grass-user mailing list >> >> grass-user@lists.osgeo.org >> >> https://lists.osgeo.org/mailman/listinfo/grass-user >> > >> > ___ >> > grass-user mailing list >> > grass-user@lists.osgeo.org >> > https://lists.osgeo.org/mailman/listinfo/grass-user >> >> ___ >> grass-user mailing list >> grass-user@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/grass-user >> >> -- >> Micha Silver >> Ben Gurion Univ. >> Sde Boker, Remote Sensing Lab >> cell: +972-523-665918 ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
Hi Micha El jue., 31 oct. 2019 a las 22:36, Micha Silver () escribió: > > On 31/10/2019 22:20, Markus Metz wrote: > > > > On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreo > wrote: > > > > Hi Daniel, > > > > I agree that if there's a NULL in the column, there should be NULL in > the resulting raster. I suggest to open a ticket here: > https://trac.osgeo.org/grass/ > > easy solution: v.to.rast where=" is not null" > > or the new PR #173 > https://github.com/OSGeo/grass/pull/173 > if an attribute value is null, the corresponding vector features will not > be rasterized > > Markus M > > I'm not sure I agree with the approach that a polygon with missing > attribute should become NULL. In my view, NULL should be used only for > pixels not covered at all by any polygon. > but in the resulting raster (in rasters in general), there's no difference, it's rather NULL or it has a value... it does not matter if the null comes from areas originally covered by a polygon or not... A different story might be if we go from raster to polygon... > Perhaps an additional input parameter "missing_attribute" so the user can > choose a value to enter into the raster if the attribute is missing. If no > parameter is supplied, and the chosen attribute column has missing values, > I'd prefer that the script exit gracefully, with a message that a > "missing_attribute" value is required. > yes, this could be a solution to keep track of where you had polygons, but then you would need to use r.null anyway, no? I try to think of use cases in which one uses a vector attribute to convert to raster, but then still needs to know where the polygons were... because, for example, to query a raster map with another raster map representing zones one would convert the vector of polygons using cat and not an attribute, no? cheers, Vero > > > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria (< > daniel.victo...@gmail.com>) escribió: > >> > >> Hi list, > >> > >> I have a vector polygon map that I'm converting to raster. The > attribute column that I process has some empty rows (no data / null). When > I run v.to.rast, these empty rows become 0 (zero) on my resulting raster > map. > >> > >> Shouldn't v.to.rast respect the empty attribute table and create null > values for those polygons? > >> > >> For now I'll use r.null to fix this problem. But what if 0 is a valid > value? > >> > >> Cheers > >> Daniel > >> > >> PS - Running Grass 7.6.1 on Ubuntu > >> ___ > >> grass-user mailing list > >> grass-user@lists.osgeo.org > >> https://lists.osgeo.org/mailman/listinfo/grass-user > > > > ___ > > grass-user mailing list > > grass-user@lists.osgeo.org > > https://lists.osgeo.org/mailman/listinfo/grass-user > > ___ > grass-user mailing > listgrass-user@lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/grass-user > > -- > Micha Silver > Ben Gurion Univ. > Sde Boker, Remote Sensing Lab > cell: +972-523-665918 > > ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
On 31/10/2019 22:20, Markus Metz wrote: On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreowrote: > > Hi Daniel, > > I agree that if there's a NULL in the column, there should be NULL in the resulting raster. I suggest to open a ticket here: https://trac.osgeo.org/grass/ easy solution: v.to.rast where=" is not null" or the new PR #173 https://github.com/OSGeo/grass/pull/173 if an attribute value is null, the corresponding vector features will not be rasterized Markus M I'm not sure I agree with the approach that a polygon with missing attribute should become NULL. In my view, NULL should be used only for pixels not covered at all by any polygon. Perhaps an additional input parameter "missing_attribute" so the user can choose a value to enter into the raster if the attribute is missing. If no parameter is supplied, and the chosen attribute column has missing values, I'd prefer that the script exit gracefully, with a message that a "missing_attribute" value is required. > > Cheers, > Vero > > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria ( ) escribió: >> >> Hi list, >> >> I have a vector polygon map that I'm converting to raster. The attribute column that I process has some empty rows (no data / null). When I run v.to.rast, these empty rows become 0 (zero) on my resulting raster map. >> >> Shouldn't v.to.rast respect the empty attribute table and create null values for those polygons? >> >> For now I'll use r.null to fix this problem. But what if 0 is a valid value? >> >> Cheers >> Daniel >> >> PS - Running Grass 7.6.1 on Ubuntu >> ___ >> grass-user mailing list >> grass-user@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/grass-user > > ___ > grass-user mailing list > grass-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/grass-user ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user -- Micha Silver Ben Gurion Univ. Sde Boker, Remote Sensing Lab cell: +972-523-665918 ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreo wrote: > > Hi Daniel, > > I agree that if there's a NULL in the column, there should be NULL in the resulting raster. I suggest to open a ticket here: https://trac.osgeo.org/grass/ easy solution: v.to.rast where=" is not null" or the new PR #173 https://github.com/OSGeo/grass/pull/173 if an attribute value is null, the corresponding vector features will not be rasterized Markus M > > Cheers, > Vero > > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria (< daniel.victo...@gmail.com>) escribió: >> >> Hi list, >> >> I have a vector polygon map that I'm converting to raster. The attribute column that I process has some empty rows (no data / null). When I run v.to.rast, these empty rows become 0 (zero) on my resulting raster map. >> >> Shouldn't v.to.rast respect the empty attribute table and create null values for those polygons? >> >> For now I'll use r.null to fix this problem. But what if 0 is a valid value? >> >> Cheers >> Daniel >> >> PS - Running Grass 7.6.1 on Ubuntu >> ___ >> grass-user mailing list >> grass-user@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/grass-user > > ___ > grass-user mailing list > grass-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/grass-user ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
On Tue, Oct 29, 2019 at 7:40 PM Veronica Andreo wrote: > > Hi Daniel, > > I agree that if there's a NULL in the column, there should be NULL in the resulting raster. I suggest to open a ticket here: https://trac.osgeo.org/grass/ that would require to change db_select_CatValArray on library level here https://github.com/OSGeo/grass/blob/master/lib/db/dbmi_client/select.c#L368 and here https://github.com/OSGeo/grass/blob/master/lib/db/dbmi_client/select.c#L375 I can't estimate the side effects of any changes, this is a widely used function, thus no easy fix. Please open a ticket. Markus M > > Cheers, > Vero > > El jue., 24 oct. 2019 a las 14:40, Daniel Victoria (< daniel.victo...@gmail.com>) escribió: >> >> Hi list, >> >> I have a vector polygon map that I'm converting to raster. The attribute column that I process has some empty rows (no data / null). When I run v.to.rast, these empty rows become 0 (zero) on my resulting raster map. >> >> Shouldn't v.to.rast respect the empty attribute table and create null values for those polygons? >> >> For now I'll use r.null to fix this problem. But what if 0 is a valid value? >> >> Cheers >> Daniel >> >> PS - Running Grass 7.6.1 on Ubuntu >> ___ >> grass-user mailing list >> grass-user@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/grass-user > > ___ > grass-user mailing list > grass-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/grass-user ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
Hi Daniel, I agree that if there's a NULL in the column, there should be NULL in the resulting raster. I suggest to open a ticket here: https://trac.osgeo.org/grass/ Cheers, Vero El jue., 24 oct. 2019 a las 14:40, Daniel Victoria (< daniel.victo...@gmail.com>) escribió: > Hi list, > > I have a vector polygon map that I'm converting to raster. The attribute > column that I process has some empty rows (no data / null). When I run > v.to.rast, these empty rows become 0 (zero) on my resulting raster map. > > Shouldn't v.to.rast respect the empty attribute table and create null > values for those polygons? > > For now I'll use r.null to fix this problem. But what if 0 is a valid > value? > > Cheers > Daniel > > PS - Running Grass 7.6.1 on Ubuntu > ___ > grass-user mailing list > grass-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/grass-user ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
[GRASS-user] Null values in attribute table get converted to 0 (zero) during v.to.rast
Hi list, I have a vector polygon map that I'm converting to raster. The attribute column that I process has some empty rows (no data / null). When I run v.to.rast, these empty rows become 0 (zero) on my resulting raster map. Shouldn't v.to.rast respect the empty attribute table and create null values for those polygons? For now I'll use r.null to fix this problem. But what if 0 is a valid value? Cheers Daniel PS - Running Grass 7.6.1 on Ubuntu ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user