尝试摄取具有许多特征的文件时出现错误

huangapple go评论93阅读模式
英文:

Error when trying to ingest a file with many features

问题

I installed and configured Geomesa using Docker containers. The versions I used for the various applications are:

  • Geomesa 4.0.1
  • Hadoop 2.10.2
  • Apache Accumulo 2.0.1
  • Apache Zookeeper 3.7.1

To ingest a file I use the following command:

geomesa-accumulo ingest --force -i accumulo -z zookeeper -u username -p myPassword -c myCatalog -f myFeature /path/to/shapefile

Everything seems to work correctly. I tried ingesting shapefile and JSON, and data are saved to Accumulo as they should. But when I try to ingest a shapefile with many features, it gives the following error:

Fatal error running local ingest worker on file.shp
2023-07-11 06:31:32,973 ERROR [org.locationtech.geomesa.tools.ingest.LocalConverterIngest] Fatal error running local ingest worker on file.shp
java.io.IOException: Error occurred trying to reproject data
...
Caused by: java.lang.IllegalArgumentException: Nothing to be reprojected! (check before using wrapper)
...

While looking for a solution for my error, I read some comments stating that the stacktrace is misleading and that the error would actually be caused by a large number of features that Geomesa cannot handle. I would like to know if this is indeed the case and if there is a way to solve the problem.

I converted the shapefile to CSV format via QGIS and then tried to ingest it with Geomesa. The error changes and seems to be related just to the large number of features.

at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter.writeFeature(GeoMesaFeatureWriter.scala:56)
...
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -320
...

These are the first few lines of the geomesa.log file related to the ingestion of the converted CSV file, but it pretty much repeats the same way for all entries.

2023-07-19 14:07:29,042 WARN [org.apache.hadoop.util.NativeCodeLoader] Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
...
2023-07-19 14:07:34,211 INFO [org.locationtech.geomesa.convert.text.DelimitedTextConverter] Failed to evaluate SimpleFeature on line 1
2023-07-19 14:07:34,241 ERROR [org.locationtech.geomesa.tools.ingest.LocalConverterIngest] Failed to write feature...

This is the first entry of the CSV file:

BBTE000,-3.6,-9999.0,-9999.0,-9999.0,... 0.0,1.6,2.9,3.7,4.1,4.0,3.6,3.3,3.0,3.3,3.5,2.5,1.7,0.9,0.1,0.1,0.0,0.4,0.7,0.5,0.2,-0.5,...-5.6,-5.3,-5.3,...

Please note that I have omitted parts of the log and CSV data for brevity.

英文:

I installed and configured Geomesa using Docker containers. The versions I used for the various applications are:

  • Geomesa 4.0.1
  • Hadoop 2.10.2
  • Apache Accumulo 2.0.1
  • Apache Zookeepeer 3.7.1

To ingest a file I use the following command

geomesa-accumulo ingest --force -i accumulo -z zookeeper -u username -p myPassword -c myCatalog -f myFeature  /path/to/shapefile

Everything seems to work correctly. I tried ingesting shapefile and json and data are saved to Accumulo as they should. But when I try to ingest shapefile with many features, it gives the following error

Fatal error running local ingest worker on file.shp
2023-07-11 06:31:32,973 ERROR [org.locationtech.geomesa.tools.ingest.LocalConverterIngest] Fatal error running local ingest worker on file.shp
java.io.IOException: Error occurred trying to reproject data
        at org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:723)
        at org.locationtech.geomesa.convert.shp.ShapefileConverter.parse(ShapefileConverter.scala:74)
        at org.locationtech.geomesa.convert2.AbstractConverter.process(AbstractConverter.scala:151)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$4(LocalConverterIngest.scala:172)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$4$adapted(LocalConverterIngest.scala:168)
        at scala.collection.Iterator.foreach(Iterator.scala:943)
        at scala.collection.Iterator.foreach$(Iterator.scala:943)
        at org.locationtech.geomesa.utils.collection.CloseableIterator$CloseableSingleIterator.foreach(CloseableIterator.scala:85)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$3(LocalConverterIngest.scala:168)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$3$adapted(LocalConverterIngest.scala:167)
        at org.locationtech.geomesa.utils.io.package$WithClose$.apply(package.scala:64)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$2(LocalConverterIngest.scala:167)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$2$adapted(LocalConverterIngest.scala:166)
        at org.locationtech.geomesa.utils.io.CloseablePool$CommonsPoolPool.borrow(CloseablePool.scala:68)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.run(LocalConverterIngest.scala:166)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Nothing to be reprojected! (check before using wrapper)
        at org.geotools.data.crs.ReprojectFeatureReader.<init>(ReprojectFeatureReader.java:152)
        at org.geotools.data.crs.ReprojectFeatureReader.<init>(ReprojectFeatureReader.java:117)
        at org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:719)
        ... 19 more

While looking for a solution for my error, I read some comments stating that stacktrace is misleading and that the error would actually be caused by a large number of features that Geomesa cannot handle. I would like to know if this is indeed the case and if there is a way to solve the problem.

I converted the shapefile to csv format via QGIS and then tried to ingest it with geomesa. The error changes and seems to be related just to the large number of features.

at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter.writeFeature(GeoMesaFeatureWriter.scala:56)
        at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter.writeFeature$(GeoMesaFeatureWriter.scala:46)
        at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$TableFeatureWriter.writeFeature(GeoMesaFeatureWriter.scala:151)
        at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$GeoMesaAppendFeatureWriter.write(GeoMesaFeatureWriter.scala:239)
        at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$GeoMesaAppendFeatureWriter.write$(GeoMesaFeatureWriter.scala:235)
        at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$$anon$3.write(GeoMesaFeatureWriter.scala:111)
        at org.locationtech.geomesa.utils.geotools.FeatureUtils$.write(FeatureUtils.scala:147)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$8(LocalConverterIngest.scala:181)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$8$adapted(LocalConverterIngest.scala:179)
        at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:575)
        at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:573)
        at org.locationtech.geomesa.utils.collection.CloseableIterator$FlatMapCloseableIterator.foreach(CloseableIterator.scala:132)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$7(LocalConverterIngest.scala:179)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$7$adapted(LocalConverterIngest.scala:173)
        at org.locationtech.geomesa.utils.io.CloseablePool$CommonsPoolPool.borrow(CloseablePool.scala:68)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$6(LocalConverterIngest.scala:173)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$6$adapted(LocalConverterIngest.scala:172)
        at org.locationtech.geomesa.utils.io.package$WithClose$.apply(package.scala:64)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$4(LocalConverterIngest.scala:172)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$4$adapted(LocalConverterIngest.scala:168)
        at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:575)
        at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:573)
        at org.locationtech.geomesa.utils.collection.CloseableIterator$CloseableSingleIterator.foreach(CloseableIterator.scala:85)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$3(LocalConverterIngest.scala:168)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$3$adapted(LocalConverterIngest.scala:167)
        at org.locationtech.geomesa.utils.io.package$WithClose$.apply(package.scala:64)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$2(LocalConverterIngest.scala:167)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.$anonfun$run$2$adapted(LocalConverterIngest.scala:166)
        at org.locationtech.geomesa.utils.io.CloseablePool$CommonsPoolPool.borrow(CloseablePool.scala:68)
        at org.locationtech.geomesa.tools.ingest.LocalConverterIngest$LocalIngestWorker.run(LocalConverterIngest.scala:166)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -320
        at java.lang.String.getBytes(String.java:881)
        at com.esotericsoftware.kryo.io.Output.writeAscii_slow(Output.java:495)
        at com.esotericsoftware.kryo.io.Output.writeString(Output.java:348)
        at org.locationtech.geomesa.features.kryo.impl.KryoFeatureSerialization$KryoStringWriter$.apply(KryoFeatureSerialization.scala:179)
        at org.locationtech.geomesa.features.kryo.impl.KryoFeatureSerialization.writeFeature(KryoFeatureSerialization.scala:71)
        at org.locationtech.geomesa.features.kryo.impl.KryoFeatureSerialization.serialize(KryoFeatureSerialization.scala:43)
        at org.locationtech.geomesa.features.kryo.impl.KryoFeatureSerialization.serialize$(KryoFeatureSerialization.scala:41)
        at org.locationtech.geomesa.features.kryo.KryoFeatureSerializer$MutableActiveSerializer.serialize(KryoFeatureSerializer.scala:75)
        at org.locationtech.geomesa.index.api.WritableFeature$FeatureLevelWritableFeature.$anonfun$values$2(WritableFeature.scala:153)
        at org.locationtech.geomesa.index.api.package$KeyValue.value$lzycompute(package.scala:183)
        at org.locationtech.geomesa.index.api.package$KeyValue.value(package.scala:183)
        at org.locationtech.geomesa.accumulo.data.AccumuloIndexAdapter$AccumuloIndexWriter.$anonfun$write$1(AccumuloIndexAdapter.scala:397)
        at org.locationtech.geomesa.accumulo.data.AccumuloIndexAdapter$AccumuloIndexWriter.$anonfun$write$1$adapted(AccumuloIndexAdapter.scala:396)
        at scala.collection.immutable.Vector.foreach(Vector.scala:1895)
        at org.locationtech.geomesa.accumulo.data.AccumuloIndexAdapter$AccumuloIndexWriter.write(AccumuloIndexAdapter.scala:396)
        at org.locationtech.geomesa.index.api.IndexAdapter$BaseIndexWriter.write(IndexAdapter.scala:153)
        at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter.writeFeature(GeoMesaFeatureWriter.scala:50)
        ... 34 more

These are the first few lines of the geomesa.log file (related to ingestion of the converted csv file), but it pretty much repeats the same way for all entries.

2023-07-19 14:07:29,042 WARN [org.apache.hadoop.util.NativeCodeLoader] Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2023-07-19 14:07:30,087 WARN [org.apache.accumulo.fate.zookeeper.ZooCache] Unhandled: WatchedEvent state:Closed type:None path:null
2023-07-19 14:07:30,742 INFO [org.locationtech.geomesa.tools.user] No converter defined - will attempt to detect schema from input files
2023-07-19 14:07:31,571 INFO [org.locationtech.geomesa.tools.user] Creating schema 'PSP'
2023-07-19 14:07:33,753 INFO [org.locationtech.geomesa.tools.user] Running ingestion in local mode
2023-07-19 14:07:33,767 INFO [org.locationtech.geomesa.tools.user] Ingesting 1 file with 1 thread
2023-07-19 14:07:34,211 INFO [org.locationtech.geomesa.convert.text.DelimitedTextConverter] Failed to evaluate SimpleFeature on line 1
2023-07-19 14:07:34,241 ERROR [org.locationtech.geomesa.tools.ingest.LocalConverterIngest] Failed to write 'b21e7ad25644eb01a5085e2d56c97b88=BBTE000|-3.6|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|-9999.0|0.0|1.6|2.9|3.7|4.1|4.0|3.6|3.3|3.0|3.3|3.5|2.5|1.7|0.9|0.1|0.1|0.0|0.4|0.7|0.5|0.2|-0.5|-1.0|-0.9|-0.8|-0.7|-0.7|-0.6|-0.6|-0.2|0.0|-0.4|-0.7|-0.8|-1.0|-1.0|-1.1|-1.2|-1.4|-1.7|-2.0|-2.3|-2.7|-3.1|-3.6|-3.2|-2.6|-2.5|-2.6|-2.7|-2.8|-3.0|-3.1|-3.0|-3.0|-3.1|-3.0|-2.9|-3.2|-4.5|-5.2|-5.3|-5.6|-5.3|-5.3|-5.9|-6.1|-4.2|-2.8|-2.4|-2.1|-2.4|-2.9|-3.0|-2.6|-2.0|-1.8|-1.8|-2.1|-3.1|-3.7|-3.3|-3.0|-3.1|-3.2|-3.4|-3.4|-3.3|-3.0|-2.9|-3.1|-2.8|-2.5|-2.2|-1.8|-1.0|-0.6|-1.4|-2.2|-3.3|-4.2|-5.1|-6.1|-6.3|-5.7|-5.7|-5.9|-6.1|-6.4|-5.8|-5.2|-4.9|-4.7|-4.7|-4.7|-5.0|-5.5|-5.1|-5.2|-5.2|-5.2|-5.2|-5.1|-4.4|-3.7|-3.8|-3.9|-4.4|-5.2|-5.6|-6.2|-7.1|-7.3|-7.4|-7.5|-8.1|-9.2|-10.0|-9.5|-9.1|-8.8|-8.3|-8.0|-7.1|-6.4|-6.2|-6.5|-7.0|-7.4|-7.9|-7.9|-7.9|-7.9|-8.3|-9.1|-9.2|-9.3|-9.5|-9.7|-9.7|-9.8|-9.8|-9.7|-9.3|-8.7|-8.6|-8.7|-9.3|-10.0|-10.6|-10.6|-10.4|-10.3|-10.0|-10.4|-10.8|-10.8|-10.6|-9.5|-7.9|-5.8|-6.0|-6.0|-5.2|-4.5|-4.6|-5.3|-6.7|-8.2|-8.4|-7.6|-6.6|-7.3|-8.7|-9.8|-10.0|-9.6|-8.9|-8.9|-9.1|-9.4|-9.2|-9.2|-9.3|-9.4|-9.3|-8.9|-9.1|-9.4|-9.6|-9.6|-10.0|-10.2|-10.4|-10.7|-10.8|-10.9|-10.9|-11.0|-11.2|-11.1|-11.1|-11.0|-10.9|-11.3|-11.6|-12.0|-12.4|-13.3|-14.6|-15.1|-15.8|-16.5|-17.2|-18.1|-19.3|-18.5|-16.8|-14.9|-13.2|-11.8|-10.6|-10.3|-10.7|-12.0|-13.2|-14.0|-12.5|-12.1|-11.9|-11.3|-10.7|-9.9|-9.9|-9.8|-9.0|-10.0|-11.4|-12.5|-13.6|-13.6|-12.8|-12.1|-12.2|-12.2|-12.0|-12.1|-12.4|-12.5|-12.6|-12.6|-13.0|-13.7|-14.2|-14.4|-14.5|-14.3|-14.1|-14.4|-14.6|-14.9|-14.8|-14.8|-14.9|-15.3|-16.2|-16.6|-16.9|-17.0|-17.0|-17.0|-17.6|-17.2|-16.0|-14.6|-13.3|-13.4|-14.3|-15.5|-14.4|-14.5|-14.4|-14.5|-14.6|-14.9|-15.4|-16.1|-17.1|-16.6|-16.0|-16.0|-15.2|-14.0|-13.2|-13.5|-13.4|-14.0|-15.4|-16.1|-16.3|-16.8|-16.7|-16.8|-16.7|-16.5|-15.9|-15.2|-14.7|-14.6|-14.5|-14.5|-14.1|-13.8|-14.2|-14.3|-14.9|-15.6|-17.1|-18.4|-19.2|-19.2|-18.8|-18.8|-18.7|-18.6|-18.2|-17.4|-16.9|-17.5|-19.6|-20.8|-21.4|-21.6|-21.7|-22.0|-22.4|-22.2|-21.7|-20.6|-18.6|-17.7|-17.6|-16.9|-18.0|-18.8|-19.1|-18.9|-17.7|-16.1|-15.9|-16.8|-17.6|-18.7|-19.0|-19.2|-19.7|-20.8|-21.3|-21.5|-22.2|-24.2|-25.6|-26.9|-27.7|-28.1|-28.2|-27.7|-26.7|-25.6|-24.7|-24.5|-24.6|-24.9|-25.3|-25.9|-26.5|-27.0|-27.2|-26.4|-25.9|-25.1|POINT (0 1.600000023841858)'

This is the first entry of the csv file.

BBTE000,-3.6,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,0.0,1.6,2.9,3.7,4.1,4.0,3.6,3.3,3.0,3.3,3.5,2.5,1.7,0.9,0.1,0.1,0.0,0.4,0.7,0.5,0.2,-0.5,-1.0,-0.9,-0.8,-0.7,-0.7,-0.6,-0.6,-0.2,0.0,-0.4,-0.7,-0.8,-1.0,-1.0,-1.1,-1.2,-1.4,-1.7,-2.0,-2.3,-2.7,-3.1,-3.6,-3.2,-2.6,-2.5,-2.6,-2.7,-2.8,-3.0,-3.1,-3.0,-3.0,-3.1,-3.0,-2.9,-3.2,-4.5,-5.2,-5.3,-5.6,-5.3,-5.3,-5.9,-6.1,-4.2,-2.8,-2.4,-2.1,-2.4,-2.9,-3.0,-2.6,-2.0,-1.8,-1.8,-2.1,-3.1,-3.7,-3.3,-3.0,-3.1,-3.2,-3.4,-3.4,-3.3,-3.0,-2.9,-3.1,-2.8,-2.5,-2.2,-1.8,-1.0,-0.6,-1.4,-2.2,-3.3,-4.2,-5.1,-6.1,-6.3,-5.7,-5.7,-5.9,-6.1,-6.4,-5.8,-5.2,-4.9,-4.7,-4.7,-4.7,-5.0,-5.5,-5.1,-5.2,-5.2,-5.2,-5.2,-5.1,-4.4,-3.7,-3.8,-3.9,-4.4,-5.2,-5.6,-6.2,-7.1,-7.3,-7.4,-7.5,-8.1,-9.2,-10.0,-9.5,-9.1,-8.8,-8.3,-8.0,-7.1,-6.4,-6.2,-6.5,-7.0,-7.4,-7.9,-7.9,-7.9,-7.9,-8.3,-9.1,-9.2,-9.3,-9.5,-9.7,-9.7,-9.8,-9.8,-9.7,-9.3,-8.7,-8.6,-8.7,-9.3,-10.0,-10.6,-10.6,-10.4,-10.3,-10.0,-10.4,-10.8,-10.8,-10.6,-9.5,-7.9,-5.8,-6.0,-6.0,-5.2,-4.5,-4.6,-5.3,-6.7,-8.2,-8.4,-7.6,-6.6,-7.3,-8.7,-9.8,-10.0,-9.6,-8.9,-8.9,-9.1,-9.4,-9.2,-9.2,-9.3,-9.4,-9.3,-8.9,-9.1,-9.4,-9.6,-9.6,-10.0,-10.2,-10.4,-10.7,-10.8,-10.9,-10.9,-11.0,-11.2,-11.1,-11.1,-11.0,-10.9,-11.3,-11.6,-12.0,-12.4,-13.3,-14.6,-15.1,-15.8,-16.5,-17.2,-18.1,-19.3,-18.5,-16.8,-14.9,-13.2,-11.8,-10.6,-10.3,-10.7,-12.0,-13.2,-14.0,-12.5,-12.1,-11.9,-11.3,-10.7,-9.9,-9.9,-9.8,-9.0,-10.0,-11.4,-12.5,-13.6,-13.6,-12.8,-12.1,-12.2,-12.2,-12.0,-12.1,-12.4,-12.5,-12.6,-12.6,-13.0,-13.7,-14.2,-14.4,-14.5,-14.3,-14.1,-14.4,-14.6,-14.9,-14.8,-14.8,-14.9,-15.3,-16.2,-16.6,-16.9,-17.0,-17.0,-17.0,-17.6,-17.2,-16.0,-14.6,-13.3,-13.4,-14.3,-15.5,-14.4,-14.5,-14.4,-14.5,-14.6,-14.9,-15.4,-16.1,-17.1,-16.6,-16.0,-16.0,-15.2,-14.0,-13.2,-13.5,-13.4,-14.0,-15.4,-16.1,-16.3,-16.8,-16.7,-16.8,-16.7,-16.5,-15.9,-15.2,-14.7,-14.6,-14.5,-14.5,-14.1,-13.8,-14.2,-14.3,-14.9,-15.6,-17.1,-18.4,-19.2,-19.2,-18.8,-18.8,-18.7,-18.6,-18.2,-17.4,-16.9,-17.5,-19.6,-20.8,-21.4,-21.6,-21.7,-22.0,-22.4,-22.2,-21.7,-20.6,-18.6,-17.7,-17.6,-16.9,-18.0,-18.8,-19.1,-18.9,-17.7,-16.1,-15.9,-16.8,-17.6,-18.7,-19.0,-19.2,-19.7,-20.8,-21.3,-21.5,-22.2,-24.2,-25.6,-26.9,-27.7,-28.1,-28.2,-27.7,-26.7,-25.6,-24.7,-24.5,-24.6,-24.9,-25.3,-25.9,-26.5,-27.0,-27.2,-26.4,-25.9,-25.1

答案1

得分: 0

我认为这与要素数量无关,而与shapefile的坐标参考系统(CRS)有关。似乎这可能是geotools中的一个错误 - 在这里有一个 if 保护 1,应该在不需要时阻止重投影,但似乎与 ReprojectFeatureReader 内部的检查不匹配,导致引发异常。这也可能是GeoMesa中的一个错误,当设置CRS时 2,可能应该在调用该方法之前进行额外的检查。如果您能提供一个可复现的测试案例,请在GeoMesa JIRA 中提出一个问题。

您可以尝试使用不同的工具将shapefile重投影为EPSG:4326(这是GeoMesa所需的EPSG),或将其转换为不同的格式,如CSV,以解决此问题。

英文:

I don't think it has anything to do with the number of features, but rather with the CRS of the shapefile. It seems like it may be a bug in geotools - there is an if guard here that should prevent reprojection if it is not needed, but it doesn't seem to match the check inside the ReprojectFeatureReader, which is causing an exception to be thrown. It may also be a bug in GeoMesa where it is using the API wrong when setting the CRS here, possibly there should be additional checks before calling that method. If you can provide a reproducible test case, please open a ticket in the GeoMesa JIRA.

You may be able to work around it by using a different tool to reproject the shapefile into EPSG:4326 (which is the EPSG required by GeoMesa), or by converting it to a different format like CSV.

huangapple
  • 本文由 发表于 2023年7月11日 14:47:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/76659313.html
  • geomesa
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定