Daniele,
I have spent about 5 hours today putting together an extensive set of test
data, indexer files, and cases for this to submit a JIRA ... but JIRA will
no longer let me submit issues for GeoServer under my account, even though
I have done so in the past. Have you guys locked down who can submit
issues or something? Is there a special dance I need to do to find where
to submit issues? User error? (Quite possibly user error, though I know
JIRA continues to be frustrating for a lot of people asked to submit
issues). So, until that gets figured out I can't submit a JIRA with the
data.
I'll be glad to submit the JIRA and the test data there if someone can help
me. I can also e-mail you the test data directly as a zip. Would you want
that?
Until then, I am including here the summary information I was going to
submit with the JIRA ticket.
Thanks,
Mike
=======================================================================
Environment:
GeoServer
Version
2.6.2
Git Revision
d8d01ae1fb41132bc15794670834c5606fdfa991
Build Date
20-Jan-2015 01:54
GeoTools Version
12.2 (rev a40c4d86948338d52120588f3ada518e923a57d8)
GeoWebCache Version
1.6.1 (rev 1.6.x/01bbae5727a8a05babbd06e0dc2d4024e9318362)
GeoServer 2.6.2
PostgrsSQL 9.3.6
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
=======================================================================
I have discovered an issue where GeoServer behaves significantly
differently when creating Image Mosaics via REST commands in different
circumstances for GeoTIFF files using the new indexer.xml index
specification format.
These differences can depend on whether or not granules are submitted with
the uploaded zip file for immediate harvesting versus creating an empty
mosaic and performing harvesting with another subsequent command.
These differences significantly impact the naming of the .properties file
in the resulting data directory, the naming of the database table used to
store granule metadata, and, most importantly, whether or not the Image
Mosaic plugin will honor the existence of a time domain.
At Daniele’s request, I am including a zip file of data and test cases I
have performed. The data, though renamed, were taken from GeoSolutions’
temperature dataset in their multidimensional training modules. The
output.txt file contains output of scripted tests in runcases.bash.
I will describe the cases and results here:
In case one, I do not include any parameters in my indexer.xml file. I
upload the tiff granules in the zip file with datastore.properties and
indexer.xml and my REST request asks for immediate harvesting (omits the
?configure=none). The “Automagically created” caseone.properties file in
the appropriate data directory correctly includes my TimeAttribute. The
database table for the granules is properly created, contains all granule
metadata, and is properly named caseone. The GeoServer UI allows me to
publish layers with a time dimension. All seems correct for case one.
In case two, I do not include files for harvesting in the zip file and
delay harvesting using ?configure=none in my REST request. I add the
AbsolutePath and CanBeEmpty parameters to the indexer.xml file. When I
submit my REST request for harvesting, the .properties file is created as
index.properties (instead of casetwo.properties) and DOES NOT include my
TimeAttribute. The database table for the granules is created but is named
index as well. It does, however, contain all granule metadata including
that for the TimeAttribute. The GeoServer UI will not allow me to publish
layers with a time dimension.
In case three, I add the “Name” parameter in <parameters> and give it a
value of “casethree”, but keep the name in <coverages> different. I also
delay harvesting as in case two. Upon harvesting, the .properties file is
created as casethree.properties but still DOES NOT INCLUDE the
TimeAttribute. The database table for the granules is created and named
casethree and, like case two, does contain all granule metadata including
that for the TimeAttribute. The GeoServer UI will not allow me to publish
layers with a time dimension.
Case four is where everything returns to expected behavior. In this case,
an empty mosaic is created and harvesting is delayed as in cases two and
three. The name used in both the <coverages> portion and the <parameters>
portion of the indexer.xml file is “casefour”. Upon subsequent harvesting
of granules with another REST command, the .properties file is created as
casefour.properties and INCLUDES the TimeAttribute! The database table is
created and named casefour, and still contains all of the right metadata.
The GeoServer UI WILL allow me to publish layers with a time dimension.
On Wed, Apr 1, 2015 at 4:33 AM, Daniele Romagnoli <
[email protected]> wrote:
> Hi Mike,
> I think that the only way to investigate into the issue is to debug the
> code.
> Do you have any chance to open a JIRA for this?
> I think you can simply paste the explanations you provided in this email.
> Please, also attach the sample zip, containing data (even fake pixels but
> proper naming), indexer, and so on, which you have used to do the harvest
> as well as the steps you performed to do the creation/harvesting.
>
> Hope this helps.
> Regards,
> Daniele
>
>
>
>
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/NWWaa2 for more information.
> ==
>
> Ing. Daniele Romagnoli
> Senior Software Engineer
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054 Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> -------------------------------------------------------
>
> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>
> Le informazioni contenute in questo messaggio di posta elettronica e/o
> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
> darcene notizia via e-mail e di procedere alla distruzione del messaggio
> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
> principi dettati dal D.Lgs. 196/2003.
>
>
>
> The information in this message and/or attachments, is intended solely for
> the attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
> Code).Any use not in accord with its purpose, any disclosure, reproduction,
> copying, distribution, or either dissemination, either whole or partial, is
> strictly forbidden except previous formal approval of the named
> addressee(s). If you are not the intended recipient, please contact
> immediately the sender by telephone, fax or e-mail and delete the
> information in this message that has been received in error. The sender
> does not give any warranty or accept liability as the content, accuracy or
> completeness of sent messages and accepts no responsibility for changes
> made after they were sent or for other risks which arise as a result of
> e-mail transmission, viruses, etc.
>
>
> On Tue, Mar 31, 2015 at 10:04 PM, Mike Grogan <[email protected]>
> wrote:
>
>> As I continue to work on REST-based configuration of some Image Mosaic
>> stores, I know I will run into some questions, so I thought I would start a
>> thread for those here. I hope that is ok.
>>
>> My first question here involves the time attribute / dimension for a
>> store. Specifically, I am using the new indexer.xml form of the indexer
>> for the image mosaic, but I am using it with geotiffs. This has worked
>> fine in the past, with some pointers from Daniele and others.
>>
>> If I create a new image mosaic through the web interface and allow it to
>> collect my granules at the same time, everything works fine. The
>> auto-generated .properties file for the mosaic contains the TimeAttribute=
>> entry as expected, and when I go to publish a layer, the time dimension is
>> populated correctly with the value of the TimeAttribute.
>>
>> However, when I zip up the indexer.xml and datastore.properties files and
>> use the REST interface to create an empty mosaic, then use the REST
>> interface again to harvest my granules, the auto-generated .properties file
>> does not contain the TimeAttribute= entry, and the web interface says the
>> time dimension is disabled ("Cannot enable, no attribute of type Date
>> found").
>>
>> Oddly, everything in the database is fine ... the attribute for the time
>> is parsed correctly for each file. If I manually add the TimeAttribute=
>> back to the auto-generated .properties file and reload the GeoServer
>> configuration, then it works. It just seems, then, that the attribute
>> isn't getting added to properties when I harvest via REST.
>>
>> I am pasting my indexer.xml file below. I have dug into the code and
>> have tried adding the TimeAttribute to the parameters but it still seems to
>> no avail.
>>
>> I greatly appreciate the help!
>>
>> - Mike Grogan
>>
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <Indexer>
>> <domains>
>> <domain name="time">
>> <attributes><attribute
>> ref="timeCollector">validtime</attribute></attributes>
>> </domain>
>> <domain name="level">
>> <attributes><attribute
>> ref="levelCollector">level</attribute></attributes>
>> </domain>
>> </domains>
>> <schemas>
>> <schema name="default">
>>
>>
>> <attributes>the_geom:Polygon,location:String,validtime:java.util.Date,level:String</attributes>
>> </schema>
>> </schemas>
>> <coverages>
>> <coverage>
>> <name>wind</name>
>> <schema ref="default"></schema>
>> <domains>
>> <domain ref="time"/>
>> <domain ref="level"/>
>> </domains>
>> </coverage>
>> </coverages>
>> <collectors>
>> <collector name="timeCollector">
>> <value>regex=[0-9]{8}T[0-9]{9}Z</value>
>> <spi>TimestampFileNameExtractorSPI</spi>
>> <mapped>validtime</mapped>
>> </collector>
>> <collector name="levelCollector">
>> <value>(?<=Z_)([a-zA-Z0-9]+)</value> <!-- the lt is for
>> symbol -->
>> <spi>StringFileNameExtractorSPI</spi>
>> <mapped>level</mapped>
>> </collector>
>> </collectors>
>> <parameters>
>> <parameter name="Name" value="mywind10"/>
>> <parameter name="TimeAttribute" value="validtime" />
>> <parameter name="AbsolutePath" value="true" />
>> <parameter name="CanBeEmpty" value="true" />
>> </parameters>
>> </Indexer>
>>
>>
>> ------------------------------------------------------------------------------
>> Dive into the World of Parallel Programming The Go Parallel Website,
>> sponsored
>> by Intel and developed in partnership with Slashdot Media, is your hub
>> for all
>> things parallel software development, from weekly thought leadership
>> blogs to
>> news, videos, case studies, tutorials and more. Take a look and join the
>> conversation now. http://goparallel.sourceforge.net/
>> _______________________________________________
>> Geoserver-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>
>>
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users