<\/HEAD>
Minha postagem anterior no blog, \/blogs\/tilting\/2017\/06\/10\/a-case-of-missing-prefixes-esris-geometries?sr=search&searchId=c6def5e0-70d7-4799-991e-cfbe7cafee76&searchIndex=0<\/A>, foi não planejada. Comecei a escrever esta postagem e a próxima, e percebi que as informações de fundo que queria incluir não cabiam em nenhuma delas, então escrevi as informações de fundo separadamente.
<\/EM><\/P><\/P>
Ao longo dos anos, descobri que os construtores de ArcPy Geometry são peculiares, especialmente em casos extremos ou nichos como geometrias vazias. Como um usuário engajado, que acredita que fornecer feedback aos desenvolvedores é importante, enviei vários bugs e pedidos de melhoria ao longo do tempo relacionados aos construtores de geometria. Logo de cara, não posso dizer quantos foram implementados, possivelmente apenas um, mas não estava no topo da minha lista de desejos.<\/P>
<\/P>
Alguns anos atrás, enviei a ideia
Suporte a Geometrias Vazias com Construtores da Classe ArcPy Geometry<\/A>. Vendo quantos poucos usuários trabalham com geometrias vazias, não me surpreendo com os impressionantes 2 votos que recebeu até agora. <\/EM>Como David Wynne<\/A> da Esri aponta nos comentários, geometrias vazias são na verdade suportadas pelos construtores ArcPy Geometry, só que a sintaxe não está documentada. Dado que geometrias vazias são suportadas pelos construtores, acho que minha ideia original deveria ser mesclada sob Pythonic ArcPy Geometries<\/A> já que o que realmente quero é uma forma mais intuitiva e idiomática de criar geometrias vazias usando os construtores ArcPy Geometry. Eu mesclaria minhas duas ideias se pudesse, mas não posso eu mesmo, e não quero simplesmente deletar a ideia.<\/EM><\/P><\/P>Usando a classe ArcPy Polygon como exemplo, vamos dar uma olhada em várias formas pelas quais alguém poderia tentar construir uma geometria vazia usando os construtores ArcPy Geometry:<\/P><SPAN class="operator token">>><\/SPAN><SPAN class="operator token">><\/SPAN> ctor_stmts <SPAN class="operator token">=<\/SPAN> <SPAN class="punctuation token">(<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> <SPAN class="string token">''<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> <SPAN class="string token">'None'<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> <SPAN class="string token">'arcpy.Array()'<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> <SPAN class="string token">'arcpy.Array(None)'<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> <SPAN class="string token">'arcpy.Point()'<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="punctuation token">.<\/span><span class="punctuation token">.<span class="punctuation token">.<span> 'arcpy.Array([])'</span>,
<span>.</span><span>.</span><span>.</span> 'arcpy.Array([None])',
<span>.</span><span>.</span><span>.</span> 'arcpy.Array(arcpy.Array())',
<span>.</span><span>.</span><span>.</span> 'arcpy.Array(arcpy.Array(None))',
<span>.</span><span>.</span><span>.</span> 'arcpy.Array(arcpy.Array([]))'
<span>.</span><span>.</span><span>.</span> )
<span>.</span><span>.</span><span>.</span>
<span>>></span><span>></span> for i, stmt in enumerate(ctor_stmts):
<span>.</span><span>.</span><span>.</span> stmt = "arcpy.Polygon({})".format(stmt)
<span>.</span><span>.</span><span>.</span> try:
<span>.</span><span>.</span><span>.</span> print("{:0>2}. {:<46}: {}".format(i+1, stmt, eval(stmt).WKT))
<span>.</span><span>.</span><span>.</span> except Exception as err:
<span>.</span><span>.</span><span>.</span> print("{:0>2}. {:<46}: {}....".format(i+1, stmt, err.message[:35]))
<span>.</span><span>.</span><span>.</span>
01. arcpy.Polygon() : Object: CreateObject cannot create ....
02. arcpy.Polygon(None) : Object: CreateObject cannot create ....
03. arcpy.Polygon(arcpy.Array()) : <SPAN class="punctuation token">:<\/SPAN> Object<SPAN class="punctuation token">:<\/SPAN> CreateObject não pode criar <SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN>
<SPAN class="number token">04<\/SPAN><SPAN class="punctuation token">.<\/SPAN> arcpy<SPAN class="punctuation token">.<\/SPAN>Polygon<SPAN class="punctuation token">(<\/SPAN>arcpy<SPAN class="punctuation token">.<\/SPAN>Array<SPAN class="punctuation token">(<\/SPAN>None<SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">)<\/SPAN> <SPAN class="punctuation token">:<\/SPAN> MULTIPOLYGON EMPTY
<SPAN class="number token">05<\/SPAN><SPAN class="punctuation token">.<\/SPAN> arcpy<SPAN class="punctuation token">.<\/SPAN>Polygon<SPAN class="punctuation token">(<\/SPAN>arcpy<SPAN class="punctuation token">.<\/SPAN>Point<SPAN class="punctuation token">(<\/SPAN><SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">)<\/SPAN> <SPAN class="punctuation token">:<\/SPAN> MULTIPOLYGON EMPTY
<SPAN class="number token">06<\/SPAN><SPAN class="punctuation token">.<\/SPAN> arcpy<SPAN class="punctuation token">.<\/SPAN>Polygon<SPAN class="punctuation token">(<\/Span>arcpy<Span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span><span class="punctuation token">[<\/span><span class="punctuation token">]<\/span><span class="punctuation token">)<\/span><span class="punctuation token">)<\/span> <span class="punctuation token">:<\/span> Object<span class="punctuation token">:<\/span> CreateObject não pode criar <span class="punctuation token">.<\/span><span class="punctuation token">.<\/span><span class="punctuation token">.<\/span><span class="punctuation token">.<\/span>
<span class="number token">07<\/span><span class="punctuation token">.<\/span> arcpy<span class="punctuation token">.<\/span>Polygon<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span>[None]<span class="punctuation token">)<\/span><span class="punctuation token">)<\/span> <span class="punctuation token">:<\/span> MULTIPOLYGON EMPTY
<span class="number token">08<\/span><span class="punctuation token">.<\/span> arcpy<span class="punctuation token">.<\/span>Polygon<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span>)<span class="punctuation token">)<\/span>)<span class="punctuation token">)<\/span> <span class="punctuation token">:<\/span> MULTIPOLYGON EMPTY
<span class="number token">09<\/span><span class="punctuation token">.<\/span> arcpy<span class="punctuation token">.<\/span>Polygon<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span>None)<span class="punctuation token">)<\/span>)<span class="punctuation token">)<\/span> <span class="punctuation token">:<\/span> MULTIPOLYGON EMPTY
<span class="number token">10<\/span><span class="punctuation token">.<\/span> arcpy<span class="punctuation token">.<\/span>Polygon<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\/span>Array<span class="punctuation token">(<\/span>arcpy<span class="punctuation token">.<\.spanspan>.Array(span>[]<.spanspan>)</spanspan>)</spanspan>& nbsp; & nbsp; : MULTIPOLYGON EMPTY
> > < spanclass= "line-numbers-rows" > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > < / span > <<EMOJI_31 >> </ sp an >< / CODE >< / PRE >< P >< / P >< P > Antes de compartilhar quaisquer pensamentos ou comentários, acho importante refrescar nossa memória sobre exatamente o que a documentação do<A href= "http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-classes/polygon.htm" rel= "nofollow noopener noreferrer" target= "_blank" > ArcPy Polygon </A>diz:< / P >< BLOCKQUOTEclass= "jive_macro_quote jive-quote jive_text_macro" >< H2 style= "margin: 0.63em 0px 0.63158em; font-family: 'Avenir LT W01 35 Light', Arial, Helvetica, sans-serif; font-style: normal; font-weight: 500; letter-spacing: 0.02em; font-size: 2rem; line-height: 1.2em; -webkit-font-smoothing: antialiased;" id= "toc-hId-1824851459" id= "toc-hId-1824851459" > Sintaxe </ H2 >< DIVclass= "" style= "-webkit-font-smoothing: antialiased;" >< PREclass= "lia-code-sample line-numbers language-none" > Polygon (inputs, {spatial_reference}, {has_z}, {has_m})</ PRE ></ DIV >< DIVclass= "" style= "-webkit-font-smoothing: antialiased;" >< TABLEstyle= "width: 767.333px; margin-bottom: 1.5em; font-size: 0.875em; line-height: 1.71429em; font-family: 'Lucida Grande', 'Segoe UI', Arial, sans-serif; background-color: white; border-collapse: collapse; border-spacing: 0px; border: 1px solid #dddddd; text-align: left;" >< THEADstyle= "background-color: #f4f4f4; border-bottom: 1px solid #dddddd; font-size: 0.9375em; line-height: 1.6em; font-weight: bold;" >< TRstyle= "border-bottom: medium none; text-align: left; height: 39px;" >< TDclass= "" style= "border-left: 1px solid #dddddd; border-right: 1px solid #dddddd; padding: 12px; height: 39px;" > Parâmetro </ TD >< TDclass= "" style= "border-left: 1px solid #dddddd; border-right: 1px solid #dddddd; padding: 12px; height: 39px;" > Explicação </ TD >< TDclass= "" style= "border-left: 1px solid #dddddd; border-right: 1px solid #dddddd; padding: 12px; height: 39px;" > Tipo de Dados </ TD ></ TR ></ THEAD >< TBODY >< TRstyle= "border-bottom: 1px solid #dddddd; text-align: left; height: 49px;" >< TDstyle= "border-left: 1px solid #dddddd; border-right: 1px solid #dddddd; padding: 12px; height: 49px;" >< DIVclass= "" style= "-webkit-font-smoothing: antialiased;" > inputs </ DIV ></ TD >< TDstyle= "border-left: 1px solid #dddddd; border-right: 1px solid #dddddd; padding: 12px; height: 49px;" >< Pstyle= "font-size: 0.875rem; line-height: 1.71429em; margin-top: 0em; margin-bottom: 0px;-webkit-font-smoothing : antialiased ; "> As coordenadas usadas para criar o objeto. O tipo de dado pode ser objetos do tipo <SPanclass = "" style = "-webkit-font-smoothing : antialiased ; font-family : Consolas , 'Andale Mono' , 'Lucida Console' , Monaco , 'Courier New' , Courier , monospace ; font-weight : bold ; "> Point </ SPan></P><Pstyle = "font-size :0.875rem ; line-height :1.71429em ; margin-top :0em ; margin-bottom :0px ; -webkit-font-smoothing : antialiased ; "> ou objetos do tipo <SPanclass = "" style = "-webkit-font-smoothing : antialiased ; font-family : Consolas , 'Andale Mono' , 'Lucida Console' , Monaco , 'Courier New' , Courier , monospace ; font-weight : bold ; "> Array </ SPan>.</P></TD><TDstyle = "border-left :1px solid #dddddd ; border-right :1px solid #dddddd ; padding :12px ; height :49px ; "> Object </TD></TR></TBODY></TABLE></DIV></BLOCKQUOTE><P></P><PAlgumas observações antes dos comentários:</P><UL><LIExemplos01&02:<BR/><UL><LI>A documentação afirma que os inputs precisam ser objetos Point ou Array, o que nenhum desses exemplos fornece.</LI></UL></LI><LIExemplos03&06:<UL><LIEsses dois exemplos são iguais, por exemplo, <SPAnstyle = "font-family:courier new,courier,monospace ; ">repr(arcpy.Array()) == repr(arcpy.Array([]))</SPAn>.& nbsp;<Em>Sendo que a Esri não implementa equivalência com ArcPy Arrays, usei o método __repr__ dos objetos para mostrar igualdade neste caso.</Em></LI><LIChamar o método <SPAnstyle = "font-family:courier new,courier,monospace ; ">arcpy.Array()</SPAn cria um Array ArcPy vazio:& nbsp;<SPAnstyle = "font-family:courier new,courier,monospace ; ">< []><\/SPAN>. Arrays ArcPy vazios são objetos válidos, e a documentação afirma que objetos ArcPy Array podem ser passados para o construtor ArcPy Polygon.<EM><BR \/><\/EM><\/LI><\/UL><\/LI><LI>Exemplos 04 & 07:<UL><LI>Semelhante aos Exemplos 03 & 06, esses dois exemplos são iguais, por exemplo, <SPAN style="font-family: courier new,courier,monospace;">repr(arcpy.Array(None)) == repr(arcpy.Array([None])).<\/SPAN><\/LI><LI>O Exemplo 04 foi o método sugerido por <A href="https:\/\/community.esri.com\/migrated-users\/2582" target="_blank">David Wynne<\/A> em <A href="https:\/\/community.esri.com\/ideas\/10648?sr=search&searchId=d16b084d-001d-4dad-b5a6-7e4ae13606e0&searchIndex=4" target="_blank">Support Empty Geometries with ArcPy Geometry Class Constructors<\/A>.<\/LI><\/UL><\/LI><LI>Exemplo 05:<UL><LI>A documentação afirma que um objeto Point pode ser usado como entrada.<\/LI><LI>Chamar <SPAN style="font-family: courier new,courier,monospace;">arcpy.Point()<\/SPAN> não cria um ponto vazio, como chamar <SPAN style="font-family: courier new,courier,monospace;">arcpy.Array()<\/SPAN>, em vez disso cria um ponto 0, 0:<SPAN style="font-family: courier new,courier,monospace;"> <Point (0.0, 0.0, #, #)><\/SPAN>. Embora não demonstrado acima, testes adicionais mostram que qualquer ponto funciona, por exemplo, <SPAN style="font-family: courier new,courier,monospace;">arcpy.Polygon(arcpy.Point(10000.5, -4500.3))<\/SPAN> também cria um multi-polígono vazio.<\/LI><\/UL><\/LI><LI>Exemplos 08 & 10:<UL><LI>Semelhante aos Exemplos 03 & 06 e Exemplos 04 & 07, esses dois exemplos são iguais.<\/LI><LI>Chamar <SPAN style="font-family: courier new,courier,monospace;">arcpy.Array(arcpy.Array())<\/SPAN> cria um ArcPy Array vazio aninhado dentro de um ArcPy Array. A documentação do <A href="http:\/\/desktop.arcgis.com\/en\/arcmap\/latest\/analyze\/arcpy-classes\/array.htm" rel="nofollow noopener noreferrer" target="_blank">ArcPy Array<\/A> afirma que um ArcPy Array é uma entrada válida para o construtor ArcPy Array.<\/LI><\/UL><\/LI><\/UL><P><\/P><P>Existem várias peculiaridades com os resultados do teste do construtor de polígono acima. Acho que os Exemplos 03 & 06 são os que mais provavelmente confundirão os usuários. A documentação afirma claramente que objetos ArcPy Array são entradas válidas e Arrays ArcPy vazios são objetos válidos, então por que passar um ArcPy Array vazio para o construtor ArcPy Polygon gera um erro? Embora os Exemplos 04 & 07 funcionem, parece estranho que um ArcPy Array contendo um Python <SPAN style="font-family: courier new,courier,monospace;">None<\/SPAN> seja de alguma forma substancialmente diferente de um ArcPy Array vazio ao construir uma geometria vazia.<\/P><P><\/P><P>O Exemplo 05 é uma surpresa e faz menos sentido para mim. A documentação afirma claramente que um objeto Point é uma entrada válida para o construtor ArcPy Polygon, mas como é um polígono com um único ponto? Um multi-polígono vazio, segundo a Esri. O que torna essa estranheza ainda maior para mim é que não existe um ArcPy Point vazio e que qualquer ArcPy Point passado para o construtor ArcPy Polygon cria uma geometria vazia.<\/P><P><\/P><P style="padding-left: 30px;"><EM>Usando <A class="link-titled" href="https:\/\/docs.python.org\/2\/library\/dis.html" title="https:\/\/docs.python.org\/2\/library\/dis.html" rel="nofollow noopener noreferrer" target="_blank">dis 1 Disassembler for Python bytecode<\/A> para analisar o bytecode de cada uma das declarae7f5es do construtor acima, parecia que o Exemplo 05 seria a declarae7e3o do construtor com melhor desempenho. Executar <A class="link-titled" href="https:\/\/docs.python.org\/2\/library\/timeit.html" title="https:\/\/docs.python.org\/2\/library\/timeit.html" rel="nofollow noopener noreferrer" target="_blank">timeit 1 Measure execution time of small code snippets<\/A> nas declarae7f5es do construtor mostrou que o Exemplo 05 foi o mais re1pido na gerae7e3o de geometrias vazias, ne3o por muito, mas ainda assim o mais re1pido. Isso apenas aumenta o miste9rio do poledgono de ponto fanico.<\/EM><\/P><P><\/P><P>Os Exemplos 08 & 10 sere3o abordados em uma postagem futura no blog, ente3o ne3o vou aprofundar meus pensamentos sobre eles aqui.<\/P><P><\/P><P>Ente3o como os resultados deste teste se encaixam na ideia\u002Fpedido\u002Fapelo por mais <A href="https:\/\/community.esri.com\/ideas\/10963?sr=search&searchId=97894fbc-b12d-4fd3-85e6-92946ebbb702&searchIndex=2" target="_blank">Pythonic ArcPy Geometries<\u200c>? Para mim, a resposta e9 que o Exemplo 01 deveria ser a maneira principal de criar geometrias vazias ArcPy, ou seja, passar nenhum argumento para um construtor de Geometria ArcPy deveria gerar o tipo equivalente de geometria vazia. Para objetos que suportam o conceito de vazio, e9 bastante comum em Python passar nenhum argumento para o construtor criar um objeto vazio. Vamos ver alguns exemplos:<\u002FPRE class="lia-code-sample line-numbers language-none"><CODE>>>> # Estruturas de dados internas comuns
>>> list()
[]
>>> set()
set([])
>>> dict()
{}
>>> str()
''
>>>
>>> # Algumas estruturas de dados SciPy agora incluídas no ArcGIS
>>> import pandas
>>> pandas.DataFrame()
Empty DataFrame
Columns: []
Index: []
>>> import matplotlib.pylab
>>> matplotlib.pylab.plot()
[]
>>> <SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN>></SPAN>P
P>Qual e9 mais Pythonic para criar uma geometria vazia,
arcpy.Polygon(arcpy.Array(None)) ou
arcpy.Polygon()?<\u002FP>
ATUALIZA9o 06\u002F2018:<\strong>
Para completar, quero incluir os resultados da execu\u0074\u0065 dos testes dos construtores nas outras classes de Geometria ArcPy:<\pre class="lia-code-sample line-numbers language-none">>>> geometry_classes = ["point", "multipoint", "polyline"]
>>> ctor_stmts = (
'',
'None',
'arcpy.Array()',
'arcpy.Array(None)',
'arcpy.Point()',
'arcpy.Array([])',
'arcpy.Array([None])',
'arcpy.Array(arcpy.Array())'
class="punctuation token">,
'arcpy.Array(arcpy.Array(None))',
'arcpy.Array(arcpy.Array([]))'
)
>>> para geometry em geometry_classes:
... para i, stmt em enumerate(ctor_stmts):
... stmt = "arcpy.Geometry('{}',{})".format(geometry, stmt)
... tente:
... imprimir("{:0>2}. {:<60}: {}".format(i+1, stmt, eval(stmt).WKT))
. . . &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &Nbsp ; &NBSP; Exceto Exceção como err :
. . . & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; Imprimir ( "{:0>2}. {:<60}: {}...." ) . Format ( i + 1 , stmt , err . Mensagem [ : 20 ] ) )
. . . & Nbsp; Imprimir ( "" )
. . . & Nbsp;
01 . arcpy . Geometry ( 'point' , ) : Object : CreateObject ....
02 . arcpy . Geometry ( 'point' , None ) : Object : CreateObject ....
03 . arcpy . Geometry ( 'point' , arcpy . Array ( ) ) : Object : CreateObject ....
04 . arcpy . Geometry ( 'point' , arcpy . Array ( None ) ) : Object : CreateObject ....
05 . arcpy . Geometry ( 'point' , arcpy . Point ( ) ) : POINT ( 0 0 )
06 . arcpy . Geometry ( 'point' , arcpy . Array ( [ ] ) ) : Object : CreateObject ....
07 . arcpy . Geometry ( 'point' , arcpy . Array ( [ None ] )): Object : CreateObject ....
08 . arcpy . Geometry ( 'point' , arcpy . Array ( arcpy token">.<\/SPAN>Matriz(<\/SPAN>)<\/SPAN>)<\/SPAN>)<\/SPAN> :<\/SPAN> Objeto:<\/SPAN> CreateObject.<\/SPAN>.<\/SPAN>.<\/SPAN>.<\/SPAN>
09<\/SPAN>.<\/SPAN> arcpy.<\/SPAN>Geometry(<\/SPAN>'point'<\/SPAN>, <\/SPAN>arcpy.<\/SPAN>Matriz(<\/SPAN>arcpy.<\/SPAN>Matriz(<\/SPAN>Nenhum)<\/SPAN>)<\/SPAN>)<\/SPAN> :<\/SPAN> Objeto:<\/SPAN> CreateObject.<\/Span>.<\/span>.<\/span>.<\/span>
10<\/Span>.<\/Span> arcpy.<\/Span>Geometry(<\/Span>'point'<\/Span>, <\/Span>arcpy.<\/Span>Matriz(<\/Span>arcpy.<\/Span>Matriz(<\/Span>[<\/Span>]<\/Span>)<\/Span>)<\/Span>)<\/Span> :<\/span> Objeto:<\/span> CreateObject.<\/span>.<\/span>.<\/span>.<\/span>
01<\/span>.<\/span> arcpy.<\/span>Geometry(<\/span>'multipoint'<\/span>, <\/span>) :<\/span> Objeto:<\/span> CreateObject.<\/span>.<\/span>.<\/span>.<\/span>
02<\/span>.<\/span> arcpy.<\/span>Geometry(<\/span>'multipoint'<\/span>, Nenhum)<\/span> :<\/span> Objeto:<\/span> CreateObject.<\.\/><\.\/><\.\/><\.\/>
03.arcpy.Geometry(<'multipoint'>,arcpy.Array())& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;: Object: CreateObject. . . .
04.arcpy.Geometry(<'multipoint'>,arcpy.Array(Nenhum))& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;: MULTIPOINT VAZIO
05.arcpy.Geometry(<'multipoint'>,arcpy.Point( ) )& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;: MULTIPOINT ( (0 0) )
06.arcpy.Geometry(<'multipoint'>,arcpy.Array([ ] ) )& nbsp; & nbsp; & nbsp;: Object: CreateObject. . . .
07.arcpy.Geometry(<'multipoint'>,arcpy.Array([Nenhum]) )& nb sp ;& nb sp ;& nb sp ;& nb sp ;& nb sp ;& nb sp ;& nb sp ;& nb sp ;& nb sp ;: MULTIPOINT VAZIO
08. arcpy < punctuation_token >. Geometry < punctuation_token > ( 'multipoint' < punctuation_token > , arcpy < punctuation_token >. Array < punctuation_token > ( arcpy < punctuation_token >. Array < punctuation_token > ( ) ) )& nb sp ;: MULTIPOINT VAZIO
09. arcpy < punctuation_token >. Geometry < punctuation_token > ( 'multipoint' , arcpy < punctuation_token >. Array < punctuation_token > ( arcpy < punctuation_token >. Array < punctuation_token > ( Nenhum ) ) ) : MULTIPOINT VAZIO
10. arcpy < punctuation_token >. Geometry < punctuation_token > ( 'multipoint' , arcpy < punctuation_token >. Array < punctuation_token > ( arcpy < punctuation_token >. Array < punctuation_token > ( [ ] ) ) )& nb sp ;: MULTIPOINT VAZIO
01. arcpy < punctuation_token >. Geometry < punctuation_token > ( 'polyline' , )& nb sp ;: Objeto : CreateObject . token">.<\/SPAN>.<\/SPAN>.<\/SPAN>
02<\/SPAN>.<\/SPAN> arcpy.<\/SPAN>Geometry(<\/SPAN>'polyline'<\/SPAN>,<\/SPAN>None)<\/SPAN> :<\/SPAN> Object:<\/SPAN> CreateObject.<\/SPAN>.<\/SPAN>.<\/SPAN>.<\/SPAN>
03<\/SPAN>.<\/SPAN> arcpy.<\/SPAN>Geometry(<\/SPAN>'polyline'<\/SPAN>,<\/SPAN>arcpy.<\/SPAN>Array(<\/SPAN>)<\/SPAN>)<\/SPAN> :<\/SPAN> Object:<\/SPAN> CreateObject.<\/SPAN>.<\/SPAN>.<\/SPAN>.<\/SPAN>
04<\/SPAN>.<\/span> arcpy.<\/span>Geometry(<\/span>'polyline'<\/span>,<\/span>arcpy.<\/span>Array(<\/span>None)<\/span>)<\/span> :<\/span> MULTILINESTRING EMPTY
05<\/span>.<\/span> arcpy.<\/span>Geometry(<\/span>'polyline'<\/span>,<\/span>arcpy.<\/span>Point(<\/span>)<\/span>)<\/span> :<\/span> MULTILINESTRING EMPTY
06<\/span>.<\/span> arcpy.<\/span>Geometry(<\/span>'polyline'<\/span>,<\/span>arcpy.<\/span>Array(<\/span>[0m[\u001b[0m]arcpy.Polyline() se comporta da mesma forma que arcpy.Polygon(), enquanto arcpy.Multipoint() tem uma diferença ao passar arcpy.Point().