arcpy.Select_analysis choosing only a fraction of the recordSelecting ArcSDE polygon by point in ArcGIS Desktop using ArcPy?Splitting job on ArcPy SearchCursor?What's the best way to get the OBJECTID name?Assigning a vector to a field in feature class (UpdateCursor)Randomly assign a value to a specificed number of rows in a feature class in ArcGISIs there a faster way in python of finding the smallest number in a field?Fastest way to write large numpy arrays to feature class: as rows, or as columns?Extracting attributes of points within overlapping polygons in ArcPy?Identify duplicate attributes and keep value of earliest recordCreating separate shapefiles for each attribute record using loop in ArcPy?

What to wear for invited talk in Canada

How can I add custom success page

What do you call words made from common English words?

LWC and complex parameters

Where else does the Shulchan Aruch quote an authority by name?

Are white and non-white police officers equally likely to kill black suspects?

Are objects structures and/or vice versa?

What are the advantages and disadvantages of running one shots compared to campaigns?

What's the difference between repeating elections every few years and repeating a referendum after a few years?

Is every set a filtered colimit of finite sets?

Pristine Bit Checking

Can the Produce Flame cantrip be used to grapple, or as an unarmed strike, in the right circumstances?

How to answer pointed "are you quitting" questioning when I don't want them to suspect

How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)

How to move the player while also allowing forces to affect it

Is this food a bread or a loaf?

Is there a familial term for apples and pears?

Does bootstrapped regression allow for inference?

Symmetry in quantum mechanics

Why was the "bread communication" in the arena of Catching Fire left out in the movie?

"listening to me about as much as you're listening to this pole here"

aging parents with no investments

Why doesn't a const reference extend the life of a temporary object passed via a function?

Why airport relocation isn't done gradually?



arcpy.Select_analysis choosing only a fraction of the record


Selecting ArcSDE polygon by point in ArcGIS Desktop using ArcPy?Splitting job on ArcPy SearchCursor?What's the best way to get the OBJECTID name?Assigning a vector to a field in feature class (UpdateCursor)Randomly assign a value to a specificed number of rows in a feature class in ArcGISIs there a faster way in python of finding the smallest number in a field?Fastest way to write large numpy arrays to feature class: as rows, or as columns?Extracting attributes of points within overlapping polygons in ArcPy?Identify duplicate attributes and keep value of earliest recordCreating separate shapefiles for each attribute record using loop in ArcPy?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I'm trying to divide up a feature class into a number of smaller sets. I have been using Select_analysis with objectid to divide up the featureclass so far but know that this is not the best method.



So for example, currently I have something like:



query = "objectid > 0 + AND objectid <= 1000"

arcpy.Select_analysis(r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours",r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours_Mereged",query_statement)


What I want to know is if I can use the number of rows in the feature class to generate the query rather than relying on the objectid? So say I get the number of rows of the feature class using arcpy.GetCount_management(featureclass) and it outputs 1.9 million, is there a way I can divide that 1.9 million into 10 parts based on the count rather than objectid?










share|improve this question




























    1















    I'm trying to divide up a feature class into a number of smaller sets. I have been using Select_analysis with objectid to divide up the featureclass so far but know that this is not the best method.



    So for example, currently I have something like:



    query = "objectid > 0 + AND objectid <= 1000"

    arcpy.Select_analysis(r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours",r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours_Mereged",query_statement)


    What I want to know is if I can use the number of rows in the feature class to generate the query rather than relying on the objectid? So say I get the number of rows of the feature class using arcpy.GetCount_management(featureclass) and it outputs 1.9 million, is there a way I can divide that 1.9 million into 10 parts based on the count rather than objectid?










    share|improve this question
























      1












      1








      1








      I'm trying to divide up a feature class into a number of smaller sets. I have been using Select_analysis with objectid to divide up the featureclass so far but know that this is not the best method.



      So for example, currently I have something like:



      query = "objectid > 0 + AND objectid <= 1000"

      arcpy.Select_analysis(r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours",r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours_Mereged",query_statement)


      What I want to know is if I can use the number of rows in the feature class to generate the query rather than relying on the objectid? So say I get the number of rows of the feature class using arcpy.GetCount_management(featureclass) and it outputs 1.9 million, is there a way I can divide that 1.9 million into 10 parts based on the count rather than objectid?










      share|improve this question














      I'm trying to divide up a feature class into a number of smaller sets. I have been using Select_analysis with objectid to divide up the featureclass so far but know that this is not the best method.



      So for example, currently I have something like:



      query = "objectid > 0 + AND objectid <= 1000"

      arcpy.Select_analysis(r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours",r"C:UsersCHOKDesktopmulithreadingmultiprocessing.gdbContours_Mereged",query_statement)


      What I want to know is if I can use the number of rows in the feature class to generate the query rather than relying on the objectid? So say I get the number of rows of the feature class using arcpy.GetCount_management(featureclass) and it outputs 1.9 million, is there a way I can divide that 1.9 million into 10 parts based on the count rather than objectid?







      arcpy objectid






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 21 hours ago









      AndyAndy

      191




      191




















          2 Answers
          2






          active

          oldest

          votes


















          1














          I'm not aware of any way to do what you're asking directly. But a work around might be...



          Can you add a new field to the feature class? If so, add an integer field, and use the field calculator to add sequential numbers to this field for each feature. One way to do this is explained here: https://support.esri.com/en/technical-article/000011137



          You should modify this code to reset to 1 each time it reaches the number of datasets required. Eg,



          sets=10
          rec=0
          def autoIncrement():
          global rec
          global sets
          pStart = 1
          pInterval = 1
          if (rec == 0 or rec > sets):
          rec = pStart
          else:
          rec += pInterval
          return rec


          Then you can use Split By Attributes to split into multiple feature classes based on the value of this field (which would be 1-10 for 10 sets). See: http://desktop.arcgis.com/en/arcmap/latest/tools/analysis-toolbox/split-by-attributes.htm



          Of course, if it is a dynamic set of data, you would have to recalculate the field each time you wanted to do the same operation again.



          Note that the code for the field calculator above would not have the consecutive records kept together (ie, not the first 10% of records, but 1 record in every 10). If you need the consecutive records kept together, this could be done with a tweak to the above code.






          share|improve this answer




















          • 1





            Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

            – smiller
            20 hours ago












          • I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

            – Son of a Beach
            20 hours ago


















          1














          Creating and populating new field could significantly slow things down.



          This is why I tested 2 alternatives below on 150k long point dataset. They use similar approach - splitting the list of OBJECTIDs into equal size chunks:



          import arcpy, time
          from arcpy import env
          env.overwriteOutput = True

          infc="many_points"
          OIDs=[row[0] for row in arcpy.da.TableToNumPyArray(infc,"objectid")]
          n=len(OIDs)/10
          t0 = time.time()
          N=65
          for i in xrange(0, len(OIDs), n):
          chunk=OIDs[i:i + n]
          q='OBJECTID >=%i AND OBJECTID <=%i' %(chunk[0],chunk[-1])
          arcpy.Select_analysis(infc, "C:/scratch/scratch.gdb/%s"%chr(N), q)
          N+=1
          arcpy.AddMessage("Seconds %i using query" %int(time.time()-t0))

          t0 = time.time()
          mxd = arcpy.mapping.MapDocument("CURRENT")
          lyr = arcpy.mapping.ListLayers(mxd,infc)[0]
          N=65
          for i in xrange(0, len(OIDs), n):
          chunk=OIDs[i:i + n]
          lyr.setSelectionSet ("NEW",chunk)
          arcpy.CopyFeatures_management(lyr, "C:/scratch/scratch.gdb/%s"%chr(N))
          N+=1
          arcpy.AddMessage("Seconds %i using layer selection" %int(time.time()-t0))


          OUTPUT:



          Seconds 57 using query
          Seconds 34 using using layer selection


          It seems using setSelectionSet method on a layer coupled with Copy features works much faster than Select with query.



          Note: Populating integer field in this sample set took 21 second.






          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "79"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318065%2farcpy-select-analysis-choosing-only-a-fraction-of-the-record%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            I'm not aware of any way to do what you're asking directly. But a work around might be...



            Can you add a new field to the feature class? If so, add an integer field, and use the field calculator to add sequential numbers to this field for each feature. One way to do this is explained here: https://support.esri.com/en/technical-article/000011137



            You should modify this code to reset to 1 each time it reaches the number of datasets required. Eg,



            sets=10
            rec=0
            def autoIncrement():
            global rec
            global sets
            pStart = 1
            pInterval = 1
            if (rec == 0 or rec > sets):
            rec = pStart
            else:
            rec += pInterval
            return rec


            Then you can use Split By Attributes to split into multiple feature classes based on the value of this field (which would be 1-10 for 10 sets). See: http://desktop.arcgis.com/en/arcmap/latest/tools/analysis-toolbox/split-by-attributes.htm



            Of course, if it is a dynamic set of data, you would have to recalculate the field each time you wanted to do the same operation again.



            Note that the code for the field calculator above would not have the consecutive records kept together (ie, not the first 10% of records, but 1 record in every 10). If you need the consecutive records kept together, this could be done with a tweak to the above code.






            share|improve this answer




















            • 1





              Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

              – smiller
              20 hours ago












            • I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

              – Son of a Beach
              20 hours ago















            1














            I'm not aware of any way to do what you're asking directly. But a work around might be...



            Can you add a new field to the feature class? If so, add an integer field, and use the field calculator to add sequential numbers to this field for each feature. One way to do this is explained here: https://support.esri.com/en/technical-article/000011137



            You should modify this code to reset to 1 each time it reaches the number of datasets required. Eg,



            sets=10
            rec=0
            def autoIncrement():
            global rec
            global sets
            pStart = 1
            pInterval = 1
            if (rec == 0 or rec > sets):
            rec = pStart
            else:
            rec += pInterval
            return rec


            Then you can use Split By Attributes to split into multiple feature classes based on the value of this field (which would be 1-10 for 10 sets). See: http://desktop.arcgis.com/en/arcmap/latest/tools/analysis-toolbox/split-by-attributes.htm



            Of course, if it is a dynamic set of data, you would have to recalculate the field each time you wanted to do the same operation again.



            Note that the code for the field calculator above would not have the consecutive records kept together (ie, not the first 10% of records, but 1 record in every 10). If you need the consecutive records kept together, this could be done with a tweak to the above code.






            share|improve this answer




















            • 1





              Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

              – smiller
              20 hours ago












            • I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

              – Son of a Beach
              20 hours ago













            1












            1








            1







            I'm not aware of any way to do what you're asking directly. But a work around might be...



            Can you add a new field to the feature class? If so, add an integer field, and use the field calculator to add sequential numbers to this field for each feature. One way to do this is explained here: https://support.esri.com/en/technical-article/000011137



            You should modify this code to reset to 1 each time it reaches the number of datasets required. Eg,



            sets=10
            rec=0
            def autoIncrement():
            global rec
            global sets
            pStart = 1
            pInterval = 1
            if (rec == 0 or rec > sets):
            rec = pStart
            else:
            rec += pInterval
            return rec


            Then you can use Split By Attributes to split into multiple feature classes based on the value of this field (which would be 1-10 for 10 sets). See: http://desktop.arcgis.com/en/arcmap/latest/tools/analysis-toolbox/split-by-attributes.htm



            Of course, if it is a dynamic set of data, you would have to recalculate the field each time you wanted to do the same operation again.



            Note that the code for the field calculator above would not have the consecutive records kept together (ie, not the first 10% of records, but 1 record in every 10). If you need the consecutive records kept together, this could be done with a tweak to the above code.






            share|improve this answer















            I'm not aware of any way to do what you're asking directly. But a work around might be...



            Can you add a new field to the feature class? If so, add an integer field, and use the field calculator to add sequential numbers to this field for each feature. One way to do this is explained here: https://support.esri.com/en/technical-article/000011137



            You should modify this code to reset to 1 each time it reaches the number of datasets required. Eg,



            sets=10
            rec=0
            def autoIncrement():
            global rec
            global sets
            pStart = 1
            pInterval = 1
            if (rec == 0 or rec > sets):
            rec = pStart
            else:
            rec += pInterval
            return rec


            Then you can use Split By Attributes to split into multiple feature classes based on the value of this field (which would be 1-10 for 10 sets). See: http://desktop.arcgis.com/en/arcmap/latest/tools/analysis-toolbox/split-by-attributes.htm



            Of course, if it is a dynamic set of data, you would have to recalculate the field each time you wanted to do the same operation again.



            Note that the code for the field calculator above would not have the consecutive records kept together (ie, not the first 10% of records, but 1 record in every 10). If you need the consecutive records kept together, this could be done with a tweak to the above code.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 20 hours ago

























            answered 21 hours ago









            Son of a BeachSon of a Beach

            1,546719




            1,546719







            • 1





              Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

              – smiller
              20 hours ago












            • I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

              – Son of a Beach
              20 hours ago












            • 1





              Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

              – smiller
              20 hours ago












            • I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

              – Son of a Beach
              20 hours ago







            1




            1





            Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

            – smiller
            20 hours ago






            Building off this, in arcpy you could set up code to generate a new field (doesn't need to be LONG) and populate using da.updateCursor a unique value every x rows, where x is calculated based on initial count. Then split the dataset using Split Layer By Attributes. The advantage here is that you don't need to iterate through selections and can use the split tool to break up the feature class; the disadvantage to both this and Son of a Beach's is the time to update the field.

            – smiller
            20 hours ago














            I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

            – Son of a Beach
            20 hours ago





            I have updated the answer to use Split By Attributes, as recommended by @smiller. Good idea, that.

            – Son of a Beach
            20 hours ago













            1














            Creating and populating new field could significantly slow things down.



            This is why I tested 2 alternatives below on 150k long point dataset. They use similar approach - splitting the list of OBJECTIDs into equal size chunks:



            import arcpy, time
            from arcpy import env
            env.overwriteOutput = True

            infc="many_points"
            OIDs=[row[0] for row in arcpy.da.TableToNumPyArray(infc,"objectid")]
            n=len(OIDs)/10
            t0 = time.time()
            N=65
            for i in xrange(0, len(OIDs), n):
            chunk=OIDs[i:i + n]
            q='OBJECTID >=%i AND OBJECTID <=%i' %(chunk[0],chunk[-1])
            arcpy.Select_analysis(infc, "C:/scratch/scratch.gdb/%s"%chr(N), q)
            N+=1
            arcpy.AddMessage("Seconds %i using query" %int(time.time()-t0))

            t0 = time.time()
            mxd = arcpy.mapping.MapDocument("CURRENT")
            lyr = arcpy.mapping.ListLayers(mxd,infc)[0]
            N=65
            for i in xrange(0, len(OIDs), n):
            chunk=OIDs[i:i + n]
            lyr.setSelectionSet ("NEW",chunk)
            arcpy.CopyFeatures_management(lyr, "C:/scratch/scratch.gdb/%s"%chr(N))
            N+=1
            arcpy.AddMessage("Seconds %i using layer selection" %int(time.time()-t0))


            OUTPUT:



            Seconds 57 using query
            Seconds 34 using using layer selection


            It seems using setSelectionSet method on a layer coupled with Copy features works much faster than Select with query.



            Note: Populating integer field in this sample set took 21 second.






            share|improve this answer



























              1














              Creating and populating new field could significantly slow things down.



              This is why I tested 2 alternatives below on 150k long point dataset. They use similar approach - splitting the list of OBJECTIDs into equal size chunks:



              import arcpy, time
              from arcpy import env
              env.overwriteOutput = True

              infc="many_points"
              OIDs=[row[0] for row in arcpy.da.TableToNumPyArray(infc,"objectid")]
              n=len(OIDs)/10
              t0 = time.time()
              N=65
              for i in xrange(0, len(OIDs), n):
              chunk=OIDs[i:i + n]
              q='OBJECTID >=%i AND OBJECTID <=%i' %(chunk[0],chunk[-1])
              arcpy.Select_analysis(infc, "C:/scratch/scratch.gdb/%s"%chr(N), q)
              N+=1
              arcpy.AddMessage("Seconds %i using query" %int(time.time()-t0))

              t0 = time.time()
              mxd = arcpy.mapping.MapDocument("CURRENT")
              lyr = arcpy.mapping.ListLayers(mxd,infc)[0]
              N=65
              for i in xrange(0, len(OIDs), n):
              chunk=OIDs[i:i + n]
              lyr.setSelectionSet ("NEW",chunk)
              arcpy.CopyFeatures_management(lyr, "C:/scratch/scratch.gdb/%s"%chr(N))
              N+=1
              arcpy.AddMessage("Seconds %i using layer selection" %int(time.time()-t0))


              OUTPUT:



              Seconds 57 using query
              Seconds 34 using using layer selection


              It seems using setSelectionSet method on a layer coupled with Copy features works much faster than Select with query.



              Note: Populating integer field in this sample set took 21 second.






              share|improve this answer

























                1












                1








                1







                Creating and populating new field could significantly slow things down.



                This is why I tested 2 alternatives below on 150k long point dataset. They use similar approach - splitting the list of OBJECTIDs into equal size chunks:



                import arcpy, time
                from arcpy import env
                env.overwriteOutput = True

                infc="many_points"
                OIDs=[row[0] for row in arcpy.da.TableToNumPyArray(infc,"objectid")]
                n=len(OIDs)/10
                t0 = time.time()
                N=65
                for i in xrange(0, len(OIDs), n):
                chunk=OIDs[i:i + n]
                q='OBJECTID >=%i AND OBJECTID <=%i' %(chunk[0],chunk[-1])
                arcpy.Select_analysis(infc, "C:/scratch/scratch.gdb/%s"%chr(N), q)
                N+=1
                arcpy.AddMessage("Seconds %i using query" %int(time.time()-t0))

                t0 = time.time()
                mxd = arcpy.mapping.MapDocument("CURRENT")
                lyr = arcpy.mapping.ListLayers(mxd,infc)[0]
                N=65
                for i in xrange(0, len(OIDs), n):
                chunk=OIDs[i:i + n]
                lyr.setSelectionSet ("NEW",chunk)
                arcpy.CopyFeatures_management(lyr, "C:/scratch/scratch.gdb/%s"%chr(N))
                N+=1
                arcpy.AddMessage("Seconds %i using layer selection" %int(time.time()-t0))


                OUTPUT:



                Seconds 57 using query
                Seconds 34 using using layer selection


                It seems using setSelectionSet method on a layer coupled with Copy features works much faster than Select with query.



                Note: Populating integer field in this sample set took 21 second.






                share|improve this answer













                Creating and populating new field could significantly slow things down.



                This is why I tested 2 alternatives below on 150k long point dataset. They use similar approach - splitting the list of OBJECTIDs into equal size chunks:



                import arcpy, time
                from arcpy import env
                env.overwriteOutput = True

                infc="many_points"
                OIDs=[row[0] for row in arcpy.da.TableToNumPyArray(infc,"objectid")]
                n=len(OIDs)/10
                t0 = time.time()
                N=65
                for i in xrange(0, len(OIDs), n):
                chunk=OIDs[i:i + n]
                q='OBJECTID >=%i AND OBJECTID <=%i' %(chunk[0],chunk[-1])
                arcpy.Select_analysis(infc, "C:/scratch/scratch.gdb/%s"%chr(N), q)
                N+=1
                arcpy.AddMessage("Seconds %i using query" %int(time.time()-t0))

                t0 = time.time()
                mxd = arcpy.mapping.MapDocument("CURRENT")
                lyr = arcpy.mapping.ListLayers(mxd,infc)[0]
                N=65
                for i in xrange(0, len(OIDs), n):
                chunk=OIDs[i:i + n]
                lyr.setSelectionSet ("NEW",chunk)
                arcpy.CopyFeatures_management(lyr, "C:/scratch/scratch.gdb/%s"%chr(N))
                N+=1
                arcpy.AddMessage("Seconds %i using layer selection" %int(time.time()-t0))


                OUTPUT:



                Seconds 57 using query
                Seconds 34 using using layer selection


                It seems using setSelectionSet method on a layer coupled with Copy features works much faster than Select with query.



                Note: Populating integer field in this sample set took 21 second.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 16 hours ago









                FelixIPFelixIP

                16.7k11642




                16.7k11642



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318065%2farcpy-select-analysis-choosing-only-a-fraction-of-the-record%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Францішак Багушэвіч Змест Сям'я | Біяграфія | Творчасць | Мова Багушэвіча | Ацэнкі дзейнасці | Цікавыя факты | Спадчына | Выбраная бібліяграфія | Ушанаванне памяці | У філатэліі | Зноскі | Літаратура | Спасылкі | НавігацыяЛяхоўскі У. Рупіўся дзеля Бога і людзей: Жыццёвы шлях Лявона Вітан-Дубейкаўскага // Вольскі і Памідораў з песняй пра немца Адвакат, паэт, народны заступнік Ашмянскі веснікВ Минске появится площадь Богушевича и улица Сырокомли, Белорусская деловая газета, 19 июля 2001 г.Айцец беларускай нацыянальнай ідэі паўстаў у бронзе Сяргей Аляксандравіч Адашкевіч (1918, Мінск). 80-я гады. Бюст «Францішак Багушэвіч».Яўген Мікалаевіч Ціхановіч. «Партрэт Францішка Багушэвіча»Мікола Мікалаевіч Купава. «Партрэт зачынальніка новай беларускай літаратуры Францішка Багушэвіча»Уладзімір Іванавіч Мелехаў. На помніку «Змагарам за родную мову» Барэльеф «Францішак Багушэвіч»Памяць пра Багушэвіча на Віленшчыне Страчаная сталіца. Беларускія шыльды на вуліцах Вільні«Krynica». Ideologia i przywódcy białoruskiego katolicyzmuФранцішак БагушэвічТворы на knihi.comТворы Францішка Багушэвіча на bellib.byСодаль Уладзімір. Францішак Багушэвіч на Лідчыне;Луцкевіч Антон. Жыцьцё і творчасьць Фр. Багушэвіча ў успамінах ягоных сучасьнікаў // Запісы Беларускага Навуковага таварыства. Вільня, 1938. Сшытак 1. С. 16-34.Большая российская1188761710000 0000 5537 633Xn9209310021619551927869394п

                    Беларусь Змест Назва Гісторыя Геаграфія Сімволіка Дзяржаўны лад Палітычныя партыі Міжнароднае становішча і знешняя палітыка Адміністрацыйны падзел Насельніцтва Эканоміка Культура і грамадства Сацыяльная сфера Узброеныя сілы Заўвагі Літаратура Спасылкі НавігацыяHGЯOiТоп-2011 г. (па версіі ej.by)Топ-2013 г. (па версіі ej.by)Топ-2016 г. (па версіі ej.by)Топ-2017 г. (па версіі ej.by)Нацыянальны статыстычны камітэт Рэспублікі БеларусьШчыльнасць насельніцтва па краінахhttp://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/А. Калечыц, У. Ксяндзоў. Спробы засялення краю неандэртальскім чалавекам.І ў Менску былі мамантыА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіГ. Штыхаў. Балты і славяне ў VI—VIII стст.М. Клімаў. Полацкае княства ў IX—XI стст.Г. Штыхаў, В. Ляўко. Палітычная гісторыя Полацкай зямліГ. Штыхаў. Дзяржаўны лад у землях-княствахГ. Штыхаў. Дзяржаўны лад у землях-княствахБеларускія землі ў складзе Вялікага Княства ЛітоўскагаЛюблінская унія 1569 г."The Early Stages of Independence"Zapomniane prawdy25 гадоў таму было аб'яўлена, што Язэп Пілсудскі — беларус (фота)Наша вадаДакументы ЧАЭС: Забруджванне тэрыторыі Беларусі « ЧАЭС Зона адчужэнняСведения о политических партиях, зарегистрированных в Республике Беларусь // Министерство юстиции Республики БеларусьСтатыстычны бюлетэнь „Полаўзроставая структура насельніцтва Рэспублікі Беларусь на 1 студзеня 2012 года і сярэднегадовая колькасць насельніцтва за 2011 год“Индекс человеческого развития Беларуси — не было бы нижеБеларусь занимает первое место в СНГ по индексу развития с учетом гендерного факцёраНацыянальны статыстычны камітэт Рэспублікі БеларусьКанстытуцыя РБ. Артыкул 17Трансфармацыйныя задачы БеларусіВыйсце з крызісу — далейшае рэфармаванне Беларускі рубель — сусветны лідар па дэвальвацыяхПра змену коштаў у кастрычніку 2011 г.Бядней за беларусаў у СНД толькі таджыкіСярэдні заробак у верасні дасягнуў 2,26 мільёна рублёўЭканомікаГаласуем за ТОП-100 беларускай прозыСучасныя беларускія мастакіАрхитектура Беларуси BELARUS.BYА. Каханоўскі. Культура Беларусі ўсярэдзіне XVII—XVIII ст.Анталогія беларускай народнай песні, гуказапісы спеваўБеларускія Музычныя IнструментыБеларускі рок, які мы страцілі. Топ-10 гуртоў«Мясцовы час» — нязгаслая легенда беларускай рок-музыкіСЯРГЕЙ БУДКІН. МЫ НЯ ЗНАЕМ СВАЁЙ МУЗЫКІМ. А. Каладзінскі. НАРОДНЫ ТЭАТРМагнацкія культурныя цэнтрыПублічная дыскусія «Беларуская новая пьеса: без беларускай мовы ці беларуская?»Беларускія драматургі па-ранейшаму лепш ставяцца за мяжой, чым на радзіме«Працэс незалежнага кіно пайшоў, і дзяржаву турбуе яго непадкантрольнасць»Беларускія філосафы ў пошуках прасторыВсе идём в библиотекуАрхіваванаАб Нацыянальнай праграме даследавання і выкарыстання касмічнай прасторы ў мірных мэтах на 2008—2012 гадыУ космас — разам.У суседнім з Барысаўскім раёне пабудуюць Камандна-вымяральны пунктСвяты і абрады беларусаў«Мірныя бульбашы з малой краіны» — 5 непраўдзівых стэрэатыпаў пра БеларусьМ. Раманюк. Беларускае народнае адзеннеУ Беларусі скарачаецца колькасць злачынстваўЛукашэнка незадаволены мінскімі ўладамі Крадзяжы складаюць у Мінску каля 70% злачынстваў Узровень злачыннасці ў Мінскай вобласці — адзін з самых высокіх у краіне Генпракуратура аналізуе стан са злачыннасцю ў Беларусі па каэфіцыенце злачыннасці У Беларусі стабілізавалася крымінагеннае становішча, лічыць генпракурорЗамежнікі сталі здзяйсняць у Беларусі больш злачынстваўМУС Беларусі турбуе рост рэцыдыўнай злачыннасціЯ з ЖЭСа. Дазволіце вас абкрасці! Рэйтынг усіх службаў і падраздзяленняў ГУУС Мінгарвыканкама вырасАб КДБ РБГісторыя Аператыўна-аналітычнага цэнтра РБГісторыя ДКФРТаможняagentura.ruБеларусьBelarus.by — Афіцыйны сайт Рэспублікі БеларусьСайт урада БеларусіRadzima.org — Збор архітэктурных помнікаў, гісторыя Беларусі«Глобус Беларуси»Гербы и флаги БеларусиАсаблівасці каменнага веку на БеларусіА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіУ. Ксяндзоў. Сярэдні каменны век (мезаліт). Засяленне краю плямёнамі паляўнічых, рыбакоў і збіральнікаўА. Калечыц, М. Чарняўскі. Плямёны на тэрыторыі Беларусі ў новым каменным веку (неаліце)А. Калечыц, У. Ксяндзоў, М. Чарняўскі. Гаспадарчыя заняткі ў каменным векуЭ. Зайкоўскі. Духоўная культура ў каменным векуАсаблівасці бронзавага веку на БеларусіФарміраванне супольнасцей ранняга перыяду бронзавага векуФотографии БеларусиРоля беларускіх зямель ва ўтварэнні і ўмацаванні ВКЛВ. Фадзеева. З гісторыі развіцця беларускай народнай вышыўкіDMOZGran catalanaБольшая российскаяBritannica (анлайн)Швейцарскі гістарычны15325917611952699xDA123282154079143-90000 0001 2171 2080n9112870100577502ge128882171858027501086026362074122714179пппппп

                    ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6 (SMOTE) The 2019 Stack Overflow Developer Survey Results Are InCan SMOTE be applied over sequence of words (sentences)?ValueError when doing validation with random forestsSMOTE and multi class oversamplingLogic behind SMOTE-NC?ValueError: Error when checking target: expected dense_1 to have shape (7,) but got array with shape (1,)SmoteBoost: Should SMOTE be ran individually for each iteration/tree in the boosting?solving multi-class imbalance classification using smote and OSSUsing SMOTE for Synthetic Data generation to improve performance on unbalanced dataproblem of entry format for a simple model in KerasSVM SMOTE fit_resample() function runs forever with no result