All,

Please review https://github.com/OSGeo/grass/pull/3508. It should fix
non-continuous cats.

Thanks,
Huidae

On Fri, Mar 15, 2024 at 10:37 AM Vincent Bain via grass-user <
grass-user@lists.osgeo.org> wrote:

> Michael, Huidae
>
> thats's what I was just about to post... you need to care cats
> intervals don't overlap before patching.
>
> With the attached set of 2 vector maps you can have a try, typing :
>
> v.in.ogr input=/your/path/to/map1.gpkg output=map1
> v.in.ogr input=/your/path/to/map2.gpkg output=map2
> v.category input=map1 type=centroid option=report
> v.category input=map2 type=centroid option=report
> # Cats overlap, so :
> v.category --overwrite input=map2 type=centroid output=map200
> option=sum cat=100
> v.patch --overwrite input=map1,map200 output=map12
> v.patch -e --overwrite input=map1,map200 output=map12
>
> Yours,
> V.
>
> Le vendredi 15 mars 2024 à 09:51 -0600, Huidae Cho a écrit :
> > Michael,
> >
> > Just confirmed your issue.
> >
> > v.random tmp100 npoints=100 seed=100
> > v.db.addtable tmp100 col="id varchar(20)"
> > v.db.update tmp100 col=id qcol="'tmp100_' || cat"
> >
> > v.random tmp10 npoints=10 seed=10
> > v.db.addtable tmp10 col="id varchar(20)"
> > v.db.update tmp10 col=id qcol="'tmp10_' || cat"
> >
> > v.patch tmp100,tmp10 out=tmp110 -e
> >
> > v.category tmp110 op=report
> > Layer/table: 1/tmp110
> > type       count        min        max
> > point        110          2        112
> > line           0          0          0
> > boundary       0          0          0
> > centroid       0          0          0
> > area           0          0          0
> > face           0          0          0
> > kernel         0          0          0
> > all          110          2        112
> >
> > In my case, all features in tmp10 are linked in tmp110.
> >
> > You can recategorize it.
> >
> > v.category tmp110 out=tmp110_nocats op=del cat=-1
> > v.category tmp110_nocats out=tmp110_recats op=add
> >
> > npnts100=$(v.info tmp100 -t | sed '/points=/!d; s/points=//')
> > npnts10=$(v.info tmp10 -t | sed '/points=/!d; s/points=//')
> >
> > v.db.update tmp110_recats col=cat qcol=cat-1 where="cat<=$npnts100+1"
> > v.db.update tmp110_recats col=cat qcol=cat-2 where="cat>$npnts100+1"
> >
> > Yeah... I know what you may think... Please create an issue on
> > GitHub.
> >
> > Regards,
> > Huidae
> >
> > On Thu, Mar 14, 2024 at 4:42 PM Michael Barton via grass-dev
> > <grass-...@lists.osgeo.org> wrote:
> > > Thanks Doug and Vincent.
> > >
> > > None of this works. I vaguely remember having this same kind of
> > > road block several years back.
> > >
> > > Nothing in v.category lets you change an existing cat value to a
> > > different value
> > > v.in.ogr MUST add a column that MUST be named cat (all else causes
> > > an error--this is a bug) that is a series of consecutive integers
> > > from 1-n. So I cannot create a file with a cat field that matches
> > > my vector areas.
> > >
> > > v.edit won't let you change an existing cat number AFAICT. No error
> > > but nothing changes.
> > >
> > > Once I've imported a table using v.in.ogr, I cannot use
> > > db.drop.column to delete the cat column--even if it is not being
> > > used as a key field. This raises an error.
> > >
> > > No way to rename a column from cat to something else (or something
> > > else to cat) unless you've already connected it to a vector map
> > > even if cat is not the key field. So I can't create an integer
> > > column to link up my lost vector area with a record in my csv
> > > file.
> > >
> > > This simple task is just not possible in GRASS AFAICT. Or if it is
> > > possible, it can only be done by such non-obvious and convoluted
> > > means that I've yet to find a method that works in spite of asking
> > > a large number of very skilled GRASS users.
> > >
> > > Michael
> > > _____________________________
> > > C. Michael Barton
> > > Associate Director, School of Complex Adaptive
> > > Systems (https://scas.asu.edu)
> > > Professor, School of Human Evolution & Social
> > > Change (https://shesc.asu.edu)
> > > Director, Center for Social Dynamics &
> > > Complexity (https://complexity.asu.edu)
> > > Arizona State University
> > > Tempe, AZ 85287-2701
> > > USA
> > >
> > > Executive Director, Open
> > > Modeling Foundation (https://openmodelingfoundation.github.io)
> > > Director, Network for Computational Modeling in Social & Ecological
> > > Sciences (https://comses.net)
> > >
> > > personal website: http://www.public.asu.edu/~cmbarton
> > >
> > >
> > > > On Mar 14, 2024, at 7:10 AM, Newcomb, Doug <doug_newc...@fws.gov>
> > > > wrote:
> > > >
> > > > Have you tried a .csvt file for your .csv
> > > > file? https://gdal.org/drivers/vector/csv.html
> > > >
> > > > From: grass-dev <grass-dev-boun...@lists.osgeo.org> on behalf of
> > > > Michael Barton via grass-dev <grass-...@lists.osgeo.org>
> > > > Sent: Wednesday, March 13, 2024 7:02 PM
> > > > To: GRASS developers <grass-...@lists.osgeo.org>; GRASS user list
> > > > <grass-user@lists.osgeo.org>
> > > > Subject: [EXTERNAL] [GRASS-dev] vector patching frustration
> > > >
> > > >  This email has been received from outside of DOI - Use caution
> > > > before clicking on links, opening attachments, or responding.
> > > >
> > > >
> > > > I am completely stymied in my attempt to do what should be a
> > > > simple task. I have a map of vector areas, linked with an
> > > > attribute table. I would like to patch in one more vector area,
> > > > for which I have equivalent attribute information. I have tried
> > > > this multiple ways and I cannot make this patch happen so that
> > > > the added area has attribute info.
> > > >
> > > > The closest I've come is to create and link a one line table to
> > > > the new area that has exactly the same fields as the larger
> > > > vector area map. The first map has 154 areas (i.e., cat=1-155).
> > > > When I patch the maps and look at the resulting attribute table,
> > > > I indeed see line and cat 155. But it is not linked with the
> > > > patched area--which has been assigned a cat=183 for reasons I
> > > > cannot fathom. The patch also renumbers my cat field to cat=2-155
> > > > from the original 1-154.
> > > >
> > > > This has been made more complicated by the fact that v.in.ogr
> > > > imports all columns of a *.csv as text, regardless of what is in
> > > > them and assigns cat numbers starting at 1. So I can't specify an
> > > > integer key field of 155 to try the linking. Nor can I change the
> > > > assigned cat of the single area I am trying to patch from 1 to
> > > > 155 using v.category (or anything else I can find).
> > > >
> > > > I'm hoping that someone has a clever solution that I've not seen
> > > > or I'll just have to do this fairly simple and straightforward
> > > > vector operation in QGIS.
> > > >
> > > > Michael
> > > > _____________________________
> > > > C. Michael Barton
> > > > Associate Director, School of Complex Adaptive
> > > > Systems (https://scas.asu.edu)
> > > > Professor, School of Human Evolution & Social
> > > > Change (https://shesc.asu.edu)
> > > > Director, Center for Social Dynamics &
> > > > Complexity (https://complexity.asu.edu)
> > > > Arizona State University
> > > > Tempe, AZ 85287-2701
> > > > USA
> > > >
> > > > Executive Director, Open
> > > > Modeling Foundation (https://openmodelingfoundation.github.io)
> > > > Director, Network for Computational Modeling in Social &
> > > > Ecological Sciences (https://comses.net)
> > > >
> > > > personal website: http://www.public.asu.edu/~cmbarton
> > >
> > > _______________________________________________
> > > grass-dev mailing list
> > > grass-...@lists.osgeo.org
> > > https://lists.osgeo.org/mailman/listinfo/grass-dev
> >
> >
> > --
> > Huidae Cho, Ph.D., GISP, /hidɛ t͡ɕo/, 조희대, 曺喜大
> > GRASS GIS Developer
> > https://idea.isnew.info/
> _______________________________________________
> grass-user mailing list
> grass-user@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
>


-- 
Huidae Cho, Ph.D., GISP, /hidɛ <http://ipa-reader.xyz/?text=hid%C9%9B>
t͡ɕo/, 조희대, 曺喜大
GRASS GIS Developer
https://idea.isnew.info/
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to